{"version":3,"sources":["webpack:///./src/utils/zendesk.ts","webpack:///./src/components/SEO.tsx","webpack:///./src/components/Accordion.tsx","webpack:///./src/components/links/Blog.tsx","webpack:///./src/components/Flex.tsx","webpack:///./src/images/preview.png","webpack:///./src/components/SmallText.ts","webpack:///./src/utils/formatters.ts","webpack:///./src/images/question_filled_circle.svg","webpack:///./node_modules/react-tooltip/dist/index.es.js","webpack:///./src/images/rocket.svg","webpack:///./node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/bytesToUuid.js","webpack:///./node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/v4.js","webpack:///./src/images/arrow-bottom.svg","webpack:///./src/components/FaqsSection.tsx","webpack:///./src/components/Hint.tsx","webpack:///./src/components/Divider.ts","webpack:///./src/components/CurrencyInput.tsx","webpack:///./src/pages/interchange-fee-calculator.tsx"],"names":["localeMap","en","ca","updateZendeskWidgetLanguage","language","attempt","timeout","zE","window","console","log","setTimeout","clearTimeout","getFullLocale","error","baseStructuredDataScript","brand","url","name","logo","image","sameAs","baseStructuredDataScriptFAQ","SEO","props","structuredDataScript","location","useLocation","_useI18next","useI18next","t","title","description","preview","indexPreview","siteTitle","pathname","includes","bodyAttributes","class","schema","_props$schema","baseProps","Object","assign","canonical","path","useEffect","React","createElement","Helmet","defer","titleTemplate","charSet","content","rel","href","property","type","JSON","stringify","scripts","Header","styled","summary","withConfig","displayName","componentId","ArrowIcon","div","arrow","Content","Container","details","Accordion","_ref","header","children","_objectWithoutPropertiesLoose","_excluded","BlogLink","slug","anchor","style","_useState","useState","origin","setOrigin","AnchorLink","target","targetLanguage","Flex","StyledDiv","direction","justifyContent","alignItems","gap","module","exports","span","es","fr","de","pt","it","currency","locale","minimumFractionDigits","Intl","NumberFormat","useGrouping","percent","maximumFractionDigits","_defineProperties","i","length","descriptor","enumerable","configurable","writable","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_defineProperty","obj","value","_extends","arguments","source","hasOwnProperty","call","apply","this","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","CONSTANT","HIDE","REBUILD","SHOW","dispatchGlobalEvent","eventName","opts","event","CustomEvent","detail","document","createEvent","initEvent","dispatchEvent","checkStatus","dataEventOff","e","show","state","id","isCapture","currentTarget","currentItem","getAttribute","stopPropagation","hideTooltip","setAttribute","setUntargetItems","getTargetArray","showTooltip","targetArray","customListeners","set","listener","get","map","undefined","bodyListener","callback","options","_options$respectEffec","respectEffect","_options$customEvent","customEvent","tip","forId","isCustomEvent","isTargetBelongsToTooltip","getEffect","proxy","bind","makeProxy","findCustomEvents","dataAttribute","events","split","getBody","getElementsByTagName","getPosition","node","place","desiredPlace","effect","offset","_getDimensions","getDimensions","tipWidth","width","tipHeight","height","_getDimensions2","targetWidth","targetHeight","_getCurrentOffset","getCurrentOffset","mouseX","mouseY","defaultOffset","getDefaultPosition","_calculateOffset","calculateOffset","extraOffsetX","extraOffsetY","windowWidth","innerWidth","windowHeight","innerHeight","_getParent","getParent","parentTop","parentLeft","getTipOffsetLeft","offsetX","l","getTipOffsetTop","offsetY","outsideRight","r","getTipOffsetRight","outsideBottom","b","getTipOffsetBottom","outside","outsideLeft","outsideTop","inside","placesList","insideList","newPlace","isNewState","shouldUpdatePlace","newState","position","left","parseInt","top","_node$getBoundingClie","getBoundingClientRect","boundingClientRect","targetTop","targetLeft","_getDimensions3","clientX","clientY","right","bottom","disToMouse","toString","parse","replace","currentParent","computedStyle","getComputedStyle","getPropertyValue","parentElement","getTipContent","getContent","multiline","regexp","test","d","className","parseAria","ariaObj","prop","nodeListToArray","nodeList","Array","slice","fill","index","defaultColors","dark","text","background","border","success","warning","info","light","generateTooltipStyle","uuid","customColors","hasBorder","colors","textColor","backgroundColor","borderColor","arrowColor","concat","generateStyle","getDefaultPopupColors","getPopupColors","commonjsGlobal","globalThis","global","createCommonjsModule","fn","check","Math","global_1","Function","fails","exec","descriptors","$propertyIsEnumerable","propertyIsEnumerable","objectPropertyIsEnumerable","f","1","V","createPropertyDescriptor","bitmap","classofRaw","indexedObject","requireObjectCoercible","TypeError","toIndexedObject","isObject","toPrimitive","input","PREFERRED_STRING","val","valueOf","toObject","argument","has","document$1","EXISTS","documentCreateElement","ie8DomDefine","a","$getOwnPropertyDescriptor","objectGetOwnPropertyDescriptor","O","P","anObject","String","$defineProperty","objectDefineProperty","Attributes","createNonEnumerableProperty","setGlobal","sharedStore","functionToString","inspectSource","has$1","WeakMap","nativeWeakMap","shared","version","mode","copyright","postfix","random","uid","sharedKey","hiddenKeys","WeakMap$1","store$1","wmget","wmhas","wmset","metadata","facade","STATE","match","internalState","enforce","getterFor","TYPE","redefine","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","noTargetGet","join","aFunction","variable","getBuiltIn","namespace","method","ceil","floor","toInteger","isNaN","min","toLength","max","min$1","createMethod","IS_INCLUDES","$this","el","fromIndex","integer","toAbsoluteIndex","indexOf","objectKeysInternal","names","result","enumBugKeys","hiddenKeys$1","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","ownKeys$1","copyConstructorProperties","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","getOwnPropertyDescriptor$1","functionBindContext","that","aFunction$1","c","isArray","arg","engineUserAgent","process","versions","v8","activeXDocument","engineV8Version","nativeSymbol","Symbol","sham","useSymbolAsUid","iterator","WellKnownSymbolsStore","Symbol$1","createWellKnownSymbol","withoutSetter","wellKnownSymbol","SPECIES","arraySpeciesCreate","originalArray","C","constructor","createMethod$1","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","callbackfn","specificCreate","boundFunction","create","arrayIteration","some","every","find","findIndex","filterOut","objectKeys","objectDefineProperties","Properties","html","IE_PROTO","EmptyConstructor","scriptTag","LT","_NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","display","appendChild","src","contentWindow","open","F","objectCreate","UNSCOPABLES","ArrayPrototype","_class","_class2","_temp","$find","SKIPS_HOLES","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","_export","proto","ReactTooltip","hide","rebuild","globalRebuild","mount","unbindListener","bindListener","globalShow","hasTarget","globalHide","staticMethods","bindWindowEvents","resizeHide","removeEventListener","addEventListener","onWindowResize","unbindWindowEvents","windowListener","ele","customBindListener","_this","_this$state","eventOff","dataEvent","customListener","customUnbindListener","_this$state2","isBodyMode","bodyMode","bindBodyListener","possibleCustomEvents","possibleCustomEventsOff","body","customEvents","customEventsOff","unbindBodyListener","listeners","bodyModeListeners","_event","mouseover","mousemove","updateTooltip","mouseout","targetEventOff","_event2","_event3","_React$Component","instance","_classCallCheck","extraClass","delayHide","delayShow","currentEvent","ariaProps","isEmptyTip","disable","originTooltip","isMultiline","delayShowLoop","delayHideLoop","delayReshow","intervalUpdateContent","subClass","superClass","_inherits","any","bool","insecure","number","delayUpdate","globalEventOff","afterShow","func","afterHide","overridePosition","scrollHide","wrapper","clickable","methodArray","_this2","_this$props","injectStyles","clearTimer","removeScrollListener","tooltipRef","domRoot","parentNode","head","querySelector","textContent","matches","msMatchesSelector","mozMatchesSelector","selector","escaped","element","shadowRoot","querySelectorAll","_this3","_this$props2","unbindBasicListener","isCaptureMode","bindRemovalTracker","_this4","_this$props3","unbindRemovalTracker","_this$props4","placeholder","isGlobalCall","_this$props5","switchToSolid","FocusEvent","reshowDelay","updateState","setState","addScrollListener","setInterval","_getContent","updatePosition","_this5","getTooltipContent","eventTarget","mouseOnToolTip","delayTime","isInvisible","_this6","isScroll","isMyElement","removeAttribute","resetState","isVisible","listenForTooltipExit","removeListenerForTooltipExit","hideTooltipOnScroll","_this7","clearInterval","_this8","Boolean","color","_this9","_this$state3","tooltipClass","hasCustomColors","Wrapper","supportedWrappers","defaultProps","wrapperClassName","htmlContent","ref","dangerouslySetInnerHTML","__html","_ref2","nextProps","prevState","newAriaProps","Component","MutationObserver","WebKitMutationObserver","MozMutationObserver","observer","mutations","m1","mutation","m2","removedNodes","observe","childList","subtree","removalTracker","disconnect","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rng","Error","byteToHex","substr","buf","bth","rnds","ii","FaqSection","section","containerSize","ScreenSizes","md","DefaultAccordion","FaqTitle","SectionHeader","FaqsSection","faqs","Fragment","underline","faq","HintIcon","img","Hint","message","aria-haspopup","data-tip","data-for","marginRight","QuestionCircleFilled","hr","Input","theme","borderRadius","CurrencyInput","onValueChange","amount","setAmount","_useState2","format","maskedAmount","setMaskedAmount","onFocus","onKeyPress","ev","onChange","createMask","Number","IndexContent","List","ul","ListItem","li","InputWrapper","xs","Select","select","IndexBackground","CalculatorCard","CalculatorForm","FeeListItem","RocketContent","Cta","CtaWrapper","CtaContent","SectionTitle","h2","SectionDescription","Rocket","DataRow","FeeTooltip","calculatedFee","listStyle","marginLeft","providerName","percentage","base","provider","interchange","query","InterchangeFeesPage","useTranslation","_useState3","region","setRegion","_useState4","visaMonei","mastercardMonei","visaStripe","mastercardStripe","calculatedFees","setCalculatedFees","_useState5","stripeVisaPercentMore","setStripeVisaPercentMore","_useState6","stripeMastercardPercentMore","setStripeMastercardPercentMore","_useState7","moneiFee","setMoneiFee","_useState8","visa","spain","average","eu","oeu","mastercard","fees","setFees","stripeFee","toFixed","withCurrency","afterPrice","Trans","Section","columnMd","tagName","parent","SectionActions","SignUpButton","variant","marginBottom","flex","selected","Divider","margin","Bold","SmallText","borderBottom","Spacer","PrismicPage","rocket","centered","column"],"mappings":"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","file":"component---src-pages-interchange-fee-calculator-tsx-027fd83eaf23dbaf2d05.js","sourcesContent":["const localeMap: Record = {\n en: 'en-US',\n ca: 'es'\n};\n\nconst getFullLocale = (language: string) => {\n if (!language) return undefined;\n if (localeMap[language]) return localeMap[language];\n return language;\n};\n\nexport const updateZendeskWidgetLanguage = (language: string, attempt = 0) => {\n const zE = window.zE;\n let timeout: NodeJS.Timeout;\n if (!zE) {\n if (attempt > 10) {\n console.log('[Zendesk] widget not found');\n return;\n }\n timeout = setTimeout(() => updateZendeskWidgetLanguage(language, attempt + 1), 500);\n return () => clearTimeout(timeout);\n }\n try {\n console.log('[Zendesk] setting widget language to', language);\n zE('messenger:set', 'locale', getFullLocale(language));\n } catch (error) {\n console.log(error);\n }\n return () => clearTimeout(timeout);\n};\n","import {useLocation} from '@reach/router';\nimport {Helmet, useI18next} from 'gatsby-plugin-react-i18next';\nimport indexPreview from 'images/preview.png';\nimport React, {PropsWithRef, useEffect} from 'react';\nimport {updateZendeskWidgetLanguage} from 'utils/zendesk';\n\ntype Props = PropsWithRef<{\n title?: string;\n description?: string;\n suggestion?: string;\n preview?: string;\n canonical?: string;\n bodyAttributes?: Record;\n schema?: any;\n scripts?: any;\n path?: string;\n}>;\n\nexport const baseStructuredDataScript = {\n '@context': 'https://schema.org',\n '@type': 'FinancialService',\n brand: {\n '@type': 'Organization',\n url: 'https://www.monei.com/',\n name: 'MONEI',\n logo: 'https://assets.monei.com/images/logo-square.png'\n },\n logo: 'https://assets.monei.com/images/logo-square.png',\n image: 'https://assets.monei.com/images/logo-square.png',\n sameAs: [\n 'https://es.linkedin.com/company/monei-digital-payments',\n 'https://www.instagram.com/moneipayments/',\n 'https://monei.com/blog/'\n ]\n};\n\nexport const baseStructuredDataScriptFAQ = {\n '@context': 'https://schema.org',\n '@type': 'FAQPage',\n image: 'https://assets.monei.com/images/logo-square.png',\n sameAs: [\n 'https://es.linkedin.com/company/monei-digital-payments',\n 'https://www.instagram.com/moneipayments/',\n 'https://monei.com/blog/'\n ]\n};\n\nexport const SEO: React.FC = (props) => {\n const location = useLocation();\n const {t, language} = useI18next();\n const title = props.title || t('🚀 Best Payment Platform for Business Growth');\n const description =\n props.description ||\n t(\n 'Use MONEI’s plugins and APIs to accept more payment methods and increase sales online and in-person — all from a single payment platform.'\n );\n const preview = props.preview || indexPreview;\n const siteTitle = 'MONEI' + (location.pathname.includes('/monei-pay') ? ' Pay' : '');\n\n let structuredDataScript;\n\n if (props.bodyAttributes && props.bodyAttributes.class && props.bodyAttributes.class === 'blog') {\n structuredDataScript = props.schema;\n } else {\n const isFAQPage = props.schema?.['@type'] === 'FAQPage';\n const baseProps = isFAQPage ? baseStructuredDataScriptFAQ : baseStructuredDataScript;\n\n structuredDataScript = {\n ...baseProps,\n name: title,\n url:\n props.canonical ||\n 'https://monei.com' + (props.path ? '/' + props.path : location.pathname),\n ...props.schema\n };\n }\n\n useEffect(() => {\n return updateZendeskWidgetLanguage(language);\n }, [language]);\n\n return (\n \n \n {title}\n \n \n {/* Facebook */}\n \n \n \n \n \n \n \n \n {/* Twitter */}\n \n \n \n \n \n\n \n {props.scripts && }\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport arrow from 'images/arrow-bottom.svg';\n\nexport type AccordionProps = {\n header: string;\n};\n\nexport const Header = styled.summary`\n background-color: #eaeaea;\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-weight: bold;\n padding: 1rem 2.5rem 1rem 0.625rem;\n position: relative;\n text-align: left;\n cursor: pointer;\n &::-webkit-details-marker {\n display: none;\n }\n`;\n\nexport const ArrowIcon = styled.div`\n background: url(${arrow}) no-repeat;\n width: 1.25rem;\n height: 0.6875rem;\n flex-shrink: 0;\n margin-left: 0.625rem;\n position: absolute;\n top: calc(50% - 0.3437rem);\n right: 1.25rem;\n`;\n\nexport const Content = styled.div`\n p {\n margin-top: 0.625rem;\n\n @media (max-width: 768px) {\n margin-top: 0.3125rem;\n }\n }\n`;\n\nexport const Container = styled.details`\n font-size: 0.9375rem;\n line-height: 1.0625rem;\n text-align: left;\n\n \n ${ArrowIcon} {\n transition: all 0.3s ease;\n }\n &[open] {\n ${ArrowIcon} {\n transform: rotateX(180deg);\n }\n }\n`;\n\nexport const Accordion: React.FC<\n AccordionProps & React.DetailsHTMLAttributes\n> = ({header, children, ...props}) => {\n return (\n \n
\n {header}\n \n
\n {children}\n
\n );\n};\n","import React, {useEffect, useState} from 'react';\nimport {useI18next} from 'gatsby-plugin-react-i18next';\nimport {AnchorLink} from '../AnchorLink';\nimport {Language, targetLanguage} from '../../../locales/types';\n\nexport type BlogArticle =\n | 'local-payment-methods'\n | 'digital-wallet-ecommerce'\n | 'alternative-payment-methods'\n | 'buy-now-pay-later'\n | 'cross-border-ecommerce'\n | 'online-payment-failure-message'\n | 'frictionless-payments'\n | 'cross-border-payments'\n | 'what-is-3d-secure-and-its-advantages-for-e-commerce'\n | 'psd2-and-strong-customer-authentication-sca-explained'\n | 'psd2'\n | 'sca'\n | 'contactless-payments-safer-faster-checkout'\n | 'email-payment-link'\n | 'understanding-pci-compliance'\n | 'what-is-tokenization-and-its-benefits-for-e-commerce'\n | 'what-is-credit-card-processing'\n | 'acquiring-bank-vs-issuing-bank'\n | 'customize-your-ecommerce-checkout-page-with-monei'\n | 'what-are-interchange-fees'\n | 'apple-pay-ecommerce-integration'\n | 'benefits-of-mobile-payments'\n | 'chargebacks-prevention'\n | 'what-is-a-psp'\n | 'instant-payments-europe-sepa-request-to-pay'\n | 'accept-card-payments-on-phone'\n | 'aws-startup-architecture-of-the-year-challenge-monei'\n | 'qr-code-payments'\n | 'omnichannel-payments'\n | 'click-to-pay-with-visa'\n | 'mastercard-click-to-pay'\n | 'ecommerce-conversion-rate-tips-to-help-you-sell-more'\n | 'black-friday-cyber-monday-payment-trends-2022'\n | 'click-to-pay-ecommerce'\n | 'types-of-payment-methods'\n | 'taxi-card-payments'\n | 'freelancer-payment-methods'\n | 'contactless'\n | 'accepting-credit-card-payments-without-merchant-account'\n | 'what-is-recurring-payment'\n | 'what-is-a-payment-gateway'\n | 'how-to-accept-payments-online'\n | 'secure-payments'\n | 'strong-customer-authentication'\n | 'payment-gateway-vs-virtual-pos'\n | 'virtual-terminal'\n | 'pan-number'\n | 'incapto'\n | 'monei-connect-integrated-payments-kyc';\n\nexport const BlogLink: React.FC<{slug: BlogArticle; anchor?: string, style?: any}> = ({\n slug,\n anchor,\n children,\n style\n}) => {\n const {language} = useI18next();\n const [origin, setOrigin] = useState('https://monei.com');\n\n useEffect(() => {\n setOrigin(window.location.origin);\n }, []);\n return (\n \n {children}\n \n );\n};\n","import styled from 'styled-components';\nimport {StyledDiv} from './StyledSx';\n\ninterface FlexProps {\n direction?: 'row' | 'column';\n justifyContent?:\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'space-evenly';\n alignItems?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around';\n gap?: number;\n}\n\nexport const Flex = styled(StyledDiv)`\n display: flex;\n flex-direction: ${(props) => props.direction || 'row'};\n justify-content: ${(props) => props.justifyContent || 'flex-start'};\n align-items: ${(props) => props.alignItems || 'flex-start'};\n grid-gap: ${(props) => props.gap || 0}px;\n`;\n","module.exports = __webpack_public_path__ + \"static/preview-48d726d90a111f0ef00441db07ae609c.png\";","import styled from 'styled-components';\n\nexport default styled.span`\n font-style: italic;\n font-size: 12px;\n`;\n","const localeMap: Record = {\n en: 'en-US',\n es: 'es-ES',\n fr: 'fr-FR',\n de: 'de-DE',\n pt: 'pt-PT',\n ca: 'ca',\n it: 'it-IT'\n};\nexport const currency = (locale = 'en', minimumFractionDigits = 2) =>\n Intl.NumberFormat(localeMap[locale], {\n currency: 'EUR',\n style: 'currency',\n minimumFractionDigits,\n useGrouping: true\n });\nexport const percent = (locale = 'en') =>\n Intl.NumberFormat(localeMap[locale], {\n maximumFractionDigits: 3,\n style: 'percent',\n useGrouping: true,\n minimumFractionDigits: 0\n });\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDYiIGhlaWdodD0iNTQiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8cGF0aAoJICAgICAgZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDcwOGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTYyLjktMjE5LjVhNDguMyA0OC4zIDAgMDAtMzAuOSA0NC44VjYyMGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTIxLjVjMC0yMy4xIDYuNy00NS45IDE5LjktNjQuOSAxMi45LTE4LjYgMzAuOS0zMi44IDUyLjEtNDAuOSAzNC0xMy4xIDU2LTQxLjYgNTYtNzIuNyAwLTQ0LjEtNDMuMS04MC05Ni04MHMtOTYgMzUuOS05NiA4MHY3LjZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQyMGMwLTM5LjMgMTcuMi03NiA0OC40LTEwMy4zQzQzMC40IDI5MC40IDQ3MCAyNzYgNTEyIDI3NnM4MS42IDE0LjUgMTExLjYgNDAuN0M2NTQuOCAzNDQgNjcyIDM4MC43IDY3MiA0MjBjMCA1Ny44LTM4LjEgMTA5LjgtOTcuMSAxMzIuNXoiIGZpbGw9IiM1RTgwRDIiLz4KPC9zdmc+Cg==\"","import \"core-js/modules/esnext.global-this.js\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 } from 'uuid';\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assertThisInitialized(self);\n}\nvar CONSTANT = {\n GLOBAL: {\n HIDE: '__react_tooltip_hide_event',\n REBUILD: '__react_tooltip_rebuild_event',\n SHOW: '__react_tooltip_show_event'\n }\n};\n\n/**\n * Static methods for react-tooltip\n */\n\nvar dispatchGlobalEvent = function 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 var event;\n if (typeof window.CustomEvent === 'function') {\n event = new window.CustomEvent(eventName, {\n detail: opts\n });\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventName, false, true, opts);\n }\n window.dispatchEvent(event);\n};\nfunction staticMethods(target) {\n /**\n * Hide all tooltip\n * @trigger ReactTooltip.hide()\n */\n target.hide = function (target) {\n dispatchGlobalEvent(CONSTANT.GLOBAL.HIDE, {\n target: target\n });\n };\n /**\n * Rebuild all tooltip\n * @trigger ReactTooltip.rebuild()\n */\n\n target.rebuild = function () {\n dispatchGlobalEvent(CONSTANT.GLOBAL.REBUILD);\n };\n /**\n * Show specific tooltip\n * @trigger ReactTooltip.show()\n */\n\n target.show = function (target) {\n dispatchGlobalEvent(CONSTANT.GLOBAL.SHOW, {\n target: target\n });\n };\n target.prototype.globalRebuild = function () {\n if (this.mount) {\n this.unbindListener();\n this.bindListener();\n }\n };\n target.prototype.globalShow = function (event) {\n if (this.mount) {\n var hasTarget = event && event.detail && event.detail.target && true || false; // Create a fake event, specific show will limit the type to `solid`\n // only `float` type cares e.clientX e.clientY\n\n this.showTooltip({\n currentTarget: hasTarget && event.detail.target\n }, true);\n }\n };\n target.prototype.globalHide = function (event) {\n if (this.mount) {\n var hasTarget = 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 */\nfunction windowListener(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); // ReactTooltip.rebuild\n\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.addEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild, false); // ReactTooltip.show\n\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.addEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow, false); // Resize\n\n if (resizeHide) {\n window.removeEventListener('resize', this.onWindowResize);\n window.addEventListener('resize', this.onWindowResize, false);\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 * invoked by resize event of window\n */\n\n target.prototype.onWindowResize = function () {\n if (!this.mount) return;\n this.hideTooltip();\n };\n}\n\n/**\n * Custom events to control showing and hiding of tooltip\n *\n * @attributes\n * - `event` {String}\n * - `eventOff` {String}\n */\nvar checkStatus = function checkStatus(dataEventOff, e) {\n var show = this.state.show;\n var id = this.props.id;\n var isCapture = this.isCapture(e.currentTarget);\n var currentItem = e.currentTarget.getAttribute('currentItem');\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};\nvar setUntargetItems = function setUntargetItems(currentTarget, targetArray) {\n for (var 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};\nvar customListeners = {\n id: '9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf',\n set: function set(target, event, listener) {\n if (this.id in target) {\n var 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: _defineProperty({}, event, listener)\n });\n }\n },\n get: function get(target, event) {\n var map = target[this.id];\n if (map !== undefined) {\n return map[event];\n }\n }\n};\nfunction customEvent(target) {\n target.prototype.isCustomEvent = function (ele) {\n var event = this.state.event;\n return event || !!ele.getAttribute('data-event');\n };\n /* Bind listener for custom event */\n\n target.prototype.customBindListener = function (ele) {\n var _this = this;\n var _this$state = this.state,\n event = _this$state.event,\n eventOff = _this$state.eventOff;\n var dataEvent = ele.getAttribute('data-event') || event;\n var dataEventOff = ele.getAttribute('data-event-off') || eventOff;\n dataEvent.split(' ').forEach(function (event) {\n ele.removeEventListener(event, customListeners.get(ele, event));\n var 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(function (event) {\n ele.removeEventListener(event, _this.hideTooltip);\n ele.addEventListener(event, _this.hideTooltip, false);\n });\n }\n };\n /* Unbind listener for custom event */\n\n target.prototype.customUnbindListener = function (ele) {\n var _this$state2 = this.state,\n event = _this$state2.event,\n eventOff = _this$state2.eventOff;\n var dataEvent = event || ele.getAttribute('data-event');\n var dataEventOff = eventOff || ele.getAttribute('data-event-off');\n ele.removeEventListener(dataEvent, customListeners.get(ele, event));\n if (dataEventOff) ele.removeEventListener(dataEventOff, this.hideTooltip);\n };\n}\n\n/**\n * Util method to judge if it should follow capture model\n */\nfunction isCapture(target) {\n target.prototype.isCapture = function (currentTarget) {\n return currentTarget && currentTarget.getAttribute('data-iscapture') === 'true' || this.props.isCapture || false;\n };\n}\n\n/**\n * Util method to get effect\n */\nfunction getEffect(target) {\n target.prototype.getEffect = function (currentTarget) {\n var dataEffect = currentTarget.getAttribute('data-effect');\n return dataEffect || this.props.effect || 'float';\n };\n}\n\n/**\n * Util method to get effect\n */\n\nvar makeProxy = function makeProxy(e) {\n var proxy = {};\n for (var 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};\nvar bodyListener = function bodyListener(callback, options, e) {\n var _options$respectEffec = options.respectEffect,\n respectEffect = _options$respectEffec === void 0 ? false : _options$respectEffec,\n _options$customEvent = options.customEvent,\n customEvent = _options$customEvent === void 0 ? false : _options$customEvent;\n var id = this.props.id;\n var tip = e.target.getAttribute('data-tip') || null;\n var forId = e.target.getAttribute('data-for') || null;\n var target = e.target;\n if (this.isCustomEvent(target) && !customEvent) {\n return;\n }\n var isTargetBelongsToTooltip = id == null && forId == null || forId === id;\n if (tip != null && (!respectEffect || this.getEffect(target) === 'float') && isTargetBelongsToTooltip) {\n var proxy = makeProxy(e);\n proxy.currentTarget = target;\n callback(proxy);\n }\n};\nvar findCustomEvents = function findCustomEvents(targetArray, dataAttribute) {\n var events = {};\n targetArray.forEach(function (target) {\n var event = target.getAttribute(dataAttribute);\n if (event) event.split(' ').forEach(function (event) {\n return events[event] = true;\n });\n });\n return events;\n};\nvar getBody = function getBody() {\n return document.getElementsByTagName('body')[0];\n};\nfunction bodyMode(target) {\n target.prototype.isBodyMode = function () {\n return !!this.props.bodyMode;\n };\n target.prototype.bindBodyListener = function (targetArray) {\n var _this = this;\n var _this$state = this.state,\n event = _this$state.event,\n eventOff = _this$state.eventOff,\n possibleCustomEvents = _this$state.possibleCustomEvents,\n possibleCustomEventsOff = _this$state.possibleCustomEventsOff;\n var body = getBody();\n var customEvents = findCustomEvents(targetArray, 'data-event');\n var customEventsOff = findCustomEvents(targetArray, 'data-event-off');\n if (event != null) customEvents[event] = true;\n if (eventOff != null) customEventsOff[eventOff] = true;\n possibleCustomEvents.split(' ').forEach(function (event) {\n return customEvents[event] = true;\n });\n possibleCustomEventsOff.split(' ').forEach(function (event) {\n return customEventsOff[event] = true;\n });\n this.unbindBodyListener(body);\n var 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 for (var _event in customEvents) {\n listeners[_event] = bodyListener.bind(this, function (e) {\n var targetEventOff = e.currentTarget.getAttribute('data-event-off') || eventOff;\n checkStatus.call(_this, targetEventOff, e);\n }, {\n customEvent: true\n });\n }\n for (var _event2 in customEventsOff) {\n listeners[_event2] = bodyListener.bind(this, this.hideTooltip, {\n customEvent: true\n });\n }\n for (var _event3 in listeners) {\n body.addEventListener(_event3, listeners[_event3]);\n }\n };\n target.prototype.unbindBodyListener = function (body) {\n body = body || getBody();\n var listeners = this.bodyModeListeners;\n for (var event in listeners) {\n body.removeEventListener(event, listeners[event]);\n }\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// https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/\nvar getMutationObserverClass = function getMutationObserverClass() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n};\nfunction trackRemoval(target) {\n target.prototype.bindRemovalTracker = function () {\n var _this = this;\n var MutationObserver = getMutationObserverClass();\n if (MutationObserver == null) return;\n var observer = new MutationObserver(function (mutations) {\n for (var m1 = 0; m1 < mutations.length; m1++) {\n var mutation = mutations[m1];\n for (var m2 = 0; m2 < mutation.removedNodes.length; m2++) {\n var element = mutation.removedNodes[m2];\n if (element === _this.state.currentTarget) {\n _this.hideTooltip();\n return;\n }\n }\n }\n });\n observer.observe(window.document, {\n childList: true,\n subtree: true\n });\n this.removalTracker = observer;\n };\n target.prototype.unbindRemovalTracker = function () {\n if (this.removalTracker) {\n this.removalTracker.disconnect();\n this.removalTracker = null;\n }\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 */\nfunction getPosition(e, target, node, place, desiredPlace, effect, offset) {\n var _getDimensions = getDimensions(node),\n tipWidth = _getDimensions.width,\n tipHeight = _getDimensions.height;\n var _getDimensions2 = getDimensions(target),\n targetWidth = _getDimensions2.width,\n targetHeight = _getDimensions2.height;\n var _getCurrentOffset = getCurrentOffset(e, target, effect),\n mouseX = _getCurrentOffset.mouseX,\n mouseY = _getCurrentOffset.mouseY;\n var defaultOffset = getDefaultPosition(effect, targetWidth, targetHeight, tipWidth, tipHeight);\n var _calculateOffset = calculateOffset(offset),\n extraOffsetX = _calculateOffset.extraOffsetX,\n extraOffsetY = _calculateOffset.extraOffsetY;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var _getParent = getParent(node),\n parentTop = _getParent.parentTop,\n parentLeft = _getParent.parentLeft; // Get the edge offset of the tooltip\n\n var getTipOffsetLeft = function getTipOffsetLeft(place) {\n var offsetX = defaultOffset[place].l;\n return mouseX + offsetX + extraOffsetX;\n };\n var getTipOffsetRight = function getTipOffsetRight(place) {\n var offsetX = defaultOffset[place].r;\n return mouseX + offsetX + extraOffsetX;\n };\n var getTipOffsetTop = function getTipOffsetTop(place) {\n var offsetY = defaultOffset[place].t;\n return mouseY + offsetY + extraOffsetY;\n };\n var getTipOffsetBottom = function getTipOffsetBottom(place) {\n var offsetY = defaultOffset[place].b;\n return mouseY + offsetY + extraOffsetY;\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\n var outsideLeft = function outsideLeft(p) {\n return getTipOffsetLeft(p) < 0;\n };\n var outsideRight = function outsideRight(p) {\n return getTipOffsetRight(p) > windowWidth;\n };\n var outsideTop = function outsideTop(p) {\n return getTipOffsetTop(p) < 0;\n };\n var outsideBottom = function outsideBottom(p) {\n return getTipOffsetBottom(p) > windowHeight;\n }; // Check whether the tooltip with orientation p is completely inside the client window\n\n var outside = function outside(p) {\n return outsideLeft(p) || outsideRight(p) || outsideTop(p) || outsideBottom(p);\n };\n var inside = function inside(p) {\n return !outside(p);\n };\n var placesList = ['top', 'bottom', 'left', 'right'];\n var insideList = [];\n for (var i = 0; i < 4; i++) {\n var p = placesList[i];\n if (inside(p)) {\n insideList.push(p);\n }\n }\n var isNewState = false;\n var newPlace;\n var 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 if (isNewState) {\n return {\n isNewState: true,\n newState: {\n 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}\nvar getDimensions = function getDimensions(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n height = _node$getBoundingClie.height,\n width = _node$getBoundingClie.width;\n return {\n height: parseInt(height, 10),\n width: parseInt(width, 10)\n };\n}; // Get current mouse offset\n\nvar getCurrentOffset = function getCurrentOffset(e, currentTarget, effect) {\n var boundingClientRect = currentTarget.getBoundingClientRect();\n var targetTop = boundingClientRect.top;\n var targetLeft = boundingClientRect.left;\n var _getDimensions3 = getDimensions(currentTarget),\n targetWidth = _getDimensions3.width,\n targetHeight = _getDimensions3.height;\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}; // 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\n\nvar getDefaultPosition = function getDefaultPosition(effect, targetWidth, targetHeight, tipWidth, tipHeight) {\n var top;\n var right;\n var bottom;\n var left;\n var disToMouse = 3;\n var triangleHeight = 2;\n var 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 return {\n top: top,\n bottom: bottom,\n left: left,\n right: right\n };\n}; // Consider additional offset into position calculation\n\nvar calculateOffset = function calculateOffset(offset) {\n var extraOffsetX = 0;\n var extraOffsetY = 0;\n if (Object.prototype.toString.apply(offset) === '[object String]') {\n offset = JSON.parse(offset.toString().replace(/'/g, '\"'));\n }\n for (var 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 return {\n extraOffsetX: extraOffsetX,\n extraOffsetY: extraOffsetY\n };\n}; // Get the offset of the parent elements\n\nvar getParent = function getParent(currentTarget) {\n var currentParent = currentTarget;\n while (currentParent) {\n var computedStyle = window.getComputedStyle(currentParent); // transform and will-change: transform change the containing block\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_Block\n\n if (computedStyle.getPropertyValue('transform') !== 'none' || computedStyle.getPropertyValue('will-change') === 'transform') break;\n currentParent = currentParent.parentElement;\n }\n var parentTop = currentParent && currentParent.getBoundingClientRect().top || 0;\n var parentLeft = currentParent && currentParent.getBoundingClientRect().left || 0;\n return {\n parentTop: parentTop,\n parentLeft: parentLeft\n };\n};\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 */\nfunction getTipContent(tip, children, getContent, multiline) {\n if (children) return children;\n if (getContent !== undefined && getContent !== null) return getContent; // getContent can be 0, '', etc.\n\n if (getContent === null) return null; // Tip not exist and children is null or undefined\n\n var regexp = //;\n if (!multiline || multiline === 'false' || !regexp.test(tip)) {\n // No trim(), so that user can keep their input\n return tip;\n } // Multiline tooltip content\n\n return tip.split(regexp).map(function (d, i) {\n return React.createElement(\"span\", {\n key: i,\n className: \"multi-line\"\n }, d);\n });\n}\n\n/**\n * Support aria- and role in ReactTooltip\n *\n * @params props {Object}\n * @return {Object}\n */\nfunction parseAria(props) {\n var ariaObj = {};\n Object.keys(props).filter(function (prop) {\n // aria-xxx and role is acceptable\n return /(^aria-\\w+$|^role$)/.test(prop);\n }).forEach(function (prop) {\n ariaObj[prop] = props[prop];\n });\n return ariaObj;\n}\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 */\nfunction nodeListToArray(nodeList) {\n var length = nodeList.length;\n if (nodeList.hasOwnProperty) {\n return Array.prototype.slice.call(nodeList);\n }\n return new Array(length).fill().map(function (index) {\n return nodeList[index];\n });\n}\nfunction generateUUID() {\n return 't' + v4();\n}\nvar baseCss = \".__react_component_tooltip {\\n border-radius: 3px;\\n display: inline-block;\\n font-size: 13px;\\n left: -999em;\\n opacity: 0;\\n padding: 8px 21px;\\n position: fixed;\\n pointer-events: none;\\n transition: opacity 0.3s ease-out;\\n top: -999em;\\n visibility: hidden;\\n z-index: 999;\\n}\\n.__react_component_tooltip.allow_hover, .__react_component_tooltip.allow_click {\\n pointer-events: auto;\\n}\\n.__react_component_tooltip::before, .__react_component_tooltip::after {\\n content: \\\"\\\";\\n width: 0;\\n height: 0;\\n position: absolute;\\n}\\n.__react_component_tooltip.show {\\n opacity: 0.9;\\n margin-top: 0;\\n margin-left: 0;\\n visibility: visible;\\n}\\n.__react_component_tooltip.place-top::before {\\n border-left: 10px solid transparent;\\n border-right: 10px solid transparent;\\n bottom: -8px;\\n left: 50%;\\n margin-left: -10px;\\n}\\n.__react_component_tooltip.place-bottom::before {\\n border-left: 10px solid transparent;\\n border-right: 10px solid transparent;\\n top: -8px;\\n left: 50%;\\n margin-left: -10px;\\n}\\n.__react_component_tooltip.place-left::before {\\n border-top: 6px solid transparent;\\n border-bottom: 6px solid transparent;\\n right: -8px;\\n top: 50%;\\n margin-top: -5px;\\n}\\n.__react_component_tooltip.place-right::before {\\n border-top: 6px solid transparent;\\n border-bottom: 6px solid transparent;\\n left: -8px;\\n top: 50%;\\n margin-top: -5px;\\n}\\n.__react_component_tooltip .multi-line {\\n display: block;\\n padding: 2px 0;\\n text-align: center;\\n}\";\n\n/**\n * Default pop-up style values (text color, background color).\n */\nvar 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};\nfunction getDefaultPopupColors(type) {\n return defaultColors[type] ? _objectSpread2({}, defaultColors[type]) : undefined;\n}\n\n/**\n * Generates the specific tooltip style for use on render.\n */\n\nfunction generateTooltipStyle(uuid, customColors, type, hasBorder) {\n return generateStyle(uuid, getPopupColors(customColors, type, hasBorder));\n}\n/**\n * Generates the tooltip style rules based on the element-specified \"data-type\" property.\n */\n\nfunction generateStyle(uuid, colors) {\n var textColor = colors.text;\n var backgroundColor = colors.background;\n var borderColor = colors.border;\n var arrowColor = colors.arrow;\n return \"\\n \\t.\".concat(uuid, \" {\\n\\t color: \").concat(textColor, \";\\n\\t background: \").concat(backgroundColor, \";\\n\\t border: 1px solid \").concat(borderColor, \";\\n \\t}\\n\\n \\t.\").concat(uuid, \".place-top {\\n margin-top: -10px;\\n }\\n .\").concat(uuid, \".place-top::before {\\n border-top: 8px solid \").concat(borderColor, \";\\n }\\n .\").concat(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: \").concat(arrowColor, \";\\n border-top-style: solid;\\n border-top-width: 6px;\\n }\\n\\n .\").concat(uuid, \".place-bottom {\\n margin-top: 10px;\\n }\\n .\").concat(uuid, \".place-bottom::before {\\n border-bottom: 8px solid \").concat(borderColor, \";\\n }\\n .\").concat(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: \").concat(arrowColor, \";\\n border-bottom-style: solid;\\n border-bottom-width: 6px;\\n }\\n\\n .\").concat(uuid, \".place-left {\\n margin-left: -10px;\\n }\\n .\").concat(uuid, \".place-left::before {\\n border-left: 8px solid \").concat(borderColor, \";\\n }\\n .\").concat(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: \").concat(arrowColor, \";\\n border-left-style: solid;\\n border-left-width: 6px;\\n }\\n\\n .\").concat(uuid, \".place-right {\\n margin-left: 10px;\\n }\\n .\").concat(uuid, \".place-right::before {\\n border-right: 8px solid \").concat(borderColor, \";\\n }\\n .\").concat(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: \").concat(arrowColor, \";\\n border-right-style: solid;\\n border-right-width: 6px;\\n }\\n \");\n}\nfunction getPopupColors(customColors, type, hasBorder) {\n var textColor = customColors.text;\n var backgroundColor = customColors.background;\n var borderColor = customColors.border;\n var arrowColor = customColors.arrow ? customColors.arrow : customColors.background;\n var colors = getDefaultPopupColors(type);\n if (textColor) {\n colors.text = textColor;\n }\n if (backgroundColor) {\n colors.background = backgroundColor;\n }\n if (hasBorder) {\n if (borderColor) {\n colors.border = borderColor;\n } else {\n colors.border = type === 'light' ? 'black' : 'white';\n }\n }\n if (arrowColor) {\n colors.arrow = arrowColor;\n }\n return colors;\n}\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nfunction createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n}\nvar check = function check(it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global_1 =\n// eslint-disable-next-line es/no-global-this -- safe\ncheck(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) ||\n// eslint-disable-next-line no-restricted-globals -- safe\ncheck(typeof self == 'object' && self) || check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||\n// eslint-disable-next-line no-new-func -- fallback\nfunction () {\n return this;\n}() || Function('return this')();\nvar fails = function fails(exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n// Detect IE8's incomplete defineProperty implementation\nvar descriptors = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1] != 7;\n});\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({\n 1: 2\n}, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nvar f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\nvar objectPropertyIsEnumerable = {\n f: f\n};\nvar createPropertyDescriptor = function createPropertyDescriptor(bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\nvar toString = {}.toString;\nvar classofRaw = function classofRaw(it) {\n return toString.call(it).slice(8, -1);\n};\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar indexedObject = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nvar requireObjectCoercible = function requireObjectCoercible(it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n// toObject with fallback for non-array-like ES3 strings\n\nvar toIndexedObject = function toIndexedObject(it) {\n return indexedObject(requireObjectCoercible(it));\n};\nvar isObject = function isObject(it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nvar toPrimitive = function toPrimitive(input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nvar toObject = function toObject(argument) {\n return Object(requireObjectCoercible(argument));\n};\nvar hasOwnProperty = {}.hasOwnProperty;\nvar has = function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\nvar document$1 = global_1.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document$1) && isObject(document$1.createElement);\nvar documentCreateElement = function documentCreateElement(it) {\n return EXISTS ? document$1.createElement(it) : {};\n};\n\n// Thank's IE8 for his funny defineProperty\nvar ie8DomDefine = !descriptors && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(documentCreateElement('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nvar f$1 = descriptors ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (ie8DomDefine) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) {/* empty */}\n if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);\n};\nvar objectGetOwnPropertyDescriptor = {\n f: f$1\n};\nvar anObject = function anObject(it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n }\n return it;\n};\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nvar f$2 = descriptors ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (ie8DomDefine) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) {/* empty */}\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\nvar objectDefineProperty = {\n f: f$2\n};\nvar createNonEnumerableProperty = descriptors ? function (object, key, value) {\n return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\nvar setGlobal = function setGlobal(key, value) {\n try {\n createNonEnumerableProperty(global_1, key, value);\n } catch (error) {\n global_1[key] = value;\n }\n return value;\n};\nvar SHARED = '__core-js_shared__';\nvar store = global_1[SHARED] || setGlobal(SHARED, {});\nvar sharedStore = store;\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof sharedStore.inspectSource != 'function') {\n sharedStore.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\nvar inspectSource = sharedStore.inspectSource;\nvar WeakMap = global_1.WeakMap;\nvar nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\nvar shared = createCommonjsModule(function (module) {\n (module.exports = function (key, value) {\n return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});\n })('versions', []).push({\n version: '3.12.1',\n mode: 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n });\n});\nvar id = 0;\nvar postfix = Math.random();\nvar uid = function uid(key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\nvar keys = shared('keys');\nvar sharedKey = function sharedKey(key) {\n return keys[key] || (keys[key] = uid(key));\n};\nvar hiddenKeys = {};\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap$1 = global_1.WeakMap;\nvar set, get, has$1;\nvar enforce = function enforce(it) {\n return has$1(it) ? get(it) : set(it, {});\n};\nvar getterFor = function getterFor(TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n return state;\n };\n};\nif (nativeWeakMap || sharedStore.state) {\n var store$1 = sharedStore.state || (sharedStore.state = new WeakMap$1());\n var wmget = store$1.get;\n var wmhas = store$1.has;\n var wmset = store$1.set;\n set = function set(it, metadata) {\n if (wmhas.call(store$1, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store$1, it, metadata);\n return metadata;\n };\n get = function get(it) {\n return wmget.call(store$1, it) || {};\n };\n has$1 = function has$1(it) {\n return wmhas.call(store$1, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function set(it, metadata) {\n if (has(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function get(it) {\n return has(it, STATE) ? it[STATE] : {};\n };\n has$1 = function has$1(it) {\n return has(it, STATE);\n };\n}\nvar internalState = {\n set: set,\n get: get,\n has: has$1,\n enforce: enforce,\n getterFor: getterFor\n};\nvar redefine = createCommonjsModule(function (module) {\n var getInternalState = internalState.get;\n var enforceInternalState = internalState.enforce;\n var TEMPLATE = String(String).split('String');\n (module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global_1) {\n if (simple) O[key] = value;else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;else createNonEnumerableProperty(O, key, value);\n // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n })(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n });\n});\nvar path = global_1;\nvar aFunction = function aFunction(variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\nvar getBuiltIn = function getBuiltIn(namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace]) : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];\n};\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nvar toInteger = function toInteger(argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nvar toLength = function toLength(argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\nvar max = Math.max;\nvar min$1 = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nvar toAbsoluteIndex = function toAbsoluteIndex(index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min$1(integer, length);\n};\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function createMethod(IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (; length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n};\nvar arrayIncludes = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\nvar indexOf = arrayIncludes.indexOf;\nvar objectKeysInternal = function objectKeysInternal(object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n// IE8- don't enum bug keys\nvar enumBugKeys = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];\nvar hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nvar f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return objectKeysInternal(O, hiddenKeys$1);\n};\nvar objectGetOwnPropertyNames = {\n f: f$3\n};\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nvar f$4 = Object.getOwnPropertySymbols;\nvar objectGetOwnPropertySymbols = {\n f: f$4\n};\n\n// all object keys, includes non-enumerable and symbols\nvar ownKeys$1 = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = objectGetOwnPropertyNames.f(anObject(it));\n var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\nvar copyConstructorProperties = function copyConstructorProperties(target, source) {\n var keys = ownKeys$1(source);\n var defineProperty = objectDefineProperty.f;\n var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\nvar replacement = /#|\\.prototype\\./;\nvar isForced = function isForced(feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection;\n};\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\nvar isForced_1 = isForced;\nvar getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nvar _export = function _export(options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global_1;\n } else if (STATIC) {\n target = global_1[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global_1[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor$1(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\nvar aFunction$1 = function aFunction$1(it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n }\n return it;\n};\n\n// optional / simple context binding\nvar functionBindContext = function functionBindContext(fn, that, length) {\n aFunction$1(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0:\n return function () {\n return fn.call(that);\n };\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function /* ...args */\n () {\n return fn.apply(that, arguments);\n };\n};\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray || function isArray(arg) {\n return classofRaw(arg) == 'Array';\n};\nvar engineUserAgent = getBuiltIn('navigator', 'userAgent') || '';\nvar process = global_1.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (engineUserAgent) {\n match = engineUserAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = engineUserAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\nvar engineV8Version = version && +version;\n\n/* eslint-disable es/no-symbol -- required for testing */\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nvar nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {\n return !String(Symbol()) ||\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && engineV8Version && engineV8Version < 41;\n});\n\n/* eslint-disable es/no-symbol -- required for testing */\n\nvar useSymbolAsUid = nativeSymbol && !Symbol.sham && typeof Symbol.iterator == 'symbol';\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol$1 = global_1.Symbol;\nvar createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid;\nvar wellKnownSymbol = function wellKnownSymbol(name) {\n if (!has(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (nativeSymbol && has(Symbol$1, name)) {\n WellKnownSymbolsStore[name] = Symbol$1[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n }\n return WellKnownSymbolsStore[name];\n};\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nvar arraySpeciesCreate = function arraySpeciesCreate(originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod$1 = function createMethod$1(TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = indexedObject(O);\n var boundFunction = functionBindContext(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (; length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3:\n return true;\n // some\n case 5:\n return value;\n // find\n case 6:\n return index;\n // findIndex\n case 2:\n push.call(target, value);\n // filter\n } else switch (TYPE) {\n case 4:\n return false;\n // every\n case 7:\n push.call(target, value);\n // filterOut\n }\n }\n }\n\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\nvar arrayIteration = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod$1(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod$1(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod$1(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod$1(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod$1(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod$1(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod$1(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod$1(7)\n};\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nvar objectKeys = Object.keys || function keys(O) {\n return objectKeysInternal(O, enumBugKeys);\n};\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nvar objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);\n return O;\n};\nvar html = getBuiltIn('document', 'documentElement');\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar EmptyConstructor = function EmptyConstructor() {/* empty */};\nvar scriptTag = function scriptTag(content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar _NullProtoObject = function NullProtoObject() {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) {/* ignore */}\n _NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return _NullProtoObject();\n};\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nvar objectCreate = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = _NullProtoObject();\n return Properties === undefined ? result : objectDefineProperties(result, Properties);\n};\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: objectCreate(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nvar addToUnscopables = function addToUnscopables(key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\nvar $find = arrayIteration.find;\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () {\n SKIPS_HOLES = false;\n});\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n_export({\n target: 'Array',\n proto: true,\n forced: SKIPS_HOLES\n}, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\nvar _class, _class2, _temp;\nvar ReactTooltip = staticMethods(_class = windowListener(_class = customEvent(_class = isCapture(_class = getEffect(_class = bodyMode(_class = trackRemoval(_class = (_temp = _class2 = /*#__PURE__*/\nfunction (_React$Component) {\n _inherits(ReactTooltip, _React$Component);\n _createClass(ReactTooltip, null, [{\n key: \"propTypes\",\n get: function get() {\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 function ReactTooltip(props) {\n var _this;\n _classCallCheck(this, ReactTooltip);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ReactTooltip).call(this, props));\n _this.state = {\n uuid: props.uuid || generateUUID(),\n place: props.place || 'top',\n // Direction of tooltip\n desiredPlace: props.place || 'top',\n type: 'dark',\n // Color theme of tooltip\n effect: 'float',\n // 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,\n // Current mouse event\n currentTarget: null,\n // Current target of mouse event\n ariaProps: parseAria(props),\n // 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 _this.bind(['showTooltip', 'updateTooltip', 'hideTooltip', 'hideTooltipOnScroll', 'getTooltipContent', 'globalRebuild', 'globalShow', 'globalHide', 'onWindowResize', 'mouseOnToolTip']);\n _this.mount = true;\n _this.delayShowLoop = null;\n _this.delayHideLoop = null;\n _this.delayReshow = null;\n _this.intervalUpdateContent = null;\n return _this;\n }\n /**\n * For unify the bind and unbind listener\n */\n\n _createClass(ReactTooltip, [{\n key: \"bind\",\n value: function bind(methodArray) {\n var _this2 = this;\n methodArray.forEach(function (method) {\n _this2[method] = _this2[method].bind(_this2);\n });\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n insecure = _this$props.insecure,\n resizeHide = _this$props.resizeHide;\n this.bindListener(); // Bind listener for tooltip\n\n this.bindWindowEvents(resizeHide); // Bind global event for static method\n\n this.injectStyles(); // Inject styles for each DOM root having tooltip.\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mount = false;\n this.clearTimer();\n this.unbindListener();\n this.removeScrollListener(this.state.currentTarget);\n this.unbindWindowEvents();\n }\n /* Look for the closest DOM root having tooltip and inject styles. */\n }, {\n key: \"injectStyles\",\n value: function injectStyles() {\n var tooltipRef = this.tooltipRef;\n if (!tooltipRef) {\n return;\n }\n var parentNode = tooltipRef.parentNode;\n while (parentNode.parentNode) {\n parentNode = parentNode.parentNode;\n }\n var domRoot;\n switch (parentNode.constructor.name) {\n case 'Document':\n case 'HTMLDocument':\n case undefined:\n domRoot = parentNode.head;\n break;\n case 'ShadowRoot':\n default:\n domRoot = parentNode;\n break;\n } // Prevent styles duplication.\n\n if (!domRoot.querySelector('style[data-react-tooltip]')) {\n var style = document.createElement('style');\n style.textContent = baseCss;\n style.setAttribute('data-react-tooltip', 'true');\n domRoot.appendChild(style);\n }\n }\n /**\n * Return if the mouse is on the tooltip.\n * @returns {boolean} true - mouse is on the tooltip\n */\n }, {\n key: \"mouseOnToolTip\",\n value: function mouseOnToolTip() {\n var show = this.state.show;\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 * Pick out corresponded target elements\n */\n }, {\n key: \"getTargetArray\",\n value: function getTargetArray(id) {\n var targetArray = [];\n var selector;\n if (!id) {\n selector = '[data-tip]:not([data-for])';\n } else {\n var escaped = id.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n selector = \"[data-tip][data-for=\\\"\".concat(escaped, \"\\\"]\");\n } // Scan document for shadow DOM elements\n\n nodeListToArray(document.getElementsByTagName('*')).filter(function (element) {\n return element.shadowRoot;\n }).forEach(function (element) {\n targetArray = targetArray.concat(nodeListToArray(element.shadowRoot.querySelectorAll(selector)));\n });\n return targetArray.concat(nodeListToArray(document.querySelectorAll(selector)));\n }\n /**\n * Bind listener to the target elements\n * These listeners used to trigger showing or hiding the tooltip\n */\n }, {\n key: \"bindListener\",\n value: function bindListener() {\n var _this3 = this;\n var _this$props2 = this.props,\n id = _this$props2.id,\n globalEventOff = _this$props2.globalEventOff,\n isCapture = _this$props2.isCapture;\n var targetArray = this.getTargetArray(id);\n targetArray.forEach(function (target) {\n if (target.getAttribute('currentItem') === null) {\n target.setAttribute('currentItem', 'false');\n }\n _this3.unbindBasicListener(target);\n if (_this3.isCustomEvent(target)) {\n _this3.customUnbindListener(target);\n }\n });\n if (this.isBodyMode()) {\n this.bindBodyListener(targetArray);\n } else {\n targetArray.forEach(function (target) {\n var isCaptureMode = _this3.isCapture(target);\n var effect = _this3.getEffect(target);\n if (_this3.isCustomEvent(target)) {\n _this3.customBindListener(target);\n return;\n }\n target.addEventListener('mouseenter', _this3.showTooltip, isCaptureMode);\n target.addEventListener('focus', _this3.showTooltip, isCaptureMode);\n if (effect === 'float') {\n target.addEventListener('mousemove', _this3.updateTooltip, isCaptureMode);\n }\n target.addEventListener('mouseleave', _this3.hideTooltip, isCaptureMode);\n target.addEventListener('blur', _this3.hideTooltip, isCaptureMode);\n });\n } // Global event to hide tooltip\n\n if (globalEventOff) {\n window.removeEventListener(globalEventOff, this.hideTooltip);\n window.addEventListener(globalEventOff, this.hideTooltip, isCapture);\n } // Track removal of targetArray elements from DOM\n\n this.bindRemovalTracker();\n }\n /**\n * Unbind listeners on target elements\n */\n }, {\n key: \"unbindListener\",\n value: function unbindListener() {\n var _this4 = this;\n var _this$props3 = this.props,\n id = _this$props3.id,\n globalEventOff = _this$props3.globalEventOff;\n if (this.isBodyMode()) {\n this.unbindBodyListener();\n } else {\n var targetArray = this.getTargetArray(id);\n targetArray.forEach(function (target) {\n _this4.unbindBasicListener(target);\n if (_this4.isCustomEvent(target)) _this4.customUnbindListener(target);\n });\n }\n if (globalEventOff) window.removeEventListener(globalEventOff, this.hideTooltip);\n this.unbindRemovalTracker();\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 }, {\n key: \"unbindBasicListener\",\n value: function unbindBasicListener(target) {\n var 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 key: \"getTooltipContent\",\n value: function getTooltipContent() {\n var _this$props4 = this.props,\n getContent = _this$props4.getContent,\n children = _this$props4.children; // Generate tooltip content\n\n var 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 return getTipContent(this.state.originTooltip, children, content, this.state.isMultiline);\n }\n }, {\n key: \"isEmptyTip\",\n value: function isEmptyTip(placeholder) {\n return typeof placeholder === 'string' && placeholder === '' || placeholder === null;\n }\n /**\n * When mouse enter, show the tooltip\n */\n }, {\n key: \"showTooltip\",\n value: function showTooltip(e, isGlobalCall) {\n if (!this.tooltipRef) {\n return;\n }\n if (isGlobalCall) {\n // Don't trigger other elements belongs to other ReactTooltip\n var targetArray = this.getTargetArray(this.props.id);\n var isMyElement = targetArray.some(function (ele) {\n return ele === e.currentTarget;\n });\n if (!isMyElement) return;\n } // Get the tooltip content\n // calculate in this phrase so that tip width height can be detected\n\n var _this$props5 = this.props,\n multiline = _this$props5.multiline,\n getContent = _this$props5.getContent;\n var originTooltip = e.currentTarget.getAttribute('data-tip');\n var isMultiline = e.currentTarget.getAttribute('data-multiline') || multiline || false; // If it is focus event or called by ReactTooltip.show, switch to `solid` effect\n\n var switchToSolid = e instanceof window.FocusEvent || isGlobalCall; // if it needs to skip adding hide listener to scroll\n\n var 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 } // adding aria-describedby to target to make tooltips read by screen readers\n\n if (e && e.currentTarget && e.currentTarget.setAttribute) {\n e.currentTarget.setAttribute('aria-describedby', this.state.uuid);\n } // Make sure the correct place is set\n\n var desiredPlace = e.currentTarget.getAttribute('data-place') || this.props.place || 'top';\n var effect = switchToSolid && 'solid' || this.getEffect(e.currentTarget);\n var offset = e.currentTarget.getAttribute('data-offset') || this.props.offset || {};\n var result = getPosition(e, e.currentTarget, this.tooltipRef, desiredPlace, desiredPlace, effect, offset);\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(result.position, e, e.currentTarget, this.tooltipRef, desiredPlace, desiredPlace, effect, offset);\n }\n var place = result.isNewState ? result.newState.place : desiredPlace; // To prevent previously created timers from triggering\n\n this.clearTimer();\n var target = e.currentTarget;\n var reshowDelay = this.state.show ? target.getAttribute('data-delay-update') || this.props.delayUpdate : 0;\n var self = this;\n var updateState = function updateState() {\n self.setState({\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: target.getAttribute('data-text-color') || self.props.textColor || null,\n background: target.getAttribute('data-background-color') || self.props.backgroundColor || null,\n border: target.getAttribute('data-border-color') || self.props.borderColor || null,\n arrow: target.getAttribute('data-arrow-color') || self.props.arrowColor || null\n },\n effect: effect,\n offset: offset,\n html: (target.getAttribute('data-html') ? target.getAttribute('data-html') === 'true' : self.props.html) || false,\n delayShow: target.getAttribute('data-delay-show') || self.props.delayShow || 0,\n delayHide: target.getAttribute('data-delay-hide') || self.props.delayHide || 0,\n delayUpdate: target.getAttribute('data-delay-update') || self.props.delayUpdate || 0,\n border: (target.getAttribute('data-border') ? target.getAttribute('data-border') === 'true' : self.props.border) || false,\n extraClass: target.getAttribute('data-class') || self.props[\"class\"] || self.props.className || '',\n disable: (target.getAttribute('data-tip-disable') ? target.getAttribute('data-tip-disable') === 'true' : self.props.disable) || false,\n currentTarget: target\n }, function () {\n if (scrollHide) {\n self.addScrollListener(self.state.currentTarget);\n }\n self.updateTooltip(e);\n if (getContent && Array.isArray(getContent)) {\n self.intervalUpdateContent = setInterval(function () {\n if (self.mount) {\n var _getContent = self.props.getContent;\n var placeholder = getTipContent(originTooltip, '', _getContent[0](), isMultiline);\n var isEmptyTip = self.isEmptyTip(placeholder);\n self.setState({\n isEmptyTip: isEmptyTip\n });\n self.updatePosition();\n }\n }, getContent[1]);\n }\n });\n }; // If there is no delay call immediately, don't allow events to get in first.\n\n if (reshowDelay) {\n this.delayReshow = setTimeout(updateState, reshowDelay);\n } else {\n updateState();\n }\n }\n /**\n * When mouse hover, update tool tip\n */\n }, {\n key: \"updateTooltip\",\n value: function updateTooltip(e) {\n var _this5 = this;\n var _this$state = this.state,\n delayShow = _this$state.delayShow,\n disable = _this$state.disable;\n var afterShow = this.props.afterShow;\n var placeholder = this.getTooltipContent();\n var eventTarget = e.currentTarget || e.target; // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n\n if (this.mouseOnToolTip()) {\n return;\n } // if the tooltip is empty, disable the tooltip\n\n if (this.isEmptyTip(placeholder) || disable) {\n return;\n }\n var delayTime = !this.state.show ? parseInt(delayShow, 10) : 0;\n var updateState = function updateState() {\n if (Array.isArray(placeholder) && placeholder.length > 0 || placeholder) {\n var isInvisible = !_this5.state.show;\n _this5.setState({\n currentEvent: e,\n currentTarget: eventTarget,\n show: true\n }, function () {\n _this5.updatePosition();\n if (isInvisible && afterShow) {\n afterShow(e);\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 * If we're mousing over the tooltip remove it when we leave.\n */\n }, {\n key: \"listenForTooltipExit\",\n value: function listenForTooltipExit() {\n var show = this.state.show;\n if (show && this.tooltipRef) {\n this.tooltipRef.addEventListener('mouseleave', this.hideTooltip);\n }\n }\n }, {\n key: \"removeListenerForTooltipExit\",\n value: function removeListenerForTooltipExit() {\n var show = this.state.show;\n if (show && this.tooltipRef) {\n this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip);\n }\n }\n /**\n * When mouse leave, hide tooltip\n */\n }, {\n key: \"hideTooltip\",\n value: function hideTooltip(e, hasTarget) {\n var _this6 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n isScroll: false\n };\n var disable = this.state.disable;\n var isScroll = options.isScroll;\n var delayHide = isScroll ? 0 : this.state.delayHide;\n var afterHide = this.props.afterHide;\n var placeholder = this.getTooltipContent();\n if (!this.mount) return;\n if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip\n\n if (hasTarget) {\n // Don't trigger other elements belongs to other ReactTooltip\n var targetArray = this.getTargetArray(this.props.id);\n var isMyElement = targetArray.some(function (ele) {\n return ele === e.currentTarget;\n });\n if (!isMyElement || !this.state.show) return;\n } // clean up aria-describedby when hiding tooltip\n\n if (e && e.currentTarget && e.currentTarget.removeAttribute) {\n e.currentTarget.removeAttribute('aria-describedby');\n }\n var resetState = function resetState() {\n var isVisible = _this6.state.show; // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n\n if (_this6.mouseOnToolTip()) {\n _this6.listenForTooltipExit();\n return;\n }\n _this6.removeListenerForTooltipExit();\n _this6.setState({\n show: false\n }, function () {\n _this6.removeScrollListener(_this6.state.currentTarget);\n if (isVisible && afterHide) {\n afterHide(e);\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 * When scroll, hide tooltip\n */\n }, {\n key: \"hideTooltipOnScroll\",\n value: function hideTooltipOnScroll(event, hasTarget) {\n this.hideTooltip(event, hasTarget, {\n isScroll: true\n });\n }\n /**\n * Add scroll event listener when tooltip show\n * automatically hide the tooltip when scrolling\n */\n }, {\n key: \"addScrollListener\",\n value: function addScrollListener(currentTarget) {\n var isCaptureMode = this.isCapture(currentTarget);\n window.addEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode);\n }\n }, {\n key: \"removeScrollListener\",\n value: function removeScrollListener(currentTarget) {\n var isCaptureMode = this.isCapture(currentTarget);\n window.removeEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode);\n } // Calculation the position\n }, {\n key: \"updatePosition\",\n value: function updatePosition() {\n var _this7 = this;\n var _this$state2 = this.state,\n currentEvent = _this$state2.currentEvent,\n currentTarget = _this$state2.currentTarget,\n place = _this$state2.place,\n desiredPlace = _this$state2.desiredPlace,\n effect = _this$state2.effect,\n offset = _this$state2.offset;\n var node = this.tooltipRef;\n var result = getPosition(currentEvent, currentTarget, node, place, desiredPlace, effect, offset);\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(result.position, currentEvent, currentTarget, node, place, desiredPlace, effect, offset);\n }\n if (result.isNewState) {\n // Switch to reverse placement\n return this.setState(result.newState, function () {\n _this7.updatePosition();\n });\n } // Set tooltip position\n\n node.style.left = result.position.left + 'px';\n node.style.top = result.position.top + 'px';\n }\n /**\n * CLear all kinds of timeout of interval\n */\n }, {\n key: \"clearTimer\",\n value: function clearTimer() {\n clearTimeout(this.delayShowLoop);\n clearTimeout(this.delayHideLoop);\n clearTimeout(this.delayReshow);\n clearInterval(this.intervalUpdateContent);\n }\n }, {\n key: \"hasCustomColors\",\n value: function hasCustomColors() {\n var _this8 = this;\n return Boolean(Object.keys(this.state.customColors).find(function (color) {\n return color !== 'border' && _this8.state.customColors[color];\n }) || this.state.border && this.state.customColors['border']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this9 = this;\n var _this$state3 = this.state,\n extraClass = _this$state3.extraClass,\n html = _this$state3.html,\n ariaProps = _this$state3.ariaProps,\n disable = _this$state3.disable,\n uuid = _this$state3.uuid;\n var content = this.getTooltipContent();\n var isEmptyTip = this.isEmptyTip(content);\n var style = generateTooltipStyle(this.state.uuid, this.state.customColors, this.state.type, this.state.border);\n var tooltipClass = '__react_component_tooltip' + \" \".concat(this.state.uuid) + (this.state.show && !disable && !isEmptyTip ? ' show' : '') + (this.state.border ? ' border' : '') + \" place-\".concat(this.state.place) +\n // top, bottom, left, right\n \" type-\".concat(this.hasCustomColors() ? 'custom' : this.state.type) + (\n // dark, success, warning, error, info, light, custom\n this.props.delayUpdate ? ' allow_hover' : '') + (this.props.clickable ? ' allow_click' : '');\n var Wrapper = this.props.wrapper;\n if (ReactTooltip.supportedWrappers.indexOf(Wrapper) < 0) {\n Wrapper = ReactTooltip.defaultProps.wrapper;\n }\n var wrapperClassName = [tooltipClass, extraClass].filter(Boolean).join(' ');\n if (html) {\n var htmlContent = \"\".concat(content, \"\\n\");\n return React.createElement(Wrapper, _extends({\n className: \"\".concat(wrapperClassName),\n id: this.props.id || uuid,\n ref: function ref(_ref) {\n return _this9.tooltipRef = _ref;\n }\n }, ariaProps, {\n \"data-id\": \"tooltip\",\n dangerouslySetInnerHTML: {\n __html: htmlContent\n }\n }));\n } else {\n return React.createElement(Wrapper, _extends({\n className: \"\".concat(wrapperClassName),\n id: this.props.id || uuid\n }, ariaProps, {\n ref: function ref(_ref2) {\n return _this9.tooltipRef = _ref2;\n },\n \"data-id\": \"tooltip\"\n }), React.createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: style\n },\n \"aria-hidden\": \"true\"\n }), content);\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var ariaProps = prevState.ariaProps;\n var newAriaProps = parseAria(nextProps);\n var isChanged = Object.keys(newAriaProps).some(function (props) {\n return newAriaProps[props] !== ariaProps[props];\n });\n if (!isChanged) {\n return null;\n }\n return _objectSpread2({}, prevState, {\n ariaProps: newAriaProps\n });\n }\n }]);\n return ReactTooltip;\n}(React.Component), _defineProperty(_class2, \"defaultProps\", {\n insecure: true,\n resizeHide: true,\n wrapper: 'div',\n clickable: false\n}), _defineProperty(_class2, \"supportedWrappers\", ['div', 'span']), _defineProperty(_class2, \"displayName\", 'ReactTooltip'), _temp)) || _class) || _class) || _class) || _class) || _class) || _class) || _class;\nexport default ReactTooltip;","module.exports = __webpack_public_path__ + \"static/rocket-2e5ab0cc73d14eccae10b6bc097a5900.svg\";","import \"core-js/modules/es.typed-array.set.js\";\nimport \"core-js/modules/es.typed-array.sort.js\";\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n return buf || bytesToUuid(rnds);\n}\nexport default v4;","module.exports = \"data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgd2lkdGg9IjIwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMzMuMDkgNzYuOTQiPgogIDxwb2x5Z29uIGZpbGw9IiM4NDg0ODQiIHBvaW50cz0iMTMzLjA5IDEwLjM5IDEyMi43IDAgNjYuNTQgNTYuMTYgMTAuMzkgMCAwIDEwLjM5IDY2LjU0IDc2Ljk0IDEzMy4wOSAxMC4zOSIgLz4KPC9zdmc+\"","import styled from \"styled-components\";\nimport { Accordion as DefaultAccordion } from \"./Accordion\";\nimport React from \"react\";\nimport { containerSize, ScreenSizes, Sx } from \"../../types/responsive\";\nimport { SectionHeader } from \"./Section\";\n\nconst FaqSection = styled.section`\n padding: 0.5rem 30px 0.625rem;\n width: 100%;\n max-width: ${containerSize};\n margin: auto;\n p {\n line-height: 150%;\n }\n @media (max-width: ${ScreenSizes.md}) {\n padding: 0.5rem 0 0.625rem;\n }\n`;\n\nconst Accordion = styled(DefaultAccordion)`\n margin-bottom: 0.625rem;\n`;\n\nconst FaqTitle = styled(SectionHeader)`\n padding: 0 40px;\n margin: auto;\n text-align: center;\n @media (max-width: ${ScreenSizes.md}) {\n padding: 0;\n width: 100%;\n }\n`\ntype Faq = {\n header: string;\n content?: JSX.Element|string;\n text?: string;\n}\nexport const FaqsSection: React.FC<{title: string|JSX.Element; faqs: Faq[], sx?: Sx}> = ({faqs, title}) => {\n return (\n <>\n \n {title}\n \n \n {faqs.map((faq, index) => (\n \n

{faq.content}

\n
\n ))}\n
\n \n\n )\n}\n","import React, {PropsWithChildren} from 'react';\nimport styled from 'styled-components';\nimport QuestionCircleFilled from 'images/question_filled_circle.svg';\nimport ReactTooltip, {TooltipProps} from 'react-tooltip';\nimport {Flex} from './Flex';\nimport './css/hint.css';\n\ninterface IProps extends TooltipProps {\n id: string;\n message: string | JSX.Element;\n title?: string | JSX.Element;\n}\n\nconst HintIcon = styled.img`\n opacity: 0.3;\n width: 15px;\n`;\n\nexport const Hint: React.FC = ({message, title, ...props}) => {\n if (!message) return null;\n return (\n <>\n \n {message}\n \n
\n {title ? (\n \n {title}\n \n \n ) : (\n \n )}\n
\n \n );\n};\n","import styled from 'styled-components';\n\nexport default styled.hr`\n width: 100%;\n height: 1px;\n background: #e6e6e6;\n margin: 8px 0;\n`;\n","import React, {SetStateAction, useEffect, useState} from 'react';\nimport styled from 'styled-components';\nimport {currency} from 'utils/formatters';\nimport {useI18next} from 'gatsby-plugin-react-i18next';\n\nconst Input = styled.input`\n box-sizing: border-box;\n position: relative;\n width: 100%;\n padding-right: 10px;\n line-height: 36px;\n outline: none;\n color: hsla(0, 0%, 10%, 0.9);\n border: 0;\n text-align: right;\n border-radius: ${(props) => props.theme.borderRadius};\n box-shadow: 0 0 0 1px #e0e0e0, 0 2px 4px 0 rgba(0, 0, 0, 0.07), 0 1px 1.5px 0 rgba(0, 0, 0, 0.05);\n transition: box-shadow 0.08s ease-in, color 0.08s ease-in;\n background: #fff;\n appearance: none;\n\n &:focus,\n &:active {\n box-shadow: 0 0 0 1px rgba(50, 151, 211, 0.3), 0 1px 1px 0 rgba(0, 0, 0, 0.07),\n 0 0 0 4px rgba(50, 151, 211, 0.3);\n }\n @media (max-width: 600px) {\n margin-top: 6px;\n }\n`;\n\ntype Props = {\n onValueChange: (value: number) => void;\n};\n\nexport const CurrencyInput: React.FC = ({onValueChange}) => {\n const {language} = useI18next();\n const [amount, setAmount] = useState(200);\n const [maskedAmount, setMaskedAmount] = useState(currency(language).format(200));\n\n const createMask = (value: number) => {\n if (!value) return;\n return currency(language, 0).format(value);\n };\n\n useEffect(() => {\n onValueChange(amount || 0);\n }, [amount]);\n\n return (\n <>\n \n setMaskedAmount('')}\n onKeyPress={(ev) => {\n if (ev.key === 'Enter') {\n onValueChange(amount || 0);\n }\n }}\n onChange={(ev: React.ChangeEvent) => {\n const value = ev.target.value.replace(/\\.|,|€|\\$|\\s/g, '');\n setAmount(value as SetStateAction);\n setMaskedAmount(createMask(Number(value)) as SetStateAction);\n }}\n />\n \n );\n};\n","// i18next-extract-mark-ns-start interchange-fee-calculator\n\nimport {Content} from 'components/Content';\nimport {Section, SectionActions, SectionHeader} from 'components/Section';\nimport {SEO} from 'components/SEO';\nimport {graphql, PageProps} from 'gatsby';\nimport {Trans, useI18next, useTranslation} from 'gatsby-plugin-react-i18next';\nimport React, {useEffect, useState} from 'react';\nimport styled from 'styled-components';\nimport {Flex} from 'components/Flex';\nimport {Hint} from 'components/Hint';\nimport {Bold} from 'components/StickyBanner';\nimport {SignUpButton} from 'components/SignUpButton';\nimport {AnchorLink} from 'components/AnchorLink';\nimport SmallText from 'components/SmallText';\nimport rocket from 'images/rocket.svg';\nimport {Spacer} from 'components/Spacer';\nimport {StyledDiv} from 'components/StyledSx';\nimport {containerSize, ScreenSizes} from '../../types/responsive';\nimport Divider from 'components/Divider';\nimport {currency} from 'utils/formatters';\nimport {CurrencyInput} from 'components/CurrencyInput';\nimport {BlogLink} from 'components/links/Blog';\nimport {PrismicPage} from 'components/links/PrismicPage';\nimport {FaqsSection} from 'components/FaqsSection';\n\nconst IndexContent = styled.div`\n max-width: 500px;\n`;\n\nconst List = styled.ul`\n margin: 0 0 30px;\n width: 100%;\n`;\n\nconst ListItem = styled.li`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid #e6e6e6;\n margin: 0;\n padding: 15px 0;\n\n p {\n margin: 0 8px 0 0;\n flex: 1;\n text-align: start;\n }\n\n @media (max-width: 768px) {\n flex-direction: row;\n align-items: flex-start;\n .hint {\n margin-right: 0;\n margin-left: auto;\n }\n }\n`;\n\nconst InputWrapper = styled.div`\n position: relative;\n flex: 1;\n width: 150px;\n min-width: 150px;\n max-width: 150px;\n margin-left: 10px;\n\n @media (max-width: ${ScreenSizes.xs}) {\n width: 100%;\n min-width: 100%;\n max-width: 100%;\n margin: 0;\n }\n`;\n\nconst Select = styled.select`\n box-sizing: border-box;\n width: 100%;\n position: relative;\n padding-right: 10px;\n line-height: 36px;\n outline: none;\n color: hsla(0, 0%, 10%, 0.9);\n border: 0;\n text-align: right;\n border-radius: ${(props) => props.theme.borderRadius};\n box-shadow: 0 0 0 1px #e0e0e0, 0 2px 4px 0 rgba(0, 0, 0, 0.07), 0 1px 1.5px 0 rgba(0, 0, 0, 0.05);\n transition: box-shadow 0.08s ease-in, color 0.08s ease-in;\n direction: rtl;\n background: #fff;\n appearance: none;\n\n &:focus,\n &:active {\n box-shadow: 0 0 0 1px rgba(50, 151, 211, 0.3), 0 1px 1px 0 rgba(0, 0, 0, 0.07),\n 0 0 0 4px rgba(50, 151, 211, 0.3);\n }\n\n @media (max-width: 600px) {\n margin-top: 6px;\n }\n`;\n\nconst IndexBackground = styled.div`\n position: relative;\n`;\n\nconst CalculatorCard = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n text-align: center;\n flex: 1 0 max-content;\n background: #ffffff;\n border: 1px solid #eeeeee;\n border-radius: 5px;\n padding: 32px 42px;\n max-width: 600px;\n box-shadow: 0 64px 64px rgba(61, 88, 128, 0.05), 0 32px 32px rgba(61, 88, 128, 0.05),\n 0 16px 16px rgba(61, 88, 128, 0.05), 0 8px 8px rgba(61, 88, 128, 0.05),\n 0 4px 4px rgba(61, 88, 128, 0.05), 0 2px 2px rgba(61, 88, 128, 0.05);\n\n h4 {\n font-size: 1.3rem;\n margin-bottom: 0.875rem;\n max-width: 12.5rem;\n text-overflow: ellipsis;\n }\n\n p {\n margin-bottom: 0;\n }\n\n @media (max-width: ${ScreenSizes.md}) {\n padding: 40px 32px;\n margin-top: 16px;\n }\n\n @media (max-width: ${ScreenSizes.xs}) {\n width: 100%;\n }\n`;\n\nconst CalculatorForm = styled.div`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n position: relative;\n text-align: start;\n\n input {\n padding-right: 25px;\n\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n }\n\n @media (max-width: 768px) {\n flex-direction: column;\n .form-container {\n width: 100%;\n }\n }\n`;\n\ninterface CreditDebitFee {\n average: number;\n}\n\ninterface TerritorialFee {\n spain: CreditDebitFee;\n eu: CreditDebitFee;\n oeu: CreditDebitFee;\n}\n\ninterface CardFee {\n visa: TerritorialFee;\n mastercard: TerritorialFee;\n}\n\nconst FeeListItem = styled.li`\n line-height: 20px;\n margin-bottom: 0;\n text-align: start;\n display: flex;\n justify-content: space-between;\n`;\n\nconst Container = styled.div`\n width: 100%;\n position: relative;\n background-color: white;\n`;\n\nconst RocketContent = styled.div`\n display: flex;\n flex-direction: column;\n max-width: ${containerSize};\n margin: 0 auto;\n padding: 0 20px;\n background-color: white;\n`;\n\nconst Cta = styled.section`\n padding-top: 80px;\n padding-bottom: 80px;\n @media (max-width: 768px) {\n padding-top: 40px;\n padding-bottom: 40px;\n }\n`;\n\nconst CtaWrapper = styled.div`\n background-image: linear-gradient(-56deg, #12e0c2 0%, #7984d9 41%);\n border-radius: 16px;\n padding: 80px 98px;\n position: relative;\n overflow: hidden;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n @media (max-width: 768px) {\n padding: 40px 20px;\n }\n`;\n\nconst CtaContent = styled.div`\n display: flex;\n flex-direction: column;\n width: 680px;\n @media (max-width: 1024px) {\n width: 100%;\n align-items: center;\n }\n`;\n\nconst SectionTitle = styled.h2`\n color: #000000;\n font-size: 31px;\n line-height: 38px;\n font-weight: lighter;\n &:after {\n content: '';\n display: block;\n background: white;\n margin-bottom: 1.2rem;\n margin-top: 0.8rem;\n height: 1.5px;\n }\n @media (max-width: 1024px) {\n width: 100%;\n > div {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n font-size: 22px;\n }\n`;\n\nconst SectionDescription = styled.p`\n font-weight: 500;\n color: #ffffff;\n font-size: 16px;\n\n a {\n color: #ffffff;\n text-decoration: underline;\n }\n`;\n\nconst Rocket = styled.img`\n position: absolute;\n bottom: 0;\n right: 100px;\n\n @media (max-width: 1024px) {\n display: none;\n }\n`;\n\nconst DataRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n flex-direction: row;\n\n @media (max-width: 600px) {\n align-items: flex-start;\n flex-direction: column;\n }\n`;\n\ninterface FeeSelection {\n cardPresence: 'fees';\n card: 'visa' | 'mastercard';\n territory: 'domestic';\n creditOrDebit: 'credit' | 'debit';\n}\n\nconst initialFeeSelection: FeeSelection = {\n cardPresence: 'fees',\n card: 'visa',\n territory: 'domestic',\n creditOrDebit: 'credit'\n};\n\ninterface CalculatedFee {\n interchange: number;\n percentage: number;\n base: number;\n provider: number;\n providerName: 'MONEI' | 'Stripe';\n}\n\ninterface CalculatedFees {\n visaMonei: CalculatedFee;\n mastercardMonei: CalculatedFee;\n visaStripe: CalculatedFee;\n mastercardStripe: CalculatedFee;\n}\n\nconst FeeTooltip = (calculatedFee: CalculatedFee): JSX.Element => {\n const {language} = useI18next();\n return (\n <>\n
    \n \n
    {calculatedFee.providerName} percentage:
    \n
    \n {calculatedFee.percentage + '%' + ' + ' + currency(language).format(calculatedFee.base)}\n
    \n
    \n \n
    {calculatedFee.providerName} fee:
    \n
    {currency(language).format(calculatedFee.provider)}
    \n
    \n {calculatedFee.interchange ? (\n \n
    Expected Interchange++ fee:
    \n
    {currency(language).format(calculatedFee.interchange)}
    \n
    \n ) : (\n <>\n )}\n
\n \n );\n};\n\nconst InterchangeFeesPage: React.FC = () => {\n const {t} = useTranslation();\n const {language} = useI18next();\n const [amount, setAmount] = useState(200);\n const [range, setRange] = useState(0.9);\n const [region, setRegion] = useState('spain');\n const [calculatedFees, setCalculatedFees] = useState({\n visaMonei: {interchange: 0, provider: 0, percentage: 0, base: 0, providerName: 'MONEI'},\n mastercardMonei: {interchange: 0, provider: 0, percentage: 0, base: 0, providerName: 'MONEI'},\n visaStripe: {interchange: 0, provider: 3.05, percentage: 0, base: 0, providerName: 'Stripe'},\n mastercardStripe: {\n interchange: 0,\n provider: 3.05,\n percentage: 0,\n base: 0,\n providerName: 'Stripe'\n }\n });\n\n const [stripeVisaPercentMore, setStripeVisaPercentMore] = useState('0');\n const [stripeMastercardPercentMore, setStripeMastercardPercentMore] = useState('0');\n const [moneiFee, setMoneiFee] = useState({percentage: 0.9, base: 0.24});\n const [fees, setFees] = useState({\n visa: {\n spain: {\n average: 0.35\n },\n eu: {\n average: 0.4\n },\n oeu: {\n average: 2.5\n }\n },\n mastercard: {\n spain: {\n average: 0.4\n },\n eu: {\n average: 0.58\n },\n oeu: {\n average: 2.15\n }\n }\n });\n\n useEffect(() => {\n if (Number(amount) < 20) {\n setFees({\n visa: {\n spain: {\n average: 1.27\n },\n eu: {\n average: 1.48\n },\n oeu: {\n average: 7.35\n }\n },\n mastercard: {\n spain: {\n average: 0.91\n },\n eu: {\n average: 1.1\n },\n oeu: {\n average: 10.59\n }\n }\n });\n } else {\n setFees({\n visa: {\n spain: {\n average: 0.35\n },\n eu: {\n average: 0.4\n },\n oeu: {\n average: 2.5\n }\n },\n mastercard: {\n spain: {\n average: 0.4\n },\n eu: {\n average: 0.58\n },\n oeu: {\n average: 2.15\n }\n }\n });\n }\n }, [amount]);\n\n useEffect(() => {\n if (!amount) return;\n const stripeFee: any = {percentage: 1.5, base: 0.25};\n\n setCalculatedFees({\n visaMonei: {\n interchange: ((fees.visa[region as keyof TerritorialFee].average + 0.03) / 100) * amount,\n provider: (moneiFee.percentage / 100) * amount + moneiFee.base,\n percentage: moneiFee.percentage,\n base: moneiFee.base,\n providerName: 'MONEI'\n },\n mastercardMonei: {\n interchange:\n ((fees.mastercard[region as keyof TerritorialFee].average + 0.03) / 100) * amount,\n provider: (moneiFee.percentage / 100) * amount + moneiFee.base,\n percentage: moneiFee.percentage,\n base: moneiFee.base,\n providerName: 'MONEI'\n },\n visaStripe: {\n interchange: ((fees.visa[region as keyof TerritorialFee].average - 0.1) / 100) * amount,\n provider: (stripeFee.percentage / 100) * amount + stripeFee.base,\n percentage: stripeFee.percentage,\n base: stripeFee.base,\n providerName: 'Stripe'\n },\n mastercardStripe: {\n interchange:\n ((fees.mastercard[region as keyof TerritorialFee].average - 0.1) / 100) * amount,\n provider: (stripeFee.percentage / 100) * amount + stripeFee.base,\n percentage: stripeFee.percentage,\n base: stripeFee.base,\n providerName: 'Stripe'\n }\n });\n }, [fees, moneiFee, region]);\n\n useEffect(() => {\n setStripeVisaPercentMore(\n (\n ((calculatedFees.visaStripe.provider + calculatedFees.visaStripe.interchange) /\n (calculatedFees.visaMonei.provider + calculatedFees.visaMonei.interchange) -\n 1) *\n 100\n ).toFixed(0)\n );\n setStripeMastercardPercentMore(\n (\n ((calculatedFees.mastercardStripe.provider + calculatedFees.mastercardStripe.interchange) /\n (calculatedFees.mastercardMonei.provider + calculatedFees.mastercardMonei.interchange) -\n 1) *\n 100\n ).toFixed(0)\n );\n }, [calculatedFees]);\n\n const withCurrency = (value: string) => {\n const afterPrice = ['es', 'ca', 'fr', 'it', 'pt', 'de'].includes(language);\n return (!afterPrice ? '€ ' : '') + value + (afterPrice ? ' €' : '');\n };\n\n const faqs = [\n {\n header: t('What are interchange fees?'),\n text: t(\n 'Interchange fees are also referred to as interchange rates or reimbursement fees. They are the fees you must pay to card-issuing banks each time a customer completes a credit or debit card purchase from your stores.'\n ),\n content: (\n \n Interchange fees are also referred\n to as interchange rates or reimbursement fees. They are the fees you must pay to\n card-issuing banks each time a customer completes a credit or debit card purchase from\n your stores.\n \n )\n },\n {\n header: t('Why do I have to pay interchange fees?'),\n text: t(\n 'Many players are involved in credit card payment processing before the transaction is approved and funds are transferred to your business bank account. When a shopper makes a card purchase, your business, your bank (acquirer), and the customer’s bank (issuer) are all involved in the transaction.'\n ),\n content: (\n \n Many players are involved in credit{' '}\n card payment processing before\n the transaction is approved and funds are transferred to your business bank account. When\n a shopper makes a card purchase, your business,{' '}\n \n your bank (acquirer), and the customer’s bank (issuer)\n {' '}\n are all involved in the transaction. When the issuing bank sends the payment to the\n acquiring bank, there’s a small fee — also known as the interchange fee. Without\n interchange rates, issuing banks wouldn’t be able to cover the costs like maintenance,\n customer service, and fraud prevention to operate card services.{' '}\n \n )\n },\n {\n header: t('How is interchange used?'),\n text: t(\n 'Interchange fees help payment systems work quickly and securely, cover card service operating costs that would otherwise be passed from banks onto consumers, and contribute to innovation investments and system maintenance.'\n ),\n content: (\n \n Interchange fees help payment systems work quickly and securely, cover card service\n operating costs that would otherwise be passed from banks onto consumers, and contribute\n to innovation investments and system maintenance so card networks like Visa and Mastercard\n can provide a faster, more convenient, and secure payment experience.\n \n )\n },\n {\n header: t('Does each card network have different interchange rates?'),\n text: t(\n 'Yes. Interchange fees are determined by card networks and are adjusted regularly. Take a look at Visa Interchange++, Mastercard Interchange++, and learn more about Interchange++ pricing.'\n ),\n content: (\n \n Yes. Interchange fees are{' '}\n \n determined by card networks\n {' '}\n and are adjusted regularly. Take a look at{' '}\n \n Visa Interchange++\n \n ,{' '}\n _Intra_EEA_Fallback_Interchange_Fees_220121.pdf\">\n Mastercard Interchange++\n \n , and learn more about{' '}\n \n Interchange++ pricing\n \n .{' '}\n \n )\n }\n ];\n\n return (\n <>\n \n \n \n
\n \n \n Interchange fee calculator\n \n \n Not sure how to calculate interchange fees? You’ve come to the right place. Enter a\n purchase amount to calculate credit and debit card interchange fees.\n \n \n \n Save on Card Payments Now\n \n \n \n\n \n \n \n \n \n Enter a payment amount to calculate interchange fees\n \n \n {\n setAmount(value);\n }}\n />\n \n \n \n Estimated monthly billing volume\n \n \n setMoneiFee({percentage: Number(val.target.value), base: 0.24})\n }>\n \n \n \n \n \n \n \n \n \n \n \n \n Customers region\n \n \n \n \n \n \n \n {calculatedFees.visaMonei.interchange > 0 && (\n \n \n With Visa & MONEI you pay:\n \n {currency(language).format(\n calculatedFees.visaMonei.interchange + calculatedFees.visaMonei.provider\n )}\n \n }\n message={FeeTooltip(calculatedFees.visaMonei)}\n />\n \n \n With Mastercard & MONEI you pay:\n \n {currency(language).format(\n calculatedFees.mastercardMonei.interchange +\n calculatedFees.mastercardMonei.provider\n )}\n \n }\n message={FeeTooltip(calculatedFees.mastercardMonei)}\n />\n \n \n

\n With Visa & Stripe you pay:\n
\n \n {stripeVisaPercentMore}% more\n \n

\n \n {currency(language).format(\n calculatedFees.visaStripe.interchange +\n calculatedFees.visaStripe.provider\n )}\n \n }\n message={FeeTooltip(calculatedFees.visaStripe)}\n />\n
\n \n

\n With Mastercard & Stripe you pay\n
\n\n \n {stripeMastercardPercentMore}% more\n \n

\n \n {currency(language).format(\n calculatedFees.mastercardStripe.interchange +\n calculatedFees.mastercardStripe.provider\n )}\n \n }\n message={FeeTooltip(calculatedFees.mastercardStripe)}\n />\n
\n
\n )}\n \n \n This interchange fee calculator is intended for illustrative purposes. Rates are\n regularly adjusted by card networks and recent changes may not always be reflected\n here.\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n \n Ready to accept card payments\n (and more)?\n \n \n \n \n Boost customer satisfaction and sales by accepting more payment methods, while\n spending less on transaction fees{' '}\n \n compared to other payment gateways\n \n .\n \n \n Join MONEI with no commitment to test payments and integrations.\n \n \n \n \n {' '}\n Open an Account\n \n \n \n \n \n \n \n \n\n \n
\n Interchange fee FAQs} />\n
\n
\n \n );\n};\n\nexport default InterchangeFeesPage;\n\nexport const query = graphql`\n query ($language: String!) {\n locales: allLocale(\n filter: {ns: {in: [\"common\", \"interchange-fee-calculator\"]}, language: {eq: $language}}\n ) {\n edges {\n node {\n ns\n data\n language\n }\n }\n }\n }\n`;\n"],"sourceRoot":""}