{"version":3,"file":"Popover.js","sources":["../src/utils/objectUtils.js","../src/utils/domUtils.js","../src/mixins/popupMixin.js","../src/components/popover/Popover.vue"],"sourcesContent":["export function isExist (obj) {\n return typeof obj !== 'undefined' && obj !== null\n}\n\nexport function isFunction (obj) {\n return typeof obj === 'function'\n}\n\nexport function isNumber (obj) {\n return typeof obj === 'number'\n}\n\nexport function isString (obj) {\n return typeof obj === 'string'\n}\n\nexport function isBoolean (obj) {\n return typeof obj === 'boolean'\n}\n\nexport function isPromiseSupported () {\n return typeof window !== 'undefined' && isExist(window.Promise)\n}\n","import {isExist, isString, isFunction} from './objectUtils'\n\nexport const EVENTS = {\n MOUSE_ENTER: 'mouseenter',\n MOUSE_LEAVE: 'mouseleave',\n MOUSE_DOWN: 'mousedown',\n MOUSE_UP: 'mouseup',\n FOCUS: 'focus',\n BLUR: 'blur',\n CLICK: 'click',\n INPUT: 'input',\n KEY_DOWN: 'keydown',\n KEY_UP: 'keyup',\n KEY_PRESS: 'keypress',\n RESIZE: 'resize',\n SCROLL: 'scroll',\n TOUCH_START: 'touchstart',\n TOUCH_END: 'touchend'\n}\n\nexport const TRIGGERS = {\n CLICK: 'click',\n HOVER: 'hover',\n FOCUS: 'focus',\n HOVER_FOCUS: 'hover-focus',\n OUTSIDE_CLICK: 'outside-click',\n MANUAL: 'manual'\n}\n\nexport const PLACEMENTS = {\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nexport function isIE11 () {\n return !!window.MSInputMethodContext && !!document.documentMode\n}\n\nexport function isIE10 () {\n return window.navigator.appVersion.indexOf('MSIE 10') !== -1\n}\n\nexport function getComputedStyle (el) {\n return window.getComputedStyle(el)\n}\n\nexport function getViewportSize () {\n let width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0)\n let height = Math.max(document.documentElement.clientHeight, window.innerHeight || 0)\n return {width, height}\n}\n\nlet scrollbarWidth = null\nlet savedScreenSize = null\n\nexport function getScrollbarWidth (recalculate = false) {\n let screenSize = getViewportSize()\n // return directly when already calculated & not force recalculate & screen size not changed\n if (scrollbarWidth !== null && !recalculate &&\n screenSize.height === savedScreenSize.height && screenSize.width === savedScreenSize.width) {\n return scrollbarWidth\n }\n if (document.readyState === 'loading') {\n return null\n }\n const div1 = document.createElement('div')\n const div2 = document.createElement('div')\n div1.style.width = div2.style.width = div1.style.height = div2.style.height = '100px'\n div1.style.overflow = 'scroll'\n div2.style.overflow = 'hidden'\n document.body.appendChild(div1)\n document.body.appendChild(div2)\n scrollbarWidth = Math.abs(div1.scrollHeight - div2.scrollHeight)\n document.body.removeChild(div1)\n document.body.removeChild(div2)\n // save new screen size\n savedScreenSize = screenSize\n return scrollbarWidth\n}\n\nexport function on (element, event, handler) {\n element.addEventListener(event, handler)\n}\n\nexport function off (element, event, handler) {\n element.removeEventListener(event, handler)\n}\n\nexport function isElement (el) {\n return el && el.nodeType === Node.ELEMENT_NODE\n}\n\nexport function removeFromDom (el) {\n isElement(el) && isElement(el.parentNode) && el.parentNode.removeChild(el)\n}\n\nexport function ensureElementMatchesFunction () {\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function (s) {\n let matches = (this.document || this.ownerDocument).querySelectorAll(s)\n let i = matches.length\n while (--i >= 0 && matches.item(i) !== this) {\n }\n return i > -1\n }\n }\n}\n\nexport function addClass (el, className) {\n if (!isElement(el)) {\n return\n }\n if (el.className) {\n let classes = el.className.split(' ')\n if (classes.indexOf(className) < 0) {\n classes.push(className)\n el.className = classes.join(' ')\n }\n } else {\n el.className = className\n }\n}\n\nexport function removeClass (el, className) {\n if (!isElement(el)) {\n return\n }\n if (el.className) {\n let classes = el.className.split(' ')\n let newClasses = []\n for (let i = 0, l = classes.length; i < l; i++) {\n if (classes[i] !== className) {\n newClasses.push(classes[i])\n }\n }\n el.className = newClasses.join(' ')\n }\n}\n\nexport function hasClass (el, className) {\n if (!isElement(el)) {\n return false\n }\n let classes = el.className.split(' ')\n for (let i = 0, l = classes.length; i < l; i++) {\n if (classes[i] === className) {\n return true\n }\n }\n return false\n}\n\nexport function setDropdownPosition (dropdown, trigger, options = {}) {\n let doc = document.documentElement\n let containerScrollLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0)\n let containerScrollTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\n let rect = trigger.getBoundingClientRect()\n let dropdownRect = dropdown.getBoundingClientRect()\n dropdown.style.right = 'auto'\n dropdown.style.bottom = 'auto'\n if (options.menuRight) {\n dropdown.style.left = containerScrollLeft + rect.left + rect.width - dropdownRect.width + 'px'\n } else {\n dropdown.style.left = containerScrollLeft + rect.left + 'px'\n }\n if (options.dropup) {\n dropdown.style.top = containerScrollTop + rect.top - dropdownRect.height - 4 + 'px'\n } else {\n dropdown.style.top = containerScrollTop + rect.top + rect.height + 'px'\n }\n}\n\nexport function isAvailableAtPosition (trigger, popup, placement) {\n let triggerRect = trigger.getBoundingClientRect()\n let popupRect = popup.getBoundingClientRect()\n let viewPortSize = getViewportSize()\n let top = true\n let right = true\n let bottom = true\n let left = true\n switch (placement) {\n case PLACEMENTS.TOP:\n top = triggerRect.top >= popupRect.height\n left = triggerRect.left + triggerRect.width / 2 >= popupRect.width / 2\n right = triggerRect.right - triggerRect.width / 2 + popupRect.width / 2 <= viewPortSize.width\n break\n case PLACEMENTS.BOTTOM:\n bottom = triggerRect.bottom + popupRect.height <= viewPortSize.height\n left = triggerRect.left + triggerRect.width / 2 >= popupRect.width / 2\n right = triggerRect.right - triggerRect.width / 2 + popupRect.width / 2 <= viewPortSize.width\n break\n case PLACEMENTS.RIGHT:\n right = triggerRect.right + popupRect.width <= viewPortSize.width\n top = triggerRect.top + triggerRect.height / 2 >= popupRect.height / 2\n bottom = triggerRect.bottom - triggerRect.height / 2 + popupRect.height / 2 <= viewPortSize.height\n break\n case PLACEMENTS.LEFT:\n left = triggerRect.left >= popupRect.width\n top = triggerRect.top + triggerRect.height / 2 >= popupRect.height / 2\n bottom = triggerRect.bottom - triggerRect.height / 2 + popupRect.height / 2 <= viewPortSize.height\n break\n }\n return top && right && bottom && left\n}\n\nexport function setTooltipPosition (tooltip, trigger, placement, auto, appendToSelector, viewport) {\n if (!isElement(tooltip) || !isElement(trigger)) {\n return\n }\n const isPopover = tooltip && tooltip.className && tooltip.className.indexOf('popover') >= 0\n let containerScrollTop\n let containerScrollLeft\n if (!isExist(appendToSelector) || appendToSelector === 'body') {\n const doc = document.documentElement\n containerScrollLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0)\n containerScrollTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\n } else {\n const container = document.querySelector(appendToSelector)\n containerScrollLeft = container.scrollLeft\n containerScrollTop = container.scrollTop\n }\n // auto adjust placement\n if (auto) {\n // Try: right -> bottom -> left -> top\n // Cause the default placement is top\n let placements = [PLACEMENTS.RIGHT, PLACEMENTS.BOTTOM, PLACEMENTS.LEFT, PLACEMENTS.TOP]\n // The class switch helper function\n const changePlacementClass = (placement) => {\n // console.log(placement)\n placements.forEach(placement => {\n removeClass(tooltip, placement)\n })\n addClass(tooltip, placement)\n }\n // No need to adjust if the default placement fits\n if (!isAvailableAtPosition(trigger, tooltip, placement)) {\n for (let i = 0, l = placements.length; i < l; i++) {\n // Re-assign placement class\n changePlacementClass(placements[i])\n // Break if new placement fits\n if (isAvailableAtPosition(trigger, tooltip, placements[i])) {\n placement = placements[i]\n break\n }\n }\n changePlacementClass(placement)\n }\n }\n // fix left and top for tooltip\n let rect = trigger.getBoundingClientRect()\n let tooltipRect = tooltip.getBoundingClientRect()\n let top\n let left\n if (placement === PLACEMENTS.BOTTOM) {\n top = containerScrollTop + rect.top + rect.height\n left = containerScrollLeft + rect.left + rect.width / 2 - tooltipRect.width / 2\n } else if (placement === PLACEMENTS.LEFT) {\n top = containerScrollTop + rect.top + rect.height / 2 - tooltipRect.height / 2\n left = containerScrollLeft + rect.left - tooltipRect.width\n } else if (placement === PLACEMENTS.RIGHT) {\n top = containerScrollTop + rect.top + rect.height / 2 - tooltipRect.height / 2\n // https://github.com/wxsms/uiv/issues/272\n // add 1px to fix above issue\n left = containerScrollLeft + rect.left + rect.width + 1\n } else {\n top = containerScrollTop + rect.top - tooltipRect.height\n left = containerScrollLeft + rect.left + rect.width / 2 - tooltipRect.width / 2\n }\n let viewportEl\n // viewport option\n if (isString(viewport)) {\n viewportEl = document.querySelector(viewport)\n } else if (isFunction(viewport)) {\n viewportEl = viewport(trigger)\n }\n if (isElement(viewportEl)) {\n const popoverFix = isPopover ? 11 : 0\n const viewportReact = viewportEl.getBoundingClientRect()\n const viewportTop = containerScrollTop + viewportReact.top\n const viewportLeft = containerScrollLeft + viewportReact.left\n const viewportBottom = viewportTop + viewportReact.height\n const viewportRight = viewportLeft + viewportReact.width\n // fix top\n if (top < viewportTop) {\n top = viewportTop\n } else if (top + tooltipRect.height > viewportBottom) {\n top = viewportBottom - tooltipRect.height\n }\n // fix left\n if (left < viewportLeft) {\n left = viewportLeft\n } else if (left + tooltipRect.width > viewportRight) {\n left = viewportRight - tooltipRect.width\n }\n // fix for popover pointer\n if (placement === PLACEMENTS.BOTTOM) {\n top -= popoverFix\n } else if (placement === PLACEMENTS.LEFT) {\n left += popoverFix\n } else if (placement === PLACEMENTS.RIGHT) {\n left -= popoverFix\n } else {\n top += popoverFix\n }\n }\n // set position finally\n tooltip.style.top = `${top}px`\n tooltip.style.left = `${left}px`\n}\n\nexport function hasScrollbar (el) {\n const SCROLL = 'scroll'\n const hasVScroll = el.scrollHeight > el.clientHeight\n const style = getComputedStyle(el)\n return hasVScroll || style.overflow === SCROLL || style.overflowY === SCROLL\n}\n\nexport function toggleBodyOverflow (enable) {\n const MODAL_OPEN = 'modal-open'\n const body = document.body\n if (enable) {\n removeClass(body, MODAL_OPEN)\n body.style.paddingRight = null\n } else {\n const browsersWithFloatingScrollbar = isIE10() || isIE11()\n const documentHasScrollbar = hasScrollbar(document.documentElement) || hasScrollbar(document.body)\n if (documentHasScrollbar && !browsersWithFloatingScrollbar) {\n body.style.paddingRight = `${getScrollbarWidth()}px`\n }\n addClass(body, MODAL_OPEN)\n }\n}\n\nexport function getClosest (el, selector) {\n ensureElementMatchesFunction()\n let parent\n let _el = el\n while (_el) {\n parent = _el.parentElement\n if (parent && parent.matches(selector)) {\n return parent\n }\n _el = parent\n }\n return null\n}\n\nexport function getParents (el, selector, until = null) {\n ensureElementMatchesFunction()\n let parents = []\n let parent = el.parentElement\n while (parent) {\n if (parent.matches(selector)) {\n parents.push(parent)\n } else if (until && (until === parent || parent.matches(until))) {\n break\n }\n parent = parent.parentElement\n }\n return parents\n}\n\nexport function focus (el) {\n if (!isElement(el)) {\n return\n }\n el.getAttribute('tabindex') ? null : el.setAttribute('tabindex', '-1')\n el.focus()\n}\n","import {\n PLACEMENTS,\n ensureElementMatchesFunction,\n on,\n off,\n EVENTS,\n TRIGGERS,\n removeFromDom,\n removeClass,\n hasClass,\n setTooltipPosition,\n isElement,\n addClass\n} from '../utils/domUtils'\nimport {isString, isFunction} from '../utils/objectUtils'\n\nconst SHOW_CLASS = 'in'\n\nexport default {\n props: {\n value: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'span'\n },\n placement: {\n type: String,\n default: PLACEMENTS.TOP\n },\n autoPlacement: {\n type: Boolean,\n default: true\n },\n appendTo: {\n type: String,\n default: 'body'\n },\n transitionDuration: {\n type: Number,\n default: 150\n },\n hideDelay: {\n type: Number,\n default: 0\n },\n showDelay: {\n type: Number,\n default: 0\n },\n enable: {\n type: Boolean,\n default: true\n },\n enterable: {\n type: Boolean,\n default: true\n },\n target: null,\n viewport: null,\n customClass: String\n },\n data () {\n return {\n triggerEl: null,\n hideTimeoutId: 0,\n showTimeoutId: 0,\n transitionTimeoutId: 0,\n autoTimeoutId: 0\n }\n },\n watch: {\n value (v) {\n v ? this.show() : this.hide()\n },\n trigger () {\n this.clearListeners()\n this.initListeners()\n },\n target (value) {\n this.clearListeners()\n this.initTriggerElByTarget(value)\n this.initListeners()\n },\n allContent (value) {\n // can not use value because it can not detect slot changes\n if (this.isNotEmpty()) {\n // reset position while content changed & is shown\n // nextTick is required\n this.$nextTick(() => {\n if (this.isShown()) {\n this.resetPosition()\n }\n })\n } else {\n this.hide()\n }\n },\n enable (value) {\n // hide if enable changed to false\n if (!value) {\n this.hide()\n }\n }\n },\n mounted () {\n ensureElementMatchesFunction()\n removeFromDom(this.$refs.popup)\n this.$nextTick(() => {\n this.initTriggerElByTarget(this.target)\n this.initListeners()\n if (this.value) {\n this.show()\n }\n })\n },\n beforeDestroy () {\n this.clearListeners()\n removeFromDom(this.$refs.popup)\n },\n methods: {\n initTriggerElByTarget (target) {\n if (target) {\n // target exist\n if (isString(target)) { // is selector\n this.triggerEl = document.querySelector(target)\n } else if (isElement(target)) { // is element\n this.triggerEl = target\n } else if (isElement(target.$el)) { // is component\n this.triggerEl = target.$el\n }\n } else {\n // find special element\n let trigger = this.$el.querySelector('[data-role=\"trigger\"]')\n if (trigger) {\n this.triggerEl = trigger\n } else {\n // use the first child\n let firstChild = this.$el.firstChild\n this.triggerEl = firstChild === this.$refs.popup ? null : firstChild\n }\n }\n },\n initListeners () {\n if (this.triggerEl) {\n if (this.trigger === TRIGGERS.HOVER) {\n on(this.triggerEl, EVENTS.MOUSE_ENTER, this.show)\n on(this.triggerEl, EVENTS.MOUSE_LEAVE, this.hide)\n } else if (this.trigger === TRIGGERS.FOCUS) {\n on(this.triggerEl, EVENTS.FOCUS, this.show)\n on(this.triggerEl, EVENTS.BLUR, this.hide)\n } else if (this.trigger === TRIGGERS.HOVER_FOCUS) {\n on(this.triggerEl, EVENTS.MOUSE_ENTER, this.handleAuto)\n on(this.triggerEl, EVENTS.MOUSE_LEAVE, this.handleAuto)\n on(this.triggerEl, EVENTS.FOCUS, this.handleAuto)\n on(this.triggerEl, EVENTS.BLUR, this.handleAuto)\n } else if (this.trigger === TRIGGERS.CLICK || this.trigger === TRIGGERS.OUTSIDE_CLICK) {\n on(this.triggerEl, EVENTS.CLICK, this.toggle)\n }\n }\n on(window, EVENTS.CLICK, this.windowClicked)\n },\n clearListeners () {\n if (this.triggerEl) {\n off(this.triggerEl, EVENTS.FOCUS, this.show)\n off(this.triggerEl, EVENTS.BLUR, this.hide)\n off(this.triggerEl, EVENTS.MOUSE_ENTER, this.show)\n off(this.triggerEl, EVENTS.MOUSE_LEAVE, this.hide)\n off(this.triggerEl, EVENTS.CLICK, this.toggle)\n off(this.triggerEl, EVENTS.MOUSE_ENTER, this.handleAuto)\n off(this.triggerEl, EVENTS.MOUSE_LEAVE, this.handleAuto)\n off(this.triggerEl, EVENTS.FOCUS, this.handleAuto)\n off(this.triggerEl, EVENTS.BLUR, this.handleAuto)\n }\n off(window, EVENTS.CLICK, this.windowClicked)\n this.clearTimeouts()\n },\n clearTimeouts () {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId)\n this.hideTimeoutId = 0\n }\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId)\n this.showTimeoutId = 0\n }\n if (this.transitionTimeoutId) {\n clearTimeout(this.transitionTimeoutId)\n this.transitionTimeoutId = 0\n }\n if (this.autoTimeoutId) {\n clearTimeout(this.autoTimeoutId)\n this.autoTimeoutId = 0\n }\n },\n resetPosition () {\n const popup = this.$refs.popup\n if (popup) {\n setTooltipPosition(popup, this.triggerEl, this.placement, this.autoPlacement, this.appendTo, this.viewport)\n popup.offsetHeight\n }\n },\n hideOnLeave () {\n if (this.trigger === TRIGGERS.HOVER || (this.trigger === TRIGGERS.HOVER_FOCUS && !this.triggerEl.matches(':focus'))) {\n this.$hide()\n }\n },\n toggle () {\n if (this.isShown()) {\n this.hide()\n } else {\n this.show()\n }\n },\n show () {\n if (this.enable && this.triggerEl && this.isNotEmpty() && !this.isShown()) {\n const popUpAppendedContainer = this.hideTimeoutId > 0 // weird condition\n if (popUpAppendedContainer) {\n clearTimeout(this.hideTimeoutId)\n this.hideTimeoutId = 0\n }\n if (this.transitionTimeoutId > 0) {\n clearTimeout(this.transitionTimeoutId)\n this.transitionTimeoutId = 0\n }\n clearTimeout(this.showTimeoutId)\n this.showTimeoutId = setTimeout(() => {\n this.showTimeoutId = 0\n const popup = this.$refs.popup\n if (popup) {\n // add to dom\n if (!popUpAppendedContainer) {\n popup.className = `${this.name} ${this.placement} ${this.customClass ? this.customClass : ''} fade`\n let container = document.querySelector(this.appendTo)\n container.appendChild(popup)\n this.resetPosition()\n }\n addClass(popup, SHOW_CLASS)\n this.$emit('input', true)\n this.$emit('show')\n }\n }, this.showDelay)\n }\n },\n hide () {\n if (this.showTimeoutId > 0) {\n clearTimeout(this.showTimeoutId)\n this.showTimeoutId = 0\n }\n\n if (!this.isShown()) {\n return\n }\n if (this.enterable && (this.trigger === TRIGGERS.HOVER || this.trigger === TRIGGERS.HOVER_FOCUS)) {\n clearTimeout(this.hideTimeoutId)\n this.hideTimeoutId = setTimeout(() => {\n this.hideTimeoutId = 0\n const popup = this.$refs.popup\n if (popup && !popup.matches(':hover')) {\n this.$hide()\n }\n }, 100)\n } else {\n this.$hide()\n }\n },\n $hide () {\n if (this.isShown()) {\n clearTimeout(this.hideTimeoutId)\n this.hideTimeoutId = setTimeout(() => {\n this.hideTimeoutId = 0\n removeClass(this.$refs.popup, SHOW_CLASS)\n // gives fade out time\n this.transitionTimeoutId = setTimeout(() => {\n this.transitionTimeoutId = 0\n removeFromDom(this.$refs.popup)\n this.$emit('input', false)\n this.$emit('hide')\n }, this.transitionDuration)\n }, this.hideDelay)\n }\n },\n isShown () {\n return hasClass(this.$refs.popup, SHOW_CLASS)\n },\n windowClicked (event) {\n if (this.triggerEl && isFunction(this.triggerEl.contains) && !this.triggerEl.contains(event.target) &&\n this.trigger === TRIGGERS.OUTSIDE_CLICK && !(this.$refs.popup && this.$refs.popup.contains(event.target)) &&\n this.isShown()) {\n this.hide()\n }\n },\n handleAuto () {\n clearTimeout(this.autoTimeoutId)\n this.autoTimeoutId = setTimeout(() => {\n this.autoTimeoutId = 0\n if (this.triggerEl.matches(':hover, :focus')) {\n this.show()\n } else {\n this.hide()\n }\n }, 20) // 20ms make firefox happy\n }\n }\n}\n","\n"],"names":["isExist","obj","isFunction","isString","EVENTS","TRIGGERS","PLACEMENTS","getViewportSize","width","Math","max","document","documentElement","clientWidth","window","innerWidth","height","clientHeight","innerHeight","on","element","event","handler","addEventListener","off","removeEventListener","isElement","el","nodeType","Node","ELEMENT_NODE","removeFromDom","parentNode","removeChild","ensureElementMatchesFunction","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","s","ownerDocument","querySelectorAll","i","length","item","addClass","className","classes","split","indexOf","push","join","removeClass","newClasses","l","hasClass","isAvailableAtPosition","trigger","popup","placement","triggerRect","getBoundingClientRect","popupRect","viewPortSize","top","right","bottom","left","TOP","BOTTOM","RIGHT","LEFT","setTooltipPosition","tooltip","auto","appendToSelector","viewport","isPopover","containerScrollTop","containerScrollLeft","doc","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","container","querySelector","placements","changePlacementClass","forEach","rect","tooltipRect","viewportEl","popoverFix","viewportReact","viewportTop","viewportLeft","viewportBottom","viewportRight","style","SHOW_CLASS","Boolean","String","Number","v","show","hide","clearListeners","initListeners","value","initTriggerElByTarget","isNotEmpty","$nextTick","isShown","resetPosition","$refs","target","triggerEl","$el","firstChild","HOVER","MOUSE_ENTER","MOUSE_LEAVE","FOCUS","BLUR","HOVER_FOCUS","handleAuto","CLICK","OUTSIDE_CLICK","toggle","windowClicked","clearTimeouts","hideTimeoutId","showTimeoutId","transitionTimeoutId","autoTimeoutId","autoPlacement","appendTo","offsetHeight","$hide","enable","popUpAppendedContainer","setTimeout","name","customClass","appendChild","$emit","showDelay","enterable","transitionDuration","hideDelay","contains","popupMixin","h","tag","$slots","default","hideOnLeave","title","content","popover"],"mappings":"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"}