shepherdjs_rails 2.1.0 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://Shepherd/webpack/universalModuleDefinition","webpack://Shepherd/webpack/bootstrap","webpack://Shepherd/./node_modules/lodash/isUndefined.js","webpack://Shepherd/./node_modules/lodash/isObjectLike.js","webpack://Shepherd/./node_modules/lodash/isString.js","webpack://Shepherd/./node_modules/lodash/_baseGetTag.js","webpack://Shepherd/./src/js/utils/modal.js","webpack://Shepherd/./src/js/evented.js","webpack://Shepherd/./node_modules/lodash/isFunction.js","webpack://Shepherd/./node_modules/lodash/_overArg.js","webpack://Shepherd/./src/js/utils/dom.js","webpack://Shepherd/./src/js/step.js","webpack://Shepherd/./node_modules/lodash/isArray.js","webpack://Shepherd/./node_modules/lodash/isObject.js","webpack://Shepherd/./node_modules/lodash/isEmpty.js","webpack://Shepherd/./node_modules/lodash/forOwn.js","webpack://Shepherd/./src/js/bind.js","webpack://Shepherd/./src/js/utils.js","webpack://Shepherd/./node_modules/tippy.js/dist/tippy.all.min.js","webpack://Shepherd/(webpack)/buildin/global.js","webpack://Shepherd/./src/js/shepherd.js","webpack://Shepherd/./node_modules/lodash/drop.js","webpack://Shepherd/./node_modules/lodash/_baseSlice.js","webpack://Shepherd/./node_modules/lodash/toInteger.js","webpack://Shepherd/./node_modules/lodash/_baseKeys.js","webpack://Shepherd/./node_modules/lodash/_getTag.js","webpack://Shepherd/./node_modules/lodash/isArguments.js","webpack://Shepherd/./node_modules/lodash/isArrayLike.js","webpack://Shepherd/./node_modules/lodash/isLength.js","webpack://Shepherd/./node_modules/lodash/isBuffer.js","webpack://Shepherd/./node_modules/lodash/_isPrototype.js","webpack://Shepherd/./node_modules/lodash/isTypedArray.js","webpack://Shepherd/./node_modules/lodash/isElement.js","webpack://Shepherd/./node_modules/lodash/isPlainObject.js","webpack://Shepherd/./node_modules/lodash/_getPrototype.js","webpack://Shepherd/./node_modules/lodash/_baseForOwn.js","webpack://Shepherd/./node_modules/lodash/_baseFor.js","webpack://Shepherd/./node_modules/lodash/_createBaseFor.js","webpack://Shepherd/./node_modules/lodash/keys.js","webpack://Shepherd/./node_modules/lodash/_castFunction.js","webpack://Shepherd/./node_modules/element-matches/index.js","webpack://Shepherd/./node_modules/lodash/zipObject.js","webpack://Shepherd/./node_modules/lodash/_assignValue.js","webpack://Shepherd/./node_modules/lodash/_baseAssignValue.js","webpack://Shepherd/./node_modules/lodash/_defineProperty.js","webpack://Shepherd/./node_modules/lodash/_getNative.js","webpack://Shepherd/./node_modules/lodash/eq.js","webpack://Shepherd/./node_modules/lodash/_baseZipObject.js","webpack://Shepherd/./src/js/utils/error-messages.js","webpack://Shepherd/./src/js/tour.js","webpack://Shepherd/./node_modules/lodash/isNumber.js","webpack://Shepherd/./src/js/modal.js","webpack://Shepherd/./node_modules/lodash/defer.js","webpack://Shepherd/./node_modules/lodash/_baseDelay.js","webpack://Shepherd/./node_modules/lodash/_baseRest.js","webpack://Shepherd/./node_modules/lodash/identity.js","webpack://Shepherd/./node_modules/lodash/_overRest.js","webpack://Shepherd/./node_modules/lodash/_apply.js","webpack://Shepherd/./node_modules/lodash/_setToString.js","webpack://Shepherd/./node_modules/lodash/debounce.js","webpack://Shepherd/./node_modules/lodash/now.js","webpack://Shepherd/./node_modules/lodash/_root.js","webpack://Shepherd/./node_modules/lodash/_freeGlobal.js","webpack://Shepherd/./node_modules/lodash/toNumber.js","webpack://Shepherd/./src/js/utils/tooltip-defaults.js","webpack://Shepherd/./src/js/utils/cleanup.js"],"names":["svgNS","elementIds","modalOverlay","modalOverlayMask","modalOverlayMaskOpening","classNames","isVisible","modalTarget","_createModalContainer","element","document","createElementNS","setAttributeNS","_createMaskContainer","_createMaskRect","_createMaskOpening","_createMaskConsumer","createModalOverlay","containerElement","defsElement","maskContainer","maskRect","maskOpening","maskConsumer","appendChild","positionModalOpening","targetElement","openingElement","getBoundingClientRect","SVGElement","x","y","width","height","closeModalOpening","getModalMaskOpening","modalElement","querySelector","preventModalBodyTouch","event","preventDefault","preventModalOverlayTouch","stopPropagation","toggleShepherdModalClass","currentElement","shepherdModal","classList","remove","add","Evented","handler","ctx","once","arguments","length","undefined","bindings","push","on","forEach","binding","index","splice","args","context","apply","elementIsHidden","offsetWidth","offsetHeight","getElementFromObject","attachTo","op","HTMLElement","getElementForStep","step","options","type","getElementFromString","split","selector","addStepEventListeners","_onScreenChange","window","removeEventListener","addEventListener","overlay","passive","cleanupStepEventListeners","uniqueId","id","Step","tour","bindMethods","call","setOptions","bindAdvance","bind","bindButtonEvents","bindCancelLink","setupTooltip","parseAttachTo","content","buttons","footer","createElement","map","cfg","button","classes","text","header","showCancelLink","link","paragraphs","paragraph","innerHTML","title","_addContent","_addButtons","_addCancelLink","cancel","trigger","complete","tooltip","destroy","el","parentNode","removeChild","target","_updateStepTargetOnHide","modal","hide","body","removeAttribute","Boolean","state","_createTooltipContent","advanceOn","scrollToHandler","scrollIntoView","when","beforeShowPromise","then","_show","beforeShowStep","setupElements","setAttribute","scrollTo","setTimeout","show","highlightClass","_setupAdvanceOnHandler","isOpen","targetIsEl","targetIsSelector","matches","next","events","action","click","page","dataset","buttonEvent","e","methods","method","createFromHTML","_parseAttachToOpts","parseShorthand","centeredStylePopperModifier","computeStyle","enabled","fn","data","styles","Object","assign","left","top","transform","defaultPopperOptions","positionFixed","html","children","opts","hasOwnProperty","positionRe","exec","obj","props","values","tippy","Error","missingTippy","attachToOpts","_makeTippyInstance","returnOpts","console","error","attachToOptions","_makeCenteredTippy","tippyOptions","_makeAttachedTippyOptions","one","resultingTippyOptions","placement","popperOptions","arrow","finalPopperOptions","modifiers","Shepherd","Tour","steps","Modal","_setTooltipDefaults","_setTourID","arg1","arg2","name","setupStep","indexOf","currentStep","confirmCancel","cancelMessage","confirmCancelMessage","stopTour","confirm","done","tourObject","cleanup","activeTour","_removeBodyAttrs","find","getCurrentStep","current","some","i","stepOptions","toString","defaultStepOptions","setupForStep","_styleTargetElementForStep","key","forward","getById","_updateStateBeforeShow","shouldSkipStep","showOn","_skipStep","previous","_setupActiveTour","_addBodyAttrs","canClickTarget","style","pointerEvents","nextIndex","setDefaults","tooltipDefaults","isActive","tourName","uuid","_modalOverlayElem","_modalOverlayOpening","modalClassNames","display","useModalOverlay","_styleForStep","modalOverlayOpening","leading","trailing","defaults","arrowTransform","animation","duration","flip","animateFill","interactive","hideOnClick","multiple","cleanupSteps","stepElement"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,CAAe;AACxC,cAAc,mBAAO,CAAC,EAAW;AACjC,mBAAmB,mBAAO,CAAC,CAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA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ACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,cAAc,mBAAO,CAAC,CAAY;;AAElC;AACA;;AAEA;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,CAAc;AACvC,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA,mBAAmB,mBAAO,CAAC,CAAgB;AAC3C,oBAAoB,mBAAO,CAAC,EAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,CAAe;AACxC,mBAAmB,mBAAO,CAAC,EAAiB;AAC5C,mBAAmB,mBAAO,CAAC,CAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7DA,cAAc,mBAAO,CAAC,CAAY;;AAElC;AACA;;AAEA;;;;;;;ACLA,cAAc,mBAAO,CAAC,EAAY;AAClC,WAAW,mBAAO,CAAC,EAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACfA,oBAAoB,mBAAO,CAAC,EAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;ACfA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA,cAAc,mBAAO,CAAC,CAAY;;AAElC;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA,kBAAkB,mBAAO,CAAC,EAAgB;AAC1C,oBAAoB,mBAAO,CAAC,EAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA,sBAAsB,mBAAO,CAAC,EAAoB;AAClD,SAAS,mBAAO,CAAC,EAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,EAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;ACxBA,gBAAgB,mBAAO,CAAC,EAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;ACVA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA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E;AAC/D;;AAEA;;;;;;;ACpBA,eAAe,mBAAO,CAAC,EAAY;AACnC,eAAe,mBAAO,CAAC,EAAa;AACpC,kBAAkB,mBAAO,CAAC,EAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,YAAY,mBAAO,CAAC,EAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA,eAAe,mBAAO,CAAC,EAAY;AACnC,UAAU,mBAAO,CAAC,EAAO;AACzB,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7LA,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA,iBAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;ACRA;AACA;;AAEA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACpBO,IAAMQ,QAAQ,WAARA,QAAQ,GAAG;AACtBrJ,SAAO,EAAE,QADa;AAEtBsF,OAAK,EAAE,IAFe;AAGtBgE,gBAAc,EAAE,UAHM;AAItBC,WAAS,EAAE,MAJW;AAKtBC,UAAQ,EAAE,GALY;AAMtBC,MAAI,EAAE,IANgB;AAOtBC,aAAW,EAAE,KAPS;AAOF;AACpBC,aAAW,EAAE,IARS;AAQF;AACpBC,aAAW,EAAE,QATS;AASC;AACvBC,UAAQ,EAAE,IAVY,CAUN;;AAVM,CAAjB,C;;;;;;;;;;;;QCOSC,Y,GAAAA,Y;QAmBAhM,yB,GAAAA,yB;;AA1BhB;;AACA;;AAEA;;;;AAIO,SAASgM,YAAT,CAAsB5L,IAAtB,EAA4B;AACjC,MAAIA,IAAJ,EAAU;AAAA,QACAyH,KADA,GACUzH,IADV,CACAyH,KADA;AAGRA,SAAK,CAACzJ,OAAN,CAAc,UAACe,IAAD,EAAU;AACtB,UAAIA,IAAI,CAACC,OAAL,IAAgBD,IAAI,CAACC,OAAL,CAAaiL,cAAb,KAAgC,KAAhD,IAAyDlL,IAAI,CAACC,OAAL,CAAaL,QAA1E,EAAoF;AAClF,YAAMkN,WAAW,GAAG,4BAAkB9M,IAAlB,CAApB;;AAEA,YAAI8M,WAAW,YAAYhN,WAA3B,EAAwC;AACtCgN,qBAAW,CAAC3B,KAAZ,CAAkBC,aAAlB,GAAkC,MAAlC;AACD;AACF;AACF,KARD;AASD;AACF;AAED;;;;;AAGO,SAASvK,yBAAT,GAAqC;AAC1C,MAAI,OAAO,KAAKN,eAAZ,KAAgC,UAApC,EAAgD;AAC9CC,UAAM,CAACC,mBAAP,CAA2B,QAA3B,EAAqC,KAAKF,eAA1C,EAA2D,KAA3D;AACAC,UAAM,CAACC,mBAAP,CAA2B,QAA3B,EAAqC,KAAKF,eAA1C,EAA2D,KAA3D;AACAC,UAAM,CAACC,mBAAP,CAA2B,WAA3B,EAAwC7C,4BAAxC,EAA+D,KAA/D;AAEA,SAAK2C,eAAL,GAAuB,IAAvB;AACD;AACF,C","file":"js/shepherd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Shepherd\"] = factory();\n\telse\n\t\troot[\"Shepherd\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 18);\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","const svgNS = 'http://www.w3.org/2000/svg';\n\nconst elementIds = {\n modalOverlay: 'shepherdModalOverlayContainer',\n modalOverlayMask: 'shepherdModalMask',\n modalOverlayMaskOpening: 'shepherdModalMaskOpening'\n};\n\nconst classNames = {\n isVisible: 'shepherd-modal-is-visible',\n modalTarget: 'shepherd-modal-target'\n};\n\n/**\n * <svg id=\"shepherdModalOverlayContainer\" xmlns=\"http://www.w3.org/2000/svg\">\n */\nfunction _createModalContainer() {\n const element = document.createElementNS(svgNS, 'svg');\n\n element.setAttributeNS(null, 'id', elementIds.modalOverlay);\n\n return element;\n}\n\n/**\n * <mask id=\"shepherdModalMask\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">\n */\nfunction _createMaskContainer() {\n const element = document.createElementNS(svgNS, 'mask');\n\n element.setAttributeNS(null, 'id', elementIds.modalOverlayMask);\n element.setAttributeNS(null, 'x', '0');\n element.setAttributeNS(null, 'y', '0');\n element.setAttributeNS(null, 'width', '100%');\n element.setAttributeNS(null, 'height', '100%');\n\n return element;\n}\n\n/**\n * <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"#FFFFFF\"/>\n */\nfunction _createMaskRect() {\n const element = document.createElementNS(svgNS, 'rect');\n\n element.setAttributeNS(null, 'x', '0');\n element.setAttributeNS(null, 'y', '0');\n element.setAttributeNS(null, 'width', '100%');\n element.setAttributeNS(null, 'height', '100%');\n element.setAttributeNS(null, 'fill', '#FFFFFF');\n\n return element;\n}\n\n/**\n * <rect id=\"shepherdModalMaskOpening\" fill=\"#000000\"/>\n */\nfunction _createMaskOpening() {\n const element = document.createElementNS(svgNS, 'rect');\n\n element.setAttributeNS(null, 'id', elementIds.modalOverlayMaskOpening);\n element.setAttributeNS(null, 'fill', '#000000');\n\n return element;\n}\n\n/**\n * <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" mask=\"url(#shepherdModalMask)\"/>\n */\nfunction _createMaskConsumer() {\n const element = document.createElementNS(svgNS, 'rect');\n\n element.setAttributeNS(null, 'x', '0');\n element.setAttributeNS(null, 'y', '0');\n element.setAttributeNS(null, 'width', '100%');\n element.setAttributeNS(null, 'height', '100%');\n element.setAttributeNS(null, 'mask', `url(#${elementIds.modalOverlayMask})`);\n\n return element;\n}\n\n/**\n * Generates an SVG with the following structure:\n * ```html\n * <svg id=\"shepherdModalOverlayContainer\" xmlns=\"http://www.w3.org/2000/svg\">\n <defs>\n <mask id=\"shepherdModalMask\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" >\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"#FFFFFF\"/>\n <!-- This element will \"punch a hole\" through the mask by preventing it from rendering within the perimeter -->\n <rect id=\"shepherdModalMaskOpening\"/>\n </mask>\n </defs>\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" mask=\"url(#shepherdModalMask)\"/>\n </svg>\n * ```\n */\nfunction createModalOverlay() {\n const containerElement = _createModalContainer();\n const defsElement = document.createElementNS(svgNS, 'defs');\n const maskContainer = _createMaskContainer();\n const maskRect = _createMaskRect();\n const maskOpening = _createMaskOpening();\n const maskConsumer = _createMaskConsumer();\n\n maskContainer.appendChild(maskRect);\n maskContainer.appendChild(maskOpening);\n\n defsElement.appendChild(maskContainer);\n\n containerElement.appendChild(defsElement);\n containerElement.appendChild(maskConsumer);\n\n return containerElement;\n}\n\nfunction positionModalOpening(targetElement, openingElement) {\n if (targetElement.getBoundingClientRect && openingElement instanceof SVGElement) {\n const { x, y, width, height } = targetElement.getBoundingClientRect();\n\n openingElement.setAttributeNS(null, 'x', x);\n openingElement.setAttributeNS(null, 'y', y);\n openingElement.setAttributeNS(null, 'width', width);\n openingElement.setAttributeNS(null, 'height', height);\n }\n}\n\nfunction closeModalOpening(openingElement) {\n if (openingElement && openingElement instanceof SVGElement) {\n openingElement.setAttributeNS(null, 'x', '0');\n openingElement.setAttributeNS(null, 'y', '0');\n openingElement.setAttributeNS(null, 'width', '0');\n openingElement.setAttributeNS(null, 'height', '0');\n }\n}\n\nfunction getModalMaskOpening(modalElement) {\n return modalElement.querySelector(`#${elementIds.modalOverlayMaskOpening}`);\n}\n\nfunction preventModalBodyTouch(event) {\n event.preventDefault();\n}\n\nfunction preventModalOverlayTouch(event) {\n event.stopPropagation();\n}\n\n/**\n * Remove any leftover modal target classes and add the modal target class to the currentElement\n * @param {HTMLElement} currentElement The element for the current step\n */\nfunction toggleShepherdModalClass(currentElement) {\n const shepherdModal = document.querySelector(`${classNames.modalTarget}`);\n\n if (shepherdModal) {\n shepherdModal.classList.remove(classNames.modalTarget);\n }\n\n currentElement.classList.add(classNames.modalTarget);\n}\n\nexport {\n createModalOverlay,\n positionModalOpening,\n preventModalBodyTouch,\n preventModalOverlayTouch,\n closeModalOpening,\n getModalMaskOpening,\n elementIds,\n classNames,\n toggleShepherdModalClass\n};\n","import { drop, isUndefined } from 'lodash';\n\nexport class Evented {\n on(event, handler, ctx) {\n const once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];\n\n if (isUndefined(this.bindings)) {\n this.bindings = {};\n }\n if (isUndefined(this.bindings[event])) {\n this.bindings[event] = [];\n }\n this.bindings[event].push({ handler, ctx, once });\n }\n\n once(event, handler, ctx) {\n this.on(event, handler, ctx, true);\n }\n\n off(event, handler) {\n if (isUndefined(this.bindings) || isUndefined(this.bindings[event])) {\n return false;\n }\n\n if (isUndefined(handler)) {\n delete this.bindings[event];\n } else {\n this.bindings[event].forEach((binding, index) => {\n if (binding.handler === handler) {\n this.bindings[event].splice(index, 1);\n }\n });\n }\n }\n\n trigger(event) {\n if (!isUndefined(this.bindings) && this.bindings[event]) {\n const args = drop(arguments);\n\n this.bindings[event].forEach((binding, index) => {\n const { ctx, handler, once } = binding;\n\n const context = ctx || this;\n\n handler.apply(context, args);\n\n if (once) {\n this.bindings[event].splice(index, 1);\n }\n });\n }\n }\n\n}\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","import { elementIds } from './modal';\nimport { preventModalBodyTouch, preventModalOverlayTouch } from './modal';\n\n/**\n * Helper method to check if element is hidden, since we cannot use :visible without jQuery\n * @param {HTMLElement} element The element to check for visibility\n * @returns {boolean} true if element is hidden\n * @private\n */\nfunction elementIsHidden(element) {\n return element.offsetWidth === 0 && element.offsetHeight === 0;\n}\n\n/**\n * Get the element from an option object\n *\n * @method getElementFromObject\n * @param Object attachTo\n * @returns {Element}\n * @private\n */\nfunction getElementFromObject(attachTo) {\n const op = attachTo.element;\n\n if (op instanceof HTMLElement) {\n return op;\n }\n\n return document.querySelector(op);\n}\n\n/**\n * Return the element for a step\n *\n * @method getElementForStep\n * @param step step the step to get an element for\n * @returns {Element} the element for this step\n * @private\n */\nfunction getElementForStep(step) {\n const { options: { attachTo } } = step;\n\n if (!attachTo) {\n return null;\n }\n\n const type = typeof attachTo;\n\n let element;\n\n if (type === 'string') {\n element = getElementFromString(attachTo);\n } else if (type === 'object') {\n element = getElementFromObject(attachTo);\n } else {\n /* istanbul ignore next: cannot test undefined attachTo, but it does work! */\n element = null;\n }\n return element;\n}\n\n/**\n * Get the element from an option string\n *\n * @method getElementFromString\n * @param element the string in the step configuration\n * @returns {Element} the element from the string\n * @private\n */\nfunction getElementFromString(element) {\n const [selector] = element.split(' ');\n\n return document.querySelector(selector);\n}\n\nfunction addStepEventListeners() {\n if (typeof this._onScreenChange === 'function') {\n window.removeEventListener('resize', this._onScreenChange, false);\n window.removeEventListener('scroll', this._onScreenChange, false);\n }\n\n window.addEventListener('resize', this._onScreenChange, false);\n window.addEventListener('scroll', this._onScreenChange, false);\n\n const overlay = document.querySelector(`#${elementIds.modalOverlay}`);\n // Prevents window from moving on touch.\n window.addEventListener('touchmove', preventModalBodyTouch, { passive: false });\n\n // Allows content to move on touch.\n if (overlay) {\n overlay.addEventListener('touchmove', preventModalOverlayTouch, false);\n }\n}\n\n/**\n * Remove resize and scroll event listeners\n */\nfunction cleanupStepEventListeners() {\n if (typeof this._onScreenChange === 'function') {\n window.removeEventListener('resize', this._onScreenChange, false);\n window.removeEventListener('scroll', this._onScreenChange, false);\n\n this._onScreenChange = null;\n }\n}\n\nexport {\n addStepEventListeners,\n cleanupStepEventListeners,\n elementIsHidden,\n getElementForStep\n};\n","import {\n forOwn,\n isElement,\n isEmpty,\n isFunction,\n isString,\n isUndefined\n} from 'lodash';\nimport { Evented } from './evented.js';\nimport 'element-matches';\nimport { bindAdvance, bindButtonEvents, bindCancelLink, bindMethods } from './bind.js';\nimport { createFromHTML, setupTooltip, parseAttachTo } from './utils.js';\n\n/**\n * Creates incremented ID for each newly created step\n *\n * @private\n * @return {Number} The unique id for the step\n */\nconst uniqueId = (function() {\n let id = 0;\n return function() {\n return ++id;\n };\n})();\n\n/**\n * Class representing steps to be added to a tour\n * @extends {Evented}\n */\nexport class Step extends Evented {\n /**\n * Create a step\n * @param {Tour} tour The tour for the step\n * @param {Object} options The options for the step\n * @param {Object|string} options.attachTo What element the step should be attached to on the page.\n * It can either be a string of the form \"element on\", or an object with those properties.\n * For example: \".some #element left\", or {element: '.some #element', on: 'left'}.\n * If you use the object syntax, element can also be a DOM element. If you don’t specify an attachTo the\n * element will appear in the middle of the screen.\n * @param {HTMLElement|string} options.attachTo.element\n * @param {string} options.attachTo.on\n * @param {Object|string} options.advanceOn An action on the page which should advance shepherd to the next step.\n * It can be of the form `\"selector event\"`, or an object with those properties.\n * For example: `\".some-element click\"`, or `{selector: '.some-element', event: 'click'}`.\n * It doesn’t have to be an event inside the tour, it can be any event fired on any element on the page.\n * You can also always manually advance the Tour by calling `myTour.next()`.\n * @param {function} options.beforeShowPromise A function that returns a promise.\n * When the promise resolves, the rest of the `show` code for the step will execute.\n * @param {Object[]} options.buttons An array of buttons to add to the step. These will be rendered in a\n * footer below the main body text.\n * @param {function} options.buttons.button.action A function executed when the button is clicked on\n * @param {string} options.buttons.button.classes Extra classes to apply to the `<a>`\n * @param {Object} options.buttons.button.events A hash of events to bind onto the button, for example\n * `{'mouseover': function(){}}`. Adding a `click` event to events when you already have an `action` specified is not supported.\n * You can use events to skip steps or navigate to specific steps, with something like:\n * ```js\n * events: {\n * click: function() {\n * return Shepherd.activeTour.show('some_step_name');\n * }\n * }\n * ```\n * @param {string} options.buttons.button.text The HTML text of the button\n * @param {string} options.classes A string of extra classes to add to the step's content element.\n * @param {string} options.highlightClass An extra class to apply to the `attachTo` element when it is\n * highlighted (that is, when its step is active). You can then target that selector in your CSS.\n * @param {Object} options.tippyOptions Extra [options to pass to tippy.js]{@link https://atomiks.github.io/tippyjs/#all-options}\n * @param {boolean} options.scrollTo Should the element be scrolled to when this step is shown?\n * @param {function} options.scrollToHandler A function that lets you override the default scrollTo behavior and\n * define a custom action to do the scrolling, and possibly other logic.\n * @param {boolean} options.showCancelLink Should a cancel “✕” be shown in the header of the step?\n * @param {function} options.showOn A function that, when it returns `true`, will show the step.\n * If it returns false, the step will be skipped.\n * @param {string} options.text The text in the body of the step. It can be one of four types:\n * ```\n * - HTML string\n * - Array of HTML strings\n * - `HTMLElement` object\n * - `Function` to be executed when the step is built. It must return one of the three options above.\n * ```\n * @param {string} options.title The step's title. It becomes an `h3` at the top of the step.\n * @param {Object} options.when You can define `show`, `hide`, etc events inside `when`. For example:\n * ```js\n * when: {\n * show: function() {\n * window.scrollTo(0, 0);\n * }\n * }\n * ```\n * @return {Step} The newly created Step instance\n */\n constructor(tour, options) {\n super(tour, options);\n this.tour = tour;\n bindMethods.call(this, [\n '_show',\n 'cancel',\n 'complete',\n 'destroy',\n 'hide',\n 'isOpen',\n 'scrollTo',\n 'setupElements',\n 'show'\n ]);\n this.setOptions(options);\n this.bindAdvance = bindAdvance.bind(this);\n this.bindButtonEvents = bindButtonEvents.bind(this);\n this.bindCancelLink = bindCancelLink.bind(this);\n this.setupTooltip = setupTooltip.bind(this);\n this.parseAttachTo = parseAttachTo.bind(this);\n\n return this;\n }\n\n /**\n * Adds buttons to the step as passed into options\n *\n * @private\n * @param {HTMLElement} content The element for the step, to append the footer with buttons to\n */\n _addButtons(content) {\n if (!isEmpty(this.options.buttons)) {\n const footer = document.createElement('footer');\n const buttons = createFromHTML('<ul class=\"shepherd-buttons\"></ul>');\n\n footer.classList.add('shepherd-footer');\n\n this.options.buttons.map((cfg) => {\n const button = createFromHTML(`<li><a class=\"shepherd-button ${cfg.classes || ''}\">${cfg.text}</a>`);\n buttons.appendChild(button);\n this.bindButtonEvents(cfg, button.querySelector('a'));\n });\n\n footer.appendChild(buttons);\n content.appendChild(footer);\n }\n }\n\n /**\n * Adds the \"x\" button to cancel the tour\n * @param {HTMLElement} element The step element\n * @param {HTMLElement} header The header element for the step\n * @private\n */\n _addCancelLink(element, header) {\n if (this.options.showCancelLink) {\n const link = createFromHTML('<a href class=\"shepherd-cancel-link\"></a>');\n header.appendChild(link);\n\n element.classList.add('shepherd-has-cancel-link');\n this.bindCancelLink(link);\n }\n }\n\n /**\n * Adds text passed in as options\n *\n * @private\n * @param {HTMLElement} content The content to append the text to\n */\n _addContent(content) {\n const text = createFromHTML('<div class=\"shepherd-text\"></div>');\n let paragraphs = this.options.text;\n\n if (isFunction(paragraphs)) {\n paragraphs = paragraphs.call(this, text);\n }\n\n if (paragraphs instanceof HTMLElement) {\n text.appendChild(paragraphs);\n } else {\n if (isString(paragraphs)) {\n paragraphs = [paragraphs];\n }\n\n paragraphs.map((paragraph) => {\n text.innerHTML += `<p>${paragraph}</p>`;\n });\n }\n\n content.appendChild(text);\n }\n\n /**\n * Creates Shepherd element for step based on options\n *\n * @private\n * @return {HTMLElement} The DOM element for the step tooltip\n */\n _createTooltipContent() {\n const content = document.createElement('div');\n const classes = this.options.classes || '';\n const element = createFromHTML(`<div class=\"${classes}\" data-shepherd-step-id=\"${this.id}\">`);\n const header = document.createElement('header');\n\n if (this.options.title) {\n const title = document.createElement('h3');\n title.classList.add('shepherd-title');\n title.innerHTML = `${this.options.title}`;\n header.appendChild(title);\n element.classList.add('shepherd-has-title');\n }\n\n content.classList.add('shepherd-content');\n header.classList.add('shepherd-header');\n element.appendChild(content);\n content.appendChild(header);\n\n if (!isUndefined(this.options.text)) {\n this._addContent(content);\n }\n\n this._addButtons(content);\n this._addCancelLink(element, header);\n\n return element;\n }\n\n /**\n * Returns the tour for the step\n * @return {Tour} The tour instance\n */\n getTour() {\n return this.tour;\n }\n\n /**\n * Cancel the tour\n * Triggers the `cancel` event\n */\n cancel() {\n this.tour.cancel();\n this.trigger('cancel');\n }\n\n /**\n * Complete the tour\n * Triggers the `complete` event\n */\n complete() {\n this.tour.complete();\n this.trigger('complete');\n }\n\n /**\n * Remove the step, delete the step's element, and destroy the tippy instance for the step\n * Triggers `destroy` event\n */\n destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (isElement(this.el) && this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n this.el = null;\n }\n\n if (this.target) {\n this._updateStepTargetOnHide();\n }\n\n this.trigger('destroy');\n }\n\n /**\n * Hide the step and destroy the tippy instance\n */\n hide() {\n this.tour.modal.hide();\n\n this.trigger('before-hide');\n\n document.body.removeAttribute('data-shepherd-step');\n\n if (this.target) {\n this._updateStepTargetOnHide();\n }\n\n if (this.tooltip) {\n this.tooltip.hide();\n }\n\n this.trigger('hide');\n }\n\n /**\n * Check if the step is open and visible\n * @return {boolean} True if the step is open and visible\n */\n isOpen() {\n return Boolean(\n this.tooltip &&\n this.tooltip.state &&\n this.tooltip.state.isVisible\n );\n }\n\n /**\n * Create the element and set up the tippy instance\n */\n setupElements() {\n if (!isUndefined(this.el)) {\n this.destroy();\n }\n\n this.el = this._createTooltipContent();\n\n if (this.options.advanceOn) {\n this.bindAdvance();\n }\n\n this.setupTooltip();\n }\n\n /**\n * If a custom scrollToHandler is defined, call that, otherwise do the generic\n * scrollIntoView call.\n */\n scrollTo() {\n const { element } = this.parseAttachTo();\n\n if (isFunction(this.options.scrollToHandler)) {\n this.options.scrollToHandler(element);\n } else if (isElement(element)) {\n element.scrollIntoView();\n }\n }\n\n /**\n * Sets the options for the step, maps `when` to events, sets up buttons\n * @param {Object} options The options for the step\n */\n setOptions(options = {}) {\n this.options = options;\n const { when } = this.options;\n\n this.destroy();\n this.id = this.options.id || `step-${uniqueId()}`;\n\n forOwn(when, (handler, event) => {\n this.on(event, handler, this);\n });\n }\n\n /**\n * Wraps `_show` and ensures `beforeShowPromise` resolves before calling show\n * @return {*|Promise}\n */\n show() {\n if (isFunction(this.options.beforeShowPromise)) {\n const beforeShowPromise = this.options.beforeShowPromise();\n if (!isUndefined(beforeShowPromise)) {\n return beforeShowPromise.then(() => this._show());\n }\n }\n this._show();\n }\n\n /**\n * Triggers `before-show`, generates the tooltip DOM content,\n * sets up a tippy instance for the tooltip, then triggers `show`.\n * @private\n */\n _show() {\n this.tour.beforeShowStep(this);\n this.trigger('before-show');\n\n if (!this.el) {\n this.setupElements();\n }\n\n this.target.classList.add('shepherd-enabled', 'shepherd-target');\n\n document.body.setAttribute('data-shepherd-step', this.id);\n\n if (this.options.scrollTo) {\n setTimeout(() => {\n this.scrollTo();\n });\n }\n\n this.tooltip.show();\n this.trigger('show');\n }\n\n _updateStepTargetOnHide() {\n if (this.options.highlightClass) {\n this.target.classList.remove(this.options.highlightClass);\n }\n\n this.target.classList.remove('shepherd-enabled', 'shepherd-target');\n }\n}\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","import { parseShorthand } from './utils.js';\nimport { forOwn, isString, isUndefined } from 'lodash';\n\n/**\n * Sets up the handler to determine if we should advance the tour\n * @private\n */\nfunction _setupAdvanceOnHandler(selector) {\n return (event) => {\n if (this.isOpen()) {\n const targetIsEl = this.el && event.target === this.el;\n const targetIsSelector = !isUndefined(selector) && event.target.matches(selector);\n\n if (targetIsSelector || targetIsEl) {\n this.tour.next();\n }\n }\n };\n}\n\n/**\n * Bind the event handler for advanceOn\n */\nexport function bindAdvance() {\n // An empty selector matches the step element\n const { event, selector } = parseShorthand(this.options.advanceOn, ['selector', 'event']);\n const handler = _setupAdvanceOnHandler.call(this, selector);\n\n // TODO: this should also bind/unbind on show/hide\n const el = document.querySelector(selector);\n if (!isUndefined(selector) && el) {\n el.addEventListener(event, handler);\n } else {\n document.body.addEventListener(event, handler, true);\n }\n this.on('destroy', () => {\n return document.body.removeEventListener(event, handler, true);\n });\n}\n\n/**\n * Bind events to the buttons for next, back, etc\n * @param {Object} cfg An object containing the config options for the button\n * @param {HTMLElement} el The element for the button\n */\nexport function bindButtonEvents(cfg, el) {\n cfg.events = cfg.events || {};\n if (!isUndefined(cfg.action)) {\n // Including both a click event and an action is not supported\n cfg.events.click = cfg.action;\n }\n\n forOwn(cfg.events, (handler, event) => {\n if (isString(handler)) {\n const page = handler;\n handler = () => this.tour.show(page);\n }\n el.dataset.buttonEvent = true;\n el.addEventListener(event, handler);\n\n // Cleanup event listeners on destroy\n this.on('destroy', () => {\n el.removeAttribute('data-button-event');\n el.removeEventListener(event, handler);\n });\n });\n}\n\n/**\n * Add a click listener to the cancel link that cancels the tour\n * @param {HTMLElement} link The cancel link element\n */\nexport function bindCancelLink(link) {\n link.addEventListener('click', (e) => {\n e.preventDefault();\n this.cancel();\n });\n}\n\n/**\n * Take an array of strings and look up methods by name, then bind them to `this`\n * @param {String[]} methods The names of methods to bind\n */\nexport function bindMethods(methods) {\n methods.map((method) => {\n this[method] = this[method].bind(this);\n });\n}\n","import { isString, isObjectLike, isUndefined, zipObject } from 'lodash';\nimport tippy from 'tippy.js';\nimport { missingTippy } from './utils/error-messages';\n\nconst centeredStylePopperModifier = {\n computeStyle: {\n enabled: true,\n fn(data) {\n data.styles = Object.assign({}, data.styles, {\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)'\n });\n\n return data;\n }\n }\n};\n\n// Used to compose settings for tippyOptions.popperOptions (https://atomiks.github.io/tippyjs/#popper-options-option)\nconst defaultPopperOptions = {\n positionFixed: true\n};\n\n/**\n * TODO rewrite the way items are being added to use more performant documentFragment code\n * @param html\n * @return {HTMLElement} The element created from the passed HTML string\n */\nexport function createFromHTML(html) {\n const el = document.createElement('div');\n el.innerHTML = html;\n return el.children[0];\n}\n\n/**\n * Parse the position object or string to return the attachment and element to attach to\n * @param {Object|String} position Either a string or object denoting the selector and position for attachment\n * @return {Object} The object with `element` and `on` for the step\n * @private\n */\nexport function _parseAttachToOpts(opts) {\n if (isObjectLike(opts)) {\n if (opts.hasOwnProperty('element') && opts.hasOwnProperty('on')) {\n return opts;\n }\n return null;\n }\n\n const positionRe = /^(.+) ((auto|top|left|right|bottom)(-start|-end)?)$/;\n const matches = positionRe.exec(opts);\n\n if (!matches) {\n return null;\n }\n\n return {\n element: matches[1],\n on: matches[2]\n };\n}\n\n/**\n * @param obj\n * @param {Array} props\n * @return {*}\n */\nexport function parseShorthand(obj, props) {\n if (obj === null || isUndefined(obj)) {\n return obj;\n } else if (isObjectLike(obj)) {\n return obj;\n }\n\n const values = obj.split(' ');\n return zipObject(props, values);\n}\n\n/**\n * Determines options for the tooltip and initializes\n * `this.tooltip` as a Tippy.js instance.\n */\nexport function setupTooltip() {\n if (isUndefined(tippy)) {\n throw new Error(missingTippy);\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n\n const attachToOpts = this.parseAttachTo();\n\n this.tooltip = _makeTippyInstance.call(this, attachToOpts);\n\n this.target = attachToOpts.element || document.body;\n\n this.el.classList.add('shepherd-element');\n}\n\n/**\n * Passes `options.attachTo` to `_parseAttachToOpts` to get the correct `attachTo` format\n * @returns {({} & {element, on}) | ({})}\n * `element` is a qualified HTML Element\n * `on` is a string position value\n */\nexport function parseAttachTo() {\n const options = _parseAttachToOpts(this.options.attachTo) || {};\n const returnOpts = Object.assign({}, options);\n\n if (isString(options.element)) {\n // Can't override the element in user opts reference because we can't\n // guarantee that the element will exist in the future.\n try {\n returnOpts.element = document.querySelector(options.element);\n } catch(e) {\n // TODO\n }\n if (!returnOpts.element) {\n console.error(`The element for this Shepherd step was not found ${options.element}`);\n }\n }\n\n return returnOpts;\n}\n\n/**\n * Generates a `Tippy` instance from a set of base `attachTo` options\n *\n * @return {tippy} The final tippy instance\n * @private\n */\nfunction _makeTippyInstance(attachToOptions) {\n if (!attachToOptions.element) {\n return _makeCenteredTippy.call(this);\n }\n\n const tippyOptions = _makeAttachedTippyOptions.call(this, attachToOptions);\n\n return tippy.one(attachToOptions.element, tippyOptions);\n}\n\n/**\n * Generates the hash of options that will be passed to `Tippy` instances\n * target an element in the DOM.\n *\n * @param {Object} attachToOptions The local `attachTo` options\n * @return {Object} The final tippy options object\n * @private\n */\nfunction _makeAttachedTippyOptions(attachToOptions) {\n const resultingTippyOptions = {\n content: this.el,\n placement: attachToOptions.on || 'right',\n ...this.options.tippyOptions\n };\n\n if (this.options.tippyOptions && this.options.tippyOptions.popperOptions) {\n Object.assign(defaultPopperOptions, this.options.tippyOptions.popperOptions);\n }\n\n resultingTippyOptions.popperOptions = defaultPopperOptions;\n\n return resultingTippyOptions;\n}\n\n/**\n * Generates a `Tippy` instance for a tooltip that doesn't have a\n * target element in the DOM -- and thus is positioned in the center\n * of the view\n *\n * @return {tippy} The final tippy instance\n * @private\n */\nfunction _makeCenteredTippy() {\n const tippyOptions = {\n content: this.el,\n placement: 'top',\n ...this.options.tippyOptions\n };\n\n tippyOptions.arrow = false;\n tippyOptions.popperOptions = tippyOptions.popperOptions || {};\n\n const finalPopperOptions = Object.assign(\n {},\n defaultPopperOptions,\n tippyOptions.popperOptions,\n {\n modifiers: Object.assign(\n centeredStylePopperModifier,\n tippyOptions.popperOptions.modifiers\n )\n }\n );\n\n tippyOptions.popperOptions = finalPopperOptions;\n\n return tippy.one(document.body, tippyOptions);\n}\n","(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.tippy=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var r=e.ownerDocument.defaultView,a=r.getComputedStyle(e,null);return t?a[t]:a}function r(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function a(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var p=t(e),o=p.overflow,i=p.overflowX,n=p.overflowY;return /(auto|scroll|overlay)/.test(o+n+i)?e:a(r(e))}function p(e){return 11===e?ke:10===e?Ee:ke||Ee}function o(e){if(!e)return document.documentElement;for(var r=p(10)?document.body:null,a=e.offsetParent||null;a===r&&e.nextElementSibling;)a=(e=e.nextElementSibling).offsetParent;var i=a&&a.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(a.nodeName)&&'static'===t(a,'position')?o(a):a:e?e.ownerDocument.documentElement:document.documentElement}function n(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||o(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function l(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var r=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,a=r?e:t,p=r?t:e,i=document.createRange();i.setStart(a,0),i.setEnd(p,0);var d=i.commonAncestorContainer;if(e!==d&&t!==d||a.contains(p))return n(d)?d:o(d);var m=s(e);return m.host?l(m.host,t):l(e,s(t).host)}function d(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',r='top'===t?'scrollTop':'scrollLeft',a=e.nodeName;if('BODY'===a||'HTML'===a){var p=e.ownerDocument.documentElement,o=e.ownerDocument.scrollingElement||p;return o[r]}return e[r]}function m(e,t){var r=!!(2<arguments.length&&void 0!==arguments[2])&&arguments[2],a=d(t,'top'),p=d(t,'left'),o=r?-1:1;return e.top+=a*o,e.bottom+=a*o,e.left+=p*o,e.right+=p*o,e}function c(e,t){var r='x'===t?'Left':'Top',a='Left'===r?'Right':'Bottom';return parseFloat(e['border'+r+'Width'],10)+parseFloat(e['border'+a+'Width'],10)}function f(e,t,r,a){return ae(t['offset'+e],t['scroll'+e],r['client'+e],r['offset'+e],r['scroll'+e],p(10)?parseInt(r['offset'+e])+parseInt(a['margin'+('Height'===e?'Top':'Left')])+parseInt(a['margin'+('Height'===e?'Bottom':'Right')]):0)}function h(e){var t=e.body,r=e.documentElement,a=p(10)&&getComputedStyle(r);return{height:f('Height',t,r,a),width:f('Width',t,r,a)}}function b(e){return Te({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var r={};try{if(p(10)){r=e.getBoundingClientRect();var a=d(e,'top'),o=d(e,'left');r.top+=a,r.left+=o,r.bottom+=a,r.right+=o}else r=e.getBoundingClientRect()}catch(t){}var i={left:r.left,top:r.top,width:r.right-r.left,height:r.bottom-r.top},n='HTML'===e.nodeName?h(e.ownerDocument):{},s=n.width||e.clientWidth||i.right-i.left,l=n.height||e.clientHeight||i.bottom-i.top,m=e.offsetWidth-s,f=e.offsetHeight-l;if(m||f){var y=t(e);m-=c(y,'x'),f-=c(y,'y'),i.width-=m,i.height-=f}return b(i)}function y(e,r){var o=!!(2<arguments.length&&void 0!==arguments[2])&&arguments[2],i=p(10),n='HTML'===r.nodeName,s=u(e),l=u(r),d=a(e),c=t(r),f=parseFloat(c.borderTopWidth,10),h=parseFloat(c.borderLeftWidth,10);o&&n&&(l.top=ae(l.top,0),l.left=ae(l.left,0));var y=b({top:s.top-l.top-f,left:s.left-l.left-h,width:s.width,height:s.height});if(y.marginTop=0,y.marginLeft=0,!i&&n){var g=parseFloat(c.marginTop,10),x=parseFloat(c.marginLeft,10);y.top-=f-g,y.bottom-=f-g,y.left-=h-x,y.right-=h-x,y.marginTop=g,y.marginLeft=x}return(i&&!o?r.contains(d):r===d&&'BODY'!==d.nodeName)&&(y=m(y,r)),y}function g(e){var t=!!(1<arguments.length&&void 0!==arguments[1])&&arguments[1],r=e.ownerDocument.documentElement,a=y(e,r),p=ae(r.clientWidth,window.innerWidth||0),o=ae(r.clientHeight,window.innerHeight||0),i=t?0:d(r),n=t?0:d(r,'left'),s={top:i-a.top+a.marginTop,left:n-a.left+a.marginLeft,width:p,height:o};return b(s)}function x(e){var a=e.nodeName;return'BODY'!==a&&'HTML'!==a&&('fixed'===t(e,'position')||x(r(e)))}function w(e){if(!e||!e.parentElement||p())return document.documentElement;for(var r=e.parentElement;r&&'none'===t(r,'transform');)r=r.parentElement;return r||document.documentElement}function v(e,t,p,o){var i=!!(4<arguments.length&&void 0!==arguments[4])&&arguments[4],n={top:0,left:0},s=i?w(e):l(e,t);if('viewport'===o)n=g(s,i);else{var d;'scrollParent'===o?(d=a(r(t)),'BODY'===d.nodeName&&(d=e.ownerDocument.documentElement)):'window'===o?d=e.ownerDocument.documentElement:d=o;var m=y(d,s,i);if('HTML'===d.nodeName&&!x(s)){var c=h(e.ownerDocument),f=c.height,b=c.width;n.top+=m.top-m.marginTop,n.bottom=f+m.top,n.left+=m.left-m.marginLeft,n.right=b+m.left}else n=m}p=p||0;var u='number'==typeof p;return n.left+=u?p:p.left||0,n.top+=u?p:p.top||0,n.right-=u?p:p.right||0,n.bottom-=u?p:p.bottom||0,n}function k(e){var t=e.width,r=e.height;return t*r}function E(e,t,r,a,p){var o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var i=v(r,a,o,p),n={top:{width:i.width,height:t.top-i.top},right:{width:i.right-t.right,height:i.height},bottom:{width:i.width,height:i.bottom-t.bottom},left:{width:t.left-i.left,height:i.height}},s=Object.keys(n).map(function(e){return Te({key:e},n[e],{area:k(n[e])})}).sort(function(e,t){return t.area-e.area}),l=s.filter(function(e){var t=e.width,a=e.height;return t>=r.clientWidth&&a>=r.clientHeight}),d=0<l.length?l[0].key:s[0].key,m=e.split('-')[1];return d+(m?'-'+m:'')}function O(e,t,r){var a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,p=a?w(t):l(t,r);return y(r,p,a)}function C(e){var t=e.ownerDocument.defaultView,r=t.getComputedStyle(e),a=parseFloat(r.marginTop||0)+parseFloat(r.marginBottom||0),p=parseFloat(r.marginLeft||0)+parseFloat(r.marginRight||0),o={width:e.offsetWidth+p,height:e.offsetHeight+a};return o}function L(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function T(e,t,r){r=r.split('-')[0];var a=C(e),p={width:a.width,height:a.height},o=-1!==['right','left'].indexOf(r),i=o?'top':'left',n=o?'left':'top',s=o?'height':'width',l=o?'width':'height';return p[i]=t[i]+t[s]/2-a[s]/2,p[n]=r===n?t[n]-a[l]:t[L(n)],p}function A(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function Y(e,t,r){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===r});var a=A(e,function(e){return e[t]===r});return e.indexOf(a)}function S(t,r,a){var p=void 0===a?t:t.slice(0,Y(t,'name',a));return p.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var a=t['function']||t.fn;t.enabled&&e(a)&&(r.offsets.popper=b(r.offsets.popper),r.offsets.reference=b(r.offsets.reference),r=a(r,t))}),r}function P(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=O(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=E(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=T(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=S(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function D(e,t){return e.some(function(e){var r=e.name,a=e.enabled;return a&&r===t})}function X(e){for(var t=[!1,'ms','Webkit','Moz','O'],r=e.charAt(0).toUpperCase()+e.slice(1),a=0;a<t.length;a++){var p=t[a],o=p?''+p+r:e;if('undefined'!=typeof document.body.style[o])return o}return null}function I(){return this.state.isDestroyed=!0,D(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[X('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function N(e){var t=e.ownerDocument;return t?t.defaultView:window}function H(e,t,r,p){var o='BODY'===e.nodeName,i=o?e.ownerDocument.defaultView:e;i.addEventListener(t,r,{passive:!0}),o||H(a(i.parentNode),t,r,p),p.push(i)}function R(e,t,r,p){r.updateBound=p,N(e).addEventListener('resize',r.updateBound,{passive:!0});var o=a(e);return H(o,'scroll',r.updateBound,r.scrollParents),r.scrollElement=o,r.eventsEnabled=!0,r}function W(){this.state.eventsEnabled||(this.state=R(this.reference,this.options,this.state,this.scheduleUpdate))}function B(e,t){return N(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function M(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=B(this.reference,this.state))}function z(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function _(e,t){Object.keys(t).forEach(function(r){var a='';-1!==['width','height','top','right','bottom','left'].indexOf(r)&&z(t[r])&&(a='px'),e.style[r]=t[r]+a})}function F(e,t){Object.keys(t).forEach(function(r){var a=t[r];!1===a?e.removeAttribute(r):e.setAttribute(r,t[r])})}function U(e,t){var r=e.offsets,a=r.popper,p=r.reference,o=re,i=function(e){return e},n=o(a.width),s=o(p.width),l=-1!==['left','right'].indexOf(e.placement),d=-1!==e.placement.indexOf('-'),m=t?l||d||s%2==n%2?o:te:i,c=t?o:i;return{left:m(1==s%2&&1==n%2&&!d&&t?a.left-1:a.left),top:c(a.top),bottom:c(a.bottom),right:m(a.right)}}function V(e,t,r){var a=A(e,function(e){var r=e.name;return r===t}),p=!!a&&e.some(function(e){return e.name===r&&e.enabled&&e.order<a.order});if(!p){var o='`'+t+'`';console.warn('`'+r+'`'+' modifier is required by '+o+' modifier in order to work, be sure to include it before '+o+'!')}return p}function q(e){return'end'===e?'start':'start'===e?'end':e}function j(e){var t=!!(1<arguments.length&&void 0!==arguments[1])&&arguments[1],r=Se.indexOf(e),a=Se.slice(r+1).concat(Se.slice(0,r));return t?a.reverse():a}function K(e,t,r,a){var p=e.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/),o=+p[1],i=p[2];if(!o)return e;if(0===i.indexOf('%')){var n;switch(i){case'%p':n=r;break;case'%':case'%r':default:n=a;}var s=b(n);return s[t]/100*o}if('vh'===i||'vw'===i){var l;return l='vh'===i?ae(document.documentElement.clientHeight,window.innerHeight||0):ae(document.documentElement.clientWidth,window.innerWidth||0),l/100*o}return o}function G(e,t,r,a){var p=[0,0],o=-1!==['right','left'].indexOf(a),i=e.split(/(\\+|\\-)/).map(function(e){return e.trim()}),n=i.indexOf(A(i,function(e){return-1!==e.search(/,|\\s/)}));i[n]&&-1===i[n].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var s=/\\s*,\\s*|\\s+/,l=-1===n?[i]:[i.slice(0,n).concat([i[n].split(s)[0]]),[i[n].split(s)[1]].concat(i.slice(n+1))];return l=l.map(function(e,a){var p=(1===a?!o:o)?'height':'width',i=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,i=!0,e):i?(e[e.length-1]+=t,i=!1,e):e.concat(t)},[]).map(function(e){return K(e,p,t,r)})}),l.forEach(function(e,t){e.forEach(function(r,a){z(r)&&(p[t]+=r*('-'===e[a-1]?-1:1))})}),p}function J(e,t){var r=t.offset,a=e.placement,p=e.offsets,o=p.popper,i=p.reference,n=a.split('-')[0],s=void 0;return s=z(+r)?[+r,0]:G(r,o,i,n),'left'===n?(o.top+=s[0],o.left-=s[1]):'right'===n?(o.top+=s[0],o.left+=s[1]):'top'===n?(o.left+=s[0],o.top-=s[1]):'bottom'===n&&(o.left+=s[0],o.top+=s[1]),e.popper=o,e}function Z(){document.addEventListener('click',Yt,!0),document.addEventListener('touchstart',Lt,{passive:!0}),window.addEventListener('blur',St),window.addEventListener('resize',Pt),!ye&&(navigator.maxTouchPoints||navigator.msMaxTouchPoints)&&document.addEventListener('pointerdown',Lt)}function $(e,t){function r(){yt(function(){z=!1})}function a(){X=new MutationObserver(function(){q.popperInstance.update()}),X.observe(U,{childList:!0,subtree:!0,characterData:!0})}function p(e){var t=N=e,r=t.clientX,a=t.clientY;if(q.popperInstance){var p=xt(q.popper),o=q.popperChildren.arrow?20:5,i='top'===p||'bottom'===p,n='left'===p||'right'===p,s=i?ae(o,r):r,l=n?ae(o,a):a;i&&s>o&&(s=ee(r,window.innerWidth-o)),n&&l>o&&(l=ee(a,window.innerHeight-o));var d=q.reference.getBoundingClientRect(),m=q.props.followCursor,c='horizontal'===m,f='vertical'===m;q.popperInstance.reference={getBoundingClientRect:function(){return{width:0,height:0,top:c?d.top:l,bottom:c?d.bottom:l,left:f?d.left:s,right:f?d.right:s}},clientWidth:0,clientHeight:0},q.popperInstance.scheduleUpdate()}}function o(e){var t=pt(e.target,q.props.target);t&&!t._tippy&&($(t,ie({},q.props,{target:'',showOnInit:!0})),i(e))}function i(e){if(T(),!q.state.isVisible){if(q.props.target)return o(e);if(W=!0,q.props.wait)return q.props.wait(q,e);x()&&document.addEventListener('mousemove',p);var t=Ve(q.props.delay,0,ne.delay);t?H=setTimeout(function(){Y()},t):Y()}}function n(){if(T(),!q.state.isVisible)return s();W=!1;var e=Ve(q.props.delay,1,ne.delay);e?R=setTimeout(function(){q.state.isVisible&&S()},e):S()}function s(){document.removeEventListener('mousemove',p),N=null}function l(){document.body.removeEventListener('mouseleave',n),document.removeEventListener('mousemove',_)}function d(e){!q.state.isEnabled||y(e)||(!q.state.isVisible&&(I=e),'click'===e.type&&!1!==q.props.hideOnClick&&q.state.isVisible?n():i(e))}function m(e){var t=ot(e.target,function(e){return e._tippy}),r=pt(e.target,Xe.POPPER)===q.popper,a=t===q.reference;r||a||ut(xt(q.popper),q.popper.getBoundingClientRect(),e,q.props)&&(l(),n())}function c(e){return y(e)?void 0:q.props.interactive?(document.body.addEventListener('mouseleave',n),void document.addEventListener('mousemove',_)):void n()}function f(e){if(e.target===q.reference){if(q.props.interactive){if(!e.relatedTarget)return;if(pt(e.relatedTarget,Xe.POPPER))return}n()}}function h(e){pt(e.target,q.props.target)&&i(e)}function b(e){pt(e.target,q.props.target)&&n()}function y(e){var t=-1<e.type.indexOf('touch'),r=ye&&Ct&&q.props.touchHold&&!t,a=Ct&&!q.props.touchHold&&t;return r||a}function u(){var e=q.popperChildren.tooltip,t=q.props.popperOptions,r=Xe['round'===q.props.arrowType?'ROUND_ARROW':'ARROW'],p=e.querySelector(r),o=ie({placement:q.props.placement},t||{},{modifiers:ie({},t?t.modifiers:{},{arrow:ie({element:r},t&&t.modifiers?t.modifiers.arrow:{}),flip:ie({enabled:q.props.flip,padding:q.props.distance+5,behavior:q.props.flipBehavior},t&&t.modifiers?t.modifiers.flip:{}),offset:ie({offset:q.props.offset},t&&t.modifiers?t.modifiers.offset:{})}),onCreate:function(){e.style[xt(q.popper)]=gt(q.props.distance,ne.distance),p&&q.props.arrowTransform&&ft(p,q.props.arrowTransform)},onUpdate:function(){var t=e.style;t.top='',t.bottom='',t.left='',t.right='',t[xt(q.popper)]=gt(q.props.distance,ne.distance),p&&q.props.arrowTransform&&ft(p,q.props.arrowTransform)}});return X||a(),new De(q.reference,q.popper,o)}function g(e){q.popperInstance?!x()&&(q.popperInstance.scheduleUpdate(),q.props.livePlacement&&q.popperInstance.enableEventListeners()):(q.popperInstance=u(),(!q.props.livePlacement||x())&&q.popperInstance.disableEventListeners()),q.popperInstance.reference=q.reference;var t=q.popperChildren.arrow;if(x()){t&&(t.style.margin='0');var r=Ve(q.props.delay,0,ne.delay);I.type&&p(r&&N?N:I)}else t&&(t.style.margin='');bt(q.popperInstance,e),q.props.appendTo.contains(q.popper)||(q.props.appendTo.appendChild(q.popper),q.props.onMount(q),q.state.isMounted=!0)}function x(){return q.props.followCursor&&!Ct&&'focus'!==I.type}function w(){We([q.popper],he?0:q.props.updateDuration);(function e(){q.popperInstance&&q.popperInstance.scheduleUpdate(),q.state.isMounted?requestAnimationFrame(e):We([q.popper],0)})()}function v(e,t){E(e,function(){!q.state.isVisible&&q.props.appendTo.contains(q.popper)&&t()})}function k(e,t){E(e,t)}function E(e,t){if(0===e)return t();var r=q.popperChildren.tooltip,a=function a(p){p.target===r&&(vt(r,'remove',a),t())};vt(r,'remove',B),vt(r,'add',a),B=a}function O(e,t,r){q.reference.addEventListener(e,t),r.push({eventType:e,handler:t})}function C(){M=q.props.trigger.trim().split(' ').reduce(function(e,t){return'manual'===t?e:(q.props.target?'mouseenter'===t?(O('mouseover',h,e),O('mouseout',b,e)):'focus'===t?(O('focusin',h,e),O('focusout',b,e)):'click'===t?O(t,h,e):void 0:(O(t,d,e),q.props.touchHold&&(O('touchstart',d,e),O('touchend',c,e)),'mouseenter'===t?O('mouseleave',c,e):'focus'===t?O(he?'focusout':'blur',f,e):void 0),e)},[])}function L(){M.forEach(function(e){var t=e.eventType,r=e.handler;q.reference.removeEventListener(t,r)})}function T(){clearTimeout(H),clearTimeout(R)}function A(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};Et(e,ne);var t=q.props,r=wt(q.reference,ie({},q.props,e,{performance:!0}));r.performance=Ot(e,'performance')?e.performance:t.performance,q.props=r,(Ot(e,'trigger')||Ot(e,'touchHold'))&&(L(),C()),Ot(e,'interactiveDebounce')&&(l(),_=kt(m,e.interactiveDebounce)),Qe(q.popper,t,r),q.popperChildren=Be(q.popper),q.popperInstance&&le.some(function(t){return Ot(e,t)})&&(q.popperInstance.destroy(),q.popperInstance=u(),!q.state.isVisible&&q.popperInstance.disableEventListeners(),q.props.followCursor&&N&&p(N))}function Y(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:Ve(q.props.duration,0,ne.duration[0]);return q.state.isDestroyed||!q.state.isEnabled||Ct&&!q.props.touch?void 0:q.reference.isVirtual||document.documentElement.contains(q.reference)?q.reference.hasAttribute('disabled')?void 0:z?void(z=!1):void(!1===q.props.onShow(q)||(q.popper.style.visibility='visible',q.state.isVisible=!0,We([q.popper,q.popperChildren.tooltip,q.popperChildren.backdrop],0),g(function(){q.state.isVisible&&(!x()&&q.popperInstance.update(),We([q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content],e),q.popperChildren.backdrop&&(q.popperChildren.content.style.transitionDelay=re(e/6)+'ms'),q.props.interactive&&q.reference.classList.add('tippy-active'),q.props.sticky&&w(),ht([q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content],'visible'),k(e,function(){0===q.props.updateDuration&&q.popperChildren.tooltip.classList.add('tippy-notransition'),q.props.interactive&&-1<['focus','click'].indexOf(I.type)&&it(q.popper),q.reference.setAttribute('aria-describedby',q.popper.id),q.props.onShown(q),q.state.isShown=!0}))}))):P()}function S(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:Ve(q.props.duration,1,ne.duration[1]);q.state.isDestroyed||!q.state.isEnabled||!1===q.props.onHide(q)||(0===q.props.updateDuration&&q.popperChildren.tooltip.classList.remove('tippy-notransition'),q.props.interactive&&q.reference.classList.remove('tippy-active'),q.popper.style.visibility='hidden',q.state.isVisible=!1,q.state.isShown=!1,We([q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content],e),ht([q.popperChildren.tooltip,q.popperChildren.backdrop,q.popperChildren.content],'hidden'),q.props.interactive&&!z&&-1<['focus','click'].indexOf(I.type)&&('focus'===I.type&&(z=!0),it(q.reference)),v(e,function(){W||s(),q.reference.removeAttribute('aria-describedby'),q.popperInstance.disableEventListeners(),q.props.appendTo.removeChild(q.popper),q.state.isMounted=!1,q.props.onHidden(q)}))}function P(e){q.state.isDestroyed||(q.state.isMounted&&S(0),L(),q.reference.removeEventListener('click',r),delete q.reference._tippy,q.props.target&&e&&Ne(q.reference.querySelectorAll(q.props.target)).forEach(function(e){return e._tippy&&e._tippy.destroy()}),q.popperInstance&&q.popperInstance.destroy(),X&&X.disconnect(),q.state.isDestroyed=!0)}var D=wt(e,t);if(!D.multiple&&e._tippy)return null;var X=null,I={},N=null,H=0,R=0,W=!1,B=function(){},M=[],z=!1,_=0<D.interactiveDebounce?kt(m,D.interactiveDebounce):m,F=Dt++,U=$e(F,D);U.addEventListener('mouseenter',function(e){q.props.interactive&&q.state.isVisible&&'mouseenter'===I.type&&i(e)}),U.addEventListener('mouseleave',function(e){q.props.interactive&&'mouseenter'===I.type&&0===q.props.interactiveDebounce&&ut(xt(U),U.getBoundingClientRect(),e,q.props)&&n()});var V=Be(U),q={id:F,reference:e,popper:U,popperChildren:V,popperInstance:null,props:D,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},clearDelayTimeouts:T,set:A,setContent:function(e){A({content:e})},show:Y,hide:S,enable:function(){q.state.isEnabled=!0},disable:function(){q.state.isEnabled=!1},destroy:P};return C(),e.addEventListener('click',r),D.lazy||(q.popperInstance=u(),q.popperInstance.disableEventListeners()),D.showOnInit&&i(),!D.a11y||D.target||Re(e)||e.setAttribute('tabindex','0'),e._tippy=q,U._tippy=q,q}function Q(e,t,r){Et(t,ne),Xt||(Z(),Xt=!0);var a=ie({},ne,t);Me(e)&&rt(e);var p=Fe(e),o=p[0],i=(r&&o?[o]:p).reduce(function(e,t){var r=t&&$(t,a);return r&&e.push(r),e},[]);return{targets:e,props:a,instances:i,destroyAll:function(){this.instances.forEach(function(e){e.destroy()}),this.instances=[]}}}for(var ee=Math.min,te=Math.floor,re=Math.round,ae=Math.max,pe='.tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{-webkit-perspective:700px;perspective:700px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none;line-height:1.4;max-width:calc(100% - 10px)}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(60deg);transform:translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(.5);transform:translateY(0) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(-60deg);transform:translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(.5);transform:translateY(0) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(-60deg);transform:translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(.5);transform:translateX(0) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(60deg);transform:translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(.5);transform:translateX(0) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;max-width:350px;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:\"\";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}',oe='3.3.0',ie=Object.assign||function(e){for(var t,r=1;r<arguments.length;r++)for(var a in t=arguments[r],t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},ne={a11y:!0,allowHTML:!0,animateFill:!0,animation:'shift-away',appendTo:function(){return document.body},arrow:!1,arrowTransform:'',arrowType:'sharp',content:'',delay:[0,20],distance:10,duration:[325,275],flip:!0,flipBehavior:'flip',followCursor:!1,hideOnClick:!0,inertia:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,lazy:!0,livePlacement:!0,maxWidth:'',multiple:!1,offset:0,onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},performance:!1,placement:'top',popperOptions:{},shouldPopperHideOnBlur:function(){return!0},showOnInit:!1,size:'regular',sticky:!1,target:'',theme:'dark',touch:!0,touchHold:!1,trigger:'mouseenter focus',updateDuration:200,wait:null,zIndex:9999},se=function(e){ne=ie({},ne,e)},le=['arrowType','distance','flip','flipBehavior','offset','placement','popperOptions'],de='undefined'!=typeof window,me=de?navigator:{},ce=de?window:{},fe=('MutationObserver'in ce),he=/MSIE |Trident\\//.test(me.userAgent),be=/iPhone|iPad|iPod/.test(me.platform)&&!ce.MSStream,ye=('ontouchstart'in ce),ue='undefined'!=typeof window&&'undefined'!=typeof document,ge=['Edge','Trident','Firefox'],xe=0,we=0;we<ge.length;we+=1)if(ue&&0<=navigator.userAgent.indexOf(ge[we])){xe=1;break}var i=ue&&window.Promise,ve=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},xe))}},ke=ue&&!!(window.MSInputMethodContext&&document.documentMode),Ee=ue&&/MSIE 10/.test(navigator.userAgent),Oe=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},Ce=function(){function e(e,t){for(var r,a=0;a<t.length;a++)r=t[a],r.enumerable=r.enumerable||!1,r.configurable=!0,'value'in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),Le=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},Te=Object.assign||function(e){for(var t,r=1;r<arguments.length;r++)for(var a in t=arguments[r],t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},Ae=ue&&/Firefox/i.test(navigator.userAgent),Ye=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],Se=Ye.slice(3),Pe={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},De=function(){function t(r,a){var p=this,o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};Oe(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(p.update)},this.update=ve(this.update.bind(this)),this.options=Te({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=r&&r.jquery?r[0]:r,this.popper=a&&a.jquery?a[0]:a,this.options.modifiers={},Object.keys(Te({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){p.options.modifiers[e]=Te({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return Te({name:e},p.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(p.reference,p.popper,p.options,t,p.state)}),this.update();var i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}return Ce(t,[{key:'update',value:function(){return P.call(this)}},{key:'destroy',value:function(){return I.call(this)}},{key:'enableEventListeners',value:function(){return W.call(this)}},{key:'disableEventListeners',value:function(){return M.call(this)}}]),t}();De.Utils=('undefined'==typeof window?global:window).PopperUtils,De.placements=Ye,De.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,r=t.split('-')[0],a=t.split('-')[1];if(a){var p=e.offsets,o=p.reference,i=p.popper,n=-1!==['bottom','top'].indexOf(r),s=n?'left':'top',l=n?'width':'height',d={start:Le({},s,o[s]),end:Le({},s,o[s]+o[l]-i[l])};e.offsets.popper=Te({},i,d[a])}return e}},offset:{order:200,enabled:!0,fn:J,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var r=t.boundariesElement||o(e.instance.popper);e.instance.reference===r&&(r=o(r));var a=X('transform'),p=e.instance.popper.style,i=p.top,n=p.left,s=p[a];p.top='',p.left='',p[a]='';var l=v(e.instance.popper,e.instance.reference,t.padding,r,e.positionFixed);p.top=i,p.left=n,p[a]=s,t.boundaries=l;var d=t.priority,m=e.offsets.popper,c={primary:function(e){var r=m[e];return m[e]<l[e]&&!t.escapeWithReference&&(r=ae(m[e],l[e])),Le({},e,r)},secondary:function(e){var r='right'===e?'left':'top',a=m[r];return m[e]>l[e]&&!t.escapeWithReference&&(a=ee(m[r],l[e]-('right'===e?m.width:m.height))),Le({},r,a)}};return d.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';m=Te({},m,c[t](e))}),e.offsets.popper=m,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,r=t.popper,a=t.reference,p=e.placement.split('-')[0],o=te,i=-1!==['top','bottom'].indexOf(p),n=i?'right':'bottom',s=i?'left':'top',l=i?'width':'height';return r[n]<o(a[s])&&(e.offsets.popper[s]=o(a[s])-r[l]),r[s]>o(a[n])&&(e.offsets.popper[s]=o(a[n])),e}},arrow:{order:500,enabled:!0,fn:function(e,r){var a;if(!V(e.instance.modifiers,'arrow','keepTogether'))return e;var p=r.element;if('string'==typeof p){if(p=e.instance.popper.querySelector(p),!p)return e;}else if(!e.instance.popper.contains(p))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var o=e.placement.split('-')[0],i=e.offsets,n=i.popper,s=i.reference,l=-1!==['left','right'].indexOf(o),d=l?'height':'width',m=l?'Top':'Left',c=m.toLowerCase(),f=l?'left':'top',h=l?'bottom':'right',y=C(p)[d];s[h]-y<n[c]&&(e.offsets.popper[c]-=n[c]-(s[h]-y)),s[c]+y>n[h]&&(e.offsets.popper[c]+=s[c]+y-n[h]),e.offsets.popper=b(e.offsets.popper);var u=s[c]+s[d]/2-y/2,g=t(e.instance.popper),x=parseFloat(g['margin'+m],10),w=parseFloat(g['border'+m+'Width'],10),v=u-e.offsets.popper[c]-x-w;return v=ae(ee(n[d]-y,v),0),e.arrowElement=p,e.offsets.arrow=(a={},Le(a,c,re(v)),Le(a,f,''),a),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(D(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var r=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),a=e.placement.split('-')[0],p=L(a),o=e.placement.split('-')[1]||'',i=[];switch(t.behavior){case Pe.FLIP:i=[a,p];break;case Pe.CLOCKWISE:i=j(a);break;case Pe.COUNTERCLOCKWISE:i=j(a,!0);break;default:i=t.behavior;}return i.forEach(function(n,s){if(a!==n||i.length===s+1)return e;a=e.placement.split('-')[0],p=L(a);var l=e.offsets.popper,d=e.offsets.reference,m=te,c='left'===a&&m(l.right)>m(d.left)||'right'===a&&m(l.left)<m(d.right)||'top'===a&&m(l.bottom)>m(d.top)||'bottom'===a&&m(l.top)<m(d.bottom),f=m(l.left)<m(r.left),h=m(l.right)>m(r.right),b=m(l.top)<m(r.top),y=m(l.bottom)>m(r.bottom),u='left'===a&&f||'right'===a&&h||'top'===a&&b||'bottom'===a&&y,g=-1!==['top','bottom'].indexOf(a),x=!!t.flipVariations&&(g&&'start'===o&&f||g&&'end'===o&&h||!g&&'start'===o&&b||!g&&'end'===o&&y);(c||u||x)&&(e.flipped=!0,(c||u)&&(a=i[s+1]),x&&(o=q(o)),e.placement=a+(o?'-'+o:''),e.offsets.popper=Te({},e.offsets.popper,T(e.instance.popper,e.offsets.reference,e.placement)),e=S(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,r=t.split('-')[0],a=e.offsets,p=a.popper,o=a.reference,i=-1!==['left','right'].indexOf(r),n=-1===['top','left'].indexOf(r);return p[i?'left':'top']=o[r]-(n?p[i?'width':'height']:0),e.placement=L(t),e.offsets.popper=b(p),e}},hide:{order:800,enabled:!0,fn:function(e){if(!V(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,r=A(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<r.top||t.left>r.right||t.top>r.bottom||t.right<r.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var r=t.x,a=t.y,p=e.offsets.popper,i=A(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==i&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var n=void 0===i?t.gpuAcceleration:i,s=o(e.instance.popper),l=u(s),d={position:p.position},m=U(e,2>window.devicePixelRatio||!Ae),c='bottom'===r?'top':'bottom',f='right'===a?'left':'right',h=X('transform'),b=void 0,y=void 0;if(y='bottom'==c?'HTML'===s.nodeName?-s.clientHeight+m.bottom:-l.height+m.bottom:m.top,b='right'==f?'HTML'===s.nodeName?-s.clientWidth+m.right:-l.width+m.right:m.left,n&&h)d[h]='translate3d('+b+'px, '+y+'px, 0)',d[c]=0,d[f]=0,d.willChange='transform';else{var g='bottom'==c?-1:1,x='right'==f?-1:1;d[c]=y*g,d[f]=b*x,d.willChange=c+', '+f}var w={\"x-placement\":e.placement};return e.attributes=Te({},w,e.attributes),e.styles=Te({},d,e.styles),e.arrowStyles=Te({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return _(e.instance.popper,e.styles),F(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&_(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,r,a,p){var o=O(p,t,e,r.positionFixed),i=E(r.placement,o,t,e,r.modifiers.flip.boundariesElement,r.modifiers.flip.padding);return t.setAttribute('x-placement',i),_(t,{position:r.positionFixed?'fixed':'absolute'}),r},gpuAcceleration:void 0}}};var Xe={POPPER:'.tippy-popper',TOOLTIP:'.tippy-tooltip',CONTENT:'.tippy-content',BACKDROP:'.tippy-backdrop',ARROW:'.tippy-arrow',ROUND_ARROW:'.tippy-roundarrow'},Ie={x:!0},Ne=function(e){return[].slice.call(e)},He=function(e,t){t.content instanceof Element?(_e(e,''),e.appendChild(t.content)):e[t.allowHTML?'innerHTML':'textContent']=t.content},Re=function(e){return!(e instanceof Element)||at.call(e,'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]')&&!e.hasAttribute('disabled')},We=function(e,t){e.filter(Boolean).forEach(function(e){e.style.transitionDuration=t+'ms'})},Be=function(e){var t=function(t){return e.querySelector(t)};return{tooltip:t(Xe.TOOLTIP),backdrop:t(Xe.BACKDROP),content:t(Xe.CONTENT),arrow:t(Xe.ARROW)||t(Xe.ROUND_ARROW)}},Me=function(e){return'[object Object]'==={}.toString.call(e)},ze=function(){return document.createElement('div')},_e=function(e,t){e[Ie.x&&'innerHTML']=t instanceof Element?t[Ie.x&&'innerHTML']:t},Fe=function(e){if(e instanceof Element||Me(e))return[e];if(e instanceof NodeList)return Ne(e);if(Array.isArray(e))return e;try{return Ne(document.querySelectorAll(e))}catch(t){return[]}},Ue=function(e){return!isNaN(e)&&!isNaN(parseFloat(e))},Ve=function(e,t,r){if(Array.isArray(e)){var a=e[t];return null==a?r:a}return e},qe=function(e){var t=ze();return'round'===e?(t.className='tippy-roundarrow',_e(t,'<svg viewBox=\"0 0 24 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 8s2.021-.015 5.253-4.218C9.584 2.051 10.797 1.007 12 1c1.203-.007 2.416 1.035 3.761 2.782C19.012 8.005 21 8 21 8H3z\"/></svg>')):t.className='tippy-arrow',t},je=function(){var e=ze();return e.className='tippy-backdrop',e.setAttribute('data-state','hidden'),e},Ke=function(e,t){e.setAttribute('tabindex','-1'),t.setAttribute('data-interactive','')},Ge=function(e,t){e.removeAttribute('tabindex'),t.removeAttribute('data-interactive')},Je=function(e){e.setAttribute('data-inertia','')},Ze=function(e){e.removeAttribute('data-inertia')},$e=function(e,t){var r=ze();r.className='tippy-popper',r.setAttribute('role','tooltip'),r.id='tippy-'+e,r.style.zIndex=t.zIndex;var a=ze();a.className='tippy-tooltip',a.style.maxWidth=t.maxWidth+('number'==typeof t.maxWidth?'px':''),a.setAttribute('data-size',t.size),a.setAttribute('data-animation',t.animation),a.setAttribute('data-state','hidden'),t.theme.split(' ').forEach(function(e){a.classList.add(e+'-theme')});var p=ze();return p.className='tippy-content',p.setAttribute('data-state','hidden'),t.interactive&&Ke(r,a),t.arrow&&a.appendChild(qe(t.arrowType)),t.animateFill&&(a.appendChild(je()),a.setAttribute('data-animatefill','')),t.inertia&&a.setAttribute('data-inertia',''),He(p,t),a.appendChild(p),r.appendChild(a),r.addEventListener('focusout',function(t){t.relatedTarget&&r._tippy&&!ot(t.relatedTarget,function(e){return e===r})&&t.relatedTarget!==r._tippy.reference&&r._tippy.props.shouldPopperHideOnBlur(t)&&r._tippy.hide()}),r},Qe=function(e,t,r){var a=Be(e),p=a.tooltip,o=a.content,i=a.backdrop,n=a.arrow;e.style.zIndex=r.zIndex,p.setAttribute('data-size',r.size),p.setAttribute('data-animation',r.animation),p.style.maxWidth=r.maxWidth+('number'==typeof r.maxWidth?'px':''),t.content!==r.content&&He(o,r),!t.animateFill&&r.animateFill?(p.appendChild(je()),p.setAttribute('data-animatefill','')):t.animateFill&&!r.animateFill&&(p.removeChild(i),p.removeAttribute('data-animatefill')),!t.arrow&&r.arrow?p.appendChild(qe(r.arrowType)):t.arrow&&!r.arrow&&p.removeChild(n),t.arrow&&r.arrow&&t.arrowType!==r.arrowType&&p.replaceChild(qe(r.arrowType),n),!t.interactive&&r.interactive?Ke(e,p):t.interactive&&!r.interactive&&Ge(e,p),!t.inertia&&r.inertia?Je(p):t.inertia&&!r.inertia&&Ze(p),t.theme!==r.theme&&(t.theme.split(' ').forEach(function(e){p.classList.remove(e+'-theme')}),r.theme.split(' ').forEach(function(e){p.classList.add(e+'-theme')}))},et=function(e){Ne(document.querySelectorAll(Xe.POPPER)).forEach(function(t){var r=t._tippy;r&&!0===r.props.hideOnClick&&(!e||t!==e.popper)&&r.hide()})},tt=function(e){return Object.keys(ne).reduce(function(t,r){var a=(e.getAttribute('data-tippy-'+r)||'').trim();return a?(t[r]='content'===r?a:'true'===a||'false'!==a&&(Ue(a)?+a:'['===a[0]||'{'===a[0]?JSON.parse(a):a),t):t},{})},rt=function(e){var t={isVirtual:!0,attributes:e.attributes||{},setAttribute:function(t,r){e.attributes[t]=r},getAttribute:function(t){return e.attributes[t]},removeAttribute:function(t){delete e.attributes[t]},hasAttribute:function(t){return t in e.attributes},addEventListener:function(){},removeEventListener:function(){},classList:{classNames:{},add:function(t){e.classList.classNames[t]=!0},remove:function(t){delete e.classList.classNames[t]},contains:function(t){return t in e.classList.classNames}}};for(var r in t)e[r]=t[r];return e},at=function(){if(de){var t=Element.prototype;return t.matches||t.matchesSelector||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector}}(),pt=function(e,t){return(Element.prototype.closest||function(e){for(var t=this;t;){if(at.call(t,e))return t;t=t.parentElement}}).call(e,t)},ot=function(e,t){for(;e;){if(t(e))return e;e=e.parentElement}},it=function(e){var t=window.scrollX||window.pageXOffset,r=window.scrollY||window.pageYOffset;e.focus(),scroll(t,r)},nt=function(e){void e.offsetHeight},st=function(e,t){return(t?e:{X:'Y',Y:'X'}[e])||''},lt=function(e,t,r,p){var o=t[0],i=t[1];if(!o&&!i)return'';var n={scale:function(){return i?r?o+', '+i:i+', '+o:''+o}(),translate:function(){return i?r?p?o+'px, '+-i+'px':o+'px, '+i+'px':p?-i+'px, '+o+'px':i+'px, '+o+'px':p?-o+'px':o+'px'}()};return n[e]},dt=function(e,t){var r=e.match(new RegExp(t+'([XY])'));return r?r[1]:''},mt=function(e,t){var r=e.match(t);return r?r[1].split(',').map(parseFloat):[]},ct={translate:/translateX?Y?\\(([^)]+)\\)/,scale:/scaleX?Y?\\(([^)]+)\\)/},ft=function(e,t){var r=xt(pt(e,Xe.POPPER)),a='top'===r||'bottom'===r,p='right'===r||'bottom'===r,o={translate:{axis:dt(t,'translate'),numbers:mt(t,ct.translate)},scale:{axis:dt(t,'scale'),numbers:mt(t,ct.scale)}},i=t.replace(ct.translate,'translate'+st(o.translate.axis,a)+'('+lt('translate',o.translate.numbers,a,p)+')').replace(ct.scale,'scale'+st(o.scale.axis,a)+'('+lt('scale',o.scale.numbers,a,p)+')');e.style['undefined'==typeof document.body.style.transform?'webkitTransform':'transform']=i},ht=function(e,t){e.filter(Boolean).forEach(function(e){e.setAttribute('data-state',t)})},bt=function(e,t){var r=e.popper,a=e.options,p=a.onCreate,o=a.onUpdate;a.onCreate=a.onUpdate=function(){nt(r),t(),o(),a.onCreate=p,a.onUpdate=o}},yt=function(e){setTimeout(e,1)},ut=function(e,t,r,a){if(!e)return!0;var p=r.clientX,o=r.clientY,i=a.interactiveBorder,n=a.distance,s=t.top-o>('top'===e?i+n:i),l=o-t.bottom>('bottom'===e?i+n:i),d=t.left-p>('left'===e?i+n:i),m=p-t.right>('right'===e?i+n:i);return s||l||d||m},gt=function(e,t){return-(e-t)+'px'},xt=function(e){var t=e.getAttribute('x-placement');return t?t.split('-')[0]:''},wt=function(e,t){var r=ie({},t,t.performance?{}:tt(e));return r.arrow&&(r.animateFill=!1),'function'==typeof r.appendTo&&(r.appendTo=t.appendTo(e)),'function'==typeof r.content&&(r.content=t.content(e)),r},vt=function(e,t,r){e[t+'EventListener']('transitionend',r)},kt=function(e,t){var r;return function(){var a=this,p=arguments;clearTimeout(r),r=setTimeout(function(){return e.apply(a,p)},t)}},Et=function(e,t){for(var r in e||{})if(!(r in t))throw Error('[tippy]: `'+r+'` is not a valid option')},Ot=function(e,t){return{}.hasOwnProperty.call(e,t)},Ct=!1,Lt=function(){Ct||(Ct=!0,be&&document.body.classList.add('tippy-iOS'),window.performance&&document.addEventListener('mousemove',At))},Tt=0,At=function e(){var t=performance.now();20>t-Tt&&(Ct=!1,document.removeEventListener('mousemove',e),!be&&document.body.classList.remove('tippy-iOS')),Tt=t},Yt=function(e){var t=e.target;if(!(t instanceof Element))return et();var r=pt(t,Xe.POPPER);if(!(r&&r._tippy&&r._tippy.props.interactive)){var a=ot(t,function(e){return e._tippy&&e._tippy.reference===e});if(a){var p=a._tippy,o=-1<p.props.trigger.indexOf('click');if(Ct||o)return et(p);if(!0!==p.props.hideOnClick||o)return;p.clearDelayTimeouts()}et()}},St=function(){var e=document,t=e.activeElement;t&&t.blur&&t._tippy&&t.blur()},Pt=function(){Ne(document.querySelectorAll(Xe.POPPER)).forEach(function(e){var t=e._tippy;t.props.livePlacement||t.popperInstance.scheduleUpdate()})},Dt=1,Xt=!1;Q.version=oe,Q.defaults=ne,Q.one=function(e,t){return Q(e,t,!0).instances[0]},Q.setDefaults=function(e){se(e),Q.defaults=ne},Q.disableAnimations=function(){Q.setDefaults({duration:0,updateDuration:0,animateFill:!1})},Q.hideAllPoppers=et,Q.useCapture=function(){};return de&&setTimeout(function(){Ne(document.querySelectorAll('[data-tippy]')).forEach(function(e){var t=e.getAttribute('data-tippy');t&&Q(e,{content:t})})}),function(e){if(fe){var t=document.createElement('style');t.type='text/css',t.textContent=e,document.head.insertBefore(t,document.head.firstChild)}}(pe),Q});\n//# sourceMappingURL=tippy.all.min.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import { Evented } from './evented.js';\nimport { Step } from './step.js';\nimport { Shepherd, Tour } from './tour.js';\n\nObject.assign(Shepherd, { Tour, Step, Evented });\n\nexport default Shepherd;\n","var baseSlice = require('./_baseSlice'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nmodule.exports = drop;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nmodule.exports = isElement;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n}\n","var assignValue = require('./_assignValue'),\n baseZipObject = require('./_baseZipObject');\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nmodule.exports = zipObject;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nmodule.exports = baseZipObject;\n","export const missingTippy = 'Using the attachment feature of Shepherd requires the Tippy.js library';\n","import { isFunction, isNumber, isString, isUndefined, isEmpty } from 'lodash';\nimport { Evented } from './evented.js';\nimport { Modal } from './modal.js';\nimport { Step } from './step.js';\nimport { bindMethods } from './bind.js';\nimport tippy from 'tippy.js';\nimport { defaults as tooltipDefaults } from './utils/tooltip-defaults';\n\nimport {\n cleanupSteps\n} from './utils/cleanup';\n\nimport {\n addStepEventListeners,\n cleanupStepEventListeners,\n getElementForStep\n} from './utils/dom';\n\nimport {\n toggleShepherdModalClass\n} from './utils/modal';\n\n/**\n * Creates incremented ID for each newly created tour\n *\n * @private\n * @return {Number} The unique id for the tour\n */\nconst uniqueId = (function() {\n let id = 0;\n return function() {\n return ++id;\n };\n})();\n\nconst Shepherd = new Evented();\n\n/**\n * Class representing the site tour\n * @extends {Evented}\n */\nexport class Tour extends Evented {\n /**\n * @param {Object} options The options for the tour\n * @param {Object} options.defaultStepOptions Default options for Steps created through `addStep`\n * @param {Step[]} options.steps An array of Step instances to initialize the tour with\n * @param {string} options.tourName An optional \"name\" for the tour. This will be appended to the the tour's\n * dynamically generated `id` property -- which is also set on the `body` element as the `data-shepherd-active-tour` attribute\n * whenever the tour becomes active.\n * @param {boolean} options.useModalOverlay Whether or not steps should be placed above a darkened\n * modal overlay. If true, the overlay will create an opening around the target element so that it\n * can remain interactive\n * @returns {Tour}\n */\n constructor(options = {}) {\n super(options);\n bindMethods.call(this, [\n 'back',\n 'cancel',\n 'complete',\n 'next'\n ]);\n this.options = options;\n this.steps = this.options.steps || [];\n\n // Pass these events onto the global Shepherd object\n const events = ['active', 'cancel', 'complete', 'inactive', 'show', 'start'];\n events.map((event) => {\n ((e) => {\n this.on(e, (opts) => {\n opts = opts || {};\n opts.tour = this;\n Shepherd.trigger(e, opts);\n });\n })(event);\n });\n\n this.modal = new Modal(options);\n\n this._setTooltipDefaults();\n this._setTourID();\n\n return this;\n }\n\n /**\n * Adds a new step to the tour\n * @param {Object|Number|Step|String} arg1\n * When arg2 is defined, arg1 can either be a string or number, to use for the `id` for the step\n * When arg2 is undefined, arg1 is either an object containing step options or a Step instance\n * @param {Object|Step} arg2 An object containing step options or a Step instance\n * @return {Step} The newly added step\n */\n addStep(arg1, arg2) {\n let name, step;\n\n // If we just have one argument, we can assume it is an object of step options, with an id\n if (isUndefined(arg2)) {\n step = arg1;\n } else {\n name = arg1;\n step = arg2;\n }\n\n if (!(step instanceof Step)) {\n step = this.setupStep(step, name);\n } else {\n step.tour = this;\n }\n\n this.steps.push(step);\n return step;\n }\n\n /**\n * Go to the previous step in the tour\n */\n back() {\n const index = this.steps.indexOf(this.currentStep);\n this.show(index - 1, false);\n }\n\n /**\n * Calls done() triggering the 'cancel' event\n * If `confirmCancel` is true, will show a window.confirm before cancelling\n */\n cancel() {\n if (this.options.confirmCancel) {\n const cancelMessage = this.options.confirmCancelMessage || 'Are you sure you want to stop the tour?';\n const stopTour = window.confirm(cancelMessage);\n if (stopTour) {\n this.done('cancel');\n }\n } else {\n this.done('cancel');\n }\n }\n\n /**\n * Calls done() triggering the `complete` event\n */\n complete() {\n this.done('complete');\n }\n\n /**\n * Called whenever the tour is cancelled or completed, basically anytime we exit the tour\n * @param {String} event The event name to trigger\n */\n done(event) {\n if (!isEmpty(this.steps)) {\n this.steps.forEach((step) => step.destroy());\n }\n\n cleanupStepEventListeners.call(this);\n cleanupSteps(this.tourObject);\n this.modal.cleanup();\n\n this.trigger(event);\n\n Shepherd.activeTour = null;\n this._removeBodyAttrs();\n this.trigger('inactive', { tour: this });\n }\n\n /**\n * Gets the step from a given id\n * @param {Number|String} id The id of the step to retrieve\n * @return {Step} The step corresponding to the `id`\n */\n getById(id) {\n return this.steps.find((step) => {\n return step.id === id;\n });\n }\n\n /**\n * Gets the current step\n * @returns {Step|null}\n */\n getCurrentStep() {\n return this.currentStep;\n }\n\n /**\n * Hide the current step\n */\n hide() {\n const currentStep = this.getCurrentStep();\n\n if (currentStep) {\n return currentStep.hide();\n }\n }\n\n isActive() {\n return Shepherd.activeTour === this;\n }\n\n /**\n * Go to the next step in the tour\n * If we are at the end, call `complete`\n */\n next() {\n const index = this.steps.indexOf(this.currentStep);\n\n if (index === this.steps.length - 1) {\n this.complete();\n } else {\n this.show(index + 1, true);\n }\n }\n\n /**\n * Removes the step from the tour\n * @param {String} name The id for the step to remove\n */\n removeStep(name) {\n const current = this.getCurrentStep();\n\n // Find the step, destroy it and remove it from this.steps\n this.steps.some((step, i) => {\n if (step.id === name) {\n if (step.isOpen()) {\n step.hide();\n }\n\n step.destroy();\n this.steps.splice(i, 1);\n\n return true;\n }\n });\n\n if (current && current.id === name) {\n this.currentStep = undefined;\n\n // If we have steps left, show the first one, otherwise just cancel the tour\n this.steps.length ? this.show(0) : this.cancel();\n }\n }\n\n /**\n * Setup a new step object\n * @param {Object} stepOptions The object describing the options for the step\n * @param {String|Number} name The string or number to use as the `id` for the step\n * @return {Step} The step instance\n */\n setupStep(stepOptions, name) {\n if (isString(name) || isNumber(name)) {\n stepOptions.id = name.toString();\n }\n\n stepOptions = Object.assign({}, this.options.defaultStepOptions, stepOptions);\n\n return new Step(this, stepOptions);\n }\n\n beforeShowStep(step) {\n this.modal.setupForStep(step);\n this._styleTargetElementForStep(step);\n }\n\n /**\n * Show a specific step in the tour\n * @param {Number|String} key The key to look up the step by\n * @param {Boolean} forward True if we are going forward, false if backward\n */\n show(key = 0, forward = true) {\n const step = isString(key) ? this.getById(key) : this.steps[key];\n\n if (step) {\n this._updateStateBeforeShow();\n\n const shouldSkipStep = isFunction(step.options.showOn) && !step.options.showOn();\n\n // If `showOn` returns false, we want to skip the step, otherwise, show the step like normal\n if (shouldSkipStep) {\n this._skipStep(step, forward);\n } else {\n this.trigger('show', {\n step,\n previous: this.currentStep\n });\n\n this.currentStep = step;\n step.show();\n }\n }\n }\n\n /**\n * Start the tour\n */\n start() {\n this.trigger('start');\n\n this.currentStep = null;\n this._setupActiveTour();\n addStepEventListeners.call(this);\n this.next();\n }\n\n /**\n * Make this tour \"active\"\n * @private\n */\n _setupActiveTour() {\n this._addBodyAttrs();\n this.trigger('active', { tour: this });\n\n Shepherd.activeTour = this;\n }\n\n /**\n * Modulates the styles of the passed step's target element, based on the step's options and\n * the tour's `modal` option, to visually emphasize the element\n *\n * @param step The step object that attaches to the element\n * @private\n */\n _styleTargetElementForStep(step) {\n const targetElement = getElementForStep(step);\n\n if (!targetElement) {\n return;\n }\n\n toggleShepherdModalClass(targetElement);\n\n if (step.options.highlightClass) {\n targetElement.classList.add(step.options.highlightClass);\n }\n\n if (step.options.canClickTarget === false) {\n targetElement.style.pointerEvents = 'none';\n }\n }\n\n /**\n * Called when `showOn` evaluates to false, to skip the step\n * @param {Step} step The step to skip\n * @param {Boolean} forward True if we are going forward, false if backward\n * @private\n */\n _skipStep(step, forward) {\n const index = this.steps.indexOf(step);\n const nextIndex = forward ? index + 1 : index - 1;\n this.show(nextIndex, forward);\n }\n\n _setTooltipDefaults() {\n tippy.setDefaults(tooltipDefaults);\n }\n\n _updateStateBeforeShow() {\n if (this.currentStep) {\n this.currentStep.hide();\n }\n\n if (!this.isActive()) {\n this._setupActiveTour();\n }\n }\n\n _setTourID() {\n const tourName = this.options.tourName || 'tour';\n const uuid = uniqueId();\n\n this.id = `${tourName}--${uuid}`;\n }\n\n _addBodyAttrs() {\n document.body.setAttribute('data-shepherd-active-tour', this.id);\n document.body.classList.add('shepherd-active');\n }\n\n _removeBodyAttrs() {\n document.body.removeAttribute('data-shepherd-active-tour');\n document.body.classList.remove('shepherd-active');\n }\n\n}\n\nexport { Shepherd };\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","import {\n getModalMaskOpening,\n createModalOverlay,\n positionModalOpening,\n closeModalOpening,\n classNames as modalClassNames\n} from './utils/modal';\nimport { addStepEventListeners, getElementForStep } from './utils/dom';\nimport { debounce, defer } from 'lodash';\n\nexport class Modal {\n constructor(options) {\n if (!this._modalOverlayElem) {\n this._modalOverlayElem = createModalOverlay();\n this._modalOverlayOpening = getModalMaskOpening(this._modalOverlayElem);\n\n // don't show yet -- each step will control that\n this.hide();\n\n document.body.appendChild(this._modalOverlayElem);\n }\n\n this.options = options;\n\n return this;\n }\n\n /**\n * Removes svg mask from modal overlay and removes classes for modal being visible\n */\n cleanup() {\n defer(() => {\n const element = this._modalOverlayElem;\n\n if (element && element instanceof SVGElement) {\n element.parentNode.removeChild(element);\n }\n\n this._modalOverlayElem = null;\n document.body.classList.remove(modalClassNames.isVisible);\n });\n }\n\n /**\n * Hide the modal overlay\n */\n hide() {\n document.body.classList.remove(modalClassNames.isVisible);\n\n if (this._modalOverlayElem) {\n this._modalOverlayElem.style.display = 'none';\n }\n }\n\n /**\n * If modal is enabled, setup the svg mask opening and modal overlay for the step\n * @param step\n */\n setupForStep(step) {\n if (this.options.useModalOverlay) {\n this._styleForStep(step);\n this.show();\n\n } else {\n this.hide();\n }\n }\n\n /**\n * Show the modal overlay\n */\n show() {\n document.body.classList.add(modalClassNames.isVisible);\n\n if (this._modalOverlayElem) {\n this._modalOverlayElem.style.display = 'block';\n }\n }\n\n /**\n * Style the modal for the step\n * @param {Step} step The step to style the opening for\n * @private\n */\n _styleForStep(step) {\n const modalOverlayOpening = this._modalOverlayOpening;\n const targetElement = getElementForStep(step);\n\n if (targetElement) {\n positionModalOpening(targetElement, modalOverlayOpening);\n\n this._onScreenChange = debounce(\n positionModalOpening.bind(this, targetElement, modalOverlayOpening),\n 0,\n { leading: false, trailing: true } // see https://lodash.com/docs/#debounce\n );\n\n addStepEventListeners.call(this);\n\n } else {\n closeModalOpening(this._modalOverlayOpening);\n }\n }\n}","var baseDelay = require('./_baseDelay'),\n baseRest = require('./_baseRest');\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nmodule.exports = defer;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nmodule.exports = baseDelay;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","export const defaults = {\n trigger: 'manual',\n arrow: true,\n arrowTransform: 'scale(2)',\n animation: 'fade',\n duration: 420,\n flip: true,\n animateFill: false, // https://atomiks.github.io/tippyjs/#animate-fill-option\n interactive: true, // https://atomiks.github.io/tippyjs/#interactive-option\n hideOnClick: 'toggle', // https://atomiks.github.io/tippyjs/#hide-on-click-option\n multiple: true // https://atomiks.github.io/tippyjs/#multiple-option\n};\n","import { preventModalBodyTouch } from './modal';\nimport { getElementForStep } from './dom';\n\n/**\n * Cleanup the steps and set pointerEvents back to 'auto'\n * @param tour The tour object\n */\nexport function cleanupSteps(tour) {\n if (tour) {\n const { steps } = tour;\n\n steps.forEach((step) => {\n if (step.options && step.options.canClickTarget === false && step.options.attachTo) {\n const stepElement = getElementForStep(step);\n\n if (stepElement instanceof HTMLElement) {\n stepElement.style.pointerEvents = 'auto';\n }\n }\n });\n }\n}\n\n/**\n * Remove resize and scroll event listeners\n */\nexport function cleanupStepEventListeners() {\n if (typeof this._onScreenChange === 'function') {\n window.removeEventListener('resize', this._onScreenChange, false);\n window.removeEventListener('scroll', this._onScreenChange, false);\n window.removeEventListener('touchmove', preventModalBodyTouch, false);\n\n this._onScreenChange = null;\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"file":"shepherd.js","sources":["../../node_modules/lodash-es/_baseSlice.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/toNumber.js","../../node_modules/lodash-es/toFinite.js","../../node_modules/lodash-es/toInteger.js","../../node_modules/lodash-es/drop.js","../../node_modules/lodash-es/isUndefined.js","../../src/js/evented.js","../../node_modules/lodash-es/_createBaseFor.js","../../node_modules/lodash-es/_baseFor.js","../../node_modules/lodash-es/_baseTimes.js","../../node_modules/lodash-es/_baseIsArguments.js","../../node_modules/lodash-es/isArguments.js","../../node_modules/lodash-es/isArray.js","../../node_modules/lodash-es/stubFalse.js","../../node_modules/lodash-es/isBuffer.js","../../node_modules/lodash-es/_isIndex.js","../../node_modules/lodash-es/isLength.js","../../node_modules/lodash-es/_baseIsTypedArray.js","../../node_modules/lodash-es/_baseUnary.js","../../node_modules/lodash-es/_nodeUtil.js","../../node_modules/lodash-es/isTypedArray.js","../../node_modules/lodash-es/_arrayLikeKeys.js","../../node_modules/lodash-es/_isPrototype.js","../../node_modules/lodash-es/_overArg.js","../../node_modules/lodash-es/_nativeKeys.js","../../node_modules/lodash-es/_baseKeys.js","../../node_modules/lodash-es/isFunction.js","../../node_modules/lodash-es/isArrayLike.js","../../node_modules/lodash-es/keys.js","../../node_modules/lodash-es/_baseForOwn.js","../../node_modules/lodash-es/identity.js","../../node_modules/lodash-es/_castFunction.js","../../node_modules/lodash-es/forOwn.js","../../node_modules/lodash-es/_getPrototype.js","../../node_modules/lodash-es/isPlainObject.js","../../node_modules/lodash-es/isElement.js","../../node_modules/lodash-es/_coreJsData.js","../../node_modules/lodash-es/_isMasked.js","../../node_modules/lodash-es/_toSource.js","../../node_modules/lodash-es/_baseIsNative.js","../../node_modules/lodash-es/_getValue.js","../../node_modules/lodash-es/_getNative.js","../../node_modules/lodash-es/_DataView.js","../../node_modules/lodash-es/_Map.js","../../node_modules/lodash-es/_Promise.js","../../node_modules/lodash-es/_Set.js","../../node_modules/lodash-es/_WeakMap.js","../../node_modules/lodash-es/_getTag.js","../../node_modules/lodash-es/isEmpty.js","../../node_modules/lodash-es/isString.js","../../node_modules/element-matches/index.js","../../node_modules/lodash-es/_defineProperty.js","../../node_modules/lodash-es/_baseAssignValue.js","../../node_modules/lodash-es/eq.js","../../node_modules/lodash-es/_assignValue.js","../../node_modules/lodash-es/_baseZipObject.js","../../node_modules/lodash-es/zipObject.js","../../node_modules/popper.js/dist/esm/popper.js","../../node_modules/tippy.js/dist/esm/tippy.standalone.js","../../src/js/utils/error-messages.js","../../src/js/utils.js","../../src/js/bind.js","../../src/js/step.js","../../src/js/browser.js","../../src/js/css.js","../../node_modules/lodash-es/isNumber.js","../../src/js/utils/modal.js","../../src/js/utils/dom.js","../../node_modules/lodash-es/now.js","../../node_modules/lodash-es/debounce.js","../../node_modules/lodash-es/_baseDelay.js","../../node_modules/lodash-es/_apply.js","../../node_modules/lodash-es/_overRest.js","../../node_modules/lodash-es/constant.js","../../node_modules/lodash-es/_baseSetToString.js","../../node_modules/lodash-es/_shortOut.js","../../node_modules/lodash-es/_setToString.js","../../node_modules/lodash-es/_baseRest.js","../../node_modules/lodash-es/defer.js","../../src/js/modal.js","../../src/js/utils/tooltip-defaults.js","../../src/js/utils/cleanup.js","../../src/js/tour.js","../../src/js/shepherd.js"],"sourcesContent":["/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import drop from 'lodash-es/drop';\nimport isUndefined from 'lodash-es/isUndefined';\n\nexport class Evented {\n on(event, handler, ctx) {\n const once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];\n\n if (isUndefined(this.bindings)) {\n this.bindings = {};\n }\n if (isUndefined(this.bindings[event])) {\n this.bindings[event] = [];\n }\n this.bindings[event].push({ handler, ctx, once });\n }\n\n once(event, handler, ctx) {\n this.on(event, handler, ctx, true);\n }\n\n off(event, handler) {\n if (isUndefined(this.bindings) || isUndefined(this.bindings[event])) {\n return false;\n }\n\n if (isUndefined(handler)) {\n delete this.bindings[event];\n } else {\n this.bindings[event].forEach((binding, index) => {\n if (binding.handler === handler) {\n this.bindings[event].splice(index, 1);\n }\n });\n }\n }\n\n trigger(event) {\n if (!isUndefined(this.bindings) && this.bindings[event]) {\n const args = drop(arguments);\n\n this.bindings[event].forEach((binding, index) => {\n const { ctx, handler, once } = binding;\n\n const context = ctx || this;\n\n handler.apply(context, args);\n\n if (once) {\n this.bindings[event].splice(index, 1);\n }\n });\n }\n }\n\n}\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n}\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nexport default baseZipObject;\n","import assignValue from './_assignValue.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nexport default zipObject;\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.6\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthOddness = reference.width % 2 === popper.width % 2;\n var bothOddWidth = reference.width % 2 === 1 && popper.width % 2 === 1;\n var noRound = function noRound(v) {\n return v;\n };\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthOddness ? Math.round : Math.floor;\n var verticalToInteger = !shouldRound ? noRound : Math.round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/*!\n* Tippy.js v3.4.1\n* (c) 2017-2019 atomiks\n* MIT\n*/\nimport Popper from 'popper.js';\n\nvar version = \"3.4.1\";\n\nvar isBrowser = typeof window !== 'undefined';\n\nvar nav = isBrowser ? navigator : {};\nvar win = isBrowser ? window : {};\n\n\nvar isIE = /MSIE |Trident\\//.test(nav.userAgent);\nvar isIOS = /iPhone|iPad|iPod/.test(nav.platform) && !win.MSStream;\nvar supportsTouch = 'ontouchstart' in win;\n\nvar Defaults = {\n a11y: true,\n allowHTML: true,\n animateFill: true,\n animation: 'shift-away',\n appendTo: function appendTo() {\n return document.body;\n },\n aria: 'describedby',\n arrow: false,\n arrowTransform: '',\n arrowType: 'sharp',\n autoFocus: true,\n boundary: 'scrollParent',\n content: '',\n delay: [0, 20],\n distance: 10,\n duration: [325, 275],\n flip: true,\n flipBehavior: 'flip',\n followCursor: false,\n hideOnClick: true,\n inertia: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n lazy: true,\n livePlacement: true,\n maxWidth: '',\n multiple: false,\n offset: 0,\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n\n performance: false,\n placement: 'top',\n popperOptions: {},\n shouldPopperHideOnBlur: function shouldPopperHideOnBlur() {\n return true;\n },\n showOnInit: false,\n size: 'regular',\n sticky: false,\n target: '',\n theme: 'dark',\n touch: true,\n touchHold: false,\n trigger: 'mouseenter focus',\n updateDuration: 200,\n wait: null,\n zIndex: 9999\n\n /**\n * If the set() method encounters one of these, the popperInstance must be\n * recreated\n */\n};var POPPER_INSTANCE_RELATED_PROPS = ['arrow', 'arrowType', 'distance', 'flip', 'flipBehavior', 'offset', 'placement', 'popperOptions'];\n\nvar Selectors = {\n POPPER: '.tippy-popper',\n TOOLTIP: '.tippy-tooltip',\n CONTENT: '.tippy-content',\n BACKDROP: '.tippy-backdrop',\n ARROW: '.tippy-arrow',\n ROUND_ARROW: '.tippy-roundarrow'\n};\n\nvar elementProto = isBrowser ? Element.prototype : {};\n\nvar matches = elementProto.matches || elementProto.matchesSelector || elementProto.webkitMatchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector;\n\n/**\n * Ponyfill for Array.from - converts iterable values to an array\n * @param {Array-like} value\n * @return {Array}\n */\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\n\n/**\n * Ponyfill for Element.prototype.closest\n * @param {Element} element\n * @param {String} parentSelector\n * @return {Element}\n */\nfunction closest(element, parentSelector) {\n return (elementProto.closest || function (selector) {\n var el = this;\n while (el) {\n if (matches.call(el, selector)) return el;\n el = el.parentElement;\n }\n }).call(element, parentSelector);\n}\n\n/**\n * Works like Element.prototype.closest, but uses a callback instead\n * @param {Element} element\n * @param {Function} callback\n * @return {Element}\n */\nfunction closestCallback(element, callback) {\n while (element) {\n if (callback(element)) return element;\n element = element.parentElement;\n }\n}\n\nvar PASSIVE = { passive: true };\nvar FF_EXTENSION_TRICK = { x: true };\n\n/**\n * Returns a new `div` element\n * @return {HTMLDivElement}\n */\nfunction div() {\n return document.createElement('div');\n}\n\n/**\n * Sets the innerHTML of an element while tricking linters & minifiers\n * @param {HTMLElement} el\n * @param {Element|String} html\n */\nfunction setInnerHTML(el, html) {\n el[FF_EXTENSION_TRICK.x && 'innerHTML'] = html instanceof Element ? html[FF_EXTENSION_TRICK.x && 'innerHTML'] : html;\n}\n\n/**\n * Sets the content of a tooltip\n * @param {HTMLElement} contentEl\n * @param {Object} props\n */\nfunction setContent(contentEl, props) {\n if (props.content instanceof Element) {\n setInnerHTML(contentEl, '');\n contentEl.appendChild(props.content);\n } else {\n contentEl[props.allowHTML ? 'innerHTML' : 'textContent'] = props.content;\n }\n}\n\n/**\n * Returns the child elements of a popper element\n * @param {HTMLElement} popper\n */\nfunction getChildren(popper) {\n return {\n tooltip: popper.querySelector(Selectors.TOOLTIP),\n backdrop: popper.querySelector(Selectors.BACKDROP),\n content: popper.querySelector(Selectors.CONTENT),\n arrow: popper.querySelector(Selectors.ARROW) || popper.querySelector(Selectors.ROUND_ARROW)\n };\n}\n\n/**\n * Adds `data-inertia` attribute\n * @param {HTMLElement} tooltip\n */\nfunction addInertia(tooltip) {\n tooltip.setAttribute('data-inertia', '');\n}\n\n/**\n * Removes `data-inertia` attribute\n * @param {HTMLElement} tooltip\n */\nfunction removeInertia(tooltip) {\n tooltip.removeAttribute('data-inertia');\n}\n\n/**\n * Creates an arrow element and returns it\n */\nfunction createArrowElement(arrowType) {\n var arrow = div();\n if (arrowType === 'round') {\n arrow.className = 'tippy-roundarrow';\n setInnerHTML(arrow, '<svg viewBox=\"0 0 24 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 8s2.021-.015 5.253-4.218C9.584 2.051 10.797 1.007 12 1c1.203-.007 2.416 1.035 3.761 2.782C19.012 8.005 21 8 21 8H3z\"/></svg>');\n } else {\n arrow.className = 'tippy-arrow';\n }\n return arrow;\n}\n\n/**\n * Creates a backdrop element and returns it\n */\nfunction createBackdropElement() {\n var backdrop = div();\n backdrop.className = 'tippy-backdrop';\n backdrop.setAttribute('data-state', 'hidden');\n return backdrop;\n}\n\n/**\n * Adds interactive-related attributes\n * @param {HTMLElement} popper\n * @param {HTMLElement} tooltip\n */\nfunction addInteractive(popper, tooltip) {\n popper.setAttribute('tabindex', '-1');\n tooltip.setAttribute('data-interactive', '');\n}\n\n/**\n * Removes interactive-related attributes\n * @param {HTMLElement} popper\n * @param {HTMLElement} tooltip\n */\nfunction removeInteractive(popper, tooltip) {\n popper.removeAttribute('tabindex');\n tooltip.removeAttribute('data-interactive');\n}\n\n/**\n * Applies a transition duration to a list of elements\n * @param {Array} els\n * @param {Number} value\n */\nfunction applyTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + 'ms';\n }\n });\n}\n\n/**\n * Add/remove transitionend listener from tooltip\n * @param {Element} tooltip\n * @param {String} action\n * @param {Function} listener\n */\nfunction toggleTransitionEndListener(tooltip, action, listener) {\n tooltip[action + 'EventListener']('transitionend', listener);\n}\n\n/**\n * Returns the popper's placement, ignoring shifting (top-start, etc)\n * @param {Element} popper\n * @return {String}\n */\nfunction getPopperPlacement(popper) {\n var fullPlacement = popper.getAttribute('x-placement');\n return fullPlacement ? fullPlacement.split('-')[0] : '';\n}\n\n/**\n * Sets the visibility state to elements so they can begin to transition\n * @param {Array} els\n * @param {String} state\n */\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\n\n/**\n * Triggers reflow\n * @param {Element} popper\n */\nfunction reflow(popper) {\n void popper.offsetHeight;\n}\n\n/**\n * Constructs the popper element and returns it\n * @param {Number} id\n * @param {Object} props\n */\nfunction createPopperElement(id, props) {\n var popper = div();\n popper.className = 'tippy-popper';\n popper.setAttribute('role', 'tooltip');\n popper.id = 'tippy-' + id;\n popper.style.zIndex = props.zIndex;\n\n var tooltip = div();\n tooltip.className = 'tippy-tooltip';\n tooltip.style.maxWidth = props.maxWidth + (typeof props.maxWidth === 'number' ? 'px' : '');\n tooltip.setAttribute('data-size', props.size);\n tooltip.setAttribute('data-animation', props.animation);\n tooltip.setAttribute('data-state', 'hidden');\n props.theme.split(' ').forEach(function (t) {\n tooltip.classList.add(t + '-theme');\n });\n\n var content = div();\n content.className = 'tippy-content';\n content.setAttribute('data-state', 'hidden');\n\n if (props.interactive) {\n addInteractive(popper, tooltip);\n }\n\n if (props.arrow) {\n tooltip.appendChild(createArrowElement(props.arrowType));\n }\n\n if (props.animateFill) {\n tooltip.appendChild(createBackdropElement());\n tooltip.setAttribute('data-animatefill', '');\n }\n\n if (props.inertia) {\n addInertia(tooltip);\n }\n\n setContent(content, props);\n\n tooltip.appendChild(content);\n popper.appendChild(tooltip);\n\n popper.addEventListener('focusout', function (e) {\n if (e.relatedTarget && popper._tippy && !closestCallback(e.relatedTarget, function (el) {\n return el === popper;\n }) && e.relatedTarget !== popper._tippy.reference && popper._tippy.props.shouldPopperHideOnBlur(e)) {\n popper._tippy.hide();\n }\n });\n\n return popper;\n}\n\n/**\n * Updates the popper element based on the new props\n * @param {HTMLElement} popper\n * @param {Object} prevProps\n * @param {Object} nextProps\n */\nfunction updatePopperElement(popper, prevProps, nextProps) {\n var _getChildren = getChildren(popper),\n tooltip = _getChildren.tooltip,\n content = _getChildren.content,\n backdrop = _getChildren.backdrop,\n arrow = _getChildren.arrow;\n\n popper.style.zIndex = nextProps.zIndex;\n tooltip.setAttribute('data-size', nextProps.size);\n tooltip.setAttribute('data-animation', nextProps.animation);\n tooltip.style.maxWidth = nextProps.maxWidth + (typeof nextProps.maxWidth === 'number' ? 'px' : '');\n\n if (prevProps.content !== nextProps.content) {\n setContent(content, nextProps);\n }\n\n // animateFill\n if (!prevProps.animateFill && nextProps.animateFill) {\n tooltip.appendChild(createBackdropElement());\n tooltip.setAttribute('data-animatefill', '');\n } else if (prevProps.animateFill && !nextProps.animateFill) {\n tooltip.removeChild(backdrop);\n tooltip.removeAttribute('data-animatefill');\n }\n\n // arrow\n if (!prevProps.arrow && nextProps.arrow) {\n tooltip.appendChild(createArrowElement(nextProps.arrowType));\n } else if (prevProps.arrow && !nextProps.arrow) {\n tooltip.removeChild(arrow);\n }\n\n // arrowType\n if (prevProps.arrow && nextProps.arrow && prevProps.arrowType !== nextProps.arrowType) {\n tooltip.replaceChild(createArrowElement(nextProps.arrowType), arrow);\n }\n\n // interactive\n if (!prevProps.interactive && nextProps.interactive) {\n addInteractive(popper, tooltip);\n } else if (prevProps.interactive && !nextProps.interactive) {\n removeInteractive(popper, tooltip);\n }\n\n // inertia\n if (!prevProps.inertia && nextProps.inertia) {\n addInertia(tooltip);\n } else if (prevProps.inertia && !nextProps.inertia) {\n removeInertia(tooltip);\n }\n\n // theme\n if (prevProps.theme !== nextProps.theme) {\n prevProps.theme.split(' ').forEach(function (theme) {\n tooltip.classList.remove(theme + '-theme');\n });\n nextProps.theme.split(' ').forEach(function (theme) {\n tooltip.classList.add(theme + '-theme');\n });\n }\n}\n\n/**\n * Runs the callback after the popper's position has been updated\n * update() is debounced with Promise.resolve() or setTimeout()\n * scheduleUpdate() is update() wrapped in requestAnimationFrame()\n * @param {Popper} popperInstance\n * @param {Function} callback\n */\nfunction afterPopperPositionUpdates(popperInstance, callback) {\n var popper = popperInstance.popper,\n options = popperInstance.options;\n var onCreate = options.onCreate,\n onUpdate = options.onUpdate;\n\n\n options.onCreate = options.onUpdate = function () {\n reflow(popper);\n callback();\n onUpdate();\n options.onCreate = onCreate;\n options.onUpdate = onUpdate;\n };\n}\n\n/**\n * Hides all visible poppers on the document, optionally excluding one\n * @param {Tippy} tippyInstanceToExclude\n */\nfunction hideAllPoppers(tippyInstanceToExclude) {\n arrayFrom(document.querySelectorAll(Selectors.POPPER)).forEach(function (popper) {\n var tip = popper._tippy;\n if (tip && tip.props.hideOnClick === true && (!tippyInstanceToExclude || popper !== tippyInstanceToExclude.popper)) {\n tip.hide();\n }\n });\n}\n\n/**\n * Determines if the mouse cursor is outside of the popper's interactive border\n * region\n * @param {String} popperPlacement\n * @param {Object} popperRect\n * @param {MouseEvent} event\n * @param {Object} props\n */\nfunction isCursorOutsideInteractiveBorder(popperPlacement, popperRect, event, props) {\n if (!popperPlacement) {\n return true;\n }\n\n var x = event.clientX,\n y = event.clientY;\n var interactiveBorder = props.interactiveBorder,\n distance = props.distance;\n\n\n var exceedsTop = popperRect.top - y > (popperPlacement === 'top' ? interactiveBorder + distance : interactiveBorder);\n\n var exceedsBottom = y - popperRect.bottom > (popperPlacement === 'bottom' ? interactiveBorder + distance : interactiveBorder);\n\n var exceedsLeft = popperRect.left - x > (popperPlacement === 'left' ? interactiveBorder + distance : interactiveBorder);\n\n var exceedsRight = x - popperRect.right > (popperPlacement === 'right' ? interactiveBorder + distance : interactiveBorder);\n\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\n}\n\n/**\n * Returns the distance offset, taking into account the default offset due to\n * the transform: translate() rule in CSS\n * @param {Number} distance\n * @param {Number} defaultDistance\n */\nfunction getOffsetDistanceInPx(distance, defaultDistance) {\n return -(distance - defaultDistance) + 'px';\n}\n\n/**\n * Determines if a value is a plain object\n * @param {any} value\n * @return {Boolean}\n */\nfunction isPlainObject(value) {\n return {}.toString.call(value) === '[object Object]';\n}\n\n/**\n * Safe .hasOwnProperty check, for prototype-less objects\n * @param {Object} obj\n * @param {String} key\n * @return {Boolean}\n */\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\n\n/**\n * Determines if a value is numeric\n * @param {any} value\n * @return {Boolean}\n */\nfunction isNumeric(value) {\n return !isNaN(value) && !isNaN(parseFloat(value));\n}\n\n/**\n * Returns an array of elements based on the value\n * @param {any} value\n * @return {Array}\n */\nfunction getArrayOfElements(value) {\n if (value instanceof Element || isPlainObject(value)) {\n return [value];\n }\n if (value instanceof NodeList) {\n return arrayFrom(value);\n }\n if (Array.isArray(value)) {\n return value;\n }\n\n try {\n return arrayFrom(document.querySelectorAll(value));\n } catch (e) {\n return [];\n }\n}\n\n/**\n * Returns a value at a given index depending on if it's an array or number\n * @param {any} value\n * @param {Number} index\n * @param {any} defaultValue\n */\nfunction getValue(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? defaultValue : v;\n }\n return value;\n}\n\n/**\n * Focuses an element while preventing a scroll jump if it's not within the\n * viewport\n * @param {Element} el\n */\nfunction focus(el) {\n var x = window.scrollX || window.pageXOffset;\n var y = window.scrollY || window.pageYOffset;\n el.focus();\n scroll(x, y);\n}\n\n/**\n * Defers a function's execution until the call stack has cleared\n * @param {Function} fn\n */\nfunction defer(fn) {\n setTimeout(fn, 1);\n}\n\n/**\n * Debounce utility\n * @param {Function} fn\n * @param {Number} ms\n */\nfunction debounce(fn, ms) {\n var timeoutId = void 0;\n return function () {\n var _this = this,\n _arguments = arguments;\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n return fn.apply(_this, _arguments);\n }, ms);\n };\n}\n\n/**\n * Prevents errors from being thrown while accessing nested modifier objects\n * in `popperOptions`\n * @param {Object} obj\n * @param {String} key\n * @return {Object|undefined}\n */\nfunction getModifier(obj, key) {\n return obj && obj.modifiers && obj.modifiers[key];\n}\n\n/**\n * Determines if an array or string includes a value\n * @param {Array|String} a\n * @param {any} b\n * @return {Boolean}\n */\nfunction includes(a, b) {\n return a.indexOf(b) > -1;\n}\n\nvar isUsingTouch = false;\n\nfunction onDocumentTouch() {\n if (isUsingTouch) {\n return;\n }\n\n isUsingTouch = true;\n\n if (isIOS) {\n document.body.classList.add('tippy-iOS');\n }\n\n if (window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n}\n\nvar lastMouseMoveTime = 0;\nfunction onDocumentMouseMove() {\n var now = performance.now();\n\n // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\n if (now - lastMouseMoveTime < 20) {\n isUsingTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n if (!isIOS) {\n document.body.classList.remove('tippy-iOS');\n }\n }\n\n lastMouseMoveTime = now;\n}\n\nfunction onDocumentClick(_ref) {\n var target = _ref.target;\n\n // Simulated events dispatched on the document\n if (!(target instanceof Element)) {\n return hideAllPoppers();\n }\n\n // Clicked on an interactive popper\n var popper = closest(target, Selectors.POPPER);\n if (popper && popper._tippy && popper._tippy.props.interactive) {\n return;\n }\n\n // Clicked on a reference\n var reference = closestCallback(target, function (el) {\n return el._tippy && el._tippy.reference === el;\n });\n if (reference) {\n var tip = reference._tippy;\n var isClickTrigger = includes(tip.props.trigger, 'click');\n\n if (isUsingTouch || isClickTrigger) {\n return hideAllPoppers(tip);\n }\n\n if (tip.props.hideOnClick !== true || isClickTrigger) {\n return;\n }\n\n tip.clearDelayTimeouts();\n }\n\n hideAllPoppers();\n}\n\nfunction onWindowBlur() {\n var _document = document,\n activeElement = _document.activeElement;\n\n if (activeElement && activeElement.blur && activeElement._tippy) {\n activeElement.blur();\n }\n}\n\nfunction onWindowResize() {\n arrayFrom(document.querySelectorAll(Selectors.POPPER)).forEach(function (popper) {\n var tippyInstance = popper._tippy;\n if (!tippyInstance.props.livePlacement) {\n tippyInstance.popperInstance.scheduleUpdate();\n }\n });\n}\n\n/**\n * Adds the needed global event listeners\n */\nfunction bindGlobalEventListeners() {\n document.addEventListener('click', onDocumentClick, true);\n document.addEventListener('touchstart', onDocumentTouch, PASSIVE);\n window.addEventListener('blur', onWindowBlur);\n window.addEventListener('resize', onWindowResize);\n\n if (!supportsTouch && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)) {\n document.addEventListener('pointerdown', onDocumentTouch);\n }\n}\n\nvar keys = Object.keys(Defaults);\n\n/**\n * Determines if an element can receive focus\n * @param {Element} el\n * @return {Boolean}\n */\nfunction canReceiveFocus(el) {\n return el instanceof Element ? matches.call(el, 'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]') && !el.hasAttribute('disabled') : true;\n}\n\n/**\n * Returns an object of optional props from data-tippy-* attributes\n * @param {Element} reference\n * @return {Object}\n */\nfunction getDataAttributeOptions(reference) {\n return keys.reduce(function (acc, key) {\n var valueAsString = (reference.getAttribute('data-tippy-' + key) || '').trim();\n\n if (!valueAsString) {\n return acc;\n }\n\n if (key === 'content') {\n acc[key] = valueAsString;\n } else if (valueAsString === 'true') {\n acc[key] = true;\n } else if (valueAsString === 'false') {\n acc[key] = false;\n } else if (isNumeric(valueAsString)) {\n acc[key] = Number(valueAsString);\n } else if (valueAsString[0] === '[' || valueAsString[0] === '{') {\n acc[key] = JSON.parse(valueAsString);\n } else {\n acc[key] = valueAsString;\n }\n\n return acc;\n }, {});\n}\n\n/**\n * Polyfills the virtual reference (plain object) with Element.prototype props\n * Mutating because DOM elements are mutated, adds `_tippy` property\n * @param {Object} virtualReference\n * @return {Object}\n */\nfunction polyfillElementPrototypeProperties(virtualReference) {\n var polyfills = {\n isVirtual: true,\n attributes: virtualReference.attributes || {},\n setAttribute: function setAttribute(key, value) {\n virtualReference.attributes[key] = value;\n },\n getAttribute: function getAttribute(key) {\n return virtualReference.attributes[key];\n },\n removeAttribute: function removeAttribute(key) {\n delete virtualReference.attributes[key];\n },\n hasAttribute: function hasAttribute(key) {\n return key in virtualReference.attributes;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n\n classList: {\n classNames: {},\n add: function add(key) {\n virtualReference.classList.classNames[key] = true;\n },\n remove: function remove(key) {\n delete virtualReference.classList.classNames[key];\n },\n contains: function contains(key) {\n return key in virtualReference.classList.classNames;\n }\n }\n };\n\n for (var key in polyfills) {\n virtualReference[key] = polyfills[key];\n }\n}\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Evaluates the props object\n * @param {Element} reference\n * @param {Object} props\n * @return {Object}\n */\nfunction evaluateProps(reference, props) {\n var out = _extends({}, props, props.performance ? {} : getDataAttributeOptions(reference));\n\n if (out.arrow) {\n out.animateFill = false;\n }\n\n if (typeof out.appendTo === 'function') {\n out.appendTo = props.appendTo(reference);\n }\n\n if (typeof out.content === 'function') {\n out.content = props.content(reference);\n }\n\n return out;\n}\n\n/**\n * Validates an object of options with the valid default props object\n * @param {Object} options\n * @param {Object} defaults\n */\nfunction validateOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults$$1 = arguments[1];\n\n Object.keys(options).forEach(function (option) {\n if (!hasOwnProperty(defaults$$1, option)) {\n throw new Error('[tippy]: `' + option + '` is not a valid option');\n }\n });\n}\n\n// =============================================================================\n// DEPRECATED\n// All of this code (for the `arrowTransform` option) will be removed in v4\n// =============================================================================\nvar TRANSFORM_NUMBER_RE = {\n translate: /translateX?Y?\\(([^)]+)\\)/,\n scale: /scaleX?Y?\\(([^)]+)\\)/\n\n /**\n * Transforms the x/y axis based on the placement\n */\n};function transformAxisBasedOnPlacement(axis, isVertical) {\n return (isVertical ? axis : {\n X: 'Y',\n Y: 'X'\n }[axis]) || '';\n}\n\n/**\n * Transforms the scale/translate numbers based on the placement\n */\nfunction transformNumbersBasedOnPlacement(type, numbers, isVertical, isReverse) {\n /**\n * Avoid destructuring because a large boilerplate function is generated\n * by Babel\n */\n var a = numbers[0];\n var b = numbers[1];\n\n if (!a && !b) {\n return '';\n }\n\n var transforms = {\n scale: function () {\n if (!b) {\n return '' + a;\n } else {\n return isVertical ? a + ', ' + b : b + ', ' + a;\n }\n }(),\n translate: function () {\n if (!b) {\n return isReverse ? -a + 'px' : a + 'px';\n } else {\n if (isVertical) {\n return isReverse ? a + 'px, ' + -b + 'px' : a + 'px, ' + b + 'px';\n } else {\n return isReverse ? -b + 'px, ' + a + 'px' : b + 'px, ' + a + 'px';\n }\n }\n }()\n };\n\n return transforms[type];\n}\n\n/**\n * Returns the axis for a CSS function (translate or scale)\n */\nfunction getTransformAxis(str, cssFunction) {\n var match = str.match(new RegExp(cssFunction + '([XY])'));\n return match ? match[1] : '';\n}\n\n/**\n * Returns the numbers given to the CSS function\n */\nfunction getTransformNumbers(str, regex) {\n var match = str.match(regex);\n return match ? match[1].split(',').map(function (n) {\n return parseFloat(n, 10);\n }) : [];\n}\n\n/**\n * Computes the arrow's transform so that it is correct for any placement\n */\nfunction computeArrowTransform(arrow, arrowTransform) {\n var placement = getPopperPlacement(closest(arrow, Selectors.POPPER));\n var isVertical = includes(['top', 'bottom'], placement);\n var isReverse = includes(['right', 'bottom'], placement);\n\n var matches$$1 = {\n translate: {\n axis: getTransformAxis(arrowTransform, 'translate'),\n numbers: getTransformNumbers(arrowTransform, TRANSFORM_NUMBER_RE.translate)\n },\n scale: {\n axis: getTransformAxis(arrowTransform, 'scale'),\n numbers: getTransformNumbers(arrowTransform, TRANSFORM_NUMBER_RE.scale)\n }\n };\n\n var computedTransform = arrowTransform.replace(TRANSFORM_NUMBER_RE.translate, 'translate' + transformAxisBasedOnPlacement(matches$$1.translate.axis, isVertical) + '(' + transformNumbersBasedOnPlacement('translate', matches$$1.translate.numbers, isVertical, isReverse) + ')').replace(TRANSFORM_NUMBER_RE.scale, 'scale' + transformAxisBasedOnPlacement(matches$$1.scale.axis, isVertical) + '(' + transformNumbersBasedOnPlacement('scale', matches$$1.scale.numbers, isVertical, isReverse) + ')');\n\n arrow.style[typeof document.body.style.transform !== 'undefined' ? 'transform' : 'webkitTransform'] = computedTransform;\n}\n\nvar idCounter = 1;\n\n/**\n * Creates and returns a Tippy object. We're using a closure pattern instead of\n * a class so that the exposed object API is clean without private members\n * prefixed with `_`.\n * @param {Element} reference\n * @param {Object} collectionProps\n * @return {Object} instance\n */\nfunction createTippy(reference, collectionProps) {\n var props = evaluateProps(reference, collectionProps);\n\n // If the reference shouldn't have multiple tippys, return null early\n if (!props.multiple && reference._tippy) {\n return null;\n }\n\n /* ======================= 🔒 Private members 🔒 ======================= */\n // The popper element's mutation observer\n var popperMutationObserver = null;\n\n // The last trigger event object that caused the tippy to show\n var lastTriggerEvent = {};\n\n // The last mousemove event object created by the document mousemove event\n var lastMouseMoveEvent = null;\n\n // Timeout created by the show delay\n var showTimeoutId = 0;\n\n // Timeout created by the hide delay\n var hideTimeoutId = 0;\n\n // Flag to determine if the tippy is preparing to show due to the show timeout\n var isPreparingToShow = false;\n\n // The current `transitionend` callback reference\n var transitionEndListener = function transitionEndListener() {};\n\n // Array of event listeners currently attached to the reference element\n var listeners = [];\n\n // Flag to determine if the reference was recently programmatically focused\n var referenceJustProgrammaticallyFocused = false;\n\n // Private onMouseMove handler reference, debounced or not\n var debouncedOnMouseMove = props.interactiveDebounce > 0 ? debounce(onMouseMove, props.interactiveDebounce) : onMouseMove;\n\n /* ======================= 🔑 Public members 🔑 ======================= */\n // id used for the `aria-describedby` / `aria-labelledby` attribute\n var id = idCounter++;\n\n // Popper element reference\n var popper = createPopperElement(id, props);\n\n // Prevent a tippy with a delay from hiding if the cursor left then returned\n // before it started hiding\n popper.addEventListener('mouseenter', function (event) {\n if (tip.props.interactive && tip.state.isVisible && lastTriggerEvent.type === 'mouseenter') {\n prepareShow(event);\n }\n });\n popper.addEventListener('mouseleave', function (event) {\n if (tip.props.interactive && lastTriggerEvent.type === 'mouseenter' && tip.props.interactiveDebounce === 0 && isCursorOutsideInteractiveBorder(getPopperPlacement(popper), popper.getBoundingClientRect(), event, tip.props)) {\n prepareHide();\n }\n });\n\n // Popper element children: { arrow, backdrop, content, tooltip }\n var popperChildren = getChildren(popper);\n\n // The state of the tippy\n var state = {\n // If the tippy is currently enabled\n isEnabled: true,\n // show() invoked, not currently transitioning out\n isVisible: false,\n // If the tippy has been destroyed\n isDestroyed: false,\n // If the tippy is on the DOM (transitioning out or in)\n isMounted: false,\n // show() transition finished\n isShown: false\n\n // Popper.js instance for the tippy is lazily created\n };var popperInstance = null;\n\n // 🌟 tippy instance\n var tip = {\n // properties\n id: id,\n reference: reference,\n popper: popper,\n popperChildren: popperChildren,\n popperInstance: popperInstance,\n props: props,\n state: state,\n // methods\n clearDelayTimeouts: clearDelayTimeouts,\n set: set$$1,\n setContent: setContent$$1,\n show: show,\n hide: hide,\n enable: enable,\n disable: disable,\n destroy: destroy\n };\n\n addTriggersToReference();\n\n reference.addEventListener('click', onReferenceClick);\n\n if (!props.lazy) {\n tip.popperInstance = createPopperInstance();\n tip.popperInstance.disableEventListeners();\n }\n\n if (props.showOnInit) {\n prepareShow();\n }\n\n // Ensure the reference element can receive focus (and is not a delegate)\n if (props.a11y && !props.target && !canReceiveFocus(reference)) {\n reference.setAttribute('tabindex', '0');\n }\n\n // Install shortcuts\n reference._tippy = tip;\n popper._tippy = tip;\n\n return tip;\n\n /* ======================= 🔒 Private methods 🔒 ======================= */\n /**\n * If the reference was clicked, it also receives focus\n */\n function onReferenceClick() {\n defer(function () {\n referenceJustProgrammaticallyFocused = false;\n });\n }\n\n /**\n * Ensure the popper's position stays correct if its dimensions change. Use\n * update() over .scheduleUpdate() so there is no 1 frame flash due to\n * async update\n */\n function addMutationObserver() {\n popperMutationObserver = new MutationObserver(function () {\n tip.popperInstance.update();\n });\n popperMutationObserver.observe(popper, {\n childList: true,\n subtree: true,\n characterData: true\n });\n }\n\n /**\n * Positions the virtual reference near the mouse cursor\n */\n function positionVirtualReferenceNearCursor(event) {\n var _lastMouseMoveEvent = lastMouseMoveEvent = event,\n clientX = _lastMouseMoveEvent.clientX,\n clientY = _lastMouseMoveEvent.clientY;\n\n if (!tip.popperInstance) {\n return;\n }\n\n // Ensure virtual reference is padded by 5px to prevent tooltip from\n // overflowing. Maybe Popper.js issue?\n var placement = getPopperPlacement(tip.popper);\n var padding = tip.popperChildren.arrow ? 20 : 5;\n var isVerticalPlacement = includes(['top', 'bottom'], placement);\n var isHorizontalPlacement = includes(['left', 'right'], placement);\n\n // Top / left boundary\n var x = isVerticalPlacement ? Math.max(padding, clientX) : clientX;\n var y = isHorizontalPlacement ? Math.max(padding, clientY) : clientY;\n\n // Bottom / right boundary\n if (isVerticalPlacement && x > padding) {\n x = Math.min(clientX, window.innerWidth - padding);\n }\n if (isHorizontalPlacement && y > padding) {\n y = Math.min(clientY, window.innerHeight - padding);\n }\n\n var rect = tip.reference.getBoundingClientRect();\n var followCursor = tip.props.followCursor;\n\n var isHorizontal = followCursor === 'horizontal';\n var isVertical = followCursor === 'vertical';\n\n tip.popperInstance.reference = {\n getBoundingClientRect: function getBoundingClientRect() {\n return {\n width: 0,\n height: 0,\n top: isHorizontal ? rect.top : y,\n bottom: isHorizontal ? rect.bottom : y,\n left: isVertical ? rect.left : x,\n right: isVertical ? rect.right : x\n };\n },\n clientWidth: 0,\n clientHeight: 0\n };\n\n tip.popperInstance.scheduleUpdate();\n\n if (followCursor === 'initial' && tip.state.isVisible) {\n removeFollowCursorListener();\n }\n }\n\n /**\n * Creates the tippy instance for a delegate when it's been triggered\n */\n function createDelegateChildTippy(event) {\n var targetEl = closest(event.target, tip.props.target);\n if (targetEl && !targetEl._tippy) {\n createTippy(targetEl, _extends({}, tip.props, {\n target: '',\n showOnInit: true\n }));\n prepareShow(event);\n }\n }\n\n /**\n * Setup before show() is invoked (delays, etc.)\n */\n function prepareShow(event) {\n clearDelayTimeouts();\n\n if (tip.state.isVisible) {\n return;\n }\n\n // Is a delegate, create an instance for the child target\n if (tip.props.target) {\n return createDelegateChildTippy(event);\n }\n\n isPreparingToShow = true;\n\n if (tip.props.wait) {\n return tip.props.wait(tip, event);\n }\n\n // If the tooltip has a delay, we need to be listening to the mousemove as\n // soon as the trigger event is fired, so that it's in the correct position\n // upon mount.\n // Edge case: if the tooltip is still mounted, but then prepareShow() is\n // called, it causes a jump.\n if (hasFollowCursorBehavior() && !tip.state.isMounted) {\n document.addEventListener('mousemove', positionVirtualReferenceNearCursor);\n }\n\n var delay = getValue(tip.props.delay, 0, Defaults.delay);\n\n if (delay) {\n showTimeoutId = setTimeout(function () {\n show();\n }, delay);\n } else {\n show();\n }\n }\n\n /**\n * Setup before hide() is invoked (delays, etc.)\n */\n function prepareHide() {\n clearDelayTimeouts();\n\n if (!tip.state.isVisible) {\n return removeFollowCursorListener();\n }\n\n isPreparingToShow = false;\n\n var delay = getValue(tip.props.delay, 1, Defaults.delay);\n\n if (delay) {\n hideTimeoutId = setTimeout(function () {\n if (tip.state.isVisible) {\n hide();\n }\n }, delay);\n } else {\n hide();\n }\n }\n\n /**\n * Removes the follow cursor listener\n */\n function removeFollowCursorListener() {\n document.removeEventListener('mousemove', positionVirtualReferenceNearCursor);\n lastMouseMoveEvent = null;\n }\n\n /**\n * Cleans up old listeners\n */\n function cleanupOldMouseListeners() {\n document.body.removeEventListener('mouseleave', prepareHide);\n document.removeEventListener('mousemove', debouncedOnMouseMove);\n }\n\n /**\n * Event listener invoked upon trigger\n */\n function onTrigger(event) {\n if (!tip.state.isEnabled || isEventListenerStopped(event)) {\n return;\n }\n\n if (!tip.state.isVisible) {\n lastTriggerEvent = event;\n }\n\n // Toggle show/hide when clicking click-triggered tooltips\n if (event.type === 'click' && tip.props.hideOnClick !== false && tip.state.isVisible) {\n prepareHide();\n } else {\n prepareShow(event);\n }\n }\n\n /**\n * Event listener used for interactive tooltips to detect when they should\n * hide\n */\n function onMouseMove(event) {\n var referenceTheCursorIsOver = closestCallback(event.target, function (el) {\n return el._tippy;\n });\n\n var isCursorOverPopper = closest(event.target, Selectors.POPPER) === tip.popper;\n var isCursorOverReference = referenceTheCursorIsOver === tip.reference;\n\n if (isCursorOverPopper || isCursorOverReference) {\n return;\n }\n\n if (isCursorOutsideInteractiveBorder(getPopperPlacement(tip.popper), tip.popper.getBoundingClientRect(), event, tip.props)) {\n cleanupOldMouseListeners();\n prepareHide();\n }\n }\n\n /**\n * Event listener invoked upon mouseleave\n */\n function onMouseLeave(event) {\n if (isEventListenerStopped(event)) {\n return;\n }\n\n if (tip.props.interactive) {\n document.body.addEventListener('mouseleave', prepareHide);\n document.addEventListener('mousemove', debouncedOnMouseMove);\n return;\n }\n\n prepareHide();\n }\n\n /**\n * Event listener invoked upon blur\n */\n function onBlur(event) {\n if (event.target !== tip.reference) {\n return;\n }\n\n if (tip.props.interactive) {\n if (!event.relatedTarget) {\n return;\n }\n if (closest(event.relatedTarget, Selectors.POPPER)) {\n return;\n }\n }\n\n prepareHide();\n }\n\n /**\n * Event listener invoked when a child target is triggered\n */\n function onDelegateShow(event) {\n if (closest(event.target, tip.props.target)) {\n prepareShow(event);\n }\n }\n\n /**\n * Event listener invoked when a child target should hide\n */\n function onDelegateHide(event) {\n if (closest(event.target, tip.props.target)) {\n prepareHide();\n }\n }\n\n /**\n * Determines if an event listener should stop further execution due to the\n * `touchHold` option\n */\n function isEventListenerStopped(event) {\n var isTouchEvent = includes(event.type, 'touch');\n var caseA = supportsTouch && isUsingTouch && tip.props.touchHold && !isTouchEvent;\n var caseB = isUsingTouch && !tip.props.touchHold && isTouchEvent;\n return caseA || caseB;\n }\n\n /**\n * Creates the popper instance for the tip\n */\n function createPopperInstance() {\n var popperOptions = tip.props.popperOptions;\n var _tip$popperChildren = tip.popperChildren,\n tooltip = _tip$popperChildren.tooltip,\n arrow = _tip$popperChildren.arrow;\n\n\n return new Popper(tip.reference, tip.popper, _extends({\n placement: tip.props.placement\n }, popperOptions, {\n modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, {\n preventOverflow: _extends({\n boundariesElement: tip.props.boundary\n }, getModifier(popperOptions, 'preventOverflow')),\n arrow: _extends({\n element: arrow,\n enabled: !!arrow\n }, getModifier(popperOptions, 'arrow')),\n flip: _extends({\n enabled: tip.props.flip,\n padding: tip.props.distance + 5 /* 5px from viewport boundary */\n , behavior: tip.props.flipBehavior\n }, getModifier(popperOptions, 'flip')),\n offset: _extends({\n offset: tip.props.offset\n }, getModifier(popperOptions, 'offset'))\n }),\n onCreate: function onCreate() {\n tooltip.style[getPopperPlacement(tip.popper)] = getOffsetDistanceInPx(tip.props.distance, Defaults.distance);\n\n if (arrow && tip.props.arrowTransform) {\n computeArrowTransform(arrow, tip.props.arrowTransform);\n }\n },\n onUpdate: function onUpdate() {\n var styles = tooltip.style;\n styles.top = '';\n styles.bottom = '';\n styles.left = '';\n styles.right = '';\n styles[getPopperPlacement(tip.popper)] = getOffsetDistanceInPx(tip.props.distance, Defaults.distance);\n\n if (arrow && tip.props.arrowTransform) {\n computeArrowTransform(arrow, tip.props.arrowTransform);\n }\n }\n }));\n }\n\n /**\n * Mounts the tooltip to the DOM, callback to show tooltip is run **after**\n * popper's position has updated\n */\n function mount(callback) {\n if (!tip.popperInstance) {\n tip.popperInstance = createPopperInstance();\n addMutationObserver();\n if (!tip.props.livePlacement || hasFollowCursorBehavior()) {\n tip.popperInstance.disableEventListeners();\n }\n } else {\n if (!hasFollowCursorBehavior()) {\n tip.popperInstance.scheduleUpdate();\n if (tip.props.livePlacement) {\n tip.popperInstance.enableEventListeners();\n }\n }\n }\n\n // If the instance previously had followCursor behavior, it will be\n // positioned incorrectly if triggered by `focus` afterwards.\n // Update the reference back to the real DOM element\n tip.popperInstance.reference = tip.reference;\n var arrow = tip.popperChildren.arrow;\n\n\n if (hasFollowCursorBehavior()) {\n if (arrow) {\n arrow.style.margin = '0';\n }\n var delay = getValue(tip.props.delay, 0, Defaults.delay);\n if (lastTriggerEvent.type) {\n positionVirtualReferenceNearCursor(delay && lastMouseMoveEvent ? lastMouseMoveEvent : lastTriggerEvent);\n }\n } else if (arrow) {\n arrow.style.margin = '';\n }\n\n afterPopperPositionUpdates(tip.popperInstance, callback);\n\n if (!tip.props.appendTo.contains(tip.popper)) {\n tip.props.appendTo.appendChild(tip.popper);\n tip.props.onMount(tip);\n tip.state.isMounted = true;\n }\n }\n\n /**\n * Determines if the instance is in `followCursor` mode\n */\n function hasFollowCursorBehavior() {\n return tip.props.followCursor && !isUsingTouch && lastTriggerEvent.type !== 'focus';\n }\n\n /**\n * Updates the tooltip's position on each animation frame + timeout\n */\n function makeSticky() {\n applyTransitionDuration([tip.popper], isIE ? 0 : tip.props.updateDuration);\n\n var updatePosition = function updatePosition() {\n if (tip.popperInstance) {\n tip.popperInstance.scheduleUpdate();\n }\n\n if (tip.state.isMounted) {\n requestAnimationFrame(updatePosition);\n } else {\n applyTransitionDuration([tip.popper], 0);\n }\n };\n\n updatePosition();\n }\n\n /**\n * Invokes a callback once the tooltip has fully transitioned out\n */\n function onTransitionedOut(duration, callback) {\n onTransitionEnd(duration, function () {\n if (!tip.state.isVisible && tip.props.appendTo.contains(tip.popper)) {\n callback();\n }\n });\n }\n\n /**\n * Invokes a callback once the tooltip has fully transitioned in\n */\n function onTransitionedIn(duration, callback) {\n onTransitionEnd(duration, callback);\n }\n\n /**\n * Invokes a callback once the tooltip's CSS transition ends\n */\n function onTransitionEnd(duration, callback) {\n // Make callback synchronous if duration is 0\n if (duration === 0) {\n return callback();\n }\n\n var tooltip = tip.popperChildren.tooltip;\n\n\n var listener = function listener(e) {\n if (e.target === tooltip) {\n toggleTransitionEndListener(tooltip, 'remove', listener);\n callback();\n }\n };\n\n toggleTransitionEndListener(tooltip, 'remove', transitionEndListener);\n toggleTransitionEndListener(tooltip, 'add', listener);\n\n transitionEndListener = listener;\n }\n\n /**\n * Adds an event listener to the reference and stores it in `listeners`\n */\n function on(eventType, handler) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n tip.reference.addEventListener(eventType, handler, options);\n listeners.push({ eventType: eventType, handler: handler, options: options });\n }\n\n /**\n * Adds event listeners to the reference based on the `trigger` prop\n */\n function addTriggersToReference() {\n if (tip.props.touchHold && !tip.props.target) {\n on('touchstart', onTrigger, PASSIVE);\n on('touchend', onMouseLeave, PASSIVE);\n }\n\n tip.props.trigger.trim().split(' ').forEach(function (eventType) {\n if (eventType === 'manual') {\n return;\n }\n\n if (!tip.props.target) {\n on(eventType, onTrigger);\n switch (eventType) {\n case 'mouseenter':\n on('mouseleave', onMouseLeave);\n break;\n case 'focus':\n on(isIE ? 'focusout' : 'blur', onBlur);\n break;\n }\n } else {\n switch (eventType) {\n case 'mouseenter':\n on('mouseover', onDelegateShow);\n on('mouseout', onDelegateHide);\n break;\n case 'focus':\n on('focusin', onDelegateShow);\n on('focusout', onDelegateHide);\n break;\n case 'click':\n on(eventType, onDelegateShow);\n break;\n }\n }\n });\n }\n\n /**\n * Removes event listeners from the reference\n */\n function removeTriggersFromReference() {\n listeners.forEach(function (_ref) {\n var eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n\n tip.reference.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n\n /* ======================= 🔑 Public methods 🔑 ======================= */\n /**\n * Enables the instance to allow it to show or hide\n */\n function enable() {\n tip.state.isEnabled = true;\n }\n\n /**\n * Disables the instance to disallow it to show or hide\n */\n function disable() {\n tip.state.isEnabled = false;\n }\n\n /**\n * Clears pending timeouts related to the `delay` prop if any\n */\n function clearDelayTimeouts() {\n clearTimeout(showTimeoutId);\n clearTimeout(hideTimeoutId);\n }\n\n /**\n * Sets new props for the instance and redraws the tooltip\n */\n function set$$1() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n validateOptions(options, Defaults);\n\n var prevProps = tip.props;\n var nextProps = evaluateProps(tip.reference, _extends({}, tip.props, options, {\n performance: true\n }));\n nextProps.performance = hasOwnProperty(options, 'performance') ? options.performance : prevProps.performance;\n tip.props = nextProps;\n\n if (hasOwnProperty(options, 'trigger') || hasOwnProperty(options, 'touchHold')) {\n removeTriggersFromReference();\n addTriggersToReference();\n }\n\n if (hasOwnProperty(options, 'interactiveDebounce')) {\n cleanupOldMouseListeners();\n debouncedOnMouseMove = debounce(onMouseMove, options.interactiveDebounce);\n }\n\n updatePopperElement(tip.popper, prevProps, nextProps);\n tip.popperChildren = getChildren(tip.popper);\n\n if (tip.popperInstance && POPPER_INSTANCE_RELATED_PROPS.some(function (prop) {\n return hasOwnProperty(options, prop);\n })) {\n tip.popperInstance.destroy();\n tip.popperInstance = createPopperInstance();\n if (!tip.state.isVisible) {\n tip.popperInstance.disableEventListeners();\n }\n if (tip.props.followCursor && lastMouseMoveEvent) {\n positionVirtualReferenceNearCursor(lastMouseMoveEvent);\n }\n }\n }\n\n /**\n * Shortcut for .set({ content: newContent })\n */\n function setContent$$1(content) {\n set$$1({ content: content });\n }\n\n /**\n * Shows the tooltip\n */\n function show() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(tip.props.duration, 0, Defaults.duration[0]);\n\n if (tip.state.isDestroyed || !tip.state.isEnabled || isUsingTouch && !tip.props.touch) {\n return;\n }\n\n // Destroy tooltip if the reference element is no longer on the DOM\n if (!tip.reference.isVirtual && !document.documentElement.contains(tip.reference)) {\n return destroy();\n }\n\n // Do not show tooltip if the reference element has a `disabled` attribute\n if (tip.reference.hasAttribute('disabled')) {\n return;\n }\n\n // If the reference was just programmatically focused for accessibility\n // reasons\n if (referenceJustProgrammaticallyFocused) {\n referenceJustProgrammaticallyFocused = false;\n return;\n }\n\n if (tip.props.onShow(tip) === false) {\n return;\n }\n\n tip.popper.style.visibility = 'visible';\n tip.state.isVisible = true;\n\n // Prevent a transition if the popper is at the opposite placement\n applyTransitionDuration([tip.popper, tip.popperChildren.tooltip, tip.popperChildren.backdrop], 0);\n\n mount(function () {\n if (!tip.state.isVisible) {\n return;\n }\n\n // Arrow will sometimes not be positioned correctly. Force another update\n if (!hasFollowCursorBehavior()) {\n tip.popperInstance.update();\n }\n\n applyTransitionDuration([tip.popperChildren.tooltip, tip.popperChildren.backdrop, tip.popperChildren.content], duration);\n if (tip.popperChildren.backdrop) {\n tip.popperChildren.content.style.transitionDelay = Math.round(duration / 6) + 'ms';\n }\n\n if (tip.props.interactive) {\n tip.reference.classList.add('tippy-active');\n }\n\n if (tip.props.sticky) {\n makeSticky();\n }\n\n setVisibilityState([tip.popperChildren.tooltip, tip.popperChildren.backdrop, tip.popperChildren.content], 'visible');\n\n onTransitionedIn(duration, function () {\n if (tip.props.updateDuration === 0) {\n tip.popperChildren.tooltip.classList.add('tippy-notransition');\n }\n\n if (tip.props.autoFocus && tip.props.interactive && includes(['focus', 'click'], lastTriggerEvent.type)) {\n focus(tip.popper);\n }\n\n if (tip.props.aria) {\n tip.reference.setAttribute('aria-' + tip.props.aria, tip.popper.id);\n }\n\n tip.props.onShown(tip);\n tip.state.isShown = true;\n });\n });\n }\n\n /**\n * Hides the tooltip\n */\n function hide() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(tip.props.duration, 1, Defaults.duration[1]);\n\n if (tip.state.isDestroyed || !tip.state.isEnabled) {\n return;\n }\n\n if (tip.props.onHide(tip) === false) {\n return;\n }\n\n if (tip.props.updateDuration === 0) {\n tip.popperChildren.tooltip.classList.remove('tippy-notransition');\n }\n\n if (tip.props.interactive) {\n tip.reference.classList.remove('tippy-active');\n }\n\n tip.popper.style.visibility = 'hidden';\n tip.state.isVisible = false;\n tip.state.isShown = false;\n\n applyTransitionDuration([tip.popperChildren.tooltip, tip.popperChildren.backdrop, tip.popperChildren.content], duration);\n\n setVisibilityState([tip.popperChildren.tooltip, tip.popperChildren.backdrop, tip.popperChildren.content], 'hidden');\n\n if (tip.props.autoFocus && tip.props.interactive && !referenceJustProgrammaticallyFocused && includes(['focus', 'click'], lastTriggerEvent.type)) {\n if (lastTriggerEvent.type === 'focus') {\n referenceJustProgrammaticallyFocused = true;\n }\n focus(tip.reference);\n }\n\n onTransitionedOut(duration, function () {\n if (!isPreparingToShow) {\n removeFollowCursorListener();\n }\n\n if (tip.props.aria) {\n tip.reference.removeAttribute('aria-' + tip.props.aria);\n }\n\n tip.popperInstance.disableEventListeners();\n\n tip.props.appendTo.removeChild(tip.popper);\n tip.state.isMounted = false;\n\n tip.props.onHidden(tip);\n });\n }\n\n /**\n * Destroys the tooltip\n */\n function destroy(destroyTargetInstances) {\n if (tip.state.isDestroyed) {\n return;\n }\n\n // If the popper is currently mounted to the DOM, we want to ensure it gets\n // hidden and unmounted instantly upon destruction\n if (tip.state.isMounted) {\n hide(0);\n }\n\n removeTriggersFromReference();\n\n tip.reference.removeEventListener('click', onReferenceClick);\n\n delete tip.reference._tippy;\n\n if (tip.props.target && destroyTargetInstances) {\n arrayFrom(tip.reference.querySelectorAll(tip.props.target)).forEach(function (child) {\n return child._tippy && child._tippy.destroy();\n });\n }\n\n if (tip.popperInstance) {\n tip.popperInstance.destroy();\n }\n\n if (popperMutationObserver) {\n popperMutationObserver.disconnect();\n }\n\n tip.state.isDestroyed = true;\n }\n}\n\nvar globalEventListenersBound = false;\n\n/**\n * Exported module\n * @param {String|Element|Element[]|NodeList|Object} targets\n * @param {Object} options\n * @param {Boolean} one\n * @return {Object}\n */\nfunction tippy$1(targets, options, one) {\n validateOptions(options, Defaults);\n\n if (!globalEventListenersBound) {\n bindGlobalEventListeners();\n globalEventListenersBound = true;\n }\n\n var props = _extends({}, Defaults, options);\n\n /**\n * If they are specifying a virtual positioning reference, we need to polyfill\n * some native DOM props\n */\n if (isPlainObject(targets)) {\n polyfillElementPrototypeProperties(targets);\n }\n\n var references = getArrayOfElements(targets);\n var firstReference = references[0];\n\n var instances = (one && firstReference ? [firstReference] : references).reduce(function (acc, reference) {\n var tip = reference && createTippy(reference, props);\n if (tip) {\n acc.push(tip);\n }\n return acc;\n }, []);\n\n var collection = {\n targets: targets,\n props: props,\n instances: instances,\n destroyAll: function destroyAll() {\n collection.instances.forEach(function (instance) {\n instance.destroy();\n });\n collection.instances = [];\n }\n };\n\n return collection;\n}\n\n/**\n * Static props\n */\ntippy$1.version = version;\ntippy$1.defaults = Defaults;\n\n/**\n * Static methods\n */\ntippy$1.one = function (targets, options) {\n return tippy$1(targets, options, true).instances[0];\n};\ntippy$1.setDefaults = function (partialDefaults) {\n Object.keys(partialDefaults).forEach(function (key) {\n Defaults[key] = partialDefaults[key];\n });\n};\ntippy$1.disableAnimations = function () {\n tippy$1.setDefaults({\n duration: 0,\n updateDuration: 0,\n animateFill: false\n });\n};\ntippy$1.hideAllPoppers = hideAllPoppers;\n// noop: deprecated static method as capture phase is now default\ntippy$1.useCapture = function () {};\n\n/**\n * Auto-init tooltips for elements with a `data-tippy=\"...\"` attribute\n */\nvar autoInit = function autoInit() {\n arrayFrom(document.querySelectorAll('[data-tippy]')).forEach(function (el) {\n var content = el.getAttribute('data-tippy');\n if (content) {\n tippy$1(el, { content: content });\n }\n });\n};\nif (isBrowser) {\n setTimeout(autoInit);\n}\n\nexport default tippy$1;\n//# sourceMappingURL=tippy.standalone.js.map\n","export const missingTippy = 'Using the attachment feature of Shepherd requires the Tippy.js library';\n","import isObjectLike from 'lodash-es/isObjectLike';\nimport isString from 'lodash-es/isString';\nimport isUndefined from 'lodash-es/isUndefined';\nimport zipObject from 'lodash-es/zipObject';\nimport tippy from 'tippy.js';\nimport { missingTippy } from './utils/error-messages';\n\nconst centeredStylePopperModifier = {\n computeStyle: {\n enabled: true,\n fn(data) {\n data.styles = Object.assign({}, data.styles, {\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)'\n });\n\n return data;\n }\n }\n};\n\n// Used to compose settings for tippyOptions.popperOptions (https://atomiks.github.io/tippyjs/#popper-options-option)\nconst defaultPopperOptions = {\n positionFixed: true\n};\n\n/**\n * TODO rewrite the way items are being added to use more performant documentFragment code\n * @param html\n * @return {HTMLElement} The element created from the passed HTML string\n */\nexport function createFromHTML(html) {\n const el = document.createElement('div');\n el.innerHTML = html;\n return el.children[0];\n}\n\n/**\n * Parse the position object or string to return the attachment and element to attach to\n * @param {Object|String} position Either a string or object denoting the selector and position for attachment\n * @return {Object} The object with `element` and `on` for the step\n * @private\n */\nexport function _parseAttachToOpts(opts) {\n if (isObjectLike(opts)) {\n if (opts.hasOwnProperty('element') && opts.hasOwnProperty('on')) {\n return opts;\n }\n return null;\n }\n\n const positionRe = /^(.+) ((auto|top|left|right|bottom)(-start|-end)?)$/;\n const matches = positionRe.exec(opts);\n\n if (!matches) {\n return null;\n }\n\n return {\n element: matches[1],\n on: matches[2]\n };\n}\n\n/**\n * @param obj\n * @param {Array} props\n * @return {*}\n */\nexport function parseShorthand(obj, props) {\n if (obj === null || isUndefined(obj)) {\n return obj;\n } else if (isObjectLike(obj)) {\n return obj;\n }\n\n const values = obj.split(' ');\n return zipObject(props, values);\n}\n\n/**\n * Determines options for the tooltip and initializes\n * `this.tooltip` as a Tippy.js instance.\n */\nexport function setupTooltip() {\n if (isUndefined(tippy)) {\n throw new Error(missingTippy);\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n\n const attachToOpts = this.parseAttachTo();\n\n this.tooltip = _makeTippyInstance.call(this, attachToOpts);\n\n this.target = attachToOpts.element || document.body;\n\n this.el.classList.add('shepherd-element');\n}\n\n/**\n * Passes `options.attachTo` to `_parseAttachToOpts` to get the correct `attachTo` format\n * @returns {({} & {element, on}) | ({})}\n * `element` is a qualified HTML Element\n * `on` is a string position value\n */\nexport function parseAttachTo() {\n const options = _parseAttachToOpts(this.options.attachTo) || {};\n const returnOpts = Object.assign({}, options);\n\n if (isString(options.element)) {\n // Can't override the element in user opts reference because we can't\n // guarantee that the element will exist in the future.\n try {\n returnOpts.element = document.querySelector(options.element);\n } catch(e) {\n // TODO\n }\n if (!returnOpts.element) {\n console.error(`The element for this Shepherd step was not found ${options.element}`);\n }\n }\n\n return returnOpts;\n}\n\n/**\n * Generates a `Tippy` instance from a set of base `attachTo` options\n *\n * @return {tippy} The final tippy instance\n * @private\n */\nfunction _makeTippyInstance(attachToOptions) {\n if (!attachToOptions.element) {\n return _makeCenteredTippy.call(this);\n }\n\n const tippyOptions = _makeAttachedTippyOptions.call(this, attachToOptions);\n\n return tippy.one(attachToOptions.element, tippyOptions);\n}\n\n/**\n * Generates the hash of options that will be passed to `Tippy` instances\n * target an element in the DOM.\n *\n * @param {Object} attachToOptions The local `attachTo` options\n * @return {Object} The final tippy options object\n * @private\n */\nfunction _makeAttachedTippyOptions(attachToOptions) {\n const resultingTippyOptions = {\n content: this.el,\n placement: attachToOptions.on || 'right',\n ...this.options.tippyOptions\n };\n\n if (this.options.tippyOptions && this.options.tippyOptions.popperOptions) {\n Object.assign(defaultPopperOptions, this.options.tippyOptions.popperOptions);\n }\n\n resultingTippyOptions.popperOptions = defaultPopperOptions;\n\n return resultingTippyOptions;\n}\n\n/**\n * Generates a `Tippy` instance for a tooltip that doesn't have a\n * target element in the DOM -- and thus is positioned in the center\n * of the view\n *\n * @return {tippy} The final tippy instance\n * @private\n */\nfunction _makeCenteredTippy() {\n const tippyOptions = {\n content: this.el,\n placement: 'top',\n ...this.options.tippyOptions\n };\n\n tippyOptions.arrow = false;\n tippyOptions.popperOptions = tippyOptions.popperOptions || {};\n\n const finalPopperOptions = Object.assign(\n {},\n defaultPopperOptions,\n tippyOptions.popperOptions,\n {\n modifiers: Object.assign(\n centeredStylePopperModifier,\n tippyOptions.popperOptions.modifiers\n )\n }\n );\n\n tippyOptions.popperOptions = finalPopperOptions;\n\n return tippy.one(document.body, tippyOptions);\n}\n","import { parseShorthand } from './utils.js';\nimport forOwn from 'lodash-es/forOwn';\nimport isString from 'lodash-es/isString';\nimport isUndefined from 'lodash-es/isUndefined';\n\n/**\n * Sets up the handler to determine if we should advance the tour\n * @private\n */\nfunction _setupAdvanceOnHandler(selector) {\n return (event) => {\n if (this.isOpen()) {\n const targetIsEl = this.el && event.target === this.el;\n const targetIsSelector = !isUndefined(selector) && event.target.matches(selector);\n\n if (targetIsSelector || targetIsEl) {\n this.tour.next();\n }\n }\n };\n}\n\n/**\n * Bind the event handler for advanceOn\n */\nexport function bindAdvance() {\n // An empty selector matches the step element\n const { event, selector } = parseShorthand(this.options.advanceOn, ['selector', 'event']);\n const handler = _setupAdvanceOnHandler.call(this, selector);\n\n // TODO: this should also bind/unbind on show/hide\n const el = document.querySelector(selector);\n if (!isUndefined(selector) && el) {\n el.addEventListener(event, handler);\n } else {\n document.body.addEventListener(event, handler, true);\n }\n this.on('destroy', () => {\n return document.body.removeEventListener(event, handler, true);\n });\n}\n\n/**\n * Bind events to the buttons for next, back, etc\n * @param {Object} cfg An object containing the config options for the button\n * @param {HTMLElement} el The element for the button\n */\nexport function bindButtonEvents(cfg, el) {\n cfg.events = cfg.events || {};\n if (!isUndefined(cfg.action)) {\n // Including both a click event and an action is not supported\n cfg.events.click = cfg.action;\n }\n\n forOwn(cfg.events, (handler, event) => {\n if (isString(handler)) {\n const page = handler;\n handler = () => this.tour.show(page);\n }\n el.dataset.buttonEvent = true;\n el.addEventListener(event, handler);\n\n // Cleanup event listeners on destroy\n this.on('destroy', () => {\n el.removeAttribute('data-button-event');\n el.removeEventListener(event, handler);\n });\n });\n}\n\n/**\n * Add a click listener to the cancel link that cancels the tour\n * @param {HTMLElement} link The cancel link element\n */\nexport function bindCancelLink(link) {\n link.addEventListener('click', (e) => {\n e.preventDefault();\n this.cancel();\n });\n}\n\n/**\n * Take an array of strings and look up methods by name, then bind them to `this`\n * @param {String[]} methods The names of methods to bind\n */\nexport function bindMethods(methods) {\n methods.map((method) => {\n this[method] = this[method].bind(this);\n });\n}\n","import forOwn from 'lodash-es/forOwn';\nimport isElement from 'lodash-es/isElement';\nimport isEmpty from 'lodash-es/isEmpty';\nimport isFunction from 'lodash-es/isFunction';\nimport isString from 'lodash-es/isString';\nimport isUndefined from 'lodash-es/isUndefined';\nimport { Evented } from './evented.js';\nimport 'element-matches';\nimport { bindAdvance, bindButtonEvents, bindCancelLink, bindMethods } from './bind.js';\nimport { createFromHTML, setupTooltip, parseAttachTo } from './utils.js';\n\n/**\n * Creates incremented ID for each newly created step\n *\n * @private\n * @return {Number} The unique id for the step\n */\nconst uniqueId = (function() {\n let id = 0;\n return function() {\n return ++id;\n };\n})();\n\n/**\n * Class representing steps to be added to a tour\n * @extends {Evented}\n */\nexport class Step extends Evented {\n /**\n * Create a step\n * @param {Tour} tour The tour for the step\n * @param {Object} options The options for the step\n * @param {Object|string} options.attachTo What element the step should be attached to on the page.\n * It can either be a string of the form \"element on\", or an object with those properties.\n * For example: \".some #element left\", or {element: '.some #element', on: 'left'}.\n * If you use the object syntax, element can also be a DOM element. If you don’t specify an attachTo the\n * element will appear in the middle of the screen.\n * @param {HTMLElement|string} options.attachTo.element\n * @param {string} options.attachTo.on\n * @param {Object|string} options.advanceOn An action on the page which should advance shepherd to the next step.\n * It can be of the form `\"selector event\"`, or an object with those properties.\n * For example: `\".some-element click\"`, or `{selector: '.some-element', event: 'click'}`.\n * It doesn’t have to be an event inside the tour, it can be any event fired on any element on the page.\n * You can also always manually advance the Tour by calling `myTour.next()`.\n * @param {function} options.beforeShowPromise A function that returns a promise.\n * When the promise resolves, the rest of the `show` code for the step will execute.\n * @param {Object[]} options.buttons An array of buttons to add to the step. These will be rendered in a\n * footer below the main body text.\n * @param {function} options.buttons.button.action A function executed when the button is clicked on\n * @param {string} options.buttons.button.classes Extra classes to apply to the `<a>`\n * @param {Object} options.buttons.button.events A hash of events to bind onto the button, for example\n * `{'mouseover': function(){}}`. Adding a `click` event to events when you already have an `action` specified is not supported.\n * You can use events to skip steps or navigate to specific steps, with something like:\n * ```js\n * events: {\n * click: function() {\n * return Shepherd.activeTour.show('some_step_name');\n * }\n * }\n * ```\n * @param {string} options.buttons.button.text The HTML text of the button\n * @param {string} options.classes A string of extra classes to add to the step's content element.\n * @param {string} options.highlightClass An extra class to apply to the `attachTo` element when it is\n * highlighted (that is, when its step is active). You can then target that selector in your CSS.\n * @param {Object} options.tippyOptions Extra [options to pass to tippy.js]{@link https://atomiks.github.io/tippyjs/#all-options}\n * @param {boolean} options.scrollTo Should the element be scrolled to when this step is shown?\n * @param {function} options.scrollToHandler A function that lets you override the default scrollTo behavior and\n * define a custom action to do the scrolling, and possibly other logic.\n * @param {boolean} options.showCancelLink Should a cancel “✕” be shown in the header of the step?\n * @param {function} options.showOn A function that, when it returns `true`, will show the step.\n * If it returns false, the step will be skipped.\n * @param {string} options.text The text in the body of the step. It can be one of four types:\n * ```\n * - HTML string\n * - Array of HTML strings\n * - `HTMLElement` object\n * - `Function` to be executed when the step is built. It must return one of the three options above.\n * ```\n * @param {string} options.title The step's title. It becomes an `h3` at the top of the step.\n * @param {Object} options.when You can define `show`, `hide`, etc events inside `when`. For example:\n * ```js\n * when: {\n * show: function() {\n * window.scrollTo(0, 0);\n * }\n * }\n * ```\n * @return {Step} The newly created Step instance\n */\n constructor(tour, options) {\n super(tour, options);\n this.tour = tour;\n bindMethods.call(this, [\n '_show',\n 'cancel',\n 'complete',\n 'destroy',\n 'hide',\n 'isOpen',\n 'scrollTo',\n 'setupElements',\n 'show'\n ]);\n this.setOptions(options);\n this.bindAdvance = bindAdvance.bind(this);\n this.bindButtonEvents = bindButtonEvents.bind(this);\n this.bindCancelLink = bindCancelLink.bind(this);\n this.setupTooltip = setupTooltip.bind(this);\n this.parseAttachTo = parseAttachTo.bind(this);\n\n return this;\n }\n\n /**\n * Adds buttons to the step as passed into options\n *\n * @private\n * @param {HTMLElement} content The element for the step, to append the footer with buttons to\n */\n _addButtons(content) {\n if (!isEmpty(this.options.buttons)) {\n const footer = document.createElement('footer');\n const buttons = createFromHTML('<ul class=\"shepherd-buttons\"></ul>');\n\n footer.classList.add('shepherd-footer');\n\n this.options.buttons.map((cfg) => {\n const button = createFromHTML(`<li><a class=\"shepherd-button ${cfg.classes || ''}\">${cfg.text}</a>`);\n buttons.appendChild(button);\n this.bindButtonEvents(cfg, button.querySelector('a'));\n });\n\n footer.appendChild(buttons);\n content.appendChild(footer);\n }\n }\n\n /**\n * Adds the \"x\" button to cancel the tour\n * @param {HTMLElement} element The step element\n * @param {HTMLElement} header The header element for the step\n * @private\n */\n _addCancelLink(element, header) {\n if (this.options.showCancelLink) {\n const link = createFromHTML('<a href class=\"shepherd-cancel-link\"></a>');\n header.appendChild(link);\n\n element.classList.add('shepherd-has-cancel-link');\n this.bindCancelLink(link);\n }\n }\n\n /**\n * Adds text passed in as options\n *\n * @private\n * @param {HTMLElement} content The content to append the text to\n */\n _addContent(content) {\n const text = createFromHTML('<div class=\"shepherd-text\"></div>');\n let paragraphs = this.options.text;\n\n if (isFunction(paragraphs)) {\n paragraphs = paragraphs.call(this, text);\n }\n\n if (paragraphs instanceof HTMLElement) {\n text.appendChild(paragraphs);\n } else {\n if (isString(paragraphs)) {\n paragraphs = [paragraphs];\n }\n\n paragraphs.map((paragraph) => {\n text.innerHTML += `<p>${paragraph}</p>`;\n });\n }\n\n content.appendChild(text);\n }\n\n /**\n * Creates Shepherd element for step based on options\n *\n * @private\n * @return {HTMLElement} The DOM element for the step tooltip\n */\n _createTooltipContent() {\n const content = document.createElement('div');\n const classes = this.options.classes || '';\n const element = createFromHTML(`<div class=\"${classes}\" data-shepherd-step-id=\"${this.id}\">`);\n const header = document.createElement('header');\n\n if (this.options.title) {\n const title = document.createElement('h3');\n title.classList.add('shepherd-title');\n title.innerHTML = `${this.options.title}`;\n header.appendChild(title);\n element.classList.add('shepherd-has-title');\n }\n\n content.classList.add('shepherd-content');\n header.classList.add('shepherd-header');\n element.appendChild(content);\n content.appendChild(header);\n\n if (!isUndefined(this.options.text)) {\n this._addContent(content);\n }\n\n this._addButtons(content);\n this._addCancelLink(element, header);\n\n return element;\n }\n\n /**\n * Returns the tour for the step\n * @return {Tour} The tour instance\n */\n getTour() {\n return this.tour;\n }\n\n /**\n * Cancel the tour\n * Triggers the `cancel` event\n */\n cancel() {\n this.tour.cancel();\n this.trigger('cancel');\n }\n\n /**\n * Complete the tour\n * Triggers the `complete` event\n */\n complete() {\n this.tour.complete();\n this.trigger('complete');\n }\n\n /**\n * Remove the step, delete the step's element, and destroy the tippy instance for the step\n * Triggers `destroy` event\n */\n destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (isElement(this.el) && this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n this.el = null;\n }\n\n if (this.target) {\n this._updateStepTargetOnHide();\n }\n\n this.trigger('destroy');\n }\n\n /**\n * Hide the step and destroy the tippy instance\n */\n hide() {\n this.tour.modal.hide();\n\n this.trigger('before-hide');\n\n document.body.removeAttribute('data-shepherd-step');\n\n if (this.target) {\n this._updateStepTargetOnHide();\n }\n\n if (this.tooltip) {\n this.tooltip.hide();\n }\n\n this.trigger('hide');\n }\n\n /**\n * Check if the step is open and visible\n * @return {boolean} True if the step is open and visible\n */\n isOpen() {\n return Boolean(\n this.tooltip &&\n this.tooltip.state &&\n this.tooltip.state.isVisible\n );\n }\n\n /**\n * Create the element and set up the tippy instance\n */\n setupElements() {\n if (!isUndefined(this.el)) {\n this.destroy();\n }\n\n this.el = this._createTooltipContent();\n\n if (this.options.advanceOn) {\n this.bindAdvance();\n }\n\n this.setupTooltip();\n }\n\n /**\n * If a custom scrollToHandler is defined, call that, otherwise do the generic\n * scrollIntoView call.\n */\n scrollTo() {\n const { element } = this.parseAttachTo();\n\n if (isFunction(this.options.scrollToHandler)) {\n this.options.scrollToHandler(element);\n } else if (isElement(element)) {\n element.scrollIntoView();\n }\n }\n\n /**\n * Sets the options for the step, maps `when` to events, sets up buttons\n * @param {Object} options The options for the step\n */\n setOptions(options = {}) {\n this.options = options;\n const { when } = this.options;\n\n this.destroy();\n this.id = this.options.id || `step-${uniqueId()}`;\n\n forOwn(when, (handler, event) => {\n this.on(event, handler, this);\n });\n }\n\n /**\n * Wraps `_show` and ensures `beforeShowPromise` resolves before calling show\n * @return {*|Promise}\n */\n show() {\n if (isFunction(this.options.beforeShowPromise)) {\n const beforeShowPromise = this.options.beforeShowPromise();\n if (!isUndefined(beforeShowPromise)) {\n return beforeShowPromise.then(() => this._show());\n }\n }\n this._show();\n }\n\n /**\n * Triggers `before-show`, generates the tooltip DOM content,\n * sets up a tippy instance for the tooltip, then triggers `show`.\n * @private\n */\n _show() {\n this.tour.beforeShowStep(this);\n this.trigger('before-show');\n\n if (!this.el) {\n this.setupElements();\n }\n\n this.target.classList.add('shepherd-enabled', 'shepherd-target');\n\n document.body.setAttribute('data-shepherd-step', this.id);\n\n if (this.options.scrollTo) {\n setTimeout(() => {\n this.scrollTo();\n });\n }\n\n this.tooltip.show();\n this.trigger('show');\n }\n\n _updateStepTargetOnHide() {\n if (this.options.highlightClass) {\n this.target.classList.remove(this.options.highlightClass);\n }\n\n this.target.classList.remove('shepherd-enabled', 'shepherd-target');\n }\n}\n","export const isBrowser = typeof window !== 'undefined';\n\nconst nav = isBrowser ? navigator : {};\nconst win = isBrowser ? window : {};\n\nexport const isBrowserSupported = 'MutationObserver' in win;\nexport const isIE = /MSIE |Trident\\//.test(nav.userAgent);\nexport const isIOS = /iPhone|iPad|iPod/.test(nav.platform) && !win.MSStream;\nexport const supportsTouch = 'ontouchstart' in win;","import { isBrowserSupported } from './browser';\n\n/**\n * Injects a string of CSS styles to a style node in <head>\n * @param {String} css\n */\nexport function injectCSS(css) {\n if (isBrowserSupported) {\n const style = document.createElement('style');\n style.type = 'text/css';\n style.textContent = css;\n document.head.insertBefore(style, document.head.firstChild);\n }\n}","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","const svgNS = 'http://www.w3.org/2000/svg';\n\nconst elementIds = {\n modalOverlay: 'shepherdModalOverlayContainer',\n modalOverlayMask: 'shepherdModalMask',\n modalOverlayMaskRect: 'shepherdModalMaskRect',\n modalOverlayMaskOpening: 'shepherdModalMaskOpening'\n};\n\nconst classNames = {\n isVisible: 'shepherd-modal-is-visible',\n modalTarget: 'shepherd-modal-target'\n};\n\n/**\n * <svg id=\"shepherdModalOverlayContainer\" xmlns=\"http://www.w3.org/2000/svg\">\n */\nfunction _createModalContainer() {\n const element = document.createElementNS(svgNS, 'svg');\n\n element.setAttributeNS(null, 'id', elementIds.modalOverlay);\n\n return element;\n}\n\n/**\n * <mask id=\"shepherdModalMask\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">\n */\nfunction _createMaskContainer() {\n const element = document.createElementNS(svgNS, 'mask');\n\n _setAttributes(element, {\n height: '100%',\n id: elementIds.modalOverlayMask,\n width: '100%',\n x: '0',\n y: '0'\n });\n\n return element;\n}\n\n/**\n * <rect id=\"modalOverlayMaskRect\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"#FFFFFF\"/>\n */\nfunction _createMaskRect() {\n const element = document.createElementNS(svgNS, 'rect');\n\n _setAttributes(element, {\n fill: '#FFFFFF',\n height: '100%',\n id: elementIds.modalOverlayMaskRect,\n width: '100%',\n x: '0',\n y: '0'\n });\n\n return element;\n}\n\n/**\n * <rect id=\"shepherdModalMaskOpening\" fill=\"#000000\"/>\n */\nfunction _createMaskOpening() {\n const element = document.createElementNS(svgNS, 'rect');\n\n _setAttributes(element, {\n fill: '#000000',\n id: elementIds.modalOverlayMaskOpening\n });\n\n return element;\n}\n\n/**\n * <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" mask=\"url(#shepherdModalMask)\"/>\n */\nfunction _createMaskConsumer() {\n const element = document.createElementNS(svgNS, 'rect');\n\n _setAttributes(element, {\n height: '100%',\n width: '100%',\n x: '0',\n y: '0'\n });\n element.setAttribute('mask', `url(#${elementIds.modalOverlayMask})`);\n\n return element;\n}\n\n/**\n * Generates an SVG with the following structure:\n * ```html\n * <svg id=\"shepherdModalOverlayContainer\" xmlns=\"http://www.w3.org/2000/svg\">\n <defs>\n <mask id=\"shepherdModalMask\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" >\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"#FFFFFF\"/>\n <!-- This element will \"punch a hole\" through the mask by preventing it from rendering within the perimeter -->\n <rect id=\"shepherdModalMaskOpening\"/>\n </mask>\n </defs>\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" mask=\"url(#shepherdModalMask)\"/>\n </svg>\n * ```\n */\nfunction createModalOverlay() {\n const containerElement = _createModalContainer();\n const defsElement = document.createElementNS(svgNS, 'defs');\n const maskContainer = _createMaskContainer();\n const maskRect = _createMaskRect();\n const maskOpening = _createMaskOpening();\n const maskConsumer = _createMaskConsumer();\n\n maskContainer.appendChild(maskRect);\n maskContainer.appendChild(maskOpening);\n\n defsElement.appendChild(maskContainer);\n\n containerElement.appendChild(defsElement);\n containerElement.appendChild(maskConsumer);\n\n return containerElement;\n}\n\n/**\n * Uses the bounds of the element we want the opening overtop of to set the dimensions of the opening and position it\n * @param {HTMLElement} targetElement The element the opening will expose\n * @param {SVGElement} openingElement The svg mask for the opening\n */\nfunction positionModalOpening(targetElement, openingElement) {\n if (targetElement.getBoundingClientRect && openingElement instanceof SVGElement) {\n const { x, y, width, height } = targetElement.getBoundingClientRect();\n\n _setAttributes(openingElement, { x, y, width, height });\n }\n}\n\nfunction closeModalOpening(openingElement) {\n if (openingElement && openingElement instanceof SVGElement) {\n _setAttributes(openingElement, {\n height: '0',\n x: '0',\n y: '0',\n width: '0'\n });\n }\n}\n\nfunction getModalMaskOpening(modalElement) {\n return modalElement.querySelector(`#${elementIds.modalOverlayMaskOpening}`);\n}\n\nfunction preventModalBodyTouch(event) {\n event.preventDefault();\n}\n\nfunction preventModalOverlayTouch(event) {\n event.stopPropagation();\n}\n\n/**\n * Remove any leftover modal target classes and add the modal target class to the currentElement\n * @param {HTMLElement} currentElement The element for the current step\n */\nfunction toggleShepherdModalClass(currentElement) {\n const shepherdModal = document.querySelector(`${classNames.modalTarget}`);\n\n if (shepherdModal) {\n shepherdModal.classList.remove(classNames.modalTarget);\n }\n\n currentElement.classList.add(classNames.modalTarget);\n}\n\n/**\n * Set multiple attributes on an element, via a hash\n * @param {HTMLElement|SVGElement} el The element to set the attributes on\n * @param {Object} attrs A hash of key value pairs for attributes to set\n * @private\n */\nfunction _setAttributes(el, attrs) {\n Object.keys(attrs).forEach((key) => {\n el.setAttribute(key, attrs[key]);\n });\n}\n\nexport {\n createModalOverlay,\n positionModalOpening,\n preventModalBodyTouch,\n preventModalOverlayTouch,\n closeModalOpening,\n getModalMaskOpening,\n elementIds,\n classNames,\n toggleShepherdModalClass\n};\n","import { elementIds } from './modal';\nimport { preventModalBodyTouch, preventModalOverlayTouch } from './modal';\n\n/**\n * Helper method to check if element is hidden, since we cannot use :visible without jQuery\n * @param {HTMLElement} element The element to check for visibility\n * @returns {boolean} true if element is hidden\n * @private\n */\nfunction elementIsHidden(element) {\n return element.offsetWidth === 0 && element.offsetHeight === 0;\n}\n\n/**\n * Get the element from an option object\n *\n * @method getElementFromObject\n * @param Object attachTo\n * @returns {Element}\n * @private\n */\nfunction getElementFromObject(attachTo) {\n const op = attachTo.element;\n\n if (op instanceof HTMLElement) {\n return op;\n }\n\n return document.querySelector(op);\n}\n\n/**\n * Return the element for a step\n *\n * @method getElementForStep\n * @param step step the step to get an element for\n * @returns {Element} the element for this step\n * @private\n */\nfunction getElementForStep(step) {\n const { options: { attachTo } } = step;\n\n if (!attachTo) {\n return null;\n }\n\n const type = typeof attachTo;\n\n let element;\n\n if (type === 'string') {\n element = getElementFromString(attachTo);\n } else if (type === 'object') {\n element = getElementFromObject(attachTo);\n } else {\n /* istanbul ignore next: cannot test undefined attachTo, but it does work! */\n element = null;\n }\n return element;\n}\n\n/**\n * Get the element from an option string\n *\n * @method getElementFromString\n * @param element the string in the step configuration\n * @returns {Element} the element from the string\n * @private\n */\nfunction getElementFromString(element) {\n const [selector] = element.split(' ');\n\n return document.querySelector(selector);\n}\n\nfunction addStepEventListeners() {\n if (typeof this._onScreenChange === 'function') {\n window.removeEventListener('resize', this._onScreenChange, false);\n window.removeEventListener('scroll', this._onScreenChange, true);\n }\n\n window.addEventListener('resize', this._onScreenChange, false);\n window.addEventListener('scroll', this._onScreenChange, true);\n\n const overlay = document.querySelector(`#${elementIds.modalOverlay}`);\n // Prevents window from moving on touch.\n window.addEventListener('touchmove', preventModalBodyTouch, { passive: false });\n\n // Allows content to move on touch.\n if (overlay) {\n overlay.addEventListener('touchmove', preventModalOverlayTouch, false);\n }\n}\n\nexport {\n addStepEventListeners,\n elementIsHidden,\n getElementForStep\n};\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nexport default baseDelay;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nexport default defer;\n","import {\n getModalMaskOpening,\n createModalOverlay,\n positionModalOpening,\n closeModalOpening,\n classNames as modalClassNames\n} from './utils/modal';\nimport { addStepEventListeners, getElementForStep } from './utils/dom';\nimport debounce from 'lodash-es/debounce';\nimport defer from 'lodash-es/defer';\n\nexport class Modal {\n constructor(options) {\n if (!this._modalOverlayElem) {\n this._modalOverlayElem = createModalOverlay();\n this._modalOverlayOpening = getModalMaskOpening(this._modalOverlayElem);\n\n // don't show yet -- each step will control that\n this.hide();\n\n document.body.appendChild(this._modalOverlayElem);\n }\n\n this.options = options;\n\n return this;\n }\n\n /**\n * Removes svg mask from modal overlay and removes classes for modal being visible\n */\n cleanup() {\n defer(() => {\n const element = this._modalOverlayElem;\n\n if (element && element instanceof SVGElement) {\n element.parentNode.removeChild(element);\n }\n\n this._modalOverlayElem = null;\n document.body.classList.remove(modalClassNames.isVisible);\n });\n }\n\n /**\n * Hide the modal overlay\n */\n hide() {\n document.body.classList.remove(modalClassNames.isVisible);\n\n if (this._modalOverlayElem) {\n this._modalOverlayElem.style.display = 'none';\n }\n }\n\n /**\n * If modal is enabled, setup the svg mask opening and modal overlay for the step\n * @param step\n */\n setupForStep(step) {\n if (this.options.useModalOverlay) {\n this._styleForStep(step);\n this.show();\n\n } else {\n this.hide();\n }\n }\n\n /**\n * Show the modal overlay\n */\n show() {\n document.body.classList.add(modalClassNames.isVisible);\n\n if (this._modalOverlayElem) {\n this._modalOverlayElem.style.display = 'block';\n }\n }\n\n /**\n * Style the modal for the step\n * @param {Step} step The step to style the opening for\n * @private\n */\n _styleForStep(step) {\n const modalOverlayOpening = this._modalOverlayOpening;\n const targetElement = getElementForStep(step);\n\n if (targetElement) {\n positionModalOpening(targetElement, modalOverlayOpening);\n\n this._onScreenChange = debounce(\n positionModalOpening.bind(this, targetElement, modalOverlayOpening),\n 0,\n { leading: false, trailing: true } // see https://lodash.com/docs/#debounce\n );\n\n addStepEventListeners.call(this);\n\n } else {\n closeModalOpening(this._modalOverlayOpening);\n }\n }\n}","export const defaults = {\n trigger: 'manual',\n arrow: true,\n arrowTransform: 'scale(2)',\n animation: 'fade',\n duration: 420,\n flip: true,\n animateFill: false, // https://atomiks.github.io/tippyjs/#animate-fill-option\n interactive: true, // https://atomiks.github.io/tippyjs/#interactive-option\n hideOnClick: 'toggle', // https://atomiks.github.io/tippyjs/#hide-on-click-option\n multiple: true // https://atomiks.github.io/tippyjs/#multiple-option\n};\n","import { preventModalBodyTouch } from './modal';\nimport { getElementForStep } from './dom';\n\n/**\n * Cleanup the steps and set pointerEvents back to 'auto'\n * @param tour The tour object\n */\nexport function cleanupSteps(tour) {\n if (tour) {\n const { steps } = tour;\n\n steps.forEach((step) => {\n if (step.options && step.options.canClickTarget === false && step.options.attachTo) {\n const stepElement = getElementForStep(step);\n\n if (stepElement instanceof HTMLElement) {\n stepElement.style.pointerEvents = 'auto';\n }\n }\n });\n }\n}\n\n/**\n * Remove resize and scroll event listeners\n */\nexport function cleanupStepEventListeners() {\n if (typeof this._onScreenChange === 'function') {\n window.removeEventListener('resize', this._onScreenChange, false);\n window.removeEventListener('scroll', this._onScreenChange, false);\n\n this._onScreenChange = null;\n }\n window.removeEventListener('touchmove', preventModalBodyTouch, {\n passive: false\n });\n}\n","import { injectCSS } from './css';\nimport isEmpty from 'lodash-es/isEmpty';\nimport isFunction from 'lodash-es/isFunction';\nimport isNumber from 'lodash-es/isNumber';\nimport isString from 'lodash-es/isString';\nimport isUndefined from 'lodash-es/isUndefined';\nimport { Evented } from './evented.js';\nimport { Modal } from './modal.js';\nimport { Step } from './step.js';\nimport { bindMethods } from './bind.js';\nimport tippy from 'tippy.js';\nimport tippyStyles from 'tippy.js/dist/tippy.css';\nimport { defaults as tooltipDefaults } from './utils/tooltip-defaults';\n\nimport {\n cleanupSteps,\n cleanupStepEventListeners\n} from './utils/cleanup';\n\nimport {\n addStepEventListeners,\n getElementForStep\n} from './utils/dom';\n\nimport {\n toggleShepherdModalClass\n} from './utils/modal';\n\n/**\n * Creates incremented ID for each newly created tour\n *\n * @private\n * @return {Number} The unique id for the tour\n */\nconst uniqueId = (function() {\n let id = 0;\n return function() {\n return ++id;\n };\n})();\n\nconst Shepherd = new Evented();\n\n/**\n * Class representing the site tour\n * @extends {Evented}\n */\nexport class Tour extends Evented {\n /**\n * @param {Object} options The options for the tour\n * @param {Object} options.defaultStepOptions Default options for Steps created through `addStep`\n * @param {Step[]} options.steps An array of Step instances to initialize the tour with\n * @param {string} options.tourName An optional \"name\" for the tour. This will be appended to the the tour's\n * dynamically generated `id` property -- which is also set on the `body` element as the `data-shepherd-active-tour` attribute\n * whenever the tour becomes active.\n * @param {boolean} options.useModalOverlay Whether or not steps should be placed above a darkened\n * modal overlay. If true, the overlay will create an opening around the target element so that it\n * can remain interactive\n * @returns {Tour}\n */\n constructor(options = {}) {\n super(options);\n bindMethods.call(this, [\n 'back',\n 'cancel',\n 'complete',\n 'next'\n ]);\n this.options = options;\n this.steps = this.options.steps || [];\n\n // Pass these events onto the global Shepherd object\n const events = ['active', 'cancel', 'complete', 'inactive', 'show', 'start'];\n events.map((event) => {\n ((e) => {\n this.on(e, (opts) => {\n opts = opts || {};\n opts.tour = this;\n Shepherd.trigger(e, opts);\n });\n })(event);\n });\n\n this.modal = new Modal(options);\n\n this._setTooltipDefaults();\n this._setTourID();\n\n injectCSS(tippyStyles);\n\n return this;\n }\n\n /**\n * Adds a new step to the tour\n * @param {Object|Number|Step|String} arg1\n * When arg2 is defined, arg1 can either be a string or number, to use for the `id` for the step\n * When arg2 is undefined, arg1 is either an object containing step options or a Step instance\n * @param {Object|Step} arg2 An object containing step options or a Step instance\n * @return {Step} The newly added step\n */\n addStep(arg1, arg2) {\n let name, step;\n\n // If we just have one argument, we can assume it is an object of step options, with an id\n if (isUndefined(arg2)) {\n step = arg1;\n } else {\n name = arg1;\n step = arg2;\n }\n\n if (!(step instanceof Step)) {\n step = this.setupStep(step, name);\n } else {\n step.tour = this;\n }\n\n this.steps.push(step);\n return step;\n }\n\n /**\n * Go to the previous step in the tour\n */\n back() {\n const index = this.steps.indexOf(this.currentStep);\n this.show(index - 1, false);\n }\n\n /**\n * Calls done() triggering the 'cancel' event\n * If `confirmCancel` is true, will show a window.confirm before cancelling\n */\n cancel() {\n if (this.options.confirmCancel) {\n const cancelMessage = this.options.confirmCancelMessage || 'Are you sure you want to stop the tour?';\n const stopTour = window.confirm(cancelMessage);\n if (stopTour) {\n this.done('cancel');\n }\n } else {\n this.done('cancel');\n }\n }\n\n /**\n * Calls done() triggering the `complete` event\n */\n complete() {\n this.done('complete');\n }\n\n /**\n * Called whenever the tour is cancelled or completed, basically anytime we exit the tour\n * @param {String} event The event name to trigger\n */\n done(event) {\n if (!isEmpty(this.steps)) {\n this.steps.forEach((step) => step.destroy());\n }\n\n cleanupStepEventListeners.call(this);\n cleanupSteps(this.tourObject);\n this.modal.cleanup();\n\n this.trigger(event);\n\n Shepherd.activeTour = null;\n this._removeBodyAttrs();\n this.trigger('inactive', { tour: this });\n }\n\n /**\n * Gets the step from a given id\n * @param {Number|String} id The id of the step to retrieve\n * @return {Step} The step corresponding to the `id`\n */\n getById(id) {\n return this.steps.find((step) => {\n return step.id === id;\n });\n }\n\n /**\n * Gets the current step\n * @returns {Step|null}\n */\n getCurrentStep() {\n return this.currentStep;\n }\n\n /**\n * Hide the current step\n */\n hide() {\n const currentStep = this.getCurrentStep();\n\n if (currentStep) {\n return currentStep.hide();\n }\n }\n\n isActive() {\n return Shepherd.activeTour === this;\n }\n\n /**\n * Go to the next step in the tour\n * If we are at the end, call `complete`\n */\n next() {\n const index = this.steps.indexOf(this.currentStep);\n\n if (index === this.steps.length - 1) {\n this.complete();\n } else {\n this.show(index + 1, true);\n }\n }\n\n /**\n * Removes the step from the tour\n * @param {String} name The id for the step to remove\n */\n removeStep(name) {\n const current = this.getCurrentStep();\n\n // Find the step, destroy it and remove it from this.steps\n this.steps.some((step, i) => {\n if (step.id === name) {\n if (step.isOpen()) {\n step.hide();\n }\n\n step.destroy();\n this.steps.splice(i, 1);\n\n return true;\n }\n });\n\n if (current && current.id === name) {\n this.currentStep = undefined;\n\n // If we have steps left, show the first one, otherwise just cancel the tour\n this.steps.length ? this.show(0) : this.cancel();\n }\n }\n\n /**\n * Setup a new step object\n * @param {Object} stepOptions The object describing the options for the step\n * @param {String|Number} name The string or number to use as the `id` for the step\n * @return {Step} The step instance\n */\n setupStep(stepOptions, name) {\n if (isString(name) || isNumber(name)) {\n stepOptions.id = name.toString();\n }\n\n stepOptions = Object.assign({}, this.options.defaultStepOptions, stepOptions);\n\n return new Step(this, stepOptions);\n }\n\n beforeShowStep(step) {\n this.modal.setupForStep(step);\n this._styleTargetElementForStep(step);\n }\n\n /**\n * Show a specific step in the tour\n * @param {Number|String} key The key to look up the step by\n * @param {Boolean} forward True if we are going forward, false if backward\n */\n show(key = 0, forward = true) {\n const step = isString(key) ? this.getById(key) : this.steps[key];\n\n if (step) {\n this._updateStateBeforeShow();\n\n const shouldSkipStep = isFunction(step.options.showOn) && !step.options.showOn();\n\n // If `showOn` returns false, we want to skip the step, otherwise, show the step like normal\n if (shouldSkipStep) {\n this._skipStep(step, forward);\n } else {\n this.trigger('show', {\n step,\n previous: this.currentStep\n });\n\n this.currentStep = step;\n step.show();\n }\n }\n }\n\n /**\n * Start the tour\n */\n start() {\n this.trigger('start');\n\n this.currentStep = null;\n this._setupActiveTour();\n addStepEventListeners.call(this);\n this.next();\n }\n\n /**\n * Make this tour \"active\"\n * @private\n */\n _setupActiveTour() {\n this._addBodyAttrs();\n this.trigger('active', { tour: this });\n\n Shepherd.activeTour = this;\n }\n\n /**\n * Modulates the styles of the passed step's target element, based on the step's options and\n * the tour's `modal` option, to visually emphasize the element\n *\n * @param step The step object that attaches to the element\n * @private\n */\n _styleTargetElementForStep(step) {\n const targetElement = getElementForStep(step);\n\n if (!targetElement) {\n return;\n }\n\n toggleShepherdModalClass(targetElement);\n\n if (step.options.highlightClass) {\n targetElement.classList.add(step.options.highlightClass);\n }\n\n if (step.options.canClickTarget === false) {\n targetElement.style.pointerEvents = 'none';\n }\n }\n\n /**\n * Called when `showOn` evaluates to false, to skip the step\n * @param {Step} step The step to skip\n * @param {Boolean} forward True if we are going forward, false if backward\n * @private\n */\n _skipStep(step, forward) {\n const index = this.steps.indexOf(step);\n const nextIndex = forward ? index + 1 : index - 1;\n this.show(nextIndex, forward);\n }\n\n _setTooltipDefaults() {\n tippy.setDefaults(tooltipDefaults);\n }\n\n _updateStateBeforeShow() {\n if (this.currentStep) {\n this.currentStep.hide();\n }\n\n if (!this.isActive()) {\n this._setupActiveTour();\n }\n }\n\n _setTourID() {\n const tourName = this.options.tourName || 'tour';\n const uuid = uniqueId();\n\n this.id = `${tourName}--${uuid}`;\n }\n\n _addBodyAttrs() {\n document.body.setAttribute('data-shepherd-active-tour', this.id);\n document.body.classList.add('shepherd-active');\n }\n\n _removeBodyAttrs() {\n document.body.removeAttribute('data-shepherd-active-tour');\n document.body.classList.remove('shepherd-active');\n }\n\n}\n\nexport { Shepherd };\n","import '../scss/shepherd-theme-dark.scss';\nimport '../scss/shepherd-theme-default.scss';\nimport '../scss/shepherd-theme-square.scss';\nimport '../scss/shepherd-theme-square-dark.scss';\n\nimport { Evented } from './evented.js';\nimport { Step } from './step.js';\nimport { Shepherd, Tour } from './tour.js';\n\nObject.assign(Shepherd, { Tour, Step, Evented });\n\nexport default Shepherd;\n"],"names":["Symbol","objectProto","nativeObjectToString","symToStringTag","Evented","event","handler","ctx","once","arguments","length","undefined","isUndefined","bindings","push","on","forEach","binding","index","splice","args","drop","context","apply","hasOwnProperty","MAX_SAFE_INTEGER","argsTag","freeExports","freeModule","moduleExports","funcTag","objectTag","funcProto","funcToString","Map","Promise","mapTag","setTag","weakMapTag","dataViewTag","getTag","stringTag","isFunction","defineProperty","_extends","isBrowser","isIE","Defaults","isPlainObject","isNumeric","getValue","debounce","keys","missingTippy","centeredStylePopperModifier","computeStyle","enabled","fn","data","styles","left","top","transform","defaultPopperOptions","positionFixed","createFromHTML","html","el","document","createElement","innerHTML","children","_parseAttachToOpts","opts","isObjectLike","positionRe","matches","exec","element","parseShorthand","obj","props","values","split","zipObject","setupTooltip","tippy","Error","tooltip","destroy","attachToOpts","parseAttachTo","_makeTippyInstance","call","target","body","classList","add","options","attachTo","returnOpts","isString","querySelector","e","console","error","attachToOptions","_makeCenteredTippy","tippyOptions","_makeAttachedTippyOptions","one","resultingTippyOptions","content","placement","popperOptions","arrow","finalPopperOptions","modifiers","_setupAdvanceOnHandler","selector","isOpen","targetIsEl","targetIsSelector","tour","next","bindAdvance","advanceOn","addEventListener","removeEventListener","bindButtonEvents","cfg","events","action","click","forOwn","page","show","dataset","buttonEvent","removeAttribute","bindCancelLink","link","preventDefault","cancel","bindMethods","methods","map","method","bind","uniqueId","id","Step","setOptions","isEmpty","buttons","footer","button","classes","text","appendChild","header","showCancelLink","paragraphs","HTMLElement","paragraph","title","_addContent","_addButtons","_addCancelLink","trigger","complete","isElement","parentNode","removeChild","_updateStepTargetOnHide","modal","hide","Boolean","state","isVisible","_createTooltipContent","scrollToHandler","scrollIntoView","when","beforeShowPromise","then","_show","beforeShowStep","setupElements","setAttribute","scrollTo","setTimeout","highlightClass","remove","window","nav","navigator","win","isBrowserSupported","test","userAgent","isIOS","platform","MSStream","injectCSS","css","style","type","textContent","head","insertBefore","firstChild","numberTag","svgNS","elementIds","modalOverlay","modalOverlayMask","modalOverlayMaskRect","modalOverlayMaskOpening","classNames","modalTarget","_createModalContainer","createElementNS","setAttributeNS","_createMaskContainer","_setAttributes","height","width","x","y","_createMaskRect","fill","_createMaskOpening","_createMaskConsumer","createModalOverlay","containerElement","defsElement","maskContainer","maskRect","maskOpening","maskConsumer","positionModalOpening","targetElement","openingElement","getBoundingClientRect","SVGElement","closeModalOpening","getModalMaskOpening","modalElement","preventModalBodyTouch","preventModalOverlayTouch","stopPropagation","toggleShepherdModalClass","currentElement","shepherdModal","attrs","Object","key","getElementFromObject","op","getElementForStep","step","getElementFromString","addStepEventListeners","_onScreenChange","overlay","passive","FUNC_ERROR_TEXT","nativeMax","defer","Modal","_modalOverlayElem","_modalOverlayOpening","modalClassNames","display","useModalOverlay","_styleForStep","modalOverlayOpening","leading","trailing","defaults","arrowTransform","animation","duration","flip","animateFill","interactive","hideOnClick","multiple","cleanupSteps","steps","canClickTarget","stepElement","pointerEvents","cleanupStepEventListeners","Shepherd","Tour","_setTooltipDefaults","_setTourID","tippyStyles","arg1","arg2","name","setupStep","indexOf","currentStep","confirmCancel","cancelMessage","confirmCancelMessage","stopTour","confirm","done","tourObject","cleanup","activeTour","_removeBodyAttrs","find","getCurrentStep","current","some","i","stepOptions","isNumber","toString","defaultStepOptions","setupForStep","_styleTargetElementForStep","forward","getById","_updateStateBeforeShow","shouldSkipStep","showOn","_skipStep","previous","_setupActiveTour","_addBodyAttrs","nextIndex","setDefaults","tooltipDefaults","isActive","tourName","uuid"],"mappings":"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ACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;;EAErB;EA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"}