Файловый менеджер - Редактировать - /home/freeclou/app.optimyar.com/backend/node_modules/react-tooltip/dist/index.js.map
Назад
{"version":3,"file":"index.js","sources":["../src/constant.js","../src/decorators/staticMethods.js","../src/decorators/windowListener.js","../src/decorators/customEvent.js","../src/decorators/isCapture.js","../src/decorators/getEffect.js","../src/decorators/bodyMode.js","../src/decorators/trackRemoval.js","../src/utils/getPosition.js","../src/utils/getTipContent.js","../src/utils/aria.js","../src/utils/nodeListToArray.js","../src/utils/uuid.js","../src/decorators/defaultStyles.js","../src/decorators/styler.js","../src/index.js"],"sourcesContent":["export default {\n GLOBAL: {\n HIDE: '__react_tooltip_hide_event',\n REBUILD: '__react_tooltip_rebuild_event',\n SHOW: '__react_tooltip_show_event'\n }\n};\n","/**\n * Static methods for react-tooltip\n */\nimport CONSTANT from '../constant';\n\nconst dispatchGlobalEvent = (eventName, opts) => {\n // Compatible with IE\n // @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work\n // @see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n let event;\n\n if (typeof window.CustomEvent === 'function') {\n event = new window.CustomEvent(eventName, { detail: opts });\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventName, false, true, opts);\n }\n\n window.dispatchEvent(event);\n};\n\nexport default function(target) {\n /**\n * Hide all tooltip\n * @trigger ReactTooltip.hide()\n */\n target.hide = target => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.HIDE, { target });\n };\n\n /**\n * Rebuild all tooltip\n * @trigger ReactTooltip.rebuild()\n */\n target.rebuild = () => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.REBUILD);\n };\n\n /**\n * Show specific tooltip\n * @trigger ReactTooltip.show()\n */\n target.show = target => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.SHOW, { target });\n };\n\n target.prototype.globalRebuild = function() {\n if (this.mount) {\n this.unbindListener();\n this.bindListener();\n }\n };\n\n target.prototype.globalShow = function(event) {\n if (this.mount) {\n const hasTarget =\n (event && event.detail && event.detail.target && true) || false;\n // Create a fake event, specific show will limit the type to `solid`\n // only `float` type cares e.clientX e.clientY\n this.showTooltip(\n { currentTarget: hasTarget && event.detail.target },\n true\n );\n }\n };\n\n target.prototype.globalHide = function(event) {\n if (this.mount) {\n const hasTarget =\n (event && event.detail && event.detail.target && true) || false;\n this.hideTooltip(\n { currentTarget: hasTarget && event.detail.target },\n hasTarget\n );\n }\n };\n}\n","/**\n * Events that should be bound to the window\n */\nimport CONSTANT from '../constant';\n\nexport default function(target) {\n target.prototype.bindWindowEvents = function(resizeHide) {\n // ReactTooltip.hide\n window.removeEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide);\n window.addEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide, false);\n\n // ReactTooltip.rebuild\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.addEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild, false);\n\n // ReactTooltip.show\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.addEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow, false);\n\n // Resize\n if (resizeHide) {\n window.removeEventListener('resize', this.onWindowResize);\n window.addEventListener('resize', this.onWindowResize, false);\n }\n };\n\n target.prototype.unbindWindowEvents = function() {\n window.removeEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide);\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.removeEventListener('resize', this.onWindowResize);\n };\n\n /**\n * invoked by resize event of window\n */\n target.prototype.onWindowResize = function() {\n if (!this.mount) return;\n this.hideTooltip();\n };\n}\n","/**\n * Custom events to control showing and hiding of tooltip\n *\n * @attributes\n * - `event` {String}\n * - `eventOff` {String}\n */\n\nexport const checkStatus = function(dataEventOff, e) {\n const { show } = this.state;\n const { id } = this.props;\n const isCapture = this.isCapture(e.currentTarget);\n const currentItem = e.currentTarget.getAttribute('currentItem');\n\n if (!isCapture) e.stopPropagation();\n if (show && currentItem === 'true') {\n if (!dataEventOff) this.hideTooltip(e);\n } else {\n e.currentTarget.setAttribute('currentItem', 'true');\n setUntargetItems(e.currentTarget, this.getTargetArray(id));\n this.showTooltip(e);\n }\n};\n\nconst setUntargetItems = function(currentTarget, targetArray) {\n for (let i = 0; i < targetArray.length; i++) {\n if (currentTarget !== targetArray[i]) {\n targetArray[i].setAttribute('currentItem', 'false');\n } else {\n targetArray[i].setAttribute('currentItem', 'true');\n }\n }\n};\n\nconst customListeners = {\n id: '9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf',\n set(target, event, listener) {\n if (this.id in target) {\n const map = target[this.id];\n map[event] = listener;\n } else {\n // this is workaround for WeakMap, which is not supported in older browsers, such as IE\n Object.defineProperty(target, this.id, {\n configurable: true,\n value: { [event]: listener }\n });\n }\n },\n get(target, event) {\n const map = target[this.id];\n if (map !== undefined) {\n return map[event];\n }\n }\n};\n\nexport default function(target) {\n target.prototype.isCustomEvent = function(ele) {\n const { event } = this.state;\n return event || !!ele.getAttribute('data-event');\n };\n\n /* Bind listener for custom event */\n target.prototype.customBindListener = function(ele) {\n const { event, eventOff } = this.state;\n const dataEvent = ele.getAttribute('data-event') || event;\n const dataEventOff = ele.getAttribute('data-event-off') || eventOff;\n\n dataEvent.split(' ').forEach(event => {\n ele.removeEventListener(event, customListeners.get(ele, event));\n const customListener = checkStatus.bind(this, dataEventOff);\n customListeners.set(ele, event, customListener);\n ele.addEventListener(event, customListener, false);\n });\n if (dataEventOff) {\n dataEventOff.split(' ').forEach(event => {\n ele.removeEventListener(event, this.hideTooltip);\n ele.addEventListener(event, this.hideTooltip, false);\n });\n }\n };\n\n /* Unbind listener for custom event */\n target.prototype.customUnbindListener = function(ele) {\n const { event, eventOff } = this.state;\n const dataEvent = event || ele.getAttribute('data-event');\n const dataEventOff = eventOff || ele.getAttribute('data-event-off');\n\n ele.removeEventListener(dataEvent, customListeners.get(ele, event));\n if (dataEventOff) ele.removeEventListener(dataEventOff, this.hideTooltip);\n };\n}\n","/**\n * Util method to judge if it should follow capture model\n */\n\nexport default function(target) {\n target.prototype.isCapture = function(currentTarget) {\n return (\n (currentTarget &&\n currentTarget.getAttribute('data-iscapture') === 'true') ||\n this.props.isCapture ||\n false\n );\n };\n}\n","/**\n * Util method to get effect\n */\n\nexport default function(target) {\n target.prototype.getEffect = function(currentTarget) {\n const dataEffect = currentTarget.getAttribute('data-effect');\n return dataEffect || this.props.effect || 'float';\n };\n}\n","/**\n * Util method to get effect\n */\nimport { checkStatus } from './customEvent';\n\nconst makeProxy = e => {\n const proxy = {};\n for (const key in e) {\n if (typeof e[key] === 'function') {\n proxy[key] = e[key].bind(e);\n } else {\n proxy[key] = e[key];\n }\n }\n return proxy;\n};\n\nconst bodyListener = function(callback, options, e) {\n const { respectEffect = false, customEvent = false } = options;\n const { id } = this.props;\n\n const tip = e.target.getAttribute('data-tip') || null;\n const forId = e.target.getAttribute('data-for') || null;\n\n const target = e.target;\n if (this.isCustomEvent(target) && !customEvent) {\n return;\n }\n\n const isTargetBelongsToTooltip =\n (id == null && forId == null) || forId === id;\n\n if (\n tip != null &&\n (!respectEffect || this.getEffect(target) === 'float') &&\n isTargetBelongsToTooltip\n ) {\n const proxy = makeProxy(e);\n proxy.currentTarget = target;\n callback(proxy);\n }\n};\n\nconst findCustomEvents = (targetArray, dataAttribute) => {\n const events = {};\n targetArray.forEach(target => {\n const event = target.getAttribute(dataAttribute);\n if (event) event.split(' ').forEach(event => (events[event] = true));\n });\n\n return events;\n};\n\nconst getBody = () => document.getElementsByTagName('body')[0];\n\nexport default function(target) {\n target.prototype.isBodyMode = function() {\n return !!this.props.bodyMode;\n };\n\n target.prototype.bindBodyListener = function(targetArray) {\n const {\n event,\n eventOff,\n possibleCustomEvents,\n possibleCustomEventsOff\n } = this.state;\n const body = getBody();\n\n const customEvents = findCustomEvents(targetArray, 'data-event');\n const customEventsOff = findCustomEvents(targetArray, 'data-event-off');\n\n if (event != null) customEvents[event] = true;\n if (eventOff != null) customEventsOff[eventOff] = true;\n possibleCustomEvents\n .split(' ')\n .forEach(event => (customEvents[event] = true));\n possibleCustomEventsOff\n .split(' ')\n .forEach(event => (customEventsOff[event] = true));\n\n this.unbindBodyListener(body);\n\n const listeners = (this.bodyModeListeners = {});\n if (event == null) {\n listeners.mouseover = bodyListener.bind(this, this.showTooltip, {});\n listeners.mousemove = bodyListener.bind(this, this.updateTooltip, {\n respectEffect: true\n });\n listeners.mouseout = bodyListener.bind(this, this.hideTooltip, {});\n }\n\n for (const event in customEvents) {\n listeners[event] = bodyListener.bind(\n this,\n e => {\n const targetEventOff =\n e.currentTarget.getAttribute('data-event-off') || eventOff;\n checkStatus.call(this, targetEventOff, e);\n },\n { customEvent: true }\n );\n }\n for (const event in customEventsOff) {\n listeners[event] = bodyListener.bind(this, this.hideTooltip, {\n customEvent: true\n });\n }\n for (const event in listeners) {\n body.addEventListener(event, listeners[event]);\n }\n };\n\n target.prototype.unbindBodyListener = function(body) {\n body = body || getBody();\n\n const listeners = this.bodyModeListeners;\n for (const event in listeners) {\n body.removeEventListener(event, listeners[event]);\n }\n };\n}\n","/**\n * Tracking target removing from DOM.\n * It's necessary to hide tooltip when it's target disappears.\n * Otherwise, the tooltip would be shown forever until another target\n * is triggered.\n *\n * If MutationObserver is not available, this feature just doesn't work.\n */\n\n// https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/\nconst getMutationObserverClass = () => {\n return (\n window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n );\n};\n\nexport default function(target) {\n target.prototype.bindRemovalTracker = function() {\n const MutationObserver = getMutationObserverClass();\n if (MutationObserver == null) return;\n\n const observer = new MutationObserver(mutations => {\n for (let m1 = 0; m1 < mutations.length; m1++) {\n const mutation = mutations[m1];\n for (let m2 = 0; m2 < mutation.removedNodes.length; m2++) {\n const element = mutation.removedNodes[m2];\n if (element === this.state.currentTarget) {\n this.hideTooltip();\n return;\n }\n }\n }\n });\n\n observer.observe(window.document, { childList: true, subtree: true });\n\n this.removalTracker = observer;\n };\n\n target.prototype.unbindRemovalTracker = function() {\n if (this.removalTracker) {\n this.removalTracker.disconnect();\n this.removalTracker = null;\n }\n };\n}\n","/**\n * Calculate the position of tooltip\n *\n * @params\n * - `e` {Event} the event of current mouse\n * - `target` {Element} the currentTarget of the event\n * - `node` {DOM} the react-tooltip object\n * - `place` {String} top / right / bottom / left\n * - `effect` {String} float / solid\n * - `offset` {Object} the offset to default position\n *\n * @return {Object}\n * - `isNewState` {Bool} required\n * - `newState` {Object}\n * - `position` {Object} {left: {Number}, top: {Number}}\n */\nexport default function(e, target, node, place, desiredPlace, effect, offset) {\n const { width: tipWidth, height: tipHeight } = getDimensions(node);\n\n const { width: targetWidth, height: targetHeight } = getDimensions(target);\n\n const { mouseX, mouseY } = getCurrentOffset(e, target, effect);\n const defaultOffset = getDefaultPosition(\n effect,\n targetWidth,\n targetHeight,\n tipWidth,\n tipHeight\n );\n const { extraOffsetX, extraOffsetY } = calculateOffset(offset);\n\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const { parentTop, parentLeft } = getParent(node);\n\n // Get the edge offset of the tooltip\n const getTipOffsetLeft = place => {\n const offsetX = defaultOffset[place].l;\n return mouseX + offsetX + extraOffsetX;\n };\n const getTipOffsetRight = place => {\n const offsetX = defaultOffset[place].r;\n return mouseX + offsetX + extraOffsetX;\n };\n const getTipOffsetTop = place => {\n const offsetY = defaultOffset[place].t;\n return mouseY + offsetY + extraOffsetY;\n };\n const getTipOffsetBottom = place => {\n const offsetY = defaultOffset[place].b;\n return mouseY + offsetY + extraOffsetY;\n };\n\n //\n // Functions to test whether the tooltip's sides are inside\n // the client window for a given orientation p\n //\n // _____________\n // | | <-- Right side\n // | p = 'left' |\\\n // | |/ |\\\n // |_____________| |_\\ <-- Mouse\n // / \\ |\n // |\n // |\n // Bottom side\n //\n const outsideLeft = p => getTipOffsetLeft(p) < 0;\n const outsideRight = p => getTipOffsetRight(p) > windowWidth;\n const outsideTop = p => getTipOffsetTop(p) < 0;\n const outsideBottom = p => getTipOffsetBottom(p) > windowHeight;\n\n // Check whether the tooltip with orientation p is completely inside the client window\n const outside = p =>\n outsideLeft(p) || outsideRight(p) || outsideTop(p) || outsideBottom(p);\n const inside = p => !outside(p);\n\n const placesList = ['top', 'bottom', 'left', 'right'];\n const insideList = [];\n for (let i = 0; i < 4; i++) {\n const p = placesList[i];\n if (inside(p)) {\n insideList.push(p);\n }\n }\n\n let isNewState = false;\n let newPlace;\n const shouldUpdatePlace = desiredPlace !== place;\n if (inside(desiredPlace) && shouldUpdatePlace) {\n isNewState = true;\n newPlace = desiredPlace;\n } else if (insideList.length > 0 && outside(desiredPlace) && outside(place)) {\n isNewState = true;\n newPlace = insideList[0];\n }\n\n if (isNewState) {\n return {\n isNewState: true,\n newState: { place: newPlace }\n };\n }\n\n return {\n isNewState: false,\n position: {\n left: parseInt(getTipOffsetLeft(place) - parentLeft, 10),\n top: parseInt(getTipOffsetTop(place) - parentTop, 10)\n }\n };\n}\n\nconst getDimensions = node => {\n const { height, width } = node.getBoundingClientRect();\n return {\n height: parseInt(height, 10),\n width: parseInt(width, 10)\n };\n};\n\n// Get current mouse offset\nconst getCurrentOffset = (e, currentTarget, effect) => {\n const boundingClientRect = currentTarget.getBoundingClientRect();\n const targetTop = boundingClientRect.top;\n const targetLeft = boundingClientRect.left;\n const { width: targetWidth, height: targetHeight } = getDimensions(\n currentTarget\n );\n\n if (effect === 'float') {\n return {\n mouseX: e.clientX,\n mouseY: e.clientY\n };\n }\n return {\n mouseX: targetLeft + targetWidth / 2,\n mouseY: targetTop + targetHeight / 2\n };\n};\n\n// List all possibility of tooltip final offset\n// This is useful in judging if it is necessary for tooltip to switch position when out of window\nconst getDefaultPosition = (\n effect,\n targetWidth,\n targetHeight,\n tipWidth,\n tipHeight\n) => {\n let top;\n let right;\n let bottom;\n let left;\n const disToMouse = 3;\n const triangleHeight = 2;\n const cursorHeight = 12; // Optimize for float bottom only, cause the cursor will hide the tooltip\n\n if (effect === 'float') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(tipHeight + disToMouse + triangleHeight),\n b: -disToMouse\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: disToMouse + cursorHeight,\n b: tipHeight + disToMouse + triangleHeight + cursorHeight\n };\n left = {\n l: -(tipWidth + disToMouse + triangleHeight),\n r: -disToMouse,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: disToMouse,\n r: tipWidth + disToMouse + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n } else if (effect === 'solid') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(targetHeight / 2 + tipHeight + triangleHeight),\n b: -(targetHeight / 2)\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: targetHeight / 2,\n b: targetHeight / 2 + tipHeight + triangleHeight\n };\n left = {\n l: -(tipWidth + targetWidth / 2 + triangleHeight),\n r: -(targetWidth / 2),\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: targetWidth / 2,\n r: tipWidth + targetWidth / 2 + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n }\n\n return { top, bottom, left, right };\n};\n\n// Consider additional offset into position calculation\nconst calculateOffset = offset => {\n let extraOffsetX = 0;\n let extraOffsetY = 0;\n\n if (Object.prototype.toString.apply(offset) === '[object String]') {\n offset = JSON.parse(offset.toString().replace(/'/g, '\"'));\n }\n for (const key in offset) {\n if (key === 'top') {\n extraOffsetY -= parseInt(offset[key], 10);\n } else if (key === 'bottom') {\n extraOffsetY += parseInt(offset[key], 10);\n } else if (key === 'left') {\n extraOffsetX -= parseInt(offset[key], 10);\n } else if (key === 'right') {\n extraOffsetX += parseInt(offset[key], 10);\n }\n }\n\n return { extraOffsetX, extraOffsetY };\n};\n\n// Get the offset of the parent elements\nconst getParent = currentTarget => {\n let currentParent = currentTarget;\n while (currentParent) {\n const computedStyle = window.getComputedStyle(currentParent);\n // transform and will-change: transform change the containing block\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_Block\n if (\n computedStyle.getPropertyValue('transform') !== 'none' ||\n computedStyle.getPropertyValue('will-change') === 'transform'\n )\n break;\n currentParent = currentParent.parentElement;\n }\n\n const parentTop =\n (currentParent && currentParent.getBoundingClientRect().top) || 0;\n const parentLeft =\n (currentParent && currentParent.getBoundingClientRect().left) || 0;\n\n return { parentTop, parentLeft };\n};\n","/**\n * To get the tooltip content\n * it may comes from data-tip or this.props.children\n * it should support multiline\n *\n * @params\n * - `tip` {String} value of data-tip\n * - `children` {ReactElement} this.props.children\n * - `multiline` {Any} could be Bool(true/false) or String('true'/'false')\n *\n * @return\n * - String or react component\n */\nimport React from 'react';\n\nexport default function(tip, children, getContent, multiline) {\n if (children) return children;\n if (getContent !== undefined && getContent !== null) return getContent; // getContent can be 0, '', etc.\n if (getContent === null) return null; // Tip not exist and children is null or undefined\n\n const regexp = /<br\\s*\\/?>/;\n if (!multiline || multiline === 'false' || !regexp.test(tip)) {\n // No trim(), so that user can keep their input\n return tip;\n }\n\n // Multiline tooltip content\n return tip.split(regexp).map((d, i) => {\n return (\n <span key={i} className=\"multi-line\">\n {d}\n </span>\n );\n });\n}\n","/**\n * Support aria- and role in ReactTooltip\n *\n * @params props {Object}\n * @return {Object}\n */\nexport function parseAria(props) {\n const ariaObj = {};\n Object.keys(props)\n .filter(prop => {\n // aria-xxx and role is acceptable\n return /(^aria-\\w+$|^role$)/.test(prop);\n })\n .forEach(prop => {\n ariaObj[prop] = props[prop];\n });\n\n return ariaObj;\n}\n","/**\n * Convert nodelist to array\n * @see https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/core/createArrayFromMixed.js#L24\n * NodeLists are functions in Safari\n */\n\nexport default function(nodeList) {\n const length = nodeList.length;\n if (nodeList.hasOwnProperty) {\n return Array.prototype.slice.call(nodeList);\n }\n return new Array(length).fill().map(index => nodeList[index]);\n}\n","import { v4 as uuid } from 'uuid';\n\nexport function generateUUID() {\n return 't' + uuid();\n}\n","/**\n * Default pop-up style values (text color, background color).\n */\nconst defaultColors = {\n dark: {\n text: '#fff',\n background: '#222',\n border: 'transparent',\n arrow: '#222'\n },\n success: {\n text: '#fff',\n background: '#8DC572',\n border: 'transparent',\n arrow: '#8DC572'\n },\n warning: {\n text: '#fff',\n background: '#F0AD4E',\n border: 'transparent',\n arrow: '#F0AD4E'\n },\n error: {\n text: '#fff',\n background: '#BE6464',\n border: 'transparent',\n arrow: '#BE6464'\n },\n info: {\n text: '#fff',\n background: '#337AB7',\n border: 'transparent',\n arrow: '#337AB7'\n },\n light: {\n text: '#222',\n background: '#fff',\n border: 'transparent',\n arrow: '#fff'\n }\n};\n\nexport function getDefaultPopupColors(type) {\n return defaultColors[type] ? { ...defaultColors[type] } : undefined;\n}\n","import { getDefaultPopupColors } from './defaultStyles';\n\n/**\n * Generates the specific tooltip style for use on render.\n */\nexport function generateTooltipStyle(uuid, customColors, type, hasBorder) {\n return generateStyle(uuid, getPopupColors(customColors, type, hasBorder));\n}\n\n/**\n * Generates the tooltip style rules based on the element-specified \"data-type\" property.\n */\nfunction generateStyle(uuid, colors) {\n const textColor = colors.text;\n const backgroundColor = colors.background;\n const borderColor = colors.border;\n const arrowColor = colors.arrow;\n\n return `\n \t.${uuid} {\n\t color: ${textColor};\n\t background: ${backgroundColor};\n\t border: 1px solid ${borderColor};\n \t}\n\n \t.${uuid}.place-top {\n margin-top: -10px;\n }\n .${uuid}.place-top::before {\n border-top: 8px solid ${borderColor};\n }\n .${uuid}.place-top::after {\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n bottom: -6px;\n left: 50%;\n margin-left: -8px;\n border-top-color: ${arrowColor};\n border-top-style: solid;\n border-top-width: 6px;\n }\n\n .${uuid}.place-bottom {\n margin-top: 10px;\n }\n .${uuid}.place-bottom::before {\n border-bottom: 8px solid ${borderColor};\n }\n .${uuid}.place-bottom::after {\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n top: -6px;\n left: 50%;\n margin-left: -8px;\n border-bottom-color: ${arrowColor};\n border-bottom-style: solid;\n border-bottom-width: 6px;\n }\n\n .${uuid}.place-left {\n margin-left: -10px;\n }\n .${uuid}.place-left::before {\n border-left: 8px solid ${borderColor};\n }\n .${uuid}.place-left::after {\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n right: -6px;\n top: 50%;\n margin-top: -4px;\n border-left-color: ${arrowColor};\n border-left-style: solid;\n border-left-width: 6px;\n }\n\n .${uuid}.place-right {\n margin-left: 10px;\n }\n .${uuid}.place-right::before {\n border-right: 8px solid ${borderColor};\n }\n .${uuid}.place-right::after {\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n left: -6px;\n top: 50%;\n margin-top: -4px;\n border-right-color: ${arrowColor};\n border-right-style: solid;\n border-right-width: 6px;\n }\n `;\n}\n\nfunction getPopupColors(customColors, type, hasBorder) {\n const textColor = customColors.text;\n const backgroundColor = customColors.background;\n const borderColor = customColors.border;\n const arrowColor = customColors.arrow\n ? customColors.arrow\n : customColors.background;\n\n const colors = getDefaultPopupColors(type);\n\n if (textColor) {\n colors.text = textColor;\n }\n\n if (backgroundColor) {\n colors.background = backgroundColor;\n }\n\n if (hasBorder) {\n if (borderColor) {\n colors.border = borderColor;\n } else {\n colors.border = type === 'light' ? 'black' : 'white';\n }\n }\n\n if (arrowColor) {\n colors.arrow = arrowColor;\n }\n\n return colors;\n}\n","/* eslint-disable no-unused-vars, dot-notation */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/* Decorators */\nimport staticMethods from './decorators/staticMethods';\nimport windowListener from './decorators/windowListener';\nimport customEvent from './decorators/customEvent';\nimport isCapture from './decorators/isCapture';\nimport getEffect from './decorators/getEffect';\nimport bodyMode from './decorators/bodyMode';\nimport trackRemoval from './decorators/trackRemoval';\n\n/* Utils */\nimport getPosition from './utils/getPosition';\nimport getTipContent from './utils/getTipContent';\nimport { parseAria } from './utils/aria';\nimport nodeListToArray from './utils/nodeListToArray';\nimport { generateUUID } from './utils/uuid';\n\n/* CSS */\nimport baseCss from './index.scss';\nimport { generateTooltipStyle } from './decorators/styler';\n\n@staticMethods\n@windowListener\n@customEvent\n@isCapture\n@getEffect\n@bodyMode\n@trackRemoval\nclass ReactTooltip extends React.Component {\n static get propTypes() {\n return {\n uuid: PropTypes.string,\n children: PropTypes.any,\n place: PropTypes.string,\n type: PropTypes.string,\n effect: PropTypes.string,\n offset: PropTypes.object,\n multiline: PropTypes.bool,\n border: PropTypes.bool,\n textColor: PropTypes.string,\n backgroundColor: PropTypes.string,\n borderColor: PropTypes.string,\n arrowColor: PropTypes.string,\n insecure: PropTypes.bool,\n class: PropTypes.string,\n className: PropTypes.string,\n id: PropTypes.string,\n html: PropTypes.bool,\n delayHide: PropTypes.number,\n delayUpdate: PropTypes.number,\n delayShow: PropTypes.number,\n event: PropTypes.string,\n eventOff: PropTypes.string,\n isCapture: PropTypes.bool,\n globalEventOff: PropTypes.string,\n getContent: PropTypes.any,\n afterShow: PropTypes.func,\n afterHide: PropTypes.func,\n overridePosition: PropTypes.func,\n disable: PropTypes.bool,\n scrollHide: PropTypes.bool,\n resizeHide: PropTypes.bool,\n wrapper: PropTypes.string,\n bodyMode: PropTypes.bool,\n possibleCustomEvents: PropTypes.string,\n possibleCustomEventsOff: PropTypes.string,\n clickable: PropTypes.bool\n };\n }\n\n static defaultProps = {\n insecure: true,\n resizeHide: true,\n wrapper: 'div',\n clickable: false\n };\n\n static supportedWrappers = ['div', 'span'];\n\n static displayName = 'ReactTooltip';\n\n constructor(props) {\n super(props);\n\n this.state = {\n uuid: props.uuid || generateUUID(),\n place: props.place || 'top', // Direction of tooltip\n desiredPlace: props.place || 'top',\n type: 'dark', // Color theme of tooltip\n effect: 'float', // float or fixed\n show: false,\n border: false,\n customColors: {},\n offset: {},\n extraClass: '',\n html: false,\n delayHide: 0,\n delayShow: 0,\n event: props.event || null,\n eventOff: props.eventOff || null,\n currentEvent: null, // Current mouse event\n currentTarget: null, // Current target of mouse event\n ariaProps: parseAria(props), // aria- and role attributes\n isEmptyTip: false,\n disable: false,\n possibleCustomEvents: props.possibleCustomEvents || '',\n possibleCustomEventsOff: props.possibleCustomEventsOff || '',\n originTooltip: null,\n isMultiline: false\n };\n\n this.bind([\n 'showTooltip',\n 'updateTooltip',\n 'hideTooltip',\n 'hideTooltipOnScroll',\n 'getTooltipContent',\n 'globalRebuild',\n 'globalShow',\n 'globalHide',\n 'onWindowResize',\n 'mouseOnToolTip'\n ]);\n\n this.mount = true;\n this.delayShowLoop = null;\n this.delayHideLoop = null;\n this.delayReshow = null;\n this.intervalUpdateContent = null;\n }\n\n /**\n * For unify the bind and unbind listener\n */\n bind(methodArray) {\n methodArray.forEach(method => {\n this[method] = this[method].bind(this);\n });\n }\n\n componentDidMount() {\n const { insecure, resizeHide } = this.props;\n\n this.bindListener(); // Bind listener for tooltip\n this.bindWindowEvents(resizeHide); // Bind global event for static method\n this.injectStyles(); // Inject styles for each DOM root having tooltip.\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { ariaProps } = prevState;\n const newAriaProps = parseAria(nextProps);\n const isChanged = Object.keys(newAriaProps).some(props => {\n return newAriaProps[props] !== ariaProps[props];\n });\n if (!isChanged) {\n return null;\n }\n return {\n ...prevState,\n ariaProps: newAriaProps\n };\n }\n\n componentWillUnmount() {\n this.mount = false;\n\n this.clearTimer();\n\n this.unbindListener();\n this.removeScrollListener(this.state.currentTarget);\n this.unbindWindowEvents();\n }\n\n /* Look for the closest DOM root having tooltip and inject styles. */\n injectStyles() {\n const { tooltipRef } = this;\n if (!tooltipRef) {\n return;\n }\n\n let parentNode = tooltipRef.parentNode;\n while (parentNode.parentNode) {\n parentNode = parentNode.parentNode;\n }\n\n let domRoot;\n\n switch (parentNode.constructor.name) {\n case 'HTMLDocument':\n domRoot = parentNode.head;\n break;\n case 'ShadowRoot':\n default:\n domRoot = parentNode;\n break;\n }\n\n // Prevent styles duplication.\n if (!domRoot.querySelector('style[data-react-tooltip]')) {\n const style = document.createElement('style');\n style.textContent = baseCss;\n style.setAttribute('data-react-tooltip', 'true');\n\n domRoot.appendChild(style);\n }\n }\n\n /**\n * Return if the mouse is on the tooltip.\n * @returns {boolean} true - mouse is on the tooltip\n */\n mouseOnToolTip() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n /* old IE or Firefox work around */\n if (!this.tooltipRef.matches) {\n /* old IE work around */\n if (this.tooltipRef.msMatchesSelector) {\n this.tooltipRef.matches = this.tooltipRef.msMatchesSelector;\n } else {\n /* old Firefox work around */\n this.tooltipRef.matches = this.tooltipRef.mozMatchesSelector;\n }\n }\n return this.tooltipRef.matches(':hover');\n }\n return false;\n }\n\n /**\n * Pick out corresponded target elements\n */\n getTargetArray(id) {\n let targetArray = [];\n let selector;\n if (!id) {\n selector = '[data-tip]:not([data-for])';\n } else {\n const escaped = id.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n selector = `[data-tip][data-for=\"${escaped}\"]`;\n }\n\n // Scan document for shadow DOM elements\n nodeListToArray(document.getElementsByTagName('*'))\n .filter(element => element.shadowRoot)\n .forEach(element => {\n targetArray = targetArray.concat(\n nodeListToArray(element.shadowRoot.querySelectorAll(selector))\n );\n });\n return targetArray.concat(\n nodeListToArray(document.querySelectorAll(selector))\n );\n }\n\n /**\n * Bind listener to the target elements\n * These listeners used to trigger showing or hiding the tooltip\n */\n bindListener() {\n const { id, globalEventOff, isCapture } = this.props;\n const targetArray = this.getTargetArray(id);\n\n targetArray.forEach(target => {\n if (target.getAttribute('currentItem') === null) {\n target.setAttribute('currentItem', 'false');\n }\n this.unbindBasicListener(target);\n if (this.isCustomEvent(target)) {\n this.customUnbindListener(target);\n }\n });\n\n if (this.isBodyMode()) {\n this.bindBodyListener(targetArray);\n } else {\n targetArray.forEach(target => {\n const isCaptureMode = this.isCapture(target);\n const effect = this.getEffect(target);\n if (this.isCustomEvent(target)) {\n this.customBindListener(target);\n return;\n }\n\n target.addEventListener('mouseenter', this.showTooltip, isCaptureMode);\n if (effect === 'float') {\n target.addEventListener(\n 'mousemove',\n this.updateTooltip,\n isCaptureMode\n );\n }\n target.addEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n });\n }\n\n // Global event to hide tooltip\n if (globalEventOff) {\n window.removeEventListener(globalEventOff, this.hideTooltip);\n window.addEventListener(globalEventOff, this.hideTooltip, isCapture);\n }\n\n // Track removal of targetArray elements from DOM\n this.bindRemovalTracker();\n }\n\n /**\n * Unbind listeners on target elements\n */\n unbindListener() {\n const { id, globalEventOff } = this.props;\n if (this.isBodyMode()) {\n this.unbindBodyListener();\n } else {\n const targetArray = this.getTargetArray(id);\n targetArray.forEach(target => {\n this.unbindBasicListener(target);\n if (this.isCustomEvent(target)) this.customUnbindListener(target);\n });\n }\n\n if (globalEventOff)\n window.removeEventListener(globalEventOff, this.hideTooltip);\n this.unbindRemovalTracker();\n }\n\n /**\n * Invoke this before bind listener and unmount the component\n * it is necessary to invoke this even when binding custom event\n * so that the tooltip can switch between custom and default listener\n */\n unbindBasicListener(target) {\n const isCaptureMode = this.isCapture(target);\n target.removeEventListener('mouseenter', this.showTooltip, isCaptureMode);\n target.removeEventListener('mousemove', this.updateTooltip, isCaptureMode);\n target.removeEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n }\n\n getTooltipContent() {\n const { getContent, children } = this.props;\n\n // Generate tooltip content\n let content;\n if (getContent) {\n if (Array.isArray(getContent)) {\n content = getContent[0] && getContent[0](this.state.originTooltip);\n } else {\n content = getContent(this.state.originTooltip);\n }\n }\n\n return getTipContent(\n this.state.originTooltip,\n children,\n content,\n this.state.isMultiline\n );\n }\n\n isEmptyTip(placeholder) {\n return (\n (typeof placeholder === 'string' && placeholder === '') ||\n placeholder === null\n );\n }\n\n /**\n * When mouse enter, show the tooltip\n */\n showTooltip(e, isGlobalCall) {\n if (!this.tooltipRef) {\n return;\n }\n\n if (isGlobalCall) {\n // Don't trigger other elements belongs to other ReactTooltip\n const targetArray = this.getTargetArray(this.props.id);\n const isMyElement = targetArray.some(ele => ele === e.currentTarget);\n if (!isMyElement) return;\n }\n // Get the tooltip content\n // calculate in this phrase so that tip width height can be detected\n const { multiline, getContent } = this.props;\n const originTooltip = e.currentTarget.getAttribute('data-tip');\n const isMultiline =\n e.currentTarget.getAttribute('data-multiline') || multiline || false;\n\n // If it is focus event or called by ReactTooltip.show, switch to `solid` effect\n const switchToSolid = e instanceof window.FocusEvent || isGlobalCall;\n\n // if it needs to skip adding hide listener to scroll\n let scrollHide = true;\n if (e.currentTarget.getAttribute('data-scroll-hide')) {\n scrollHide = e.currentTarget.getAttribute('data-scroll-hide') === 'true';\n } else if (this.props.scrollHide != null) {\n scrollHide = this.props.scrollHide;\n }\n\n // Make sure the correct place is set\n const desiredPlace =\n e.currentTarget.getAttribute('data-place') || this.props.place || 'top';\n const effect =\n (switchToSolid && 'solid') || this.getEffect(e.currentTarget);\n const offset =\n e.currentTarget.getAttribute('data-offset') || this.props.offset || {};\n const result = getPosition(\n e,\n e.currentTarget,\n this.tooltipRef,\n desiredPlace,\n desiredPlace,\n effect,\n offset\n );\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(\n result.position,\n e,\n e.currentTarget,\n this.tooltipRef,\n desiredPlace,\n desiredPlace,\n effect,\n offset\n );\n }\n\n const place = result.isNewState ? result.newState.place : desiredPlace;\n\n // To prevent previously created timers from triggering\n this.clearTimer();\n\n const target = e.currentTarget;\n\n const reshowDelay = this.state.show\n ? target.getAttribute('data-delay-update') || this.props.delayUpdate\n : 0;\n\n const self = this;\n\n const updateState = function updateState() {\n self.setState(\n {\n originTooltip: originTooltip,\n isMultiline: isMultiline,\n desiredPlace: desiredPlace,\n place: place,\n type: target.getAttribute('data-type') || self.props.type || 'dark',\n customColors: {\n text:\n target.getAttribute('data-text-color') ||\n self.props.textColor ||\n null,\n background:\n target.getAttribute('data-background-color') ||\n self.props.backgroundColor ||\n null,\n border:\n target.getAttribute('data-border-color') ||\n self.props.borderColor ||\n null,\n arrow:\n target.getAttribute('data-arrow-color') ||\n self.props.arrowColor ||\n null\n },\n effect: effect,\n offset: offset,\n html:\n (target.getAttribute('data-html')\n ? target.getAttribute('data-html') === 'true'\n : self.props.html) || false,\n delayShow:\n target.getAttribute('data-delay-show') || self.props.delayShow || 0,\n delayHide:\n target.getAttribute('data-delay-hide') || self.props.delayHide || 0,\n delayUpdate:\n target.getAttribute('data-delay-update') ||\n self.props.delayUpdate ||\n 0,\n border:\n (target.getAttribute('data-border')\n ? target.getAttribute('data-border') === 'true'\n : self.props.border) || false,\n extraClass:\n target.getAttribute('data-class') ||\n self.props.class ||\n self.props.className ||\n '',\n disable:\n (target.getAttribute('data-tip-disable')\n ? target.getAttribute('data-tip-disable') === 'true'\n : self.props.disable) || false,\n currentTarget: target\n },\n () => {\n if (scrollHide) {\n self.addScrollListener(self.state.currentTarget);\n }\n\n self.updateTooltip(e);\n\n if (getContent && Array.isArray(getContent)) {\n self.intervalUpdateContent = setInterval(() => {\n if (self.mount) {\n const { getContent } = self.props;\n const placeholder = getTipContent(\n originTooltip,\n '',\n getContent[0](),\n isMultiline\n );\n const isEmptyTip = self.isEmptyTip(placeholder);\n self.setState({ isEmptyTip });\n self.updatePosition();\n }\n }, getContent[1]);\n }\n }\n );\n };\n\n // If there is no delay call immediately, don't allow events to get in first.\n if (reshowDelay) {\n this.delayReshow = setTimeout(updateState, reshowDelay);\n } else {\n updateState();\n }\n }\n\n /**\n * When mouse hover, update tool tip\n */\n updateTooltip(e) {\n const { delayShow, disable } = this.state;\n const { afterShow } = this.props;\n const placeholder = this.getTooltipContent();\n const eventTarget = e.currentTarget || e.target;\n\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n return;\n }\n\n // if the tooltip is empty, disable the tooltip\n if (this.isEmptyTip(placeholder) || disable) {\n return;\n }\n\n const delayTime = !this.state.show ? parseInt(delayShow, 10) : 0;\n\n const updateState = () => {\n if (\n (Array.isArray(placeholder) && placeholder.length > 0) ||\n placeholder\n ) {\n const isInvisible = !this.state.show;\n this.setState(\n {\n currentEvent: e,\n currentTarget: eventTarget,\n show: true\n },\n () => {\n this.updatePosition();\n if (isInvisible && afterShow) {\n afterShow(e);\n }\n }\n );\n }\n };\n\n clearTimeout(this.delayShowLoop);\n if (delayTime) {\n this.delayShowLoop = setTimeout(updateState, delayTime);\n } else {\n updateState();\n }\n }\n\n /*\n * If we're mousing over the tooltip remove it when we leave.\n */\n listenForTooltipExit() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n this.tooltipRef.addEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n removeListenerForTooltipExit() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n /**\n * When mouse leave, hide tooltip\n */\n hideTooltip(e, hasTarget, options = { isScroll: false }) {\n const { disable } = this.state;\n const { isScroll } = options;\n const delayHide = isScroll ? 0 : this.state.delayHide;\n const { afterHide } = this.props;\n const placeholder = this.getTooltipContent();\n if (!this.mount) return;\n if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip\n if (hasTarget) {\n // Don't trigger other elements belongs to other ReactTooltip\n const targetArray = this.getTargetArray(this.props.id);\n const isMyElement = targetArray.some(ele => ele === e.currentTarget);\n if (!isMyElement || !this.state.show) return;\n }\n\n const resetState = () => {\n const isVisible = this.state.show;\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n this.listenForTooltipExit();\n return;\n }\n\n this.removeListenerForTooltipExit();\n\n this.setState({ show: false }, () => {\n this.removeScrollListener(this.state.currentTarget);\n if (isVisible && afterHide) {\n afterHide(e);\n }\n });\n };\n\n this.clearTimer();\n if (delayHide) {\n this.delayHideLoop = setTimeout(resetState, parseInt(delayHide, 10));\n } else {\n resetState();\n }\n }\n\n /**\n * When scroll, hide tooltip\n */\n hideTooltipOnScroll(event, hasTarget) {\n this.hideTooltip(event, hasTarget, { isScroll: true });\n }\n\n /**\n * Add scroll event listener when tooltip show\n * automatically hide the tooltip when scrolling\n */\n addScrollListener(currentTarget) {\n const isCaptureMode = this.isCapture(currentTarget);\n window.addEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode);\n }\n\n removeScrollListener(currentTarget) {\n const isCaptureMode = this.isCapture(currentTarget);\n window.removeEventListener(\n 'scroll',\n this.hideTooltipOnScroll,\n isCaptureMode\n );\n }\n\n // Calculation the position\n updatePosition() {\n const {\n currentEvent,\n currentTarget,\n place,\n desiredPlace,\n effect,\n offset\n } = this.state;\n const node = this.tooltipRef;\n const result = getPosition(\n currentEvent,\n currentTarget,\n node,\n place,\n desiredPlace,\n effect,\n offset\n );\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(\n result.position,\n currentEvent,\n currentTarget,\n node,\n place,\n desiredPlace,\n effect,\n offset\n );\n }\n\n if (result.isNewState) {\n // Switch to reverse placement\n return this.setState(result.newState, () => {\n this.updatePosition();\n });\n }\n\n // Set tooltip position\n node.style.left = result.position.left + 'px';\n node.style.top = result.position.top + 'px';\n }\n\n /**\n * CLear all kinds of timeout of interval\n */\n clearTimer() {\n clearTimeout(this.delayShowLoop);\n clearTimeout(this.delayHideLoop);\n clearTimeout(this.delayReshow);\n clearInterval(this.intervalUpdateContent);\n }\n\n hasCustomColors() {\n return Boolean(\n Object.keys(this.state.customColors).find(\n color => color !== 'border' && this.state.customColors[color]\n ) ||\n (this.state.border && this.state.customColors['border'])\n );\n }\n\n render() {\n const { extraClass, html, ariaProps, disable } = this.state;\n const content = this.getTooltipContent();\n const isEmptyTip = this.isEmptyTip(content);\n const style = generateTooltipStyle(\n this.state.uuid,\n this.state.customColors,\n this.state.type,\n this.state.border\n );\n\n const tooltipClass =\n '__react_component_tooltip' +\n ` ${this.state.uuid}` +\n (this.state.show && !disable && !isEmptyTip ? ' show' : '') +\n (this.state.border ? ' border' : '') +\n ` place-${this.state.place}` + // top, bottom, left, right\n ` type-${this.hasCustomColors() ? 'custom' : this.state.type}` + // dark, success, warning, error, info, light, custom\n (this.props.delayUpdate ? ' allow_hover' : '') +\n (this.props.clickable ? ' allow_click' : '');\n\n let Wrapper = this.props.wrapper;\n\n if (ReactTooltip.supportedWrappers.indexOf(Wrapper) < 0) {\n Wrapper = ReactTooltip.defaultProps.wrapper;\n }\n\n const wrapperClassName = [tooltipClass, extraClass]\n .filter(Boolean)\n .join(' ');\n\n if (html) {\n const htmlContent = `${content}\\n<style>${style}</style>`;\n\n return (\n <Wrapper\n className={`${wrapperClassName}`}\n id={this.props.id}\n ref={ref => (this.tooltipRef = ref)}\n {...ariaProps}\n data-id=\"tooltip\"\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n />\n );\n } else {\n return (\n <Wrapper\n className={`${wrapperClassName}`}\n id={this.props.id}\n {...ariaProps}\n ref={ref => (this.tooltipRef = ref)}\n data-id=\"tooltip\"\n >\n <style dangerouslySetInnerHTML={{ __html: style }} />\n {content}\n </Wrapper>\n );\n }\n }\n}\n\nexport default ReactTooltip;\n"],"names":["GLOBAL","HIDE","REBUILD","SHOW","dispatchGlobalEvent","eventName","opts","event","window","CustomEvent","detail","document","createEvent","initEvent","dispatchEvent","target","hide","CONSTANT","rebuild","show","prototype","globalRebuild","mount","unbindListener","bindListener","globalShow","hasTarget","showTooltip","currentTarget","globalHide","hideTooltip","bindWindowEvents","resizeHide","removeEventListener","addEventListener","onWindowResize","unbindWindowEvents","checkStatus","dataEventOff","e","state","id","props","isCapture","currentItem","getAttribute","stopPropagation","setAttribute","setUntargetItems","getTargetArray","targetArray","i","length","customListeners","set","listener","map","Object","defineProperty","configurable","value","get","undefined","isCustomEvent","ele","customBindListener","eventOff","dataEvent","split","forEach","customListener","bind","customUnbindListener","getEffect","dataEffect","effect","makeProxy","proxy","key","bodyListener","callback","options","respectEffect","customEvent","tip","forId","isTargetBelongsToTooltip","findCustomEvents","dataAttribute","events","getBody","getElementsByTagName","isBodyMode","bodyMode","bindBodyListener","possibleCustomEvents","possibleCustomEventsOff","body","customEvents","customEventsOff","unbindBodyListener","listeners","bodyModeListeners","mouseover","mousemove","updateTooltip","mouseout","targetEventOff","call","getMutationObserverClass","MutationObserver","WebKitMutationObserver","MozMutationObserver","bindRemovalTracker","observer","mutations","m1","mutation","m2","removedNodes","element","observe","childList","subtree","removalTracker","unbindRemovalTracker","disconnect","node","place","desiredPlace","offset","getDimensions","tipWidth","width","tipHeight","height","targetWidth","targetHeight","getCurrentOffset","mouseX","mouseY","defaultOffset","getDefaultPosition","calculateOffset","extraOffsetX","extraOffsetY","windowWidth","innerWidth","windowHeight","innerHeight","getParent","parentTop","parentLeft","getTipOffsetLeft","offsetX","l","getTipOffsetRight","r","getTipOffsetTop","offsetY","t","getTipOffsetBottom","b","outsideLeft","p","outsideRight","outsideTop","outsideBottom","outside","inside","placesList","insideList","push","isNewState","newPlace","shouldUpdatePlace","newState","position","left","parseInt","top","getBoundingClientRect","boundingClientRect","targetTop","targetLeft","clientX","clientY","right","bottom","disToMouse","triangleHeight","cursorHeight","toString","apply","JSON","parse","replace","currentParent","computedStyle","getComputedStyle","getPropertyValue","parentElement","children","getContent","multiline","regexp","test","d","parseAria","ariaObj","keys","filter","prop","nodeList","hasOwnProperty","Array","slice","fill","index","generateUUID","uuid","defaultColors","dark","text","background","border","arrow","success","warning","error","info","light","getDefaultPopupColors","type","generateTooltipStyle","customColors","hasBorder","generateStyle","getPopupColors","colors","textColor","backgroundColor","borderColor","arrowColor","ReactTooltip","staticMethods","windowListener","trackRemoval","PropTypes","string","any","object","bool","insecure","className","html","delayHide","number","delayUpdate","delayShow","globalEventOff","afterShow","func","afterHide","overridePosition","disable","scrollHide","wrapper","clickable","extraClass","currentEvent","ariaProps","isEmptyTip","originTooltip","isMultiline","delayShowLoop","delayHideLoop","delayReshow","intervalUpdateContent","methodArray","method","injectStyles","clearTimer","removeScrollListener","tooltipRef","parentNode","domRoot","constructor","name","head","querySelector","style","createElement","textContent","baseCss","appendChild","matches","msMatchesSelector","mozMatchesSelector","selector","escaped","nodeListToArray","shadowRoot","concat","querySelectorAll","unbindBasicListener","isCaptureMode","content","isArray","getTipContent","placeholder","isGlobalCall","isMyElement","some","switchToSolid","FocusEvent","result","getPosition","reshowDelay","self","updateState","setState","addScrollListener","setInterval","updatePosition","setTimeout","getTooltipContent","eventTarget","mouseOnToolTip","delayTime","isInvisible","clearTimeout","isScroll","resetState","isVisible","listenForTooltipExit","removeListenerForTooltipExit","hideTooltipOnScroll","clearInterval","Boolean","find","color","tooltipClass","hasCustomColors","Wrapper","supportedWrappers","indexOf","defaultProps","wrapperClassName","join","htmlContent","ref","__html","nextProps","prevState","newAriaProps","isChanged","React","Component"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0.02 |
proxy
|
phpinfo
|
Настройка