{"version":3,"sources":["../node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/bytesToUuid.js","../node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/v4.js","../../src/constant.js","../../src/decorators/staticMethods.js","../../src/decorators/customEvent.js","../../src/decorators/bodyMode.js","../../src/utils/getPosition.js","../../src/utils/getTipContent.js","../../src/utils/aria.js","../../src/utils/nodeListToArray.js","../../src/decorators/defaultStyles.js","../../src/decorators/styler.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/set-global.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/native-weak-map.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/redefine.js","../../node_modules/core-js/internals/path.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/to-integer.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/a-function.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/native-symbol.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/modules/es.array.find.js","../../src/decorators/trackRemoval.js","../../src/index.js","../../src/decorators/windowListener.js","../../src/decorators/isCapture.js","../../src/decorators/getEffect.js","../../src/utils/uuid.js"],"names":["getRandomValues","crypto","bind","msCrypto","rnds8","Uint8Array","rng","Error","byteToHex","i","toString","substr","bytesToUuid","buf","offset","bth","join","v4","options","Array","rnds","random","ii","HIDE","REBUILD","SHOW","dispatchGlobalEvent","eventName","opts","window","event","detail","document","checkStatus","show","this","id","isCapture","e","currentItem","hideTooltip","setUntargetItems","getTargetArray","targetArray","currentTarget","customListeners","set","target","map","Object","configurable","value","get","bodyListener","respectEffect","customEvent","tip","forId","isCustomEvent","isTargetBelongsToTooltip","getEffect","proxy","makeProxy","callback","findCustomEvents","dataAttribute","events","getBody","getDimensions","tipWidth","tipHeight","targetWidth","targetHeight","getCurrentOffset","mouseX","mouseY","defaultOffset","getDefaultPosition","calculateOffset","extraOffsetX","extraOffsetY","windowWidth","windowHeight","getParent","parentTop","parentLeft","getTipOffsetLeft","place","offsetX","getTipOffsetTop","offsetY","outsideRight","p","getTipOffsetRight","outsideBottom","getTipOffsetBottom","outside","outsideLeft","outsideTop","inside","placesList","insideList","isNewState","shouldUpdatePlace","desiredPlace","newPlace","newState","position","left","parseInt","top","node","height","width","effect","boundingClientRect","targetTop","targetLeft","clientY","l","r","t","b","bottom","disToMouse","right","JSON","key","currentParent","computedStyle","children","getContent","regexp","multiline","className","parseAria","props","ariaObj","prop","test","length","nodeList","fill","index","defaultColors","dark","text","background","border","arrow","success","warning","error","info","light","generateTooltipStyle","uuid","customColors","type","hasBorder","colors","textColor","backgroundColor","borderColor","arrowColor","generateStyle","getDefaultPopupColors","getPopupColors","check","it","Math","globalThis","self","global","Function","exec","fails","defineProperty","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","call","V","descriptor","enumerable","bitmap","writable","slice","split","classof","undefined","TypeError","IndexedObject","requireObjectCoercible","input","PREFERRED_STRING","isObject","fn","val","valueOf","argument","hasOwnProperty","toObject","EXISTS","createElement","DESCRIPTORS","a","$getOwnPropertyDescriptor","O","P","toIndexedObject","toPrimitive","IE8_DOM_DEFINE","has","createPropertyDescriptor","propertyIsEnumerableModule","f","String","$defineProperty","Attributes","anObject","object","definePropertyModule","createNonEnumerableProperty","SHARED","setGlobal","functionToString","store","inspectSource","WeakMap","module","exports","push","version","mode","copyright","postfix","keys","shared","uid","OBJECT_ALREADY_INITIALIZED","NATIVE_WEAK_MAP","state","wmget","wmhas","wmset","metadata","facade","STATE","sharedKey","hiddenKeys","objectHas","match","enforce","getterFor","TYPE","getInternalState","InternalStateModule","enforceInternalState","TEMPLATE","unsafe","simple","noTargetGet","source","prototype","aFunction","variable","namespace","method","arguments","path","ceil","floor","isNaN","min","toInteger","max","createMethod","IS_INCLUDES","$this","el","fromIndex","toLength","integer","toAbsoluteIndex","indexOf","includes","names","result","enumBugKeys","concat","getOwnPropertyNames","internalObjectKeys","getOwnPropertySymbols","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","require$$0","that","c","apply","isArray","arg","process","versions","v8","userAgent","activeXDocument","Symbol","sham","V8_VERSION","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","createWellKnownSymbol","USE_SYMBOL_AS_UID","withoutSetter","name","SPECIES","wellKnownSymbol","originalArray","C","constructor","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","callbackfn","specificCreate","boundFunction","create","arraySpeciesCreate","forEach","filter","some","every","find","findIndex","filterOut","defineProperties","Properties","objectKeys","IE_PROTO","EmptyConstructor","scriptTag","content","LT","domain","ActiveXObject","write","close","temp","parentWindow","NullProtoObjectViaActiveX","iframeDocument","iframe","documentCreateElement","style","display","html","appendChild","src","contentWindow","open","F","NullProtoObjectViaIFrame","UNSCOPABLES","ArrayPrototype","$find","FIND","SKIPS_HOLES","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","copyConstructorProperties","redefine","$","proto","ReactTooltip","CONSTANT","hasTarget","staticMethods","windowListener","ele","eventOff","dataEvent","dataEventOff","customListener","dataEffect","possibleCustomEvents","possibleCustomEventsOff","body","customEvents","customEventsOff","listeners","bodyModeListeners","targetEventOff","bodyMode","trackRemoval","extraClass","delayHide","delayShow","currentEvent","ariaProps","isEmptyTip","disable","originTooltip","isMultiline","PropTypes","insecure","class","delayUpdate","globalEventOff","afterShow","afterHide","overridePosition","scrollHide","resizeHide","wrapper","clickable","bool","methodArray","tooltipRef","parentNode","domRoot","matches","escaped","selector","nodeListToArray","element","isCaptureMode","getTipContent","placeholder","isGlobalCall","switchToSolid","getPosition","reshowDelay","updateState","setInterval","setTimeout","eventTarget","delayTime","isInvisible","clearTimeout","isScroll","isMyElement","resetState","isVisible","setState","clearInterval","Boolean","color","tooltipClass","hasCustomColors","Wrapper","wrapperClassName","htmlContent","ref","dangerouslySetInnerHTML","__html","nextProps","prevState","newAriaProps","React","Component","MutationObserver","observer","mutations","m1","mutation","m2","childList","subtree"],"mappings":"mIAKA,IAAIA,EAAmC,oBAAVC,QAAyBA,OAAOD,iBAAmBC,OAAOD,gBAAgBE,KAAKD,SAA8B,oBAAZE,UAA8D,mBAA5BA,SAASH,iBAAiCG,SAASH,gBAAgBE,KAAKC,UACpOC,EAAQ,IAAIC,WAAW,IAEZ,SAASC,IACtB,IAAKN,EACH,MAAM,IAAIO,MAAM,4GAGlB,OAAOP,EAAgBI,GCPzB,IAFA,IAAII,EAAY,GAEPC,EAAI,EAAGA,EAAI,MAAOA,EACzBD,EAAUC,IAAMA,EAAI,KAAOC,SAAS,IAAIC,OAAO,GAUlCC,MAPf,SAAqBC,EAAKC,GACxB,IAAIL,EAAIK,GAAU,EACdC,EAAMP,EAEV,MAAO,CAACO,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAO,IAAKM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAO,IAAKM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAO,IAAKM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAO,IAAKM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,OAAOO,KAAK,KCYpQC,IAvBf,SAAYC,EAASL,EAAKC,GACxB,IAAIL,EAAII,GAAOC,GAAU,EAEH,iBAAXI,IACTL,EAAkB,WAAZK,EAAuB,IAAIC,MAAM,IAAM,KAC7CD,EAAU,MAIZ,IAAIE,GADJF,EAAUA,GAAW,IACFG,SAAWH,EAAQZ,KAAOA,KAK7C,GAHAc,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBP,EACF,IAAK,IAAIS,EAAK,EAAGA,EAAK,KAAMA,EAC1BT,EAAIJ,EAAIa,GAAMF,EAAKE,GAIvB,OAAOT,GAAOD,EAAYQ,K,mmDCvB5B,MACU,CACNG,KADM,6BAENC,QAFM,gCAGNC,KAAM,8BCCJC,EAAsB,SAACC,EAAWC,GAItC,MAEA,oBAAWC,OAAP,YACFC,EAAQ,IAAID,OAAJ,cAAkC,CAAEE,OAAQH,KAEpDE,EAAQE,qBAARF,UACAA,qBAGFD,yBCVK,IAAMI,EAAc,cAA0B,IAC3CC,EAASC,KADkC,WAE3CC,EAAOD,KAFoC,SAG7CE,EAAYF,KAAKE,UAAUC,EAAjC,eACMC,EAAcD,6BAApB,eAEA,GAAgBA,oBACZJ,GAAJ,SAAYK,EACV,GAAmBJ,KAAKK,YAAYF,IAEpCA,mDACAG,EAAiBH,EAAD,cAAkBH,KAAKO,eAAvCD,IACAN,KAAA,iBAIEM,EAAmB,cACvB,IAAK,IAAIhC,EAAT,EAAgBA,EAAIkC,EAApB,OAAwClC,IAClCmC,IAAkBD,EAAtBlC,GACEkC,yCAEAA,yCAKAE,EAAkB,CACtBT,GADsB,uCAEtBU,IAFsB,gBAGhBX,KAAKC,MAAT,EACcW,EAAOZ,KAAnB,IACAa,KAGAC,wBAA8Bd,KAA9Bc,GAAuC,CACrCC,cADqC,EAErCC,MAAO,EAAF,WAIXC,IAdsB,cAepB,IAAMJ,EAAMD,EAAOZ,KAAnB,IACA,YAAIa,EACF,OAAOA,EAAP,KC9CN,IAYMK,EAAe,gBAA+B,MACKnC,EADL,cAC1CoC,OAD0C,WACKpC,EADL,YACnBqC,OADmB,SAE1CnB,EAAOD,KAFmC,SAI5CqB,EAAMlB,mCAAZ,KACMmB,EAAQnB,mCAAd,KAEMS,EAAST,EAAf,OACA,IAAIH,KAAKuB,cAAcX,IAAvB,GAIA,IAAMY,EACHvB,SAAD,MAAeqB,GAAkBA,IADnC,EAGA,GACED,WACEF,GADFE,UACmBrB,KAAKyB,UAAUb,KAFpC,EAIE,CACA,IAAMc,EAhCQ,SAAAvB,GAChB,IAAMuB,EAAN,GACA,IAAK,IAAL,OACE,oBAAWvB,EAAP,GACFuB,KAAavB,UAAbuB,GAEAA,KAAavB,EAAbuB,GAGJ,SAuBgBC,CAAd,GACAD,kBACAE,QAIEC,EAAmB,SAACrB,EAAasB,GACrC,IAAMC,EAAN,GAMA,OALAvB,WAAoB,SAAAI,GAClB,IAAMjB,EAAQiB,eAAd,GACA,GAAWjB,EAAA,oBAAyB,SAAAA,GAAK,OAAKoC,MAAL,QAG3C,GAGIC,EAAU,kBAAMnC,sCAAN,ICrCD,0BAgEb,IAhE4E,MAC7BoC,EAD6B,GAC7DC,EAD6D,QAC3CC,EAD2C,WAGvBF,EAHuB,GAG7DG,EAH6D,QAGxCC,EAHwC,WAKjDC,EAAiBnC,EAAGS,EAL6B,GAKpE2B,EALoE,SAK5DC,EAL4D,SAMtEC,EAAgBC,EAAmB,EAAD,MAAxC,GAN4E,EAarCC,EAbqC,GAapEC,EAboE,eAatDC,EAbsD,eAetEC,EAAcpD,OAApB,WACMqD,EAAerD,OAArB,YAhB4E,EAkB1CsD,EAlB0C,GAkBpEC,EAlBoE,YAkBzDC,EAlByD,aAqBtEC,EAAmB,SAAAC,GACvB,IAAMC,EAAUZ,KAAhB,EACA,OAAOF,IAAP,GAMIe,EAAkB,SAAAF,GACtB,IAAMG,EAAUd,KAAhB,EACA,OAAOD,IAAP,GAsBIgB,EAAe,SAAAC,GAAC,OA5BI,SAAAL,GACxB,IAAMC,EAAUZ,KAAhB,EACA,OAAOF,IAAP,EA0BwBmB,IAAJ,GAEhBC,EAAgB,SAAAF,GAAC,OAtBI,SAAAL,GACzB,IAAMG,EAAUd,KAAhB,EACA,OAAOD,IAAP,EAoByBoB,IAAJ,GAGjBC,EAAU,SAAAJ,GAAC,OANG,SAAAA,GAAC,OAAIN,KAAJ,EAOnBW,KAAkBN,EAAlBM,IALiB,SAAAL,GAAC,OAAIH,KAAJ,EAKmBS,CAArCD,IAAsDH,EADvC,IAEXK,EAAS,SAAAP,GAAC,OAAKI,EAAL,IAEVI,EAAa,CAAC,MAAO,SAAU,OAArC,SACMC,EAAN,GACS5F,EAAT,EAAgBA,EAAhB,EAAuBA,IAAK,CAC1B,IAAMmF,EAAIQ,EAAV,GACID,EAAJ,IACEE,UAIJ,IACA,EADIC,GAAJ,EAEMC,EAAoBC,IAA1B,EASA,OARIL,MAAJ,GACEG,KACAG,KACSJ,YAAyBL,EAAzBK,IAAkDL,EAAtD,KACLM,KACAG,EAAWJ,EAAXI,IAGF,EACS,CACLH,YADK,EAELI,SAAU,CAAEnB,MAAOkB,IAIhB,CACLH,YADK,EAELK,SAAU,CACRC,KAAMC,SAASvB,KAAD,EADN,IAERwB,IAAKD,SAASpB,KAAD,QAKnB,IAAMrB,EAAgB,SAAA2C,GAAQ,MACFA,EADE,wBACpBC,EADoB,SACZC,EADY,QAE5B,MAAO,CACLD,OAAQH,SAASG,EADZ,IAELC,MAAOJ,SAASI,EAAO,MAKrBxC,EAAmB,SAACnC,EAAGM,EAAesE,GAC1C,IAAMC,EAAqBvE,EAA3B,wBACMwE,EAAYD,EAAlB,IACME,EAAaF,EAAnB,KAHqD,EAIA/C,EAJA,GAItCG,EAJsC,QAIjBC,EAJiB,SAQrD,gBAAI0C,EACK,CACLxC,OAAQpC,EADH,QAELqC,OAAQrC,EAAEgF,SAGP,CACL5C,OAAQ2C,EAAa9C,EADhB,EAELI,OAAQyC,EAAY5C,EAAe,IAMjCK,EAAqB,SAAC,EAAD,SAOzB,MACA,EACA,EACA,EAyDA,MApDA,UAAIqC,GACFJ,EAAM,CACJS,GAAKlD,EADD,EAEJmD,EAAGnD,EAFC,EAGJoD,IAAKnD,EART,EACA,GAQIoD,GATJ,GAWEC,EAAS,CACPJ,GAAKlD,EADE,EAEPmD,EAAGnD,EAFI,EAGPoD,EAAGG,GACHF,EAAGpD,EAfP,EACA,EANG,IAsBDsC,EAAO,CACLW,IAAKlD,EAlBT,EACA,GAkBImD,GAnBJ,EAoBIC,GAAKnD,EAHA,EAILoD,EAAGpD,EAAY,GAEjBuD,EAAQ,CACNN,EAxBJ,EAyBIC,EAAGnD,EAzBP,EACA,EAyBIoD,GAAKnD,EAHC,EAINoD,EAAGpD,EAAY,IAEZ,UAAI4C,IACTJ,EAAM,CACJS,GAAKlD,EADD,EAEJmD,EAAGnD,EAFC,EAGJoD,IAAKjD,MAhCT,GAiCIkD,GAAKlD,EAAF,GAELmD,EAAS,CACPJ,GAAKlD,EADE,EAEPmD,EAAGnD,EAFI,EAGPoD,EAAGjD,EAHI,EAIPkD,EAAGlD,MAvCP,GAyCEoC,EAAO,CACLW,IAAKlD,EAAWE,EAAXF,EA1CT,GA2CImD,GAAKjD,EAFA,EAGLkD,GAAKnD,EAHA,EAILoD,EAAGpD,EAAY,GAEjBuD,EAAQ,CACNN,EAAGhD,EADG,EAENiD,EAAGnD,EAAWE,EAAXF,EAjDP,EAkDIoD,GAAKnD,EAHC,EAINoD,EAAGpD,EAAY,IAIZ,CAAEwC,IAAF,EAAOa,OAAP,EAAef,KAAf,EAAqBiB,UAIxB/C,EAAkB,SAAAhE,GACtB,IAAIiE,EAAJ,EACIC,EAAJ,EAKA,IAAK,IAAL,IAHA,oBAAI/B,qCACFnC,EAASgH,WAAWhH,0BAApBA,OAEF,EACE,QAAIiH,EACF/C,GAAgB6B,SAAS/F,EAAD,GAAxBkE,IACK,WAAI+C,EACT/C,GAAgB6B,SAAS/F,EAAD,GAAxBkE,IACK,SAAI+C,EACThD,GAAgB8B,SAAS/F,EAAD,GAAxBiE,IACK,UAAIgD,IACThD,GAAgB8B,SAAS/F,EAAD,GAAxBiE,KAIJ,MAAO,CAAEA,aAAF,EAAgBC,iBAInBG,EAAY,SAAAvC,GAEhB,IADA,IAAIoF,EAAJ,EACA,GAAsB,CACpB,IAAMC,EAAgBpG,wBADF,GAIpB,GACEoG,0CADF,cAEEA,kCAEA,MACFD,EAAgBA,EAAhBA,cAQF,MAAO,CAAE5C,UAJN4C,GAAiBA,0BAAlB,KADF,EAKoB3C,WAFjB2C,GAAiBA,0BAAlB,MADF,IChPa,oBACb,KAAc,OAAOE,EACrB,QAAIC,OAAJ,OAAgCA,EAAqB,OAFO,EAG5D,UAAIA,EAAqB,OAHmC,KAK5D,IAAMC,EAAN,aACA,OAAKC,GAAD,UAAcA,GAA0BD,OAA5C,GAMO5E,EAAA,cAAsB,cAC3B,OACE,0BAAMuE,IAAN,EAAcO,UAAU,cAD1B,MALA,ECjBG,SAASC,EAAUC,GACxB,IAAMC,EAAN,GAUA,OATAxF,uBACU,SAAAyF,GAEN,MAAO,sBAAsBC,KAA7B,MAHJ1F,SAKW,SAAAyF,GACPD,KAAgBD,EAAhBC,MAGJ,ECXa,cACb,IAAMG,EAASC,EAAf,OACA,OAAIA,EAAJ,eACS1H,2BAAP,GAEK,IAAIA,MAAMyH,GAAQE,OAAO9F,KAAI,SAAA+F,GAAK,OAAIF,EAAJ,M,ICRrCG,EAAgB,CACpBC,KAAM,CACJC,KADI,OAEJC,WAFI,OAGJC,OAHI,cAIJC,MAAO,QAETC,QAAS,CACPJ,KADO,OAEPC,WAFO,UAGPC,OAHO,cAIPC,MAAO,WAETE,QAAS,CACPL,KADO,OAEPC,WAFO,UAGPC,OAHO,cAIPC,MAAO,WAETG,MAAO,CACLN,KADK,OAELC,WAFK,UAGLC,OAHK,cAILC,MAAO,WAETI,KAAM,CACJP,KADI,OAEJC,WAFI,UAGJC,OAHI,cAIJC,MAAO,WAETK,MAAO,CACLR,KADK,OAELC,WAFK,OAGLC,OAHK,cAILC,MAAO,SCjCJ,SAASM,EAAqBC,EAAMC,EAAcC,EAAMC,GAC7D,OAMF,SAAuBH,EAAMI,GAC3B,IAAMC,EAAYD,EAAlB,KACME,EAAkBF,EAAxB,WACMG,EAAcH,EAApB,OACMI,EAAaJ,EAAnB,MAEA,yiEAZOK,CAAcT,EAyFvB,SAAwBC,EAAcC,EAAMC,GAC1C,IAAME,EAAYJ,EAAlB,KACMK,EAAkBL,EAAxB,WACMM,EAAcN,EAApB,OACMO,EAAaP,QACfA,EADeA,MAEfA,EAFJ,WAIMG,ED7DD,SAA+BF,GACpC,OAAOd,UAA2BA,EAA3BA,SAAP,EC4DesB,CAAf,GAEA,IACEN,UAGF,IACEA,gBAGF,IAEIA,SADF,IAGkBF,oBAAhBE,UAIJ,IACEA,WAGF,SAvH2BO,CAAeV,EAAcC,EAAxD,I,4MCNF,IAAIU,EAAQ,SAAUC,GACpB,OAAOA,GAAMA,EAAGC,MAAQA,MAAQD,GAIlC,EAEED,EAA2B,iBAAdG,YAA0BA,aACvCH,EAAuB,iBAAV3I,QAAsBA,SAEnC2I,EAAqB,iBAARI,MAAoBA,OACjCJ,EAAuB,iBAAVK,GAAsBA,IAElC,WAAc,OAAO1I,KAArB,IAAmC2I,SAAS,cAATA,GCbtC,EAAiB,SAAUC,GACzB,IACE,QAASA,IACT,MAAOvB,GACP,OAAO,ICDX,GAAkBwB,GAAM,WAEtB,OAA8E,GAAvE/H,OAAOgI,eAAe,GAAI,EAAG,CAAE7H,IAAK,WAAc,OAAO,KAAQ,MCJtE8H,EAAwB,GAAGC,qBAE3BC,EAA2BnI,OAAOmI,yB,KAGpBA,IAA6BF,EAAsBG,KAAK,CAAE,EAAG,GAAK,GAI1D,SAA8BC,GACtD,IAAIC,EAAaH,EAAyBjJ,KAAMmJ,GAChD,QAASC,GAAcA,EAAWC,YAChCN,GCbJ,EAAiB,SAAUO,EAAQtI,GACjC,MAAO,CACLqI,aAAuB,EAATC,GACdvI,eAAyB,EAATuI,GAChBC,WAAqB,EAATD,GACZtI,MAAOA,ICLPzC,EAAW,GAAGA,SAElB,EAAiB,SAAU+J,GACzB,OAAO/J,EAAS2K,KAAKZ,GAAIkB,MAAM,GAAI,ICAjCC,EAAQ,GAAGA,MAGf,EAAiBZ,GAAM,WAGrB,OAAQ/H,OAAO,KAAKkI,qBAAqB,MACtC,SAAUV,GACb,MAAsB,UAAfoB,EAAQpB,GAAkBmB,EAAMP,KAAKZ,EAAI,IAAMxH,OAAOwH,IAC3DxH,OCVJ,EAAiB,SAAUwH,GACzB,QAAUqB,GAANrB,EAAiB,MAAMsB,UAAU,wBAA0BtB,GAC/D,OAAOA,GCAT,EAAiB,SAAUA,GACzB,OAAOuB,EAAcC,EAAuBxB,KCL9C,EAAiB,SAAUA,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,GCKvD,EAAiB,SAAUyB,EAAOC,GAChC,IAAKC,EAASF,GAAQ,OAAOA,EAC7B,IAAIG,EAAIC,EACR,GAAIH,GAAoD,mBAAxBE,EAAKH,EAAMxL,YAA4B0L,EAASE,EAAMD,EAAGhB,KAAKa,IAAS,OAAOI,EAC9G,GAAmC,mBAAvBD,EAAKH,EAAMK,WAA2BH,EAASE,EAAMD,EAAGhB,KAAKa,IAAS,OAAOI,EACzF,IAAKH,GAAoD,mBAAxBE,EAAKH,EAAMxL,YAA4B0L,EAASE,EAAMD,EAAGhB,KAAKa,IAAS,OAAOI,EAC/G,MAAMP,UAAU,4CCRlB,GAAiB,SAAUS,GACzB,OAAOvJ,OAAOgJ,EAAuBO,KCHnCC,GAAiB,GAAGA,eAExB,GAAiB,SAAgBhC,EAAI1C,GACnC,OAAO0E,GAAepB,KAAKqB,GAASjC,GAAK1C,ICFvC/F,GAAW6I,EAAO7I,SAElB2K,GAASP,EAASpK,KAAaoK,EAASpK,GAAS4K,eAErD,GAAiB,SAAUnC,GACzB,OAAOkC,GAAS3K,GAAS4K,cAAcnC,GAAM,ICH/C,IAAkBoC,IAAgB7B,GAAM,WAEtC,OAEQ,GAFD/H,OAAOgI,eAAe2B,GAAc,OAAQ,IAAK,CACtDxJ,IAAK,WAAc,OAAO,KACzB0J,KCADC,GAA4B9J,OAAOmI,yB,MAI3ByB,EAAcE,GAA4B,SAAkCC,EAAGC,GAGzF,GAFAD,EAAIE,EAAgBF,GACpBC,EAAIE,EAAYF,GAAG,GACfG,GAAgB,IAClB,OAAOL,GAA0BC,EAAGC,GACpC,MAAOzD,IACT,GAAI6D,GAAIL,EAAGC,GAAI,OAAOK,GAA0BC,EAA2BC,EAAEnC,KAAK2B,EAAGC,GAAID,EAAEC,MCjB7F,GAAiB,SAAUxC,GACzB,IAAK2B,EAAS3B,GACZ,MAAMsB,UAAU0B,OAAOhD,GAAM,qBAC7B,OAAOA,GCCPiD,GAAkBzK,OAAOgI,e,MAIjB4B,EAAca,GAAkB,SAAwBV,EAAGC,EAAGU,GAIxE,GAHAC,GAASZ,GACTC,EAAIE,EAAYF,GAAG,GACnBW,GAASD,GACLP,GAAgB,IAClB,OAAOM,GAAgBV,EAAGC,EAAGU,GAC7B,MAAOnE,IACT,GAAI,QAASmE,GAAc,QAASA,EAAY,MAAM5B,UAAU,2BAEhE,MADI,UAAW4B,IAAYX,EAAEC,GAAKU,EAAWxK,OACtC6J,ICfT,GAAiBH,EAAc,SAAUgB,EAAQ9F,EAAK5E,GACpD,OAAO2K,GAAqBN,EAAEK,EAAQ9F,EAAKuF,EAAyB,EAAGnK,KACrE,SAAU0K,EAAQ9F,EAAK5E,GAEzB,OADA0K,EAAO9F,GAAO5E,EACP0K,GCLT,GAAiB,SAAU9F,EAAK5E,GAC9B,IACE4K,GAA4BlD,EAAQ9C,EAAK5E,GACzC,MAAOqG,GACPqB,EAAO9C,GAAO5E,EACd,OAAOA,GCLP6K,GAAS,qBAGb,GAFYnD,EAAOmD,KAAWC,GAAUD,GAAQ,ICF5CE,GAAmBpD,SAASpK,SAGE,mBAAvByN,GAAMC,gBACfD,GAAMC,cAAgB,SAAU3D,GAC9B,OAAOyD,GAAiB7C,KAAKZ,KAIjC,ICAI3H,GAAKM,GAAKiK,GDAd,GAAiBc,GAAMC,cERnBC,GAAUxD,EAAOwD,QAErB,GAAoC,oBAAZA,IAA0B,cAAc1F,KAAKyF,GAAcC,K,mBCFlFC,EAAOC,QAAU,SAAUxG,EAAK5E,GAC/B,OAAOgL,GAAMpG,KAASoG,GAAMpG,QAAiB+D,IAAV3I,EAAsBA,EAAQ,MAChE,WAAY,IAAIqL,KAAK,CACtBC,QAAS,SACTC,KAAyB,SACzBC,UAAW,+CCRTvM,GAAK,EACLwM,GAAUlE,KAAKrJ,SAEnB,GAAiB,SAAU0G,GACzB,MAAO,UAAY0F,YAAe3B,IAAR/D,EAAoB,GAAKA,GAAO,QAAU3F,GAAKwM,IAASlO,SAAS,KCDzFmO,GAAOC,GAAO,QAElB,GAAiB,SAAU/G,GACzB,OAAO8G,GAAK9G,KAAS8G,GAAK9G,GAAOgH,GAAIhH,KCNvC,GAAiB,GLSbiH,GAA6B,6BAC7BX,GAAUxD,EAAOwD,QAgBrB,GAAIY,IAAmBH,GAAOI,MAAO,CACnC,IAAIf,GAAQW,GAAOI,QAAUJ,GAAOI,MAAQ,IAAIb,IAC5Cc,GAAQhB,GAAM/K,IACdgM,GAAQjB,GAAMd,IACdgC,GAAQlB,GAAMrL,IAClBA,GAAM,SAAU2H,EAAI6E,GAClB,GAAIF,GAAM/D,KAAK8C,GAAO1D,GAAK,MAAM,IAAIsB,UAAUiD,IAG/C,OAFAM,EAASC,OAAS9E,EAClB4E,GAAMhE,KAAK8C,GAAO1D,EAAI6E,GACfA,GAETlM,GAAM,SAAUqH,GACd,OAAO0E,GAAM9D,KAAK8C,GAAO1D,IAAO,IAElC4C,GAAM,SAAU5C,GACd,OAAO2E,GAAM/D,KAAK8C,GAAO1D,QAEtB,CACL,IAAI+E,GAAQC,GAAU,SACtBC,GAAWF,KAAS,EACpB1M,GAAM,SAAU2H,EAAI6E,GAClB,GAAIK,GAAUlF,EAAI+E,IAAQ,MAAM,IAAIzD,UAAUiD,IAG9C,OAFAM,EAASC,OAAS9E,EAClBsD,GAA4BtD,EAAI+E,GAAOF,GAChCA,GAETlM,GAAM,SAAUqH,GACd,OAAOkF,GAAUlF,EAAI+E,IAAS/E,EAAG+E,IAAS,IAE5CnC,GAAM,SAAU5C,GACd,OAAOkF,GAAUlF,EAAI+E,KAIzB,IMtDII,GAAOnB,GNsDX,GAAiB,CACf3L,IAAKA,GACLM,IAAKA,GACLiK,IAAKA,GACLwC,QAnDY,SAAUpF,GACtB,OAAO4C,GAAI5C,GAAMrH,GAAIqH,GAAM3H,GAAI2H,EAAI,KAmDnCqF,UAhDc,SAAUC,GACxB,OAAO,SAAUtF,GACf,IAAIyE,EACJ,IAAK9C,EAAS3B,KAAQyE,EAAQ9L,GAAIqH,IAAKX,OAASiG,EAC9C,MAAMhE,UAAU,0BAA4BgE,EAAO,aACnD,OAAOb,K,kBOfb,IAAIc,EAAmBC,GAAoB7M,IACvC8M,EAAuBD,GAAoBJ,QAC3CM,EAAW1C,OAAOA,QAAQ7B,MAAM,WAEnC0C,EAAOC,QAAU,SAAUvB,EAAGjF,EAAK5E,EAAOjC,GACzC,IAGIgO,EAHAkB,IAASlP,KAAYA,EAAQkP,OAC7BC,IAASnP,KAAYA,EAAQsK,WAC7B8E,IAAcpP,KAAYA,EAAQoP,YAElB,mBAATnN,IACS,iBAAP4E,GAAoBsF,GAAIlK,EAAO,SACxC4K,GAA4B5K,EAAO,OAAQ4E,IAE7CmH,EAAQgB,EAAqB/M,IAClBoN,SACTrB,EAAMqB,OAASJ,EAASnP,KAAmB,iBAAP+G,EAAkBA,EAAM,MAG5DiF,IAAMnC,GAIEuF,GAEAE,GAAetD,EAAEjF,KAC3BsI,GAAS,UAFFrD,EAAEjF,GAIPsI,EAAQrD,EAAEjF,GAAO5E,EAChB4K,GAA4Bf,EAAGjF,EAAK5E,IATnCkN,EAAQrD,EAAEjF,GAAO5E,EAChB8K,GAAUlG,EAAK5E,KAUrB2H,SAAS0F,UAAW,YAAY,WACjC,MAAsB,mBAARrO,MAAsB6N,EAAiB7N,MAAMoO,QAAUnC,GAAcjM,YCpCrF,GAAiB0I,ECCb4F,GAAY,SAAUC,GACxB,MAA0B,mBAAZA,EAAyBA,OAAW5E,GAGpD,GAAiB,SAAU6E,EAAWC,GACpC,OAAOC,UAAUjI,OAAS,EAAI6H,GAAUK,GAAKH,KAAeF,GAAU5F,EAAO8F,IACzEG,GAAKH,IAAcG,GAAKH,GAAWC,IAAW/F,EAAO8F,IAAc9F,EAAO8F,GAAWC,ICTvFG,GAAOrG,KAAKqG,KACZC,GAAQtG,KAAKsG,MAIjB,GAAiB,SAAUxE,GACzB,OAAOyE,MAAMzE,GAAYA,GAAY,GAAKA,EAAW,EAAIwE,GAAQD,IAAMvE,ICJrE0E,GAAMxG,KAAKwG,IAIf,GAAiB,SAAU1E,GACzB,OAAOA,EAAW,EAAI0E,GAAIC,GAAU3E,GAAW,kBAAoB,GCLjE4E,GAAM1G,KAAK0G,IACXF,GAAMxG,KAAKwG,ICEXG,GAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGItO,EAHA6J,EAAIE,EAAgBqE,GACpB3I,EAAS8I,GAAS1E,EAAEpE,QACpBG,EDDS,SAAUA,EAAOH,GAChC,IAAI+I,EAAUR,GAAUpI,GACxB,OAAO4I,EAAU,EAAIP,GAAIO,EAAU/I,EAAQ,GAAKsI,GAAIS,EAAS/I,GCD/CgJ,CAAgBH,EAAW7I,GAIvC,GAAI0I,GAAeE,GAAMA,GAAI,KAAO5I,EAASG,GAG3C,IAFA5F,EAAQ6J,EAAEjE,OAEG5F,EAAO,OAAO,OAEtB,KAAMyF,EAASG,EAAOA,IAC3B,IAAKuI,GAAevI,KAASiE,IAAMA,EAAEjE,KAAWyI,EAAI,OAAOF,GAAevI,GAAS,EACnF,OAAQuI,IAAgB,IClB1BO,GDsBa,CAGfC,SAAUT,IAAa,GAGvBQ,QAASR,IAAa,IC5B6BQ,QAGrD,GAAiB,SAAUhE,EAAQkE,GACjC,IAGIhK,EAHAiF,EAAIE,EAAgBW,GACpBpN,EAAI,EACJuR,EAAS,GAEb,IAAKjK,KAAOiF,GAAIK,GAAIqC,GAAY3H,IAAQsF,GAAIL,EAAGjF,IAAQiK,EAAOxD,KAAKzG,GAEnE,KAAOgK,EAAMnJ,OAASnI,GAAO4M,GAAIL,EAAGjF,EAAMgK,EAAMtR,SAC7CoR,GAAQG,EAAQjK,IAAQiK,EAAOxD,KAAKzG,IAEvC,OAAOiK,GCdT,GAAiB,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,WCLEtC,GAAauC,GAAYC,OAAO,SAAU,a,MAKlCjP,OAAOkP,qBAAuB,SAA6BnF,GACrE,OAAOoF,GAAmBpF,EAAG0C,M,MCRnBzM,OAAOoP,uBCKnB,GAAiBC,GAAW,UAAW,YAAc,SAAiB7H,GACpE,IAAIoE,EAAO0D,GAA0B/E,EAAEI,GAASnD,IAC5C4H,EAAwBG,GAA4BhF,EACxD,OAAO6E,EAAwBxD,EAAKqD,OAAOG,EAAsB5H,IAAOoE,GCJ1E,GAAiB,SAAU9L,EAAQwN,GAIjC,IAHA,IAAI1B,EAAO4D,GAAQlC,GACftF,EAAiB6C,GAAqBN,EACtCpC,EAA2BsH,GAA+BlF,EACrD/M,EAAI,EAAGA,EAAIoO,EAAKjG,OAAQnI,IAAK,CACpC,IAAIsH,EAAM8G,EAAKpO,GACV4M,GAAItK,EAAQgF,IAAMkD,EAAelI,EAAQgF,EAAKqD,EAAyBmF,EAAQxI,MCTpF4K,GAAc,kBAEdC,GAAW,SAAUC,EAASC,GAChC,IAAI3P,EAAQ4P,GAAKC,GAAUH,IAC3B,OAAO1P,GAAS8P,IACZ9P,GAAS+P,KACW,mBAAbJ,EAA0B9H,EAAM8H,KACrCA,IAGJE,GAAYJ,GAASI,UAAY,SAAUG,GAC7C,OAAO1F,OAAO0F,GAAQC,QAAQT,GAAa,KAAKU,eAG9CN,GAAOH,GAASG,KAAO,GACvBG,GAASN,GAASM,OAAS,IAC3BD,GAAWL,GAASK,SAAW,IAEnC,GAAiBL,GCnBbxH,GAA2BkI,GAA2D9F,ECE1F,GAAiB,SAAUnB,EAAIkH,EAAM3K,GAEnC,GCLe,SAAU6B,GACzB,GAAiB,mBAANA,EACT,MAAMsB,UAAU0B,OAAOhD,GAAM,sBDE/BgG,CAAUpE,QACGP,IAATyH,EAAoB,OAAOlH,EAC/B,OAAQzD,GACN,KAAK,EAAG,OAAO,WACb,OAAOyD,EAAGhB,KAAKkI,IAEjB,KAAK,EAAG,OAAO,SAAUzG,GACvB,OAAOT,EAAGhB,KAAKkI,EAAMzG,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGpF,GAC1B,OAAO2E,EAAGhB,KAAKkI,EAAMzG,EAAGpF,IAE1B,KAAK,EAAG,OAAO,SAAUoF,EAAGpF,EAAG8L,GAC7B,OAAOnH,EAAGhB,KAAKkI,EAAMzG,EAAGpF,EAAG8L,IAG/B,OAAO,WACL,OAAOnH,EAAGoH,MAAMF,EAAM1C,aEhB1B,GAAiB1P,MAAMuS,SAAW,SAAiBC,GACjD,MAAuB,SAAhB9H,EAAQ8H,ICJjB,GAAiBrB,GAAW,YAAa,cAAgB,GnBCrDsB,GAAU/I,EAAO+I,QACjBC,GAAWD,IAAWA,GAAQC,SAC9BC,GAAKD,IAAYA,GAASC,GAG1BA,GAEFrF,IADAmB,GAAQkE,GAAGlI,MAAM,MACD,GAAK,EAAI,EAAIgE,GAAM,GAAKA,GAAM,GACrCmE,OACTnE,GAAQmE,GAAUnE,MAAM,iBACVA,GAAM,IAAM,MACxBA,GAAQmE,GAAUnE,MAAM,oBACbnB,GAAUmB,GAAM,IAI/B,IoBgCIoE,GpBhCJ,GAAiBvF,KAAYA,GqBd7B,KAAmBxL,OAAOoP,wBAA0BrH,GAAM,WACxD,OAAQyC,OAAOwG,YAGZA,OAAOC,MAAQC,IAAcA,GAAa,MCN/C,GAAiBC,KACXH,OAAOC,MACkB,iBAAnBD,OAAOI,SCEfC,GAAwBxF,GAAO,OAC/BmF,GAASpJ,EAAOoJ,OAChBM,GAAwBC,GAAoBP,GAASA,IAAUA,GAAOQ,eAAiB1F,GAE3F,GAAiB,SAAU2F,GAOvB,OANGrH,GAAIiH,GAAuBI,KAAWN,IAAuD,iBAA/BE,GAAsBI,MACnFN,IAAiB/G,GAAI4G,GAAQS,GAC/BJ,GAAsBI,GAAQT,GAAOS,GAErCJ,GAAsBI,GAAQH,GAAsB,UAAYG,IAE3DJ,GAAsBI,ICd7BC,GAAUC,GAAgB,WAI9B,GAAiB,SAAUC,EAAejM,GACxC,IAAIkM,EASF,OAREpB,GAAQmB,KAGM,mBAFhBC,EAAID,EAAcE,cAEaD,IAAM3T,QAASuS,GAAQoB,EAAEtE,WAC/CpE,EAAS0I,IAEN,QADVA,EAAIA,EAAEH,OACUG,OAAIhJ,GAH+CgJ,OAAIhJ,GAKlE,SAAWA,IAANgJ,EAAkB3T,MAAQ2T,GAAc,IAAXlM,EAAe,EAAIA,ICZ5D4F,GAAO,GAAGA,KAGV6C,GAAe,SAAUtB,GAC3B,IAAIiF,EAAiB,GAARjF,EACTkF,EAAoB,GAARlF,EACZmF,EAAkB,GAARnF,EACVoF,EAAmB,GAARpF,EACXqF,EAAwB,GAARrF,EAChBsF,EAAwB,GAARtF,EAChBuF,EAAmB,GAARvF,GAAaqF,EAC5B,OAAO,SAAU7D,EAAOgE,EAAYhC,EAAMiC,GASxC,IARA,IAOIrS,EAAO6O,EAPPhF,EAAIN,GAAS6E,GACb3G,EAAOoB,EAAcgB,GACrByI,EAAgBvV,GAAKqV,EAAYhC,EAAM,GACvC3K,EAAS8I,GAAS9G,EAAKhC,QACvBG,EAAQ,EACR2M,EAASF,GAAkBG,GAC3B5S,EAASiS,EAASU,EAAOnE,EAAO3I,GAAUqM,GAAaI,EAAgBK,EAAOnE,EAAO,QAAKzF,EAExFlD,EAASG,EAAOA,IAAS,IAAIuM,GAAYvM,KAAS6B,KAEtDoH,EAASyD,EADTtS,EAAQyH,EAAK7B,GACiBA,EAAOiE,GACjC+C,GACF,GAAIiF,EAAQjS,EAAOgG,GAASiJ,OACvB,GAAIA,EAAQ,OAAQjC,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAO5M,EACf,KAAK,EAAG,OAAO4F,EACf,KAAK,EAAGyF,GAAKnD,KAAKtI,EAAQI,QACrB,OAAQ4M,GACb,KAAK,EAAG,OAAO,EACf,KAAK,EAAGvB,GAAKnD,KAAKtI,EAAQI,GAIhC,OAAOiS,GAAiB,EAAIF,GAAWC,EAAWA,EAAWpS,IAIjE,GAAiB,CAGf6S,QAASvE,GAAa,GAGtBrO,IAAKqO,GAAa,GAGlBwE,OAAQxE,GAAa,GAGrByE,KAAMzE,GAAa,GAGnB0E,MAAO1E,GAAa,GAGpB2E,KAAM3E,GAAa,GAGnB4E,UAAW5E,GAAa,GAGxB6E,UAAW7E,GAAa,IChE1B,GAAiBpO,OAAO4L,MAAQ,SAAc7B,GAC5C,OAAOoF,GAAmBpF,EAAGiF,KCC/B,GAAiBpF,EAAc5J,OAAOkT,iBAAmB,SAA0BnJ,EAAGoJ,GACpFxI,GAASZ,GAKT,IAJA,IAGIjF,EAHA8G,EAAOwH,GAAWD,GAClBxN,EAASiG,EAAKjG,OACdG,EAAQ,EAELH,EAASG,GAAO+E,GAAqBN,EAAER,EAAGjF,EAAM8G,EAAK9F,KAAUqN,EAAWrO,IACjF,OAAOiF,GCbT,GAAiBsF,GAAW,WAAY,mBRUpCgE,GAAW7G,GAAU,YAErB8G,GAAmB,aAEnBC,GAAY,SAAUC,GACxB,MAAOC,WAAmBD,EAAnBC,gBAmCL,GAAkB,WACpB,IAEE1C,GAAkBhS,SAAS2U,QAAU,IAAIC,cAAc,YACvD,MAAOpN,IACT,GAAkBwK,GApCY,SAAUA,GACxCA,EAAgB6C,MAAML,GAAU,KAChCxC,EAAgB8C,QAChB,IAAIC,EAAO/C,EAAgBgD,aAAa/T,OAExC,OADA+Q,EAAkB,KACX+C,EA+B6BE,CAA0BjD,IA3BjC,WAE7B,IAEIkD,EAFAC,EAASC,GAAsB,UAWnC,OARAD,EAAOE,MAAMC,QAAU,OACvBC,GAAKC,YAAYL,GAEjBA,EAAOM,IAAMhK,OALJ,gBAMTyJ,EAAiBC,EAAOO,cAAc1V,UACvB2V,OACfT,EAAeL,MAAML,GAAU,sBAC/BU,EAAeJ,QACRI,EAAeU,EAc2DC,GAEjF,IADA,IAAIjP,EAASqJ,GAAYrJ,OAClBA,YAAiB,GAAe,UAAYqJ,GAAYrJ,IAC/D,OAAO,MAGT8G,GAAW4G,KAAY,EAIvB,OAAiBrT,OAAOyS,QAAU,SAAgB1I,EAAGoJ,GACnD,IAAIpE,EAQJ,OAPU,OAANhF,GACFuJ,GAAgB,UAAc3I,GAASZ,GACvCgF,EAAS,IAAIuE,GACbA,GAAgB,UAAc,KAE9BvE,EAAOsE,IAAYtJ,GACdgF,EAAS,UACMlG,IAAfsK,EAA2BpE,EAASmE,GAAiBnE,EAAQoE,ISxElE0B,GAAclD,GAAgB,eAC9BmD,GAAiB5W,MAAMqP,eAIQ1E,GAA/BiM,GAAeD,KACjBhK,GAAqBN,EAAEuK,GAAgBD,GAAa,CAClD5U,cAAc,EACdC,MAAOuS,GAAO,QAKlB,IAA2B3N,G,SCfvBiQ,GAAQ1E,GAAwC0C,KAGhDiC,GAAO,OACPC,IAAc,EAGdD,KAAQ,IAAI9W,MAAM,GAAN,MAAe,WAAc+W,IAAc,Kfa1C,SAAUhX,EAASqP,GAClC,IAGYxN,EAAQgF,EAAKoQ,EAAgBC,EAAgB7M,EAHrD8M,EAASnX,EAAQ6B,OACjBuV,EAASpX,EAAQ2J,OACjB0N,EAASrX,EAAQsX,KASrB,GANEzV,EADEuV,EACOzN,EACA0N,EACA1N,EAAOwN,IAAWpK,GAAUoK,EAAQ,KAEnCxN,EAAOwN,IAAW,IAAI7H,UAEtB,IAAKzI,KAAOwI,EAAQ,CAQ9B,GAPA6H,EAAiB7H,EAAOxI,GAGtBoQ,EAFEjX,EAAQoP,aACV/E,EAAaH,GAAyBrI,EAAQgF,KACfwD,EAAWpI,MACpBJ,EAAOgF,IACtB6K,GAAS0F,EAASvQ,EAAMsQ,GAAUE,EAAS,IAAM,KAAOxQ,EAAK7G,EAAQuX,cAE5C3M,IAAnBqM,EAA8B,CAC3C,UAAWC,WAA0BD,EAAgB,SACrDO,GAA0BN,EAAgBD,IAGxCjX,EAAQgT,MAASiE,GAAkBA,EAAejE,OACpDnG,GAA4BqK,EAAgB,QAAQ,GAGtDO,GAAS5V,EAAQgF,EAAKqQ,EAAgBlX,IetC1C0X,CAAE,CAAE7V,OAAQ,QAAS8V,OAAO,EAAMJ,OAAQP,IAAe,CACvDlC,KAAM,SAAcT,GAClB,OAAOyC,GAAM7V,KAAMoT,EAAY1E,UAAUjI,OAAS,EAAIiI,UAAU,QAAK/E,MDE9C/D,GCGVkQ,GDFfF,GAAeD,IAAa/P,KAAO,E,IEAtB,GCgBT+Q,GrEbS,YAKb/V,OAAc,SAAAA,GACZrB,EAAoBqX,EAAD,KAAuB,CAAEhW,YAO9CA,UAAiB,WACfrB,EAAoBqX,EAApBrX,UAOFqB,OAAc,SAAAA,GACZrB,EAAoBqX,EAAD,KAAuB,CAAEhW,YAG9CA,0BAAiC,WAC3BZ,KAAJ,QACEA,KAAA,iBACAA,KAAA,iBAIJY,uBAA8B,YAC5B,GAAIZ,KAAJ,MAAgB,CACd,IAAM6W,KACHlX,GAASA,EAATA,QAAyBA,SAAzBA,QAGHK,KAAA,YACE,CAAES,cAAeoW,GAAalX,SAAaiB,SAD7C,KAOJA,uBAA8B,YAC5B,GAAIZ,KAAJ,MAAgB,CACd,IAAM6W,KACHlX,GAASA,EAATA,QAAyBA,SAAzBA,QACHK,KAAA,YACE,CAAES,cAAeoW,GAAalX,SAAaiB,QAD7C,KqE3CLkW,ICtBc,YACblW,6BAAoC,YAElClB,2BAA2BkX,EAA3BlX,KAAiDM,KAAjDN,YACAA,wBAAwBkX,EAAxBlX,KAA8CM,KAA9CN,YAHuD,GAMvDA,2BAA2BkX,EAA3BlX,QAAoDM,KAApDN,eACAA,wBAAwBkX,EAAxBlX,QAAiDM,KAAjDN,eAPuD,GAUvDA,2BAA2BkX,EAA3BlX,KAAiDM,KAAjDN,YACAA,wBAAwBkX,EAAxBlX,KAA8CM,KAA9CN,YAXuD,GAcvD,IACEA,oCAAqCM,KAArCN,gBACAA,iCAAkCM,KAAlCN,qBAIJkB,+BAAsC,WACpClB,2BAA2BkX,EAA3BlX,KAAiDM,KAAjDN,YACAA,2BAA2BkX,EAA3BlX,QAAoDM,KAApDN,eACAA,2BAA2BkX,EAA3BlX,KAAiDM,KAAjDN,YACAA,oCAAqCM,KAArCN,iBAMFkB,2BAAkC,WAC3BZ,KAAL,OACAA,KAAA,eDVH+W,IpE4Bc,YACbnW,0BAAiC,YAE/B,OADkBZ,KAD2B,eAE3BgX,eAAlB,eAIFpW,+BAAsC,YAAc,aACtBZ,KADsB,MAC1CL,EAD0C,QACnCsX,EADmC,WAE5CC,EAAYF,8BAAlB,EACMG,EAAeH,kCAArB,EAEAE,sBAA6B,SAAAvX,GAC3BqX,wBAA+BtW,QAA/BsW,IACA,IAAMI,EAAiBtX,SAAvB,GACAY,aACAsW,8BAEF,GACEG,sBAAgC,SAAAxX,GAC9BqX,wBAA+B,EAA/BA,aACAA,qBAA4B,EAA5BA,oBAMNpW,iCAAwC,YAAc,MACxBZ,KADwB,MAC5CL,EAD4C,QACrCsX,EADqC,WAE9CC,EAAYvX,GAASqX,eAA3B,cACMG,EAAeF,GAAYD,eAAjC,kBAEAA,wBAAmCtW,QAAnCsW,IACA,GAAkBA,wBAAsChX,KAAtCgX,coE5DrB5V,IEzBc,YACbR,sBAA6B,YAC3B,OACGH,GAAD,SACEA,kCACFT,KAAKqG,MAFL,YADF,GFwBHnG,IG1Bc,YACbU,sBAA6B,YAE3B,OADmBH,eAAnB,gBACqBT,KAAKqG,MAAnBgR,QAAP,SHwBH5V,InEwBc,YACbb,uBAA8B,WAC5B,QAASZ,KAAKqG,MAAd,UAGFzF,6BAAoC,YAAsB,aAMpDZ,KANoD,MAEtDL,EAFsD,QAGtDsX,EAHsD,WAItDK,EAJsD,uBAKtDC,EALsD,0BAOlDC,EAAOxV,IAEPyV,EAAe5V,EAAiBrB,EAAtC,cACMkX,EAAkB7V,EAAiBrB,EAAzC,kBAEA,MAAIb,IAAe8X,SACnB,MAAIR,IAAkBS,SACtBJ,sBAEW,SAAA3X,GAAK,OAAK8X,MAAL,KAChBF,sBAEW,SAAA5X,GAAK,OAAK+X,MAAL,KAEhB1X,KAAA,sBAEA,IAAM2X,EAAa3X,KAAK4X,kBAAxB,GASA,IAAK,IAAL,KARA,MAAIjY,IACFgY,YAAsBzW,YAAwBlB,KAAxBkB,YAAtByW,IACAA,YAAsBzW,EAAA,UAAwBlB,KAAxB,cAA4C,CAChEmB,eAAe,IAEjBwW,WAAqBzW,YAAwBlB,KAAxBkB,YAArByW,KAGF,EACEA,KAAmBzW,EAAA,WAEjB,SAAAf,GACE,IAAM0X,EACJ1X,gDADF,EAEAL,gBAEF,CAAEsB,aAAa,IAGnB,IAAK,IAAL,OACEuW,KAAmBzW,EAAA,UAAwBlB,KAAxB,YAA0C,CAC3DoB,aAAa,IAGjB,IAAK,IAAL,OACEoW,qBAA6BG,EAA7BH,KAIJ5W,+BAAsC,YACpC4W,EAAOA,GAAQxV,IAEf,IAAM2V,EAAY3X,KAAlB,kBACA,IAAK,IAAL,OACEwX,wBAAgCG,EAAhCH,KmEtFLM,EACAC,M,YAsDC,cAAmB,a,4FAAA,UACjB,6BAEA,MAAa,CACXtQ,KAAMpB,QIxFH,IAAMoB,cJyFTrE,MAAOiD,SAFI,MAGXhC,aAAcgC,SAHH,MAIXsB,KAJW,OAKX5C,OALW,QAMXhF,MANW,EAOXkH,QAPW,EAQXS,aARW,GASX/I,OATW,GAUXqZ,WAVW,GAWX5C,MAXW,EAYX6C,UAZW,EAaXC,UAbW,EAcXvY,MAAO0G,SAdI,KAeX4Q,SAAU5Q,YAfC,KAgBX8R,aAhBW,KAiBX1X,cAjBW,KAkBX2X,UAAWhS,EAlBA,GAmBXiS,YAnBW,EAoBXC,SApBW,EAqBXhB,qBAAsBjR,wBArBX,GAsBXkR,wBAAyBlR,2BAtBd,GAuBXkS,cAvBW,KAwBXC,aAAa,GAGf,OAAU,CAAC,cAAD,mIAAV,mBAaA,WACA,qBACA,qBACA,mBACA,6BA/CiB,E,0RAnDjB,MAAO,CACL/Q,KAAMgR,IADD,OAEL1S,SAAU0S,IAFL,IAGLrV,MAAOqV,IAHF,OAIL9Q,KAAM8Q,IAJD,OAKL1T,OAAQ0T,IALH,OAML9Z,OAAQ8Z,IANH,OAOLvS,UAAWuS,IAPN,KAQLxR,OAAQwR,IARH,KASL3Q,UAAW2Q,IATN,OAUL1Q,gBAAiB0Q,IAVZ,OAWLzQ,YAAayQ,IAXR,OAYLxQ,WAAYwQ,IAZP,OAaLC,SAAUD,IAbL,KAcLE,MAAOF,IAdF,OAeLtS,UAAWsS,IAfN,OAgBLxY,GAAIwY,IAhBC,OAiBLrD,KAAMqD,IAjBD,KAkBLR,UAAWQ,IAlBN,OAmBLG,YAAaH,IAnBR,OAoBLP,UAAWO,IApBN,OAqBL9Y,MAAO8Y,IArBF,OAsBLxB,SAAUwB,IAtBL,OAuBLvY,UAAWuY,IAvBN,KAwBLI,eAAgBJ,IAxBX,OAyBLzS,WAAYyS,IAzBP,IA0BLK,UAAWL,IA1BN,KA2BLM,UAAWN,IA3BN,KA4BLO,iBAAkBP,IA5Bb,KA6BLH,QAASG,IA7BJ,KA8BLQ,WAAYR,IA9BP,KA+BLS,WAAYT,IA/BP,KAgCLU,QAASV,IAhCJ,OAiCLX,SAAUW,IAjCL,KAkCLnB,qBAAsBmB,IAlCjB,OAmCLlB,wBAAyBkB,IAnCpB,OAoCLW,UAAWX,IAAUY,U,gCAoEpBC,GAAa,WAChBA,WAAoB,SAAA7K,GAClB,KAAe,UAAf,Q,0CAIgB,MACezO,KADf,MACAkZ,GADA,yBAGlBlZ,KAHkB,eAIlBA,KAAA,iBAJkB,GAKlBA,KALkB,iB,6CAwBlBA,KAAA,SAEAA,KAAA,aAEAA,KAAA,iBACAA,KAAA,qBAA0BA,KAAK+M,MAA/B,eACA/M,KAAA,uB,qCAIa,IACLuZ,EADK,gBAEb,MAKA,IADA,IAKA,EALIC,EAAaD,EAAjB,WACOC,EAAP,YACEA,EAAaA,EAAbA,WAKF,OAAQA,cAAR,MACE,eACA,mBACA,YACEC,EAAUD,EAAVC,KACA,MACF,iBACA,QACEA,IAKJ,IAAKA,gBAAL,6BAAyD,CACvD,IAAMvE,EAAQrV,uBAAd,SACAqV,c,g+CACAA,4CAEAuE,qB,uCAWF,SAFiBzZ,KADF,aAGHA,KAAZ,cAEOA,KAAKuZ,WAAV,UAEMvZ,KAAKuZ,WAAT,kBACEvZ,KAAA,mBAA0BA,KAAKuZ,WAA/B,kBAGAvZ,KAAA,mBAA0BA,KAAKuZ,WAA/B,oBAGGvZ,KAAKuZ,WAAWG,QAAvB,a,qCAQWzZ,GACb,IACA,EADIO,EAAJ,GAEA,KAEO,CACL,IAAMmZ,EAAU1Z,qCAAhB,OACA2Z,EAAW,wBAAH,SAARA,WAHAA,+BAcF,OAPAC,EAAgBha,8BAAhBga,cACU,SAAAC,GAAO,OAAIA,EAAJ,cADjBD,SAEW,SAAAC,GACPtZ,EAAcA,SACZqZ,EAAgBC,8BADlBtZ,QAIGA,SACLqZ,EAAgBha,0BADlB,O,qCASa,aAC6BG,KAD7B,MACLC,EADK,KACD4Y,EADC,iBACe3Y,EADf,YAEPM,EAAcR,KAAKO,eAAzB,GAEAC,WAAoB,SAAAI,GAClB,OAAIA,+BACFA,sCAEF,yBACI,gBAAJ,IACE,6BAIAZ,KAAJ,aACEA,KAAA,oBAEAQ,WAAoB,SAAAI,GAClB,IAAMmZ,EAAgB,YAAtB,GACMhV,EAAS,YAAf,GACI,gBAAJ,GACE,yBAIFnE,gCAAsC,EAAtCA,eACAA,2BAAiC,EAAjCA,eACA,UAAImE,GACFnE,+BAEE,EAFFA,iBAMFA,gCAAsC,EAAtCA,eACAA,0BAAgC,EAAhCA,mBAKJ,IACElB,6BAA2CM,KAA3CN,aACAA,0BAAwCM,KAAxCN,gBAIFM,KAAA,uB,uCAMe,aACgBA,KADhB,MACPC,EADO,KACH4Y,EADG,iBAEX7Y,KAAJ,aACEA,KAAA,qBAEoBA,KAAKO,eAAzB,GACAC,SAAoB,SAAAI,GAClB,yBACI,gBAAJ,IAAgC,6BAIpC,GACElB,6BAA2CM,KAA3CN,aACFM,KAAA,yB,0CAQkBY,GAClB,IAAMmZ,EAAgB/Z,KAAKE,UAA3B,GACAU,mCAAyCZ,KAAzCY,eACAA,kCAAwCZ,KAAxCY,iBACAA,mCAAyCZ,KAAzCY,iB,0CAGkB,IAIlB,EAJkB,EACeZ,KADf,MACVgG,EADU,aACED,EADF,WAalB,OARA,IAEIuO,EADEtV,cAAJ,GACYgH,MAAiBA,KAAchG,KAAK+M,MAA9CuH,eAEUtO,EAAWhG,KAAK+M,MAA1BuH,gBAIG0F,EACLha,KAAK+M,MADa,kBAIlB/M,KAAK+M,MAJP,e,iCAQSkN,GACT,MAC0B,kBAAhBA,GAAR,KAAoCA,GADtC,OAEEA,I,kCAOQ9Z,EAAG+Z,GACb,GAAKla,KAAL,YAIA,OAEsBA,KAAKO,eAAeP,KAAKqG,MAA7C,IACoB,MAAiB,SAAA2Q,GAAG,OAAIA,IAAQ7W,EAAZ,iBACtB,OATO,MAaOH,KAbP,MAanBkG,EAbmB,YAaRF,EAbQ,aAcrBuS,EAAgBpY,6BAAtB,YACMqY,EACJrY,oDAhByB,EAmBrBga,EAAgBha,aAAaT,OAAbS,YAnBK,EAsBvB8Y,GAAJ,EACI9Y,6BAAJ,oBACE8Y,WAAa9Y,iDACR,MAAIH,KAAKqG,MAAM4S,aACpBA,EAAajZ,KAAKqG,MAAlB4S,YAIE9Y,GAAKA,EAALA,eAAwBA,gBAA5B,cACEA,gDAAiDH,KAAK+M,MAAtD5M,MAIF,IAAMkE,EACJlE,4CAA8CH,KAAKqG,MAAnDlG,OADF,MAEM4E,EACHoV,EAAD,QAA8Bna,KAAKyB,UAAUtB,EAD/C,eAEMxB,EACJwB,6CAA+CH,KAAKqG,MAApDlG,QADF,GAEM0P,EAASuK,EAAY,EAEzBja,EAFwB,cAGxBH,KAHwB,iBAA1B,GASI6P,YAAmB7P,KAAKqG,MAA5B,mBACEwJ,WAAkB7P,KAAKqG,MAAM2S,iBAC3BnJ,EADgB,WAGhB1P,EAHgB,cAIhBH,KAJgB,iBAAlB6P,IAYF,IAAMzM,EAAQyM,aAAoBA,WAApBA,MA/Da,EAkE3B7P,KAAA,aAEA,IAAMY,EAAST,EAAf,cAEMka,EAAcra,KAAK+M,MAAMhN,KAC3Ba,qCAA4CZ,KAAKqG,MADjC,YAApB,EAIMoC,EAAN,KAEM6R,EAAc,WAClB7R,WACE,CACE8P,cADF,EAEEC,YAFF,EAGEnU,aAHF,EAIEjB,MAJF,EAKEuE,KAAM/G,6BAAoC6H,QAApC7H,MALR,OAME8G,aAAc,CACZX,KACEnG,mCACA6H,QADA7H,WAFU,KAKZoG,WACEpG,yCACA6H,QADA7H,iBANU,KASZqG,OACErG,qCACA6H,QADA7H,aAVU,KAaZsG,MACEtG,oCACA6H,QADA7H,YAEA,MAEJmE,OAxBF,EAyBEpG,OAzBF,EA0BEyW,MACGxU,qCACGA,4BACA6H,QAFJ,QA3BJ,EA8BEyP,UACEtX,mCAA0C6H,QAA1C7H,WA/BJ,EAgCEqX,UACErX,mCAA0C6H,QAA1C7H,WAjCJ,EAkCEgY,YACEhY,qCACA6H,QADA7H,aAnCJ,EAsCEqG,QACGrG,uCACGA,8BACA6H,QAFJ,UAvCJ,EA0CEuP,WACEpX,8BACA6H,eACAA,QAFA7H,WA3CJ,GA+CE0X,SACG1X,4CACGA,mCACA6H,QAFJ,WAhDJ,EAmDEhI,cAAeG,IAEjB,WACE,GACE6H,oBAAuBA,QAAvBA,eAGFA,mBAEIzC,GAAchH,cAAlB,KACEyJ,wBAA6B8R,aAAY,WACvC,GAAI9R,EAAJ,MAAgB,KACNzC,EAAeyC,EADT,iBAERwR,EAAcD,EAAc,EAAD,GAG/BhU,EAH+B,KAAjC,GAMMqS,EAAa5P,aAAnB,GACAA,WAAc,CAAE4P,eAChB5P,sBAEDzC,EAbHyC,SAoBR,EACEzI,KAAA,YAAmBwa,WAAWF,EAA9B,GAEAA,O,oCAOUna,GAAG,aACgBH,KADhB,MACPkY,EADO,YACII,EADJ,UAEPQ,EAAc9Y,KAFP,gBAGTia,EAAcja,KAApB,oBACMya,EAActa,iBAAmBA,EAJxB,OAOf,IAAIH,KAAJ,mBAKIA,KAAKqY,WAAW4B,KAApB,GAIA,IAAMS,EAAa1a,KAAK+M,MAAN,KAAlB,EAAqCrI,SAASwT,EAA5B,IAEZoC,EAAc,WAClB,GACGtb,kBAA8Bib,SAA/B,GADF,EAGE,CACA,IAAMU,GAAe,QAArB,KACA,WACE,CACExC,aADF,EAEE1X,cAFF,EAGEV,MAAM,IAER,WACE,mBACI4a,GAAJ,GACE7B,UAOV8B,aAAa5a,KAAb4a,eACA,EACE5a,KAAA,cAAqBwa,WAAWF,EAAhC,GAEAA,O,6CAQeta,KADI,YAGTA,KAAZ,YACEA,KAAA,yCAA+CA,KAA/C,e,qDAKeA,KADY,YAGjBA,KAAZ,YACEA,KAAA,4CAAkDA,KAAlD,e,kCAOQG,EAAG0W,GAA0C,WAA/B9X,EAA+B,uDAArB,CAAE8b,UAAU,GACtCvC,EAAYtY,KADmC,cAE/C6a,EAAa9b,EAFkC,SAGjDkZ,EAAY4C,EAAW,EAAI7a,KAAK+M,MAAtC,UACQgM,EAAc/Y,KAJiC,gBAKjDia,EAAcja,KAApB,oBACA,GAAKA,KAAL,QACIA,KAAKqY,WAAW4B,KAApB,GACA,KAAe,CAEb,IAAMzZ,EAAcR,KAAKO,eAAeP,KAAKqG,MAA7C,IACMyU,EAActa,EAAA,MAAiB,SAAAwW,GAAG,OAAIA,IAAQ7W,EAAZ,iBACxC,IAAK2a,IAAgB9a,KAAK+M,MAA1B,KAAsC,OAIpC5M,GAAKA,EAALA,eAAwBA,gBAA5B,iBACEA,oDAGF,IAAM4a,EAAa,WACjB,IAAMC,EAAY,QADK,KAGnB,EAAJ,iBACE,0BAIF,iCAEA,WAAc,CAAEjb,MAAM,IAAS,WAC7B,uBAA0B,QAA1B,eACIib,GAAJ,GACEjC,UAKN/Y,KAAA,aACA,EACEA,KAAA,cAAqBwa,WAAWO,EAAYrW,SAASuT,EAArD,KAEA8C,O,0CAOgBpb,EAAOkX,GACzB7W,KAAA,gBAAmC,CAAE6a,UAAU,M,wCAO/Bpa,GAChB,IAAMsZ,EAAgB/Z,KAAKE,UAA3B,GACAR,iCAAkCM,KAAlCN,yB,2CAGmBe,GACnB,IAAMsZ,EAAgB/Z,KAAKE,UAA3B,GACAR,oCAEEM,KAFFN,yB,uCAQe,aAQXM,KARW,MAEbmY,EAFa,eAGb1X,EAHa,gBAIb2C,EAJa,QAKbiB,EALa,eAMbU,EANa,SAObpG,EAPa,SASTiG,EAAO5E,KAAb,WACM6P,EAASuK,EAAY,EAAD,UAA1B,GAsBA,GAbIvK,YAAmB7P,KAAKqG,MAA5B,mBACEwJ,WAAkB7P,KAAKqG,MAAM2S,iBAC3BnJ,EADgB,qBAAlBA,IAYEA,EAAJ,WAEE,OAAO7P,KAAKib,SAASpL,EAAd,UAA+B,WACpC,sBAKJjL,aAAkBiL,gBAAlBjL,KACAA,YAAiBiL,eAAjBjL,O,mCAOAgW,aAAa5a,KAAb4a,eACAA,aAAa5a,KAAb4a,eACAA,aAAa5a,KAAb4a,aACAM,cAAclb,KAAdkb,yB,wCAGgB,WAChB,OAAOC,QACLra,OAAA,KAAYd,KAAK+M,MAAjB,oBACE,SAAAqO,GAAK,MAAIA,cAAsB,qBAA1B,OAEJpb,KAAK+M,MAAM9F,QAAUjH,KAAK+M,MAAMrF,aAAX,U,+BAInB,aACgD1H,KADhD,MACCgY,EADD,aACa5C,EADb,OACmBgD,EADnB,YAC8BE,EAD9B,UACuC7Q,EADvC,OAED6M,EAAUtU,KAAhB,oBACMqY,EAAarY,KAAKqY,WAAxB,GACMnD,EAAQ1N,EACZxH,KAAK+M,MAD2B,KAEhC/M,KAAK+M,MAF2B,aAGhC/M,KAAK+M,MAH2B,KAIhC/M,KAAK+M,MAJP,QAOMsO,EACJ,uCACIrb,KAAK+M,MADT,QAEC/M,KAAK+M,MAAMhN,MAAX,KAFD,GAEC,UACAC,KAAK+M,MAAM9F,OAAS,UAHrB,qBAIUjH,KAAK+M,MAJf,uBAKS/M,KAAKsb,kBAAoB,SAAWtb,KAAK+M,MALlD,OAMC/M,KAAA,iCAND,KAOCA,KAAKqG,MAAM+S,UAAY,eAR1B,IAUImC,EAAUvb,KAAKqG,MAAnB,QAEIsQ,+BAAJ,IACE4E,EAAU5E,eAAV4E,SAGF,IAAMC,EAAmB,CAACH,EAAcrD,GAAf,qBAAzB,KAIA,KAAU,CACR,IAAMyD,EAAc,GAAH,kDAAjB,YAEA,OACE,uBACEtV,UAAS,UADX,GAEElG,GAAID,KAAKqG,MAAMpG,IAFjB,EAGEyb,IAAK,YAAG,OAAK,aAAL,IAHV,GAKE,UALF,UAMEC,wBAAyB,CAAEC,OAAQH,MAIvC,OACE,uBACEtV,UAAS,UADX,GAEElG,GAAID,KAAKqG,MAAMpG,IAAMwH,GAFvB,GAIEiU,IAAK,YAAG,OAAK,aAAL,GACR,UAAQ,YAER,2BACEC,wBAAyB,CAAEC,OAAQ1G,GACnC,cAAY,SAVlB,M,gDAroB4B2G,EAAWC,GAAW,IAC5C1D,EAAc0D,EAD8B,UAE9CC,EAAe3V,EAArB,GAIA,OAHkBtF,OAAA,cAA+B,SAAAuF,GAC/C,OAAO0V,OAAwB3D,EAA/B,MAKF,QAEEA,UAAW2D,IAJX,S,GA/HqBC,IAAMC,+BA0CT,CACpBvD,UADoB,EAEpBQ,YAFoB,EAGpBC,QAHoB,MAIpBC,WAAW,IAJS,yBAOK,CAAC,MAAO,SAAR,mBAEN,iBDnER,GCedrB,GAoDsB,IDlErBnX,6BAAsC,WAAW,WACzCsb,EARNxc,yBACAA,OADAA,wBAEAA,OAHF,oBAUE,SAAIwc,EAAJ,CAEA,IAAMC,EAAW,IAAID,GAAiB,SAAAE,GACpC,IAAK,IAAIC,EAAT,EAAiBA,EAAKD,EAAtB,OAAwCC,IAEtC,IADA,IAAMC,EAAWF,EAAjB,GACSG,EAAT,EAAiBA,EAAKD,eAAtB,OAAoDC,IAElD,GADgBD,eAAhB,KACgB,QAAhB,cAEE,YADA,mBAORH,UAAiBzc,OAAjByc,SAAkC,CAAEK,WAAF,EAAmBC,SAAS,IAE9Dzc,KAAA,mBCNH8X,QDSClX,kCAAwC,WAClCZ,KAAJ,iBACEA,KAAA,4BACAA,KAAA,wBCyCiB,kC","file":"static/js/3.0bee95a4.chunk.js","sourcesContent":["// 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\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 = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\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}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\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\n return buf || bytesToUuid(rnds);\n}\n\nexport default v4;","export default {\n GLOBAL: {\n HIDE: '__react_tooltip_hide_event',\n REBUILD: '__react_tooltip_rebuild_event',\n SHOW: '__react_tooltip_show_event'\n }\n};\n","/**\n * Static methods for react-tooltip\n */\nimport CONSTANT from '../constant';\n\nconst dispatchGlobalEvent = (eventName, opts) => {\n // Compatible with IE\n // @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work\n // @see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n let event;\n\n if (typeof window.CustomEvent === 'function') {\n event = new window.CustomEvent(eventName, { detail: opts });\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventName, false, true, opts);\n }\n\n window.dispatchEvent(event);\n};\n\nexport default function(target) {\n /**\n * Hide all tooltip\n * @trigger ReactTooltip.hide()\n */\n target.hide = target => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.HIDE, { target });\n };\n\n /**\n * Rebuild all tooltip\n * @trigger ReactTooltip.rebuild()\n */\n target.rebuild = () => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.REBUILD);\n };\n\n /**\n * Show specific tooltip\n * @trigger ReactTooltip.show()\n */\n target.show = target => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.SHOW, { target });\n };\n\n target.prototype.globalRebuild = function() {\n if (this.mount) {\n this.unbindListener();\n this.bindListener();\n }\n };\n\n target.prototype.globalShow = function(event) {\n if (this.mount) {\n const hasTarget =\n (event && event.detail && event.detail.target && true) || false;\n // Create a fake event, specific show will limit the type to `solid`\n // only `float` type cares e.clientX e.clientY\n this.showTooltip(\n { currentTarget: hasTarget && event.detail.target },\n true\n );\n }\n };\n\n target.prototype.globalHide = function(event) {\n if (this.mount) {\n const hasTarget =\n (event && event.detail && event.detail.target && true) || false;\n this.hideTooltip(\n { currentTarget: hasTarget && event.detail.target },\n hasTarget\n );\n }\n };\n}\n","/**\n * Custom events to control showing and hiding of tooltip\n *\n * @attributes\n * - `event` {String}\n * - `eventOff` {String}\n */\n\nexport const checkStatus = function(dataEventOff, e) {\n const { show } = this.state;\n const { id } = this.props;\n const isCapture = this.isCapture(e.currentTarget);\n const currentItem = e.currentTarget.getAttribute('currentItem');\n\n if (!isCapture) e.stopPropagation();\n if (show && currentItem === 'true') {\n if (!dataEventOff) this.hideTooltip(e);\n } else {\n e.currentTarget.setAttribute('currentItem', 'true');\n setUntargetItems(e.currentTarget, this.getTargetArray(id));\n this.showTooltip(e);\n }\n};\n\nconst setUntargetItems = function(currentTarget, targetArray) {\n for (let i = 0; i < targetArray.length; i++) {\n if (currentTarget !== targetArray[i]) {\n targetArray[i].setAttribute('currentItem', 'false');\n } else {\n targetArray[i].setAttribute('currentItem', 'true');\n }\n }\n};\n\nconst customListeners = {\n id: '9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf',\n set(target, event, listener) {\n if (this.id in target) {\n const map = target[this.id];\n map[event] = listener;\n } else {\n // this is workaround for WeakMap, which is not supported in older browsers, such as IE\n Object.defineProperty(target, this.id, {\n configurable: true,\n value: { [event]: listener }\n });\n }\n },\n get(target, event) {\n const map = target[this.id];\n if (map !== undefined) {\n return map[event];\n }\n }\n};\n\nexport default function(target) {\n target.prototype.isCustomEvent = function(ele) {\n const { event } = this.state;\n return event || !!ele.getAttribute('data-event');\n };\n\n /* Bind listener for custom event */\n target.prototype.customBindListener = function(ele) {\n const { event, eventOff } = this.state;\n const dataEvent = ele.getAttribute('data-event') || event;\n const dataEventOff = ele.getAttribute('data-event-off') || eventOff;\n\n dataEvent.split(' ').forEach(event => {\n ele.removeEventListener(event, customListeners.get(ele, event));\n const customListener = checkStatus.bind(this, dataEventOff);\n customListeners.set(ele, event, customListener);\n ele.addEventListener(event, customListener, false);\n });\n if (dataEventOff) {\n dataEventOff.split(' ').forEach(event => {\n ele.removeEventListener(event, this.hideTooltip);\n ele.addEventListener(event, this.hideTooltip, false);\n });\n }\n };\n\n /* Unbind listener for custom event */\n target.prototype.customUnbindListener = function(ele) {\n const { event, eventOff } = this.state;\n const dataEvent = event || ele.getAttribute('data-event');\n const dataEventOff = eventOff || ele.getAttribute('data-event-off');\n\n ele.removeEventListener(dataEvent, customListeners.get(ele, event));\n if (dataEventOff) ele.removeEventListener(dataEventOff, this.hideTooltip);\n };\n}\n","/**\n * Util method to get effect\n */\nimport { checkStatus } from './customEvent';\n\nconst makeProxy = e => {\n const proxy = {};\n for (const key in e) {\n if (typeof e[key] === 'function') {\n proxy[key] = e[key].bind(e);\n } else {\n proxy[key] = e[key];\n }\n }\n return proxy;\n};\n\nconst bodyListener = function(callback, options, e) {\n const { respectEffect = false, customEvent = false } = options;\n const { id } = this.props;\n\n const tip = e.target.getAttribute('data-tip') || null;\n const forId = e.target.getAttribute('data-for') || null;\n\n const target = e.target;\n if (this.isCustomEvent(target) && !customEvent) {\n return;\n }\n\n const isTargetBelongsToTooltip =\n (id == null && forId == null) || forId === id;\n\n if (\n tip != null &&\n (!respectEffect || this.getEffect(target) === 'float') &&\n isTargetBelongsToTooltip\n ) {\n const proxy = makeProxy(e);\n proxy.currentTarget = target;\n callback(proxy);\n }\n};\n\nconst findCustomEvents = (targetArray, dataAttribute) => {\n const events = {};\n targetArray.forEach(target => {\n const event = target.getAttribute(dataAttribute);\n if (event) event.split(' ').forEach(event => (events[event] = true));\n });\n\n return events;\n};\n\nconst getBody = () => document.getElementsByTagName('body')[0];\n\nexport default function(target) {\n target.prototype.isBodyMode = function() {\n return !!this.props.bodyMode;\n };\n\n target.prototype.bindBodyListener = function(targetArray) {\n const {\n event,\n eventOff,\n possibleCustomEvents,\n possibleCustomEventsOff\n } = this.state;\n const body = getBody();\n\n const customEvents = findCustomEvents(targetArray, 'data-event');\n const customEventsOff = findCustomEvents(targetArray, 'data-event-off');\n\n if (event != null) customEvents[event] = true;\n if (eventOff != null) customEventsOff[eventOff] = true;\n possibleCustomEvents\n .split(' ')\n .forEach(event => (customEvents[event] = true));\n possibleCustomEventsOff\n .split(' ')\n .forEach(event => (customEventsOff[event] = true));\n\n this.unbindBodyListener(body);\n\n const listeners = (this.bodyModeListeners = {});\n if (event == null) {\n listeners.mouseover = bodyListener.bind(this, this.showTooltip, {});\n listeners.mousemove = bodyListener.bind(this, this.updateTooltip, {\n respectEffect: true\n });\n listeners.mouseout = bodyListener.bind(this, this.hideTooltip, {});\n }\n\n for (const event in customEvents) {\n listeners[event] = bodyListener.bind(\n this,\n e => {\n const targetEventOff =\n e.currentTarget.getAttribute('data-event-off') || eventOff;\n checkStatus.call(this, targetEventOff, e);\n },\n { customEvent: true }\n );\n }\n for (const event in customEventsOff) {\n listeners[event] = bodyListener.bind(this, this.hideTooltip, {\n customEvent: true\n });\n }\n for (const event in listeners) {\n body.addEventListener(event, listeners[event]);\n }\n };\n\n target.prototype.unbindBodyListener = function(body) {\n body = body || getBody();\n\n const listeners = this.bodyModeListeners;\n for (const event in listeners) {\n body.removeEventListener(event, listeners[event]);\n }\n };\n}\n","/**\n * Calculate the position of tooltip\n *\n * @params\n * - `e` {Event} the event of current mouse\n * - `target` {Element} the currentTarget of the event\n * - `node` {DOM} the react-tooltip object\n * - `place` {String} top / right / bottom / left\n * - `effect` {String} float / solid\n * - `offset` {Object} the offset to default position\n *\n * @return {Object}\n * - `isNewState` {Bool} required\n * - `newState` {Object}\n * - `position` {Object} {left: {Number}, top: {Number}}\n */\nexport default function(e, target, node, place, desiredPlace, effect, offset) {\n const { width: tipWidth, height: tipHeight } = getDimensions(node);\n\n const { width: targetWidth, height: targetHeight } = getDimensions(target);\n\n const { mouseX, mouseY } = getCurrentOffset(e, target, effect);\n const defaultOffset = getDefaultPosition(\n effect,\n targetWidth,\n targetHeight,\n tipWidth,\n tipHeight\n );\n const { extraOffsetX, extraOffsetY } = calculateOffset(offset);\n\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const { parentTop, parentLeft } = getParent(node);\n\n // Get the edge offset of the tooltip\n const getTipOffsetLeft = place => {\n const offsetX = defaultOffset[place].l;\n return mouseX + offsetX + extraOffsetX;\n };\n const getTipOffsetRight = place => {\n const offsetX = defaultOffset[place].r;\n return mouseX + offsetX + extraOffsetX;\n };\n const getTipOffsetTop = place => {\n const offsetY = defaultOffset[place].t;\n return mouseY + offsetY + extraOffsetY;\n };\n const getTipOffsetBottom = place => {\n const offsetY = defaultOffset[place].b;\n return mouseY + offsetY + extraOffsetY;\n };\n\n //\n // Functions to test whether the tooltip's sides are inside\n // the client window for a given orientation p\n //\n // _____________\n // | | <-- Right side\n // | p = 'left' |\\\n // | |/ |\\\n // |_____________| |_\\ <-- Mouse\n // / \\ |\n // |\n // |\n // Bottom side\n //\n const outsideLeft = p => getTipOffsetLeft(p) < 0;\n const outsideRight = p => getTipOffsetRight(p) > windowWidth;\n const outsideTop = p => getTipOffsetTop(p) < 0;\n const outsideBottom = p => getTipOffsetBottom(p) > windowHeight;\n\n // Check whether the tooltip with orientation p is completely inside the client window\n const outside = p =>\n outsideLeft(p) || outsideRight(p) || outsideTop(p) || outsideBottom(p);\n const inside = p => !outside(p);\n\n const placesList = ['top', 'bottom', 'left', 'right'];\n const insideList = [];\n for (let i = 0; i < 4; i++) {\n const p = placesList[i];\n if (inside(p)) {\n insideList.push(p);\n }\n }\n\n let isNewState = false;\n let newPlace;\n const shouldUpdatePlace = desiredPlace !== place;\n if (inside(desiredPlace) && shouldUpdatePlace) {\n isNewState = true;\n newPlace = desiredPlace;\n } else if (insideList.length > 0 && outside(desiredPlace) && outside(place)) {\n isNewState = true;\n newPlace = insideList[0];\n }\n\n if (isNewState) {\n return {\n isNewState: true,\n newState: { place: newPlace }\n };\n }\n\n return {\n isNewState: false,\n position: {\n left: parseInt(getTipOffsetLeft(place) - parentLeft, 10),\n top: parseInt(getTipOffsetTop(place) - parentTop, 10)\n }\n };\n}\n\nconst getDimensions = node => {\n const { height, width } = node.getBoundingClientRect();\n return {\n height: parseInt(height, 10),\n width: parseInt(width, 10)\n };\n};\n\n// Get current mouse offset\nconst getCurrentOffset = (e, currentTarget, effect) => {\n const boundingClientRect = currentTarget.getBoundingClientRect();\n const targetTop = boundingClientRect.top;\n const targetLeft = boundingClientRect.left;\n const { width: targetWidth, height: targetHeight } = getDimensions(\n currentTarget\n );\n\n if (effect === 'float') {\n return {\n mouseX: e.clientX,\n mouseY: e.clientY\n };\n }\n return {\n mouseX: targetLeft + targetWidth / 2,\n mouseY: targetTop + targetHeight / 2\n };\n};\n\n// List all possibility of tooltip final offset\n// This is useful in judging if it is necessary for tooltip to switch position when out of window\nconst getDefaultPosition = (\n effect,\n targetWidth,\n targetHeight,\n tipWidth,\n tipHeight\n) => {\n let top;\n let right;\n let bottom;\n let left;\n const disToMouse = 3;\n const triangleHeight = 2;\n const cursorHeight = 12; // Optimize for float bottom only, cause the cursor will hide the tooltip\n\n if (effect === 'float') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(tipHeight + disToMouse + triangleHeight),\n b: -disToMouse\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: disToMouse + cursorHeight,\n b: tipHeight + disToMouse + triangleHeight + cursorHeight\n };\n left = {\n l: -(tipWidth + disToMouse + triangleHeight),\n r: -disToMouse,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: disToMouse,\n r: tipWidth + disToMouse + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n } else if (effect === 'solid') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(targetHeight / 2 + tipHeight + triangleHeight),\n b: -(targetHeight / 2)\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: targetHeight / 2,\n b: targetHeight / 2 + tipHeight + triangleHeight\n };\n left = {\n l: -(tipWidth + targetWidth / 2 + triangleHeight),\n r: -(targetWidth / 2),\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: targetWidth / 2,\n r: tipWidth + targetWidth / 2 + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n }\n\n return { top, bottom, left, right };\n};\n\n// Consider additional offset into position calculation\nconst calculateOffset = offset => {\n let extraOffsetX = 0;\n let extraOffsetY = 0;\n\n if (Object.prototype.toString.apply(offset) === '[object String]') {\n offset = JSON.parse(offset.toString().replace(/'/g, '\"'));\n }\n for (const key in offset) {\n if (key === 'top') {\n extraOffsetY -= parseInt(offset[key], 10);\n } else if (key === 'bottom') {\n extraOffsetY += parseInt(offset[key], 10);\n } else if (key === 'left') {\n extraOffsetX -= parseInt(offset[key], 10);\n } else if (key === 'right') {\n extraOffsetX += parseInt(offset[key], 10);\n }\n }\n\n return { extraOffsetX, extraOffsetY };\n};\n\n// Get the offset of the parent elements\nconst getParent = currentTarget => {\n let currentParent = currentTarget;\n while (currentParent) {\n const computedStyle = window.getComputedStyle(currentParent);\n // transform and will-change: transform change the containing block\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_Block\n if (\n computedStyle.getPropertyValue('transform') !== 'none' ||\n computedStyle.getPropertyValue('will-change') === 'transform'\n )\n break;\n currentParent = currentParent.parentElement;\n }\n\n const parentTop =\n (currentParent && currentParent.getBoundingClientRect().top) || 0;\n const parentLeft =\n (currentParent && currentParent.getBoundingClientRect().left) || 0;\n\n return { parentTop, parentLeft };\n};\n","/**\n * To get the tooltip content\n * it may comes from data-tip or this.props.children\n * it should support multiline\n *\n * @params\n * - `tip` {String} value of data-tip\n * - `children` {ReactElement} this.props.children\n * - `multiline` {Any} could be Bool(true/false) or String('true'/'false')\n *\n * @return\n * - String or react component\n */\nimport React from 'react';\n\nexport default function(tip, children, getContent, multiline) {\n if (children) return children;\n if (getContent !== undefined && getContent !== null) return getContent; // getContent can be 0, '', etc.\n if (getContent === null) return null; // Tip not exist and children is null or undefined\n\n const regexp = //;\n if (!multiline || multiline === 'false' || !regexp.test(tip)) {\n // No trim(), so that user can keep their input\n return tip;\n }\n\n // Multiline tooltip content\n return tip.split(regexp).map((d, i) => {\n return (\n \n {d}\n \n );\n });\n}\n","/**\n * Support aria- and role in ReactTooltip\n *\n * @params props {Object}\n * @return {Object}\n */\nexport function parseAria(props) {\n const ariaObj = {};\n Object.keys(props)\n .filter(prop => {\n // aria-xxx and role is acceptable\n return /(^aria-\\w+$|^role$)/.test(prop);\n })\n .forEach(prop => {\n ariaObj[prop] = props[prop];\n });\n\n return ariaObj;\n}\n","/**\n * Convert nodelist to array\n * @see https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/core/createArrayFromMixed.js#L24\n * NodeLists are functions in Safari\n */\n\nexport default function(nodeList) {\n const length = nodeList.length;\n if (nodeList.hasOwnProperty) {\n return Array.prototype.slice.call(nodeList);\n }\n return new Array(length).fill().map(index => nodeList[index]);\n}\n","/**\n * Default pop-up style values (text color, background color).\n */\nconst defaultColors = {\n dark: {\n text: '#fff',\n background: '#222',\n border: 'transparent',\n arrow: '#222'\n },\n success: {\n text: '#fff',\n background: '#8DC572',\n border: 'transparent',\n arrow: '#8DC572'\n },\n warning: {\n text: '#fff',\n background: '#F0AD4E',\n border: 'transparent',\n arrow: '#F0AD4E'\n },\n error: {\n text: '#fff',\n background: '#BE6464',\n border: 'transparent',\n arrow: '#BE6464'\n },\n info: {\n text: '#fff',\n background: '#337AB7',\n border: 'transparent',\n arrow: '#337AB7'\n },\n light: {\n text: '#222',\n background: '#fff',\n border: 'transparent',\n arrow: '#fff'\n }\n};\n\nexport function getDefaultPopupColors(type) {\n return defaultColors[type] ? { ...defaultColors[type] } : undefined;\n}\n","import { getDefaultPopupColors } from './defaultStyles';\n\n/**\n * Generates the specific tooltip style for use on render.\n */\nexport function generateTooltipStyle(uuid, customColors, type, hasBorder) {\n return generateStyle(uuid, getPopupColors(customColors, type, hasBorder));\n}\n\n/**\n * Generates the tooltip style rules based on the element-specified \"data-type\" property.\n */\nfunction generateStyle(uuid, colors) {\n const textColor = colors.text;\n const backgroundColor = colors.background;\n const borderColor = colors.border;\n const arrowColor = colors.arrow;\n\n return `\n \t.${uuid} {\n\t color: ${textColor};\n\t background: ${backgroundColor};\n\t border: 1px solid ${borderColor};\n \t}\n\n \t.${uuid}.place-top {\n margin-top: -10px;\n }\n .${uuid}.place-top::before {\n border-top: 8px solid ${borderColor};\n }\n .${uuid}.place-top::after {\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n bottom: -6px;\n left: 50%;\n margin-left: -8px;\n border-top-color: ${arrowColor};\n border-top-style: solid;\n border-top-width: 6px;\n }\n\n .${uuid}.place-bottom {\n margin-top: 10px;\n }\n .${uuid}.place-bottom::before {\n border-bottom: 8px solid ${borderColor};\n }\n .${uuid}.place-bottom::after {\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n top: -6px;\n left: 50%;\n margin-left: -8px;\n border-bottom-color: ${arrowColor};\n border-bottom-style: solid;\n border-bottom-width: 6px;\n }\n\n .${uuid}.place-left {\n margin-left: -10px;\n }\n .${uuid}.place-left::before {\n border-left: 8px solid ${borderColor};\n }\n .${uuid}.place-left::after {\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n right: -6px;\n top: 50%;\n margin-top: -4px;\n border-left-color: ${arrowColor};\n border-left-style: solid;\n border-left-width: 6px;\n }\n\n .${uuid}.place-right {\n margin-left: 10px;\n }\n .${uuid}.place-right::before {\n border-right: 8px solid ${borderColor};\n }\n .${uuid}.place-right::after {\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n left: -6px;\n top: 50%;\n margin-top: -4px;\n border-right-color: ${arrowColor};\n border-right-style: solid;\n border-right-width: 6px;\n }\n `;\n}\n\nfunction getPopupColors(customColors, type, hasBorder) {\n const textColor = customColors.text;\n const backgroundColor = customColors.background;\n const borderColor = customColors.border;\n const arrowColor = customColors.arrow\n ? customColors.arrow\n : customColors.background;\n\n const colors = getDefaultPopupColors(type);\n\n if (textColor) {\n colors.text = textColor;\n }\n\n if (backgroundColor) {\n colors.background = backgroundColor;\n }\n\n if (hasBorder) {\n if (borderColor) {\n colors.border = borderColor;\n } else {\n colors.border = type === 'light' ? 'black' : 'white';\n }\n }\n\n if (arrowColor) {\n colors.arrow = arrowColor;\n }\n\n return colors;\n}\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\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({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = 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 classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\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\nmodule.exports = function (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","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\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\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\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\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) 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};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var store = require('../internals/shared-store');\n\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 store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (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 } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.12.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\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) {\n if (simple) O[key] = value;\n 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;\n 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","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = 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).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (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 } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\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};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (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","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = 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\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.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};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\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*/\nmodule.exports = function (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;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(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};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (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 (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 () {\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 () {\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};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = 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 : defineProperties(result, Properties);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!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 && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (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;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (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 = bind(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: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = 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) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\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 definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\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);\n","/**\n * Tracking target removing from DOM.\n * It's necessary to hide tooltip when it's target disappears.\n * Otherwise, the tooltip would be shown forever until another target\n * is triggered.\n *\n * If MutationObserver is not available, this feature just doesn't work.\n */\n\n// https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/\nconst getMutationObserverClass = () => {\n return (\n window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n );\n};\n\nexport default function(target) {\n target.prototype.bindRemovalTracker = function() {\n const MutationObserver = getMutationObserverClass();\n if (MutationObserver == null) return;\n\n const observer = new MutationObserver(mutations => {\n for (let m1 = 0; m1 < mutations.length; m1++) {\n const mutation = mutations[m1];\n for (let m2 = 0; m2 < mutation.removedNodes.length; m2++) {\n const element = mutation.removedNodes[m2];\n if (element === this.state.currentTarget) {\n this.hideTooltip();\n return;\n }\n }\n }\n });\n\n observer.observe(window.document, { childList: true, subtree: true });\n\n this.removalTracker = observer;\n };\n\n target.prototype.unbindRemovalTracker = function() {\n if (this.removalTracker) {\n this.removalTracker.disconnect();\n this.removalTracker = null;\n }\n };\n}\n","/* eslint-disable no-unused-vars, dot-notation */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/* Decorators */\nimport staticMethods from './decorators/staticMethods';\nimport windowListener from './decorators/windowListener';\nimport customEvent from './decorators/customEvent';\nimport isCapture from './decorators/isCapture';\nimport getEffect from './decorators/getEffect';\nimport bodyMode from './decorators/bodyMode';\nimport trackRemoval from './decorators/trackRemoval';\n\n/* Utils */\nimport getPosition from './utils/getPosition';\nimport getTipContent from './utils/getTipContent';\nimport { parseAria } from './utils/aria';\nimport nodeListToArray from './utils/nodeListToArray';\nimport { generateUUID } from './utils/uuid';\n\n/* CSS */\nimport baseCss from './index.scss';\nimport { generateTooltipStyle } from './decorators/styler';\n\n/* Polyfill */\nimport 'core-js/modules/es.array.find';\n\n@staticMethods\n@windowListener\n@customEvent\n@isCapture\n@getEffect\n@bodyMode\n@trackRemoval\nclass ReactTooltip extends React.Component {\n static get propTypes() {\n return {\n uuid: PropTypes.string,\n children: PropTypes.any,\n place: PropTypes.string,\n type: PropTypes.string,\n effect: PropTypes.string,\n offset: PropTypes.object,\n multiline: PropTypes.bool,\n border: PropTypes.bool,\n textColor: PropTypes.string,\n backgroundColor: PropTypes.string,\n borderColor: PropTypes.string,\n arrowColor: PropTypes.string,\n insecure: PropTypes.bool,\n class: PropTypes.string,\n className: PropTypes.string,\n id: PropTypes.string,\n html: PropTypes.bool,\n delayHide: PropTypes.number,\n delayUpdate: PropTypes.number,\n delayShow: PropTypes.number,\n event: PropTypes.string,\n eventOff: PropTypes.string,\n isCapture: PropTypes.bool,\n globalEventOff: PropTypes.string,\n getContent: PropTypes.any,\n afterShow: PropTypes.func,\n afterHide: PropTypes.func,\n overridePosition: PropTypes.func,\n disable: PropTypes.bool,\n scrollHide: PropTypes.bool,\n resizeHide: PropTypes.bool,\n wrapper: PropTypes.string,\n bodyMode: PropTypes.bool,\n possibleCustomEvents: PropTypes.string,\n possibleCustomEventsOff: PropTypes.string,\n clickable: PropTypes.bool\n };\n }\n\n static defaultProps = {\n insecure: true,\n resizeHide: true,\n wrapper: 'div',\n clickable: false\n };\n\n static supportedWrappers = ['div', 'span'];\n\n static displayName = 'ReactTooltip';\n\n constructor(props) {\n super(props);\n\n this.state = {\n uuid: props.uuid || generateUUID(),\n place: props.place || 'top', // Direction of tooltip\n desiredPlace: props.place || 'top',\n type: 'dark', // Color theme of tooltip\n effect: 'float', // float or fixed\n show: false,\n border: false,\n customColors: {},\n offset: {},\n extraClass: '',\n html: false,\n delayHide: 0,\n delayShow: 0,\n event: props.event || null,\n eventOff: props.eventOff || null,\n currentEvent: null, // Current mouse event\n currentTarget: null, // Current target of mouse event\n ariaProps: parseAria(props), // aria- and role attributes\n isEmptyTip: false,\n disable: false,\n possibleCustomEvents: props.possibleCustomEvents || '',\n possibleCustomEventsOff: props.possibleCustomEventsOff || '',\n originTooltip: null,\n isMultiline: false\n };\n\n this.bind([\n 'showTooltip',\n 'updateTooltip',\n 'hideTooltip',\n 'hideTooltipOnScroll',\n 'getTooltipContent',\n 'globalRebuild',\n 'globalShow',\n 'globalHide',\n 'onWindowResize',\n 'mouseOnToolTip'\n ]);\n\n this.mount = true;\n this.delayShowLoop = null;\n this.delayHideLoop = null;\n this.delayReshow = null;\n this.intervalUpdateContent = null;\n }\n\n /**\n * For unify the bind and unbind listener\n */\n bind(methodArray) {\n methodArray.forEach(method => {\n this[method] = this[method].bind(this);\n });\n }\n\n componentDidMount() {\n const { insecure, resizeHide } = this.props;\n\n this.bindListener(); // Bind listener for tooltip\n this.bindWindowEvents(resizeHide); // Bind global event for static method\n this.injectStyles(); // Inject styles for each DOM root having tooltip.\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { ariaProps } = prevState;\n const newAriaProps = parseAria(nextProps);\n const isChanged = Object.keys(newAriaProps).some(props => {\n return newAriaProps[props] !== ariaProps[props];\n });\n if (!isChanged) {\n return null;\n }\n return {\n ...prevState,\n ariaProps: newAriaProps\n };\n }\n\n componentWillUnmount() {\n this.mount = false;\n\n this.clearTimer();\n\n this.unbindListener();\n this.removeScrollListener(this.state.currentTarget);\n this.unbindWindowEvents();\n }\n\n /* Look for the closest DOM root having tooltip and inject styles. */\n injectStyles() {\n const { tooltipRef } = this;\n if (!tooltipRef) {\n return;\n }\n\n let parentNode = tooltipRef.parentNode;\n while (parentNode.parentNode) {\n parentNode = parentNode.parentNode;\n }\n\n let domRoot;\n\n switch (parentNode.constructor.name) {\n case 'Document':\n case 'HTMLDocument':\n case undefined:\n domRoot = parentNode.head;\n break;\n case 'ShadowRoot':\n default:\n domRoot = parentNode;\n break;\n }\n\n // Prevent styles duplication.\n if (!domRoot.querySelector('style[data-react-tooltip]')) {\n const style = document.createElement('style');\n style.textContent = baseCss;\n style.setAttribute('data-react-tooltip', 'true');\n\n domRoot.appendChild(style);\n }\n }\n\n /**\n * Return if the mouse is on the tooltip.\n * @returns {boolean} true - mouse is on the tooltip\n */\n mouseOnToolTip() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n /* old IE or Firefox work around */\n if (!this.tooltipRef.matches) {\n /* old IE work around */\n if (this.tooltipRef.msMatchesSelector) {\n this.tooltipRef.matches = this.tooltipRef.msMatchesSelector;\n } else {\n /* old Firefox work around */\n this.tooltipRef.matches = this.tooltipRef.mozMatchesSelector;\n }\n }\n return this.tooltipRef.matches(':hover');\n }\n return false;\n }\n\n /**\n * Pick out corresponded target elements\n */\n getTargetArray(id) {\n let targetArray = [];\n let selector;\n if (!id) {\n selector = '[data-tip]:not([data-for])';\n } else {\n const escaped = id.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n selector = `[data-tip][data-for=\"${escaped}\"]`;\n }\n\n // Scan document for shadow DOM elements\n nodeListToArray(document.getElementsByTagName('*'))\n .filter(element => element.shadowRoot)\n .forEach(element => {\n targetArray = targetArray.concat(\n nodeListToArray(element.shadowRoot.querySelectorAll(selector))\n );\n });\n return targetArray.concat(\n nodeListToArray(document.querySelectorAll(selector))\n );\n }\n\n /**\n * Bind listener to the target elements\n * These listeners used to trigger showing or hiding the tooltip\n */\n bindListener() {\n const { id, globalEventOff, isCapture } = this.props;\n const targetArray = this.getTargetArray(id);\n\n targetArray.forEach(target => {\n if (target.getAttribute('currentItem') === null) {\n target.setAttribute('currentItem', 'false');\n }\n this.unbindBasicListener(target);\n if (this.isCustomEvent(target)) {\n this.customUnbindListener(target);\n }\n });\n\n if (this.isBodyMode()) {\n this.bindBodyListener(targetArray);\n } else {\n targetArray.forEach(target => {\n const isCaptureMode = this.isCapture(target);\n const effect = this.getEffect(target);\n if (this.isCustomEvent(target)) {\n this.customBindListener(target);\n return;\n }\n\n target.addEventListener('mouseenter', this.showTooltip, isCaptureMode);\n target.addEventListener('focus', this.showTooltip, isCaptureMode);\n if (effect === 'float') {\n target.addEventListener(\n 'mousemove',\n this.updateTooltip,\n isCaptureMode\n );\n }\n target.addEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n target.addEventListener('blur', this.hideTooltip, isCaptureMode);\n });\n }\n\n // Global event to hide tooltip\n if (globalEventOff) {\n window.removeEventListener(globalEventOff, this.hideTooltip);\n window.addEventListener(globalEventOff, this.hideTooltip, isCapture);\n }\n\n // Track removal of targetArray elements from DOM\n this.bindRemovalTracker();\n }\n\n /**\n * Unbind listeners on target elements\n */\n unbindListener() {\n const { id, globalEventOff } = this.props;\n if (this.isBodyMode()) {\n this.unbindBodyListener();\n } else {\n const targetArray = this.getTargetArray(id);\n targetArray.forEach(target => {\n this.unbindBasicListener(target);\n if (this.isCustomEvent(target)) this.customUnbindListener(target);\n });\n }\n\n if (globalEventOff)\n window.removeEventListener(globalEventOff, this.hideTooltip);\n this.unbindRemovalTracker();\n }\n\n /**\n * Invoke this before bind listener and unmount the component\n * it is necessary to invoke this even when binding custom event\n * so that the tooltip can switch between custom and default listener\n */\n unbindBasicListener(target) {\n const isCaptureMode = this.isCapture(target);\n target.removeEventListener('mouseenter', this.showTooltip, isCaptureMode);\n target.removeEventListener('mousemove', this.updateTooltip, isCaptureMode);\n target.removeEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n }\n\n getTooltipContent() {\n const { getContent, children } = this.props;\n\n // Generate tooltip content\n let content;\n if (getContent) {\n if (Array.isArray(getContent)) {\n content = getContent[0] && getContent[0](this.state.originTooltip);\n } else {\n content = getContent(this.state.originTooltip);\n }\n }\n\n return getTipContent(\n this.state.originTooltip,\n children,\n content,\n this.state.isMultiline\n );\n }\n\n isEmptyTip(placeholder) {\n return (\n (typeof placeholder === 'string' && placeholder === '') ||\n placeholder === null\n );\n }\n\n /**\n * When mouse enter, show the tooltip\n */\n showTooltip(e, isGlobalCall) {\n if (!this.tooltipRef) {\n return;\n }\n\n if (isGlobalCall) {\n // Don't trigger other elements belongs to other ReactTooltip\n const targetArray = this.getTargetArray(this.props.id);\n const isMyElement = targetArray.some(ele => ele === e.currentTarget);\n if (!isMyElement) return;\n }\n // Get the tooltip content\n // calculate in this phrase so that tip width height can be detected\n const { multiline, getContent } = this.props;\n const originTooltip = e.currentTarget.getAttribute('data-tip');\n const isMultiline =\n e.currentTarget.getAttribute('data-multiline') || multiline || false;\n\n // If it is focus event or called by ReactTooltip.show, switch to `solid` effect\n const switchToSolid = e instanceof window.FocusEvent || isGlobalCall;\n\n // if it needs to skip adding hide listener to scroll\n let scrollHide = true;\n if (e.currentTarget.getAttribute('data-scroll-hide')) {\n scrollHide = e.currentTarget.getAttribute('data-scroll-hide') === 'true';\n } else if (this.props.scrollHide != null) {\n scrollHide = this.props.scrollHide;\n }\n\n // adding aria-describedby to target to make tooltips read by screen readers\n if (e && e.currentTarget && e.currentTarget.setAttribute) {\n e.currentTarget.setAttribute('aria-describedby', this.state.uuid);\n }\n\n // Make sure the correct place is set\n const desiredPlace =\n e.currentTarget.getAttribute('data-place') || this.props.place || 'top';\n const effect =\n (switchToSolid && 'solid') || this.getEffect(e.currentTarget);\n const offset =\n e.currentTarget.getAttribute('data-offset') || this.props.offset || {};\n const result = getPosition(\n e,\n e.currentTarget,\n this.tooltipRef,\n desiredPlace,\n desiredPlace,\n effect,\n offset\n );\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(\n result.position,\n e,\n e.currentTarget,\n this.tooltipRef,\n desiredPlace,\n desiredPlace,\n effect,\n offset\n );\n }\n\n const place = result.isNewState ? result.newState.place : desiredPlace;\n\n // To prevent previously created timers from triggering\n this.clearTimer();\n\n const target = e.currentTarget;\n\n const reshowDelay = this.state.show\n ? target.getAttribute('data-delay-update') || this.props.delayUpdate\n : 0;\n\n const self = this;\n\n const updateState = function updateState() {\n self.setState(\n {\n originTooltip: originTooltip,\n isMultiline: isMultiline,\n desiredPlace: desiredPlace,\n place: place,\n type: target.getAttribute('data-type') || self.props.type || 'dark',\n customColors: {\n text:\n target.getAttribute('data-text-color') ||\n self.props.textColor ||\n null,\n background:\n target.getAttribute('data-background-color') ||\n self.props.backgroundColor ||\n null,\n border:\n target.getAttribute('data-border-color') ||\n self.props.borderColor ||\n null,\n arrow:\n target.getAttribute('data-arrow-color') ||\n self.props.arrowColor ||\n null\n },\n effect: effect,\n offset: offset,\n html:\n (target.getAttribute('data-html')\n ? target.getAttribute('data-html') === 'true'\n : self.props.html) || false,\n delayShow:\n target.getAttribute('data-delay-show') || self.props.delayShow || 0,\n delayHide:\n target.getAttribute('data-delay-hide') || self.props.delayHide || 0,\n delayUpdate:\n target.getAttribute('data-delay-update') ||\n self.props.delayUpdate ||\n 0,\n border:\n (target.getAttribute('data-border')\n ? target.getAttribute('data-border') === 'true'\n : self.props.border) || false,\n extraClass:\n target.getAttribute('data-class') ||\n self.props.class ||\n self.props.className ||\n '',\n disable:\n (target.getAttribute('data-tip-disable')\n ? target.getAttribute('data-tip-disable') === 'true'\n : self.props.disable) || false,\n currentTarget: target\n },\n () => {\n if (scrollHide) {\n self.addScrollListener(self.state.currentTarget);\n }\n\n self.updateTooltip(e);\n\n if (getContent && Array.isArray(getContent)) {\n self.intervalUpdateContent = setInterval(() => {\n if (self.mount) {\n const { getContent } = self.props;\n const placeholder = getTipContent(\n originTooltip,\n '',\n getContent[0](),\n isMultiline\n );\n const isEmptyTip = self.isEmptyTip(placeholder);\n self.setState({ isEmptyTip });\n self.updatePosition();\n }\n }, getContent[1]);\n }\n }\n );\n };\n\n // If there is no delay call immediately, don't allow events to get in first.\n if (reshowDelay) {\n this.delayReshow = setTimeout(updateState, reshowDelay);\n } else {\n updateState();\n }\n }\n\n /**\n * When mouse hover, update tool tip\n */\n updateTooltip(e) {\n const { delayShow, disable } = this.state;\n const { afterShow } = this.props;\n const placeholder = this.getTooltipContent();\n const eventTarget = e.currentTarget || e.target;\n\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n return;\n }\n\n // if the tooltip is empty, disable the tooltip\n if (this.isEmptyTip(placeholder) || disable) {\n return;\n }\n\n const delayTime = !this.state.show ? parseInt(delayShow, 10) : 0;\n\n const updateState = () => {\n if (\n (Array.isArray(placeholder) && placeholder.length > 0) ||\n placeholder\n ) {\n const isInvisible = !this.state.show;\n this.setState(\n {\n currentEvent: e,\n currentTarget: eventTarget,\n show: true\n },\n () => {\n this.updatePosition();\n if (isInvisible && afterShow) {\n afterShow(e);\n }\n }\n );\n }\n };\n\n clearTimeout(this.delayShowLoop);\n if (delayTime) {\n this.delayShowLoop = setTimeout(updateState, delayTime);\n } else {\n updateState();\n }\n }\n\n /*\n * If we're mousing over the tooltip remove it when we leave.\n */\n listenForTooltipExit() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n this.tooltipRef.addEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n removeListenerForTooltipExit() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n /**\n * When mouse leave, hide tooltip\n */\n hideTooltip(e, hasTarget, options = { isScroll: false }) {\n const { disable } = this.state;\n const { isScroll } = options;\n const delayHide = isScroll ? 0 : this.state.delayHide;\n const { afterHide } = this.props;\n const placeholder = this.getTooltipContent();\n if (!this.mount) return;\n if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip\n if (hasTarget) {\n // Don't trigger other elements belongs to other ReactTooltip\n const targetArray = this.getTargetArray(this.props.id);\n const isMyElement = targetArray.some(ele => ele === e.currentTarget);\n if (!isMyElement || !this.state.show) return;\n }\n\n // clean up aria-describedby when hiding tooltip\n if (e && e.currentTarget && e.currentTarget.removeAttribute) {\n e.currentTarget.removeAttribute('aria-describedby');\n }\n\n const resetState = () => {\n const isVisible = this.state.show;\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n this.listenForTooltipExit();\n return;\n }\n\n this.removeListenerForTooltipExit();\n\n this.setState({ show: false }, () => {\n this.removeScrollListener(this.state.currentTarget);\n if (isVisible && afterHide) {\n afterHide(e);\n }\n });\n };\n\n this.clearTimer();\n if (delayHide) {\n this.delayHideLoop = setTimeout(resetState, parseInt(delayHide, 10));\n } else {\n resetState();\n }\n }\n\n /**\n * When scroll, hide tooltip\n */\n hideTooltipOnScroll(event, hasTarget) {\n this.hideTooltip(event, hasTarget, { isScroll: true });\n }\n\n /**\n * Add scroll event listener when tooltip show\n * automatically hide the tooltip when scrolling\n */\n addScrollListener(currentTarget) {\n const isCaptureMode = this.isCapture(currentTarget);\n window.addEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode);\n }\n\n removeScrollListener(currentTarget) {\n const isCaptureMode = this.isCapture(currentTarget);\n window.removeEventListener(\n 'scroll',\n this.hideTooltipOnScroll,\n isCaptureMode\n );\n }\n\n // Calculation the position\n updatePosition() {\n const {\n currentEvent,\n currentTarget,\n place,\n desiredPlace,\n effect,\n offset\n } = this.state;\n const node = this.tooltipRef;\n const result = getPosition(\n currentEvent,\n currentTarget,\n node,\n place,\n desiredPlace,\n effect,\n offset\n );\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(\n result.position,\n currentEvent,\n currentTarget,\n node,\n place,\n desiredPlace,\n effect,\n offset\n );\n }\n\n if (result.isNewState) {\n // Switch to reverse placement\n return this.setState(result.newState, () => {\n this.updatePosition();\n });\n }\n\n // Set tooltip position\n node.style.left = result.position.left + 'px';\n node.style.top = result.position.top + 'px';\n }\n\n /**\n * CLear all kinds of timeout of interval\n */\n clearTimer() {\n clearTimeout(this.delayShowLoop);\n clearTimeout(this.delayHideLoop);\n clearTimeout(this.delayReshow);\n clearInterval(this.intervalUpdateContent);\n }\n\n hasCustomColors() {\n return Boolean(\n Object.keys(this.state.customColors).find(\n color => color !== 'border' && this.state.customColors[color]\n ) ||\n (this.state.border && this.state.customColors['border'])\n );\n }\n\n render() {\n const { extraClass, html, ariaProps, disable, uuid } = this.state;\n const content = this.getTooltipContent();\n const isEmptyTip = this.isEmptyTip(content);\n const style = generateTooltipStyle(\n this.state.uuid,\n this.state.customColors,\n this.state.type,\n this.state.border\n );\n\n const tooltipClass =\n '__react_component_tooltip' +\n ` ${this.state.uuid}` +\n (this.state.show && !disable && !isEmptyTip ? ' show' : '') +\n (this.state.border ? ' border' : '') +\n ` place-${this.state.place}` + // top, bottom, left, right\n ` type-${this.hasCustomColors() ? 'custom' : this.state.type}` + // dark, success, warning, error, info, light, custom\n (this.props.delayUpdate ? ' allow_hover' : '') +\n (this.props.clickable ? ' allow_click' : '');\n\n let Wrapper = this.props.wrapper;\n\n if (ReactTooltip.supportedWrappers.indexOf(Wrapper) < 0) {\n Wrapper = ReactTooltip.defaultProps.wrapper;\n }\n\n const wrapperClassName = [tooltipClass, extraClass]\n .filter(Boolean)\n .join(' ');\n\n if (html) {\n const htmlContent = `${content}\\n`;\n\n return (\n (this.tooltipRef = ref)}\n {...ariaProps}\n data-id=\"tooltip\"\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n />\n );\n } else {\n return (\n (this.tooltipRef = ref)}\n data-id=\"tooltip\"\n >\n \n {content}\n \n );\n }\n }\n}\n\nexport default ReactTooltip;\n","/**\n * Events that should be bound to the window\n */\nimport CONSTANT from '../constant';\n\nexport default function(target) {\n target.prototype.bindWindowEvents = function(resizeHide) {\n // ReactTooltip.hide\n window.removeEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide);\n window.addEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide, false);\n\n // ReactTooltip.rebuild\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.addEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild, false);\n\n // ReactTooltip.show\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.addEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow, false);\n\n // Resize\n if (resizeHide) {\n window.removeEventListener('resize', this.onWindowResize);\n window.addEventListener('resize', this.onWindowResize, false);\n }\n };\n\n target.prototype.unbindWindowEvents = function() {\n window.removeEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide);\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.removeEventListener('resize', this.onWindowResize);\n };\n\n /**\n * invoked by resize event of window\n */\n target.prototype.onWindowResize = function() {\n if (!this.mount) return;\n this.hideTooltip();\n };\n}\n","/**\n * Util method to judge if it should follow capture model\n */\n\nexport default function(target) {\n target.prototype.isCapture = function(currentTarget) {\n return (\n (currentTarget &&\n currentTarget.getAttribute('data-iscapture') === 'true') ||\n this.props.isCapture ||\n false\n );\n };\n}\n","/**\n * Util method to get effect\n */\n\nexport default function(target) {\n target.prototype.getEffect = function(currentTarget) {\n const dataEffect = currentTarget.getAttribute('data-effect');\n return dataEffect || this.props.effect || 'float';\n };\n}\n","import { v4 as uuid } from 'uuid';\n\nexport function generateUUID() {\n return 't' + uuid();\n}\n"],"sourceRoot":""}