{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/application_controller.js","webpack:///./app/javascript/lib/i18n.js","webpack:///./node_modules/@stimulus/core/dist/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/action.js","webpack:///./node_modules/@stimulus/core/dist/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/value_observer.js","webpack:///./node_modules/@stimulus/core/dist/context.js","webpack:///./node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:///./node_modules/@stimulus/core/dist/blessing.js","webpack:///./node_modules/@stimulus/core/dist/module.js","webpack:///./node_modules/@stimulus/core/dist/definition.js","webpack:///./node_modules/@stimulus/core/dist/class_map.js","webpack:///./node_modules/@stimulus/core/dist/string_helpers.js","webpack:///./node_modules/@stimulus/core/dist/data_map.js","webpack:///./node_modules/@stimulus/core/dist/guide.js","webpack:///./node_modules/@stimulus/core/dist/selectors.js","webpack:///./node_modules/@stimulus/core/dist/target_set.js","webpack:///./node_modules/@stimulus/core/dist/scope.js","webpack:///./node_modules/@stimulus/core/dist/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/router.js","webpack:///./node_modules/@stimulus/core/dist/schema.js","webpack:///./node_modules/@stimulus/core/dist/application.js","webpack:///./node_modules/@stimulus/core/dist/class_properties.js","webpack:///./node_modules/@stimulus/core/dist/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/value_properties.js","webpack:///./node_modules/@stimulus/core/dist/controller.js","webpack:///./node_modules/sweetalert2/dist/sweetalert2.all.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/velocity-animate/velocity.js","webpack:///./node_modules/debounced/src/events.js","webpack:///./node_modules/debounced/src/index.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/apexcharts/dist/apexcharts.common.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/virtual/virtual.js","webpack:///./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:///./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack:///./node_modules/swiper/esm/components/parallax/parallax.js","webpack:///./node_modules/swiper/esm/components/zoom/zoom.js","webpack:///./node_modules/swiper/esm/components/lazy/lazy.js","webpack:///./node_modules/swiper/esm/components/controller/controller.js","webpack:///./node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./node_modules/swiper/esm/components/history/history.js","webpack:///./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/esm/components/effect-cube/effect-cube.js","webpack:///./node_modules/swiper/esm/components/effect-flip/effect-flip.js","webpack:///./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack:///./node_modules/swiper/swiper-bundle.esm.js","webpack:///./node_modules/stimulus-carousel/dist-web/index.js","webpack:///./node_modules/i18n-js/app/assets/javascripts/i18n.js","webpack:///./node_modules/pdfjs-dist/build/pdf.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./app/javascript/initializers/index.js","webpack:///./node_modules/stimulus-autocomplete/dist/stimulus-autocomplete.js","webpack:///./node_modules/push.js/bin/push.min.js","webpack:///./node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/lodash.debounce/index.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/after_signup/step_users_controller.js","webpack:///./app/javascript/controllers/auth/timezone_guess_controller.js","webpack:///./app/javascript/controllers/better_errors_controller.js","webpack:///./app/javascript/controllers/chk_autohide_controller.js","webpack:///./app/javascript/controllers/chk_autosubmit_controller.js","webpack:///./app/javascript/controllers/color_controller.js","webpack:///./app/javascript/controllers/customers/form_contacts_controller.js","webpack:///./app/javascript/controllers/dashboard/overview_item_controller.js","webpack:///./app/javascript/controllers/expandable_controller.js","webpack:///./app/javascript/controllers/filterable_list_controller.js","webpack:///./app/javascript/controllers/format_money_controller.js","webpack:///./app/javascript/controllers/loader_controller.js","webpack:///./app/javascript/controllers/modal_content_controller.js","webpack:///./app/javascript/controllers/modal_controller.js","webpack:///./app/javascript/controllers/my/profile_edit_controller.js","webpack:///./app/javascript/controllers/notes/create_note_controller.js","webpack:///./app/javascript/controllers/notifications_controller.js","webpack:///./app/javascript/controllers/page_controller.js","webpack:///./app/javascript/controllers/products/form_controller.js","webpack:///./app/javascript/controllers/products/form_items_controller.js","webpack:///./app/javascript/controllers/products/form_variants_controller.js","webpack:///./app/javascript/controllers/proposals/change_status_controller.js","webpack:///./app/javascript/controllers/proposals/dates_controller.js","webpack:///./app/javascript/controllers/quotations/change_status_controller.js","webpack:///./app/javascript/controllers/quotations/dates_controller.js","webpack:///./app/javascript/controllers/quotations/form_items_controller.js","webpack:///./app/javascript/controllers/quotations/form_items_new_controller.js","webpack:///./app/javascript/controllers/quotations/form_terms_controller.js","webpack:///./app/javascript/controllers/quotations/preview_controller.js","webpack:///./app/javascript/controllers/remote_controller.js","webpack:///./app/javascript/controllers/select_autosubmit_controller.js","webpack:///./app/javascript/controllers/select_listener_controller.js","webpack:///./app/javascript/controllers/select_tree_controller.js","webpack:///./app/javascript/controllers/select_wrapper_controller.js","webpack:///./app/javascript/controllers/table_sum_controller.js","webpack:///./app/javascript/controllers/tablerow_sum_controller.js","webpack:///./app/javascript/controllers/term_groups/form_terms_controller.js","webpack:///./app/javascript/controllers/themes/cover_options_controller.js","webpack:///./app/javascript/controllers/themes/creator_carousel_controller.js","webpack:///./app/javascript/controllers/themes/form_controller.js","webpack:///./app/javascript/controllers/themes/margin_setting_controller.js","webpack:///./app/javascript/controllers/time_ago_controller.js","webpack:///./app/javascript/controllers/timezone_controller.js","webpack:///./app/javascript/controllers/tiny_controller.js","webpack:///./app/javascript/controllers/tooltip_controller.js","webpack:///./app/javascript/controllers/workspaces/form_controller.js","webpack:///./app/javascript/controllers/workspaces/select_emails_controller.js","webpack:///./app/components sync _controller.js$","webpack:///./app/components/billing/activate_component/activate_controller.js","webpack:///./app/components/billing/billing_controller.js","webpack:///./app/components/billing/checkout_controller.js","webpack:///./app/components/chart_controller.js","webpack:///./app/components/file_field_controller.js","webpack:///./app/components/notes/edit_controller.js","webpack:///./app/components/notes/new_controller.js","webpack:///./app/components/notes/single_controller.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./app/components/quick_filter_checkbox_controller.js","webpack:///./app/components/quick_filter_conditions_controller.js","webpack:///./app/components/quick_filter_search_controller.js","webpack:///./app/components/table_controller.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/initializers sync \\.js$","webpack:///./app/javascript/initializers/debounced.js","webpack:///./app/javascript/initializers/money.js","webpack:///./app/javascript/app.js","webpack:///./node_modules/morphdom/dist/morphdom-esm.js","webpack:///./node_modules/cable_ready/javascript/cable_ready.js","webpack:///./node_modules/cable_ready/javascript/enums.js","webpack:///./node_modules/cable_ready/javascript/utils.js","webpack:///./node_modules/cable_ready/javascript/callbacks.js","webpack:///./app/javascript/channels/consumer.js","webpack:///./app/javascript/channels/user_channel.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./node_modules/stimulus-content-loader/dist-web/index.js","webpack:///./node_modules/stimulus-popover/dist-web/index.js","webpack:///./app/javascript/controllers/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/lib/data-confirm-modal.js","webpack:///./app/javascript/init_rails_ujs.js","webpack:///./app/javascript/lib/strings.js","webpack:///./app/javascript/controllers/auth/login_controller.js","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./app/javascript/controllers/drag_controller.js","webpack:///./node_modules/readmore-js/dist/readmore.es6.js","webpack:///./app/javascript/controllers/readmoreless_controller.js","webpack:///./app/javascript/lib/array.js","webpack:///./app/components/pdf_controller.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","bindElementController","element","controller","isBlank","str","test","parseBool","val","defaultVal","formatMoney","amount","decimalCount","decimal","thousands","updateRailsFieldsNames","parentEl","startPattern","newIdx","reStr","replace","re","RegExp","startIdx","Math","floor","Date","now","querySelectorAll","forEach","x","updateRailsFieldName","scrollTo","el","scroll","findPos","highlight","middle","curtop","offsetParent","newEl","offsetTop","screen","height","body","hasAttribute","this","classList","nodeList","idx","match","oldIdx","parseInt","oldName","newName","id","newId","callback","Velocity","scale","then","highlightSlideUp","opacity","style","remove","visible","lastFromNodeList","rotateY","Controller","I18n","translations","en","locale","EventListener","eventTarget","eventName","eventOptions","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","join","descriptorPattern","parseEventTarget","eventTargetName","Action","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","split","options","toString","eventNameSuffix","getAttribute","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","size","prune","_extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","b","setPrototypeOf","__proto__","__","constructor","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","max","_","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","defaultValue","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","isArray","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","apply","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","arguments","k","a","j","jl","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Reflect","construct","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","camelize","char","toUpperCase","capitalize","charAt","dasherize","DataMap","removeAttribute","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","find","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","rejected","result","done","__generator","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","Application","documentElement","router","readyState","register","load","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","_typeof","obj","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","default","propertiesForValueDefinitionPair","defaultValuesByType","valueDescriptorForTokenAndType","typeConstant","Boolean","Number","String","parseValueTypeConstant","boolean","number","string","array","JSON","parse","parseFloat","writeJSON","stringify","blessings","factory","_typeof2","_classCallCheck","instance","Constructor","_defineProperties","props","writable","_createClass","protoProps","staticProps","_extends","source","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","sham","Proxy","valueOf","_construct","Parent","args","Class","Function","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","_get","base","_superPropBase","desc","consolePrefix","capitalizeFirstLetter","objectValues","toArray","previousWarnOnceMessages","warnAboutDeprecation","deprecatedParam","useInstead","indexOf","callIfFunction","arg","hasToPromiseFn","toPromise","asPromise","isPromise","DismissReason","freeze","cancel","backdrop","close","esc","timer","isElement","elem","jquery","isJqueryElement","prefix","items","swalClasses","iconTypes","getContainer","querySelector","container","elementBySelector","selectorString","elementByClass","className","getPopup","popup","getIcon","icon","getTitle","title","getContent","getHtmlContainer","getImage","image","getProgressSteps","getValidationMessage","getConfirmButton","actions","confirm","getDenyButton","deny","getLoader","loader","getCancelButton","getActions","getHeader","header","getFooter","footer","getTimerProgressBar","getCloseButton","getFocusableElements","focusableElementsWithTabindex","otherFocusableElements","arr","uniqueArray","isVisible","isModal","isToast","states","previousBodyPadding","setInnerHtml","html","textContent","parsed","DOMParser","parseFromString","childNodes","child","hasClass","applyCustomClass","params","showClass","removeCustomClasses","customClass","addClass","getInput","inputType","getChildByClass","checkbox","radio","range","input","oldInputVal","focusInput","focus","toggleClass","condition","removeClass","applyNumericalStyle","removeProperty","show","display","hide","setStyle","parent","toggle","offsetWidth","offsetHeight","getClientRects","isScrollable","scrollHeight","clientHeight","hasCssAnimation","getComputedStyle","animDuration","getPropertyValue","transDuration","animateTimerProgressBar","reset","timerProgressBar","transition","width","isNodeEnv","sweetHTML","file","select","textarea","resetValidationMessage","Swal","init","oldContainer","oldContainerExisted","parentNode","removeChild","rangeOutput","targetElement","toast","setupAccessibility","direction","rtl","setupRTL","oninput","onchange","nextSibling","parseHtmlToContainer","param","HTMLElement","handleObject","handleJqueryElem","cloneNode","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","OAnimation","animation","renderActions","confirmButton","denyButton","cancelButton","showConfirmButton","showDenyButton","showCancelButton","renderButton","buttonsStyling","styled","confirmButtonColor","backgroundColor","denyButtonColor","cancelButtonColor","handleButtonsStyling","reverseButtons","insertBefore","loaderHtml","button","buttonType","renderContainer","background","handleBackdropParam","allowOutsideClick","position","center","handlePositionParam","grow","growClass","handleGrowParam","queueStep","privateProps","innerParams","domCache","inputTypes","showInput","renderInputType","inputContainer","getInputContainer","setAttributes","inputAttributes","attr","attrName","removeAttributes","setCustomClass","setInputPlaceholder","placeholder","inputPlaceholder","setInputLabel","prependTo","inputLabel","labelClass","innerText","insertAdjacentElement","inputClass","text","email","password","tel","url","inputValue","rangeInput","disabled","selected","checkboxContainer","checked","getPadding","paddingLeft","paddingRight","initialPopupWidth","contentWidth","attributeFilter","renderContent","htmlContainer","rerender","renderInput","applyStyles","iconType","setColor","adjustSuccessIconBackgoundColor","popupBackgroundColor","successIconParts","setContent","iconHtml","iconContent","question","warning","info","iconColor","color","borderColor","_arr","currentSteps","getQueueStep","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","stepEl","createStepElement","lineEl","progressStepsDistance","createLineElement","renderHeader","renderIcon","imageUrl","imageAlt","imageWidth","imageHeight","renderImage","titleText","renderTitle","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderCloseButton","addClasses","modal","render","padding","renderPopup","renderFooter","didRender","onRender","clickConfirm","click","showLoading","buttonToReplace","fire","loading","globalState","restoreActiveElement","returnFocus","scrollX","scrollY","restoreFocusTimeout","previousActiveElement","stopTimer","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","stopTimerProgressBar","resumeTimer","remaining","bodyClickListenerAdded","clickHandlers","bodyClickListener","template","defaultParams","hideClass","heightAuto","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","showLoaderOnConfirm","showLoaderOnDeny","inputOptions","inputAutoTrim","inputValidator","returnInputValueOnDeny","validationMessage","onBeforeOpen","onOpen","willOpen","didOpen","onClose","onAfterClose","willClose","didClose","onDestroy","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","showWarningsForParams","staticMethods","isUpdatableParameter","argsToParams","clickDeny","clickCancel","getInputLabel","isLoading","_len","_key","mixin","mixinParams","subClass","superClass","_inherits","MixinSwal","Derived","hasNativeReflectConstruct","Super","NewTarget","priorityMixinParams","queue","steps","resetAndResolve","queueResult","dismiss","insertQueueStep","splice","deleteQueueStep","enableLoading","getTimerLeft","toggleTimer","running","increaseTimer","increase","isTimerRunning","isRunning","bindClickHandler","hideLoading","getElementsByClassName","fixScrollbar","innerHeight","scrollDiv","scrollbarWidth","getBoundingClientRect","clientWidth","measureScrollbar","addBottomPaddingForTallPopups","navigator","userAgent","paddingBottom","lockBodyScroll","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","preventDefault","stopPropagation","isStylys","isZoom","touches","touchType","isIE11","MSInputMethodContext","documentMode","fixVerticalPositionIE","alignItems","privateMethods","swalPromiseResolve","removePopupAndResetState","triggerDidCloseAndDispose","keydownTarget","keydownHandler","capture","keydownHandlerAdded","iosfix","offset","top","scrollTop","undoIOSfix","children","shown","resolveValue","prepareResolveValue","handlePopupAnimation","isConfirmed","isDenied","isDismissed","animationIsSupported","runDidClose","animatePopup","swalCloseEventFinishedCallback","_destroy","setButtonsDisabled","buttons","setInputDisabled","radios","Timer","delay","defaultInputValidators","setParameters","setDefaultInputValidators","validateCustomTargetElement","currentInstance","swalStringParams","getSwalParams","templateContent","showWarningsForAttributes","getSwalButtons","innerHTML","getSwalImage","getSwalIcon","getSwalInput","option","optionValue","optionName","getSwalStringParams","paramNames","tag","showWarningsForElements","allowedElements","allowedAttributes","openPopup","initialBodyOverflow","overflowY","addClasses$1","setScrollingVisibility","fixScrollContainer","haystack","needle","activeElement","runDidOpen","swalOpenAnimationFinished","MSStream","platform","maxTouchPoints","iOSfix","setProperty","getCheckboxValue","getRadioValue","getFileValue","files","handleInputOptions","processInputOptions","populateInputOptions","formatInputOptions","handleInputValue","renderOption","optionLabel","isSelected","inputOption","optgroup","radioValue","radioLabel","radioInput","radioLabelElement","valueFormatted","handleConfirmOrDenyWithInput","getInputValue","handleInputValidator","checkValidity","enableButtons","showValidationMessage","disableInput","enableInput","preDenyValue","closePopup","succeedWith","preConfirmValue","setFocus","increment","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","escKeys","dismissWith","handleEnter","handleTab","handleArrows","handleEsc","isComposing","outerHTML","btnIndex","shiftKey","sibling","buttonToFocus","handleToastClick","onclick","ignoreOutsideClick","handleModalMousedown","onmousedown","onmouseup","handleContainerMousedown","handleModalClick","prepareParams","userParams","templateParams","getTemplateParams","swalPromise","disableButtons","handleConfirmButtonClick","handleDenyButtonClick","handleCancelButtonClick","handlePopupClick","addKeydownHandler","handleInputOptionsAndValue","setupTimer","initFocus","populateDomCache","globalState$$1","focusButton","blurActiveElement","blur","runDidDestroy","disposeSwal","unsetWeakMaps","instanceMethods","disableLoading","closeModal","closeToast","inputerror","_main","update","validUpdatableParams","updatedParams","deferDisposalTimer","SweetAlert","outerParams","onFulfilled","onFinally","_currentInstance","version","Sweetalert2","swal","sweetAlert","getElementsByTagName","styleSheet","cssText","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","CustomEvent","evt","createEvent","initCustomEvent","bubbles","cancelable","Event","defaultPrevented","dispatchEvent","stopEverything","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","ajax","response","responseText","getResponseHeader","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","location","href","dataType","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","isCrossDomain","originAnchor","urlAnchor","protocol","host","serializeElement","additionalParam","inputs","encodeURIComponent","formElements","form","allowAction","handleConfirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","isRemote","handleRemote","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","fn","isWindow","class2type","isPlainObject","hasOwn","each","isArraylike","getId","expando","store","cache","setId","uuid","removeData","copyIsArray","copy","clone","deep","results","ret","q","first","second","len","dequeue","elems","unshift","box","pageYOffset","clientTop","pageXOffset","scrollLeft","clientLeft","nodeName","offsetParentFn","parentOffset","marginTop","marginLeft","borderTopWidth","borderLeftWidth","getTime","types","Utilities","global","timeLast","IE","div","rAFShim","webkitRequestAnimationFrame","mozRequestAnimationFrame","timeDelta","timeCurrent","performance","perf","nowOffset","timing","navigationStart","_slice","begin","end","cloned","min","_inArray","includes","sanitizeElements","Type","isWrapped","isNode","isNumber","variable","isString","isFunction","isSVG","SVGElement","isEmptyObject","isJQuery","DURATION_DEFAULT","EASING_DEFAULT","State","isMobile","isAndroid","isGingerbread","isChrome","chrome","isFirefox","prefixElement","prefixMatches","scrollAnchor","scrollPropertyLeft","scrollPropertyTop","isTicking","calls","delayedElements","count","CSS","Redirects","Easings","defaults","duration","easing","progress","visibility","loop","mobileHA","_cacheValues","promiseRejectEmpty","isAnimating","computedStyle","tweensContainer","rootPropertyValueCache","transformCache","hook","mock","major","minor","patch","debug","timestamp","pauseAll","queueName","currentTime","activeCall","resume","pauseDelayOnElement","resumeAll","resumeDelayOnElement","generateSpringRK4","springAccelerationForState","state","tension","friction","springEvaluateStateWithDerivative","initialState","dt","derivative","dx","dv","springIntegrateState","dxdt","dvdt","springRK4Factory","have_duration","last_state","initState","path","time_lapsed","tolerance","abs","percentComplete","linear","swing","cos","PI","spring","exp","easingArray","generateBezier","RegEx","isHex","valueUnwrap","wrappedValueAlreadyExtracted","valueSplit","Lists","colors","transformsBase","transforms3D","units","colorNames","Hooks","templates","registered","rgbComponents","rootProperty","hookTemplate","hookNames","defaultValues","fullHookName","hookPosition","getRoot","hookData","getUnit","unit","substr","fixColors","$0","$1","$2","cleanRootPropertyValue","rootPropertyValue","Values","isCSSNullValue","extractValue","hookRoot","injectValue","hookValue","rootPropertyValueParts","Normalizations","clip","propertyValue","extracted","blurComponent","zoom","transformName","Data","invalid","colorName","converted","black","blue","gray","green","red","white","hexToRgb","augmentDimension","wantInner","augment","sides","fields","isNaN","getDimension","innerWidth","outerWidth","outerHeight","Names","camelCase","subMatch","SVGAttribute","SVGAttributes","prefixCheck","vendors","vendorsLength","propertyPrefixed","hex","rgbParts","exec","getUnitType","getDisplayType","currentClass","forceStyleLookup","computePropertyValue","computedValue","css","toggleDisplay","setPropertyValue","revertDisplay","contentBoxHeight","contentBoxWidth","normalizedPropertyName","normalizedPropertyValue","getBBox","log","scrollData","alternateValue","hookName","flushTransformCache","transformString","getTransformFloat","transformProperty","SVGTransforms","translate","skewX","skewY","rotate","transformValue","perspective","arg2","arg3","adjustedSet","animate","opts","getChain","isUtility","promiseData","elementsWrapped","argumentIndex","propertiesMap","syntacticSugar","names","resolver","rejecter","elementsLength","elementsIndex","startingArgumentPosition","found","delayTimer","item","callsToStop","activeTween","endValue","currentValue","completeCall","durationOriginal","delayOriginal","backwards","elementIndex","stagger","drag","abortError","callUnitConversionData","lastParent","lastPosition","lastFontSize","lastPercentToPxWidth","lastPercentToPxHeight","lastEmToPx","remToPx","vwToPx","vhToPx","processElement","reverseCallsCount","reverseOptions","elementArrayIndex","elementUnitConversionData","clearQueue","velocityQueueEntryFlag","callIndex","delayComplete","delayBegin","buildQueue","lastTweensContainer","scrollPositionCurrent","scrollPositionCurrentAlternate","scrollPositionEnd","scrollDirection","axis","scrollOffset","startValue","unitType","lastTween","lastStartValue","parsePropertyValue","valueData","skipResolvingEasing","getEasing","fixPropertyValue","pattern","separatedValue","endValueUnitType","startValueUnitType","operator","separateValue","numericValue","iStart","iEnd","aStart","aEnd","inCalc","inRGB","inRGBA","cStart","cEnd","tStart","tEnd","dotStart","dotEnd","uStart","uEnd","nStart","nEnd","sameRatioIndicators","myParent","fontSize","samePercentRatio","sameEmRatio","measurement","unitRatios","emToPx","percentToPxWidth","percentToPxHeight","dummy","createElementNS","calculateUnitRatios","colorComponents","endValueRGB","startValueRGB","dataArray","tick","ticker","requestAnimationFrame","hidden","updateTicker","velocity","elementsSize","inlineValues","computedValues","marginBottom","paddingTop","overflow","delayPaused","delayRemaining","generateStep","round","mX1","mY1","mX2","mY2","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","isFinite","mSampleValues","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","newtonRaphsonIterate","aX","aGuessT","currentSlope","calcSampleValues","binarySubdivide","aA","aB","currentX","currentT","getTForX","intervalStart","currentSample","lastSample","guessForT","initialSlope","_precomputed","precompute","getControlPoints","callsLength","compactSparseArray","callContainer","timeStart","firstTick","tweenDummyValue","pauseObject","millisecondsEllapsed","callLength","transformPropertyExists","flexValue","tween","patternReplace","tweenDelta","adjustedSetData","translate3d","isStopped","remainingCallsExist","transformHAPropertyExists","tweenContainer","oldStartValue","Zepto","wait","DOMContentLoaded","abort","animationcancel","animationend","animationiteration","animationstart","auxclick","change","compositionend","compositionstart","compositionupdate","contextmenu","cut","dblclick","dragend","dragenter","dragleave","dragover","dragstart","drop","focusin","focusout","fullscreenchange","fullscreenerror","hashchange","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","paste","pointercancel","pointerdown","pointerlockchange","pointerlockerror","pointermove","pointerout","pointerover","pointerup","popstate","submit","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","visibilitychange","wheel","_slicedToArray","_arrayWithHoles","_s","_e","_n","_d","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","initializedEvents","debounce","timeoutId","dispatch","composed","debouncedEvent","originalEvent","initializeEvent","debouncedDispatch","events","evts","_i2","_Object$entries","entries","_ref3","_ref2","webpackPolyfill","paths","getOwnPropertyDescriptors","h","u","isColorHex","shadeHexColor","shadeRGBColor","isObject","LN10","pow","log10","random","substring","bottom","sin","appVersion","ctx","w","unfilter","SVG","Filter","config","normal","applyFilter","chart","dropShadow","enabled","intensity","addShadow","componentTransfer","rgb","slope","intercept","filterer","_scaleFilterSize","addNormalFilter","addLightenFilter","addDarkenFilter","flood","composite","sourceAlpha","gaussianBlur","merge","blend","noUserSpaceOnUse","isIE","isSafari","globals","selectedDataPoints","active","setEasingFunctions","animations","_t","_t2","_t3","afterAll","cx","cy","realIndex","fill","pathFrom","pathTo","speed","animateGradually","dynamicAnimation","dataChanged","morphSVG","comboCharts","animationEnded","showDelayedElements","animationEnd","gridHeight","shouldAnimate","plot","series","maxValsInArrayIndex","animationCompleted","dom","Paper","line","x1","y1","x2","y2","stroke","rect","rx","ry","polygon","circle","strokeWidth","fillOpacity","strokeOpacity","strokeLinecap","strokeDashArray","lineCap","class","group","animationDelay","initialSpeed","dataChangeSpeed","shouldClipToGrid","bindEventsOnPaths","drawShadow","S","L","T","resized","I","z","dashArray","M","drawPath","cuid","getDefaultFilter","enabledOnSeries","E","pathMouseEnter","pathMouseLeave","pathMouseDown","X","animatePathsGradually","hexToRgba","gradient","at","gridWidth","gradientUnits","fx","fy","to","textAnchor","fontFamily","fontWeight","foreColor","cssClass","isPlainText","tspan","newLine","plain","pSize","shape","pRadius","drawRect","pointFillColor","pointFillOpacity","pointStrokeColor","pWidth","pointStrokeOpacity","drawCircle","dataPointMouseEnter","seriesIndex","dataPointIndex","fireEvent","hover","isTouchDevice","dataPointMouseLeave","allowMultipleDataPointsSelection","members","dataPointSelection","drawText","bbox","getComputedTextLength","getSubStringLength","annoCtx","orientation","baseEl","graphics","rotateAroundCenter","barPadForNumericAxis","borderRadius","borderWidth","addBackgroundToAnno","annotations","xaxis","yaxis","points","convertedCatToNumeric","categoryLabels","labels","invertAxis","minY","minX","maxY","maxX","yRange","xRange","inversedReversedAxis","dataFormatXNumeric","helpers","getStringX","drawLine","offsetX","offsetY","fillColor","getTextRects","rel","setOrientations","addXaxisAnnotation","stackedSeriesTotals","every","formatter","markers","largestSize","seriesTotals","seriesX","seriesPercent","isMultipleYAxis","minYArr","maxYArr","zRange","maxZ","minZ","initialMaxX","initialMinX","MIN_VALUE","hasNegs","yRatio","invertedYRatio","zRatio","xRatio","initialXRatio","invertedXRatio","baseLineInvertedY","baseLineY","baseLineX","seriesLog","logarithmic","getLogVal","invalidLogScale","yLogRatio","logYRange","MAX_VALUE","comboBarCount","extendYAxis","extendYAxisAnnotations","extendXAxisAnnotations","extendPointAnnotations","_getY1Y2","_getYAxisAnnotationWidth","yAxisIndex","reversed","addYaxisAnnotation","marker","strokeColor","radius","drawMarker","customSVG","transform","addImage","appendTo","addPointAnnotation","months","shortMonths","days","shortDays","toolbar","exportToSVG","exportToPNG","exportToCSV","menu","selection","selectionZoom","zoomIn","zoomOut","pan","yAxis","showAlways","showForNullSeries","seriesName","opposite","tickAmount","forceNiceScale","floating","decimalsInFloat","minWidth","maxWidth","align","axisBorder","axisTicks","tooltip","crosshairs","pointAnnotation","yAxisAnnotation","xAxisAnnotation","texts","images","shapes","locales","defaultLocale","beforeMount","mounted","updated","mouseMove","legendClick","markerClick","beforeZoom","beforeResetZoom","zoomed","scrolled","brushScrolled","parentHeightOffset","redrawOnParentResize","redrawOnWindowResize","sparkline","brush","autoScaleYaxis","stacked","stackType","tools","download","zoomin","zoomout","customIcons","export","csv","filename","columnDelimiter","headerCategory","headerValue","dateFormatter","toDateString","png","svg","autoSelected","zoomedArea","plotOptions","area","fillTo","bar","horizontal","columnWidth","barHeight","distributed","startingShape","endingShape","rangeBarOverlap","rangeBarGroupRows","ranges","backgroundBarColors","backgroundBarOpacity","backgroundBarRadius","dataLabels","maxItems","hideOverflowingLabels","bubble","minBubbleRadius","maxBubbleRadius","candlestick","upward","downward","wick","useFillColor","heatmap","enableShades","shadeIntensity","reverseNegativeShade","useFillColorAsStroke","colorScale","inverse","treemap","radialBar","inverseOrder","startAngle","endAngle","hollow","margin","imageOffsetX","imageOffsetY","imageClipped","track","total","pie","customScale","expandOnClick","minAngleToShowLabel","donut","polarArea","rings","radar","polygons","strokeColors","connectorColors","shade","gradientToColors","inverseColors","opacityFrom","opacityTo","stops","colorStops","grid","lines","row","column","legend","showForSingleSeries","showForZeroSeries","horizontalAlign","tooltipHoverFormatter","useSeriesColors","fillColors","customHTML","onClick","itemMargin","vertical","onItemClick","toggleDataSeries","onItemHover","highlightDataSeries","discrete","onDblClick","showNullDataPoints","sizeOffset","noData","verticalAlign","responsive","subtitle","curve","shared","followCursor","intersect","custom","fillSeriesColor","theme","onDatasetHover","format","fixed","categories","sorted","rotateAlways","hideOverlappingLabels","minHeight","maxHeight","showDuplicates","datetimeUTC","datetimeFormatter","year","month","day","hour","minute","tickPlacement","colorFrom","colorTo","palette","monochrome","shadeTo","isBarHorizontal","xAxisAnnotations","yAxisAnnotations","pointsAnnotations","xDivision","dataPoints","axisCharts","drawYAxisAnnotations","drawXAxisAnnotations","drawPointAnnotations","elGraphical","annotationsBackground","addText","move","addAnnotationExternal","pushToMemory","contextMethod","memory","methodsToExec","randomId","listToArray","firstChild","SVGNS","setAttrs","patternID","patternUnits","setAttributeNS","xlink","preserveAspectRatio","elDefs","seriesNumber","getSeriesIndex","getFillColors","seriesColors","getFillType","getOpacityFromRGBA","handlePatternFill","handleGradientFill","clippedImgArea","solid","drawPattern","shadeColor","rgb2hex","drawGradient","getMarkerConfig","setSelectionFilter","addEvents","pointsArray","getMarkerStyle","pointStrokeDashArray","passive","initialAnim","dynamicAnim","pointsPos","elParent","seriesZ","drawPoint","fillPath","animateCircleRadius","previousPaths","collapsedSeries","animateCircle","dataLabelsRects","lastDrawnDataLabelsIndexes","textRects","drawnextLabel","centerTextInBubble","plotDataLabelsText","offsetCorrection","dataLabelsConfig","alwaysDrawDataLabel","dataLabelsCorrection","addBackgroundToDataLabel","barCtx","barWidth","barYPosition","visibleSeries","renderedPath","isXNumeric","barOptions","isTimelineBar","yLabelFormatters","bcx","bcy","dataLabelsX","dataLabelsY","barDataLabelsConfig","offX","offY","isHorizontal","calculateBarsDataLabelsPosition","calculateColumnsDataLabelsPosition","drawCalculatedDataLabels","isReversed","collapsedSeriesIndices","legendInactiveClass","escapeString","getSeriesByName","isHidden","ancillaryCollapsedSeries","isSeriesHidden","legendHelpers","initialSeries","ancillaryCollapsedSeriesIndices","emptyCollapsedSeries","updateHelpers","revertDefaultAxisMinMax","_updateSeries","handlePrevBubbleScatterPaths","allSeriesCollapsed","svgWidth","svgHeight","filteredSeriesX","allSeriesHasEqualX","totalItems","seriesLen","visibleI","visibleItems","padHorizontal","minXDiff","yaxisIndex","yDivision","zeroH","zeroW","isNullValue","elSeries","getActiveConfigSeriesIndex","barXPosition","getRoundedBars","getPreviousPath","endingPath","startingPath","quadraticCurve","seriesRangeBarTimeline","xyRatios","barHelpers","getLogSeries","getLogYRatios","initVariables","seriesNames","addCollapsedClassToSeries","initialPositions","getStrokeWidth","indexes","bc","drawBarPaths","drawColumnPaths","getPathFillColor","renderSeries","pathFill","elDataLabelsWrap","seriesXvalues","seriesYvalues","lineFill","renderPaths","strokeLineCap","handleBarDataLabels","getBarpaths","barBackground","getColumnPaths","Y","months31","months30","daysCntOfYear","parseDate","toISOString","toUTCString","getTimeStamp","getUTCFullYear","getFullYear","getUTCMonth","getMonth","getUTCDate","getDate","getUTCHours","getHours","getUTCMinutes","getMinutes","getUTCSeconds","getSeconds","getUTCMilliseconds","getMilliseconds","getTimezoneOffset","getUTCDay","getDay","formatDate","minSecond","maxSecond","minMinute","maxMinute","minHour","maxHour","minDate","maxDate","minMonth","maxMonth","minYear","maxYear","determineDaysOfMonths","isLeapYear","monthMod","F","rangeBarOptions","rangeBar","seriesRangeStart","seriesRangeEnd","detectOverlappingBars","srty","initPositions","drawRangeBarPaths","drawRangeColumnPaths","rangeName","overlaps","getRangeValue","startVal","endVal","ylabel","R","seriesCandleO","seriesCandleH","seriesCandleL","seriesCandleC","getTooltipValues","buildCustomTooltipHTML","toFixed","D","responsiveOverride","chartType","extendAnnotations","stacked100","checkForDarkTheme","Apex","checkForCatToNumericXAxis","handleUserInputErrors","convertCatToNumeric","extendArray","H","timescaleLabels","noLabelsProvided","resizeTimer","selectionResizeTimer","xaxisLabelsCount","skipLastTimelinelabel","skipFirstTimelinelabel","isDataXYZ","isMultiLineX","yAxisScale","xAxisScale","xAxisTicksPositions","yLabelsCoords","yTitleCoords","xTickAmount","chartID","clicked","clientX","clientY","radarPolygons","msMaxTouchPoints","isDirty","isExecCalled","initialConfig","lastXAxis","lastYAxis","columnSeries","risingSeries","capturedSeriesIndex","capturedDataPointIndex","goldenPadding","ignoreYAxisIndexes","yAxisSameScaleIndices","radialSize","zoomEnabled","panEnabled","selectionEnabled","lastClientPosition","visibleXRange","yValueDecimal","hasNullValues","rotateXLabels","defaultLabels","xLabelFormatter","xaxisTooltipFormatter","ttKeyFormatter","ttVal","ttZFormatter","LINE_HEIGHT_RATIO","xAxisLabelsHeight","xAxisLabelsWidth","yAxisLabelsWidth","scaleX","scaleY","translateX","translateY","translateYAxisX","yAxisWidths","translateXAxisY","translateXAxisX","globalVars","initGlobalVars","N","O","twoDSeries","threeDSeries","twoDSeriesX","coreUtils","isFormatXY","isFormat2DArray","activeSeriesIndex","parseNumber","isValidDate","isRangeData","fallbackToCategory","handleRangeDataFormat","rangeUniques","handleCandleStickDataFormat","handleRangeData","isMultiFormat","handleFormat2DArray","handleFormatXY","handleCandleStickData","convertCatToNumericXaxis","_generateExternalLabels","excludeCollapsedSeriesInYAxis","core","resetGlobals","isMultipleY","parseDataAxisCharts","parseDataNonAxisCharts","getLargestSeries","setNullSeriesToZeroValues","getSeriesTotals","getStackedSeriesTotals","getPercentSeries","handleExternalLabelsData","getCategoryLabels","W","tooltipKeyFormat","defaultGeneralFormatter","legendFormatter","xyCharts","defaultYFormatter","niceMax","niceMin","xLabelFormat","timeScale","textRect","isBold","isSeriesNull","pushExtraColors","V","fixSvgStringForIe11","cleanup","getSvgString","Blob","URL","createObjectURL","elWrap","getContext","fillStyle","fillRect","canvg","Canvg","fromString","ignoreClear","ignoreDimensions","msToBlob","blob","Image","crossOrigin","drawImage","toDataURL","imgURI","triggerDownload","svgUrl","dataURI","msSaveOrOpenBlob","lineDelimiter","getLabel","encodeURI","G","axesUtils","xaxisLabels","drawnLabels","drawnLabelsRects","isCategoryBarHorizontal","xaxisFontSize","xaxisFontFamily","xaxisForeColors","xaxisBorderWidth","xaxisBorderHeight","checkLabelBasedOnTickamount","checkForOverflowingLabels","xAxisHeight","getYAxisForeColor","drawYAxisTicks","placeTextWithEllipsis","renderGrid","drawGridArea","elGridRectMask","elGridRectMarkerMask","elGridRect","getLargestMarkerSize","elGridRectMarker","xCount","_drawGridLine","drawXaxisTicks","elg","xC","_drawGridLines","elgridLinesV","elgridLinesH","_drawXYLines","_drawInvertedXYLines","drawGridBands","xAxisTickWidth","_drawGridBandRect","_adjustTicksForSmallRange","linearScale","ceil","isFloat","logarithmicScale","niceScale","similarIndex","alreadyExists","setYScaleForIndex","sameScaleInMultipleAxes","U","scales","setYRange","setXRange","setZRange","noExponents","lowestY","highestY","getMinYMaxY","_setStackedMinMax","setMultipleYScales","setXScale","_handleSingleDataPoint","_getMinXDiff","setUTCDate","axisFontFamily","xAxisoffX","isYAxisHidden","checkForReversedLabels","inversedYAxisTitleText","inversedYAxisBorder","xPaddingForYAxisTitle","xPos","padd","multipleYs","Z","documentEvent","chartClass","eventList","which","setupBrushHandler","J","drawYaxisInversed","drawXaxisInversed","drawXaxis","drawYaxis","yAxisTitleRotate","Q","K","breakpoint","extendArrayProps","overrideResponsiveOptions","tt","isColorFn","isHeatmapDistributed","isBarDistributed","setDefaultColors","predefined","et","drawTitleSubtitle","it","dCtx","lgRect","getxAxisTimeScaleLabelsCoords","lgWidthForSideLegends","getLargestStringFromArr","dimHelpers","getLargestStringFromMultiArr","yAxisWidth","gridPad","overlappingXLabels","yAxisWidthRight","yAxisWidthLeft","xPadRight","xPadLeft","st","rt","isSparkline","getTitleSubtitleCoords","nt","dimYAxis","dimXAxis","dimGrid","getLegendsRect","setDimensionsForAxisCharts","setDimensionsForNonAxisCharts","gridPadFortitleSubtitle","gridPadForColumnsInNumericAxis","getyAxisLabelsCoords","getyAxisTitleCoords","getTotalYAxisWidth","getxAxisLabelsCoords","getxAxisTitleCoords","conditionalChecksForAxisCoords","xAxisWidth","additionalPaddingXLabels","setGridXPosForDualYAxis","setYAxisXPosition","ot","lgCtx","createTextNode","clwh","clww","elLegendForeign","elLegendWrap","getLegendStyles","cs","csi","riseCollapsedSeries","hideSeries","seriesEl","printDataLabelsInner","baseVal","_getSeriesBasedOnCollapsedState","lt","onLegendClick","onLegendHovered","isBarsDistributed","drawLegends","appendToForeignObject","legendAlignHorizontal","legendAlignVertical","getSeriesTotalByIndex","seriesHaveSameValues","getLegendBBox","setLegendWrapXY","highlightRangeInSeries","toggleSeriesOnHover","ht","ev","selectedClass","localeValues","elZoom","elZoomIn","elZoomOut","elPan","elSelection","elZoomReset","elMenuIcon","elMenu","elCustomIcons","moveIndexInArray","_createHamburgerMenu","addToolbarEventListeners","elMenuItems","handleZoomReset","toggleZoomSelection","handleZoomIn","handleZoomOut","togglePanning","toggleMenu","handleDownload","getSyncedCharts","toggleOtherControls","getToolbarIconsReference","_getNewMinXMaxX","disableZoomIn","zoomUpdateOptions","disableZoomOut","getBeforeZoomRange","autoScaleY","_updateOptions","zoomCallback","exportToPng","ct","dragged","startX","endX","dragX","startY","endY","dragY","moveDirection","zoomRect","selectionRect","gridRect","slDraggableRect","draggable","on","selectionDragging","preselectedSelection","hoverArea","svgMouseEvents","off","shiftWasPressed","enableZoomPanFromToolbar","changedTouches","panDragging","zoomtype","selectionDrawing","selectionDrawn","delayedPanScrolled","hideSelectionRect","makeSelectionRectDraggable","selectize","pointSize","pointType","resize","constraint","drawSelectionRect","panScrolled","updateScrolledChart","ttCtx","elGrid","hasBars","closestInMultiArray","closestInArray","capturedSeries","hoverX","hoverY","getFirstActiveXArray","getElMarkers","getElBars","allTooltipSeriesGroups","gt","tooltipUtil","ttItems","handleCustomTooltip","toggleActiveInactiveSeries","getValuesToPrint","printLabels","getElTooltip","tooltipRect","ttWidth","ttHeight","xVal","zVal","xAxisTTVal","getFormatters","getSeriesName","yLbTitleFormatter","yLbFormatter","DOMHandling","pColor","showTooltipTitle","tooltipTitle","blxaxisTooltip","xaxisTooltipText","toggleAllTooltipSeriesGroups","ut","getElXCrosshairs","xcrosshairsWidth","moveXAxisTooltip","ycrosshairs","ycrosshairsHidden","xaxisTooltip","xaxisOffY","yaxisTTEls","getElGrid","positionChecks","resetPointsSize","enlargeCurrentPoint","moveDynamicPointOnHover","getHoverMarkerSize","moveXCrosshairs","fixedTooltip","moveTooltip","getAllMarkers","dataPointsDividedWidth","ft","tooltipPosition","newPointSize","oldPointSize","lastChild","pt","opt","getAttr","tooltipLabels","drawSeriesTexts","findAncestor","showOnIntersect","getBarTooltipXY","dataPointsDividedHeight","xt","yaxisOffX","yaxisTooltip","yaxisTooltipText","yaxisTooltips","moveYCrosshairs","moveYAxisTooltip","bt","tConfig","axesTooltip","isBarShared","drawXaxisTooltip","drawYaxisTooltip","setXCrosshairWidth","handleYCrosshair","getXAxisTicksPositions","drawDynamicPoints","legendLabels","createTTElements","addSVGEvents","order","seriesBound","tooltipEl","tooltipY","tooltipX","addPathsEventListeners","addDatapointEventsListeners","seriesHover","getGroupedCharts","seriesHoverByContext","chartCtx","drawFixedTooltipRect","axisChartsTooltips","nonAxisChartsTooltips","handleMouseOut","handleStickyTooltip","handleHeatTreeTooltip","handleBarTooltip","hasMarkers","handleMarkerTooltip","drawYaxisTooltipText","getNearestValues","handleStickyCapturedSeries","isXoverlap","isInitialSeriesSameLen","deactivateHoverFilter","decodeURIComponent","enlargePoints","moveDynamicPointsOnHover","barSeriesHeight","getBarsHeight","moveStickyTooltipOverBars","moveMarkers","mt","prevY","prevX","prevYF","prevXF","prevYVal","prevXVal","xArrj","xArrjF","xArrjVal","yArrj","yArrjF","yArrjVal","drawStackedBarPaths","drawStackedColumnPaths","vt","candlestickOptions","drawCandleStickPaths","getOHLCValue","yt","determineColor","percent","colorProps","wt","rectRadius","negRange","checkColorRange","getShadeColor","addListeners","animateHeatMap","animateHeatColor","calculateDataLabels","animateRect","kt","At","animBeginArr","animDur","donutDataLabels","lineColorArr","defaultSize","centerY","centerX","fullAngle","initialAngle","donutSize","sliceLabels","sliceSizes","prevSectorAngleArr","negToZero","drawPolarElements","drawArcs","renderInnerDataLabels","hollowSize","getChangedPath","polarToCartesian","animatePaths","prevStartAngle","prevEndAngle","animateStartingPos","shouldSetPrevPaths","dur","pieClicked","revertDataLabelsInner","animateArc","getPiePath","me","angle","during","isTrack","drawYAxisTexts","printInnerLabels","makeSliceOut","printLabel","St","isLog","maxValue","minValue","dataRadiusOfPercent","dataRadius","angleArr","yaxisLabelsTextsPos","dataPointsLen","disAngle","yaxisLabels","getDataPointsPos","createPaths","linePathsTo","linePathsFrom","areaPathsFrom","areaPathsTo","drawPolygons","drawXAxisTexts","getPolygonPos","drawPolygon","getTextPos","newX","newY","Ct","totalAngle","trackStartAngle","trackEndAngle","radialDataLabels","drawTracks","colorArr","elHollow","drawHollowImage","drawHollow","loaded","Lt","lineCtx","categoryAxisCorrection","pathFromLine","pathFromArea","appendPathFrom","lineYPosition","prevSeriesY","zeroY","Pt","pointsChart","scatter","noNegatives","lineHelpers","sameValueSeriesFix","_initSerieVariables","determineFirstPrevY","_calculatePathsFrom","_iterateOverDataPoints","pX","pY","pathsFrom","linePaths","areaPaths","_handlePaths","elPointsMain","areaBottomY","checkPreviousPaths","linePath","areaPath","calculatePoints","_createPaths","handleNullDataPoints","_handleMarkersAndLabels","draw","plotChartMarkers","drawDataLabel","TreemapSquared","generate","xoffset","yoffset","shortestEdge","getCoordinates","cutArea","Tt","zt","It","animateTreemap","getFontSize","rotateToFitLabel","Mt","timeScaleArray","utc","determineInterval","getTimeUnitsfromTimestamp","firstVal","currentSecond","currentMinute","currentHour","currentMonthDate","currentDate","currentMonth","currentYear","daysWidthOnXAxis","hoursWidthOnXAxis","minutesWidthOnXAxis","secondsWidthOnXAxis","numberOfSeconds","numberOfMinutes","numberOfHours","numberOfDays","numberOfMonths","numberOfYears","tickInterval","generateYearScale","generateMonthScale","generateDayScale","generateHourScale","generateMinuteScale","formatDates","removeOverlappingTS","plotCoords","determineRemainingDaysOfYear","determineDaysOfYear","_getYear","date","createRawDateString","parseDateWithTimezone","dateString","Et","Doc","setSVGDimensions","elAnnotations","defs","getDimensions","drawXCrosshairs","drawYCrosshairs","calculateTimeScaleTicks","recalcDimensionsBasedOnFormat","getCalculatedRatios","ApexCharts","getChartByID","brushSource","updateSourceChart","Xt","getPreviousPaths","_extendSeries","supported","prepare","xmlns","svgjs","did","eid","inherit","invent","Container","adopt","Nested","Gradient","namespace","nested","poly","polyline","native","regex","numberAndUnit","reference","transforms","whitespace","isRgb","isCss","isPercent","isImage","delimiter","hyphen","pathLetters","isPathLetter","numbersWithDots","dots","utils","filterSVGElements","attrs","Color","toHex","toRgb","brightness","morph","destination","isColor","PointArray","PathArray","Point","toJSON","plus","minus","times","divide","relative","_stroke","_event","writeDataToDom","after","addTo","put","putIn","doc","parents","is","MorphObj","Situation","reversing","finish","ease","loops","styles","once","FX","_target","situations","situation","paused","lastPos","pos","absPos","_speed","timeToAbsPos","absPosToTime","startAnimFrame","stopAnimFrame","animationFrame","cancelAnimationFrame","startCurrent","initAnimations","initialTransformation","matrixify","clearCurrent","atEnd","last","_callStart","_i3","eased","eachAt","Matrix","multiply","undo","extract","matrix","Box","BBox","Shape","atan2","transformedX","sqrt","transformedY","rotation","createSVGMatrix","ctm","getCTM","screenCTM","getScreenCTM","point","nodeValue","leading","rebuild","untransform","toParent","toDoc","Transformation","inversed","Translate","hasChildNodes","_defs","ungroup","Defs","flatten","ViewBox","handlerMap","listenerId","_svgjsListenerId","getElementById","Stop","Pattern","symbol","Use","use","Rect","Circle","Ellipse","ellipse","Line","toLine","Polyline","Polygon","_array","morphArray","Path","_loaded","ratio","_error","Text","_rebuild","_build","newLined","build","textPath","Tspan","dy","TextPath","getTotalLength","pointAt","getPointAtLength","remember","forget","_memory","backgroundAlpha","autoSetIn","BlendEffect","colorMatrix","ColorMatrixEffect","convolveMatrix","ConvolveMatrixEffect","ComponentTransferEffect","CompositeEffect","FloodEffect","OffsetEffect","ImageEffect","MergeEffect","GaussianBlurEffect","morphology","MorphologyEffect","diffuseLighting","DiffuseLightingEffect","displacementMap","DisplacementMapEffect","specularLighting","SpecularLightingEffect","tile","TileEffect","turbulence","TurbulenceEffect","Effect","in","ParentEffect","ChildEffect","in2","kernelMatrix","xChannelSelector","yChannelSelector","numOctaves","seed","stitchTiles","baseFrequency","MergeNode","surfaceScale","diffuseConstant","kernelUnitLength","specularExponent","distantLight","azimuth","elevation","pointLight","spotLight","pointsAtX","pointsAtY","pointsAtZ","mergeNode","sepiatone","dest","reflection","acos","tan","transformPoint","matrixTransform","rbox","createSVGPoint","startPoints","snapToGrid","pointSelection","rectSelection","pointsList","rb","lb","pointCoord","pointCoords","pointsExclude","deepSelect","selectPoints","selectRect","drawPoints","getPointArray","returnValue","pageX","pageY","classPoints","updatePointSelection","updateRectSelection","rotationPoint","classRect","observerInst","parameters","lastUpdateCall","_extractPosition","calc","checkAspectRatio","snapToAngle","constraintToBox","saveAspectRatio","insertAt","__resizeTriggers__","firstElementChild","lastElementChild","scrollWidth","__resizeRAF__","__resizeLast__","__resizeListeners__","mozCancelAnimationFrame","webkitCancelAnimationFrame","animationName","addResizeListener","removeResizeListener","Yt","publicMethods","axes","localization","formatters","titleSubtitle","dimensions","zoomPanSelection","Ft","isUpdating","destroy","clearDomElements","killSVG","Rt","initModules","windowResizeHandler","_windowResizeHandler","parentResizeHandler","_parentResizeCallback","_chartInstances","setLocale","mount","catch","checkResponsiveConfig","setupElements","checkComboSeries","handleNoData","setupEventHandlers","parseData","setGlobalMarkerSize","setLabelFormatters","hasAllSeriesEqualX","coreCalculations","heatmapLabelFormatters","xySettings","createGridMask","plotChartType","bringForward","dataLabelsBackground","shiftGraphPosition","elGraph","elInner","drawAxis","drawGrid","drawImageAnnos","drawTextAnnos","xAxisLabelCorrections","setYAxisTextAlignments","drawAxesAnnotations","drawTooltip","createToolbar","resizeNonAxisCharts","resetSeries","forceXAxisUpdate","forceYAxisUpdate","clearPreviousPaths","updateThemeOptions","toggleSeries","showSeries","addXaxisAnnotationExternal","addYaxisAnnotationExternal","addPointAnnotationExternal","clearAnnotations","removeAnnotation","getSeriesTotalsXRange","toggleDataPointSelection","setCurrentLocaleValues","_windowResize","ssrDocument","initEvent","importNode","hash","hostname","origin","pathname","search","getDocument","ssrWindow","history","replaceState","pushState","go","back","matchMedia","getWindow","win","_wrapNativeSuper","_cache","Wrapper","Dom7","_Array","proto","makeReactive","arrayFlat","res","arrayFilter","toCreate","tempParent","qsa","arrayUnique","noTrigger","shortcut","trigger","Methods","classNames","_el$classList","_len2","_key2","_el$classList2","_len4","_key4","_len3","_key3","removeAttr","transitionDuration","_len5","_key5","targetSelector","listener","handleLiveEvent","eventData","dom7EventData","_parents","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","handlers","dom7proxy","_len9","_key9","dataIndex","transitionEnd","fireCallBack","includeMargins","_styles","_styles2","_prop","compareWith","previousSibling","eq","returnIndex","newChild","tempDiv","prepend","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","_parent","foundElements","nextTick","getTranslate","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","noExtend","nextSource","keysArray","nextIndex","nextKey","__swiper__","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","createElements","checkProps","auto","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","observer","passiveListener","supportsPassive","gestures","calcSupport","getDevice","overrides","_temp","support","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isWebView","calcBrowser","swiper","createObserver","destroyed","initialized","ResizeObserver","newWidth","newHeight","_ref","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","removeObserver","unobserve","emit","orientationChangeHandler","resizeObserver","Observer","attach","WebkitMutationObserver","observerUpdate","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","onTouchStart","touchEventsData","animating","preventInteractionOnTransition","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","isTouched","isMoved","noSwipingClass","shadowRoot","noSwiping","noSwipingSelector","allowClick","swipeHandler","targetTouches","currentY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","diffX","diffY","touchAngle","cssMode","touchMoveStopPropagation","loopFix","startTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","time","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","velocityEvent","distance","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","moveDistance","currentSlideSize","slidesSizesGrid","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","onScroll","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginRight","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","boxSizing","_slide$","swiperSlideSize","slidesGridItem","_slidesGridItem","_slides$filter$css","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","behavior","onTranslateToWrapperTransitionEnd","dir","initial","indexAsNumber","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","onTouchMove","detachEvents","_swiper$loopedSlides","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","minRatio","_points$i","wasLocked","lastSlidePosition","resultClasses","suffixes","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","browser","moduleParamName","desktop","swiperParams","passedParams","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","current","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","deleteProps","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","altKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isSupported","implementation","hasFeature","isEventSupported","sX","sY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","positions","sensitivity","_newEvent","sign","ignoreWheelEvents","_recentWheelEvents","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","newEvent","raw","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","Navigation","toggleEl","disabledClass","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","Pagination","pagination","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","divider","moveDivider","getPointerPosition","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","onGestureStart","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","touchX","touchY","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","scrollingElement","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","LinearSpline","guess","i1","i3","binarySearch","interpolate","getInterpolateFunction","spline","_setTranslate","controlledTranslate","controlled","control","setControlledTranslate","by","setControlledTransition","A11y","getRandomNumber","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideRole","ariaLabelMessage","slideLabelMessage","History","hashNavigation","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","pathArray","part","setHistory","slugify","root","currentState","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","cubeEffect","wrapperRotate","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotateX","zIndex","Coverflow","coverflowEffect","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","components","hideOnClick","toEdge","fromEdge","_swiper$navigation3","_swiper$navigation4","targetEl","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","touchStart","touchEnd","doubleTap","slideChange","checkInView","loadOnTransitionStart","notificationClass","afterInit","paginationUpdate","beforeTransitionStart","sliderFirstMove","beforeDestroy","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty2","_createSuper","_Controller","_class","defaultOptions","optionsValue","_defineProperty","precision","decimalAdjust","func","isSet","isBoolean","isNull","NaN","lazyEvaluate","DATE","day_names","abbr_day_names","month_names","abbr_month_names","meridian","NUMBER_FORMAT","separator","strip_insignificant_zeros","CURRENCY_FORMAT","sign_first","PERCENTAGE_FORMAT","SIZE_UNITS","DEFAULT_OPTIONS","defaultSeparator","fallbacks","missingBehaviour","missingTranslationPrefix","initializeOptions","list","localeParts","firstFallback","secondFallback","nullableFallbackLocale","pluralization","currentLocale","lookup","scopes","fullScope","getFullScope","pluralizationLookupWithoutFallback","pluralizerKey","pluralizerKeys","pluralizer","pluralizationLookup","am","pm","subject","createTranslationOptions","translationOptions","translation","usedScope","optionsWithoutDefault","translationOption","pluralize","missingTranslation","nullPlaceholder","missingPlaceholder","p1","p2","toNumber","formattedNumber","negative","buffer","toCurrency","localize","toPercentage","localizedValue","toTime","convertedDate","fraction","UTC","setTime","$3","$6","$4","$5","strftime","meridianOptions","weekDay","hour12","secs","mins","absOffsetHours","absOffsetMinutes","timezoneoffset","date_string","toHumanSize","kb","iterations","obj1","obj2","_typeof3","__w_pdfjs_require__","pdfjsSharedUtil","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDOMUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","setPDFNetworkStreamFactory","Response","ReadableStream","PDFFetchStream","PDFNetworkStream","LoopbackPort","PDFDataRangeTransport","PDFWorker","renderTextLayer","AnnotationLayer","createPromiseCapability","PasswordResponses","InvalidPDFException","MissingPDFException","SVGGraphics","NativeImageDecoding","CMapCompressionType","PermissionFlag","UnexpectedResponseException","OPS","VerbosityLevel","UNSUPPORTED_FEATURES","createValidAbsoluteUrl","removeNullCharacters","Util","RenderingCancelledException","getFilenameFromUrl","LinkTarget","addLinkAttributes","loadScript","GlobalWorkerOptions","apiCompatibilityParams","unreachable","utf8StringToString","stringToUTF8String","stringToPDFString","stringToBytes","string32","setVerbosityLevel","readUint32","readUint16","readInt8","log2","isEvalSupported","isLittleEndian","isSameOrigin","isSpace","isNum","isEmptyObj","isBool","isArrayBuffer","getVerbosityLevel","getLookupTableFactory","getInheritableProperty","deprecated","bytesToString","assert","arraysToBytes","arrayByteLength","FormatError","XRefParseException","toRomanNumerals","UnknownErrorException","TextRenderingMode","StreamType","PasswordException","MissingDataException","AbortException","ImageKind","FontType","AnnotationType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","_streams_polyfill","_url_polyfill","ERRORS","WARNINGS","INFOS","verbosity","msg","cond","code","details","NullCharactersRegExp","bytes","Uint8Array","charCodeAt","byteLength","digits","rgbBuf","makeCssRgb","m1","m2","applyTransform","applyInverseTransform","getAxialAlignedBoundingBox","p3","p4","inverseTransform","apply3dTransform","singularValueDecompose2dScale","transpose","sx","sy","normalizeRect","rect1","rect2","compare","orderedX","orderedY","ROMAN_NUMBER_MAP","PDFStringTranslateTable","contentType","forceDataSchema","ii","b1","b2","b3","d1","d2","d3","d4","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","closeStroke","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","smask","shadingPattern","font","SOLID","DASHED","BEVELED","INSET","UNDERLINE","READONLY","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","INVISIBLE","HIDDEN","PRINT","NOZOOM","NOROTATE","NOVIEW","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","UNKNOWN","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","NONE","BINARY","STREAM","DECODE","DISPLAY","NEED_PASSWORD","INCORRECT_PASSWORD","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","FILL","STROKE","FILL_STROKE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","lowerCase","isInteger","romanBuf","romanStr","itemLength","resultLength","MAX_ARGUMENT_COUNT","fromCharCode","strBuf","chunkEnd","subarray","capability","dict","_ref$getArray","getArray","_ref$stopWhenFound","stopWhenFound","loopCount","initializer","ch","baseUrl","otherUrl","other","absoluteUrl","_isValidProtocol","ex","buffer8","Uint32Array","level","prop","escape","unescape","globalScope","_pdfjsCompatibilityChecked","hasDOM","btoa","chars","Buffer","atob","scripts","originalDOMTokenListToggle","DOMTokenList","codePointAt","fromCodePoint","process","$export","INCLUDES","searchString","redefine","own","IS_FORCED","IS_GLOBAL","IS_PROTO","IS_BIND","expProto","__g","__e","dP","createDesc","anObject","IE8_DOM_DEFINE","toPrimitive","Attributes","bitmap","SRC","TO_STRING","$toString","TPL","inspectSource","safe","px","aFunction","that","isRegExp","defined","NAME","cof","MATCH","uid","_Symbol","USE_SYMBOL","SHARED","copyright","KEY","$includes","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","IObject","propertyIsEnumerable","toInteger","UNSCOPABLES","ArrayProto","getKeys","gOPS","pIE","toObject","$assign","aLen","getSymbols","isEnum","$keys","enumBugKeys","arrayIndexOf","IE_PROTO","LN2","classof","TAG","ARG","tryGet","callee","$at","iterated","LIBRARY","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","dPs","Empty","_createDict","iframeDocument","iframe","contentWindow","Properties","def","stat","ObjectProto","$iterators","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","addToUnscopables","_k","Arguments","Internal","newGenericPromiseCapability","OwnPromiseCapability","anInstance","forOf","speciesConstructor","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","PROMISE","versions","v8","$Promise","empty","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","_v","ok","reaction","exited","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","reason","onrejectionhandled","$reject","_w","$resolve","executor","onRejected","$$reject","iter","iterable","$index","alreadyCalled","race","forbiddenField","isArrayIter","getIterFn","BREAK","RETURN","_exports","iterFn","getIteratorMethod","SPECIES","defer","channel","port","invoke","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","ONREADYSTATECHANGE","port2","port1","onmessage","postMessage","importScripts","un","macrotask","WebKitMutationObserver","flush","standalone","PromiseCapability","$$resolve","promiseCapability","DESCRIPTORS","SAFE_CLOSING","riter","skipClosing","callbackfn","InternalMap","weak","fails","validate","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","ufstore","tmp","$WeakMap","getConstructor","NEED","_f","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","original","META","setDesc","FREEZE","preventExtensions","setMeta","fastKey","onFreeze","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","_l","UncaughtFrozenStore","findUncaughtFrozen","entry","ADDER","$iterDetect","inheritIfRequired","common","IS_WEAK","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","check","buggy","gOPD","COLLECTION","of","mapping","cb","mapFn","nextItem","$fromCodePoint","RangeError","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","gOPN","$Symbol","$JSON","_stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","replacer","$replacer","windowNames","getWindowNames","hiddenKeys","$values","isEntries","isReadableStreamSupported","IsPropertyKey","argument","Call","typeIsObject","createDataProperty","createArrayFromList","ArrayBufferCopy","destOffset","srcOffset","CreateIterResultObject","IsFiniteNonNegativeNumber","Infinity","InvokeOrNoop","PromiseInvokeOrNoop","returnValueE","PromiseInvokeOrPerformFallback","argsF","methodE","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","ValidateAndNormalizeQueuingStrategy","AssertionError","stack","rethrowAssertionErrorRejection","_require","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref$highWaterMark","_state","_storedError","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","WritableStreamDefaultController","__startSteps","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","AcquireWritableStreamDefaultWriter","stream","WritableStreamDefaultWriter","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","WritableStreamDealWithRejection","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","__errorSteps","storedError","abortRequest","WritableStreamRejectCloseAndClosedPromiseIfNeeded","__abortSteps","WritableStreamFinishInFlightClose","_closedPromise_resolve","_closedPromise_reject","_closedPromiseState","defaultWriterClosedPromiseResolve","WritableStreamCloseQueuedOrInFlight","defaultWriterClosedPromiseReject","_closedPromise","WritableStreamUpdateBackpressure","backpressure","_readyPromise_resolve","_readyPromise_reject","_readyPromise","_readyPromiseState","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","_ownerWritableStream","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultControllerGetDesiredSize","closeRequest","WritableStreamDefaultControllerAdvanceQueueIfNeeded","WritableStreamDefaultWriterEnsureClosedPromiseRejected","defaultWriterClosedPromiseResetToRejected","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","releasedError","chunkSize","strategySize","_strategySize","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","WritableStreamDefaultControllerGetChunkSize","writeRequest","WritableStreamAddWriteRequest","writeRecord","enqueueE","_controlledWritableStream","WritableStreamDefaultControllerGetBackpressure","WritableStreamDefaultControllerWrite","_underlyingSink","_queue","_queueTotalSize","normalizedStrategy","_strategyHWM","startResult","WritableStreamMarkCloseRequestInFlight","WritableStreamFinishInFlightCloseWithError","WritableStreamDefaultControllerProcessClose","WritableStreamMarkFirstWriteRequestInFlight","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamDefaultControllerProcessWrite","pair","_require4","_require5","underlyingSource","_reader","_disturbed","_readableStreamController","typeString","ReadableByteStreamController","ReadableStreamDefaultController","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","readable","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","pipeTo","_ref4","preventClose","preventAbort","preventCancel","reader","shuttingDown","currentWrite","isOrBecomesErrored","shutdownWithAction","shutdown","destClosed","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","ReadableStreamReaderGenericRelease","pipeLoop","ReadableStreamDefaultReaderRead","_ref5","branches","ReadableStreamTee","ReadableStreamBYOBReader","ReadableStreamDefaultReader","cloneForBranch2","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","branch1","_branch1","branch2","_branch2","_teeState","ReadableStreamDefaultControllerClose","value1","value2","ReadableStreamDefaultControllerEnqueue","create_ReadableStreamTeePullFunction","_cloneForBranch2","cancel1","_stream","cancelResult","create_ReadableStreamTeeBranch1CancelFunction","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","ReadableStreamDefaultControllerError","ReadableStreamAddReadIntoRequest","IsReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","ReadableStreamAddReadRequest","IsReadableStreamDefaultReader","readRequest","_readRequests","ReadableStreamClose","__cancelSteps","defaultReaderClosedPromiseResolve","ReadableStreamError","defaultReaderClosedPromiseReject","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadIntoRequests","ReadableStreamGetNumReadRequests","ReadableStreamHasBYOBReader","ReadableStreamHasDefaultReader","IsReadableStreamDisturbed","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","_ownerReadableStream","readerLockException","ReadableStreamReaderGenericCancel","IsReadableByteStreamController","byobReaderBrandCheckException","view","ArrayBuffer","isView","_controlledReadableStream","elementSize","DataView","BYTES_PER_ELEMENT","ctor","pullIntoDescriptor","byteOffset","bytesFilled","readerType","_pendingPullIntos","emptyView","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableByteStreamControllerHandleQueueDrain","_closeRequested","ReadableByteStreamControllerError","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerPullInto","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","__pullSteps","_underlyingSource","_pullAgain","_pulling","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","ReadableStreamDefaultControllerShouldCallPull","ReadableStreamBYOBRequest","_associatedReadableByteStreamController","_view","bytesWritten","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespondInternal","ReadableByteStreamControllerRespond","firstDescriptor","ReadableByteStreamControllerRespondWithNewView","underlyingByteSource","_underlyingByteSource","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","_autoAllocateChunkSize","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","transferredBuffer","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerEnqueue","viewE","bufferE","_byobRequest","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerRespondInClosedState","remainderSize","remainder","ReadableByteStreamControllerRespondInReadableState","transformStream","readableStream","writableStream","TransformStream","TransformStreamEnqueueToReadable","_errored","_readableClosed","_readableController","TransformStreamErrorIfNeeded","TransformStreamSetBackpressure","TransformStreamCloseReadableInternal","TransformStreamErrorInternal","_writableDone","_writableController","TransformStreamReadableReadyPromise","_backpressureChangePromise","_backpressureChangePromise_resolve","resolution","TransformStreamDefaultTransform","transformStreamController","_controlledTransformStream","IsTransformStreamDefaultController","IsTransformStream","TransformStreamSink","startPromise","_transformStream","_startPromise","_transforming","transformer","_transformer","_transformStreamController","TransformStreamTransform","TransformStreamSource","TransformStreamDefaultController","TransformStreamCloseReadable","TransformStreamError","readableController","readableStrategy","writableStrategy","startPromise_resolve","_readable","sink","_writable","desiredSize","isURLSupported","PolyfillURL","OriginalURL","revokeObjectURL","relativePathDotMapping","isRelativeScheme","scheme","_isInvalid","IDNAToASCII","percentEscape","unicode","percentEscapeQuery","EOF","ALPHA","ALPHANUMERIC","stateOverride","errors","seenAt","seenBracket","_scheme","_isRelative","_query","_fragment","_schemeData","_host","_port","_path","_username","_password","nextC","nextNextC","cp","tempC","temp","JURL","_url","authority","PDFPageProxy","PDFDocumentProxy","sliceIterator","_util","_dom_utils","_font_loader","_api_compatibility","_canvas","_global_scope2","_interopRequireDefault","_worker_options","_message_handler","_metadata","_transport_stream","_webgl","fakeWorkerFilesLoader","isWorkerDisabled","fallbackWorkerSrc","useRequireEnsure","requirejs","toUrl","createPDFNetworkStream","dynamicLoaderSupported","worker","WorkerMessageHandler","pdfjsFilePath","currentScript","PDFDocumentLoadingTask","nextDocumentId","_capability","_transport","_worker","docId","onPassword","onProgress","onUnsupportedFeature","initialData","_rangeListeners","_progressListeners","_progressiveReadListeners","_readyCapability","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","_this2","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_this3","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","pdfInfo","transport","loadingTask","_pdfInfo","pageNumber","getPage","getPageIndex","getDestinations","getDestination","getPageLabels","getPageMode","getAttachments","getJavaScript","getOutline","getPermissions","getMetadata","downloadInfoCapability","getStats","startCleanup","numPages","fingerprint","loadingParams","pageIndex","pageInfo","pdfBug","_pageInfo","_stats","StatTimer","DummyStatTimer","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","intentStates","userUnit","getViewport","dontFlip","PageViewport","viewBox","getAnnotations","intent","annotationsPromise","annotationsIntent","_this4","stats","renderingIntent","canvasFactory","DOMCanvasFactory","webGLContext","WebGLContext","enableWebGL","intentState","displayReadyCapability","receivingOperatorList","operatorList","fnArray","argsArray","lastChunk","messageHandler","renderInteractiveForms","renderTasks","internalRenderTask","_tryCleanup","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","transparency","initializeGraphics","operatorListChanged","getOperatorList","opListTask","opListReadCapability","streamTextContent","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","normalizeWhitespace","combineTextItems","disableCombineTextItems","getTextContent","getReader","pump","_textContent$items","_toConsumableArray","pageCache","waitOn","renderCompleted","resetStats","_startRenderPage","_renderPageChunk","operatorListChunk","_listeners","_defer","_deferred","transfers","_this5","cloneValue","transferable","nextFakeWorkerId","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","pdfjsWorker","fakeWorkerFilesLoadedCapability","pdfWorkerPorts","_ref2$name","_ref2$port","_ref2$postMessageTran","postMessageTransfers","_ref2$verbosity","_webWorker","_messageHandler","_initializeFromPort","_initialize","MessageHandler","_this6","Worker","terminateEarly","onWorkerError","terminate","_setupFakeWorker","supportTypedArray","supportTransfers","sendTest","testObj","_this7","mainWorkerMessageHandler","setupFakeWorkerGlobal","workerHandler","setup","fromPort","WorkerTransport","networkStream","fontLoader","FontLoader","_params","CMapReaderFactory","cMapUrl","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_this8","page","terminated","sendWithPromise","cancelAllRequests","_this9","getFullReader","onPull","enqueue","onCancel","_this10","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","pdfDocument","exception","_this11","_this12","_data","exportedData","hasData","exportedError","fontRegistry","FontInspector","registerFont","fontAdded","FontFaceObject","disableFontFace","ignoreErrors","_onUnsupportedFeature","fontObjs","_data2","imageData","pageProxy","img","pageNum","_data3","rgbaLength","buf","Uint8ClampedArray","tmpCanvas","tmpCtx","getImageData","_j","_ref6","featureId","_this13","_this14","metadata","Metadata","contentDispositionFilename","_this15","disableAutoFetch","disableCreateObjectURL","nativeImageDecoderSupport","ensureObj","objId","resolved","isResolved","RenderTask","_internalRenderTask","onContinue","canvasInRendering","operatorListIdx","graphicsReadyCallback","graphicsReady","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","canvasContext","canvas","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","imageLayer","beginDrawing","viewport","updateOperatorList","_this16","_this17","executeOperatorList","endDrawing","rangeTransport","pdfBytes","rangeChunkSize","DOMCMapReaderFactory","stopAtErrors","NativeImageDecoderValues","maxImageSize","disableRange","disableStream","workerParams","workerPort","pdfDataRangeTransport","apiVersion","docBaseUrl","workerId","_fetchDocument","PDFDataTransportStream","httpHeaders","pdfNetworkStreamFactory","DOMSVGFactory","DEFAULT_LINK_REL","SVG_NS","canvasAndContext","_ref$baseUrl","_ref$isCompressed","responseType","cMapData","compressionType","_ref3$offsetX","_ref3$offsetY","_ref3$dontFlip","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","_ref4$scale","_ref4$rotation","_ref4$dontFlip","tl","br","SELF","BLANK","PARENT","TOP","LinkTargetStringMap","longest","_ii","span","padEnd","LinkTargetValues","targetIndex","anchor","query","lastIndexOf","BaseFontLoader","nativeFontFaces","styleElement","loadingContext","requests","nextRequestId","nativeFontFace","fonts","rule","sheet","insertRule","cssRules","rules","fontsToLoad","fontLoadPromises","getNativeFontPromise","family","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","createFontFaceRule","_queueLoadingCallback","isSyncFontLoadingSupported","_prepareFontLoadEvent","otherRequest","_BaseFontLoader","GenericFontLoader","loadTestFontId","int32","spliceString","insert","called","_loadTestFont","XXXX_VALUE","checksum","loadedName","isFontReady","fillText","IsEvalSupportedCached","translatedData","_ref$isEvalSupported","_ref$disableFontFace","_ref$ignoreErrors","_ref$onUnsupportedFea","_ref$fontRegistry","compiledGlyphs","FontFace","mimetype","character","cmds","js","cmd","compatibilityParams","isIOSChrome","_pattern_helper","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","_originalTransform","_originalSetTransform","_transformMatrix","_transformStack","ad_bc","bc_ad","old","cosValue","sinValue","CachedCanvases","getCanvas","trackTransform","canvasEntry","CanvasExtraState","alphaIsShape","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","setCurrentPoint","canvasCtx","stateStack","pendingClip","pendingEOFill","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","imgData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","srcDiff","kEnd","kEndUnrolled","mask","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillRule","globalAlpha","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","composeSMask","layerCtx","maskCtx","layer","subtype","composeFn","hasBackdrop","chunkHeight","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_ref$background","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","breakIt","deps","nn","depObjId","objsPool","endSMaskGroup","endLayout","limit","dashPhase","flatness","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","getSinglePixelWidth","xw","yh","bezierCurveTo","consumePath","getPattern","needRestore","pendingTextPaths","beginPath","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","getPathGenerator","strokeText","glyphs","showType3Text","glyphsLength","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","glyph","scaledX","scaledY","scaledAccentX","scaledAccentY","vmetric","vx","vy","restoreNeeded","fontChar","accent","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","patternIR","inv","bl","ul","ur","x0","y0","isolated","knockout","bounds","canvasBounds","imageSmoothingEnabled","mozImageSmoothingEnabled","domImage","getCanvasPosition","appendImage","isPatternFill","compiled","j0","width1","POINT_TYPES","lineSize","data0","sum","Int32Array","outlines","pp","coords","p0","jj","compileType3Glyph","maskCanvas","imgToPaint","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","ShadingIRs","fromIR","r1","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","c1","c2","c3","rowSize","x3","y3","xa","car","cag","cab","xb","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","x1_","x2_","drawFigure","figure","ps","verticesPerRow","rows","cols","combinesScale","figures","boundsWidth","boundsHeight","paddedWidth","BORDER_SIZE","paddedHeight","drawFigures","Mesh","owner","matrixScale","temporaryPatternCanvas","createPattern","Dummy","PaintType","xstep","ystep","paintType","tilingType","createPatternCanvas","topLeft","botRight","curMatrixScale","combinedScale","setFillAndStrokeStyleToContext","setScale","transformToScale","tmpTranslate","clipBbox","tmpScale","scaleToContext","bboxWidth","bboxHeight","cssColor","shadingIR","_regenerator2","resolveCall","mark","_callee","_context","abrupt","gen","_x2","_x3","wrapReason","makeReasonSerializable","resolveOrReject","sourceName","comObj","callbackId","streamId","streamSinks","streamControllers","callbacksCapabilities","ah","actionHandler","_onComObjOnMessage","_processStreamMessage","isReply","_sourceName","_targetName","_createStreamSink","actionName","queueingStrategy","startCapability","startCall","isClosed","pullCapability","pullCall","cancelCapability","cancelCall","sendStreamRequest","streamSink","isCancelled","lastDesiredSize","sinkCapability","sendStreamResponse","deleteStreamController","hadRuntime","regeneratorRuntime","oldRuntime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","skipTempReset","_sent","tryEntries","resetTryEntry","rootRecord","completion","rval","dispatchException","loc","caught","record","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","finallyEntry","afterLoc","thrown","delegateYield","resultName","nextLoc","protoGenerator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","unwrapped","previousPromise","callInvokeWithMethodAndArg","pushTryEntry","locs","iteratorMethod","_xml_parser","_repair","xmlDocument","SimpleXMLParser","_parse","codes","rdf","XMLParserErrorCode","isWhitespace","XMLParserBase","entity","onResolveEntity","skipWs","attrValue","attrEndChar","attrEndIndex","_resolveEntities","attrStart","onError","onEndElement","pi","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","_parseContent","onBeginElement","onText","isEmpty","SimpleDOMNode","_XMLParserBase","_currentFragment","_stack","_errorCode","parseXml","isWhitespaceString","lastElement","_asyncToGenerator","_queuedChunks","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","transportReady","PDFDataTransportStreamReader","queuedChunks","_done","_filename","_requests","_headersReady","PDFDataTransportStreamRangeReader","_begin","_end","_queuedChunk","_enqueue","firstReader","_removeRangeReader","requestDataRange","requestCapability","_callee2","_context2","_ref$enable","_enabled","WebGLUtils","tryInitGL","loadShader","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","createVertexShader","VERTEX_SHADER","createFragmentShader","FRAGMENT_SHADER","createProgram","shaders","program","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture","textureId","activeTexture","texture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","currentGL","currentCanvas","generateGL","premultipliedalpha","smaskCache","figuresCache","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","initSmaskGL","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","deleteTexture","deleteBuffer","scaleLocation","offsetLocation","colorLocation","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","NonWhitespaceRegexp","styleBuf","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","_textDivs","_textDivProperties","_viewport","fontName","fontHeight","fontAscent","ascent","descent","_fontInspectorEnabled","dataset","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","_canceled","textDivs","textDivsLength","_renderingDone","expand","expanded","boxes","x1New","x2New","expandBoundsLTR","expandBounds","divProperties","ts","Float64Array","findPositiveMin","boxScale","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","_processItems","styleCache","textLayerFrag","_render","mozOpaque","textItems","textStyles","expandTextDivs","expandDivs","renderParameters","AnnotationElementFactory","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","linkService","downloadManager","imageResourcesPath","svgFactory","_createContainer","transformOrigin","borderStyle","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","borderBottomStyle","PopupElement","contents","hideWrapper","_AnnotationElement","newWindow","externalLinkTarget","externalLinkRel","_bindNamedAction","_bindLink","getDestinationHash","navigateTo","getAnchorUrl","executeNamedAction","_AnnotationElement2","hasPopup","alt","l10nId","l10nArgs","_createPopup","_AnnotationElement3","_WidgetAnnotationElem","hasAppearance","fieldValue","multiLine","readOnly","maxLen","maxLength","comb","combWidth","letterSpacing","_setTextStyle","textAlignment","textAlign","fontStyle","_WidgetAnnotationElem2","_WidgetAnnotationElem3","fieldName","buttonValue","_LinkAnnotationElemen","_WidgetAnnotationElem4","selectElement","combo","multiSelect","multiple","optionElement","displayValue","exportValue","_AnnotationElement4","parentType","parentId","parentLeft","parentWidth","pinned","hideElement","_formatContents","_toggle","_show","_hide","pin","unpin","_AnnotationElement5","lineCoordinates","_AnnotationElement6","square","_AnnotationElement7","_AnnotationElement8","containerClassName","svgElementName","vertices","_PolylineAnnotationEl","_AnnotationElement9","inkLists","inkList","_AnnotationElement10","_AnnotationElement11","_AnnotationElement12","_AnnotationElement13","_AnnotationElement14","_AnnotationElement15","_this23","_this23$data$file","eventBus","_download","downloadData","_is_node2","SVG_DEFAULTS","convertImgDataToPng","PNG_HEADER","crcTable","writePngChunk","crc","crc32","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","output","deflateSync","pngLength","CHUNK_WRAPPER_SIZE","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","pf","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","XLINK_NS","clipCount","maskCount","tgrp","executeOpTree","loadDependencies","fnArrayLen","getSVG","svgElement","opTree","convertOpList","REVOPS","opList","opListLen","opListToTree","opTreeLen","lineMatrix","xcoords","txtElement","txtgrp","charWidth","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","setStrokeAlpha","setFillAlpha","opLength","clipId","clipPath","clipElement","getAttributeNS","imgObj","imgEl","imgSrc","cliprect","rootGroup","_ensureClipGroup","_network_utils","fs","http","https","fileUriRegex","sourceUrl","parsedUrl","isHttp","isFsUrl","_fullRequest","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","BaseRangeReader","createRequestOptions","headers","auth","_BaseFullReader","handleResponse","statusCode","_setReadableStream","_validateRangeRequest","validateRangeRequestCapabilities","allowRangeRequests","suggestedLength","extractFilenameFromHeader","_request","_BaseRangeReader","_httpHeaders","_BaseFullReader2","lstat","createReadStream","_BaseRangeReader2","validateResponseStatus","createResponseStatusError","_content_disposition","contentDisposition","getFilenameFromContentDispositionHeader","returnValues","needsEncodingFixup","toParamRegExp","rfc2616unquote","fixupEncoding","rfc2047decode","rfc5987decode","_match2","quot","_matches$_n","_quot","_part","rfc2231getparam","_filename2","attributePattern","flags","textdecode","encoding","decoder","TextDecoder","fatal","decode","quotindex","extvalue","encodingend","createFetchOptions","abortController","signal","credentials","redirect","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","Headers","rangeStr","NetworkManager","getXhr","currXhrId","pendingRequests","loadedRequests","getArrayBuffer","supportsMozChunked","_source","_manager","PDFNetworkStreamFullRequestReader","manager","onHeadersReceived","_onHeadersReceived","onProgressiveData","_onProgressiveData","onDone","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","PDFNetworkStreamRangeRequestReader","_requestId","requestRange","onClosed","xhrId","pendingRequest","expectedStatus","mozChunked","onStateChange","onprogress","xhrStatus","rangeHeader","hasPendingRequests","getRequestXhr","isStreamingRequest","isPendingRequest","isLoadedRequest","abortAllRequests","_onRangeRequestReaderClosed","fullRequestXhrId","fullRequestXhr","networkManager","lengthComputable","_close","__webpack_amd_options__","require","minLength","resultsTarget","inputTarget","mouseDown","onInputChange","onResultsClick","onResultsMouseDown","onInputBlur","onKeydown","onInputFocus","hideAndRemoveOptions","commit","HTMLAnchorElement","hasHiddenTarget","hiddenTarget","textValue","fetchResults","identifyOptions","URLSearchParams","Autocomplete","incompatible","invalid_plugin","invalid_title","permission_denied","sw_notification_error","sw_registration_error","unknown_interface","_win","GRANTED","DENIED","_permissions","_requestWithCallback","_requestAsPromise","Notification","permission","webkitNotifications","checkPermission","requestPermission","mozNotification","external","msIsSiteMode","objectMerge","isUndefined","x32","requireInteraction","serviceWorker","getFunctionBody","showNotification","vibrate","silent","getNotifications","createNotification","msSiteModeClearIconOverlay","msSiteModeSetIconOverlay","x16","msSiteModeActivate","_currentId","_notifications","Permission","_agents","firefox","ms","webkit","_configuration","fallback","_removeNotification","_closeNotification","_addNotification","_prepareNotification","_serviceWorkerCallback","onShow","_createCallback","plugin","adapters","WebSocket","_adapters$logger","messages","classCallCheck","createClass","secondsSince","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","startedAt","stoppedAt","startPolling","getPollInterval","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","_constructor$pollInte","pollInterval","interval","clamp","connectionIsStale","staleThreshold","disconnectedRecently","reopen","isOpen","INTERNAL","message_types","welcome","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","subscriptions","monitor","disconnected","webSocket","isActive","getState","uninstallEventHandlers","installEventHandlers","allowReconnect","reopenDelay","getProtocol","isState","isProtocolSupported","_JSON$parse","reconnect","reload","notifyAll","willAttemptReconnect","Subscription","command","unsubscribe","Subscriptions","channelName","subscription","ensureActiveConnection","sendCommand","callbackName","Consumer","createWebSocketURL","getConfig","createConsumer","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","isEncoding","actual","isBuffer","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","noop","env","argv","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectToString","nativeMax","nativeMin","isObjectLike","isBinary","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","webpackContext","req","webpackContextResolve","onAdd","users","selUsersTarget","accessLevel","selAccessLevelTarget","_members","saveToHiddenField","onRemove","srcElement","hiddenMembersTarget","renderMembers","countTarget","tbodyTarget","renderMember","_levelNames","tr","levelsValue","membersValue","ApplicationController","levels","_guessTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","Turbolinks","visit","onChange","highlightToggle","targetValue","_submitter","onBefore","uiLoading","onComplete","onSuggest","fieldTarget","suggestTargets","showMode","showSubmit","_originalForms","initEditMode","templateTarget","btnAddContactTarget","insertAdjacentHTML","highlightLast","wrapperTarget","newRecord","highlightRemoval","_contactId","_saveOriginalForm","swalOptions","_submitForm","editButtonTargets","valueValue","totalValue","colorValue","_chart","chartTarget","onToggleContent","_expanded","contentTarget","indicatorTarget","_hasContent","hasContentTarget","titleTarget","hasExpandedIndicatorTarget","hasContent","FilterableList","onRefreshListeners","removeListeners","onSubmit","submitOnClickTargets","callApi","alert","updateLinkHref","formSerialized","withUpdateLinkTargets","listHolderEl","fadeTo","formSerializedParams","formData","newUrl","onUpdate","urlValue","_objectId","objectValueChanged","objectVal","_debouncedUpdate","objectValue","onDidOpen","onDidDestroy","onWillClose","removeTinyMceEditors","tinymce","isTurbolinksPreview","_dropifyMount","_dropifyUnMount","_dropify","dropify","destroyTarget","hasTimezoneGuessTarget","timezoneGuessTarget","_title","titleValue","er","_id","idValue","onEventOccurred","unopenedCount","showToast","showPush","refreshCountTarget","listenDispatchEvent","Push","onPaddleResult","initTheme","initLocales","select2Mount","select2UnMount","select2","dropdownAutoWidth","initMainIconMenu","initTopbarMenu","initNavbarMenu","Waves","App","timeago","settings","strings","pageUrl","siblings","targ","onProductTypeChange","selectedType","updatePaneTypes","initTypeRadio","updateUi","typeTargets","updatePaneAddon","paneAddonTarget","paneTypeStandaloneTarget","paneTypeVariableTarget","paneTypeGroupedTarget","btnAddProductItemTarget","_itemId","_restoreOriginalForm","btnAddVariantTarget","_variantId","isMasterTargets","_template","oldStatusId","_oldStatusId","statusId","dateTarget","numTime","week","setDate","setMonth","validUntilTarget","onAddItem","toggleNewItemForm","onBtnCancel","onNewItemCreated","recomputePositions","onRemoveItem","itemId","newItemFormWrapperTarget","newItemBtnWrapperTarget","itemsTarget","recomputePosition","field","onAjaxStart","panLoadingTarget","panFormTarget","onAjaxEnd","btnCancelTarget","_isGrouped","reloadPanGrouped","onSelectProduct","productType","selectedProductId","isVariable","panChkDescTarget","updateProductVariants","updateGroupedProduct","updateUI","onSelectVariant","selectedVariantId","onIncludeDescChange","includeDesc","onVariantsLoaded","variants","$select","selectVariantTarget","selectProductTarget","resetForm","panVariantTarget","panGroupedTarget","updateImportParams","btnImportTarget","product_id","variant_id","split_group","_selectedSplitGroup","include_desc","_productsUrl","productsUrl","updateUIVariantLoading","panVariantLoadingTarget","panVariantSelectTarget","updateBtnImportState","_selectedProductId","_isVariable","_includeDesc","_selectedVariantId","onLoadFromGroup","tplUrl","btnLoadTarget","btn","selectTermGroupTarget","loadingTarget","loadTermsWrapperTarget","onAddTerm","_termId","onThemeChange","callPreview","onPreviewLoaded","panPreviewTarget","themeId","_previousTheme","uiUpdateButtons","_baseUrl","initButtons","selThemeTarget","btnExportPdfTarget","btnShareByEmailTarget","loadingEl","_loadingEl","onSelect","hasThenFetchValue","callThenFetch","targetAttributeValue","onClear","selectedData","thenFetchValue","targetIdValue","targetId","thenFetch","setAjaxOptions","hasUrlValue","term","processResults","itemData","textColor","formatSelection","formatWithColor","formatWithImage","onValidateUniqueBy","optionUniqueBy","alreadySelected","selectedValues","optionFormatResult","templateSelection","templateResult","onAddValue","newOption","Option","selectTarget","_options","newVal","updateTax","disableTaxValue","_oldTax","plusTaxValue","hasVal","taxRate","recompute","grossTotal","taxTotal","totalsTargets","destroyNode","hasTax","grossTotalStr","totalGrossRowTarget","taxRowTarget","totalGrossAmountTarget","taxAmountTarget","taxTitleTarget","totalTarget","highlightText","_connected","plusTax","disableTax","onToggleDescription","descriptionTarget","expandedIndicatorTarget","_debouncedRecompute","getDiscount","price","discount","hasDiscountTarget","discountTarget","hasDiscountValueTarget","discountPercentEls","discountValueTarget","priceTarget","quantityTarget","_hasDescription","hasDescriptionTarget","discountPercentWrapperTarget","hasDescription","_discountPercentEl","confirmTitle","initRangeSlider","txtCoverSizeTarget","_uiRangeSliders","ionRangeSlider","skin","postfix","onFinish","destroyRangeSlider","onPositionChange","onRepeatChange","onUpload","fileInputTarget","onImageSelected","_hasFile","sendFile","onRemoveImage","hiddenBlobIdTarget","hiddenBlobUrlTarget","onUploaded","rv","selCoverPositionTarget","setLoading","renderColor","renderPosition","renderRepeat","renderSize","showPosition","selCoverRepeatTarget","showRepeat","panCoverSizeTarget","showSize","blob_id","txtCoverColorTarget","uri","_uploadUrl","fd","onSlideClick","onSlideChange","refreshSelectedSlide","_selectedSlide","hasFieldTarget","getSlideById","idS","hasInitialValue","initialValue","Carousel","onTogglePreview","panEditorTarget","previewing","onToggleHasCover","btnShowCoverTarget","setActiveTab","btnShowContentTarget","onShowContent","refreshActiveTab","onShowContentSettings","onShowCover","onCoverImageChange","_coverData","tryLoadCover","tabButton","tabs","editorIdx","activeEditor","editor","panCoverOptionsTarget","_tryLoadCover","coverEditor","getDoc","loadCover","backgroundSize","backgroundPosition","backgroundRepeat","tabFieldName","isCoverEditor","formTarget","startsWith","getElementsByName","_previewUrl","_previewing","_activeEditorIndex","_isTemplate","hasTemplateValue","_isTemplateCover","templateValue","_isTemplateContent","EDITOR_IDX_CONTENT","EDITOR_IDX_COVER_CONTENT","setActive","_tabs","tabThemeContentTarget","editorFieldName","btnShowContentSettingsTarget","tabThemeContentSettingsTarget","tabThemeCoverPageTarget","onSelAreaChange","selectedOptions","renderFontOptions","renderLogoOptions","panCustomTextTarget","panFontOptionsTarget","panLogoTarget","selAreaTarget","_setSelectVal","timezoneTarget","timezone","countryTarget","country","onInit","parentElCtrl","onEditorInit","_selector","stripHtml","tinymceFocusStack","execCommand","_direction","_images_upload_url","images_upload_url","lang","locale_rtl","language","directionality","init_instance_callback","tinyOptions","TinyMCERails","hasParentElValue","_parentElCtrl","parentElValue","inline","toolbar_mode","min_height","mention_url","_tooltips","_generateSlug","slugTarget","buildOptions","showAll","dropdownCssClass","selectionCssClass","tags","createTag","confirmed","avatar_url","full_name","isGeneric","_isGeneric","noResults","emailIsValid","newEmail","newTag","user","markup","onCheckoutClose","dataLayer","panSuccessTarget","btnCheckoutCloseTarget","hasBtnCheckoutCloseTarget","onPaddleEvent","refreshUrlValue","initPaddle","Paddle","Setup","vendor","vendorIdValue","eventCallback","vendorId","refreshUrl","argsValue","Checkout","hasChartTarget","onFileChange","labelTarget","hasFile","titleBlankValue","btnRemoveTarget","existsValue","titleBlank","exists","_contentEl","formEl","_containerEl","targetDivIdValue","targetDivId","addInputListeners","_expandedManually","_inputListenersAdded","onInput","removeInputListeners","toggleOpened","tinyCtrl","_editor","onCancelModal","_hasInput","_expandedPreviously","toggleActions","onFocusAndEdit","setVisibility","hasPanClosedTarget","panClosedTarget","hasPanOpenedTarget","panOpenedTarget","opened","hasBtnSubmitTarget","btnSubmitTarget","panActionsTarget","hasExpandedValue","expandedValue","onToggleNewComment","panCommentNewTarget","newNoteCtrl","onReplyToComment","parentNote","onCallEditor","ed","insertMention","userIdValue","userNameValue","insertContent","_newNoteCtrl","userId","userName","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","punycode","util","Url","slashes","urlParse","resolveObject","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","ae","qm","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","hasTrailingSlash","up","isAbsolute","freeExports","freeModule","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","extra","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","qs","sep","regexp","maxKeys","kstr","vstr","xs","stringifyPrimitive","objectKeys","ks","multipleValue","onCheck","refreshDefined","checkboxTargets","definedValue","definedCountTarget","chk","initDropdownAnimations","slideDown","slideUp","_items","onCheckChange","setSelectAcross","updateCheckboxStatus","onTogglePage","setSelectPage","allStatus","onSelectAll","setAction","actionUrl","uiHiddenAction","tableTarget","uiContainer","uiSelectAcross","checkedIds","totalCount","pageCount","selectedTargets","initActionEvents","actionTargets","selectAcross","chkEl","actionTitle","actionIcon","verify","verifyText","isSelectAcross","realCount","chkOverallTarget","indeterminate","allSelected","selectedCountMsg","selectedCountTarget","showPrompt","promptTarget","selectAllTarget","showActions","updateActions","actionsContainerTarget","columnsTarget","define","PromiseImpl","accidentalStrictMode","clearCache","setProgressBarDelay","copyObject","throttle","Location","absoluteURL","requestURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","requestStarted","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","ontimeout","onabort","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","replaceChild","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","_t9","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","createVisit","nodeIsVisitable","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","md51_array","rhex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","targetArray","sourceArray","appendBinary","_buff","_length","_hash","_finish","setState","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","readAsArrayBuffer","eventInit","toArray$1","BlobRecord","content_type","byte_size","requestDidLoad","requestDidError","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","DirectUploadController","directUpload","hiddenInput","dispatchError","signed_id","uploadRequestDidProgress","DirectUploadsController","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","submitForm","ActiveStorage","channels","decimCount","negativeSign","amountVal","HAS_TEMPLATE_SUPPORT","HAS_RANGE_SUPPORT","createRange","toElement","createFragmentFromTemplate","selectNode","createContextualFragment","createFragmentFromRange","fragment","createFragmentFromWrap","compareNodeNames","fromEl","toEl","fromCodeStart","toCodeStart","fromNodeName","toNodeName","syncBooleanAttrProp","specialElHandlers","OPTION","parentName","selectedIndex","INPUT","TEXTAREA","newValue","oldValue","SELECT","curChild","defaultGetNodeKey","morphAttrs","fromNode","toNode","toNodeHtml","getNodeKey","onBeforeNodeAdded","onNodeAdded","onBeforeElUpdated","onElUpdated","onBeforeNodeDiscarded","onNodeDiscarded","onBeforeElChildrenUpdated","childrenOnly","fromNodesLookup","keyedRemovalList","addKeyedRemoval","walkDiscardedChildNodes","skipKeyedNodes","removeNode","handleNodeAdded","unmatchedFromEl","morphEl","toElKey","curToNodeKey","curFromNodeKey","fromNextSibling","toNextSibling","matchingFromEl","curToNodeChild","curFromNodeChild","outer","isSameNode","curFromNodeType","isCompatible","onBeforeNodeAddedResult","actualize","ownerDocument","cleanupFromEl","specialElHandler","morphChildren","indexTree","namespaceURI","morphedNode","morphedNodeType","toNodeType","nextChild","moveChildren","elToRemove","morphdomFactory","attrNamespaceURI","toNodeAttrs","localName","fromNodeAttrs","hasAttributeNS","removeAttributeNS","inputTags","mutableTags","textInputTypes","datetime","focusElement","xpathToElement","xpath","evaluate","XPathResult","FIRST_ORDERED_NODE_TYPE","singleNodeValue","getClassNames","flat","processElements","operation","selectAll","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","shouldMorphCallbacks","isEqualNode","permanentAttributeName","permanent","ignore","didMorphCallbacks","shouldMorph","didMorph","DOMOperations","focusSelector","graft","innerHtml","insertAdjacentHtml","insertAdjacentText","ordinal","outerHtml","addCssClass","_element$classList","removeCssClass","_element$classList2","setDatasetProperty","setStyles","clearStorage","storage","sessionStorage","localStorage","removeStorageItem","removeItem","setCookie","cookie","setStorageItem","setItem","consoleLog","playSound","canplaythrough","audio","play","operations","emitMissingElementWarnings","Audio","unlockAudio","refreshActiveState","$icons","connected","received","cableReady","CableReady","definitionsFromContext","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","hasLazyLoadingValue","lazyLoad","stopRefreshing","hasRefreshIntervalValue","startRefreshing","lazyLoadingThresholdValue","rootMargin","lazyLoadingRootMarginValue","IntersectionObserver","isIntersecting","_fetch","loadScriptsValue","loadScripts","refreshTimer","refreshIntervalValue","lazyLoading","lazyLoadingThreshold","lazyLoadingRootMargin","refreshInterval","asyncGeneratorStep","_throw","_x","hasCardTarget","cardTarget","remoteContent","contextComponents","ContentLoader","Popover","DataConfirmModal","txt","remote","verifyLabel","getOptions","headerStyle","buttonStyle","autocapitalize","buildModal","validateEmail","_checkChanges","_email","emailTarget","onEmailChanged","_checkOtpRequired","_otpRequired","_emailLoading","otpUrlValue","otp_required","_refreshUi","_loading","emailIconNormalTarget","emailIconSpinnerTarget","panOtpTarget","_interval","otpUrl","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","getParentOrHost","includeCTX","_throttleTimeout","R_SPACE","defaultView","selfOnly","appliedTransforms","matrixFn","DOMMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","getRelativeScrollOffset","winScroller","includeSelf","gotSelf","elemCSS","overflowX","isRectEqual","scrollBy","Polymer","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animationResetTimer","currentRect","animatingX","animatingY","repaint","animated","plugins","initializeByDefault","PluginManager","pluginEvent","sortable","eventCanceled","eventNameGlobal","pluginName","initializePlugins","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","cloneEl","oldIndex","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","pullMode","lastPutMode","allEventProperties","ghostEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","_detectDirection","elCSS","elWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","sameGroup","otherGroup","originalGroup","checkPull","checkPut","revertClone","nearestEmptyInsertDetectEvent","nearest","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","preventOnFilter","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","_nextTick","_cancelNextTick","_getDirection","pointerType","originalTarget","composedPath","_saveInputCheckedState","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","getSelection","removeAllRanges","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","spacer","_ghostIsLast","changed","targetBeforeFirstSwap","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","_getInsertDirection","_getSwapDirection","dragIndex","moveVector","insertion","_showClone","_offMoveEvents","_offUpEvents","dropEffect","_globalDragOver","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scrollCustomFn","sens","scrollSensitivity","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","onSpill","Revert","Remove","startIndex","dragStart","parentSortable","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","onUnchoose","autoSubmitSelector","onEnd","uniqueIdCounter","isCssEmbeddedFor","objects","hasProp","uniqueId","setBoxHeights","expandedHeight","cssMaxHeight","defaultHeight","readmore","collapsedHeight","embedCSS","blockCSS","buildToggle","htmlString","toggleLink","isEnvironmentSupported","CharacterData","DocumentType","immediate","resizeBoxes","callNow","later","heightMargin","moreLink","lessLink","startOpen","sourceOrder","blockProcessed","beforeToggle","afterToggle","Readmore","instanceSelector","toggleElement","transitionendHandler","transitionEvent","VERSION","_readmore","startAt","renderPages","pages","renderContext","fetchPDF","pdfData","getPages","pdfjs","pdf","_pdf"],"mappings":"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","file":"js/application-f2df078e5e9d425108e3.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"1\":\"vendors~pdfjsWorker\"}[chunkId]||chunkId) + \"-\" + {\"1\":\"3b0f234cacc133a8b64e\"}[chunkId] + \".chunk.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 = \"/packs/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 106);\n","import { Controller } from \"stimulus\";\nimport Velocity from \"velocity-animate\";\n\nexport default class extends Controller {\n get isTurbolinksPreview() {\n return document.body.hasAttribute(\"data-turbolinks-preview\");\n }\n\n get classList() {\n return this.element.classList;\n }\n\n bindElementController = () => {\n this.element.controller = this;\n };\n\n isBlank = (str) => {\n return !str || /^\\s*$/.test(str);\n };\n\n parseBool = (val, defaultVal = null) => {\n if (val === \"true\") return true;\n if (val === \"false\") return false;\n return defaultVal;\n };\n\n formatMoney = (amount, decimalCount = 2, decimal = \".\", thousands = \",\") => {\n return window.formatMoney(amount, decimalCount, decimal, thousands);\n };\n\n lastFromNodeList(nodeList) {\n if (!nodeList) return nodeList;\n\n return nodeList[nodeList.length - 1];\n }\n\n updateRailsFieldsNames = (parentEl, startPattern, newIdx) => {\n const reStr = startPattern.replace(/\\[/g, \"\\\\[\").replace(/\\]/g, \"\\\\]\");\n const re = new RegExp(`(${reStr})(.*?)(\\\\].*)`);\n\n const startIdx = Math.floor(Date.now() / 1000) * 1000; // timestamp seconds\n parentEl.querySelectorAll(\"[name]\").forEach((x) => {\n this.updateRailsFieldName(re, x, newIdx, startIdx);\n });\n };\n\n updateRailsFieldName(re, el, idx, startIdx) {\n const m = el.name.match(re);\n if (!m) return null;\n\n const oldIdx = m[2];\n if (parseInt(oldIdx, 10) > 1000000) return null; // this field has already been renamed\n\n const newIdx = idx + startIdx; // to not overlap with previous data\n\n const oldName = el.name;\n // const oldId = el.id;\n const newName = el.name.replace(re, `$1${newIdx - 1}$3`);\n\n if (newName !== oldName) {\n el.name = newName;\n if (el.id) {\n // rename ID\n const newId = newName\n .replace(/\\]\\[/g, \"_\")\n .replace(/\\[/g, \"_\")\n .replace(/\\]/g, \"_\");\n el.id = newId;\n }\n return newName;\n }\n return null;\n }\n\n // Animations ...............................................................\n\n highlight(element, callback = null) {\n Velocity(element, { scale: 1.02 }, 100).then(\n Velocity(element, { scale: 1 }, 200).then(() => {\n if (callback) callback();\n })\n );\n }\n\n highlightRemoval(element, callback = null) {\n this.highlightSlideUp(element, callback);\n }\n\n highlightSlideUp(element, callback = null) {\n Velocity(element, { opacity: 0.4 }, 100).then(\n Velocity(element, \"slideUp\", 250).then(() => {\n if (callback) callback();\n })\n );\n }\n\n highlightSlideDown(element, callback = null) {\n Velocity(element, \"slideUp\", 0).then(() => {\n element.style.opacity = \"1\";\n element.classList.remove(\"d-none\");\n\n Velocity(element, \"slideDown\", 250).then(() => {\n if (callback) callback();\n });\n });\n }\n\n highlightToggle(element, visible, callback = null) {\n if (visible) {\n element.style.opacity = \"1\";\n element.classList.remove(\"d-none\");\n\n Velocity(element, \"slideDown\", 0).then(() => {\n this.highlight(element, callback);\n });\n } else this.highlightSlideUp(element, callback);\n }\n\n highlightLast(nodeList, callback = null) {\n this.highlight(this.lastFromNodeList(nodeList), callback);\n }\n\n highlightText(element, callback = null) {\n Velocity(element, { rotateY: 55 }, 100).then(\n Velocity(element, { rotateY: 0 }, 50).then(() => {\n if (callback) callback();\n })\n );\n }\n\n scrollTo = (el) => {\n window.scroll(0, this.findPos(el));\n setTimeout(() => this.highlight(el), 300);\n };\n\n findPos = (el, middle = false) => {\n let curtop = 0;\n if (el.offsetParent) {\n let newEl = el;\n do {\n curtop += newEl.offsetTop;\n newEl = newEl.offsetParent;\n } while (newEl);\n }\n\n return middle ? curtop - window.screen.height / 2 : curtop - 100;\n };\n}\n","import I18n from \"i18n-js\";\n\nI18n.translations = { en: window.translations };\nI18n.locale = \"en\";\nexport default I18n;\n","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: false,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n var _a;\n\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"input\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function get() {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: false,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","var StringMapObserver =\n/** @class */\nfunction () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true\n });\n this.refresh();\n }\n };\n\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n }; // Mutation record processing\n\n\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n }; // State tracking\n\n\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n\n var value = this.element.getAttribute(attributeName);\n\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n\n if (value == null) {\n this.stringMap.delete(attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function get() {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}();\n\nexport { StringMapObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: false,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { StringMapObserver } from \"@stimulus/mutation-observers\";\n\nvar ValueObserver =\n/** @class */\nfunction () {\n function ValueObserver(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n }); // String map observer delegate\n\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b.key,\n name_1 = _b.name,\n defaultValue = _b.defaultValue;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function get() {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}();\n\nexport { ValueObserver };","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\n\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\n\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\n\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n\n return blessedProperties;\n }, {});\n}\n\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var _a;\n\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n\n return shadowProperties;\n }, {});\n}\n\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n\n return descriptor;\n }\n}\n\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(extended, _super);\n\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return extended;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","import { bless } from \"./blessing\";\n/** @hidden */\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}","var ClassMap =\n/** @class */\nfunction () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}();\n\nexport { ClassMap };","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\n\nvar DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };","var Guide =\n/** @class */\nfunction () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n Guide.prototype.warn = function (object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n };\n\n return Guide;\n}();\n\nexport { Guide };","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this.findTarget(targetName) || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n\n TargetSet.prototype.findAll = function () {\n var _this = this;\n\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName));\n }, []);\n };\n\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this.deprecate(element, targetName);\n });\n };\n\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" + (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n };\n\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function get() {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}();\n\nexport { TargetSet };","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n\n this.containsElement = function (element) {\n return element.closest(_this.controllerSelector) === _this.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n };\n\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function get() {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.dispatcher.start();\n this.router.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: false,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n var _a;\n\n var name = key + \"Class\";\n return _a = {}, _a[name] = {\n get: function get() {\n var classes = this.classes;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function get() {\n return this.classes.has(key);\n }\n }, _a;\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\n\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n var _a;\n\n return _a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\n\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\n\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type,\n key = definition.key,\n name = definition.name;\n var read = readers[type],\n write = writers[type] || writers.default;\n return _a = {}, _a[name] = {\n get: function get() {\n var value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function set(value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function get() {\n return this.data.has(key);\n }\n }, _a;\n}\n\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0],\n typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\n\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\n\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValuesByType[type];\n }\n\n };\n}\n\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n\n boolean: false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nvar readers = {\n array: function array(value) {\n var array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n boolean: function boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function number(value) {\n return parseFloat(value);\n },\n object: function object(value) {\n var object = JSON.parse(value);\n\n if (object === null || _typeof(object) != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n string: function string(value) {\n return value;\n }\n};\nvar writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return \"\" + value;\n}","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function get() {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}();\n\nexport { Controller };","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n/*!\n* sweetalert2 v10.16.9\n* Released under the MIT License.\n*/\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.Sweetalert2 = factory());\n})(this, function () {\n 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\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 function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _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 return _extends.apply(this, arguments);\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof2(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n var consolePrefix = 'SweetAlert2:';\n /**\n * Filter the unique values into a new array\n * @param arr\n */\n\n var uniqueArray = function uniqueArray(arr) {\n var result = [];\n\n for (var i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n\n return result;\n };\n /**\n * Capitalize the first letter of a string\n * @param str\n */\n\n\n var capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n /**\n * Returns the array of object values (Object.values isn't supported in IE11)\n * @param obj\n */\n\n\n var objectValues = function objectValues(obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n };\n /**\n * Convert NodeList to Array\n * @param nodeList\n */\n\n\n var toArray = function toArray(nodeList) {\n return Array.prototype.slice.call(nodeList);\n };\n /**\n * Standardise console warnings\n * @param message\n */\n\n\n var warn = function warn(message) {\n console.warn(\"\".concat(consolePrefix, \" \").concat(_typeof(message) === 'object' ? message.join(' ') : message));\n };\n /**\n * Standardise console errors\n * @param message\n */\n\n\n var error = function error(message) {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n /**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\n\n\n var previousWarnOnceMessages = [];\n /**\n * Show a console warning, but only if it hasn't already been shown\n * @param message\n */\n\n var warnOnce = function warnOnce(message) {\n if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n /**\n * Show a one-time console warning about deprecated params/methods\n */\n\n\n var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n * @param arg\n */\n\n\n var callIfFunction = function callIfFunction(arg) {\n return typeof arg === 'function' ? arg() : arg;\n };\n\n var hasToPromiseFn = function hasToPromiseFn(arg) {\n return arg && typeof arg.toPromise === 'function';\n };\n\n var asPromise = function asPromise(arg) {\n return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n };\n\n var isPromise = function isPromise(arg) {\n return arg && Promise.resolve(arg) === arg;\n };\n\n var DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n var isJqueryElement = function isJqueryElement(elem) {\n return _typeof(elem) === 'object' && elem.jquery;\n };\n\n var isElement = function isElement(elem) {\n return elem instanceof Element || isJqueryElement(elem);\n };\n\n var argsToParams = function argsToParams(args) {\n var params = {};\n\n if (_typeof(args[0]) === 'object' && !isElement(args[0])) {\n _extends(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach(function (name, index) {\n var arg = args[index];\n\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(_typeof(arg)));\n }\n });\n }\n\n return params;\n };\n\n var swalPrefix = 'swal2-';\n\n var prefix = function prefix(items) {\n var result = {};\n\n for (var i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n\n return result;\n };\n\n var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);\n var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n var getContainer = function getContainer() {\n return document.body.querySelector(\".\".concat(swalClasses.container));\n };\n\n var elementBySelector = function elementBySelector(selectorString) {\n var container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n var elementByClass = function elementByClass(className) {\n return elementBySelector(\".\".concat(className));\n };\n\n var getPopup = function getPopup() {\n return elementByClass(swalClasses.popup);\n };\n\n var getIcon = function getIcon() {\n return elementByClass(swalClasses.icon);\n };\n\n var getTitle = function getTitle() {\n return elementByClass(swalClasses.title);\n };\n\n var getContent = function getContent() {\n return elementByClass(swalClasses.content);\n };\n\n var getHtmlContainer = function getHtmlContainer() {\n return elementByClass(swalClasses['html-container']);\n };\n\n var getImage = function getImage() {\n return elementByClass(swalClasses.image);\n };\n\n var getProgressSteps = function getProgressSteps() {\n return elementByClass(swalClasses['progress-steps']);\n };\n\n var getValidationMessage = function getValidationMessage() {\n return elementByClass(swalClasses['validation-message']);\n };\n\n var getConfirmButton = function getConfirmButton() {\n return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n };\n\n var getDenyButton = function getDenyButton() {\n return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n };\n\n var getInputLabel = function getInputLabel() {\n return elementByClass(swalClasses['input-label']);\n };\n\n var getLoader = function getLoader() {\n return elementBySelector(\".\".concat(swalClasses.loader));\n };\n\n var getCancelButton = function getCancelButton() {\n return elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n };\n\n var getActions = function getActions() {\n return elementByClass(swalClasses.actions);\n };\n\n var getHeader = function getHeader() {\n return elementByClass(swalClasses.header);\n };\n\n var getFooter = function getFooter() {\n return elementByClass(swalClasses.footer);\n };\n\n var getTimerProgressBar = function getTimerProgressBar() {\n return elementByClass(swalClasses['timer-progress-bar']);\n };\n\n var getCloseButton = function getCloseButton() {\n return elementByClass(swalClasses.close);\n }; // https://github.com/jkup/focusable/blob/master/index.js\n\n\n var focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n\n var getFocusableElements = function getFocusableElements() {\n var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort(function (a, b) {\n a = parseInt(a.getAttribute('tabindex'));\n b = parseInt(b.getAttribute('tabindex'));\n\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n }\n\n return 0;\n });\n var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {\n return el.getAttribute('tabindex') !== '-1';\n });\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {\n return isVisible(el);\n });\n };\n\n var isModal = function isModal() {\n return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);\n };\n\n var isToast = function isToast() {\n return document.body.classList.contains(swalClasses['toast-shown']);\n };\n\n var isLoading = function isLoading() {\n return getPopup().hasAttribute('data-loading');\n };\n\n var states = {\n previousBodyPadding: null\n };\n\n var setInnerHtml = function setInnerHtml(elem, html) {\n // #1926\n elem.textContent = '';\n\n if (html) {\n var parser = new DOMParser();\n var parsed = parser.parseFromString(html, \"text/html\");\n toArray(parsed.querySelector('head').childNodes).forEach(function (child) {\n elem.appendChild(child);\n });\n toArray(parsed.querySelector('body').childNodes).forEach(function (child) {\n elem.appendChild(child);\n });\n }\n };\n\n var hasClass = function hasClass(elem, className) {\n if (!className) {\n return false;\n }\n\n var classList = className.split(/\\s+/);\n\n for (var i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n\n return true;\n };\n\n var removeCustomClasses = function removeCustomClasses(elem, params) {\n toArray(elem.classList).forEach(function (className) {\n if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) {\n elem.classList.remove(className);\n }\n });\n };\n\n var applyCustomClass = function applyCustomClass(elem, params, className) {\n removeCustomClasses(elem, params);\n\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(params.customClass[className]), \"\\\"\"));\n }\n\n addClass(elem, params.customClass[className]);\n }\n };\n\n function getInput(content, inputType) {\n if (!inputType) {\n return null;\n }\n\n switch (inputType) {\n case 'select':\n case 'textarea':\n case 'file':\n return getChildByClass(content, swalClasses[inputType]);\n\n case 'checkbox':\n return content.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n\n case 'radio':\n return content.querySelector(\".\".concat(swalClasses.radio, \" input:checked\")) || content.querySelector(\".\".concat(swalClasses.radio, \" input:first-child\"));\n\n case 'range':\n return content.querySelector(\".\".concat(swalClasses.range, \" input\"));\n\n default:\n return getChildByClass(content, swalClasses.input);\n }\n }\n\n var focusInput = function focusInput(input) {\n input.focus(); // place cursor at end of text in text input\n\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n var val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n var toggleClass = function toggleClass(target, classList, condition) {\n if (!target || !classList) {\n return;\n }\n\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n\n classList.forEach(function (className) {\n if (target.forEach) {\n target.forEach(function (elem) {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n\n var addClass = function addClass(target, classList) {\n toggleClass(target, classList, true);\n };\n\n var removeClass = function removeClass(target, classList) {\n toggleClass(target, classList, false);\n };\n\n var getChildByClass = function getChildByClass(elem, className) {\n for (var i = 0; i < elem.childNodes.length; i++) {\n if (hasClass(elem.childNodes[i], className)) {\n return elem.childNodes[i];\n }\n }\n };\n\n var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n var show = function show(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem.style.display = display;\n };\n\n var hide = function hide(elem) {\n elem.style.display = 'none';\n };\n\n var setStyle = function setStyle(parent, selector, property, value) {\n var el = parent.querySelector(selector);\n\n if (el) {\n el.style[property] = value;\n }\n };\n\n var toggle = function toggle(elem, condition, display) {\n condition ? show(elem, display) : hide(elem);\n }; // borrowed from jquery $(elem).is(':visible') implementation\n\n\n var isVisible = function isVisible(elem) {\n return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n };\n\n var allButtonsAreHidden = function allButtonsAreHidden() {\n return !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n };\n\n var isScrollable = function isScrollable(elem) {\n return !!(elem.scrollHeight > elem.clientHeight);\n }; // borrowed from https://stackoverflow.com/a/46352119\n\n\n var hasCssAnimation = function hasCssAnimation(elem) {\n var style = window.getComputedStyle(elem);\n var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n var contains = function contains(haystack, needle) {\n if (typeof haystack.contains === 'function') {\n return haystack.contains(needle);\n }\n };\n\n var animateTimerProgressBar = function animateTimerProgressBar(timer) {\n var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var timerProgressBar = getTimerProgressBar();\n\n if (isVisible(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n\n setTimeout(function () {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n\n var stopTimerProgressBar = function stopTimerProgressBar() {\n var timerProgressBar = getTimerProgressBar();\n var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n }; // Detect Node env\n\n\n var isNodeEnv = function isNodeEnv() {\n return typeof window === 'undefined' || typeof document === 'undefined';\n };\n\n var sweetHTML = \"\\n
\\n
\\n \\n
\\n \\n

\\n \\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\").replace(/(^|\\n)\\s*/g, '');\n\n var resetOldContainer = function resetOldContainer() {\n var oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.parentNode.removeChild(oldContainer);\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n\n var oldInputVal; // IE11 workaround, see #1109 for details\n\n var resetValidationMessage = function resetValidationMessage(e) {\n if (Swal.isVisible() && oldInputVal !== e.target.value) {\n Swal.resetValidationMessage();\n }\n\n oldInputVal = e.target.value;\n };\n\n var addInputChangeListeners = function addInputChangeListeners() {\n var content = getContent();\n var input = getChildByClass(content, swalClasses.input);\n var file = getChildByClass(content, swalClasses.file);\n var range = content.querySelector(\".\".concat(swalClasses.range, \" input\"));\n var rangeOutput = content.querySelector(\".\".concat(swalClasses.range, \" output\"));\n var select = getChildByClass(content, swalClasses.select);\n var checkbox = content.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n var textarea = getChildByClass(content, swalClasses.textarea);\n input.oninput = resetValidationMessage;\n file.onchange = resetValidationMessage;\n select.onchange = resetValidationMessage;\n checkbox.onchange = resetValidationMessage;\n textarea.oninput = resetValidationMessage;\n\n range.oninput = function (e) {\n resetValidationMessage(e);\n rangeOutput.value = range.value;\n };\n\n range.onchange = function (e) {\n resetValidationMessage(e);\n range.nextSibling.value = range.value;\n };\n };\n\n var getTarget = function getTarget(target) {\n return typeof target === 'string' ? document.querySelector(target) : target;\n };\n\n var setupAccessibility = function setupAccessibility(params) {\n var popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n var setupRTL = function setupRTL(targetElement) {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n /*\n * Add modal + backdrop to DOM\n */\n\n\n var init = function init(params) {\n // Clean up the old popup container if it exists\n var oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n var container = document.createElement('div');\n container.className = swalClasses.container;\n\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n var targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n var parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param); // Object\n } else if (_typeof(param) === 'object') {\n handleObject(param, target); // Plain string\n } else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n var handleObject = function handleObject(param, target) {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param); // For other objects use their string representation\n } else {\n setInnerHtml(target, param.toString());\n }\n };\n\n var handleJqueryElem = function handleJqueryElem(target, elem) {\n target.textContent = '';\n\n if (0 in elem) {\n for (var i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n var animationEndEvent = function () {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n var testEl = document.createElement('div');\n var transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n OAnimation: 'oAnimationEnd oanimationend',\n animation: 'animationend'\n };\n\n for (var i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i];\n }\n }\n\n return false;\n }(); // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n\n\n var measureScrollbar = function measureScrollbar() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n var renderActions = function renderActions(instance, params) {\n var actions = getActions();\n var loader = getLoader();\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // Render buttons\n\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n if (params.reverseButtons) {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n } // Loader\n\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n }\n\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n }\n }\n\n function renderButton(button, buttonType, params) {\n toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n }\n\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n function handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n var growClass = \"grow-\".concat(grow);\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n var renderContainer = function renderContainer(instance, params) {\n var container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method\n\n var queueStep = document.body.getAttribute('data-swal2-queue-step');\n\n if (queueStep) {\n container.setAttribute('data-queue-step', queueStep);\n document.body.removeAttribute('data-swal2-queue-step');\n }\n };\n /**\n * This module containts `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n\n var privateProps = {\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n var renderInput = function renderInput(instance, params) {\n var content = getContent();\n var innerParams = privateProps.innerParams.get(instance);\n var rerender = !innerParams || params.input !== innerParams.input;\n inputTypes.forEach(function (inputType) {\n var inputClass = swalClasses[inputType];\n var inputContainer = getChildByClass(content, inputClass); // set attributes\n\n setAttributes(inputType, params.inputAttributes); // set class\n\n inputContainer.className = inputClass;\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input) {\n if (rerender) {\n showInput(params);\n } // set custom class\n\n\n setCustomClass(params);\n }\n };\n\n var showInput = function showInput(params) {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n var inputContainer = getInputContainer(params.input);\n var input = renderInputType[params.input](inputContainer, params);\n show(input); // input autofocus\n\n setTimeout(function () {\n focusInput(input);\n });\n };\n\n var removeAttributes = function removeAttributes(input) {\n for (var i = 0; i < input.attributes.length; i++) {\n var attrName = input.attributes[i].name;\n\n if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n var setAttributes = function setAttributes(inputType, inputAttributes) {\n var input = getInput(getContent(), inputType);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (var attr in inputAttributes) {\n // Do not set a placeholder for \n // it'll crash Edge, #1298\n if (inputType === 'range' && attr === 'placeholder') {\n continue;\n }\n\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n var setCustomClass = function setCustomClass(params) {\n var inputContainer = getInputContainer(params.input);\n\n if (params.customClass) {\n addClass(inputContainer, params.customClass.input);\n }\n };\n\n var setInputPlaceholder = function setInputPlaceholder(input, params) {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n var setInputLabel = function setInputLabel(input, prependTo, params) {\n if (params.inputLabel) {\n input.id = swalClasses.input;\n var label = document.createElement('label');\n var labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n addClass(label, params.customClass.inputLabel);\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n var getInputContainer = function getInputContainer(inputType) {\n var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;\n return getChildByClass(getContent(), inputClass);\n };\n\n var renderInputType = {};\n\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) {\n if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {\n input.value = params.inputValue;\n } else if (!isPromise(params.inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(params.inputValue), \"\\\"\"));\n }\n\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n renderInputType.file = function (input, params) {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n renderInputType.range = function (range, params) {\n var rangeInput = range.querySelector('input');\n var rangeOutput = range.querySelector('output');\n rangeInput.value = params.inputValue;\n rangeInput.type = params.input;\n rangeOutput.value = params.inputValue;\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n renderInputType.select = function (select, params) {\n select.textContent = '';\n\n if (params.inputPlaceholder) {\n var placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n setInputLabel(select, select, params);\n return select;\n };\n\n renderInputType.radio = function (radio) {\n radio.textContent = '';\n return radio;\n };\n\n renderInputType.checkbox = function (checkboxContainer, params) {\n var checkbox = getInput(getContent(), 'checkbox');\n checkbox.value = 1;\n checkbox.id = swalClasses.checkbox;\n checkbox.checked = Boolean(params.inputValue);\n var label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkboxContainer;\n };\n\n renderInputType.textarea = function (textarea, params) {\n textarea.value = params.inputValue;\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n var getPadding = function getPadding(el) {\n return parseInt(window.getComputedStyle(el).paddingLeft) + parseInt(window.getComputedStyle(el).paddingRight);\n };\n\n if ('MutationObserver' in window) {\n // #1699\n var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n var outputsize = function outputsize() {\n var contentWidth = textarea.offsetWidth + getPadding(getPopup()) + getPadding(getContent());\n\n if (contentWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(contentWidth, \"px\");\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(outputsize).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n return textarea;\n };\n\n var renderContent = function renderContent(instance, params) {\n var htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block'); // Content as plain text\n } else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block'); // No content\n } else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params); // Custom class\n\n applyCustomClass(getContent(), params, 'content');\n };\n\n var renderFooter = function renderFooter(instance, params) {\n var footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params, 'footer');\n };\n\n var renderCloseButton = function renderCloseButton(instance, params) {\n var closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n };\n\n var renderIcon = function renderIcon(instance, params) {\n var innerParams = privateProps.innerParams.get(instance);\n var icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n\n if (!params.icon && !params.iconHtml) {\n return hide(icon);\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n return hide(icon);\n }\n\n show(icon); // Custom or default content\n\n setContent(icon, params);\n applyStyles(icon, params); // Animate icon\n\n addClass(icon, params.showClass.icon);\n };\n\n var applyStyles = function applyStyles(icon, params) {\n for (var iconType in iconTypes) {\n if (params.icon !== iconType) {\n removeClass(icon, iconTypes[iconType]);\n }\n }\n\n addClass(icon, iconTypes[params.icon]); // Icon color\n\n setColor(icon, params); // Success icon background color\n\n adjustSuccessIconBackgoundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n }; // Adjust success icon background color to match the popup background color\n\n\n var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {\n var popup = getPopup();\n var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (var i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n\n var setContent = function setContent(icon, params) {\n icon.textContent = '';\n\n if (params.iconHtml) {\n setInnerHtml(icon, iconContent(params.iconHtml));\n } else if (params.icon === 'success') {\n setInnerHtml(icon, \"\\n
\\n \\n
\\n
\\n \");\n } else if (params.icon === 'error') {\n setInnerHtml(icon, \"\\n \\n \\n \\n \\n \");\n } else {\n var defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));\n }\n };\n\n var setColor = function setColor(icon, params) {\n if (!params.iconColor) {\n return;\n }\n\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n\n for (var _i = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i < _arr.length; _i++) {\n var sel = _arr[_i];\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n\n var iconContent = function iconContent(content) {\n return \"
\").concat(content, \"
\");\n };\n\n var renderImage = function renderImage(instance, params) {\n var image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image, ''); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n var currentSteps = [];\n /*\n * Global function for chaining sweetAlert popups\n */\n\n var queue = function queue(steps) {\n warnAboutDeprecation('Swal.queue()', \"async/await\");\n var Swal = this;\n currentSteps = steps;\n\n var resetAndResolve = function resetAndResolve(resolve, value) {\n currentSteps = [];\n resolve(value);\n };\n\n var queueResult = [];\n return new Promise(function (resolve) {\n (function step(i, callback) {\n if (i < currentSteps.length) {\n document.body.setAttribute('data-swal2-queue-step', i);\n Swal.fire(currentSteps[i]).then(function (result) {\n if (typeof result.value !== 'undefined') {\n queueResult.push(result.value);\n step(i + 1, callback);\n } else {\n resetAndResolve(resolve, {\n dismiss: result.dismiss\n });\n }\n });\n } else {\n resetAndResolve(resolve, {\n value: queueResult\n });\n }\n })(0);\n });\n };\n /*\n * Global function for getting the index of current popup in queue\n */\n\n\n var getQueueStep = function getQueueStep() {\n return getContainer() && getContainer().getAttribute('data-queue-step');\n };\n /*\n * Global function for inserting a popup to the queue\n */\n\n\n var insertQueueStep = function insertQueueStep(step, index) {\n if (index && index < currentSteps.length) {\n return currentSteps.splice(index, 0, step);\n }\n\n return currentSteps.push(step);\n };\n /*\n * Global function for deleting a popup from the queue\n */\n\n\n var deleteQueueStep = function deleteQueueStep(index) {\n if (typeof currentSteps[index] !== 'undefined') {\n currentSteps.splice(index, 1);\n }\n };\n\n var createStepElement = function createStepElement(step) {\n var stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n var createLineElement = function createLineElement(params) {\n var lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n lineEl.style.width = params.progressStepsDistance;\n }\n\n return lineEl;\n };\n\n var renderProgressSteps = function renderProgressSteps(instance, params) {\n var progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);\n\n if (currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach(function (step, index) {\n var stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n\n if (index !== params.progressSteps.length - 1) {\n var lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n var renderTitle = function renderTitle(instance, params) {\n var title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params, 'title');\n };\n\n var renderHeader = function renderHeader(instance, params) {\n var header = getHeader(); // Custom class\n\n applyCustomClass(header, params, 'header'); // Progress steps\n\n renderProgressSteps(instance, params); // Icon\n\n renderIcon(instance, params); // Image\n\n renderImage(instance, params); // Title\n\n renderTitle(instance, params); // Close button\n\n renderCloseButton(instance, params);\n };\n\n var renderPopup = function renderPopup(instance, params) {\n var container = getContainer();\n var popup = getPopup(); // Width\n\n if (params.toast) {\n // #2170\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Background\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses(popup, params);\n };\n\n var addClasses = function addClasses(popup, params) {\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // Icon class (#1842)\n\n\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n var render = function render(instance, params) {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderHeader(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n\n if (typeof params.didRender === 'function') {\n params.didRender(getPopup());\n } else if (typeof params.onRender === 'function') {\n params.onRender(getPopup()); // @deprecated\n }\n };\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\n\n var isVisible$1 = function isVisible$$1() {\n return isVisible(getPopup());\n };\n /*\n * Global function to click 'Confirm' button\n */\n\n\n var clickConfirm = function clickConfirm() {\n return getConfirmButton() && getConfirmButton().click();\n };\n /*\n * Global function to click 'Deny' button\n */\n\n\n var clickDeny = function clickDeny() {\n return getDenyButton() && getDenyButton().click();\n };\n /*\n * Global function to click 'Cancel' button\n */\n\n\n var clickCancel = function clickCancel() {\n return getCancelButton() && getCancelButton().click();\n };\n\n function fire() {\n var Swal = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(Swal, args);\n }\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\n\n\n function mixin(mixinParams) {\n var MixinSwal = /*#__PURE__*/function (_this) {\n _inherits(MixinSwal, _this);\n\n var _super = _createSuper(MixinSwal);\n\n function MixinSwal() {\n _classCallCheck(this, MixinSwal);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(MixinSwal, [{\n key: \"_main\",\n value: function _main(params, priorityMixinParams) {\n return _get(_getPrototypeOf(MixinSwal.prototype), \"_main\", this).call(this, params, _extends({}, mixinParams, priorityMixinParams));\n }\n }]);\n\n return MixinSwal;\n }(this);\n\n return MixinSwal;\n }\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n\n\n var showLoading = function showLoading(buttonToReplace) {\n var popup = getPopup();\n\n if (!popup) {\n Swal.fire();\n }\n\n popup = getPopup();\n var actions = getActions();\n var loader = getLoader();\n\n if (!buttonToReplace && isVisible(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n\n show(actions);\n\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n show(loader);\n popup.setAttribute('data-loading', true);\n popup.setAttribute('aria-busy', true);\n popup.focus();\n };\n\n var RESTORE_FOCUS_TIMEOUT = 100;\n var globalState = {};\n\n var focusPreviousActiveElement = function focusPreviousActiveElement() {\n if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n }; // Restore previous active (focused) element\n\n\n var restoreActiveElement = function restoreActiveElement(returnFocus) {\n return new Promise(function (resolve) {\n if (!returnFocus) {\n return resolve();\n }\n\n var x = window.scrollX;\n var y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(function () {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n if (typeof x !== 'undefined' && typeof y !== 'undefined') {\n // IE doesn't have scrollX/scrollY support\n window.scrollTo(x, y);\n }\n });\n };\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\n\n var getTimerLeft = function getTimerLeft() {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n\n var stopTimer = function stopTimer() {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n\n var resumeTimer = function resumeTimer() {\n if (globalState.timeout) {\n var remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n\n var toggleTimer = function toggleTimer() {\n var timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n\n var increaseTimer = function increaseTimer(n) {\n if (globalState.timeout) {\n var remaining = globalState.timeout.increase(n);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\n\n\n var isTimerRunning = function isTimerRunning() {\n return globalState.timeout && globalState.timeout.isRunning();\n };\n\n var bodyClickListenerAdded = false;\n var clickHandlers = {};\n\n function bindClickHandler() {\n var attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n\n var bodyClickListener = function bodyClickListener(event) {\n // 1. using .parentNode instead of event.path because of better support by old browsers https://stackoverflow.com/a/39245638\n // 2. using .parentNode instead of .parentElement because of IE11 + SVG https://stackoverflow.com/a/36270354\n for (var el = event.target; el && el !== document; el = el.parentNode) {\n for (var attr in clickHandlers) {\n var template = el.getAttribute(attr);\n\n if (template) {\n clickHandlers[attr].fire({\n template: template\n });\n return;\n }\n }\n }\n };\n\n var defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n animation: true,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n onBeforeOpen: undefined,\n onOpen: undefined,\n willOpen: undefined,\n didOpen: undefined,\n onRender: undefined,\n didRender: undefined,\n onClose: undefined,\n onAfterClose: undefined,\n willClose: undefined,\n didClose: undefined,\n onDestroy: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n var deprecatedParams = {\n animation: 'showClass\" and \"hideClass',\n onBeforeOpen: 'willOpen',\n onOpen: 'didOpen',\n onRender: 'didRender',\n onClose: 'willClose',\n onAfterClose: 'didClose',\n onDestroy: 'didDestroy'\n };\n var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n /**\n * Is valid parameter\n * @param {String} paramName\n */\n\n var isValidParameter = function isValidParameter(paramName) {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n /**\n * Is valid parameter for Swal.update() method\n * @param {String} paramName\n */\n\n\n var isUpdatableParameter = function isUpdatableParameter(paramName) {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n * @param {String} paramName\n */\n\n\n var isDeprecatedParameter = function isDeprecatedParameter(paramName) {\n return deprecatedParams[paramName];\n };\n\n var checkIfParamIsValid = function checkIfParamIsValid(param) {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {\n if (toastIncompatibleParams.indexOf(param) !== -1) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n /**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\n var showWarningsForParams = function showWarningsForParams(params) {\n for (var param in params) {\n checkIfParamIsValid(param);\n\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n\n checkIfParamIsDeprecated(param);\n }\n };\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n isVisible: isVisible$1,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getContent: getContent,\n getHtmlContainer: getHtmlContainer,\n getImage: getImage,\n getIcon: getIcon,\n getInputLabel: getInputLabel,\n getCloseButton: getCloseButton,\n getActions: getActions,\n getConfirmButton: getConfirmButton,\n getDenyButton: getDenyButton,\n getCancelButton: getCancelButton,\n getLoader: getLoader,\n getHeader: getHeader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n fire: fire,\n mixin: mixin,\n queue: queue,\n getQueueStep: getQueueStep,\n insertQueueStep: insertQueueStep,\n deleteQueueStep: deleteQueueStep,\n showLoading: showLoading,\n enableLoading: showLoading,\n getTimerLeft: getTimerLeft,\n stopTimer: stopTimer,\n resumeTimer: resumeTimer,\n toggleTimer: toggleTimer,\n increaseTimer: increaseTimer,\n isTimerRunning: isTimerRunning,\n bindClickHandler: bindClickHandler\n });\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\n function hideLoading() {\n // do nothing if popup is closed\n var innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n var domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n var buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n\n function getInput$1(instance) {\n var innerParams = privateProps.innerParams.get(instance || this);\n var domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.content, innerParams.input);\n }\n\n var fixScrollbar = function fixScrollbar() {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n\n var undoScrollbar = function undoScrollbar() {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n states.previousBodyPadding = null;\n }\n };\n /* istanbul ignore file */\n\n\n var iOSfix = function iOSfix() {\n var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n var offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups(); // #1948\n }\n };\n\n var addBottomPaddingForTallPopups = function addBottomPaddingForTallPopups() {\n var safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);\n\n if (safari) {\n var bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n }\n }\n };\n\n var lockBodyScroll = function lockBodyScroll() {\n // #1246\n var container = getContainer();\n var preventTouchMove;\n\n container.ontouchstart = function (e) {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n\n container.ontouchmove = function (e) {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n };\n\n var shouldPreventTouchMove = function shouldPreventTouchMove(event) {\n var target = event.target;\n var container = getContainer();\n\n if (isStylys(event) || isZoom(event)) {\n return false;\n }\n\n if (target === container) {\n return true;\n }\n\n if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n !(isScrollable(getContent()) && // #1944\n getContent().contains(target))) {\n return true;\n }\n\n return false;\n };\n\n var isStylys = function isStylys(event) {\n // #1786\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n var isZoom = function isZoom(event) {\n // #1891\n return event.touches && event.touches.length > 1;\n };\n\n var undoIOSfix = function undoIOSfix() {\n if (hasClass(document.body, swalClasses.iosfix)) {\n var offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n /* istanbul ignore file */\n\n\n var isIE11 = function isIE11() {\n return !!window.MSInputMethodContext && !!document.documentMode;\n }; // Fix IE11 centering sweetalert2/issues/933\n\n\n var fixVerticalPositionIE = function fixVerticalPositionIE() {\n var container = getContainer();\n var popup = getPopup();\n container.style.removeProperty('align-items');\n\n if (popup.offsetTop < 0) {\n container.style.alignItems = 'flex-start';\n }\n };\n\n var IEfix = function IEfix() {\n if (typeof window !== 'undefined' && isIE11()) {\n fixVerticalPositionIE();\n window.addEventListener('resize', fixVerticalPositionIE);\n }\n };\n\n var undoIEfix = function undoIEfix() {\n if (typeof window !== 'undefined' && isIE11()) {\n window.removeEventListener('resize', fixVerticalPositionIE);\n }\n }; // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n\n var setAriaHidden = function setAriaHidden() {\n var bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el === getContainer() || contains(el, getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n };\n\n var unsetAriaHidden = function unsetAriaHidden() {\n var bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n /**\n * This module containts `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap()\n };\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(function () {\n return triggerDidCloseAndDispose(instance, didClose);\n });\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {\n container.parentNode.removeChild(container);\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n undoIEfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n }\n\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n function close(resolveValue) {\n var popup = getPopup();\n\n if (!popup) {\n return;\n }\n\n resolveValue = prepareResolveValue(resolveValue);\n var innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return;\n }\n\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n var backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise\n\n swalPromiseResolve(resolveValue);\n }\n\n var prepareResolveValue = function prepareResolveValue(resolveValue) {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n\n return _extends({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n var container = getContainer(); // If animation is supported, animate\n\n var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n var onClose = innerParams.onClose,\n onAfterClose = innerParams.onAfterClose,\n willClose = innerParams.willClose,\n didClose = innerParams.didClose;\n runDidClose(popup, willClose, onClose);\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, didClose || onAfterClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, didClose || onAfterClose);\n }\n };\n\n var runDidClose = function runDidClose(popup, willClose, onClose) {\n if (willClose !== null && typeof willClose === 'function') {\n willClose(popup);\n } else if (onClose !== null && typeof onClose === 'function') {\n onClose(popup); // @deprecated\n }\n };\n\n var animatePopup = function animatePopup(instance, popup, container, returnFocus, didClose) {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {\n setTimeout(function () {\n if (typeof didClose === 'function') {\n didClose();\n }\n\n instance._destroy();\n });\n };\n\n function setButtonsDisabled(instance, buttons, disabled) {\n var domCache = privateProps.domCache.get(instance);\n buttons.forEach(function (button) {\n domCache[button].disabled = disabled;\n });\n }\n\n function setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n var radiosContainer = input.parentNode.parentNode;\n var radios = radiosContainer.querySelectorAll('input');\n\n for (var i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n\n function enableInput() {\n return setInputDisabled(this.getInput(), false);\n }\n\n function disableInput() {\n return setInputDisabled(this.getInput(), true);\n }\n\n function showValidationMessage(error) {\n var domCache = privateProps.domCache.get(this);\n var params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n\n show(domCache.validationMessage);\n var input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedBy', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n } // Hide block with validation message\n\n\n function resetValidationMessage$1() {\n var domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n var input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedBy');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n function getProgressSteps$1() {\n var domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n }\n\n var Timer = /*#__PURE__*/function () {\n function Timer(callback, delay) {\n _classCallCheck(this, Timer);\n\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n _createClass(Timer, [{\n key: \"start\",\n value: function start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n\n return this.remaining;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date() - this.started;\n }\n\n return this.remaining;\n }\n }, {\n key: \"increase\",\n value: function increase(n) {\n var running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n }, {\n key: \"getTimerLeft\",\n value: function getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n }, {\n key: \"isRunning\",\n value: function isRunning() {\n return this.running;\n }\n }]);\n\n return Timer;\n }();\n\n var defaultInputValidators = {\n email: function email(string, validationMessage) {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n url: function url(string, validationMessage) {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(function (key) {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n }\n\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n /**\n * Set type, text and actions on popup\n *\n * @param params\n * @returns {boolean}\n */\n\n\n function setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n } // params.animation will be actually used in renderPopup.js\n // but in case when params.animation is a function, we need to call that function\n // before popup (re)initialization, so it'll be possible to check Swal.isVisible()\n // inside the params.animation function\n\n\n params.animation = callIfFunction(params.animation);\n validateCustomTargetElement(params); // Replace newlines with
in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
');\n }\n\n init(params);\n }\n\n var swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n var getTemplateParams = function getTemplateParams(params) {\n var template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n\n var templateContent = template.content || template; // IE11\n\n showWarningsForElements(templateContent);\n\n var result = _extends(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n\n return result;\n };\n\n var getSwalParams = function getSwalParams(templateContent) {\n var result = {};\n toArray(templateContent.querySelectorAll('swal-param')).forEach(function (param) {\n showWarningsForAttributes(param, ['name', 'value']);\n var paramName = param.getAttribute('name');\n var value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n value = false;\n }\n\n if (_typeof(defaultParams[paramName]) === 'object') {\n value = JSON.parse(value);\n }\n\n result[paramName] = value;\n });\n return result;\n };\n\n var getSwalButtons = function getSwalButtons(templateContent) {\n var result = {};\n toArray(templateContent.querySelectorAll('swal-button')).forEach(function (button) {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n var type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n\n var getSwalImage = function getSwalImage(templateContent) {\n var result = {};\n var image = templateContent.querySelector('swal-image');\n\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n\n return result;\n };\n\n var getSwalIcon = function getSwalIcon(templateContent) {\n var result = {};\n var icon = templateContent.querySelector('swal-icon');\n\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n\n result.iconHtml = icon.innerHTML;\n }\n\n return result;\n };\n\n var getSwalInput = function getSwalInput(templateContent) {\n var result = {};\n var input = templateContent.querySelector('swal-input');\n\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n\n var inputOptions = templateContent.querySelectorAll('swal-input-option');\n\n if (inputOptions.length) {\n result.inputOptions = {};\n toArray(inputOptions).forEach(function (option) {\n showWarningsForAttributes(option, ['value']);\n var optionValue = option.getAttribute('value');\n var optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n\n return result;\n };\n\n var getSwalStringParams = function getSwalStringParams(templateContent, paramNames) {\n var result = {};\n\n for (var i in paramNames) {\n var paramName = paramNames[i];\n var tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n\n return result;\n };\n\n var showWarningsForElements = function showWarningsForElements(template) {\n var allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n toArray(template.querySelectorAll('*')).forEach(function (el) {\n if (el.parentNode !== template) {\n // can't use template.children because of IE11\n return;\n }\n\n var tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n\n var showWarningsForAttributes = function showWarningsForAttributes(el, allowedAttributes) {\n toArray(el.attributes).forEach(function (attribute) {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\n\n var openPopup = function openPopup(params) {\n var container = getContainer();\n var popup = getPopup();\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n } else if (typeof params.onBeforeOpen === 'function') {\n params.onBeforeOpen(popup); // @deprecated\n }\n\n var bodyStyles = window.getComputedStyle(document.body);\n var initialBodyOverflow = bodyStyles.overflowY;\n addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setTimeout(function () {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n runDidOpen(popup, params);\n removeClass(container, swalClasses['no-transition']);\n };\n\n var runDidOpen = function runDidOpen(popup, params) {\n if (typeof params.didOpen === 'function') {\n setTimeout(function () {\n return params.didOpen(popup);\n });\n } else if (typeof params.onOpen === 'function') {\n setTimeout(function () {\n return params.onOpen(popup);\n }); // @deprecated\n }\n };\n\n var swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {\n var popup = getPopup();\n\n if (event.target !== popup) {\n return;\n }\n\n var container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n var setScrollingVisibility = function setScrollingVisibility(container, popup) {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {\n iOSfix();\n IEfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(function () {\n container.scrollTop = 0;\n });\n };\n\n var addClasses$1 = function addClasses(container, popup, params) {\n addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup);\n setTimeout(function () {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n addClass([document.documentElement, document.body], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n handleInputValue(instance, params);\n }\n };\n\n var getInputValue = function getInputValue(instance, innerParams) {\n var input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n var getCheckboxValue = function getCheckboxValue(input) {\n return input.checked ? 1 : 0;\n };\n\n var getRadioValue = function getRadioValue(input) {\n return input.checked ? input.value : null;\n };\n\n var getFileValue = function getFileValue(input) {\n return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n };\n\n var handleInputOptions = function handleInputOptions(instance, params) {\n var content = getContent();\n\n var processInputOptions = function processInputOptions(inputOptions) {\n return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);\n };\n\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(function (inputOptions) {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (_typeof(params.inputOptions) === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n }\n };\n\n var handleInputValue = function handleInputValue(instance, params) {\n var input = instance.getInput();\n hide(input);\n asPromise(params.inputValue).then(function (inputValue) {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n })[\"catch\"](function (err) {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n var populateInputOptions = {\n select: function select(content, inputOptions, params) {\n var select = getChildByClass(content, swalClasses.select);\n\n var renderOption = function renderOption(parent, optionLabel, optionValue) {\n var option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n\n inputOptions.forEach(function (inputOption) {\n var optionValue = inputOption[0];\n var optionLabel = inputOption[1]; // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n var optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n\n select.appendChild(optgroup);\n optionLabel.forEach(function (o) {\n return renderOption(optgroup, o[1], o[0]);\n });\n } else {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(function (key) {\n var valueFormatted = inputOptions[key];\n\n if (_typeof(valueFormatted) === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n }\n\n return result;\n };\n\n var isSelected = function isSelected(optionValue, inputValue) {\n return inputValue && inputValue.toString() === optionValue.toString();\n };\n\n var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, innerParams, 'confirm');\n } else {\n confirm(instance, innerParams, true);\n }\n };\n\n var handleDenyButtonClick = function handleDenyButtonClick(instance, innerParams) {\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, innerParams, 'deny');\n } else {\n deny(instance, innerParams, false);\n }\n };\n\n var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n var handleConfirmOrDenyWithInput = function handleConfirmOrDenyWithInput(instance, innerParams, type\n /* type is either 'confirm' or 'deny' */\n ) {\n var inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n handleInputValidator(instance, innerParams, inputValue);\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else if (type === 'deny') {\n deny(instance, innerParams, inputValue);\n } else {\n confirm(instance, innerParams, inputValue);\n }\n };\n\n var handleInputValidator = function handleInputValidator(instance, innerParams, inputValue) {\n instance.disableInput();\n var validationPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));\n });\n validationPromise.then(function (validationMessage) {\n instance.enableButtons();\n instance.enableInput();\n\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else {\n confirm(instance, innerParams, inputValue);\n }\n });\n };\n\n var deny = function deny(instance, innerParams, value) {\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n var preDenyPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.preDeny(value, innerParams.validationMessage));\n });\n preDenyPromise.then(function (preDenyValue) {\n if (preDenyValue === false) {\n instance.hideLoading();\n } else {\n instance.closePopup({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n });\n } else {\n instance.closePopup({\n isDenied: true,\n value: value\n });\n }\n };\n\n var succeedWith = function succeedWith(instance, value) {\n instance.closePopup({\n isConfirmed: true,\n value: value\n });\n };\n\n var confirm = function confirm(instance, innerParams, value) {\n if (innerParams.showLoaderOnConfirm) {\n showLoading(); // TODO: make showLoading an *instance* method\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n var preConfirmPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));\n });\n preConfirmPromise.then(function (preConfirmValue) {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n });\n } else {\n succeedWith(instance, value);\n }\n };\n\n var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n if (!innerParams.toast) {\n globalState.keydownHandler = function (e) {\n return keydownHandler(instance, e, dismissWith);\n };\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n }; // Focus handling\n\n\n var setFocus = function setFocus(innerParams, index, increment) {\n var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n if (focusableElements.length) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n };\n\n var arrowKeysNextButton = ['ArrowRight', 'ArrowDown', 'Right', 'Down' // IE11\n ];\n var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp', 'Left', 'Up' // IE11\n ];\n var escKeys = ['Escape', 'Esc' // IE11\n ];\n\n var keydownHandler = function keydownHandler(instance, e, dismissWith) {\n var innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams); // TAB\n } else if (e.key === 'Tab') {\n handleTab(e, innerParams); // ARROWS - switch focus between buttons\n } else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).indexOf(e.key) !== -1) {\n handleArrows(e.key); // ESC\n } else if (escKeys.indexOf(e.key) !== -1) {\n handleEsc(e, innerParams, dismissWith);\n }\n };\n\n var handleEnter = function handleEnter(instance, e, innerParams) {\n // #720 #721\n if (e.isComposing) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n };\n\n var handleTab = function handleTab(e, innerParams) {\n var targetElement = e.target;\n var focusableElements = getFocusableElements();\n var btnIndex = -1;\n\n for (var i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n if (!e.shiftKey) {\n // Cycle to the next button\n setFocus(innerParams, btnIndex, 1);\n } else {\n // Cycle to the prev button\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n var handleArrows = function handleArrows(key) {\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n\n if (!([confirmButton, denyButton, cancelButton].indexOf(document.activeElement) !== -1)) {\n return;\n }\n\n var sibling = arrowKeysNextButton.indexOf(key) !== -1 ? 'nextElementSibling' : 'previousElementSibling';\n var buttonToFocus = document.activeElement[sibling];\n\n if (buttonToFocus) {\n buttonToFocus.focus();\n }\n };\n\n var handleEsc = function handleEsc(e, innerParams, dismissWith) {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) {\n var innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.toast) {\n handleToastClick(instance, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(instance, domCache, dismissWith);\n }\n };\n\n var handleToastClick = function handleToastClick(instance, domCache, dismissWith) {\n // Closing toast by internal click\n domCache.popup.onclick = function () {\n var innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n };\n\n var ignoreOutsideClick = false;\n\n var handleModalMousedown = function handleModalMousedown(domCache) {\n domCache.popup.onmousedown = function () {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n var handleContainerMousedown = function handleContainerMousedown(domCache) {\n domCache.container.onmousedown = function () {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n var handleModalClick = function handleModalClick(instance, domCache, dismissWith) {\n domCache.container.onclick = function (e) {\n var innerParams = privateProps.innerParams.get(instance);\n\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n function _main(userParams) {\n var mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(_extends({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n globalState.currentInstance._destroy();\n }\n\n globalState.currentInstance = this;\n var innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n var domCache = populateDomCache(this);\n render(this, innerParams);\n privateProps.innerParams.set(this, innerParams);\n return swalPromise(this, domCache, innerParams);\n }\n\n var prepareParams = function prepareParams(userParams, mixinParams) {\n var templateParams = getTemplateParams(userParams);\n\n var params = _extends({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n\n params.showClass = _extends({}, defaultParams.showClass, params.showClass);\n params.hideClass = _extends({}, defaultParams.hideClass, params.hideClass); // @deprecated\n\n if (userParams.animation === false) {\n params.showClass = {\n popup: 'swal2-noanimation',\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n\n return params;\n };\n\n var swalPromise = function swalPromise(instance, domCache, innerParams) {\n return new Promise(function (resolve) {\n // functions to handle all closings/dismissals\n var dismissWith = function dismissWith(dismiss) {\n instance.closePopup({\n isDismissed: true,\n dismiss: dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n\n domCache.confirmButton.onclick = function () {\n return handleConfirmButtonClick(instance, innerParams);\n };\n\n domCache.denyButton.onclick = function () {\n return handleDenyButtonClick(instance, innerParams);\n };\n\n domCache.cancelButton.onclick = function () {\n return handleCancelButtonClick(instance, dismissWith);\n };\n\n domCache.closeButton.onclick = function () {\n return dismissWith(DismissReason.close);\n };\n\n handlePopupClick(instance, domCache, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n setTimeout(function () {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n var populateDomCache = function populateDomCache(instance) {\n var domCache = {\n popup: getPopup(),\n container: getContainer(),\n content: getContent(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n\n var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {\n var timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(function () {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n setTimeout(function () {\n if (globalState$$1.timeout && globalState$$1.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n\n var initFocus = function initFocus(domCache, innerParams) {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n };\n\n var focusButton = function focusButton(domCache, innerParams) {\n if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n };\n\n var blurActiveElement = function blurActiveElement() {\n if (document.activeElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n };\n /**\n * Updates popup parameters.\n */\n\n\n function update(params) {\n var popup = getPopup();\n var innerParams = privateProps.innerParams.get(this);\n\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n }\n\n var validUpdatableParams = {}; // assign valid params from `params` to `defaults`\n\n Object.keys(params).forEach(function (param) {\n if (Swal.isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \\\"\".concat(param, \"\\\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\\n\\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md\"));\n }\n });\n\n var updatedParams = _extends({}, innerParams, validUpdatableParams);\n\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: _extends({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n function _destroy() {\n var domCache = privateProps.domCache.get(this);\n var innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n } // Check if there is another Swal closing\n\n\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n } // Check if there is a swal disposal defer timer\n\n\n if (globalState.deferDisposalTimer) {\n clearTimeout(globalState.deferDisposalTimer);\n delete globalState.deferDisposalTimer;\n }\n\n runDidDestroy(innerParams);\n disposeSwal(this);\n }\n\n var runDidDestroy = function runDidDestroy(innerParams) {\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n } else if (typeof innerParams.onDestroy === 'function') {\n innerParams.onDestroy(); // @deprecated\n }\n };\n\n var disposeSwal = function disposeSwal(instance) {\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)\n\n unsetWeakMaps(privateProps);\n unsetWeakMaps(privateMethods);\n };\n\n var unsetWeakMaps = function unsetWeakMaps(obj) {\n for (var i in obj) {\n obj[i] = new WeakMap();\n }\n };\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput$1,\n close: close,\n closePopup: close,\n closeModal: close,\n closeToast: close,\n enableButtons: enableButtons,\n disableButtons: disableButtons,\n enableInput: enableInput,\n disableInput: disableInput,\n showValidationMessage: showValidationMessage,\n resetValidationMessage: resetValidationMessage$1,\n getProgressSteps: getProgressSteps$1,\n _main: _main,\n update: update,\n _destroy: _destroy\n });\n var currentInstance;\n\n var SweetAlert = /*#__PURE__*/function () {\n function SweetAlert() {\n _classCallCheck(this, SweetAlert); // Prevent run in Node env\n\n\n if (typeof window === 'undefined') {\n return;\n } // Check for the existence of Promise\n\n\n if (typeof Promise === 'undefined') {\n error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');\n }\n\n currentInstance = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n });\n\n var promise = this._main(this.params);\n\n privateProps.promise.set(this, promise);\n } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n _createClass(SweetAlert, [{\n key: \"then\",\n value: function then(onFulfilled) {\n var promise = privateProps.promise.get(this);\n return promise.then(onFulfilled);\n }\n }, {\n key: \"finally\",\n value: function _finally(onFinally) {\n var promise = privateProps.promise.get(this);\n return promise[\"finally\"](onFinally);\n }\n }]);\n\n return SweetAlert;\n }(); // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n\n _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n\n Object.keys(instanceMethods).forEach(function (key) {\n SweetAlert[key] = function () {\n if (currentInstance) {\n var _currentInstance;\n\n return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '10.16.9';\n var Swal = SweetAlert;\n Swal[\"default\"] = Swal;\n return Swal;\n});\n\nif (typeof this !== 'undefined' && this.Sweetalert2) {\n this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2;\n}\n\n\"undefined\" != typeof document && function (e, t) {\n var n = e.createElement(\"style\");\n if (e.getElementsByTagName(\"head\")[0].appendChild(n), n.styleSheet) n.styleSheet.disabled || (n.styleSheet.cssText = t);else try {\n n.innerHTML = t;\n } catch (e) {\n n.innerText = t;\n }\n}(document, \".swal2-popup.swal2-toast{flex-direction:column;align-items:stretch;width:auto;padding:1.25em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;margin:0 .625em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container{padding:.625em 0 0}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex:1;flex-basis:auto!important;align-self:stretch;width:auto;height:2.2em;height:auto;margin:0 .3125em;margin-top:.3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}\");","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! VelocityJS.org (1.5.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */\n\n/*************************\r\n Velocity jQuery Shim\r\n *************************/\n\n/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */\n\n/* This file contains the jQuery functions that Velocity relies on, thereby removing Velocity's dependency on a full copy of jQuery, and allowing it to work in any environment. */\n\n/* These shimmed functions are only used if jQuery isn't present. If both this shim and jQuery are loaded, Velocity defaults to jQuery proper. */\n\n/* Browser support: Using this shim instead of jQuery proper removes support for IE8. */\n(function (window) {\n \"use strict\";\n /***************\r\n Setup\r\n ***************/\n\n /* If jQuery is already loaded, there's no point in loading this shim. */\n\n if (window.jQuery) {\n return;\n }\n /* jQuery base. */\n\n\n var $ = function $(selector, context) {\n return new $.fn.init(selector, context);\n };\n /********************\r\n Private Methods\r\n ********************/\n\n /* jQuery */\n\n\n $.isWindow = function (obj) {\n /* jshint eqeqeq: false */\n return obj && obj === obj.window;\n };\n /* jQuery */\n\n\n $.type = function (obj) {\n if (!obj) {\n return obj + \"\";\n }\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n };\n /* jQuery */\n\n\n $.isArray = Array.isArray || function (obj) {\n return $.type(obj) === \"array\";\n };\n /* jQuery */\n\n\n function isArraylike(obj) {\n var length = obj.length,\n type = $.type(obj);\n\n if (type === \"function\" || $.isWindow(obj)) {\n return false;\n }\n\n if (obj.nodeType === 1 && length) {\n return true;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n /***************\r\n $ Methods\r\n ***************/\n\n /* jQuery: Support removed for IE<9. */\n\n\n $.isPlainObject = function (obj) {\n var key;\n\n if (!obj || $.type(obj) !== \"object\" || obj.nodeType || $.isWindow(obj)) {\n return false;\n }\n\n try {\n if (obj.constructor && !hasOwn.call(obj, \"constructor\") && !hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n for (key in obj) {}\n\n return key === undefined || hasOwn.call(obj, key);\n };\n /* jQuery */\n\n\n $.each = function (obj, callback, args) {\n var value,\n i = 0,\n length = obj.length,\n isArray = isArraylike(obj);\n\n if (args) {\n if (isArray) {\n for (; i < length; i++) {\n value = callback.apply(obj[i], args);\n\n if (value === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n\n value = callback.apply(obj[i], args);\n\n if (value === false) {\n break;\n }\n }\n }\n } else {\n if (isArray) {\n for (; i < length; i++) {\n value = callback.call(obj[i], i, obj[i]);\n\n if (value === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n\n value = callback.call(obj[i], i, obj[i]);\n\n if (value === false) {\n break;\n }\n }\n }\n }\n\n return obj;\n };\n /* Custom */\n\n\n $.data = function (node, key, value) {\n /* $.getData() */\n if (value === undefined) {\n var getId = node[$.expando],\n store = getId && cache[getId];\n\n if (key === undefined) {\n return store;\n } else if (store) {\n if (key in store) {\n return store[key];\n }\n }\n /* $.setData() */\n\n } else if (key !== undefined) {\n var setId = node[$.expando] || (node[$.expando] = ++$.uuid);\n cache[setId] = cache[setId] || {};\n cache[setId][key] = value;\n return value;\n }\n };\n /* Custom */\n\n\n $.removeData = function (node, keys) {\n var id = node[$.expando],\n store = id && cache[id];\n\n if (store) {\n // Cleanup the entire store if no keys are provided.\n if (!keys) {\n delete cache[id];\n } else {\n $.each(keys, function (_, key) {\n delete store[key];\n });\n }\n }\n };\n /* jQuery */\n\n\n $.extend = function () {\n var src,\n copyIsArray,\n copy,\n name,\n options,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n if (typeof target === \"boolean\") {\n deep = target;\n target = arguments[i] || {};\n i++;\n }\n\n if (_typeof(target) !== \"object\" && $.type(target) !== \"function\") {\n target = {};\n }\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n if (options = arguments[i]) {\n for (name in options) {\n if (!options.hasOwnProperty(name)) {\n continue;\n }\n\n src = target[name];\n copy = options[name];\n\n if (target === copy) {\n continue;\n }\n\n if (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && $.isArray(src) ? src : [];\n } else {\n clone = src && $.isPlainObject(src) ? src : {};\n }\n\n target[name] = $.extend(deep, clone, copy);\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n return target;\n };\n /* jQuery 1.4.3 */\n\n\n $.queue = function (elem, type, data) {\n function $makeArray(arr, results) {\n var ret = results || [];\n\n if (arr) {\n if (isArraylike(Object(arr))) {\n /* $.merge */\n (function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n while (j < len) {\n first[i++] = second[j++];\n }\n\n if (len !== len) {\n while (second[j] !== undefined) {\n first[i++] = second[j++];\n }\n }\n\n first.length = i;\n return first;\n })(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n [].push.call(ret, arr);\n }\n }\n\n return ret;\n }\n\n if (!elem) {\n return;\n }\n\n type = (type || \"fx\") + \"queue\";\n var q = $.data(elem, type);\n\n if (!data) {\n return q || [];\n }\n\n if (!q || $.isArray(data)) {\n q = $.data(elem, type, $makeArray(data));\n } else {\n q.push(data);\n }\n\n return q;\n };\n /* jQuery 1.4.3 */\n\n\n $.dequeue = function (elems, type) {\n /* Custom: Embed element iteration. */\n $.each(elems.nodeType ? [elems] : elems, function (i, elem) {\n type = type || \"fx\";\n var queue = $.queue(elem, type),\n fn = queue.shift();\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n }\n\n if (fn) {\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n fn.call(elem, function () {\n $.dequeue(elem, type);\n });\n }\n });\n };\n /******************\r\n $.fn Methods\r\n ******************/\n\n /* jQuery */\n\n\n $.fn = $.prototype = {\n init: function init(selector) {\n /* Just return the element wrapped inside an array; don't proceed with the actual jQuery node wrapping process. */\n if (selector.nodeType) {\n this[0] = selector;\n return this;\n } else {\n throw new Error(\"Not a DOM node.\");\n }\n },\n offset: function offset() {\n /* jQuery altered code: Dropped disconnected DOM node checking. */\n var box = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {\n top: 0,\n left: 0\n };\n return {\n top: box.top + (window.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),\n left: box.left + (window.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)\n };\n },\n position: function position() {\n /* jQuery */\n function offsetParentFn(elem) {\n var offsetParent = elem.offsetParent;\n\n while (offsetParent && offsetParent.nodeName.toLowerCase() !== \"html\" && offsetParent.style && offsetParent.style.position.toLowerCase() === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || document;\n }\n /* Zepto */\n\n\n var elem = this[0],\n offsetParent = offsetParentFn(elem),\n offset = this.offset(),\n parentOffset = /^(?:body|html)$/i.test(offsetParent.nodeName) ? {\n top: 0,\n left: 0\n } : $(offsetParent).offset();\n offset.top -= parseFloat(elem.style.marginTop) || 0;\n offset.left -= parseFloat(elem.style.marginLeft) || 0;\n\n if (offsetParent.style) {\n parentOffset.top += parseFloat(offsetParent.style.borderTopWidth) || 0;\n parentOffset.left += parseFloat(offsetParent.style.borderLeftWidth) || 0;\n }\n\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n };\n }\n };\n /**********************\r\n Private Variables\r\n **********************/\n\n /* For $.data() */\n\n var cache = {};\n $.expando = \"velocity\" + new Date().getTime();\n $.uuid = 0;\n /* For $.queue() */\n\n var class2type = {},\n hasOwn = class2type.hasOwnProperty,\n toString = class2type.toString;\n var types = \"Boolean Number String Function Array Date RegExp Object Error\".split(\" \");\n\n for (var i = 0; i < types.length; i++) {\n class2type[\"[object \" + types[i] + \"]\"] = types[i].toLowerCase();\n }\n /* Makes $(node) possible, without having to call init. */\n\n\n $.fn.init.prototype = $.fn;\n /* Globalize Velocity onto the window, and assign its Utilities property. */\n\n window.Velocity = {\n Utilities: $\n };\n})(window);\n/******************\r\n Velocity.js\r\n ******************/\n\n\n(function (factory) {\n \"use strict\";\n /* CommonJS module. */\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n module.exports = factory();\n /* AMD module. */\n } else if (typeof define === \"function\" && define.amd) {\n define(factory);\n /* Browser globals. */\n } else {\n factory();\n }\n})(function () {\n \"use strict\";\n\n return function (global, window, document, undefined) {\n /***************\r\n Summary\r\n ***************/\n\n /*\r\n - CSS: CSS stack that works independently from the rest of Velocity.\r\n - animate(): Core animation method that iterates over the targeted elements and queues the incoming call onto each element individually.\r\n - Pre-Queueing: Prepare the element for animation by instantiating its data cache and processing the call's options.\r\n - Queueing: The logic that runs once the call has reached its point of execution in the element's $.queue() stack.\r\n Most logic is placed here to avoid risking it becoming stale (if the element's properties have changed).\r\n - Pushing: Consolidation of the tween data followed by its push onto the global in-progress calls container.\r\n - tick(): The single requestAnimationFrame loop responsible for tweening all in-progress calls.\r\n - completeCall(): Handles the cleanup process for each Velocity call.\r\n */\n\n /*********************\r\n Helper Functions\r\n *********************/\n\n /* IE detection. Gist: https://gist.github.com/julianshapiro/9098609 */\n var IE = function () {\n if (document.documentMode) {\n return document.documentMode;\n } else {\n for (var i = 7; i > 4; i--) {\n var div = document.createElement(\"div\");\n div.innerHTML = \"\";\n\n if (div.getElementsByTagName(\"span\").length) {\n div = null;\n return i;\n }\n }\n }\n\n return undefined;\n }();\n /* rAF shim. Gist: https://gist.github.com/julianshapiro/9497513 */\n\n\n var rAFShim = function () {\n var timeLast = 0;\n return window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n var timeCurrent = new Date().getTime(),\n timeDelta;\n /* Dynamically set delay on a per-tick basis to match 60fps. */\n\n /* Technique by Erik Moller. MIT license: https://gist.github.com/paulirish/1579671 */\n\n timeDelta = Math.max(0, 16 - (timeCurrent - timeLast));\n timeLast = timeCurrent + timeDelta;\n return setTimeout(function () {\n callback(timeCurrent + timeDelta);\n }, timeDelta);\n };\n }();\n\n var performance = function () {\n var perf = window.performance || {};\n\n if (typeof perf.now !== \"function\") {\n var nowOffset = perf.timing && perf.timing.navigationStart ? perf.timing.navigationStart : new Date().getTime();\n\n perf.now = function () {\n return new Date().getTime() - nowOffset;\n };\n }\n\n return perf;\n }();\n /* Array compacting. Copyright Lo-Dash. MIT License: https://github.com/lodash/lodash/blob/master/LICENSE.txt */\n\n\n function compactSparseArray(array) {\n var index = -1,\n length = array ? array.length : 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n\n if (value) {\n result.push(value);\n }\n }\n\n return result;\n }\n /**\r\n * Shim for \"fixing\" IE's lack of support (IE < 9) for applying slice\r\n * on host objects like NamedNodeMap, NodeList, and HTMLCollection\r\n * (technically, since host objects have been implementation-dependent,\r\n * at least before ES2015, IE hasn't needed to work this way).\r\n * Also works on strings, fixes IE < 9 to allow an explicit undefined\r\n * for the 2nd argument (as in Firefox), and prevents errors when\r\n * called on other DOM objects.\r\n */\n\n\n var _slice = function () {\n var slice = Array.prototype.slice;\n\n try {\n // Can't be used with DOM elements in IE < 9\n slice.call(document.documentElement);\n return slice;\n } catch (e) {\n // Fails in IE < 9\n // This will work for genuine arrays, array-like objects, \n // NamedNodeMap (attributes, entities, notations),\n // NodeList (e.g., getElementsByTagName), HTMLCollection (e.g., childNodes),\n // and will not fail on other DOM objects (as do DOM elements in IE < 9)\n return function (begin, end) {\n var len = this.length;\n\n if (typeof begin !== \"number\") {\n begin = 0;\n } // IE < 9 gets unhappy with an undefined end argument\n\n\n if (typeof end !== \"number\") {\n end = len;\n } // For native Array objects, we use the native slice function\n\n\n if (this.slice) {\n return slice.call(this, begin, end);\n } // For array like object we handle it ourselves.\n\n\n var i,\n cloned = [],\n // Handle negative value for \"begin\"\n start = begin >= 0 ? begin : Math.max(0, len + begin),\n // Handle negative value for \"end\"\n upTo = end < 0 ? len + end : Math.min(end, len),\n // Actual expected size of the slice\n size = upTo - start;\n\n if (size > 0) {\n cloned = new Array(size);\n\n if (this.charAt) {\n for (i = 0; i < size; i++) {\n cloned[i] = this.charAt(start + i);\n }\n } else {\n for (i = 0; i < size; i++) {\n cloned[i] = this[start + i];\n }\n }\n }\n\n return cloned;\n };\n }\n }();\n /* .indexOf doesn't exist in IE<9 */\n\n\n var _inArray = function _inArray() {\n if (Array.prototype.includes) {\n return function (arr, val) {\n return arr.includes(val);\n };\n }\n\n if (Array.prototype.indexOf) {\n return function (arr, val) {\n return arr.indexOf(val) >= 0;\n };\n }\n\n return function (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (arr[i] === val) {\n return true;\n }\n }\n\n return false;\n };\n };\n\n function sanitizeElements(elements) {\n /* Unwrap jQuery/Zepto objects. */\n if (Type.isWrapped(elements)) {\n elements = _slice.call(elements);\n /* Wrap a single element in an array so that $.each() can iterate with the element instead of its node's children. */\n } else if (Type.isNode(elements)) {\n elements = [elements];\n }\n\n return elements;\n }\n\n var Type = {\n isNumber: function isNumber(variable) {\n return typeof variable === \"number\";\n },\n isString: function isString(variable) {\n return typeof variable === \"string\";\n },\n isArray: Array.isArray || function (variable) {\n return Object.prototype.toString.call(variable) === \"[object Array]\";\n },\n isFunction: function isFunction(variable) {\n return Object.prototype.toString.call(variable) === \"[object Function]\";\n },\n isNode: function isNode(variable) {\n return variable && variable.nodeType;\n },\n\n /* Determine if variable is an array-like wrapped jQuery, Zepto or similar element, or even a NodeList etc. */\n\n /* NOTE: HTMLFormElements also have a length. */\n isWrapped: function isWrapped(variable) {\n return variable && variable !== window && Type.isNumber(variable.length) && !Type.isString(variable) && !Type.isFunction(variable) && !Type.isNode(variable) && (variable.length === 0 || Type.isNode(variable[0]));\n },\n isSVG: function isSVG(variable) {\n return window.SVGElement && variable instanceof window.SVGElement;\n },\n isEmptyObject: function isEmptyObject(variable) {\n for (var name in variable) {\n if (variable.hasOwnProperty(name)) {\n return false;\n }\n }\n\n return true;\n }\n };\n /*****************\r\n Dependencies\r\n *****************/\n\n var $,\n isJQuery = false;\n\n if (global.fn && global.fn.jquery) {\n $ = global;\n isJQuery = true;\n } else {\n $ = window.Velocity.Utilities;\n }\n\n if (IE <= 8 && !isJQuery) {\n throw new Error(\"Velocity: IE8 and below require jQuery to be loaded before Velocity.\");\n } else if (IE <= 7) {\n /* Revert to jQuery's $.animate(), and lose Velocity's extra features. */\n jQuery.fn.velocity = jQuery.fn.animate;\n /* Now that $.fn.velocity is aliased, abort this Velocity declaration. */\n\n return;\n }\n /*****************\r\n Constants\r\n *****************/\n\n\n var DURATION_DEFAULT = 400,\n EASING_DEFAULT = \"swing\";\n /*************\r\n State\r\n *************/\n\n var Velocity = {\n /* Container for page-wide Velocity state data. */\n State: {\n /* Detect mobile devices to determine if mobileHA should be turned on. */\n isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent),\n\n /* The mobileHA option's behavior changes on older Android devices (Gingerbread, versions 2.3.3-2.3.7). */\n isAndroid: /Android/i.test(window.navigator.userAgent),\n isGingerbread: /Android 2\\.3\\.[3-7]/i.test(window.navigator.userAgent),\n isChrome: window.chrome,\n isFirefox: /Firefox/i.test(window.navigator.userAgent),\n\n /* Create a cached element for re-use when checking for CSS property prefixes. */\n prefixElement: document.createElement(\"div\"),\n\n /* Cache every prefix match to avoid repeating lookups. */\n prefixMatches: {},\n\n /* Cache the anchor used for animating window scrolling. */\n scrollAnchor: null,\n\n /* Cache the browser-specific property names associated with the scroll anchor. */\n scrollPropertyLeft: null,\n scrollPropertyTop: null,\n\n /* Keep track of whether our RAF tick is running. */\n isTicking: false,\n\n /* Container for every in-progress call to Velocity. */\n calls: [],\n delayedElements: {\n count: 0\n }\n },\n\n /* Velocity's custom CSS stack. Made global for unit testing. */\n CSS: {\n /* Defined below. */\n },\n\n /* A shim of the jQuery utility functions used by Velocity -- provided by Velocity's optional jQuery shim. */\n Utilities: $,\n\n /* Container for the user's custom animation redirects that are referenced by name in place of the properties map argument. */\n Redirects: {\n /* Manually registered by the user. */\n },\n Easings: {\n /* Defined below. */\n },\n\n /* Attempt to use ES6 Promises by default. Users can override this with a third-party promises library. */\n Promise: window.Promise,\n\n /* Velocity option defaults, which can be overriden by the user. */\n defaults: {\n queue: \"\",\n duration: DURATION_DEFAULT,\n easing: EASING_DEFAULT,\n begin: undefined,\n complete: undefined,\n progress: undefined,\n display: undefined,\n visibility: undefined,\n loop: false,\n delay: false,\n mobileHA: true,\n\n /* Advanced: Set to false to prevent property values from being cached between consecutive Velocity-initiated chain calls. */\n _cacheValues: true,\n\n /* Advanced: Set to false if the promise should always resolve on empty element lists. */\n promiseRejectEmpty: true\n },\n\n /* A design goal of Velocity is to cache data wherever possible in order to avoid DOM requerying. Accordingly, each element has a data cache. */\n init: function init(element) {\n $.data(element, \"velocity\", {\n /* Store whether this is an SVG element, since its properties are retrieved and updated differently than standard HTML elements. */\n isSVG: Type.isSVG(element),\n\n /* Keep track of whether the element is currently being animated by Velocity.\r\n This is used to ensure that property values are not transferred between non-consecutive (stale) calls. */\n isAnimating: false,\n\n /* A reference to the element's live computedStyle object. Learn more here: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle */\n computedStyle: null,\n\n /* Tween data is cached for each animation on the element so that data can be passed across calls --\r\n in particular, end values are used as subsequent start values in consecutive Velocity calls. */\n tweensContainer: null,\n\n /* The full root property values of each CSS hook being animated on this element are cached so that:\r\n 1) Concurrently-animating hooks sharing the same root can have their root values' merged into one while tweening.\r\n 2) Post-hook-injection root values can be transferred over to consecutively chained Velocity calls as starting root values. */\n rootPropertyValueCache: {},\n\n /* A cache for transform updates, which must be manually flushed via CSS.flushTransformCache(). */\n transformCache: {}\n });\n },\n\n /* A parallel to jQuery's $.css(), used for getting/setting Velocity's hooked CSS properties. */\n hook: null,\n\n /* Defined below. */\n\n /* Velocity-wide animation time remapping for testing purposes. */\n mock: false,\n version: {\n major: 1,\n minor: 5,\n patch: 2\n },\n\n /* Set to 1 or 2 (most verbose) to output debug info to console. */\n debug: false,\n\n /* Use rAF high resolution timestamp when available */\n timestamp: true,\n\n /* Pause all animations */\n pauseAll: function pauseAll(queueName) {\n var currentTime = new Date().getTime();\n $.each(Velocity.State.calls, function (i, activeCall) {\n if (activeCall) {\n /* If we have a queueName and this call is not on that queue, skip */\n if (queueName !== undefined && (activeCall[2].queue !== queueName || activeCall[2].queue === false)) {\n return true;\n }\n /* Set call to paused */\n\n\n activeCall[5] = {\n resume: false\n };\n }\n });\n /* Pause timers on any currently delayed calls */\n\n $.each(Velocity.State.delayedElements, function (k, element) {\n if (!element) {\n return;\n }\n\n pauseDelayOnElement(element, currentTime);\n });\n },\n\n /* Resume all animations */\n resumeAll: function resumeAll(queueName) {\n var currentTime = new Date().getTime();\n $.each(Velocity.State.calls, function (i, activeCall) {\n if (activeCall) {\n /* If we have a queueName and this call is not on that queue, skip */\n if (queueName !== undefined && (activeCall[2].queue !== queueName || activeCall[2].queue === false)) {\n return true;\n }\n /* Set call to resumed if it was paused */\n\n\n if (activeCall[5]) {\n activeCall[5].resume = true;\n }\n }\n });\n /* Resume timers on any currently delayed calls */\n\n $.each(Velocity.State.delayedElements, function (k, element) {\n if (!element) {\n return;\n }\n\n resumeDelayOnElement(element, currentTime);\n });\n }\n };\n /* Retrieve the appropriate scroll anchor and property name for the browser: https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY */\n\n if (window.pageYOffset !== undefined) {\n Velocity.State.scrollAnchor = window;\n Velocity.State.scrollPropertyLeft = \"pageXOffset\";\n Velocity.State.scrollPropertyTop = \"pageYOffset\";\n } else {\n Velocity.State.scrollAnchor = document.documentElement || document.body.parentNode || document.body;\n Velocity.State.scrollPropertyLeft = \"scrollLeft\";\n Velocity.State.scrollPropertyTop = \"scrollTop\";\n }\n /* Shorthand alias for jQuery's $.data() utility. */\n\n\n function Data(element) {\n /* Hardcode a reference to the plugin name. */\n var response = $.data(element, \"velocity\");\n /* jQuery <=1.4.2 returns null instead of undefined when no match is found. We normalize this behavior. */\n\n return response === null ? undefined : response;\n }\n /**************\r\n Delay Timer\r\n **************/\n\n\n function pauseDelayOnElement(element, currentTime) {\n /* Check for any delay timers, and pause the set timeouts (while preserving time data)\r\n to be resumed when the \"resume\" command is issued */\n var data = Data(element);\n\n if (data && data.delayTimer && !data.delayPaused) {\n data.delayRemaining = data.delay - currentTime + data.delayBegin;\n data.delayPaused = true;\n clearTimeout(data.delayTimer.setTimeout);\n }\n }\n\n function resumeDelayOnElement(element, currentTime) {\n /* Check for any paused timers and resume */\n var data = Data(element);\n\n if (data && data.delayTimer && data.delayPaused) {\n /* If the element was mid-delay, re initiate the timeout with the remaining delay */\n data.delayPaused = false;\n data.delayTimer.setTimeout = setTimeout(data.delayTimer.next, data.delayRemaining);\n }\n }\n /**************\r\n Easing\r\n **************/\n\n /* Step easing generator. */\n\n\n function generateStep(steps) {\n return function (p) {\n return Math.round(p * steps) * (1 / steps);\n };\n }\n /* Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n\n\n function generateBezier(mX1, mY1, mX2, mY2) {\n var NEWTON_ITERATIONS = 4,\n NEWTON_MIN_SLOPE = 0.001,\n SUBDIVISION_PRECISION = 0.0000001,\n SUBDIVISION_MAX_ITERATIONS = 10,\n kSplineTableSize = 11,\n kSampleStepSize = 1.0 / (kSplineTableSize - 1.0),\n float32ArraySupported = (\"Float32Array\" in window);\n /* Must contain four arguments. */\n\n if (arguments.length !== 4) {\n return false;\n }\n /* Arguments must be numbers. */\n\n\n for (var i = 0; i < 4; ++i) {\n if (typeof arguments[i] !== \"number\" || isNaN(arguments[i]) || !isFinite(arguments[i])) {\n return false;\n }\n }\n /* X values must be in the [0, 1] range. */\n\n\n mX1 = Math.min(mX1, 1);\n mX2 = Math.min(mX2, 1);\n mX1 = Math.max(mX1, 0);\n mX2 = Math.max(mX2, 0);\n var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n }\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function newtonRaphsonIterate(aX, aGuessT) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n\n function calcSampleValues() {\n for (var i = 0; i < kSplineTableSize; ++i) {\n mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function binarySubdivide(aX, aA, aB) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0,\n currentSample = 1,\n lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\n guessForT = intervalStart + dist * kSampleStepSize,\n initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\n }\n }\n\n var _precomputed = false;\n\n function precompute() {\n _precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n calcSampleValues();\n }\n }\n\n var f = function f(aX) {\n if (!_precomputed) {\n precompute();\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return aX;\n }\n\n if (aX === 0) {\n return 0;\n }\n\n if (aX === 1) {\n return 1;\n }\n\n return calcBezier(getTForX(aX), mY1, mY2);\n };\n\n f.getControlPoints = function () {\n return [{\n x: mX1,\n y: mY1\n }, {\n x: mX2,\n y: mY2\n }];\n };\n\n var str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\";\n\n f.toString = function () {\n return str;\n };\n\n return f;\n }\n /* Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n\n /* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\r\n then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\n\n\n var generateSpringRK4 = function () {\n function springAccelerationForState(state) {\n return -state.tension * state.x - state.friction * state.v;\n }\n\n function springEvaluateStateWithDerivative(initialState, dt, derivative) {\n var state = {\n x: initialState.x + derivative.dx * dt,\n v: initialState.v + derivative.dv * dt,\n tension: initialState.tension,\n friction: initialState.friction\n };\n return {\n dx: state.v,\n dv: springAccelerationForState(state)\n };\n }\n\n function springIntegrateState(state, dt) {\n var a = {\n dx: state.v,\n dv: springAccelerationForState(state)\n },\n b = springEvaluateStateWithDerivative(state, dt * 0.5, a),\n c = springEvaluateStateWithDerivative(state, dt * 0.5, b),\n d = springEvaluateStateWithDerivative(state, dt, c),\n dxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx),\n dvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv);\n state.x = state.x + dxdt * dt;\n state.v = state.v + dvdt * dt;\n return state;\n }\n\n return function springRK4Factory(tension, friction, duration) {\n var initState = {\n x: -1,\n v: 0,\n tension: null,\n friction: null\n },\n path = [0],\n time_lapsed = 0,\n tolerance = 1 / 10000,\n DT = 16 / 1000,\n have_duration,\n dt,\n last_state;\n tension = parseFloat(tension) || 500;\n friction = parseFloat(friction) || 20;\n duration = duration || null;\n initState.tension = tension;\n initState.friction = friction;\n have_duration = duration !== null;\n /* Calculate the actual time it takes for this animation to complete with the provided conditions. */\n\n if (have_duration) {\n /* Run the simulation without a duration. */\n time_lapsed = springRK4Factory(tension, friction);\n /* Compute the adjusted time delta. */\n\n dt = time_lapsed / duration * DT;\n } else {\n dt = DT;\n }\n\n while (true) {\n /* Next/step function .*/\n last_state = springIntegrateState(last_state || initState, dt);\n /* Store the position. */\n\n path.push(1 + last_state.x);\n time_lapsed += 16;\n /* If the change threshold is reached, break. */\n\n if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {\n break;\n }\n }\n /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\r\n computed path and returns a snapshot of the position according to a given percentComplete. */\n\n\n return !have_duration ? time_lapsed : function (percentComplete) {\n return path[percentComplete * (path.length - 1) | 0];\n };\n };\n }();\n /* jQuery easings. */\n\n\n Velocity.Easings = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n\n /* Bonus \"spring\" easing, which is a less exaggerated version of easeInOutElastic. */\n spring: function spring(p) {\n return 1 - Math.cos(p * 4.5 * Math.PI) * Math.exp(-p * 6);\n }\n };\n /* CSS3 and Robert Penner easings. */\n\n $.each([[\"ease\", [0.25, 0.1, 0.25, 1.0]], [\"ease-in\", [0.42, 0.0, 1.00, 1.0]], [\"ease-out\", [0.00, 0.0, 0.58, 1.0]], [\"ease-in-out\", [0.42, 0.0, 0.58, 1.0]], [\"easeInSine\", [0.47, 0, 0.745, 0.715]], [\"easeOutSine\", [0.39, 0.575, 0.565, 1]], [\"easeInOutSine\", [0.445, 0.05, 0.55, 0.95]], [\"easeInQuad\", [0.55, 0.085, 0.68, 0.53]], [\"easeOutQuad\", [0.25, 0.46, 0.45, 0.94]], [\"easeInOutQuad\", [0.455, 0.03, 0.515, 0.955]], [\"easeInCubic\", [0.55, 0.055, 0.675, 0.19]], [\"easeOutCubic\", [0.215, 0.61, 0.355, 1]], [\"easeInOutCubic\", [0.645, 0.045, 0.355, 1]], [\"easeInQuart\", [0.895, 0.03, 0.685, 0.22]], [\"easeOutQuart\", [0.165, 0.84, 0.44, 1]], [\"easeInOutQuart\", [0.77, 0, 0.175, 1]], [\"easeInQuint\", [0.755, 0.05, 0.855, 0.06]], [\"easeOutQuint\", [0.23, 1, 0.32, 1]], [\"easeInOutQuint\", [0.86, 0, 0.07, 1]], [\"easeInExpo\", [0.95, 0.05, 0.795, 0.035]], [\"easeOutExpo\", [0.19, 1, 0.22, 1]], [\"easeInOutExpo\", [1, 0, 0, 1]], [\"easeInCirc\", [0.6, 0.04, 0.98, 0.335]], [\"easeOutCirc\", [0.075, 0.82, 0.165, 1]], [\"easeInOutCirc\", [0.785, 0.135, 0.15, 0.86]]], function (i, easingArray) {\n Velocity.Easings[easingArray[0]] = generateBezier.apply(null, easingArray[1]);\n });\n /* Determine the appropriate easing type given an easing input. */\n\n function getEasing(value, duration) {\n var easing = value;\n /* The easing option can either be a string that references a pre-registered easing,\r\n or it can be a two-/four-item array of integers to be converted into a bezier/spring function. */\n\n if (Type.isString(value)) {\n /* Ensure that the easing has been assigned to jQuery's Velocity.Easings object. */\n if (!Velocity.Easings[value]) {\n easing = false;\n }\n } else if (Type.isArray(value) && value.length === 1) {\n easing = generateStep.apply(null, value);\n } else if (Type.isArray(value) && value.length === 2) {\n /* springRK4 must be passed the animation's duration. */\n\n /* Note: If the springRK4 array contains non-numbers, generateSpringRK4() returns an easing\r\n function generated with default tension and friction values. */\n easing = generateSpringRK4.apply(null, value.concat([duration]));\n } else if (Type.isArray(value) && value.length === 4) {\n /* Note: If the bezier array contains non-numbers, generateBezier() returns false. */\n easing = generateBezier.apply(null, value);\n } else {\n easing = false;\n }\n /* Revert to the Velocity-wide default easing type, or fall back to \"swing\" (which is also jQuery's default)\r\n if the Velocity-wide default has been incorrectly modified. */\n\n\n if (easing === false) {\n if (Velocity.Easings[Velocity.defaults.easing]) {\n easing = Velocity.defaults.easing;\n } else {\n easing = EASING_DEFAULT;\n }\n }\n\n return easing;\n }\n /*****************\r\n CSS Stack\r\n *****************/\n\n /* The CSS object is a highly condensed and performant CSS stack that fully replaces jQuery's.\r\n It handles the validation, getting, and setting of both standard CSS properties and CSS property hooks. */\n\n /* Note: A \"CSS\" shorthand is aliased so that our code is easier to read. */\n\n\n var CSS = Velocity.CSS = {\n /*************\r\n RegEx\r\n *************/\n RegEx: {\n isHex: /^#([A-f\\d]{3}){1,2}$/i,\n\n /* Unwrap a property value's surrounding text, e.g. \"rgba(4, 3, 2, 1)\" ==> \"4, 3, 2, 1\" and \"rect(4px 3px 2px 1px)\" ==> \"4px 3px 2px 1px\". */\n valueUnwrap: /^[A-z]+\\((.*)\\)$/i,\n wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,\n\n /* Split a multi-value property into an array of subvalues, e.g. \"rgba(4, 3, 2, 1) 4px 3px 2px 1px\" ==> [ \"rgba(4, 3, 2, 1)\", \"4px\", \"3px\", \"2px\", \"1px\" ]. */\n valueSplit: /([A-z]+\\(.+\\))|(([A-z0-9#-.]+?)(?=\\s|$))/ig\n },\n\n /************\r\n Lists\r\n ************/\n Lists: {\n colors: [\"fill\", \"stroke\", \"stopColor\", \"color\", \"backgroundColor\", \"borderColor\", \"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\", \"outlineColor\"],\n transformsBase: [\"translateX\", \"translateY\", \"scale\", \"scaleX\", \"scaleY\", \"skewX\", \"skewY\", \"rotateZ\"],\n transforms3D: [\"transformPerspective\", \"translateZ\", \"scaleZ\", \"rotateX\", \"rotateY\"],\n units: [\"%\", // relative\n \"em\", \"ex\", \"ch\", \"rem\", // font relative\n \"vw\", \"vh\", \"vmin\", \"vmax\", // viewport relative\n \"cm\", \"mm\", \"Q\", \"in\", \"pc\", \"pt\", \"px\", // absolute lengths\n \"deg\", \"grad\", \"rad\", \"turn\", // angles\n \"s\", \"ms\" // time\n ],\n colorNames: {\n \"aliceblue\": \"240,248,255\",\n \"antiquewhite\": \"250,235,215\",\n \"aquamarine\": \"127,255,212\",\n \"aqua\": \"0,255,255\",\n \"azure\": \"240,255,255\",\n \"beige\": \"245,245,220\",\n \"bisque\": \"255,228,196\",\n \"black\": \"0,0,0\",\n \"blanchedalmond\": \"255,235,205\",\n \"blueviolet\": \"138,43,226\",\n \"blue\": \"0,0,255\",\n \"brown\": \"165,42,42\",\n \"burlywood\": \"222,184,135\",\n \"cadetblue\": \"95,158,160\",\n \"chartreuse\": \"127,255,0\",\n \"chocolate\": \"210,105,30\",\n \"coral\": \"255,127,80\",\n \"cornflowerblue\": \"100,149,237\",\n \"cornsilk\": \"255,248,220\",\n \"crimson\": \"220,20,60\",\n \"cyan\": \"0,255,255\",\n \"darkblue\": \"0,0,139\",\n \"darkcyan\": \"0,139,139\",\n \"darkgoldenrod\": \"184,134,11\",\n \"darkgray\": \"169,169,169\",\n \"darkgrey\": \"169,169,169\",\n \"darkgreen\": \"0,100,0\",\n \"darkkhaki\": \"189,183,107\",\n \"darkmagenta\": \"139,0,139\",\n \"darkolivegreen\": \"85,107,47\",\n \"darkorange\": \"255,140,0\",\n \"darkorchid\": \"153,50,204\",\n \"darkred\": \"139,0,0\",\n \"darksalmon\": \"233,150,122\",\n \"darkseagreen\": \"143,188,143\",\n \"darkslateblue\": \"72,61,139\",\n \"darkslategray\": \"47,79,79\",\n \"darkturquoise\": \"0,206,209\",\n \"darkviolet\": \"148,0,211\",\n \"deeppink\": \"255,20,147\",\n \"deepskyblue\": \"0,191,255\",\n \"dimgray\": \"105,105,105\",\n \"dimgrey\": \"105,105,105\",\n \"dodgerblue\": \"30,144,255\",\n \"firebrick\": \"178,34,34\",\n \"floralwhite\": \"255,250,240\",\n \"forestgreen\": \"34,139,34\",\n \"fuchsia\": \"255,0,255\",\n \"gainsboro\": \"220,220,220\",\n \"ghostwhite\": \"248,248,255\",\n \"gold\": \"255,215,0\",\n \"goldenrod\": \"218,165,32\",\n \"gray\": \"128,128,128\",\n \"grey\": \"128,128,128\",\n \"greenyellow\": \"173,255,47\",\n \"green\": \"0,128,0\",\n \"honeydew\": \"240,255,240\",\n \"hotpink\": \"255,105,180\",\n \"indianred\": \"205,92,92\",\n \"indigo\": \"75,0,130\",\n \"ivory\": \"255,255,240\",\n \"khaki\": \"240,230,140\",\n \"lavenderblush\": \"255,240,245\",\n \"lavender\": \"230,230,250\",\n \"lawngreen\": \"124,252,0\",\n \"lemonchiffon\": \"255,250,205\",\n \"lightblue\": \"173,216,230\",\n \"lightcoral\": \"240,128,128\",\n \"lightcyan\": \"224,255,255\",\n \"lightgoldenrodyellow\": \"250,250,210\",\n \"lightgray\": \"211,211,211\",\n \"lightgrey\": \"211,211,211\",\n \"lightgreen\": \"144,238,144\",\n \"lightpink\": \"255,182,193\",\n \"lightsalmon\": \"255,160,122\",\n \"lightseagreen\": \"32,178,170\",\n \"lightskyblue\": \"135,206,250\",\n \"lightslategray\": \"119,136,153\",\n \"lightsteelblue\": \"176,196,222\",\n \"lightyellow\": \"255,255,224\",\n \"limegreen\": \"50,205,50\",\n \"lime\": \"0,255,0\",\n \"linen\": \"250,240,230\",\n \"magenta\": \"255,0,255\",\n \"maroon\": \"128,0,0\",\n \"mediumaquamarine\": \"102,205,170\",\n \"mediumblue\": \"0,0,205\",\n \"mediumorchid\": \"186,85,211\",\n \"mediumpurple\": \"147,112,219\",\n \"mediumseagreen\": \"60,179,113\",\n \"mediumslateblue\": \"123,104,238\",\n \"mediumspringgreen\": \"0,250,154\",\n \"mediumturquoise\": \"72,209,204\",\n \"mediumvioletred\": \"199,21,133\",\n \"midnightblue\": \"25,25,112\",\n \"mintcream\": \"245,255,250\",\n \"mistyrose\": \"255,228,225\",\n \"moccasin\": \"255,228,181\",\n \"navajowhite\": \"255,222,173\",\n \"navy\": \"0,0,128\",\n \"oldlace\": \"253,245,230\",\n \"olivedrab\": \"107,142,35\",\n \"olive\": \"128,128,0\",\n \"orangered\": \"255,69,0\",\n \"orange\": \"255,165,0\",\n \"orchid\": \"218,112,214\",\n \"palegoldenrod\": \"238,232,170\",\n \"palegreen\": \"152,251,152\",\n \"paleturquoise\": \"175,238,238\",\n \"palevioletred\": \"219,112,147\",\n \"papayawhip\": \"255,239,213\",\n \"peachpuff\": \"255,218,185\",\n \"peru\": \"205,133,63\",\n \"pink\": \"255,192,203\",\n \"plum\": \"221,160,221\",\n \"powderblue\": \"176,224,230\",\n \"purple\": \"128,0,128\",\n \"red\": \"255,0,0\",\n \"rosybrown\": \"188,143,143\",\n \"royalblue\": \"65,105,225\",\n \"saddlebrown\": \"139,69,19\",\n \"salmon\": \"250,128,114\",\n \"sandybrown\": \"244,164,96\",\n \"seagreen\": \"46,139,87\",\n \"seashell\": \"255,245,238\",\n \"sienna\": \"160,82,45\",\n \"silver\": \"192,192,192\",\n \"skyblue\": \"135,206,235\",\n \"slateblue\": \"106,90,205\",\n \"slategray\": \"112,128,144\",\n \"snow\": \"255,250,250\",\n \"springgreen\": \"0,255,127\",\n \"steelblue\": \"70,130,180\",\n \"tan\": \"210,180,140\",\n \"teal\": \"0,128,128\",\n \"thistle\": \"216,191,216\",\n \"tomato\": \"255,99,71\",\n \"turquoise\": \"64,224,208\",\n \"violet\": \"238,130,238\",\n \"wheat\": \"245,222,179\",\n \"whitesmoke\": \"245,245,245\",\n \"white\": \"255,255,255\",\n \"yellowgreen\": \"154,205,50\",\n \"yellow\": \"255,255,0\"\n }\n },\n\n /************\r\n Hooks\r\n ************/\n\n /* Hooks allow a subproperty (e.g. \"boxShadowBlur\") of a compound-value CSS property\r\n (e.g. \"boxShadow: X Y Blur Spread Color\") to be animated as if it were a discrete property. */\n\n /* Note: Beyond enabling fine-grained property animation, hooking is necessary since Velocity only\r\n tweens properties with single numeric values; unlike CSS transitions, Velocity does not interpolate compound-values. */\n Hooks: {\n /********************\r\n Registration\r\n ********************/\n\n /* Templates are a concise way of indicating which subproperties must be individually registered for each compound-value CSS property. */\n\n /* Each template consists of the compound-value's base name, its constituent subproperty names, and those subproperties' default values. */\n templates: {\n \"textShadow\": [\"Color X Y Blur\", \"black 0px 0px 0px\"],\n \"boxShadow\": [\"Color X Y Blur Spread\", \"black 0px 0px 0px 0px\"],\n \"clip\": [\"Top Right Bottom Left\", \"0px 0px 0px 0px\"],\n \"backgroundPosition\": [\"X Y\", \"0% 0%\"],\n \"transformOrigin\": [\"X Y Z\", \"50% 50% 0px\"],\n \"perspectiveOrigin\": [\"X Y\", \"50% 50%\"]\n },\n\n /* A \"registered\" hook is one that has been converted from its template form into a live,\r\n tweenable property. It contains data to associate it with its root property. */\n registered: {\n /* Note: A registered hook looks like this ==> textShadowBlur: [ \"textShadow\", 3 ],\r\n which consists of the subproperty's name, the associated root property's name,\r\n and the subproperty's position in the root's value. */\n },\n\n /* Convert the templates into individual hooks then append them to the registered object above. */\n register: function register() {\n /* Color hooks registration: Colors are defaulted to white -- as opposed to black -- since colors that are\r\n currently set to \"transparent\" default to their respective template below when color-animated,\r\n and white is typically a closer match to transparent than black is. An exception is made for text (\"color\"),\r\n which is almost always set closer to black than white. */\n for (var i = 0; i < CSS.Lists.colors.length; i++) {\n var rgbComponents = CSS.Lists.colors[i] === \"color\" ? \"0 0 0 1\" : \"255 255 255 1\";\n CSS.Hooks.templates[CSS.Lists.colors[i]] = [\"Red Green Blue Alpha\", rgbComponents];\n }\n\n var rootProperty, hookTemplate, hookNames;\n /* In IE, color values inside compound-value properties are positioned at the end the value instead of at the beginning.\r\n Thus, we re-arrange the templates accordingly. */\n\n if (IE) {\n for (rootProperty in CSS.Hooks.templates) {\n if (!CSS.Hooks.templates.hasOwnProperty(rootProperty)) {\n continue;\n }\n\n hookTemplate = CSS.Hooks.templates[rootProperty];\n hookNames = hookTemplate[0].split(\" \");\n var defaultValues = hookTemplate[1].match(CSS.RegEx.valueSplit);\n\n if (hookNames[0] === \"Color\") {\n /* Reposition both the hook's name and its default value to the end of their respective strings. */\n hookNames.push(hookNames.shift());\n defaultValues.push(defaultValues.shift());\n /* Replace the existing template for the hook's root property. */\n\n CSS.Hooks.templates[rootProperty] = [hookNames.join(\" \"), defaultValues.join(\" \")];\n }\n }\n }\n /* Hook registration. */\n\n\n for (rootProperty in CSS.Hooks.templates) {\n if (!CSS.Hooks.templates.hasOwnProperty(rootProperty)) {\n continue;\n }\n\n hookTemplate = CSS.Hooks.templates[rootProperty];\n hookNames = hookTemplate[0].split(\" \");\n\n for (var j in hookNames) {\n if (!hookNames.hasOwnProperty(j)) {\n continue;\n }\n\n var fullHookName = rootProperty + hookNames[j],\n hookPosition = j;\n /* For each hook, register its full name (e.g. textShadowBlur) with its root property (e.g. textShadow)\r\n and the hook's position in its template's default value string. */\n\n CSS.Hooks.registered[fullHookName] = [rootProperty, hookPosition];\n }\n }\n },\n\n /*****************************\r\n Injection and Extraction\r\n *****************************/\n\n /* Look up the root property associated with the hook (e.g. return \"textShadow\" for \"textShadowBlur\"). */\n\n /* Since a hook cannot be set directly (the browser won't recognize it), style updating for hooks is routed through the hook's root property. */\n getRoot: function getRoot(property) {\n var hookData = CSS.Hooks.registered[property];\n\n if (hookData) {\n return hookData[0];\n } else {\n /* If there was no hook match, return the property name untouched. */\n return property;\n }\n },\n getUnit: function getUnit(str, start) {\n var unit = (str.substr(start || 0, 5).match(/^[a-z%]+/) || [])[0] || \"\";\n\n if (unit && _inArray(CSS.Lists.units, unit)) {\n return unit;\n }\n\n return \"\";\n },\n fixColors: function fixColors(str) {\n return str.replace(/(rgba?\\(\\s*)?(\\b[a-z]+\\b)/g, function ($0, $1, $2) {\n if (CSS.Lists.colorNames.hasOwnProperty($2)) {\n return ($1 ? $1 : \"rgba(\") + CSS.Lists.colorNames[$2] + ($1 ? \"\" : \",1)\");\n }\n\n return $1 + $2;\n });\n },\n\n /* Convert any rootPropertyValue, null or otherwise, into a space-delimited list of hook values so that\r\n the targeted hook can be injected or extracted at its standard position. */\n cleanRootPropertyValue: function cleanRootPropertyValue(rootProperty, rootPropertyValue) {\n /* If the rootPropertyValue is wrapped with \"rgb()\", \"clip()\", etc., remove the wrapping to normalize the value before manipulation. */\n if (CSS.RegEx.valueUnwrap.test(rootPropertyValue)) {\n rootPropertyValue = rootPropertyValue.match(CSS.RegEx.valueUnwrap)[1];\n }\n /* If rootPropertyValue is a CSS null-value (from which there's inherently no hook value to extract),\r\n default to the root's default value as defined in CSS.Hooks.templates. */\n\n /* Note: CSS null-values include \"none\", \"auto\", and \"transparent\". They must be converted into their\r\n zero-values (e.g. textShadow: \"none\" ==> textShadow: \"0px 0px 0px black\") for hook manipulation to proceed. */\n\n\n if (CSS.Values.isCSSNullValue(rootPropertyValue)) {\n rootPropertyValue = CSS.Hooks.templates[rootProperty][1];\n }\n\n return rootPropertyValue;\n },\n\n /* Extracted the hook's value from its root property's value. This is used to get the starting value of an animating hook. */\n extractValue: function extractValue(fullHookName, rootPropertyValue) {\n var hookData = CSS.Hooks.registered[fullHookName];\n\n if (hookData) {\n var hookRoot = hookData[0],\n hookPosition = hookData[1];\n rootPropertyValue = CSS.Hooks.cleanRootPropertyValue(hookRoot, rootPropertyValue);\n /* Split rootPropertyValue into its constituent hook values then grab the desired hook at its standard position. */\n\n return rootPropertyValue.toString().match(CSS.RegEx.valueSplit)[hookPosition];\n } else {\n /* If the provided fullHookName isn't a registered hook, return the rootPropertyValue that was passed in. */\n return rootPropertyValue;\n }\n },\n\n /* Inject the hook's value into its root property's value. This is used to piece back together the root property\r\n once Velocity has updated one of its individually hooked values through tweening. */\n injectValue: function injectValue(fullHookName, hookValue, rootPropertyValue) {\n var hookData = CSS.Hooks.registered[fullHookName];\n\n if (hookData) {\n var hookRoot = hookData[0],\n hookPosition = hookData[1],\n rootPropertyValueParts,\n rootPropertyValueUpdated;\n rootPropertyValue = CSS.Hooks.cleanRootPropertyValue(hookRoot, rootPropertyValue);\n /* Split rootPropertyValue into its individual hook values, replace the targeted value with hookValue,\r\n then reconstruct the rootPropertyValue string. */\n\n rootPropertyValueParts = rootPropertyValue.toString().match(CSS.RegEx.valueSplit);\n rootPropertyValueParts[hookPosition] = hookValue;\n rootPropertyValueUpdated = rootPropertyValueParts.join(\" \");\n return rootPropertyValueUpdated;\n } else {\n /* If the provided fullHookName isn't a registered hook, return the rootPropertyValue that was passed in. */\n return rootPropertyValue;\n }\n }\n },\n\n /*******************\r\n Normalizations\r\n *******************/\n\n /* Normalizations standardize CSS property manipulation by pollyfilling browser-specific implementations (e.g. opacity)\r\n and reformatting special properties (e.g. clip, rgba) to look like standard ones. */\n Normalizations: {\n /* Normalizations are passed a normalization target (either the property's name, its extracted value, or its injected value),\r\n the targeted element (which may need to be queried), and the targeted property value. */\n registered: {\n clip: function clip(type, element, propertyValue) {\n switch (type) {\n case \"name\":\n return \"clip\";\n\n /* Clip needs to be unwrapped and stripped of its commas during extraction. */\n\n case \"extract\":\n var extracted;\n /* If Velocity also extracted this value, skip extraction. */\n\n if (CSS.RegEx.wrappedValueAlreadyExtracted.test(propertyValue)) {\n extracted = propertyValue;\n } else {\n /* Remove the \"rect()\" wrapper. */\n extracted = propertyValue.toString().match(CSS.RegEx.valueUnwrap);\n /* Strip off commas. */\n\n extracted = extracted ? extracted[1].replace(/,(\\s+)?/g, \" \") : propertyValue;\n }\n\n return extracted;\n\n /* Clip needs to be re-wrapped during injection. */\n\n case \"inject\":\n return \"rect(\" + propertyValue + \")\";\n }\n },\n blur: function blur(type, element, propertyValue) {\n switch (type) {\n case \"name\":\n return Velocity.State.isFirefox ? \"filter\" : \"-webkit-filter\";\n\n case \"extract\":\n var extracted = parseFloat(propertyValue);\n /* If extracted is NaN, meaning the value isn't already extracted. */\n\n if (!(extracted || extracted === 0)) {\n var blurComponent = propertyValue.toString().match(/blur\\(([0-9]+[A-z]+)\\)/i);\n /* If the filter string had a blur component, return just the blur value and unit type. */\n\n if (blurComponent) {\n extracted = blurComponent[1];\n /* If the component doesn't exist, default blur to 0. */\n } else {\n extracted = 0;\n }\n }\n\n return extracted;\n\n /* Blur needs to be re-wrapped during injection. */\n\n case \"inject\":\n /* For the blur effect to be fully de-applied, it needs to be set to \"none\" instead of 0. */\n if (!parseFloat(propertyValue)) {\n return \"none\";\n } else {\n return \"blur(\" + propertyValue + \")\";\n }\n\n }\n },\n\n /* <=IE8 do not support the standard opacity property. They use filter:alpha(opacity=INT) instead. */\n opacity: function opacity(type, element, propertyValue) {\n if (IE <= 8) {\n switch (type) {\n case \"name\":\n return \"filter\";\n\n case \"extract\":\n /* <=IE8 return a \"filter\" value of \"alpha(opacity=\\d{1,3})\".\r\n Extract the value and convert it to a decimal value to match the standard CSS opacity property's formatting. */\n var extracted = propertyValue.toString().match(/alpha\\(opacity=(.*)\\)/i);\n\n if (extracted) {\n /* Convert to decimal value. */\n propertyValue = extracted[1] / 100;\n } else {\n /* When extracting opacity, default to 1 since a null value means opacity hasn't been set. */\n propertyValue = 1;\n }\n\n return propertyValue;\n\n case \"inject\":\n /* Opacified elements are required to have their zoom property set to a non-zero value. */\n element.style.zoom = 1;\n /* Setting the filter property on elements with certain font property combinations can result in a\r\n highly unappealing ultra-bolding effect. There's no way to remedy this throughout a tween, but dropping the\r\n value altogether (when opacity hits 1) at leasts ensures that the glitch is gone post-tweening. */\n\n if (parseFloat(propertyValue) >= 1) {\n return \"\";\n } else {\n /* As per the filter property's spec, convert the decimal value to a whole number and wrap the value. */\n return \"alpha(opacity=\" + parseInt(parseFloat(propertyValue) * 100, 10) + \")\";\n }\n\n }\n /* With all other browsers, normalization is not required; return the same values that were passed in. */\n\n } else {\n switch (type) {\n case \"name\":\n return \"opacity\";\n\n case \"extract\":\n return propertyValue;\n\n case \"inject\":\n return propertyValue;\n }\n }\n }\n },\n\n /*****************************\r\n Batched Registrations\r\n *****************************/\n\n /* Note: Batched normalizations extend the CSS.Normalizations.registered object. */\n register: function register() {\n /*****************\r\n Transforms\r\n *****************/\n\n /* Transforms are the subproperties contained by the CSS \"transform\" property. Transforms must undergo normalization\r\n so that they can be referenced in a properties map by their individual names. */\n\n /* Note: When transforms are \"set\", they are actually assigned to a per-element transformCache. When all transform\r\n setting is complete complete, CSS.flushTransformCache() must be manually called to flush the values to the DOM.\r\n Transform setting is batched in this way to improve performance: the transform style only needs to be updated\r\n once when multiple transform subproperties are being animated simultaneously. */\n\n /* Note: IE9 and Android Gingerbread have support for 2D -- but not 3D -- transforms. Since animating unsupported\r\n transform properties results in the browser ignoring the *entire* transform string, we prevent these 3D values\r\n from being normalized for these browsers so that tweening skips these properties altogether\r\n (since it will ignore them as being unsupported by the browser.) */\n if ((!IE || IE > 9) && !Velocity.State.isGingerbread) {\n /* Note: Since the standalone CSS \"perspective\" property and the CSS transform \"perspective\" subproperty\r\n share the same name, the latter is given a unique token within Velocity: \"transformPerspective\". */\n CSS.Lists.transformsBase = CSS.Lists.transformsBase.concat(CSS.Lists.transforms3D);\n }\n\n for (var i = 0; i < CSS.Lists.transformsBase.length; i++) {\n /* Wrap the dynamically generated normalization function in a new scope so that transformName's value is\r\n paired with its respective function. (Otherwise, all functions would take the final for loop's transformName.) */\n (function () {\n var transformName = CSS.Lists.transformsBase[i];\n\n CSS.Normalizations.registered[transformName] = function (type, element, propertyValue) {\n switch (type) {\n /* The normalized property name is the parent \"transform\" property -- the property that is actually set in CSS. */\n case \"name\":\n return \"transform\";\n\n /* Transform values are cached onto a per-element transformCache object. */\n\n case \"extract\":\n /* If this transform has yet to be assigned a value, return its null value. */\n if (Data(element) === undefined || Data(element).transformCache[transformName] === undefined) {\n /* Scale CSS.Lists.transformsBase default to 1 whereas all other transform properties default to 0. */\n return /^scale/i.test(transformName) ? 1 : 0;\n /* When transform values are set, they are wrapped in parentheses as per the CSS spec.\r\n Thus, when extracting their values (for tween calculations), we strip off the parentheses. */\n }\n\n return Data(element).transformCache[transformName].replace(/[()]/g, \"\");\n\n case \"inject\":\n var invalid = false;\n /* If an individual transform property contains an unsupported unit type, the browser ignores the *entire* transform property.\r\n Thus, protect users from themselves by skipping setting for transform values supplied with invalid unit types. */\n\n /* Switch on the base transform type; ignore the axis by removing the last letter from the transform's name. */\n\n switch (transformName.substr(0, transformName.length - 1)) {\n /* Whitelist unit types for each transform. */\n case \"translate\":\n invalid = !/(%|px|em|rem|vw|vh|\\d)$/i.test(propertyValue);\n break;\n\n /* Since an axis-free \"scale\" property is supported as well, a little hack is used here to detect it by chopping off its last letter. */\n\n case \"scal\":\n case \"scale\":\n /* Chrome on Android has a bug in which scaled elements blur if their initial scale\r\n value is below 1 (which can happen with forcefeeding). Thus, we detect a yet-unset scale property\r\n and ensure that its first value is always 1. More info: http://stackoverflow.com/questions/10417890/css3-animations-with-transform-causes-blurred-elements-on-webkit/10417962#10417962 */\n if (Velocity.State.isAndroid && Data(element).transformCache[transformName] === undefined && propertyValue < 1) {\n propertyValue = 1;\n }\n\n invalid = !/(\\d)$/i.test(propertyValue);\n break;\n\n case \"skew\":\n invalid = !/(deg|\\d)$/i.test(propertyValue);\n break;\n\n case \"rotate\":\n invalid = !/(deg|\\d)$/i.test(propertyValue);\n break;\n }\n\n if (!invalid) {\n /* As per the CSS spec, wrap the value in parentheses. */\n Data(element).transformCache[transformName] = \"(\" + propertyValue + \")\";\n }\n /* Although the value is set on the transformCache object, return the newly-updated value for the calling code to process as normal. */\n\n\n return Data(element).transformCache[transformName];\n }\n };\n })();\n }\n /*************\r\n Colors\r\n *************/\n\n /* Since Velocity only animates a single numeric value per property, color animation is achieved by hooking the individual RGBA components of CSS color properties.\r\n Accordingly, color values must be normalized (e.g. \"#ff0000\", \"red\", and \"rgb(255, 0, 0)\" ==> \"255 0 0 1\") so that their components can be injected/extracted by CSS.Hooks logic. */\n\n\n for (var j = 0; j < CSS.Lists.colors.length; j++) {\n /* Wrap the dynamically generated normalization function in a new scope so that colorName's value is paired with its respective function.\r\n (Otherwise, all functions would take the final for loop's colorName.) */\n (function () {\n var colorName = CSS.Lists.colors[j];\n /* Note: In IE<=8, which support rgb but not rgba, color properties are reverted to rgb by stripping off the alpha component. */\n\n CSS.Normalizations.registered[colorName] = function (type, element, propertyValue) {\n switch (type) {\n case \"name\":\n return colorName;\n\n /* Convert all color values into the rgb format. (Old IE can return hex values and color names instead of rgb/rgba.) */\n\n case \"extract\":\n var extracted;\n /* If the color is already in its hookable form (e.g. \"255 255 255 1\") due to having been previously extracted, skip extraction. */\n\n if (CSS.RegEx.wrappedValueAlreadyExtracted.test(propertyValue)) {\n extracted = propertyValue;\n } else {\n var converted,\n colorNames = {\n black: \"rgb(0, 0, 0)\",\n blue: \"rgb(0, 0, 255)\",\n gray: \"rgb(128, 128, 128)\",\n green: \"rgb(0, 128, 0)\",\n red: \"rgb(255, 0, 0)\",\n white: \"rgb(255, 255, 255)\"\n };\n /* Convert color names to rgb. */\n\n if (/^[A-z]+$/i.test(propertyValue)) {\n if (colorNames[propertyValue] !== undefined) {\n converted = colorNames[propertyValue];\n } else {\n /* If an unmatched color name is provided, default to black. */\n converted = colorNames.black;\n }\n /* Convert hex values to rgb. */\n\n } else if (CSS.RegEx.isHex.test(propertyValue)) {\n converted = \"rgb(\" + CSS.Values.hexToRgb(propertyValue).join(\" \") + \")\";\n /* If the provided color doesn't match any of the accepted color formats, default to black. */\n } else if (!/^rgba?\\(/i.test(propertyValue)) {\n converted = colorNames.black;\n }\n /* Remove the surrounding \"rgb/rgba()\" string then replace commas with spaces and strip\r\n repeated spaces (in case the value included spaces to begin with). */\n\n\n extracted = (converted || propertyValue).toString().match(CSS.RegEx.valueUnwrap)[1].replace(/,(\\s+)?/g, \" \");\n }\n /* So long as this isn't <=IE8, add a fourth (alpha) component if it's missing and default it to 1 (visible). */\n\n\n if ((!IE || IE > 8) && extracted.split(\" \").length === 3) {\n extracted += \" 1\";\n }\n\n return extracted;\n\n case \"inject\":\n /* If we have a pattern then it might already have the right values */\n if (/^rgb/.test(propertyValue)) {\n return propertyValue;\n }\n /* If this is IE<=8 and an alpha component exists, strip it off. */\n\n\n if (IE <= 8) {\n if (propertyValue.split(\" \").length === 4) {\n propertyValue = propertyValue.split(/\\s+/).slice(0, 3).join(\" \");\n }\n /* Otherwise, add a fourth (alpha) component if it's missing and default it to 1 (visible). */\n\n } else if (propertyValue.split(\" \").length === 3) {\n propertyValue += \" 1\";\n }\n /* Re-insert the browser-appropriate wrapper(\"rgb/rgba()\"), insert commas, and strip off decimal units\r\n on all values but the fourth (R, G, and B only accept whole numbers). */\n\n\n return (IE <= 8 ? \"rgb\" : \"rgba\") + \"(\" + propertyValue.replace(/\\s+/g, \",\").replace(/\\.(\\d)+(?=,)/g, \"\") + \")\";\n }\n };\n })();\n }\n /**************\r\n Dimensions\r\n **************/\n\n\n function augmentDimension(name, element, wantInner) {\n var isBorderBox = CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() === \"border-box\";\n\n if (isBorderBox === (wantInner || false)) {\n /* in box-sizing mode, the CSS width / height accessors already give the outerWidth / outerHeight. */\n var i,\n value,\n augment = 0,\n sides = name === \"width\" ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"],\n fields = [\"padding\" + sides[0], \"padding\" + sides[1], \"border\" + sides[0] + \"Width\", \"border\" + sides[1] + \"Width\"];\n\n for (i = 0; i < fields.length; i++) {\n value = parseFloat(CSS.getPropertyValue(element, fields[i]));\n\n if (!isNaN(value)) {\n augment += value;\n }\n }\n\n return wantInner ? -augment : augment;\n }\n\n return 0;\n }\n\n function getDimension(name, wantInner) {\n return function (type, element, propertyValue) {\n switch (type) {\n case \"name\":\n return name;\n\n case \"extract\":\n return parseFloat(propertyValue) + augmentDimension(name, element, wantInner);\n\n case \"inject\":\n return parseFloat(propertyValue) - augmentDimension(name, element, wantInner) + \"px\";\n }\n };\n }\n\n CSS.Normalizations.registered.innerWidth = getDimension(\"width\", true);\n CSS.Normalizations.registered.innerHeight = getDimension(\"height\", true);\n CSS.Normalizations.registered.outerWidth = getDimension(\"width\");\n CSS.Normalizations.registered.outerHeight = getDimension(\"height\");\n }\n },\n\n /************************\r\n CSS Property Names\r\n ************************/\n Names: {\n /* Camelcase a property name into its JavaScript notation (e.g. \"background-color\" ==> \"backgroundColor\").\r\n Camelcasing is used to normalize property names between and across calls. */\n camelCase: function camelCase(property) {\n return property.replace(/-(\\w)/g, function (match, subMatch) {\n return subMatch.toUpperCase();\n });\n },\n\n /* For SVG elements, some properties (namely, dimensional ones) are GET/SET via the element's HTML attributes (instead of via CSS styles). */\n SVGAttribute: function SVGAttribute(property) {\n var SVGAttributes = \"width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2\";\n /* Certain browsers require an SVG transform to be applied as an attribute. (Otherwise, application via CSS is preferable due to 3D support.) */\n\n if (IE || Velocity.State.isAndroid && !Velocity.State.isChrome) {\n SVGAttributes += \"|transform\";\n }\n\n return new RegExp(\"^(\" + SVGAttributes + \")$\", \"i\").test(property);\n },\n\n /* Determine whether a property should be set with a vendor prefix. */\n\n /* If a prefixed version of the property exists, return it. Otherwise, return the original property name.\r\n If the property is not at all supported by the browser, return a false flag. */\n prefixCheck: function prefixCheck(property) {\n /* If this property has already been checked, return the cached value. */\n if (Velocity.State.prefixMatches[property]) {\n return [Velocity.State.prefixMatches[property], true];\n } else {\n var vendors = [\"\", \"Webkit\", \"Moz\", \"ms\", \"O\"];\n\n for (var i = 0, vendorsLength = vendors.length; i < vendorsLength; i++) {\n var propertyPrefixed;\n\n if (i === 0) {\n propertyPrefixed = property;\n } else {\n /* Capitalize the first letter of the property to conform to JavaScript vendor prefix notation (e.g. webkitFilter). */\n propertyPrefixed = vendors[i] + property.replace(/^\\w/, function (match) {\n return match.toUpperCase();\n });\n }\n /* Check if the browser supports this property as prefixed. */\n\n\n if (Type.isString(Velocity.State.prefixElement.style[propertyPrefixed])) {\n /* Cache the match. */\n Velocity.State.prefixMatches[property] = propertyPrefixed;\n return [propertyPrefixed, true];\n }\n }\n /* If the browser doesn't support this property in any form, include a false flag so that the caller can decide how to proceed. */\n\n\n return [property, false];\n }\n }\n },\n\n /************************\r\n CSS Property Values\r\n ************************/\n Values: {\n /* Hex to RGB conversion. Copyright Tim Down: http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb */\n hexToRgb: function hexToRgb(hex) {\n var shortformRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,\n longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,\n rgbParts;\n hex = hex.replace(shortformRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n rgbParts = longformRegex.exec(hex);\n return rgbParts ? [parseInt(rgbParts[1], 16), parseInt(rgbParts[2], 16), parseInt(rgbParts[3], 16)] : [0, 0, 0];\n },\n isCSSNullValue: function isCSSNullValue(value) {\n /* The browser defaults CSS values that have not been set to either 0 or one of several possible null-value strings.\r\n Thus, we check for both falsiness and these special strings. */\n\n /* Null-value checking is performed to default the special strings to 0 (for the sake of tweening) or their hook\r\n templates as defined as CSS.Hooks (for the sake of hook injection/extraction). */\n\n /* Note: Chrome returns \"rgba(0, 0, 0, 0)\" for an undefined color whereas IE returns \"transparent\". */\n return !value || /^(none|auto|transparent|(rgba\\(0, ?0, ?0, ?0\\)))$/i.test(value);\n },\n\n /* Retrieve a property's default unit type. Used for assigning a unit type when one is not supplied by the user. */\n getUnitType: function getUnitType(property) {\n if (/^(rotate|skew)/i.test(property)) {\n return \"deg\";\n } else if (/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(property)) {\n /* The above properties are unitless. */\n return \"\";\n } else {\n /* Default to px for all other properties. */\n return \"px\";\n }\n },\n\n /* HTML elements default to an associated display type when they're not set to display:none. */\n\n /* Note: This function is used for correctly setting the non-\"none\" display value in certain Velocity redirects, such as fadeIn/Out. */\n getDisplayType: function getDisplayType(element) {\n var tagName = element && element.tagName.toString().toLowerCase();\n\n if (/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(tagName)) {\n return \"inline\";\n } else if (/^(li)$/i.test(tagName)) {\n return \"list-item\";\n } else if (/^(tr)$/i.test(tagName)) {\n return \"table-row\";\n } else if (/^(table)$/i.test(tagName)) {\n return \"table\";\n } else if (/^(tbody)$/i.test(tagName)) {\n return \"table-row-group\";\n /* Default to \"block\" when no match is found. */\n } else {\n return \"block\";\n }\n },\n\n /* The class add/remove functions are used to temporarily apply a \"velocity-animating\" class to elements while they're animating. */\n addClass: function addClass(element, className) {\n if (element) {\n if (element.classList) {\n element.classList.add(className);\n } else if (Type.isString(element.className)) {\n // Element.className is around 15% faster then set/getAttribute\n element.className += (element.className.length ? \" \" : \"\") + className;\n } else {\n // Work around for IE strict mode animating SVG - and anything else that doesn't behave correctly - the same way jQuery does it\n var currentClass = element.getAttribute(IE <= 7 ? \"className\" : \"class\") || \"\";\n element.setAttribute(\"class\", currentClass + (currentClass ? \" \" : \"\") + className);\n }\n }\n },\n removeClass: function removeClass(element, className) {\n if (element) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (Type.isString(element.className)) {\n // Element.className is around 15% faster then set/getAttribute\n // TODO: Need some jsperf tests on performance - can we get rid of the regex and maybe use split / array manipulation?\n element.className = element.className.toString().replace(new RegExp(\"(^|\\\\s)\" + className.split(\" \").join(\"|\") + \"(\\\\s|$)\", \"gi\"), \" \");\n } else {\n // Work around for IE strict mode animating SVG - and anything else that doesn't behave correctly - the same way jQuery does it\n var currentClass = element.getAttribute(IE <= 7 ? \"className\" : \"class\") || \"\";\n element.setAttribute(\"class\", currentClass.replace(new RegExp(\"(^|\\s)\" + className.split(\" \").join(\"|\") + \"(\\s|$)\", \"gi\"), \" \"));\n }\n }\n }\n },\n\n /****************************\r\n Style Getting & Setting\r\n ****************************/\n\n /* The singular getPropertyValue, which routes the logic for all normalizations, hooks, and standard CSS properties. */\n getPropertyValue: function getPropertyValue(element, property, rootPropertyValue, forceStyleLookup) {\n /* Get an element's computed property value. */\n\n /* Note: Retrieving the value of a CSS property cannot simply be performed by checking an element's\r\n style attribute (which only reflects user-defined values). Instead, the browser must be queried for a property's\r\n *computed* value. You can read more about getComputedStyle here: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle */\n function computePropertyValue(element, property) {\n /* When box-sizing isn't set to border-box, height and width style values are incorrectly computed when an\r\n element's scrollbars are visible (which expands the element's dimensions). Thus, we defer to the more accurate\r\n offsetHeight/Width property, which includes the total dimensions for interior, border, padding, and scrollbar.\r\n We subtract border and padding to get the sum of interior + scrollbar. */\n var computedValue = 0;\n /* IE<=8 doesn't support window.getComputedStyle, thus we defer to jQuery, which has an extensive array\r\n of hacks to accurately retrieve IE8 property values. Re-implementing that logic here is not worth bloating the\r\n codebase for a dying browser. The performance repercussions of using jQuery here are minimal since\r\n Velocity is optimized to rarely (and sometimes never) query the DOM. Further, the $.css() codepath isn't that slow. */\n\n if (IE <= 8) {\n computedValue = $.css(element, property);\n /* GET */\n\n /* All other browsers support getComputedStyle. The returned live object reference is cached onto its\r\n associated element so that it does not need to be refetched upon every GET. */\n } else {\n /* Browsers do not return height and width values for elements that are set to display:\"none\". Thus, we temporarily\r\n toggle display to the element type's default value. */\n var toggleDisplay = false;\n\n if (/^(width|height)$/.test(property) && CSS.getPropertyValue(element, \"display\") === 0) {\n toggleDisplay = true;\n CSS.setPropertyValue(element, \"display\", CSS.Values.getDisplayType(element));\n }\n\n var revertDisplay = function revertDisplay() {\n if (toggleDisplay) {\n CSS.setPropertyValue(element, \"display\", \"none\");\n }\n };\n\n if (!forceStyleLookup) {\n if (property === \"height\" && CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() !== \"border-box\") {\n var contentBoxHeight = element.offsetHeight - (parseFloat(CSS.getPropertyValue(element, \"borderTopWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"borderBottomWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingTop\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingBottom\")) || 0);\n revertDisplay();\n return contentBoxHeight;\n } else if (property === \"width\" && CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() !== \"border-box\") {\n var contentBoxWidth = element.offsetWidth - (parseFloat(CSS.getPropertyValue(element, \"borderLeftWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"borderRightWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingLeft\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingRight\")) || 0);\n revertDisplay();\n return contentBoxWidth;\n }\n }\n\n var computedStyle;\n /* For elements that Velocity hasn't been called on directly (e.g. when Velocity queries the DOM on behalf\r\n of a parent of an element its animating), perform a direct getComputedStyle lookup since the object isn't cached. */\n\n if (Data(element) === undefined) {\n computedStyle = window.getComputedStyle(element, null);\n /* GET */\n\n /* If the computedStyle object has yet to be cached, do so now. */\n } else if (!Data(element).computedStyle) {\n computedStyle = Data(element).computedStyle = window.getComputedStyle(element, null);\n /* GET */\n\n /* If computedStyle is cached, use it. */\n } else {\n computedStyle = Data(element).computedStyle;\n }\n /* IE and Firefox do not return a value for the generic borderColor -- they only return individual values for each border side's color.\r\n Also, in all browsers, when border colors aren't all the same, a compound value is returned that Velocity isn't setup to parse.\r\n So, as a polyfill for querying individual border side colors, we just return the top border's color and animate all borders from that value. */\n\n\n if (property === \"borderColor\") {\n property = \"borderTopColor\";\n }\n /* IE9 has a bug in which the \"filter\" property must be accessed from computedStyle using the getPropertyValue method\r\n instead of a direct property lookup. The getPropertyValue method is slower than a direct lookup, which is why we avoid it by default. */\n\n\n if (IE === 9 && property === \"filter\") {\n computedValue = computedStyle.getPropertyValue(property);\n /* GET */\n } else {\n computedValue = computedStyle[property];\n }\n /* Fall back to the property's style value (if defined) when computedValue returns nothing,\r\n which can happen when the element hasn't been painted. */\n\n\n if (computedValue === \"\" || computedValue === null) {\n computedValue = element.style[property];\n }\n\n revertDisplay();\n }\n /* For top, right, bottom, and left (TRBL) values that are set to \"auto\" on elements of \"fixed\" or \"absolute\" position,\r\n defer to jQuery for converting \"auto\" to a numeric value. (For elements with a \"static\" or \"relative\" position, \"auto\" has the same\r\n effect as being set to 0, so no conversion is necessary.) */\n\n /* An example of why numeric conversion is necessary: When an element with \"position:absolute\" has an untouched \"left\"\r\n property, which reverts to \"auto\", left's value is 0 relative to its parent element, but is often non-zero relative\r\n to its *containing* (not parent) element, which is the nearest \"position:relative\" ancestor or the viewport (and always the viewport in the case of \"position:fixed\"). */\n\n\n if (computedValue === \"auto\" && /^(top|right|bottom|left)$/i.test(property)) {\n var position = computePropertyValue(element, \"position\");\n /* GET */\n\n /* For absolute positioning, jQuery's $.position() only returns values for top and left;\r\n right and bottom will have their \"auto\" value reverted to 0. */\n\n /* Note: A jQuery object must be created here since jQuery doesn't have a low-level alias for $.position().\r\n Not a big deal since we're currently in a GET batch anyway. */\n\n if (position === \"fixed\" || position === \"absolute\" && /top|left/i.test(property)) {\n /* Note: jQuery strips the pixel unit from its returned values; we re-add it here to conform with computePropertyValue's behavior. */\n computedValue = $(element).position()[property] + \"px\";\n /* GET */\n }\n }\n\n return computedValue;\n }\n\n var propertyValue;\n /* If this is a hooked property (e.g. \"clipLeft\" instead of the root property of \"clip\"),\r\n extract the hook's value from a normalized rootPropertyValue using CSS.Hooks.extractValue(). */\n\n if (CSS.Hooks.registered[property]) {\n var hook = property,\n hookRoot = CSS.Hooks.getRoot(hook);\n /* If a cached rootPropertyValue wasn't passed in (which Velocity always attempts to do in order to avoid requerying the DOM),\r\n query the DOM for the root property's value. */\n\n if (rootPropertyValue === undefined) {\n /* Since the browser is now being directly queried, use the official post-prefixing property name for this lookup. */\n rootPropertyValue = CSS.getPropertyValue(element, CSS.Names.prefixCheck(hookRoot)[0]);\n /* GET */\n }\n /* If this root has a normalization registered, peform the associated normalization extraction. */\n\n\n if (CSS.Normalizations.registered[hookRoot]) {\n rootPropertyValue = CSS.Normalizations.registered[hookRoot](\"extract\", element, rootPropertyValue);\n }\n /* Extract the hook's value. */\n\n\n propertyValue = CSS.Hooks.extractValue(hook, rootPropertyValue);\n /* If this is a normalized property (e.g. \"opacity\" becomes \"filter\" in <=IE8) or \"translateX\" becomes \"transform\"),\r\n normalize the property's name and value, and handle the special case of transforms. */\n\n /* Note: Normalizing a property is mutually exclusive from hooking a property since hook-extracted values are strictly\r\n numerical and therefore do not require normalization extraction. */\n } else if (CSS.Normalizations.registered[property]) {\n var normalizedPropertyName, normalizedPropertyValue;\n normalizedPropertyName = CSS.Normalizations.registered[property](\"name\", element);\n /* Transform values are calculated via normalization extraction (see below), which checks against the element's transformCache.\r\n At no point do transform GETs ever actually query the DOM; initial stylesheet values are never processed.\r\n This is because parsing 3D transform matrices is not always accurate and would bloat our codebase;\r\n thus, normalization extraction defaults initial transform values to their zero-values (e.g. 1 for scaleX and 0 for translateX). */\n\n if (normalizedPropertyName !== \"transform\") {\n normalizedPropertyValue = computePropertyValue(element, CSS.Names.prefixCheck(normalizedPropertyName)[0]);\n /* GET */\n\n /* If the value is a CSS null-value and this property has a hook template, use that zero-value template so that hooks can be extracted from it. */\n\n if (CSS.Values.isCSSNullValue(normalizedPropertyValue) && CSS.Hooks.templates[property]) {\n normalizedPropertyValue = CSS.Hooks.templates[property][1];\n }\n }\n\n propertyValue = CSS.Normalizations.registered[property](\"extract\", element, normalizedPropertyValue);\n }\n /* If a (numeric) value wasn't produced via hook extraction or normalization, query the DOM. */\n\n\n if (!/^[\\d-]/.test(propertyValue)) {\n /* For SVG elements, dimensional properties (which SVGAttribute() detects) are tweened via\r\n their HTML attribute values instead of their CSS style values. */\n var data = Data(element);\n\n if (data && data.isSVG && CSS.Names.SVGAttribute(property)) {\n /* Since the height/width attribute values must be set manually, they don't reflect computed values.\r\n Thus, we use use getBBox() to ensure we always get values for elements with undefined height/width attributes. */\n if (/^(height|width)$/i.test(property)) {\n /* Firefox throws an error if .getBBox() is called on an SVG that isn't attached to the DOM. */\n try {\n propertyValue = element.getBBox()[property];\n } catch (error) {\n propertyValue = 0;\n }\n /* Otherwise, access the attribute value directly. */\n\n } else {\n propertyValue = element.getAttribute(property);\n }\n } else {\n propertyValue = computePropertyValue(element, CSS.Names.prefixCheck(property)[0]);\n /* GET */\n }\n }\n /* Since property lookups are for animation purposes (which entails computing the numeric delta between start and end values),\r\n convert CSS null-values to an integer of value 0. */\n\n\n if (CSS.Values.isCSSNullValue(propertyValue)) {\n propertyValue = 0;\n }\n\n if (Velocity.debug >= 2) {\n console.log(\"Get \" + property + \": \" + propertyValue);\n }\n\n return propertyValue;\n },\n\n /* The singular setPropertyValue, which routes the logic for all normalizations, hooks, and standard CSS properties. */\n setPropertyValue: function setPropertyValue(element, property, propertyValue, rootPropertyValue, scrollData) {\n var propertyName = property;\n /* In order to be subjected to call options and element queueing, scroll animation is routed through Velocity as if it were a standard CSS property. */\n\n if (property === \"scroll\") {\n /* If a container option is present, scroll the container instead of the browser window. */\n if (scrollData.container) {\n scrollData.container[\"scroll\" + scrollData.direction] = propertyValue;\n /* Otherwise, Velocity defaults to scrolling the browser window. */\n } else {\n if (scrollData.direction === \"Left\") {\n window.scrollTo(propertyValue, scrollData.alternateValue);\n } else {\n window.scrollTo(scrollData.alternateValue, propertyValue);\n }\n }\n } else {\n /* Transforms (translateX, rotateZ, etc.) are applied to a per-element transformCache object, which is manually flushed via flushTransformCache().\r\n Thus, for now, we merely cache transforms being SET. */\n if (CSS.Normalizations.registered[property] && CSS.Normalizations.registered[property](\"name\", element) === \"transform\") {\n /* Perform a normalization injection. */\n\n /* Note: The normalization logic handles the transformCache updating. */\n CSS.Normalizations.registered[property](\"inject\", element, propertyValue);\n propertyName = \"transform\";\n propertyValue = Data(element).transformCache[property];\n } else {\n /* Inject hooks. */\n if (CSS.Hooks.registered[property]) {\n var hookName = property,\n hookRoot = CSS.Hooks.getRoot(property);\n /* If a cached rootPropertyValue was not provided, query the DOM for the hookRoot's current value. */\n\n rootPropertyValue = rootPropertyValue || CSS.getPropertyValue(element, hookRoot);\n /* GET */\n\n propertyValue = CSS.Hooks.injectValue(hookName, propertyValue, rootPropertyValue);\n property = hookRoot;\n }\n /* Normalize names and values. */\n\n\n if (CSS.Normalizations.registered[property]) {\n propertyValue = CSS.Normalizations.registered[property](\"inject\", element, propertyValue);\n property = CSS.Normalizations.registered[property](\"name\", element);\n }\n /* Assign the appropriate vendor prefix before performing an official style update. */\n\n\n propertyName = CSS.Names.prefixCheck(property)[0];\n /* A try/catch is used for IE<=8, which throws an error when \"invalid\" CSS values are set, e.g. a negative width.\r\n Try/catch is avoided for other browsers since it incurs a performance overhead. */\n\n if (IE <= 8) {\n try {\n element.style[propertyName] = propertyValue;\n } catch (error) {\n if (Velocity.debug) {\n console.log(\"Browser does not support [\" + propertyValue + \"] for [\" + propertyName + \"]\");\n }\n }\n /* SVG elements have their dimensional properties (width, height, x, y, cx, etc.) applied directly as attributes instead of as styles. */\n\n /* Note: IE8 does not support SVG elements, so it's okay that we skip it for SVG animation. */\n\n } else {\n var data = Data(element);\n\n if (data && data.isSVG && CSS.Names.SVGAttribute(property)) {\n /* Note: For SVG attributes, vendor-prefixed property names are never used. */\n\n /* Note: Not all CSS properties can be animated via attributes, but the browser won't throw an error for unsupported properties. */\n element.setAttribute(property, propertyValue);\n } else {\n element.style[propertyName] = propertyValue;\n }\n }\n\n if (Velocity.debug >= 2) {\n console.log(\"Set \" + property + \" (\" + propertyName + \"): \" + propertyValue);\n }\n }\n }\n /* Return the normalized property name and value in case the caller wants to know how these values were modified before being applied to the DOM. */\n\n\n return [propertyName, propertyValue];\n },\n\n /* To increase performance by batching transform updates into a single SET, transforms are not directly applied to an element until flushTransformCache() is called. */\n\n /* Note: Velocity applies transform properties in the same order that they are chronogically introduced to the element's CSS styles. */\n flushTransformCache: function flushTransformCache(element) {\n var transformString = \"\",\n data = Data(element);\n /* Certain browsers require that SVG transforms be applied as an attribute. However, the SVG transform attribute takes a modified version of CSS's transform string\r\n (units are dropped and, except for skewX/Y, subproperties are merged into their master property -- e.g. scaleX and scaleY are merged into scale(X Y). */\n\n if ((IE || Velocity.State.isAndroid && !Velocity.State.isChrome) && data && data.isSVG) {\n /* Since transform values are stored in their parentheses-wrapped form, we use a helper function to strip out their numeric values.\r\n Further, SVG transform properties only take unitless (representing pixels) values, so it's okay that parseFloat() strips the unit suffixed to the float value. */\n var getTransformFloat = function getTransformFloat(transformProperty) {\n return parseFloat(CSS.getPropertyValue(element, transformProperty));\n };\n /* Create an object to organize all the transforms that we'll apply to the SVG element. To keep the logic simple,\r\n we process *all* transform properties -- even those that may not be explicitly applied (since they default to their zero-values anyway). */\n\n\n var SVGTransforms = {\n translate: [getTransformFloat(\"translateX\"), getTransformFloat(\"translateY\")],\n skewX: [getTransformFloat(\"skewX\")],\n skewY: [getTransformFloat(\"skewY\")],\n\n /* If the scale property is set (non-1), use that value for the scaleX and scaleY values\r\n (this behavior mimics the result of animating all these properties at once on HTML elements). */\n scale: getTransformFloat(\"scale\") !== 1 ? [getTransformFloat(\"scale\"), getTransformFloat(\"scale\")] : [getTransformFloat(\"scaleX\"), getTransformFloat(\"scaleY\")],\n\n /* Note: SVG's rotate transform takes three values: rotation degrees followed by the X and Y values\r\n defining the rotation's origin point. We ignore the origin values (default them to 0). */\n rotate: [getTransformFloat(\"rotateZ\"), 0, 0]\n };\n /* Iterate through the transform properties in the user-defined property map order.\r\n (This mimics the behavior of non-SVG transform animation.) */\n\n $.each(Data(element).transformCache, function (transformName) {\n /* Except for with skewX/Y, revert the axis-specific transform subproperties to their axis-free master\r\n properties so that they match up with SVG's accepted transform properties. */\n if (/^translate/i.test(transformName)) {\n transformName = \"translate\";\n } else if (/^scale/i.test(transformName)) {\n transformName = \"scale\";\n } else if (/^rotate/i.test(transformName)) {\n transformName = \"rotate\";\n }\n /* Check that we haven't yet deleted the property from the SVGTransforms container. */\n\n\n if (SVGTransforms[transformName]) {\n /* Append the transform property in the SVG-supported transform format. As per the spec, surround the space-delimited values in parentheses. */\n transformString += transformName + \"(\" + SVGTransforms[transformName].join(\" \") + \")\" + \" \";\n /* After processing an SVG transform property, delete it from the SVGTransforms container so we don't\r\n re-insert the same master property if we encounter another one of its axis-specific properties. */\n\n delete SVGTransforms[transformName];\n }\n });\n } else {\n var transformValue, perspective;\n /* Transform properties are stored as members of the transformCache object. Concatenate all the members into a string. */\n\n $.each(Data(element).transformCache, function (transformName) {\n transformValue = Data(element).transformCache[transformName];\n /* Transform's perspective subproperty must be set first in order to take effect. Store it temporarily. */\n\n if (transformName === \"transformPerspective\") {\n perspective = transformValue;\n return true;\n }\n /* IE9 only supports one rotation type, rotateZ, which it refers to as \"rotate\". */\n\n\n if (IE === 9 && transformName === \"rotateZ\") {\n transformName = \"rotate\";\n }\n\n transformString += transformName + transformValue + \" \";\n });\n /* If present, set the perspective subproperty first. */\n\n if (perspective) {\n transformString = \"perspective\" + perspective + \" \" + transformString;\n }\n }\n\n CSS.setPropertyValue(element, \"transform\", transformString);\n }\n };\n /* Register hooks and normalizations. */\n\n CSS.Hooks.register();\n CSS.Normalizations.register();\n /* Allow hook setting in the same fashion as jQuery's $.css(). */\n\n Velocity.hook = function (elements, arg2, arg3) {\n var value;\n elements = sanitizeElements(elements);\n $.each(elements, function (i, element) {\n /* Initialize Velocity's per-element data cache if this element hasn't previously been animated. */\n if (Data(element) === undefined) {\n Velocity.init(element);\n }\n /* Get property value. If an element set was passed in, only return the value for the first element. */\n\n\n if (arg3 === undefined) {\n if (value === undefined) {\n value = CSS.getPropertyValue(element, arg2);\n }\n /* Set property value. */\n\n } else {\n /* sPV returns an array of the normalized propertyName/propertyValue pair used to update the DOM. */\n var adjustedSet = CSS.setPropertyValue(element, arg2, arg3);\n /* Transform properties don't automatically set. They have to be flushed to the DOM. */\n\n if (adjustedSet[0] === \"transform\") {\n Velocity.CSS.flushTransformCache(element);\n }\n\n value = adjustedSet;\n }\n });\n return value;\n };\n /*****************\r\n Animation\r\n *****************/\n\n\n var animate = function animate() {\n var opts;\n /******************\r\n Call Chain\r\n ******************/\n\n /* Logic for determining what to return to the call stack when exiting out of Velocity. */\n\n function getChain() {\n /* If we are using the utility function, attempt to return this call's promise. If no promise library was detected,\r\n default to null instead of returning the targeted elements so that utility function's return value is standardized. */\n if (isUtility) {\n return promiseData.promise || null;\n /* Otherwise, if we're using $.fn, return the jQuery-/Zepto-wrapped element set. */\n } else {\n return elementsWrapped;\n }\n }\n /*************************\r\n Arguments Assignment\r\n *************************/\n\n /* To allow for expressive CoffeeScript code, Velocity supports an alternative syntax in which \"elements\" (or \"e\"), \"properties\" (or \"p\"), and \"options\" (or \"o\")\r\n objects are defined on a container object that's passed in as Velocity's sole argument. */\n\n /* Note: Some browsers automatically populate arguments with a \"properties\" object. We detect it by checking for its default \"names\" property. */\n\n\n var syntacticSugar = arguments[0] && (arguments[0].p || $.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || Type.isString(arguments[0].properties)),\n\n /* Whether Velocity was called via the utility function (as opposed to on a jQuery/Zepto object). */\n isUtility,\n\n /* When Velocity is called via the utility function ($.Velocity()/Velocity()), elements are explicitly\r\n passed in as the first parameter. Thus, argument positioning varies. We normalize them here. */\n elementsWrapped,\n argumentIndex;\n var elements, propertiesMap, options;\n /* Detect jQuery/Zepto elements being animated via the $.fn method. */\n\n if (Type.isWrapped(this)) {\n isUtility = false;\n argumentIndex = 0;\n elements = this;\n elementsWrapped = this;\n /* Otherwise, raw elements are being animated via the utility function. */\n } else {\n isUtility = true;\n argumentIndex = 1;\n elements = syntacticSugar ? arguments[0].elements || arguments[0].e : arguments[0];\n }\n /***************\r\n Promises\r\n ***************/\n\n\n var promiseData = {\n promise: null,\n resolver: null,\n rejecter: null\n };\n /* If this call was made via the utility function (which is the default method of invocation when jQuery/Zepto are not being used), and if\r\n promise support was detected, create a promise object for this call and store references to its resolver and rejecter methods. The resolve\r\n method is used when a call completes naturally or is prematurely stopped by the user. In both cases, completeCall() handles the associated\r\n call cleanup and promise resolving logic. The reject method is used when an invalid set of arguments is passed into a Velocity call. */\n\n /* Note: Velocity employs a call-based queueing architecture, which means that stopping an animating element actually stops the full call that\r\n triggered it -- not that one element exclusively. Similarly, there is one promise per call, and all elements targeted by a Velocity call are\r\n grouped together for the purposes of resolving and rejecting a promise. */\n\n if (isUtility && Velocity.Promise) {\n promiseData.promise = new Velocity.Promise(function (resolve, reject) {\n promiseData.resolver = resolve;\n promiseData.rejecter = reject;\n });\n }\n\n if (syntacticSugar) {\n propertiesMap = arguments[0].properties || arguments[0].p;\n options = arguments[0].options || arguments[0].o;\n } else {\n propertiesMap = arguments[argumentIndex];\n options = arguments[argumentIndex + 1];\n }\n\n elements = sanitizeElements(elements);\n\n if (!elements) {\n if (promiseData.promise) {\n if (!propertiesMap || !options || options.promiseRejectEmpty !== false) {\n promiseData.rejecter();\n } else {\n promiseData.resolver();\n }\n }\n\n return;\n }\n /* The length of the element set (in the form of a nodeList or an array of elements) is defaulted to 1 in case a\r\n single raw DOM element is passed in (which doesn't contain a length property). */\n\n\n var elementsLength = elements.length,\n elementsIndex = 0;\n /***************************\r\n Argument Overloading\r\n ***************************/\n\n /* Support is included for jQuery's argument overloading: $.animate(propertyMap [, duration] [, easing] [, complete]).\r\n Overloading is detected by checking for the absence of an object being passed into options. */\n\n /* Note: The stop/finish/pause/resume actions do not accept animation options, and are therefore excluded from this check. */\n\n if (!/^(stop|finish|finishAll|pause|resume)$/i.test(propertiesMap) && !$.isPlainObject(options)) {\n /* The utility function shifts all arguments one position to the right, so we adjust for that offset. */\n var startingArgumentPosition = argumentIndex + 1;\n options = {};\n /* Iterate through all options arguments */\n\n for (var i = startingArgumentPosition; i < arguments.length; i++) {\n /* Treat a number as a duration. Parse it out. */\n\n /* Note: The following RegEx will return true if passed an array with a number as its first item.\r\n Thus, arrays are skipped from this check. */\n if (!Type.isArray(arguments[i]) && (/^(fast|normal|slow)$/i.test(arguments[i]) || /^\\d/.test(arguments[i]))) {\n options.duration = arguments[i];\n /* Treat strings and arrays as easings. */\n } else if (Type.isString(arguments[i]) || Type.isArray(arguments[i])) {\n options.easing = arguments[i];\n /* Treat a function as a complete callback. */\n } else if (Type.isFunction(arguments[i])) {\n options.complete = arguments[i];\n }\n }\n }\n /*********************\r\n Action Detection\r\n *********************/\n\n /* Velocity's behavior is categorized into \"actions\": Elements can either be specially scrolled into view,\r\n or they can be started, stopped, paused, resumed, or reversed . If a literal or referenced properties map is passed in as Velocity's\r\n first argument, the associated action is \"start\". Alternatively, \"scroll\", \"reverse\", \"pause\", \"resume\" or \"stop\" can be passed in \r\n instead of a properties map. */\n\n\n var action;\n\n switch (propertiesMap) {\n case \"scroll\":\n action = \"scroll\";\n break;\n\n case \"reverse\":\n action = \"reverse\";\n break;\n\n case \"pause\":\n /*******************\r\n Action: Pause\r\n *******************/\n var currentTime = new Date().getTime();\n /* Handle delay timers */\n\n $.each(elements, function (i, element) {\n pauseDelayOnElement(element, currentTime);\n });\n /* Pause and Resume are call-wide (not on a per element basis). Thus, calling pause or resume on a \r\n single element will cause any calls that containt tweens for that element to be paused/resumed\r\n as well. */\n\n /* Iterate through all calls and pause any that contain any of our elements */\n\n $.each(Velocity.State.calls, function (i, activeCall) {\n var found = false;\n /* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\n\n if (activeCall) {\n /* Iterate through the active call's targeted elements. */\n $.each(activeCall[1], function (k, activeElement) {\n var queueName = options === undefined ? \"\" : options;\n\n if (queueName !== true && activeCall[2].queue !== queueName && !(options === undefined && activeCall[2].queue === false)) {\n return true;\n }\n /* Iterate through the calls targeted by the stop command. */\n\n\n $.each(elements, function (l, element) {\n /* Check that this call was applied to the target element. */\n if (element === activeElement) {\n /* Set call to paused */\n activeCall[5] = {\n resume: false\n };\n /* Once we match an element, we can bounce out to the next call entirely */\n\n found = true;\n return false;\n }\n });\n /* Proceed to check next call if we have already matched */\n\n if (found) {\n return false;\n }\n });\n }\n });\n /* Since pause creates no new tweens, exit out of Velocity. */\n\n return getChain();\n\n case \"resume\":\n /*******************\r\n Action: Resume\r\n *******************/\n\n /* Handle delay timers */\n $.each(elements, function (i, element) {\n resumeDelayOnElement(element, currentTime);\n });\n /* Pause and Resume are call-wide (not on a per elemnt basis). Thus, calling pause or resume on a \r\n single element will cause any calls that containt tweens for that element to be paused/resumed\r\n as well. */\n\n /* Iterate through all calls and pause any that contain any of our elements */\n\n $.each(Velocity.State.calls, function (i, activeCall) {\n var found = false;\n /* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\n\n if (activeCall) {\n /* Iterate through the active call's targeted elements. */\n $.each(activeCall[1], function (k, activeElement) {\n var queueName = options === undefined ? \"\" : options;\n\n if (queueName !== true && activeCall[2].queue !== queueName && !(options === undefined && activeCall[2].queue === false)) {\n return true;\n }\n /* Skip any calls that have never been paused */\n\n\n if (!activeCall[5]) {\n return true;\n }\n /* Iterate through the calls targeted by the stop command. */\n\n\n $.each(elements, function (l, element) {\n /* Check that this call was applied to the target element. */\n if (element === activeElement) {\n /* Flag a pause object to be resumed, which will occur during the next tick. In\r\n addition, the pause object will at that time be deleted */\n activeCall[5].resume = true;\n /* Once we match an element, we can bounce out to the next call entirely */\n\n found = true;\n return false;\n }\n });\n /* Proceed to check next call if we have already matched */\n\n if (found) {\n return false;\n }\n });\n }\n });\n /* Since resume creates no new tweens, exit out of Velocity. */\n\n return getChain();\n\n case \"finish\":\n case \"finishAll\":\n case \"stop\":\n /*******************\r\n Action: Stop\r\n *******************/\n\n /* Clear the currently-active delay on each targeted element. */\n $.each(elements, function (i, element) {\n if (Data(element) && Data(element).delayTimer) {\n /* Stop the timer from triggering its cached next() function. */\n clearTimeout(Data(element).delayTimer.setTimeout);\n /* Manually call the next() function so that the subsequent queue items can progress. */\n\n if (Data(element).delayTimer.next) {\n Data(element).delayTimer.next();\n }\n\n delete Data(element).delayTimer;\n }\n /* If we want to finish everything in the queue, we have to iterate through it\r\n and call each function. This will make them active calls below, which will\r\n cause them to be applied via the duration setting. */\n\n\n if (propertiesMap === \"finishAll\" && (options === true || Type.isString(options))) {\n /* Iterate through the items in the element's queue. */\n $.each($.queue(element, Type.isString(options) ? options : \"\"), function (_, item) {\n /* The queue array can contain an \"inprogress\" string, which we skip. */\n if (Type.isFunction(item)) {\n item();\n }\n });\n /* Clearing the $.queue() array is achieved by resetting it to []. */\n\n $.queue(element, Type.isString(options) ? options : \"\", []);\n }\n });\n var callsToStop = [];\n /* When the stop action is triggered, the elements' currently active call is immediately stopped. The active call might have\r\n been applied to multiple elements, in which case all of the call's elements will be stopped. When an element\r\n is stopped, the next item in its animation queue is immediately triggered. */\n\n /* An additional argument may be passed in to clear an element's remaining queued calls. Either true (which defaults to the \"fx\" queue)\r\n or a custom queue string can be passed in. */\n\n /* Note: The stop command runs prior to Velocity's Queueing phase since its behavior is intended to take effect *immediately*,\r\n regardless of the element's current queue state. */\n\n /* Iterate through every active call. */\n\n $.each(Velocity.State.calls, function (i, activeCall) {\n /* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\n if (activeCall) {\n /* Iterate through the active call's targeted elements. */\n $.each(activeCall[1], function (k, activeElement) {\n /* If true was passed in as a secondary argument, clear absolutely all calls on this element. Otherwise, only\r\n clear calls associated with the relevant queue. */\n\n /* Call stopping logic works as follows:\r\n - options === true --> stop current default queue calls (and queue:false calls), including remaining queued ones.\r\n - options === undefined --> stop current queue:\"\" call and all queue:false calls.\r\n - options === false --> stop only queue:false calls.\r\n - options === \"custom\" --> stop current queue:\"custom\" call, including remaining queued ones (there is no functionality to only clear the currently-running queue:\"custom\" call). */\n var queueName = options === undefined ? \"\" : options;\n\n if (queueName !== true && activeCall[2].queue !== queueName && !(options === undefined && activeCall[2].queue === false)) {\n return true;\n }\n /* Iterate through the calls targeted by the stop command. */\n\n\n $.each(elements, function (l, element) {\n /* Check that this call was applied to the target element. */\n if (element === activeElement) {\n /* Optionally clear the remaining queued calls. If we're doing \"finishAll\" this won't find anything,\r\n due to the queue-clearing above. */\n if (options === true || Type.isString(options)) {\n /* Iterate through the items in the element's queue. */\n $.each($.queue(element, Type.isString(options) ? options : \"\"), function (_, item) {\n /* The queue array can contain an \"inprogress\" string, which we skip. */\n if (Type.isFunction(item)) {\n /* Pass the item's callback a flag indicating that we want to abort from the queue call.\r\n (Specifically, the queue will resolve the call's associated promise then abort.) */\n item(null, true);\n }\n });\n /* Clearing the $.queue() array is achieved by resetting it to []. */\n\n $.queue(element, Type.isString(options) ? options : \"\", []);\n }\n\n if (propertiesMap === \"stop\") {\n /* Since \"reverse\" uses cached start values (the previous call's endValues), these values must be\r\n changed to reflect the final value that the elements were actually tweened to. */\n\n /* Note: If only queue:false/queue:\"custom\" animations are currently running on an element, it won't have a tweensContainer\r\n object. Also, queue:false/queue:\"custom\" animations can't be reversed. */\n var data = Data(element);\n\n if (data && data.tweensContainer && (queueName === true || queueName === \"\")) {\n $.each(data.tweensContainer, function (m, activeTween) {\n activeTween.endValue = activeTween.currentValue;\n });\n }\n\n callsToStop.push(i);\n } else if (propertiesMap === \"finish\" || propertiesMap === \"finishAll\") {\n /* To get active tweens to finish immediately, we forcefully shorten their durations to 1ms so that\r\n they finish upon the next rAf tick then proceed with normal call completion logic. */\n activeCall[2].duration = 1;\n }\n }\n });\n });\n }\n });\n /* Prematurely call completeCall() on each matched active call. Pass an additional flag for \"stop\" to indicate\r\n that the complete callback and display:none setting should be skipped since we're completing prematurely. */\n\n if (propertiesMap === \"stop\") {\n $.each(callsToStop, function (i, j) {\n completeCall(j, true);\n });\n\n if (promiseData.promise) {\n /* Immediately resolve the promise associated with this stop call since stop runs synchronously. */\n promiseData.resolver(elements);\n }\n }\n /* Since we're stopping, and not proceeding with queueing, exit out of Velocity. */\n\n\n return getChain();\n\n default:\n /* Treat a non-empty plain object as a literal properties map. */\n if ($.isPlainObject(propertiesMap) && !Type.isEmptyObject(propertiesMap)) {\n action = \"start\";\n /****************\r\n Redirects\r\n ****************/\n\n /* Check if a string matches a registered redirect (see Redirects above). */\n } else if (Type.isString(propertiesMap) && Velocity.Redirects[propertiesMap]) {\n opts = $.extend({}, options);\n var durationOriginal = opts.duration,\n delayOriginal = opts.delay || 0;\n /* If the backwards option was passed in, reverse the element set so that elements animate from the last to the first. */\n\n if (opts.backwards === true) {\n elements = $.extend(true, [], elements).reverse();\n }\n /* Individually trigger the redirect for each element in the set to prevent users from having to handle iteration logic in their redirect. */\n\n\n $.each(elements, function (elementIndex, element) {\n /* If the stagger option was passed in, successively delay each element by the stagger value (in ms). Retain the original delay value. */\n if (parseFloat(opts.stagger)) {\n opts.delay = delayOriginal + parseFloat(opts.stagger) * elementIndex;\n } else if (Type.isFunction(opts.stagger)) {\n opts.delay = delayOriginal + opts.stagger.call(element, elementIndex, elementsLength);\n }\n /* If the drag option was passed in, successively increase/decrease (depending on the presense of opts.backwards)\r\n the duration of each element's animation, using floors to prevent producing very short durations. */\n\n\n if (opts.drag) {\n /* Default the duration of UI pack effects (callouts and transitions) to 1000ms instead of the usual default duration of 400ms. */\n opts.duration = parseFloat(durationOriginal) || (/^(callout|transition)/.test(propertiesMap) ? 1000 : DURATION_DEFAULT);\n /* For each element, take the greater duration of: A) animation completion percentage relative to the original duration,\r\n B) 75% of the original duration, or C) a 200ms fallback (in case duration is already set to a low value).\r\n The end result is a baseline of 75% of the redirect's duration that increases/decreases as the end of the element set is approached. */\n\n opts.duration = Math.max(opts.duration * (opts.backwards ? 1 - elementIndex / elementsLength : (elementIndex + 1) / elementsLength), opts.duration * 0.75, 200);\n }\n /* Pass in the call's opts object so that the redirect can optionally extend it. It defaults to an empty object instead of null to\r\n reduce the opts checking logic required inside the redirect. */\n\n\n Velocity.Redirects[propertiesMap].call(element, element, opts || {}, elementIndex, elementsLength, elements, promiseData.promise ? promiseData : undefined);\n });\n /* Since the animation logic resides within the redirect's own code, abort the remainder of this call.\r\n (The performance overhead up to this point is virtually non-existant.) */\n\n /* Note: The jQuery call chain is kept intact by returning the complete element set. */\n\n return getChain();\n } else {\n var abortError = \"Velocity: First argument (\" + propertiesMap + \") was not a property map, a known action, or a registered redirect. Aborting.\";\n\n if (promiseData.promise) {\n promiseData.rejecter(new Error(abortError));\n } else if (window.console) {\n console.log(abortError);\n }\n\n return getChain();\n }\n\n }\n /**************************\r\n Call-Wide Variables\r\n **************************/\n\n /* A container for CSS unit conversion ratios (e.g. %, rem, and em ==> px) that is used to cache ratios across all elements\r\n being animated in a single Velocity call. Calculating unit ratios necessitates DOM querying and updating, and is therefore\r\n avoided (via caching) wherever possible. This container is call-wide instead of page-wide to avoid the risk of using stale\r\n conversion metrics across Velocity animations that are not immediately consecutively chained. */\n\n\n var callUnitConversionData = {\n lastParent: null,\n lastPosition: null,\n lastFontSize: null,\n lastPercentToPxWidth: null,\n lastPercentToPxHeight: null,\n lastEmToPx: null,\n remToPx: null,\n vwToPx: null,\n vhToPx: null\n };\n /* A container for all the ensuing tween data and metadata associated with this call. This container gets pushed to the page-wide\r\n Velocity.State.calls array that is processed during animation ticking. */\n\n var call = [];\n /************************\r\n Element Processing\r\n ************************/\n\n /* Element processing consists of three parts -- data processing that cannot go stale and data processing that *can* go stale (i.e. third-party style modifications):\r\n 1) Pre-Queueing: Element-wide variables, including the element's data storage, are instantiated. Call options are prepared. If triggered, the Stop action is executed.\r\n 2) Queueing: The logic that runs once this call has reached its point of execution in the element's $.queue() stack. Most logic is placed here to avoid risking it becoming stale.\r\n 3) Pushing: Consolidation of the tween data followed by its push onto the global in-progress calls container.\r\n `elementArrayIndex` allows passing index of the element in the original array to value functions.\r\n If `elementsIndex` were used instead the index would be determined by the elements' per-element queue.\r\n */\n\n function processElement(element, elementArrayIndex) {\n /*************************\r\n Part I: Pre-Queueing\r\n *************************/\n\n /***************************\r\n Element-Wide Variables\r\n ***************************/\n var\n /* The runtime opts object is the extension of the current call's options and Velocity's page-wide option defaults. */\n opts = $.extend({}, Velocity.defaults, options),\n\n /* A container for the processed data associated with each property in the propertyMap.\r\n (Each property in the map produces its own \"tween\".) */\n tweensContainer = {},\n elementUnitConversionData;\n /******************\r\n Element Init\r\n ******************/\n\n if (Data(element) === undefined) {\n Velocity.init(element);\n }\n /******************\r\n Option: Delay\r\n ******************/\n\n /* Since queue:false doesn't respect the item's existing queue, we avoid injecting its delay here (it's set later on). */\n\n /* Note: Velocity rolls its own delay function since jQuery doesn't have a utility alias for $.fn.delay()\r\n (and thus requires jQuery element creation, which we avoid since its overhead includes DOM querying). */\n\n\n if (parseFloat(opts.delay) && opts.queue !== false) {\n $.queue(element, opts.queue, function (next, clearQueue) {\n if (clearQueue === true) {\n /* Do not continue with animation queueing. */\n return true;\n }\n /* This is a flag used to indicate to the upcoming completeCall() function that this queue entry was initiated by Velocity. See completeCall() for further details. */\n\n\n Velocity.velocityQueueEntryFlag = true;\n /* The ensuing queue item (which is assigned to the \"next\" argument that $.queue() automatically passes in) will be triggered after a setTimeout delay.\r\n The setTimeout is stored so that it can be subjected to clearTimeout() if this animation is prematurely stopped via Velocity's \"stop\" command, and\r\n delayBegin/delayTime is used to ensure we can \"pause\" and \"resume\" a tween that is still mid-delay. */\n\n /* Temporarily store delayed elements to facilite access for global pause/resume */\n\n var callIndex = Velocity.State.delayedElements.count++;\n Velocity.State.delayedElements[callIndex] = element;\n\n var delayComplete = function (index) {\n return function () {\n /* Clear the temporary element */\n Velocity.State.delayedElements[index] = false;\n /* Finally, issue the call */\n\n next();\n };\n }(callIndex);\n\n Data(element).delayBegin = new Date().getTime();\n Data(element).delay = parseFloat(opts.delay);\n Data(element).delayTimer = {\n setTimeout: setTimeout(next, parseFloat(opts.delay)),\n next: delayComplete\n };\n });\n }\n /*********************\r\n Option: Duration\r\n *********************/\n\n /* Support for jQuery's named durations. */\n\n\n switch (opts.duration.toString().toLowerCase()) {\n case \"fast\":\n opts.duration = 200;\n break;\n\n case \"normal\":\n opts.duration = DURATION_DEFAULT;\n break;\n\n case \"slow\":\n opts.duration = 600;\n break;\n\n default:\n /* Remove the potential \"ms\" suffix and default to 1 if the user is attempting to set a duration of 0 (in order to produce an immediate style change). */\n opts.duration = parseFloat(opts.duration) || 1;\n }\n /************************\r\n Global Option: Mock\r\n ************************/\n\n\n if (Velocity.mock !== false) {\n /* In mock mode, all animations are forced to 1ms so that they occur immediately upon the next rAF tick.\r\n Alternatively, a multiplier can be passed in to time remap all delays and durations. */\n if (Velocity.mock === true) {\n opts.duration = opts.delay = 1;\n } else {\n opts.duration *= parseFloat(Velocity.mock) || 1;\n opts.delay *= parseFloat(Velocity.mock) || 1;\n }\n }\n /*******************\r\n Option: Easing\r\n *******************/\n\n\n opts.easing = getEasing(opts.easing, opts.duration);\n /**********************\r\n Option: Callbacks\r\n **********************/\n\n /* Callbacks must functions. Otherwise, default to null. */\n\n if (opts.begin && !Type.isFunction(opts.begin)) {\n opts.begin = null;\n }\n\n if (opts.progress && !Type.isFunction(opts.progress)) {\n opts.progress = null;\n }\n\n if (opts.complete && !Type.isFunction(opts.complete)) {\n opts.complete = null;\n }\n /*********************************\r\n Option: Display & Visibility\r\n *********************************/\n\n /* Refer to Velocity's documentation (VelocityJS.org/#displayAndVisibility) for a description of the display and visibility options' behavior. */\n\n /* Note: We strictly check for undefined instead of falsiness because display accepts an empty string value. */\n\n\n if (opts.display !== undefined && opts.display !== null) {\n opts.display = opts.display.toString().toLowerCase();\n /* Users can pass in a special \"auto\" value to instruct Velocity to set the element to its default display value. */\n\n if (opts.display === \"auto\") {\n opts.display = Velocity.CSS.Values.getDisplayType(element);\n }\n }\n\n if (opts.visibility !== undefined && opts.visibility !== null) {\n opts.visibility = opts.visibility.toString().toLowerCase();\n }\n /**********************\r\n Option: mobileHA\r\n **********************/\n\n /* When set to true, and if this is a mobile device, mobileHA automatically enables hardware acceleration (via a null transform hack)\r\n on animating elements. HA is removed from the element at the completion of its animation. */\n\n /* Note: Android Gingerbread doesn't support HA. If a null transform hack (mobileHA) is in fact set, it will prevent other tranform subproperties from taking effect. */\n\n /* Note: You can read more about the use of mobileHA in Velocity's documentation: VelocityJS.org/#mobileHA. */\n\n\n opts.mobileHA = opts.mobileHA && Velocity.State.isMobile && !Velocity.State.isGingerbread;\n /***********************\r\n Part II: Queueing\r\n ***********************/\n\n /* When a set of elements is targeted by a Velocity call, the set is broken up and each element has the current Velocity call individually queued onto it.\r\n In this way, each element's existing queue is respected; some elements may already be animating and accordingly should not have this current Velocity call triggered immediately. */\n\n /* In each queue, tween data is processed for each animating property then pushed onto the call-wide calls array. When the last element in the set has had its tweens processed,\r\n the call array is pushed to Velocity.State.calls for live processing by the requestAnimationFrame tick. */\n\n function buildQueue(next) {\n var data, lastTweensContainer;\n /*******************\r\n Option: Begin\r\n *******************/\n\n /* The begin callback is fired once per call -- not once per elemenet -- and is passed the full raw DOM element set as both its context and its first argument. */\n\n if (opts.begin && elementsIndex === 0) {\n /* We throw callbacks in a setTimeout so that thrown errors don't halt the execution of Velocity itself. */\n try {\n opts.begin.call(elements, elements);\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 1);\n }\n }\n /*****************************************\r\n Tween Data Construction (for Scroll)\r\n *****************************************/\n\n /* Note: In order to be subjected to chaining and animation options, scroll's tweening is routed through Velocity as if it were a standard CSS property animation. */\n\n\n if (action === \"scroll\") {\n /* The scroll action uniquely takes an optional \"offset\" option -- specified in pixels -- that offsets the targeted scroll position. */\n var scrollDirection = /^x$/i.test(opts.axis) ? \"Left\" : \"Top\",\n scrollOffset = parseFloat(opts.offset) || 0,\n scrollPositionCurrent,\n scrollPositionCurrentAlternate,\n scrollPositionEnd;\n /* Scroll also uniquely takes an optional \"container\" option, which indicates the parent element that should be scrolled --\r\n as opposed to the browser window itself. This is useful for scrolling toward an element that's inside an overflowing parent element. */\n\n if (opts.container) {\n /* Ensure that either a jQuery object or a raw DOM element was passed in. */\n if (Type.isWrapped(opts.container) || Type.isNode(opts.container)) {\n /* Extract the raw DOM element from the jQuery wrapper. */\n opts.container = opts.container[0] || opts.container;\n /* Note: Unlike other properties in Velocity, the browser's scroll position is never cached since it so frequently changes\r\n (due to the user's natural interaction with the page). */\n\n scrollPositionCurrent = opts.container[\"scroll\" + scrollDirection];\n /* GET */\n\n /* $.position() values are relative to the container's currently viewable area (without taking into account the container's true dimensions\r\n -- say, for example, if the container was not overflowing). Thus, the scroll end value is the sum of the child element's position *and*\r\n the scroll container's current scroll position. */\n\n scrollPositionEnd = scrollPositionCurrent + $(element).position()[scrollDirection.toLowerCase()] + scrollOffset;\n /* GET */\n\n /* If a value other than a jQuery object or a raw DOM element was passed in, default to null so that this option is ignored. */\n } else {\n opts.container = null;\n }\n } else {\n /* If the window itself is being scrolled -- not a containing element -- perform a live scroll position lookup using\r\n the appropriate cached property names (which differ based on browser type). */\n scrollPositionCurrent = Velocity.State.scrollAnchor[Velocity.State[\"scrollProperty\" + scrollDirection]];\n /* GET */\n\n /* When scrolling the browser window, cache the alternate axis's current value since window.scrollTo() doesn't let us change only one value at a time. */\n\n scrollPositionCurrentAlternate = Velocity.State.scrollAnchor[Velocity.State[\"scrollProperty\" + (scrollDirection === \"Left\" ? \"Top\" : \"Left\")]];\n /* GET */\n\n /* Unlike $.position(), $.offset() values are relative to the browser window's true dimensions -- not merely its currently viewable area --\r\n and therefore end values do not need to be compounded onto current values. */\n\n scrollPositionEnd = $(element).offset()[scrollDirection.toLowerCase()] + scrollOffset;\n /* GET */\n }\n /* Since there's only one format that scroll's associated tweensContainer can take, we create it manually. */\n\n\n tweensContainer = {\n scroll: {\n rootPropertyValue: false,\n startValue: scrollPositionCurrent,\n currentValue: scrollPositionCurrent,\n endValue: scrollPositionEnd,\n unitType: \"\",\n easing: opts.easing,\n scrollData: {\n container: opts.container,\n direction: scrollDirection,\n alternateValue: scrollPositionCurrentAlternate\n }\n },\n element: element\n };\n\n if (Velocity.debug) {\n console.log(\"tweensContainer (scroll): \", tweensContainer.scroll, element);\n }\n /******************************************\r\n Tween Data Construction (for Reverse)\r\n ******************************************/\n\n /* Reverse acts like a \"start\" action in that a property map is animated toward. The only difference is\r\n that the property map used for reverse is the inverse of the map used in the previous call. Thus, we manipulate\r\n the previous call to construct our new map: use the previous map's end values as our new map's start values. Copy over all other data. */\n\n /* Note: Reverse can be directly called via the \"reverse\" parameter, or it can be indirectly triggered via the loop option. (Loops are composed of multiple reverses.) */\n\n /* Note: Reverse calls do not need to be consecutively chained onto a currently-animating element in order to operate on cached values;\r\n there is no harm to reverse being called on a potentially stale data cache since reverse's behavior is simply defined\r\n as reverting to the element's values as they were prior to the previous *Velocity* call. */\n\n } else if (action === \"reverse\") {\n data = Data(element);\n /* Abort if there is no prior animation data to reverse to. */\n\n if (!data) {\n return;\n }\n\n if (!data.tweensContainer) {\n /* Dequeue the element so that this queue entry releases itself immediately, allowing subsequent queue entries to run. */\n $.dequeue(element, opts.queue);\n return;\n } else {\n /*********************\r\n Options Parsing\r\n *********************/\n\n /* If the element was hidden via the display option in the previous call,\r\n revert display to \"auto\" prior to reversal so that the element is visible again. */\n if (data.opts.display === \"none\") {\n data.opts.display = \"auto\";\n }\n\n if (data.opts.visibility === \"hidden\") {\n data.opts.visibility = \"visible\";\n }\n /* If the loop option was set in the previous call, disable it so that \"reverse\" calls aren't recursively generated.\r\n Further, remove the previous call's callback options; typically, users do not want these to be refired. */\n\n\n data.opts.loop = false;\n data.opts.begin = null;\n data.opts.complete = null;\n /* Since we're extending an opts object that has already been extended with the defaults options object,\r\n we remove non-explicitly-defined properties that are auto-assigned values. */\n\n if (!options.easing) {\n delete opts.easing;\n }\n\n if (!options.duration) {\n delete opts.duration;\n }\n /* The opts object used for reversal is an extension of the options object optionally passed into this\r\n reverse call plus the options used in the previous Velocity call. */\n\n\n opts = $.extend({}, data.opts, opts);\n /*************************************\r\n Tweens Container Reconstruction\r\n *************************************/\n\n /* Create a deepy copy (indicated via the true flag) of the previous call's tweensContainer. */\n\n lastTweensContainer = $.extend(true, {}, data ? data.tweensContainer : null);\n /* Manipulate the previous tweensContainer by replacing its end values and currentValues with its start values. */\n\n for (var lastTween in lastTweensContainer) {\n /* In addition to tween data, tweensContainers contain an element property that we ignore here. */\n if (lastTweensContainer.hasOwnProperty(lastTween) && lastTween !== \"element\") {\n var lastStartValue = lastTweensContainer[lastTween].startValue;\n lastTweensContainer[lastTween].startValue = lastTweensContainer[lastTween].currentValue = lastTweensContainer[lastTween].endValue;\n lastTweensContainer[lastTween].endValue = lastStartValue;\n /* Easing is the only option that embeds into the individual tween data (since it can be defined on a per-property basis).\r\n Accordingly, every property's easing value must be updated when an options object is passed in with a reverse call.\r\n The side effect of this extensibility is that all per-property easing values are forcefully reset to the new value. */\n\n if (!Type.isEmptyObject(options)) {\n lastTweensContainer[lastTween].easing = opts.easing;\n }\n\n if (Velocity.debug) {\n console.log(\"reverse tweensContainer (\" + lastTween + \"): \" + JSON.stringify(lastTweensContainer[lastTween]), element);\n }\n }\n }\n\n tweensContainer = lastTweensContainer;\n }\n /*****************************************\r\n Tween Data Construction (for Start)\r\n *****************************************/\n\n } else if (action === \"start\") {\n /*************************\r\n Value Transferring\r\n *************************/\n\n /* If this queue entry follows a previous Velocity-initiated queue entry *and* if this entry was created\r\n while the element was in the process of being animated by Velocity, then this current call is safe to use\r\n the end values from the prior call as its start values. Velocity attempts to perform this value transfer\r\n process whenever possible in order to avoid requerying the DOM. */\n\n /* If values aren't transferred from a prior call and start values were not forcefed by the user (more on this below),\r\n then the DOM is queried for the element's current values as a last resort. */\n\n /* Note: Conversely, animation reversal (and looping) *always* perform inter-call value transfers; they never requery the DOM. */\n data = Data(element);\n /* The per-element isAnimating flag is used to indicate whether it's safe (i.e. the data isn't stale)\r\n to transfer over end values to use as start values. If it's set to true and there is a previous\r\n Velocity call to pull values from, do so. */\n\n if (data && data.tweensContainer && data.isAnimating === true) {\n lastTweensContainer = data.tweensContainer;\n }\n /***************************\r\n Tween Data Calculation\r\n ***************************/\n\n /* This function parses property data and defaults endValue, easing, and startValue as appropriate. */\n\n /* Property map values can either take the form of 1) a single value representing the end value,\r\n or 2) an array in the form of [ endValue, [, easing] [, startValue] ].\r\n The optional third parameter is a forcefed startValue to be used instead of querying the DOM for\r\n the element's current value. Read Velocity's docmentation to learn more about forcefeeding: VelocityJS.org/#forcefeeding */\n\n\n var parsePropertyValue = function parsePropertyValue(valueData, skipResolvingEasing) {\n var endValue, easing, startValue;\n /* If we have a function as the main argument then resolve it first, in case it returns an array that needs to be split */\n\n if (Type.isFunction(valueData)) {\n valueData = valueData.call(element, elementArrayIndex, elementsLength);\n }\n /* Handle the array format, which can be structured as one of three potential overloads:\r\n A) [ endValue, easing, startValue ], B) [ endValue, easing ], or C) [ endValue, startValue ] */\n\n\n if (Type.isArray(valueData)) {\n /* endValue is always the first item in the array. Don't bother validating endValue's value now\r\n since the ensuing property cycling logic does that. */\n endValue = valueData[0];\n /* Two-item array format: If the second item is a number, function, or hex string, treat it as a\r\n start value since easings can only be non-hex strings or arrays. */\n\n if (!Type.isArray(valueData[1]) && /^[\\d-]/.test(valueData[1]) || Type.isFunction(valueData[1]) || CSS.RegEx.isHex.test(valueData[1])) {\n startValue = valueData[1];\n /* Two or three-item array: If the second item is a non-hex string easing name or an array, treat it as an easing. */\n } else if (Type.isString(valueData[1]) && !CSS.RegEx.isHex.test(valueData[1]) && Velocity.Easings[valueData[1]] || Type.isArray(valueData[1])) {\n easing = skipResolvingEasing ? valueData[1] : getEasing(valueData[1], opts.duration);\n /* Don't bother validating startValue's value now since the ensuing property cycling logic inherently does that. */\n\n startValue = valueData[2];\n } else {\n startValue = valueData[1] || valueData[2];\n }\n /* Handle the single-value format. */\n\n } else {\n endValue = valueData;\n }\n /* Default to the call's easing if a per-property easing type was not defined. */\n\n\n if (!skipResolvingEasing) {\n easing = easing || opts.easing;\n }\n /* If functions were passed in as values, pass the function the current element as its context,\r\n plus the element's index and the element set's size as arguments. Then, assign the returned value. */\n\n\n if (Type.isFunction(endValue)) {\n endValue = endValue.call(element, elementArrayIndex, elementsLength);\n }\n\n if (Type.isFunction(startValue)) {\n startValue = startValue.call(element, elementArrayIndex, elementsLength);\n }\n /* Allow startValue to be left as undefined to indicate to the ensuing code that its value was not forcefed. */\n\n\n return [endValue || 0, easing, startValue];\n };\n\n var fixPropertyValue = function fixPropertyValue(property, valueData) {\n /* In case this property is a hook, there are circumstances where we will intend to work on the hook's root property and not the hooked subproperty. */\n var rootProperty = CSS.Hooks.getRoot(property),\n rootPropertyValue = false,\n\n /* Parse out endValue, easing, and startValue from the property's data. */\n endValue = valueData[0],\n easing = valueData[1],\n startValue = valueData[2],\n pattern;\n /**************************\r\n Start Value Sourcing\r\n **************************/\n\n /* Other than for the dummy tween property, properties that are not supported by the browser (and do not have an associated normalization) will\r\n inherently produce no style changes when set, so they are skipped in order to decrease animation tick overhead.\r\n Property support is determined via prefixCheck(), which returns a false flag when no supported is detected. */\n\n /* Note: Since SVG elements have some of their properties directly applied as HTML attributes,\r\n there is no way to check for their explicit browser support, and so we skip skip this check for them. */\n\n if ((!data || !data.isSVG) && rootProperty !== \"tween\" && CSS.Names.prefixCheck(rootProperty)[1] === false && CSS.Normalizations.registered[rootProperty] === undefined) {\n if (Velocity.debug) {\n console.log(\"Skipping [\" + rootProperty + \"] due to a lack of browser support.\");\n }\n\n return;\n }\n /* If the display option is being set to a non-\"none\" (e.g. \"block\") and opacity (filter on IE<=8) is being\r\n animated to an endValue of non-zero, the user's intention is to fade in from invisible, thus we forcefeed opacity\r\n a startValue of 0 if its startValue hasn't already been sourced by value transferring or prior forcefeeding. */\n\n\n if ((opts.display !== undefined && opts.display !== null && opts.display !== \"none\" || opts.visibility !== undefined && opts.visibility !== \"hidden\") && /opacity|filter/.test(property) && !startValue && endValue !== 0) {\n startValue = 0;\n }\n /* If values have been transferred from the previous Velocity call, extract the endValue and rootPropertyValue\r\n for all of the current call's properties that were *also* animated in the previous call. */\n\n /* Note: Value transferring can optionally be disabled by the user via the _cacheValues option. */\n\n\n if (opts._cacheValues && lastTweensContainer && lastTweensContainer[property]) {\n if (startValue === undefined) {\n startValue = lastTweensContainer[property].endValue + lastTweensContainer[property].unitType;\n }\n /* The previous call's rootPropertyValue is extracted from the element's data cache since that's the\r\n instance of rootPropertyValue that gets freshly updated by the tweening process, whereas the rootPropertyValue\r\n attached to the incoming lastTweensContainer is equal to the root property's value prior to any tweening. */\n\n\n rootPropertyValue = data.rootPropertyValueCache[rootProperty];\n /* If values were not transferred from a previous Velocity call, query the DOM as needed. */\n } else {\n /* Handle hooked properties. */\n if (CSS.Hooks.registered[property]) {\n if (startValue === undefined) {\n rootPropertyValue = CSS.getPropertyValue(element, rootProperty);\n /* GET */\n\n /* Note: The following getPropertyValue() call does not actually trigger a DOM query;\r\n getPropertyValue() will extract the hook from rootPropertyValue. */\n\n startValue = CSS.getPropertyValue(element, property, rootPropertyValue);\n /* If startValue is already defined via forcefeeding, do not query the DOM for the root property's value;\r\n just grab rootProperty's zero-value template from CSS.Hooks. This overwrites the element's actual\r\n root property value (if one is set), but this is acceptable since the primary reason users forcefeed is\r\n to avoid DOM queries, and thus we likewise avoid querying the DOM for the root property's value. */\n } else {\n /* Grab this hook's zero-value template, e.g. \"0px 0px 0px black\". */\n rootPropertyValue = CSS.Hooks.templates[rootProperty][1];\n }\n /* Handle non-hooked properties that haven't already been defined via forcefeeding. */\n\n } else if (startValue === undefined) {\n startValue = CSS.getPropertyValue(element, property);\n /* GET */\n }\n }\n /**************************\r\n Value Data Extraction\r\n **************************/\n\n\n var separatedValue,\n endValueUnitType,\n startValueUnitType,\n operator = false;\n /* Separates a property value into its numeric value and its unit type. */\n\n var separateValue = function separateValue(property, value) {\n var unitType, numericValue;\n numericValue = (value || \"0\").toString().toLowerCase()\n /* Match the unit type at the end of the value. */\n .replace(/[%A-z]+$/, function (match) {\n /* Grab the unit type. */\n unitType = match;\n /* Strip the unit type off of value. */\n\n return \"\";\n });\n /* If no unit type was supplied, assign one that is appropriate for this property (e.g. \"deg\" for rotateZ or \"px\" for width). */\n\n if (!unitType) {\n unitType = CSS.Values.getUnitType(property);\n }\n\n return [numericValue, unitType];\n };\n\n if (startValue !== endValue && Type.isString(startValue) && Type.isString(endValue)) {\n pattern = \"\";\n var iStart = 0,\n // index in startValue\n iEnd = 0,\n // index in endValue\n aStart = [],\n // array of startValue numbers\n aEnd = [],\n // array of endValue numbers\n inCalc = 0,\n // Keep track of being inside a \"calc()\" so we don't duplicate it\n inRGB = 0,\n // Keep track of being inside an RGB as we can't use fractional values\n inRGBA = 0; // Keep track of being inside an RGBA as we must pass fractional for the alpha channel\n\n startValue = CSS.Hooks.fixColors(startValue);\n endValue = CSS.Hooks.fixColors(endValue);\n\n while (iStart < startValue.length && iEnd < endValue.length) {\n var cStart = startValue[iStart],\n cEnd = endValue[iEnd];\n\n if (/[\\d\\.-]/.test(cStart) && /[\\d\\.-]/.test(cEnd)) {\n var tStart = cStart,\n // temporary character buffer\n tEnd = cEnd,\n // temporary character buffer\n dotStart = \".\",\n // Make sure we can only ever match a single dot in a decimal\n dotEnd = \".\"; // Make sure we can only ever match a single dot in a decimal\n\n while (++iStart < startValue.length) {\n cStart = startValue[iStart];\n\n if (cStart === dotStart) {\n dotStart = \"..\"; // Can never match two characters\n } else if (!/\\d/.test(cStart)) {\n break;\n }\n\n tStart += cStart;\n }\n\n while (++iEnd < endValue.length) {\n cEnd = endValue[iEnd];\n\n if (cEnd === dotEnd) {\n dotEnd = \"..\"; // Can never match two characters\n } else if (!/\\d/.test(cEnd)) {\n break;\n }\n\n tEnd += cEnd;\n }\n\n var uStart = CSS.Hooks.getUnit(startValue, iStart),\n // temporary unit type\n uEnd = CSS.Hooks.getUnit(endValue, iEnd); // temporary unit type\n\n iStart += uStart.length;\n iEnd += uEnd.length;\n\n if (uStart === uEnd) {\n // Same units\n if (tStart === tEnd) {\n // Same numbers, so just copy over\n pattern += tStart + uStart;\n } else {\n // Different numbers, so store them\n pattern += \"{\" + aStart.length + (inRGB ? \"!\" : \"\") + \"}\" + uStart;\n aStart.push(parseFloat(tStart));\n aEnd.push(parseFloat(tEnd));\n }\n } else {\n // Different units, so put into a \"calc(from + to)\" and animate each side to/from zero\n var nStart = parseFloat(tStart),\n nEnd = parseFloat(tEnd);\n pattern += (inCalc < 5 ? \"calc\" : \"\") + \"(\" + (nStart ? \"{\" + aStart.length + (inRGB ? \"!\" : \"\") + \"}\" : \"0\") + uStart + \" + \" + (nEnd ? \"{\" + (aStart.length + (nStart ? 1 : 0)) + (inRGB ? \"!\" : \"\") + \"}\" : \"0\") + uEnd + \")\";\n\n if (nStart) {\n aStart.push(nStart);\n aEnd.push(0);\n }\n\n if (nEnd) {\n aStart.push(0);\n aEnd.push(nEnd);\n }\n }\n } else if (cStart === cEnd) {\n pattern += cStart;\n iStart++;\n iEnd++; // Keep track of being inside a calc()\n\n if (inCalc === 0 && cStart === \"c\" || inCalc === 1 && cStart === \"a\" || inCalc === 2 && cStart === \"l\" || inCalc === 3 && cStart === \"c\" || inCalc >= 4 && cStart === \"(\") {\n inCalc++;\n } else if (inCalc && inCalc < 5 || inCalc >= 4 && cStart === \")\" && --inCalc < 5) {\n inCalc = 0;\n } // Keep track of being inside an rgb() / rgba()\n\n\n if (inRGB === 0 && cStart === \"r\" || inRGB === 1 && cStart === \"g\" || inRGB === 2 && cStart === \"b\" || inRGB === 3 && cStart === \"a\" || inRGB >= 3 && cStart === \"(\") {\n if (inRGB === 3 && cStart === \"a\") {\n inRGBA = 1;\n }\n\n inRGB++;\n } else if (inRGBA && cStart === \",\") {\n if (++inRGBA > 3) {\n inRGB = inRGBA = 0;\n }\n } else if (inRGBA && inRGB < (inRGBA ? 5 : 4) || inRGB >= (inRGBA ? 4 : 3) && cStart === \")\" && --inRGB < (inRGBA ? 5 : 4)) {\n inRGB = inRGBA = 0;\n }\n } else {\n inCalc = 0; // TODO: changing units, fixing colours\n\n break;\n }\n }\n\n if (iStart !== startValue.length || iEnd !== endValue.length) {\n if (Velocity.debug) {\n console.error(\"Trying to pattern match mis-matched strings [\\\"\" + endValue + \"\\\", \\\"\" + startValue + \"\\\"]\");\n }\n\n pattern = undefined;\n }\n\n if (pattern) {\n if (aStart.length) {\n if (Velocity.debug) {\n console.log(\"Pattern found \\\"\" + pattern + \"\\\" -> \", aStart, aEnd, \"[\" + startValue + \",\" + endValue + \"]\");\n }\n\n startValue = aStart;\n endValue = aEnd;\n endValueUnitType = startValueUnitType = \"\";\n } else {\n pattern = undefined;\n }\n }\n }\n\n if (!pattern) {\n /* Separate startValue. */\n separatedValue = separateValue(property, startValue);\n startValue = separatedValue[0];\n startValueUnitType = separatedValue[1];\n /* Separate endValue, and extract a value operator (e.g. \"+=\", \"-=\") if one exists. */\n\n separatedValue = separateValue(property, endValue);\n endValue = separatedValue[0].replace(/^([+-\\/*])=/, function (match, subMatch) {\n operator = subMatch;\n /* Strip the operator off of the value. */\n\n return \"\";\n });\n endValueUnitType = separatedValue[1];\n /* Parse float values from endValue and startValue. Default to 0 if NaN is returned. */\n\n startValue = parseFloat(startValue) || 0;\n endValue = parseFloat(endValue) || 0;\n /***************************************\r\n Property-Specific Value Conversion\r\n ***************************************/\n\n /* Custom support for properties that don't actually accept the % unit type, but where pollyfilling is trivial and relatively foolproof. */\n\n if (endValueUnitType === \"%\") {\n /* A %-value fontSize/lineHeight is relative to the parent's fontSize (as opposed to the parent's dimensions),\r\n which is identical to the em unit's behavior, so we piggyback off of that. */\n if (/^(fontSize|lineHeight)$/.test(property)) {\n /* Convert % into an em decimal value. */\n endValue = endValue / 100;\n endValueUnitType = \"em\";\n /* For scaleX and scaleY, convert the value into its decimal format and strip off the unit type. */\n } else if (/^scale/.test(property)) {\n endValue = endValue / 100;\n endValueUnitType = \"\";\n /* For RGB components, take the defined percentage of 255 and strip off the unit type. */\n } else if (/(Red|Green|Blue)$/i.test(property)) {\n endValue = endValue / 100 * 255;\n endValueUnitType = \"\";\n }\n }\n }\n /***************************\r\n Unit Ratio Calculation\r\n ***************************/\n\n /* When queried, the browser returns (most) CSS property values in pixels. Therefore, if an endValue with a unit type of\r\n %, em, or rem is animated toward, startValue must be converted from pixels into the same unit type as endValue in order\r\n for value manipulation logic (increment/decrement) to proceed. Further, if the startValue was forcefed or transferred\r\n from a previous call, startValue may also not be in pixels. Unit conversion logic therefore consists of two steps:\r\n 1) Calculating the ratio of %/em/rem/vh/vw relative to pixels\r\n 2) Converting startValue into the same unit of measurement as endValue based on these ratios. */\n\n /* Unit conversion ratios are calculated by inserting a sibling node next to the target node, copying over its position property,\r\n setting values with the target unit type then comparing the returned pixel value. */\n\n /* Note: Even if only one of these unit types is being animated, all unit ratios are calculated at once since the overhead\r\n of batching the SETs and GETs together upfront outweights the potential overhead\r\n of layout thrashing caused by re-querying for uncalculated ratios for subsequently-processed properties. */\n\n /* Todo: Shift this logic into the calls' first tick instance so that it's synced with RAF. */\n\n\n var calculateUnitRatios = function calculateUnitRatios() {\n /************************\r\n Same Ratio Checks\r\n ************************/\n\n /* The properties below are used to determine whether the element differs sufficiently from this call's\r\n previously iterated element to also differ in its unit conversion ratios. If the properties match up with those\r\n of the prior element, the prior element's conversion ratios are used. Like most optimizations in Velocity,\r\n this is done to minimize DOM querying. */\n var sameRatioIndicators = {\n myParent: element.parentNode || document.body,\n\n /* GET */\n position: CSS.getPropertyValue(element, \"position\"),\n\n /* GET */\n fontSize: CSS.getPropertyValue(element, \"fontSize\")\n /* GET */\n\n },\n\n /* Determine if the same % ratio can be used. % is based on the element's position value and its parent's width and height dimensions. */\n samePercentRatio = sameRatioIndicators.position === callUnitConversionData.lastPosition && sameRatioIndicators.myParent === callUnitConversionData.lastParent,\n\n /* Determine if the same em ratio can be used. em is relative to the element's fontSize. */\n sameEmRatio = sameRatioIndicators.fontSize === callUnitConversionData.lastFontSize;\n /* Store these ratio indicators call-wide for the next element to compare against. */\n\n callUnitConversionData.lastParent = sameRatioIndicators.myParent;\n callUnitConversionData.lastPosition = sameRatioIndicators.position;\n callUnitConversionData.lastFontSize = sameRatioIndicators.fontSize;\n /***************************\r\n Element-Specific Units\r\n ***************************/\n\n /* Note: IE8 rounds to the nearest pixel when returning CSS values, thus we perform conversions using a measurement\r\n of 100 (instead of 1) to give our ratios a precision of at least 2 decimal values. */\n\n var measurement = 100,\n unitRatios = {};\n\n if (!sameEmRatio || !samePercentRatio) {\n var dummy = data && data.isSVG ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\") : document.createElement(\"div\");\n Velocity.init(dummy);\n sameRatioIndicators.myParent.appendChild(dummy);\n /* To accurately and consistently calculate conversion ratios, the element's cascaded overflow and box-sizing are stripped.\r\n Similarly, since width/height can be artificially constrained by their min-/max- equivalents, these are controlled for as well. */\n\n /* Note: Overflow must be also be controlled for per-axis since the overflow property overwrites its per-axis values. */\n\n $.each([\"overflow\", \"overflowX\", \"overflowY\"], function (i, property) {\n Velocity.CSS.setPropertyValue(dummy, property, \"hidden\");\n });\n Velocity.CSS.setPropertyValue(dummy, \"position\", sameRatioIndicators.position);\n Velocity.CSS.setPropertyValue(dummy, \"fontSize\", sameRatioIndicators.fontSize);\n Velocity.CSS.setPropertyValue(dummy, \"boxSizing\", \"content-box\");\n /* width and height act as our proxy properties for measuring the horizontal and vertical % ratios. */\n\n $.each([\"minWidth\", \"maxWidth\", \"width\", \"minHeight\", \"maxHeight\", \"height\"], function (i, property) {\n Velocity.CSS.setPropertyValue(dummy, property, measurement + \"%\");\n });\n /* paddingLeft arbitrarily acts as our proxy property for the em ratio. */\n\n Velocity.CSS.setPropertyValue(dummy, \"paddingLeft\", measurement + \"em\");\n /* Divide the returned value by the measurement to get the ratio between 1% and 1px. Default to 1 since working with 0 can produce Infinite. */\n\n unitRatios.percentToPxWidth = callUnitConversionData.lastPercentToPxWidth = (parseFloat(CSS.getPropertyValue(dummy, \"width\", null, true)) || 1) / measurement;\n /* GET */\n\n unitRatios.percentToPxHeight = callUnitConversionData.lastPercentToPxHeight = (parseFloat(CSS.getPropertyValue(dummy, \"height\", null, true)) || 1) / measurement;\n /* GET */\n\n unitRatios.emToPx = callUnitConversionData.lastEmToPx = (parseFloat(CSS.getPropertyValue(dummy, \"paddingLeft\")) || 1) / measurement;\n /* GET */\n\n sameRatioIndicators.myParent.removeChild(dummy);\n } else {\n unitRatios.emToPx = callUnitConversionData.lastEmToPx;\n unitRatios.percentToPxWidth = callUnitConversionData.lastPercentToPxWidth;\n unitRatios.percentToPxHeight = callUnitConversionData.lastPercentToPxHeight;\n }\n /***************************\r\n Element-Agnostic Units\r\n ***************************/\n\n /* Whereas % and em ratios are determined on a per-element basis, the rem unit only needs to be checked\r\n once per call since it's exclusively dependant upon document.body's fontSize. If this is the first time\r\n that calculateUnitRatios() is being run during this call, remToPx will still be set to its default value of null,\r\n so we calculate it now. */\n\n\n if (callUnitConversionData.remToPx === null) {\n /* Default to browsers' default fontSize of 16px in the case of 0. */\n callUnitConversionData.remToPx = parseFloat(CSS.getPropertyValue(document.body, \"fontSize\")) || 16;\n /* GET */\n }\n /* Similarly, viewport units are %-relative to the window's inner dimensions. */\n\n\n if (callUnitConversionData.vwToPx === null) {\n callUnitConversionData.vwToPx = parseFloat(window.innerWidth) / 100;\n /* GET */\n\n callUnitConversionData.vhToPx = parseFloat(window.innerHeight) / 100;\n /* GET */\n }\n\n unitRatios.remToPx = callUnitConversionData.remToPx;\n unitRatios.vwToPx = callUnitConversionData.vwToPx;\n unitRatios.vhToPx = callUnitConversionData.vhToPx;\n\n if (Velocity.debug >= 1) {\n console.log(\"Unit ratios: \" + JSON.stringify(unitRatios), element);\n }\n\n return unitRatios;\n };\n /********************\r\n Unit Conversion\r\n ********************/\n\n /* The * and / operators, which are not passed in with an associated unit, inherently use startValue's unit. Skip value and unit conversion. */\n\n\n if (/[\\/*]/.test(operator)) {\n endValueUnitType = startValueUnitType;\n /* If startValue and endValue differ in unit type, convert startValue into the same unit type as endValue so that if endValueUnitType\r\n is a relative unit (%, em, rem), the values set during tweening will continue to be accurately relative even if the metrics they depend\r\n on are dynamically changing during the course of the animation. Conversely, if we always normalized into px and used px for setting values, the px ratio\r\n would become stale if the original unit being animated toward was relative and the underlying metrics change during the animation. */\n\n /* Since 0 is 0 in any unit type, no conversion is necessary when startValue is 0 -- we just start at 0 with endValueUnitType. */\n } else if (startValueUnitType !== endValueUnitType && startValue !== 0) {\n /* Unit conversion is also skipped when endValue is 0, but *startValueUnitType* must be used for tween values to remain accurate. */\n\n /* Note: Skipping unit conversion here means that if endValueUnitType was originally a relative unit, the animation won't relatively\r\n match the underlying metrics if they change, but this is acceptable since we're animating toward invisibility instead of toward visibility,\r\n which remains past the point of the animation's completion. */\n if (endValue === 0) {\n endValueUnitType = startValueUnitType;\n } else {\n /* By this point, we cannot avoid unit conversion (it's undesirable since it causes layout thrashing).\r\n If we haven't already, we trigger calculateUnitRatios(), which runs once per element per call. */\n elementUnitConversionData = elementUnitConversionData || calculateUnitRatios();\n /* The following RegEx matches CSS properties that have their % values measured relative to the x-axis. */\n\n /* Note: W3C spec mandates that all of margin and padding's properties (even top and bottom) are %-relative to the *width* of the parent element. */\n\n var axis = /margin|padding|left|right|width|text|word|letter/i.test(property) || /X$/.test(property) || property === \"x\" ? \"x\" : \"y\";\n /* In order to avoid generating n^2 bespoke conversion functions, unit conversion is a two-step process:\r\n 1) Convert startValue into pixels. 2) Convert this new pixel value into endValue's unit type. */\n\n switch (startValueUnitType) {\n case \"%\":\n /* Note: translateX and translateY are the only properties that are %-relative to an element's own dimensions -- not its parent's dimensions.\r\n Velocity does not include a special conversion process to account for this behavior. Therefore, animating translateX/Y from a % value\r\n to a non-% value will produce an incorrect start value. Fortunately, this sort of cross-unit conversion is rarely done by users in practice. */\n startValue *= axis === \"x\" ? elementUnitConversionData.percentToPxWidth : elementUnitConversionData.percentToPxHeight;\n break;\n\n case \"px\":\n /* px acts as our midpoint in the unit conversion process; do nothing. */\n break;\n\n default:\n startValue *= elementUnitConversionData[startValueUnitType + \"ToPx\"];\n }\n /* Invert the px ratios to convert into to the target unit. */\n\n\n switch (endValueUnitType) {\n case \"%\":\n startValue *= 1 / (axis === \"x\" ? elementUnitConversionData.percentToPxWidth : elementUnitConversionData.percentToPxHeight);\n break;\n\n case \"px\":\n /* startValue is already in px, do nothing; we're done. */\n break;\n\n default:\n startValue *= 1 / elementUnitConversionData[endValueUnitType + \"ToPx\"];\n }\n }\n }\n /*********************\r\n Relative Values\r\n *********************/\n\n /* Operator logic must be performed last since it requires unit-normalized start and end values. */\n\n /* Note: Relative *percent values* do not behave how most people think; while one would expect \"+=50%\"\r\n to increase the property 1.5x its current value, it in fact increases the percent units in absolute terms:\r\n 50 points is added on top of the current % value. */\n\n\n switch (operator) {\n case \"+\":\n endValue = startValue + endValue;\n break;\n\n case \"-\":\n endValue = startValue - endValue;\n break;\n\n case \"*\":\n endValue = startValue * endValue;\n break;\n\n case \"/\":\n endValue = startValue / endValue;\n break;\n }\n /**************************\r\n tweensContainer Push\r\n **************************/\n\n /* Construct the per-property tween object, and push it to the element's tweensContainer. */\n\n\n tweensContainer[property] = {\n rootPropertyValue: rootPropertyValue,\n startValue: startValue,\n currentValue: startValue,\n endValue: endValue,\n unitType: endValueUnitType,\n easing: easing\n };\n\n if (pattern) {\n tweensContainer[property].pattern = pattern;\n }\n\n if (Velocity.debug) {\n console.log(\"tweensContainer (\" + property + \"): \" + JSON.stringify(tweensContainer[property]), element);\n }\n };\n /* Create a tween out of each property, and append its associated data to tweensContainer. */\n\n\n for (var property in propertiesMap) {\n if (!propertiesMap.hasOwnProperty(property)) {\n continue;\n }\n /* The original property name's format must be used for the parsePropertyValue() lookup,\r\n but we then use its camelCase styling to normalize it for manipulation. */\n\n\n var propertyName = CSS.Names.camelCase(property),\n valueData = parsePropertyValue(propertiesMap[property]);\n /* Find shorthand color properties that have been passed a hex string. */\n\n /* Would be quicker to use CSS.Lists.colors.includes() if possible */\n\n if (_inArray(CSS.Lists.colors, propertyName)) {\n /* Parse the value data for each shorthand. */\n var endValue = valueData[0],\n easing = valueData[1],\n startValue = valueData[2];\n\n if (CSS.RegEx.isHex.test(endValue)) {\n /* Convert the hex strings into their RGB component arrays. */\n var colorComponents = [\"Red\", \"Green\", \"Blue\"],\n endValueRGB = CSS.Values.hexToRgb(endValue),\n startValueRGB = startValue ? CSS.Values.hexToRgb(startValue) : undefined;\n /* Inject the RGB component tweens into propertiesMap. */\n\n for (var i = 0; i < colorComponents.length; i++) {\n var dataArray = [endValueRGB[i]];\n\n if (easing) {\n dataArray.push(easing);\n }\n\n if (startValueRGB !== undefined) {\n dataArray.push(startValueRGB[i]);\n }\n\n fixPropertyValue(propertyName + colorComponents[i], dataArray);\n }\n /* If we have replaced a shortcut color value then don't update the standard property name */\n\n\n continue;\n }\n }\n\n fixPropertyValue(propertyName, valueData);\n }\n /* Along with its property data, store a reference to the element itself onto tweensContainer. */\n\n\n tweensContainer.element = element;\n }\n /*****************\r\n Call Push\r\n *****************/\n\n /* Note: tweensContainer can be empty if all of the properties in this call's property map were skipped due to not\r\n being supported by the browser. The element property is used for checking that the tweensContainer has been appended to. */\n\n\n if (tweensContainer.element) {\n /* Apply the \"velocity-animating\" indicator class. */\n CSS.Values.addClass(element, \"velocity-animating\");\n /* The call array houses the tweensContainers for each element being animated in the current call. */\n\n call.push(tweensContainer);\n data = Data(element);\n\n if (data) {\n /* Store the tweensContainer and options if we're working on the default effects queue, so that they can be used by the reverse command. */\n if (opts.queue === \"\") {\n data.tweensContainer = tweensContainer;\n data.opts = opts;\n }\n /* Switch on the element's animating flag. */\n\n\n data.isAnimating = true;\n }\n /* Once the final element in this call's element set has been processed, push the call array onto\r\n Velocity.State.calls for the animation tick to immediately begin processing. */\n\n\n if (elementsIndex === elementsLength - 1) {\n /* Add the current call plus its associated metadata (the element set and the call's options) onto the global call container.\r\n Anything on this call container is subjected to tick() processing. */\n Velocity.State.calls.push([call, elements, opts, null, promiseData.resolver, null, 0]);\n /* If the animation tick isn't running, start it. (Velocity shuts it off when there are no active calls to process.) */\n\n if (Velocity.State.isTicking === false) {\n Velocity.State.isTicking = true;\n /* Start the tick loop. */\n\n tick();\n }\n } else {\n elementsIndex++;\n }\n }\n }\n /* When the queue option is set to false, the call skips the element's queue and fires immediately. */\n\n\n if (opts.queue === false) {\n /* Since this buildQueue call doesn't respect the element's existing queue (which is where a delay option would have been appended),\r\n we manually inject the delay property here with an explicit setTimeout. */\n if (opts.delay) {\n /* Temporarily store delayed elements to facilitate access for global pause/resume */\n var callIndex = Velocity.State.delayedElements.count++;\n Velocity.State.delayedElements[callIndex] = element;\n\n var delayComplete = function (index) {\n return function () {\n /* Clear the temporary element */\n Velocity.State.delayedElements[index] = false;\n /* Finally, issue the call */\n\n buildQueue();\n };\n }(callIndex);\n\n Data(element).delayBegin = new Date().getTime();\n Data(element).delay = parseFloat(opts.delay);\n Data(element).delayTimer = {\n setTimeout: setTimeout(buildQueue, parseFloat(opts.delay)),\n next: delayComplete\n };\n } else {\n buildQueue();\n }\n /* Otherwise, the call undergoes element queueing as normal. */\n\n /* Note: To interoperate with jQuery, Velocity uses jQuery's own $.queue() stack for queuing logic. */\n\n } else {\n $.queue(element, opts.queue, function (next, clearQueue) {\n /* If the clearQueue flag was passed in by the stop command, resolve this call's promise. (Promises can only be resolved once,\r\n so it's fine if this is repeatedly triggered for each element in the associated call.) */\n if (clearQueue === true) {\n if (promiseData.promise) {\n promiseData.resolver(elements);\n }\n /* Do not continue with animation queueing. */\n\n\n return true;\n }\n /* This flag indicates to the upcoming completeCall() function that this queue entry was initiated by Velocity.\r\n See completeCall() for further details. */\n\n\n Velocity.velocityQueueEntryFlag = true;\n buildQueue(next);\n });\n }\n /*********************\r\n Auto-Dequeuing\r\n *********************/\n\n /* As per jQuery's $.queue() behavior, to fire the first non-custom-queue entry on an element, the element\r\n must be dequeued if its queue stack consists *solely* of the current call. (This can be determined by checking\r\n for the \"inprogress\" item that jQuery prepends to active queue stack arrays.) Regardless, whenever the element's\r\n queue is further appended with additional items -- including $.delay()'s or even $.animate() calls, the queue's\r\n first entry is automatically fired. This behavior contrasts that of custom queues, which never auto-fire. */\n\n /* Note: When an element set is being subjected to a non-parallel Velocity call, the animation will not begin until\r\n each one of the elements in the set has reached the end of its individually pre-existing queue chain. */\n\n /* Note: Unfortunately, most people don't fully grasp jQuery's powerful, yet quirky, $.queue() function.\r\n Lean more here: http://stackoverflow.com/questions/1058158/can-somebody-explain-jquery-queue-to-me */\n\n\n if ((opts.queue === \"\" || opts.queue === \"fx\") && $.queue(element)[0] !== \"inprogress\") {\n $.dequeue(element);\n }\n }\n /**************************\r\n Element Set Iteration\r\n **************************/\n\n /* If the \"nodeType\" property exists on the elements variable, we're animating a single element.\r\n Place it in an array so that $.each() can iterate over it. */\n\n\n $.each(elements, function (i, element) {\n /* Ensure each element in a set has a nodeType (is a real element) to avoid throwing errors. */\n if (Type.isNode(element)) {\n processElement(element, i);\n }\n });\n /******************\r\n Option: Loop\r\n ******************/\n\n /* The loop option accepts an integer indicating how many times the element should loop between the values in the\r\n current call's properties map and the element's property values prior to this call. */\n\n /* Note: The loop option's logic is performed here -- after element processing -- because the current call needs\r\n to undergo its queue insertion prior to the loop option generating its series of constituent \"reverse\" calls,\r\n which chain after the current call. Two reverse calls (two \"alternations\") constitute one loop. */\n\n opts = $.extend({}, Velocity.defaults, options);\n opts.loop = parseInt(opts.loop, 10);\n var reverseCallsCount = opts.loop * 2 - 1;\n\n if (opts.loop) {\n /* Double the loop count to convert it into its appropriate number of \"reverse\" calls.\r\n Subtract 1 from the resulting value since the current call is included in the total alternation count. */\n for (var x = 0; x < reverseCallsCount; x++) {\n /* Since the logic for the reverse action occurs inside Queueing and therefore this call's options object\r\n isn't parsed until then as well, the current call's delay option must be explicitly passed into the reverse\r\n call so that the delay logic that occurs inside *Pre-Queueing* can process it. */\n var reverseOptions = {\n delay: opts.delay,\n progress: opts.progress\n };\n /* If a complete callback was passed into this call, transfer it to the loop redirect's final \"reverse\" call\r\n so that it's triggered when the entire redirect is complete (and not when the very first animation is complete). */\n\n if (x === reverseCallsCount - 1) {\n reverseOptions.display = opts.display;\n reverseOptions.visibility = opts.visibility;\n reverseOptions.complete = opts.complete;\n }\n\n animate(elements, \"reverse\", reverseOptions);\n }\n }\n /***************\r\n Chaining\r\n ***************/\n\n /* Return the elements back to the call chain, with wrapped elements taking precedence in case Velocity was called via the $.fn. extension. */\n\n\n return getChain();\n };\n /* Turn Velocity into the animation function, extended with the pre-existing Velocity object. */\n\n\n Velocity = $.extend(animate, Velocity);\n /* For legacy support, also expose the literal animate method. */\n\n Velocity.animate = animate;\n /**************\r\n Timing\r\n **************/\n\n /* Ticker function. */\n\n var ticker = window.requestAnimationFrame || rAFShim;\n /* Inactive browser tabs pause rAF, which results in all active animations immediately sprinting to their completion states when the tab refocuses.\r\n To get around this, we dynamically switch rAF to setTimeout (which the browser *doesn't* pause) when the tab loses focus. We skip this for mobile\r\n devices to avoid wasting battery power on inactive tabs. */\n\n /* Note: Tab focus detection doesn't work on older versions of IE, but that's okay since they don't support rAF to begin with. */\n\n if (!Velocity.State.isMobile && document.hidden !== undefined) {\n var updateTicker = function updateTicker() {\n /* Reassign the rAF function (which the global tick() function uses) based on the tab's focus state. */\n if (document.hidden) {\n ticker = function ticker(callback) {\n /* The tick function needs a truthy first argument in order to pass its internal timestamp check. */\n return setTimeout(function () {\n callback(true);\n }, 16);\n };\n /* The rAF loop has been paused by the browser, so we manually restart the tick. */\n\n\n tick();\n } else {\n ticker = window.requestAnimationFrame || rAFShim;\n }\n };\n /* Page could be sitting in the background at this time (i.e. opened as new tab) so making sure we use correct ticker from the start */\n\n\n updateTicker();\n /* And then run check again every time visibility changes */\n\n document.addEventListener(\"visibilitychange\", updateTicker);\n }\n /************\r\n Tick\r\n ************/\n\n /* Note: All calls to Velocity are pushed to the Velocity.State.calls array, which is fully iterated through upon each tick. */\n\n\n function tick(timestamp) {\n /* An empty timestamp argument indicates that this is the first tick occurence since ticking was turned on.\r\n We leverage this metadata to fully ignore the first tick pass since RAF's initial pass is fired whenever\r\n the browser's next tick sync time occurs, which results in the first elements subjected to Velocity\r\n calls being animated out of sync with any elements animated immediately thereafter. In short, we ignore\r\n the first RAF tick pass so that elements being immediately consecutively animated -- instead of simultaneously animated\r\n by the same Velocity call -- are properly batched into the same initial RAF tick and consequently remain in sync thereafter. */\n if (timestamp) {\n /* We normally use RAF's high resolution timestamp but as it can be significantly offset when the browser is\r\n under high stress we give the option for choppiness over allowing the browser to drop huge chunks of frames.\r\n We use performance.now() and shim it if it doesn't exist for when the tab is hidden. */\n var timeCurrent = Velocity.timestamp && timestamp !== true ? timestamp : performance.now();\n /********************\r\n Call Iteration\r\n ********************/\n\n var callsLength = Velocity.State.calls.length;\n /* To speed up iterating over this array, it is compacted (falsey items -- calls that have completed -- are removed)\r\n when its length has ballooned to a point that can impact tick performance. This only becomes necessary when animation\r\n has been continuous with many elements over a long period of time; whenever all active calls are completed, completeCall() clears Velocity.State.calls. */\n\n if (callsLength > 10000) {\n Velocity.State.calls = compactSparseArray(Velocity.State.calls);\n callsLength = Velocity.State.calls.length;\n }\n /* Iterate through each active call. */\n\n\n for (var i = 0; i < callsLength; i++) {\n /* When a Velocity call is completed, its Velocity.State.calls entry is set to false. Continue on to the next call. */\n if (!Velocity.State.calls[i]) {\n continue;\n }\n /************************\r\n Call-Wide Variables\r\n ************************/\n\n\n var callContainer = Velocity.State.calls[i],\n call = callContainer[0],\n opts = callContainer[2],\n timeStart = callContainer[3],\n firstTick = !timeStart,\n tweenDummyValue = null,\n pauseObject = callContainer[5],\n millisecondsEllapsed = callContainer[6];\n /* If timeStart is undefined, then this is the first time that this call has been processed by tick().\r\n We assign timeStart now so that its value is as close to the real animation start time as possible.\r\n (Conversely, had timeStart been defined when this call was added to Velocity.State.calls, the delay\r\n between that time and now would cause the first few frames of the tween to be skipped since\r\n percentComplete is calculated relative to timeStart.) */\n\n /* Further, subtract 16ms (the approximate resolution of RAF) from the current time value so that the\r\n first tick iteration isn't wasted by animating at 0% tween completion, which would produce the\r\n same style value as the element's current value. */\n\n if (!timeStart) {\n timeStart = Velocity.State.calls[i][3] = timeCurrent - 16;\n }\n /* If a pause object is present, skip processing unless it has been set to resume */\n\n\n if (pauseObject) {\n if (pauseObject.resume === true) {\n /* Update the time start to accomodate the paused completion amount */\n timeStart = callContainer[3] = Math.round(timeCurrent - millisecondsEllapsed - 16);\n /* Remove pause object after processing */\n\n callContainer[5] = null;\n } else {\n continue;\n }\n }\n\n millisecondsEllapsed = callContainer[6] = timeCurrent - timeStart;\n /* The tween's completion percentage is relative to the tween's start time, not the tween's start value\r\n (which would result in unpredictable tween durations since JavaScript's timers are not particularly accurate).\r\n Accordingly, we ensure that percentComplete does not exceed 1. */\n\n var percentComplete = Math.min(millisecondsEllapsed / opts.duration, 1);\n /**********************\r\n Element Iteration\r\n **********************/\n\n /* For every call, iterate through each of the elements in its set. */\n\n for (var j = 0, callLength = call.length; j < callLength; j++) {\n var tweensContainer = call[j],\n element = tweensContainer.element;\n /* Check to see if this element has been deleted midway through the animation by checking for the\r\n continued existence of its data cache. If it's gone, or the element is currently paused, skip animating this element. */\n\n if (!Data(element)) {\n continue;\n }\n\n var transformPropertyExists = false;\n /**********************************\r\n Display & Visibility Toggling\r\n **********************************/\n\n /* If the display option is set to non-\"none\", set it upfront so that the element can become visible before tweening begins.\r\n (Otherwise, display's \"none\" value is set in completeCall() once the animation has completed.) */\n\n if (opts.display !== undefined && opts.display !== null && opts.display !== \"none\") {\n if (opts.display === \"flex\") {\n var flexValues = [\"-webkit-box\", \"-moz-box\", \"-ms-flexbox\", \"-webkit-flex\"];\n $.each(flexValues, function (i, flexValue) {\n CSS.setPropertyValue(element, \"display\", flexValue);\n });\n }\n\n CSS.setPropertyValue(element, \"display\", opts.display);\n }\n /* Same goes with the visibility option, but its \"none\" equivalent is \"hidden\". */\n\n\n if (opts.visibility !== undefined && opts.visibility !== \"hidden\") {\n CSS.setPropertyValue(element, \"visibility\", opts.visibility);\n }\n /************************\r\n Property Iteration\r\n ************************/\n\n /* For every element, iterate through each property. */\n\n\n for (var property in tweensContainer) {\n /* Note: In addition to property tween data, tweensContainer contains a reference to its associated element. */\n if (tweensContainer.hasOwnProperty(property) && property !== \"element\") {\n var tween = tweensContainer[property],\n currentValue,\n\n /* Easing can either be a pre-genereated function or a string that references a pre-registered easing\r\n on the Velocity.Easings object. In either case, return the appropriate easing *function*. */\n easing = Type.isString(tween.easing) ? Velocity.Easings[tween.easing] : tween.easing;\n /******************************\r\n Current Value Calculation\r\n ******************************/\n\n if (Type.isString(tween.pattern)) {\n var patternReplace = percentComplete === 1 ? function ($0, index, round) {\n var result = tween.endValue[index];\n return round ? Math.round(result) : result;\n } : function ($0, index, round) {\n var startValue = tween.startValue[index],\n tweenDelta = tween.endValue[index] - startValue,\n result = startValue + tweenDelta * easing(percentComplete, opts, tweenDelta);\n return round ? Math.round(result) : result;\n };\n currentValue = tween.pattern.replace(/{(\\d+)(!)?}/g, patternReplace);\n } else if (percentComplete === 1) {\n /* If this is the last tick pass (if we've reached 100% completion for this tween),\r\n ensure that currentValue is explicitly set to its target endValue so that it's not subjected to any rounding. */\n currentValue = tween.endValue;\n } else {\n /* Otherwise, calculate currentValue based on the current delta from startValue. */\n var tweenDelta = tween.endValue - tween.startValue;\n currentValue = tween.startValue + tweenDelta * easing(percentComplete, opts, tweenDelta);\n /* If no value change is occurring, don't proceed with DOM updating. */\n }\n\n if (!firstTick && currentValue === tween.currentValue) {\n continue;\n }\n\n tween.currentValue = currentValue;\n /* If we're tweening a fake 'tween' property in order to log transition values, update the one-per-call variable so that\r\n it can be passed into the progress callback. */\n\n if (property === \"tween\") {\n tweenDummyValue = currentValue;\n } else {\n /******************\r\n Hooks: Part I\r\n ******************/\n var hookRoot;\n /* For hooked properties, the newly-updated rootPropertyValueCache is cached onto the element so that it can be used\r\n for subsequent hooks in this call that are associated with the same root property. If we didn't cache the updated\r\n rootPropertyValue, each subsequent update to the root property in this tick pass would reset the previous hook's\r\n updates to rootPropertyValue prior to injection. A nice performance byproduct of rootPropertyValue caching is that\r\n subsequently chained animations using the same hookRoot but a different hook can use this cached rootPropertyValue. */\n\n if (CSS.Hooks.registered[property]) {\n hookRoot = CSS.Hooks.getRoot(property);\n var rootPropertyValueCache = Data(element).rootPropertyValueCache[hookRoot];\n\n if (rootPropertyValueCache) {\n tween.rootPropertyValue = rootPropertyValueCache;\n }\n }\n /*****************\r\n DOM Update\r\n *****************/\n\n /* setPropertyValue() returns an array of the property name and property value post any normalization that may have been performed. */\n\n /* Note: To solve an IE<=8 positioning bug, the unit type is dropped when setting a property value of 0. */\n\n\n var adjustedSetData = CSS.setPropertyValue(element,\n /* SET */\n property, tween.currentValue + (IE < 9 && parseFloat(currentValue) === 0 ? \"\" : tween.unitType), tween.rootPropertyValue, tween.scrollData);\n /*******************\r\n Hooks: Part II\r\n *******************/\n\n /* Now that we have the hook's updated rootPropertyValue (the post-processed value provided by adjustedSetData), cache it onto the element. */\n\n if (CSS.Hooks.registered[property]) {\n /* Since adjustedSetData contains normalized data ready for DOM updating, the rootPropertyValue needs to be re-extracted from its normalized form. ?? */\n if (CSS.Normalizations.registered[hookRoot]) {\n Data(element).rootPropertyValueCache[hookRoot] = CSS.Normalizations.registered[hookRoot](\"extract\", null, adjustedSetData[1]);\n } else {\n Data(element).rootPropertyValueCache[hookRoot] = adjustedSetData[1];\n }\n }\n /***************\r\n Transforms\r\n ***************/\n\n /* Flag whether a transform property is being animated so that flushTransformCache() can be triggered once this tick pass is complete. */\n\n\n if (adjustedSetData[0] === \"transform\") {\n transformPropertyExists = true;\n }\n }\n }\n }\n /****************\r\n mobileHA\r\n ****************/\n\n /* If mobileHA is enabled, set the translate3d transform to null to force hardware acceleration.\r\n It's safe to override this property since Velocity doesn't actually support its animation (hooks are used in its place). */\n\n\n if (opts.mobileHA) {\n /* Don't set the null transform hack if we've already done so. */\n if (Data(element).transformCache.translate3d === undefined) {\n /* All entries on the transformCache object are later concatenated into a single transform string via flushTransformCache(). */\n Data(element).transformCache.translate3d = \"(0px, 0px, 0px)\";\n transformPropertyExists = true;\n }\n }\n\n if (transformPropertyExists) {\n CSS.flushTransformCache(element);\n }\n }\n /* The non-\"none\" display value is only applied to an element once -- when its associated call is first ticked through.\r\n Accordingly, it's set to false so that it isn't re-processed by this call in the next tick. */\n\n\n if (opts.display !== undefined && opts.display !== \"none\") {\n Velocity.State.calls[i][2].display = false;\n }\n\n if (opts.visibility !== undefined && opts.visibility !== \"hidden\") {\n Velocity.State.calls[i][2].visibility = false;\n }\n /* Pass the elements and the timing data (percentComplete, msRemaining, timeStart, tweenDummyValue) into the progress callback. */\n\n\n if (opts.progress) {\n opts.progress.call(callContainer[1], callContainer[1], percentComplete, Math.max(0, timeStart + opts.duration - timeCurrent), timeStart, tweenDummyValue);\n }\n /* If this call has finished tweening, pass its index to completeCall() to handle call cleanup. */\n\n\n if (percentComplete === 1) {\n completeCall(i);\n }\n }\n }\n /* Note: completeCall() sets the isTicking flag to false when the last call on Velocity.State.calls has completed. */\n\n\n if (Velocity.State.isTicking) {\n ticker(tick);\n }\n }\n /**********************\r\n Call Completion\r\n **********************/\n\n /* Note: Unlike tick(), which processes all active calls at once, call completion is handled on a per-call basis. */\n\n\n function completeCall(callIndex, isStopped) {\n /* Ensure the call exists. */\n if (!Velocity.State.calls[callIndex]) {\n return false;\n }\n /* Pull the metadata from the call. */\n\n\n var call = Velocity.State.calls[callIndex][0],\n elements = Velocity.State.calls[callIndex][1],\n opts = Velocity.State.calls[callIndex][2],\n resolver = Velocity.State.calls[callIndex][4];\n var remainingCallsExist = false;\n /*************************\r\n Element Finalization\r\n *************************/\n\n for (var i = 0, callLength = call.length; i < callLength; i++) {\n var element = call[i].element;\n /* If the user set display to \"none\" (intending to hide the element), set it now that the animation has completed. */\n\n /* Note: display:none isn't set when calls are manually stopped (via Velocity(\"stop\"). */\n\n /* Note: Display gets ignored with \"reverse\" calls and infinite loops, since this behavior would be undesirable. */\n\n if (!isStopped && !opts.loop) {\n if (opts.display === \"none\") {\n CSS.setPropertyValue(element, \"display\", opts.display);\n }\n\n if (opts.visibility === \"hidden\") {\n CSS.setPropertyValue(element, \"visibility\", opts.visibility);\n }\n }\n /* If the element's queue is empty (if only the \"inprogress\" item is left at position 0) or if its queue is about to run\r\n a non-Velocity-initiated entry, turn off the isAnimating flag. A non-Velocity-initiatied queue entry's logic might alter\r\n an element's CSS values and thereby cause Velocity's cached value data to go stale. To detect if a queue entry was initiated by Velocity,\r\n we check for the existence of our special Velocity.queueEntryFlag declaration, which minifiers won't rename since the flag\r\n is assigned to jQuery's global $ object and thus exists out of Velocity's own scope. */\n\n\n var data = Data(element);\n\n if (opts.loop !== true && ($.queue(element)[1] === undefined || !/\\.velocityQueueEntryFlag/i.test($.queue(element)[1]))) {\n /* The element may have been deleted. Ensure that its data cache still exists before acting on it. */\n if (data) {\n data.isAnimating = false;\n /* Clear the element's rootPropertyValueCache, which will become stale. */\n\n data.rootPropertyValueCache = {};\n var transformHAPropertyExists = false;\n /* If any 3D transform subproperty is at its default value (regardless of unit type), remove it. */\n\n $.each(CSS.Lists.transforms3D, function (i, transformName) {\n var defaultValue = /^scale/.test(transformName) ? 1 : 0,\n currentValue = data.transformCache[transformName];\n\n if (data.transformCache[transformName] !== undefined && new RegExp(\"^\\\\(\" + defaultValue + \"[^.]\").test(currentValue)) {\n transformHAPropertyExists = true;\n delete data.transformCache[transformName];\n }\n });\n /* Mobile devices have hardware acceleration removed at the end of the animation in order to avoid hogging the GPU's memory. */\n\n if (opts.mobileHA) {\n transformHAPropertyExists = true;\n delete data.transformCache.translate3d;\n }\n /* Flush the subproperty removals to the DOM. */\n\n\n if (transformHAPropertyExists) {\n CSS.flushTransformCache(element);\n }\n /* Remove the \"velocity-animating\" indicator class. */\n\n\n CSS.Values.removeClass(element, \"velocity-animating\");\n }\n }\n /*********************\r\n Option: Complete\r\n *********************/\n\n /* Complete is fired once per call (not once per element) and is passed the full raw DOM element set as both its context and its first argument. */\n\n /* Note: Callbacks aren't fired when calls are manually stopped (via Velocity(\"stop\"). */\n\n\n if (!isStopped && opts.complete && !opts.loop && i === callLength - 1) {\n /* We throw callbacks in a setTimeout so that thrown errors don't halt the execution of Velocity itself. */\n try {\n opts.complete.call(elements, elements);\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 1);\n }\n }\n /**********************\r\n Promise Resolving\r\n **********************/\n\n /* Note: Infinite loops don't return promises. */\n\n\n if (resolver && opts.loop !== true) {\n resolver(elements);\n }\n /****************************\r\n Option: Loop (Infinite)\r\n ****************************/\n\n\n if (data && opts.loop === true && !isStopped) {\n /* If a rotateX/Y/Z property is being animated by 360 deg with loop:true, swap tween start/end values to enable\r\n continuous iterative rotation looping. (Otherise, the element would just rotate back and forth.) */\n $.each(data.tweensContainer, function (propertyName, tweenContainer) {\n if (/^rotate/.test(propertyName) && (parseFloat(tweenContainer.startValue) - parseFloat(tweenContainer.endValue)) % 360 === 0) {\n var oldStartValue = tweenContainer.startValue;\n tweenContainer.startValue = tweenContainer.endValue;\n tweenContainer.endValue = oldStartValue;\n }\n\n if (/^backgroundPosition/.test(propertyName) && parseFloat(tweenContainer.endValue) === 100 && tweenContainer.unitType === \"%\") {\n tweenContainer.endValue = 0;\n tweenContainer.startValue = 100;\n }\n });\n Velocity(element, \"reverse\", {\n loop: true,\n delay: opts.delay\n });\n }\n /***************\r\n Dequeueing\r\n ***************/\n\n /* Fire the next call in the queue so long as this call's queue wasn't set to false (to trigger a parallel animation),\r\n which would have already caused the next call to fire. Note: Even if the end of the animation queue has been reached,\r\n $.dequeue() must still be called in order to completely clear jQuery's animation queue. */\n\n\n if (opts.queue !== false) {\n $.dequeue(element, opts.queue);\n }\n }\n /************************\r\n Calls Array Cleanup\r\n ************************/\n\n /* Since this call is complete, set it to false so that the rAF tick skips it. This array is later compacted via compactSparseArray().\r\n (For performance reasons, the call is set to false instead of being deleted from the array: http://www.html5rocks.com/en/tutorials/speed/v8/) */\n\n\n Velocity.State.calls[callIndex] = false;\n /* Iterate through the calls array to determine if this was the final in-progress animation.\r\n If so, set a flag to end ticking and clear the calls array. */\n\n for (var j = 0, callsLength = Velocity.State.calls.length; j < callsLength; j++) {\n if (Velocity.State.calls[j] !== false) {\n remainingCallsExist = true;\n break;\n }\n }\n\n if (remainingCallsExist === false) {\n /* tick() will detect this flag upon its next iteration and subsequently turn itself off. */\n Velocity.State.isTicking = false;\n /* Clear the calls array so that its length is reset. */\n\n delete Velocity.State.calls;\n Velocity.State.calls = [];\n }\n }\n /******************\r\n Frameworks\r\n ******************/\n\n /* Both jQuery and Zepto allow their $.fn object to be extended to allow wrapped elements to be subjected to plugin calls.\r\n If either framework is loaded, register a \"velocity\" extension pointing to Velocity's core animate() method. Velocity\r\n also registers itself onto a global container (window.jQuery || window.Zepto || window) so that certain features are\r\n accessible beyond just a per-element scope. This master object contains an .animate() method, which is later assigned to $.fn\r\n (if jQuery or Zepto are present). Accordingly, Velocity can both act on wrapped DOM elements and stand alone for targeting raw DOM elements. */\n\n\n global.Velocity = Velocity;\n\n if (global !== window) {\n /* Assign the element function to Velocity's core animate() method. */\n global.fn.velocity = animate;\n /* Assign the object function's defaults to Velocity's global defaults object. */\n\n global.fn.velocity.defaults = Velocity.defaults;\n }\n /***********************\r\n Packaged Redirects\r\n ***********************/\n\n /* slideUp, slideDown */\n\n\n $.each([\"Down\", \"Up\"], function (i, direction) {\n Velocity.Redirects[\"slide\" + direction] = function (element, options, elementsIndex, elementsSize, elements, promiseData) {\n var opts = $.extend({}, options),\n begin = opts.begin,\n complete = opts.complete,\n inlineValues = {},\n computedValues = {\n height: \"\",\n marginTop: \"\",\n marginBottom: \"\",\n paddingTop: \"\",\n paddingBottom: \"\"\n };\n\n if (opts.display === undefined) {\n /* Show the element before slideDown begins and hide the element after slideUp completes. */\n\n /* Note: Inline elements cannot have dimensions animated, so they're reverted to inline-block. */\n opts.display = direction === \"Down\" ? Velocity.CSS.Values.getDisplayType(element) === \"inline\" ? \"inline-block\" : \"block\" : \"none\";\n }\n\n opts.begin = function () {\n /* If the user passed in a begin callback, fire it now. */\n if (elementsIndex === 0 && begin) {\n begin.call(elements, elements);\n }\n /* Cache the elements' original vertical dimensional property values so that we can animate back to them. */\n\n\n for (var property in computedValues) {\n if (!computedValues.hasOwnProperty(property)) {\n continue;\n }\n\n inlineValues[property] = element.style[property];\n /* For slideDown, use forcefeeding to animate all vertical properties from 0. For slideUp,\r\n use forcefeeding to start from computed values and animate down to 0. */\n\n var propertyValue = CSS.getPropertyValue(element, property);\n computedValues[property] = direction === \"Down\" ? [propertyValue, 0] : [0, propertyValue];\n }\n /* Force vertical overflow content to clip so that sliding works as expected. */\n\n\n inlineValues.overflow = element.style.overflow;\n element.style.overflow = \"hidden\";\n };\n\n opts.complete = function () {\n /* Reset element to its pre-slide inline values once its slide animation is complete. */\n for (var property in inlineValues) {\n if (inlineValues.hasOwnProperty(property)) {\n element.style[property] = inlineValues[property];\n }\n }\n /* If the user passed in a complete callback, fire it now. */\n\n\n if (elementsIndex === elementsSize - 1) {\n if (complete) {\n complete.call(elements, elements);\n }\n\n if (promiseData) {\n promiseData.resolver(elements);\n }\n }\n };\n\n Velocity(element, computedValues, opts);\n };\n });\n /* fadeIn, fadeOut */\n\n $.each([\"In\", \"Out\"], function (i, direction) {\n Velocity.Redirects[\"fade\" + direction] = function (element, options, elementsIndex, elementsSize, elements, promiseData) {\n var opts = $.extend({}, options),\n complete = opts.complete,\n propertiesMap = {\n opacity: direction === \"In\" ? 1 : 0\n };\n /* Since redirects are triggered individually for each element in the animated set, avoid repeatedly triggering\r\n callbacks by firing them only when the final element has been reached. */\n\n if (elementsIndex !== 0) {\n opts.begin = null;\n }\n\n if (elementsIndex !== elementsSize - 1) {\n opts.complete = null;\n } else {\n opts.complete = function () {\n if (complete) {\n complete.call(elements, elements);\n }\n\n if (promiseData) {\n promiseData.resolver(elements);\n }\n };\n }\n /* If a display was passed in, use it. Otherwise, default to \"none\" for fadeOut or the element-specific default for fadeIn. */\n\n /* Note: We allow users to pass in \"null\" to skip display setting altogether. */\n\n\n if (opts.display === undefined) {\n opts.display = direction === \"In\" ? \"auto\" : \"none\";\n }\n\n Velocity(this, propertiesMap, opts);\n };\n });\n return Velocity;\n }(window.jQuery || window.Zepto || window, window, window ? window.document : undefined);\n});\n/******************\r\n Known Issues\r\n ******************/\n\n/* The CSS spec mandates that the translateX/Y/Z transforms are %-relative to the element itself -- not its parent.\r\n Velocity, however, doesn't make this distinction. Thus, converting to or from the % unit with these subproperties\r\n will produce an inaccurate conversion value. The same issue exists with the cx/cy attributes of SVG circles and ellipses. */","// All bubbling events\n// SEE: https://developer.mozilla.org/en-US/docs/Web/Events\nvar wait = 200; // the number of milliseconds to wait\n\nexport default {\n DOMContentLoaded: {\n wait: wait\n },\n abort: {\n wait: wait\n },\n animationcancel: {\n wait: wait\n },\n animationend: {\n wait: wait\n },\n animationiteration: {\n wait: wait\n },\n animationstart: {\n wait: wait\n },\n auxclick: {\n wait: wait\n },\n change: {\n wait: wait\n },\n click: {\n wait: wait\n },\n compositionend: {\n wait: wait\n },\n compositionstart: {\n wait: wait\n },\n compositionupdate: {\n wait: wait\n },\n contextmenu: {\n wait: wait\n },\n copy: {\n wait: wait\n },\n cut: {\n wait: wait\n },\n dblclick: {\n wait: wait\n },\n drag: {\n wait: wait\n },\n dragend: {\n wait: wait\n },\n dragenter: {\n wait: wait\n },\n dragleave: {\n wait: wait\n },\n dragover: {\n wait: wait\n },\n dragstart: {\n wait: wait\n },\n drop: {\n wait: wait\n },\n error: {\n wait: wait\n },\n focusin: {\n wait: wait\n },\n focusout: {\n wait: wait\n },\n fullscreenchange: {\n wait: wait\n },\n fullscreenerror: {\n wait: wait\n },\n hashchange: {\n wait: wait\n },\n input: {\n wait: wait\n },\n keydown: {\n wait: wait\n },\n keyup: {\n wait: wait\n },\n mousedown: {\n wait: wait\n },\n mousemove: {\n wait: wait\n },\n mouseout: {\n wait: wait\n },\n mouseover: {\n wait: wait\n },\n mouseup: {\n wait: wait\n },\n paste: {\n wait: wait\n },\n pointercancel: {\n wait: wait\n },\n pointerdown: {\n wait: wait\n },\n pointerlockchange: {\n wait: wait\n },\n pointerlockerror: {\n wait: wait\n },\n pointermove: {\n wait: wait\n },\n pointerout: {\n wait: wait\n },\n pointerover: {\n wait: wait\n },\n pointerup: {\n wait: wait\n },\n popstate: {\n wait: wait\n },\n reset: {\n wait: wait\n },\n scroll: {\n wait: wait\n },\n select: {\n wait: wait\n },\n submit: {\n wait: wait\n },\n touchcancel: {\n wait: wait\n },\n touchend: {\n wait: wait\n },\n touchmove: {\n wait: wait\n },\n touchstart: {\n wait: wait\n },\n transitioncancel: {\n wait: wait\n },\n transitionend: {\n wait: wait\n },\n transitionrun: {\n wait: wait\n },\n transitionstart: {\n wait: wait\n },\n visibilitychange: {\n wait: wait\n },\n wheel: {\n wait: wait\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport events from './events';\nvar prefix = 'debounced';\nvar initializedEvents = {};\nexport var debounce = function debounce(fn) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var wait = options.wait;\n var timeoutId;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, wait);\n };\n};\n\nvar dispatch = function dispatch(event) {\n var bubbles = event.bubbles,\n cancelable = event.cancelable,\n composed = event.composed;\n var debouncedEvent = new CustomEvent(\"\".concat(prefix, \":\").concat(event.type), {\n bubbles: bubbles,\n cancelable: cancelable,\n composed: composed,\n detail: {\n originalEvent: event\n }\n });\n setTimeout(event.target.dispatchEvent(debouncedEvent));\n};\n\nexport var initializeEvent = function initializeEvent(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (initializedEvents[name]) return;\n initializedEvents[name] = options || {};\n var debouncedDispatch = debounce(dispatch, options);\n document.addEventListener(name, function (event) {\n return debouncedDispatch(event);\n });\n};\n\nvar initialize = function initialize() {\n var evts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : events;\n prefix = evts.prefix || prefix;\n delete evts.prefix;\n\n for (var _i2 = 0, _Object$entries = Object.entries(evts); _i2 < _Object$entries.length; _i2++) {\n var _ref3 = _Object$entries[_i2];\n\n var _ref2 = _slicedToArray(_ref3, 2);\n\n var name = _ref2[0];\n var options = _ref2[1];\n initializeEvent(name, options);\n }\n};\n\nexport default {\n debounce: debounce,\n events: events,\n initialize: initialize,\n initializeEvent: initializeEvent,\n initializedEvents: initializedEvents\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\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\n\nmodule.exports = g;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","module.exports = require(\"regenerator-runtime\");\n","/*!\n * ApexCharts v3.23.0\n * (c) 2018-2020 Juned Chhipa\n * Released under the MIT License.\n */\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction t(e) {\n return (t = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? function (t) {\n return _typeof(t);\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : _typeof(t);\n })(e);\n}\n\nfunction e(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n}\n\nfunction i(t, e) {\n for (var i = 0; i < e.length; i++) {\n var a = e[i];\n a.enumerable = a.enumerable || !1, a.configurable = !0, \"value\" in a && (a.writable = !0), Object.defineProperty(t, a.key, a);\n }\n}\n\nfunction a(t, e, a) {\n return e && i(t.prototype, e), a && i(t, a), t;\n}\n\nfunction s(t, e, i) {\n return e in t ? Object.defineProperty(t, e, {\n value: i,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = i, t;\n}\n\nfunction r(t, e) {\n var i = Object.keys(t);\n\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(t);\n e && (a = a.filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), i.push.apply(i, a);\n }\n\n return i;\n}\n\nfunction n(t) {\n for (var e = 1; e < arguments.length; e++) {\n var i = null != arguments[e] ? arguments[e] : {};\n e % 2 ? r(Object(i), !0).forEach(function (e) {\n s(t, e, i[e]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(i)) : r(Object(i)).forEach(function (e) {\n Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(i, e));\n });\n }\n\n return t;\n}\n\nfunction o(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), e && h(t, e);\n}\n\nfunction l(t) {\n return (l = Object.setPrototypeOf ? Object.getPrototypeOf : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n })(t);\n}\n\nfunction h(t, e) {\n return (h = Object.setPrototypeOf || function (t, e) {\n return t.__proto__ = e, t;\n })(t, e);\n}\n\nfunction c(t, e) {\n return !e || \"object\" != _typeof(e) && \"function\" != typeof e ? function (t) {\n if (void 0 === t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return t;\n }(t) : e;\n}\n\nfunction d(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var i,\n a = l(t);\n\n if (e) {\n var s = l(this).constructor;\n i = Reflect.construct(a, arguments, s);\n } else i = a.apply(this, arguments);\n\n return c(this, i);\n };\n}\n\nfunction g(t) {\n return function (t) {\n if (Array.isArray(t)) return u(t);\n }(t) || function (t) {\n if (\"undefined\" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t);\n }(t) || function (t, e) {\n if (!t) return;\n if (\"string\" == typeof t) return u(t, e);\n var i = Object.prototype.toString.call(t).slice(8, -1);\n \"Object\" === i && t.constructor && (i = t.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(t);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return u(t, e);\n }(t) || function () {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n}\n\nfunction u(t, e) {\n (null == e || e > t.length) && (e = t.length);\n\n for (var i = 0, a = new Array(e); i < e; i++) {\n a[i] = t[i];\n }\n\n return a;\n}\n\nvar f = function () {\n function i() {\n e(this, i);\n }\n\n return a(i, [{\n key: \"shadeRGBColor\",\n value: function value(t, e) {\n var i = e.split(\",\"),\n a = t < 0 ? 0 : 255,\n s = t < 0 ? -1 * t : t,\n r = parseInt(i[0].slice(4), 10),\n n = parseInt(i[1], 10),\n o = parseInt(i[2], 10);\n return \"rgb(\" + (Math.round((a - r) * s) + r) + \",\" + (Math.round((a - n) * s) + n) + \",\" + (Math.round((a - o) * s) + o) + \")\";\n }\n }, {\n key: \"shadeHexColor\",\n value: function value(t, e) {\n var i = parseInt(e.slice(1), 16),\n a = t < 0 ? 0 : 255,\n s = t < 0 ? -1 * t : t,\n r = i >> 16,\n n = i >> 8 & 255,\n o = 255 & i;\n return \"#\" + (16777216 + 65536 * (Math.round((a - r) * s) + r) + 256 * (Math.round((a - n) * s) + n) + (Math.round((a - o) * s) + o)).toString(16).slice(1);\n }\n }, {\n key: \"shadeColor\",\n value: function value(t, e) {\n return i.isColorHex(e) ? this.shadeHexColor(t, e) : this.shadeRGBColor(t, e);\n }\n }], [{\n key: \"bind\",\n value: function value(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n }\n }, {\n key: \"isObject\",\n value: function value(e) {\n return e && \"object\" === t(e) && !Array.isArray(e) && null != e;\n }\n }, {\n key: \"listToArray\",\n value: function value(t) {\n var e,\n i = [];\n\n for (e = 0; e < t.length; e++) {\n i[e] = t[e];\n }\n\n return i;\n }\n }, {\n key: \"extend\",\n value: function value(t, e) {\n var i = this;\n \"function\" != typeof Object.assign && (Object.assign = function (t) {\n if (null == t) throw new TypeError(\"Cannot convert undefined or null to object\");\n\n for (var e = Object(t), i = 1; i < arguments.length; i++) {\n var a = arguments[i];\n if (null != a) for (var s in a) {\n a.hasOwnProperty(s) && (e[s] = a[s]);\n }\n }\n\n return e;\n });\n var a = Object.assign({}, t);\n return this.isObject(t) && this.isObject(e) && Object.keys(e).forEach(function (r) {\n i.isObject(e[r]) && r in t ? a[r] = i.extend(t[r], e[r]) : Object.assign(a, s({}, r, e[r]));\n }), a;\n }\n }, {\n key: \"extendArray\",\n value: function value(t, e) {\n var a = [];\n return t.map(function (t) {\n a.push(i.extend(e, t));\n }), t = a;\n }\n }, {\n key: \"monthMod\",\n value: function value(t) {\n return t % 12;\n }\n }, {\n key: \"clone\",\n value: function value(e) {\n if (\"[object Array]\" === Object.prototype.toString.call(e)) {\n for (var i = [], a = 0; a < e.length; a++) {\n i[a] = this.clone(e[a]);\n }\n\n return i;\n }\n\n if (\"[object Null]\" === Object.prototype.toString.call(e)) return null;\n if (\"[object Date]\" === Object.prototype.toString.call(e)) return e;\n\n if (\"object\" === t(e)) {\n var s = {};\n\n for (var r in e) {\n e.hasOwnProperty(r) && (s[r] = this.clone(e[r]));\n }\n\n return s;\n }\n\n return e;\n }\n }, {\n key: \"log10\",\n value: function value(t) {\n return Math.log(t) / Math.LN10;\n }\n }, {\n key: \"roundToBase10\",\n value: function value(t) {\n return Math.pow(10, Math.floor(Math.log10(t)));\n }\n }, {\n key: \"roundToBase\",\n value: function value(t, e) {\n return Math.pow(e, Math.floor(Math.log(t) / Math.log(e)));\n }\n }, {\n key: \"parseNumber\",\n value: function value(t) {\n return null === t ? t : parseFloat(t);\n }\n }, {\n key: \"randomId\",\n value: function value() {\n return (Math.random() + 1).toString(36).substring(4);\n }\n }, {\n key: \"noExponents\",\n value: function value(t) {\n var e = String(t).split(/[eE]/);\n if (1 === e.length) return e[0];\n var i = \"\",\n a = t < 0 ? \"-\" : \"\",\n s = e[0].replace(\".\", \"\"),\n r = Number(e[1]) + 1;\n\n if (r < 0) {\n for (i = a + \"0.\"; r++;) {\n i += \"0\";\n }\n\n return i + s.replace(/^-/, \"\");\n }\n\n for (r -= s.length; r--;) {\n i += \"0\";\n }\n\n return s + i;\n }\n }, {\n key: \"getDimensions\",\n value: function value(t) {\n var e = getComputedStyle(t, null),\n i = parseFloat(e.height);\n return [parseFloat(e.width), i];\n }\n }, {\n key: \"getBoundingClientRect\",\n value: function value(t) {\n var e = t.getBoundingClientRect();\n return {\n top: e.top,\n right: e.right,\n bottom: e.bottom,\n left: e.left,\n width: t.clientWidth,\n height: t.clientHeight,\n x: e.left,\n y: e.top\n };\n }\n }, {\n key: \"getLargestStringFromArr\",\n value: function value(t) {\n return t.reduce(function (t, e) {\n return Array.isArray(e) && (e = e.reduce(function (t, e) {\n return t.length > e.length ? t : e;\n })), t.length > e.length ? t : e;\n }, 0);\n }\n }, {\n key: \"hexToRgba\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"#999999\",\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .6;\n \"#\" !== t.substring(0, 1) && (t = \"#999999\");\n var i = t.replace(\"#\", \"\");\n i = i.match(new RegExp(\"(.{\" + i.length / 3 + \"})\", \"g\"));\n\n for (var a = 0; a < i.length; a++) {\n i[a] = parseInt(1 === i[a].length ? i[a] + i[a] : i[a], 16);\n }\n\n return void 0 !== e && i.push(e), \"rgba(\" + i.join(\",\") + \")\";\n }\n }, {\n key: \"getOpacityFromRGBA\",\n value: function value(t) {\n return parseFloat(t.replace(/^.*,(.+)\\)/, \"$1\"));\n }\n }, {\n key: \"rgb2hex\",\n value: function value(t) {\n return (t = t.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i)) && 4 === t.length ? \"#\" + (\"0\" + parseInt(t[1], 10).toString(16)).slice(-2) + (\"0\" + parseInt(t[2], 10).toString(16)).slice(-2) + (\"0\" + parseInt(t[3], 10).toString(16)).slice(-2) : \"\";\n }\n }, {\n key: \"isColorHex\",\n value: function value(t) {\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(t);\n }\n }, {\n key: \"polarToCartesian\",\n value: function value(t, e, i, a) {\n var s = (a - 90) * Math.PI / 180;\n return {\n x: t + i * Math.cos(s),\n y: e + i * Math.sin(s)\n };\n }\n }, {\n key: \"escapeString\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"x\",\n i = t.toString().slice();\n return i = i.replace(/[` ~!@#$%^&*()_|+\\-=?;:'\",.<>{}[\\]\\\\/]/gi, e);\n }\n }, {\n key: \"negToZero\",\n value: function value(t) {\n return t < 0 ? 0 : t;\n }\n }, {\n key: \"moveIndexInArray\",\n value: function value(t, e, i) {\n if (i >= t.length) for (var a = i - t.length + 1; a--;) {\n t.push(void 0);\n }\n return t.splice(i, 0, t.splice(e, 1)[0]), t;\n }\n }, {\n key: \"extractNumber\",\n value: function value(t) {\n return parseFloat(t.replace(/[^\\d.]*/g, \"\"));\n }\n }, {\n key: \"findAncestor\",\n value: function value(t, e) {\n for (; (t = t.parentElement) && !t.classList.contains(e);) {\n ;\n }\n\n return t;\n }\n }, {\n key: \"setELstyles\",\n value: function value(t, e) {\n for (var i in e) {\n e.hasOwnProperty(i) && (t.style.key = e[i]);\n }\n }\n }, {\n key: \"isNumber\",\n value: function value(t) {\n return !isNaN(t) && parseFloat(Number(t)) === t && !isNaN(parseInt(t, 10));\n }\n }, {\n key: \"isFloat\",\n value: function value(t) {\n return Number(t) === t && t % 1 != 0;\n }\n }, {\n key: \"isSafari\",\n value: function value() {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n }, {\n key: \"isFirefox\",\n value: function value() {\n return navigator.userAgent.toLowerCase().indexOf(\"firefox\") > -1;\n }\n }, {\n key: \"isIE11\",\n value: function value() {\n if (-1 !== window.navigator.userAgent.indexOf(\"MSIE\") || window.navigator.appVersion.indexOf(\"Trident/\") > -1) return !0;\n }\n }, {\n key: \"isIE\",\n value: function value() {\n var t = window.navigator.userAgent,\n e = t.indexOf(\"MSIE \");\n if (e > 0) return parseInt(t.substring(e + 5, t.indexOf(\".\", e)), 10);\n\n if (t.indexOf(\"Trident/\") > 0) {\n var i = t.indexOf(\"rv:\");\n return parseInt(t.substring(i + 3, t.indexOf(\".\", i)), 10);\n }\n\n var a = t.indexOf(\"Edge/\");\n return a > 0 && parseInt(t.substring(a + 5, t.indexOf(\".\", a)), 10);\n }\n }]), i;\n}(),\n p = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"getDefaultFilter\",\n value: function value(t, e) {\n var i = this.w;\n t.unfilter(!0), new window.SVG.Filter().size(\"120%\", \"180%\", \"-5%\", \"-40%\"), \"none\" !== i.config.states.normal.filter ? this.applyFilter(t, e, i.config.states.normal.filter.type, i.config.states.normal.filter.value) : i.config.chart.dropShadow.enabled && this.dropShadow(t, i.config.chart.dropShadow, e);\n }\n }, {\n key: \"addNormalFilter\",\n value: function value(t, e) {\n var i = this.w;\n i.config.chart.dropShadow.enabled && !t.node.classList.contains(\"apexcharts-marker\") && this.dropShadow(t, i.config.chart.dropShadow, e);\n }\n }, {\n key: \"addLightenFilter\",\n value: function value(t, e, i) {\n var a = this,\n s = this.w,\n r = i.intensity;\n t.unfilter(!0);\n new window.SVG.Filter();\n t.filter(function (t) {\n var i = s.config.chart.dropShadow;\n (i.enabled ? a.addShadow(t, e, i) : t).componentTransfer({\n rgb: {\n type: \"linear\",\n slope: 1.5,\n intercept: r\n }\n });\n }), t.filterer.node.setAttribute(\"filterUnits\", \"userSpaceOnUse\"), this._scaleFilterSize(t.filterer.node);\n }\n }, {\n key: \"addDarkenFilter\",\n value: function value(t, e, i) {\n var a = this,\n s = this.w,\n r = i.intensity;\n t.unfilter(!0);\n new window.SVG.Filter();\n t.filter(function (t) {\n var i = s.config.chart.dropShadow;\n (i.enabled ? a.addShadow(t, e, i) : t).componentTransfer({\n rgb: {\n type: \"linear\",\n slope: r\n }\n });\n }), t.filterer.node.setAttribute(\"filterUnits\", \"userSpaceOnUse\"), this._scaleFilterSize(t.filterer.node);\n }\n }, {\n key: \"applyFilter\",\n value: function value(t, e, i) {\n var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : .5;\n\n switch (i) {\n case \"none\":\n this.addNormalFilter(t, e);\n break;\n\n case \"lighten\":\n this.addLightenFilter(t, e, {\n intensity: a\n });\n break;\n\n case \"darken\":\n this.addDarkenFilter(t, e, {\n intensity: a\n });\n }\n }\n }, {\n key: \"addShadow\",\n value: function value(t, e, i) {\n var a = i.blur,\n s = i.top,\n r = i.left,\n n = i.color,\n o = i.opacity,\n l = t.flood(Array.isArray(n) ? n[e] : n, o).composite(t.sourceAlpha, \"in\").offset(r, s).gaussianBlur(a).merge(t.source);\n return t.blend(t.source, l);\n }\n }, {\n key: \"dropShadow\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,\n a = e.top,\n s = e.left,\n r = e.blur,\n n = e.color,\n o = e.opacity,\n l = e.noUserSpaceOnUse,\n h = this.w;\n return t.unfilter(!0), f.isIE() && \"radialBar\" === h.config.chart.type || (n = Array.isArray(n) ? n[i] : n, t.filter(function (t) {\n var e = null;\n e = f.isSafari() || f.isFirefox() || f.isIE() ? t.flood(n, o).composite(t.sourceAlpha, \"in\").offset(s, a).gaussianBlur(r) : t.flood(n, o).composite(t.sourceAlpha, \"in\").offset(s, a).gaussianBlur(r).merge(t.source), t.blend(t.source, e);\n }), l || t.filterer.node.setAttribute(\"filterUnits\", \"userSpaceOnUse\"), this._scaleFilterSize(t.filterer.node)), t;\n }\n }, {\n key: \"setSelectionFilter\",\n value: function value(t, e, i) {\n var a = this.w;\n\n if (void 0 !== a.globals.selectedDataPoints[e] && a.globals.selectedDataPoints[e].indexOf(i) > -1) {\n t.node.setAttribute(\"selected\", !0);\n var s = a.config.states.active.filter;\n \"none\" !== s && this.applyFilter(t, e, s.type, s.value);\n }\n }\n }, {\n key: \"_scaleFilterSize\",\n value: function value(t) {\n !function (e) {\n for (var i in e) {\n e.hasOwnProperty(i) && t.setAttribute(i, e[i]);\n }\n }({\n width: \"200%\",\n height: \"200%\",\n x: \"-50%\",\n y: \"-50%\"\n });\n }\n }]), t;\n}(),\n x = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.setEasingFunctions();\n }\n\n return a(t, [{\n key: \"setEasingFunctions\",\n value: function value() {\n var t;\n\n if (!this.w.globals.easing) {\n switch (this.w.config.chart.animations.easing) {\n case \"linear\":\n t = \"-\";\n break;\n\n case \"easein\":\n t = \"<\";\n break;\n\n case \"easeout\":\n t = \">\";\n break;\n\n case \"easeinout\":\n t = \"<>\";\n break;\n\n case \"swing\":\n t = function t(_t) {\n var e = 1.70158;\n return (_t -= 1) * _t * ((e + 1) * _t + e) + 1;\n };\n\n break;\n\n case \"bounce\":\n t = function t(_t2) {\n return _t2 < 1 / 2.75 ? 7.5625 * _t2 * _t2 : _t2 < 2 / 2.75 ? 7.5625 * (_t2 -= 1.5 / 2.75) * _t2 + .75 : _t2 < 2.5 / 2.75 ? 7.5625 * (_t2 -= 2.25 / 2.75) * _t2 + .9375 : 7.5625 * (_t2 -= 2.625 / 2.75) * _t2 + .984375;\n };\n\n break;\n\n case \"elastic\":\n t = function t(_t3) {\n return _t3 === !!_t3 ? _t3 : Math.pow(2, -10 * _t3) * Math.sin((_t3 - .075) * (2 * Math.PI) / .3) + 1;\n };\n\n break;\n\n default:\n t = \"<>\";\n }\n\n this.w.globals.easing = t;\n }\n }\n }, {\n key: \"animateLine\",\n value: function value(t, e, i, a) {\n t.attr(e).animate(a).attr(i);\n }\n }, {\n key: \"animateCircleRadius\",\n value: function value(t, e, i, a, s, r) {\n e || (e = 0), t.attr({\n r: e\n }).animate(a, s).attr({\n r: i\n }).afterAll(function () {\n r();\n });\n }\n }, {\n key: \"animateCircle\",\n value: function value(t, e, i, a, s) {\n t.attr({\n r: e.r,\n cx: e.cx,\n cy: e.cy\n }).animate(a, s).attr({\n r: i.r,\n cx: i.cx,\n cy: i.cy\n });\n }\n }, {\n key: \"animateRect\",\n value: function value(t, e, i, a, s) {\n t.attr(e).animate(a).attr(i).afterAll(function () {\n return s();\n });\n }\n }, {\n key: \"animatePathsGradually\",\n value: function value(t) {\n var e = t.el,\n i = t.realIndex,\n a = t.j,\n s = t.fill,\n r = t.pathFrom,\n n = t.pathTo,\n o = t.speed,\n l = t.delay,\n h = this.w,\n c = 0;\n h.config.chart.animations.animateGradually.enabled && (c = h.config.chart.animations.animateGradually.delay), h.config.chart.animations.dynamicAnimation.enabled && h.globals.dataChanged && \"bar\" !== h.config.chart.type && (c = 0), this.morphSVG(e, i, a, \"line\" !== h.config.chart.type || h.globals.comboCharts ? s : \"stroke\", r, n, o, l * c);\n }\n }, {\n key: \"showDelayedElements\",\n value: function value() {\n this.w.globals.delayedElements.forEach(function (t) {\n t.el.classList.remove(\"apexcharts-element-hidden\");\n });\n }\n }, {\n key: \"animationCompleted\",\n value: function value(t) {\n var e = this.w;\n e.globals.animationEnded || (e.globals.animationEnded = !0, this.showDelayedElements(), \"function\" == typeof e.config.chart.events.animationEnd && e.config.chart.events.animationEnd(this.ctx, {\n el: t,\n w: e\n }));\n }\n }, {\n key: \"morphSVG\",\n value: function value(t, e, i, a, s, r, n, o) {\n var l = this,\n h = this.w;\n s || (s = t.attr(\"pathFrom\")), r || (r = t.attr(\"pathTo\"));\n\n var c = function c(t) {\n return \"radar\" === h.config.chart.type && (n = 1), \"M 0 \".concat(h.globals.gridHeight);\n };\n\n (!s || s.indexOf(\"undefined\") > -1 || s.indexOf(\"NaN\") > -1) && (s = c()), (!r || r.indexOf(\"undefined\") > -1 || r.indexOf(\"NaN\") > -1) && (r = c()), h.globals.shouldAnimate || (n = 1), t.plot(s).animate(1, h.globals.easing, o).plot(s).animate(n, h.globals.easing, o).plot(r).afterAll(function () {\n f.isNumber(i) ? i === h.globals.series[h.globals.maxValsInArrayIndex].length - 2 && h.globals.shouldAnimate && l.animationCompleted(t) : \"none\" !== a && h.globals.shouldAnimate && (!h.globals.comboCharts && e === h.globals.series.length - 1 || h.globals.comboCharts) && l.animationCompleted(t), l.showDelayedElements();\n });\n }\n }]), t;\n}(),\n b = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"drawLine\",\n value: function value(t, e, i, a) {\n var s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : \"#a8a8a8\",\n r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0,\n n = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null,\n o = this.w,\n l = o.globals.dom.Paper.line().attr({\n x1: t,\n y1: e,\n x2: i,\n y2: a,\n stroke: s,\n \"stroke-dasharray\": r,\n \"stroke-width\": n\n });\n return l;\n }\n }, {\n key: \"drawRect\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,\n a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,\n s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0,\n r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : \"#fefefe\",\n n = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 1,\n o = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null,\n l = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : null,\n h = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0,\n c = this.w,\n d = c.globals.dom.Paper.rect();\n return d.attr({\n x: t,\n y: e,\n width: i > 0 ? i : 0,\n height: a > 0 ? a : 0,\n rx: s,\n ry: s,\n opacity: n,\n \"stroke-width\": null !== o ? o : 0,\n stroke: null !== l ? l : \"none\",\n \"stroke-dasharray\": h\n }), d.node.setAttribute(\"fill\", r), d;\n }\n }, {\n key: \"drawPolygon\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"#e1e1e1\",\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1,\n a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : \"none\",\n s = this.w,\n r = s.globals.dom.Paper.polygon(t).attr({\n fill: a,\n stroke: e,\n \"stroke-width\": i\n });\n return r;\n }\n }, {\n key: \"drawCircle\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,\n i = this.w,\n a = i.globals.dom.Paper.circle(2 * t);\n return null !== e && a.attr(e), a;\n }\n }, {\n key: \"drawPath\",\n value: function value(t) {\n var e = t.d,\n i = void 0 === e ? \"\" : e,\n a = t.stroke,\n s = void 0 === a ? \"#a8a8a8\" : a,\n r = t.strokeWidth,\n n = void 0 === r ? 1 : r,\n o = t.fill,\n l = t.fillOpacity,\n h = void 0 === l ? 1 : l,\n c = t.strokeOpacity,\n d = void 0 === c ? 1 : c,\n g = t.classes,\n u = t.strokeLinecap,\n f = void 0 === u ? null : u,\n p = t.strokeDashArray,\n x = void 0 === p ? 0 : p,\n b = this.w;\n return null === f && (f = b.config.stroke.lineCap), (i.indexOf(\"undefined\") > -1 || i.indexOf(\"NaN\") > -1) && (i = \"M 0 \".concat(b.globals.gridHeight)), b.globals.dom.Paper.path(i).attr({\n fill: o,\n \"fill-opacity\": h,\n stroke: s,\n \"stroke-opacity\": d,\n \"stroke-linecap\": f,\n \"stroke-width\": n,\n \"stroke-dasharray\": x,\n class: g\n });\n }\n }, {\n key: \"group\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,\n e = this.w,\n i = e.globals.dom.Paper.group();\n return null !== t && i.attr(t), i;\n }\n }, {\n key: \"move\",\n value: function value(t, e) {\n var i = [\"M\", t, e].join(\" \");\n return i;\n }\n }, {\n key: \"line\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null,\n a = null;\n return null === i ? a = [\"L\", t, e].join(\" \") : \"H\" === i ? a = [\"H\", t].join(\" \") : \"V\" === i && (a = [\"V\", e].join(\" \")), a;\n }\n }, {\n key: \"curve\",\n value: function value(t, e, i, a, s, r) {\n var n = [\"C\", t, e, i, a, s, r].join(\" \");\n return n;\n }\n }, {\n key: \"quadraticCurve\",\n value: function value(t, e, i, a) {\n return [\"Q\", t, e, i, a].join(\" \");\n }\n }, {\n key: \"arc\",\n value: function value(t, e, i, a, s, r, n) {\n var o = arguments.length > 7 && void 0 !== arguments[7] && arguments[7],\n l = \"A\";\n o && (l = \"a\");\n var h = [l, t, e, i, a, s, r, n].join(\" \");\n return h;\n }\n }, {\n key: \"renderPaths\",\n value: function value(t) {\n var e,\n i = t.j,\n a = t.realIndex,\n s = t.pathFrom,\n r = t.pathTo,\n o = t.stroke,\n l = t.strokeWidth,\n h = t.strokeLinecap,\n c = t.fill,\n d = t.animationDelay,\n g = t.initialSpeed,\n u = t.dataChangeSpeed,\n f = t.className,\n b = t.shouldClipToGrid,\n m = void 0 === b || b,\n v = t.bindEventsOnPaths,\n y = void 0 === v || v,\n w = t.drawShadow,\n k = void 0 === w || w,\n A = this.w,\n S = new p(this.ctx),\n C = new x(this.ctx),\n L = this.w.config.chart.animations.enabled,\n P = L && this.w.config.chart.animations.dynamicAnimation.enabled,\n T = !!(L && !A.globals.resized || P && A.globals.dataChanged && A.globals.shouldAnimate);\n T ? e = s : (e = r, A.globals.animationEnded = !0);\n var z = A.config.stroke.dashArray,\n I = 0;\n I = Array.isArray(z) ? z[a] : A.config.stroke.dashArray;\n var M = this.drawPath({\n d: e,\n stroke: o,\n strokeWidth: l,\n fill: c,\n fillOpacity: 1,\n classes: f,\n strokeLinecap: h,\n strokeDashArray: I\n });\n if (M.attr(\"index\", a), m && M.attr({\n \"clip-path\": \"url(#gridRectMask\".concat(A.globals.cuid, \")\")\n }), \"none\" !== A.config.states.normal.filter.type) S.getDefaultFilter(M, a);else if (A.config.chart.dropShadow.enabled && k && (!A.config.chart.dropShadow.enabledOnSeries || A.config.chart.dropShadow.enabledOnSeries && -1 !== A.config.chart.dropShadow.enabledOnSeries.indexOf(a))) {\n var E = A.config.chart.dropShadow;\n S.dropShadow(M, E, a);\n }\n y && (M.node.addEventListener(\"mouseenter\", this.pathMouseEnter.bind(this, M)), M.node.addEventListener(\"mouseleave\", this.pathMouseLeave.bind(this, M)), M.node.addEventListener(\"mousedown\", this.pathMouseDown.bind(this, M))), M.attr({\n pathTo: r,\n pathFrom: s\n });\n var X = {\n el: M,\n j: i,\n realIndex: a,\n pathFrom: s,\n pathTo: r,\n fill: c,\n strokeWidth: l,\n delay: d\n };\n return !L || A.globals.resized || A.globals.dataChanged ? !A.globals.resized && A.globals.dataChanged || C.showDelayedElements() : C.animatePathsGradually(n(n({}, X), {}, {\n speed: g\n })), A.globals.dataChanged && P && T && C.animatePathsGradually(n(n({}, X), {}, {\n speed: u\n })), M;\n }\n }, {\n key: \"drawPattern\",\n value: function value(t, e, i) {\n var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : \"#a8a8a8\",\n s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0,\n r = this.w,\n n = r.globals.dom.Paper.pattern(e, i, function (r) {\n \"horizontalLines\" === t ? r.line(0, 0, i, 0).stroke({\n color: a,\n width: s + 1\n }) : \"verticalLines\" === t ? r.line(0, 0, 0, e).stroke({\n color: a,\n width: s + 1\n }) : \"slantedLines\" === t ? r.line(0, 0, e, i).stroke({\n color: a,\n width: s\n }) : \"squares\" === t ? r.rect(e, i).fill(\"none\").stroke({\n color: a,\n width: s\n }) : \"circles\" === t && r.circle(e).fill(\"none\").stroke({\n color: a,\n width: s\n });\n });\n return n;\n }\n }, {\n key: \"drawGradient\",\n value: function value(t, e, i, a, s) {\n var r,\n n = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null,\n o = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null,\n l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null,\n h = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0,\n c = this.w;\n e.length < 9 && 0 === e.indexOf(\"#\") && (e = f.hexToRgba(e, a)), i.length < 9 && 0 === i.indexOf(\"#\") && (i = f.hexToRgba(i, s));\n var d = 0,\n g = 1,\n u = 1,\n p = null;\n null !== o && (d = void 0 !== o[0] ? o[0] / 100 : 0, g = void 0 !== o[1] ? o[1] / 100 : 1, u = void 0 !== o[2] ? o[2] / 100 : 1, p = void 0 !== o[3] ? o[3] / 100 : null);\n var x = !(\"donut\" !== c.config.chart.type && \"pie\" !== c.config.chart.type && \"polarArea\" !== c.config.chart.type && \"bubble\" !== c.config.chart.type);\n\n if (r = null === l || 0 === l.length ? c.globals.dom.Paper.gradient(x ? \"radial\" : \"linear\", function (t) {\n t.at(d, e, a), t.at(g, i, s), t.at(u, i, s), null !== p && t.at(p, e, a);\n }) : c.globals.dom.Paper.gradient(x ? \"radial\" : \"linear\", function (t) {\n (Array.isArray(l[h]) ? l[h] : l).forEach(function (e) {\n t.at(e.offset / 100, e.color, e.opacity);\n });\n }), x) {\n var b = c.globals.gridWidth / 2,\n m = c.globals.gridHeight / 2;\n \"bubble\" !== c.config.chart.type ? r.attr({\n gradientUnits: \"userSpaceOnUse\",\n cx: b,\n cy: m,\n r: n\n }) : r.attr({\n cx: .5,\n cy: .5,\n r: .8,\n fx: .2,\n fy: .2\n });\n } else \"vertical\" === t ? r.from(0, 0).to(0, 1) : \"diagonal\" === t ? r.from(0, 0).to(1, 1) : \"horizontal\" === t ? r.from(0, 1).to(1, 1) : \"diagonal2\" === t && r.from(1, 0).to(0, 1);\n\n return r;\n }\n }, {\n key: \"drawText\",\n value: function value(t) {\n var e,\n i = t.x,\n a = t.y,\n s = t.text,\n r = t.textAnchor,\n n = t.fontSize,\n o = t.fontFamily,\n l = t.fontWeight,\n h = t.foreColor,\n c = t.opacity,\n d = t.cssClass,\n g = void 0 === d ? \"\" : d,\n u = t.isPlainText,\n f = void 0 === u || u,\n p = this.w;\n return void 0 === s && (s = \"\"), r || (r = \"start\"), h && h.length || (h = p.config.chart.foreColor), o = o || p.config.chart.fontFamily, l = l || \"regular\", (e = Array.isArray(s) ? p.globals.dom.Paper.text(function (t) {\n for (var e = 0; e < s.length; e++) {\n 0 === e ? t.tspan(s[e]) : t.tspan(s[e]).newLine();\n }\n }) : f ? p.globals.dom.Paper.plain(s) : p.globals.dom.Paper.text(function (t) {\n return t.tspan(s);\n })).attr({\n x: i,\n y: a,\n \"text-anchor\": r,\n \"dominant-baseline\": \"auto\",\n \"font-size\": n,\n \"font-family\": o,\n \"font-weight\": l,\n fill: h,\n class: \"apexcharts-text \" + g\n }), e.node.style.fontFamily = o, e.node.style.opacity = c, e;\n }\n }, {\n key: \"drawMarker\",\n value: function value(t, e, i) {\n t = t || 0;\n var a = i.pSize || 0,\n s = null;\n\n if (\"square\" === i.shape) {\n var r = void 0 === i.pRadius ? a / 2 : i.pRadius;\n null !== e && a || (a = 0, r = 0);\n var n = 1.2 * a + r,\n o = this.drawRect(n, n, n, n, r);\n o.attr({\n x: t - n / 2,\n y: e - n / 2,\n cx: t,\n cy: e,\n class: i.class ? i.class : \"\",\n fill: i.pointFillColor,\n \"fill-opacity\": i.pointFillOpacity ? i.pointFillOpacity : 1,\n stroke: i.pointStrokeColor,\n \"stroke-width\": i.pWidth ? i.pWidth : 0,\n \"stroke-opacity\": i.pointStrokeOpacity ? i.pointStrokeOpacity : 1\n }), s = o;\n } else \"circle\" !== i.shape && i.shape || (f.isNumber(e) || (a = 0, e = 0), s = this.drawCircle(a, {\n cx: t,\n cy: e,\n class: i.class ? i.class : \"\",\n stroke: i.pointStrokeColor,\n fill: i.pointFillColor,\n \"fill-opacity\": i.pointFillOpacity ? i.pointFillOpacity : 1,\n \"stroke-width\": i.pWidth ? i.pWidth : 0,\n \"stroke-opacity\": i.pointStrokeOpacity ? i.pointStrokeOpacity : 1\n }));\n\n return s;\n }\n }, {\n key: \"pathMouseEnter\",\n value: function value(t, e) {\n var i = this.w,\n a = new p(this.ctx),\n s = parseInt(t.node.getAttribute(\"index\"), 10),\n r = parseInt(t.node.getAttribute(\"j\"), 10);\n\n if (\"function\" == typeof i.config.chart.events.dataPointMouseEnter && i.config.chart.events.dataPointMouseEnter(e, this.ctx, {\n seriesIndex: s,\n dataPointIndex: r,\n w: i\n }), this.ctx.events.fireEvent(\"dataPointMouseEnter\", [e, this.ctx, {\n seriesIndex: s,\n dataPointIndex: r,\n w: i\n }]), (\"none\" === i.config.states.active.filter.type || \"true\" !== t.node.getAttribute(\"selected\")) && \"none\" !== i.config.states.hover.filter.type && \"none\" !== i.config.states.active.filter.type && !i.globals.isTouchDevice) {\n var n = i.config.states.hover.filter;\n a.applyFilter(t, s, n.type, n.value);\n }\n }\n }, {\n key: \"pathMouseLeave\",\n value: function value(t, e) {\n var i = this.w,\n a = new p(this.ctx),\n s = parseInt(t.node.getAttribute(\"index\"), 10),\n r = parseInt(t.node.getAttribute(\"j\"), 10);\n \"function\" == typeof i.config.chart.events.dataPointMouseLeave && i.config.chart.events.dataPointMouseLeave(e, this.ctx, {\n seriesIndex: s,\n dataPointIndex: r,\n w: i\n }), this.ctx.events.fireEvent(\"dataPointMouseLeave\", [e, this.ctx, {\n seriesIndex: s,\n dataPointIndex: r,\n w: i\n }]), \"none\" !== i.config.states.active.filter.type && \"true\" === t.node.getAttribute(\"selected\") || \"none\" !== i.config.states.hover.filter.type && a.getDefaultFilter(t, s);\n }\n }, {\n key: \"pathMouseDown\",\n value: function value(t, e) {\n var i = this.w,\n a = new p(this.ctx),\n s = parseInt(t.node.getAttribute(\"index\"), 10),\n r = parseInt(t.node.getAttribute(\"j\"), 10),\n n = \"false\";\n\n if (\"true\" === t.node.getAttribute(\"selected\")) {\n if (t.node.setAttribute(\"selected\", \"false\"), i.globals.selectedDataPoints[s].indexOf(r) > -1) {\n var o = i.globals.selectedDataPoints[s].indexOf(r);\n i.globals.selectedDataPoints[s].splice(o, 1);\n }\n } else {\n if (!i.config.states.active.allowMultipleDataPointsSelection && i.globals.selectedDataPoints.length > 0) {\n i.globals.selectedDataPoints = [];\n\n var l = i.globals.dom.Paper.select(\".apexcharts-series path\").members,\n h = i.globals.dom.Paper.select(\".apexcharts-series circle, .apexcharts-series rect\").members,\n c = function c(t) {\n Array.prototype.forEach.call(t, function (t) {\n t.node.setAttribute(\"selected\", \"false\"), a.getDefaultFilter(t, s);\n });\n };\n\n c(l), c(h);\n }\n\n t.node.setAttribute(\"selected\", \"true\"), n = \"true\", void 0 === i.globals.selectedDataPoints[s] && (i.globals.selectedDataPoints[s] = []), i.globals.selectedDataPoints[s].push(r);\n }\n\n if (\"true\" === n) {\n var d = i.config.states.active.filter;\n \"none\" !== d && a.applyFilter(t, s, d.type, d.value);\n } else \"none\" !== i.config.states.active.filter.type && a.getDefaultFilter(t, s);\n\n \"function\" == typeof i.config.chart.events.dataPointSelection && i.config.chart.events.dataPointSelection(e, this.ctx, {\n selectedDataPoints: i.globals.selectedDataPoints,\n seriesIndex: s,\n dataPointIndex: r,\n w: i\n }), e && this.ctx.events.fireEvent(\"dataPointSelection\", [e, this.ctx, {\n selectedDataPoints: i.globals.selectedDataPoints,\n seriesIndex: s,\n dataPointIndex: r,\n w: i\n }]);\n }\n }, {\n key: \"rotateAroundCenter\",\n value: function value(t) {\n var e = t.getBBox();\n return {\n x: e.x + e.width / 2,\n y: e.y + e.height / 2\n };\n }\n }, {\n key: \"getTextRects\",\n value: function value(t, e, i, a) {\n var s = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4],\n r = this.w,\n n = this.drawText({\n x: -200,\n y: -200,\n text: t,\n textAnchor: \"start\",\n fontSize: e,\n fontFamily: i,\n foreColor: \"#fff\",\n opacity: 0\n });\n a && n.attr(\"transform\", a), r.globals.dom.Paper.add(n);\n var o = n.bbox();\n return s || (o = n.node.getBoundingClientRect()), n.remove(), {\n width: o.width,\n height: o.height\n };\n }\n }, {\n key: \"placeTextWithEllipsis\",\n value: function value(t, e, i) {\n if (\"function\" == typeof t.getComputedTextLength && (t.textContent = e, e.length > 0 && t.getComputedTextLength() >= i / .8)) {\n for (var a = e.length - 3; a > 0; a -= 3) {\n if (t.getSubStringLength(0, a) <= i / .8) return void (t.textContent = e.substring(0, a) + \"...\");\n }\n\n t.textContent = \".\";\n }\n }\n }], [{\n key: \"setAttrs\",\n value: function value(t, e) {\n for (var i in e) {\n e.hasOwnProperty(i) && t.setAttribute(i, e[i]);\n }\n }\n }]), t;\n}(),\n m = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.annoCtx = i;\n }\n\n return a(t, [{\n key: \"setOrientations\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,\n i = this.w;\n\n if (\"vertical\" === t.label.orientation) {\n var a = null !== e ? e : 0,\n s = i.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='\".concat(a, \"']\"));\n\n if (null !== s) {\n var r = s.getBoundingClientRect();\n s.setAttribute(\"x\", parseFloat(s.getAttribute(\"x\")) - r.height + 4), \"top\" === t.label.position ? s.setAttribute(\"y\", parseFloat(s.getAttribute(\"y\")) + r.width) : s.setAttribute(\"y\", parseFloat(s.getAttribute(\"y\")) - r.width);\n var n = this.annoCtx.graphics.rotateAroundCenter(s),\n o = n.x,\n l = n.y;\n s.setAttribute(\"transform\", \"rotate(-90 \".concat(o, \" \").concat(l, \")\"));\n }\n }\n }\n }, {\n key: \"addBackgroundToAnno\",\n value: function value(t, e) {\n var i = this.w;\n if (!t || !e.label.text || e.label.text && !e.label.text.trim()) return null;\n var a = i.globals.dom.baseEl.querySelector(\".apexcharts-grid\").getBoundingClientRect(),\n s = t.getBoundingClientRect(),\n r = e.label.style.padding.left,\n n = e.label.style.padding.right,\n o = e.label.style.padding.top,\n l = e.label.style.padding.bottom;\n \"vertical\" === e.label.orientation && (o = e.label.style.padding.left, l = e.label.style.padding.right, r = e.label.style.padding.top, n = e.label.style.padding.bottom);\n var h = s.left - a.left - r,\n c = s.top - a.top - o,\n d = this.annoCtx.graphics.drawRect(h - i.globals.barPadForNumericAxis, c, s.width + r + n, s.height + o + l, e.label.borderRadius, e.label.style.background, 1, e.label.borderWidth, e.label.borderColor, 0);\n return e.id && d.node.classList.add(e.id), d;\n }\n }, {\n key: \"annotationsBackground\",\n value: function value() {\n var t = this,\n e = this.w,\n i = function i(_i, a, s) {\n var r = e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s, \"-annotations .apexcharts-\").concat(s, \"-annotation-label[rel='\").concat(a, \"']\"));\n\n if (r) {\n var n = r.parentNode,\n o = t.addBackgroundToAnno(r, _i);\n o && n.insertBefore(o.node, r);\n }\n };\n\n e.config.annotations.xaxis.map(function (t, e) {\n i(t, e, \"xaxis\");\n }), e.config.annotations.yaxis.map(function (t, e) {\n i(t, e, \"yaxis\");\n }), e.config.annotations.points.map(function (t, e) {\n i(t, e, \"point\");\n });\n }\n }, {\n key: \"getStringX\",\n value: function value(t) {\n var e = this.w,\n i = t;\n e.config.xaxis.convertedCatToNumeric && e.globals.categoryLabels.length && (t = e.globals.categoryLabels.indexOf(t) + 1);\n var a = e.globals.labels.indexOf(t),\n s = e.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g text:nth-child(\" + (a + 1) + \")\");\n return s && (i = parseFloat(s.getAttribute(\"x\"))), i;\n }\n }]), t;\n}(),\n v = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.annoCtx = i, this.invertAxis = this.annoCtx.invertAxis;\n }\n\n return a(t, [{\n key: \"addXaxisAnnotation\",\n value: function value(t, e, i) {\n var a = this.w,\n s = this.invertAxis ? a.globals.minY : a.globals.minX,\n r = this.invertAxis ? a.globals.maxY : a.globals.maxX,\n n = this.invertAxis ? a.globals.yRange[0] : a.globals.xRange,\n o = (t.x - s) / (n / a.globals.gridWidth);\n this.annoCtx.inversedReversedAxis && (o = (r - t.x) / (n / a.globals.gridWidth));\n var l = t.label.text;\n \"category\" !== a.config.xaxis.type && !a.config.xaxis.convertedCatToNumeric || this.invertAxis || a.globals.dataFormatXNumeric || (o = this.annoCtx.helpers.getStringX(t.x));\n var h = t.strokeDashArray;\n\n if (f.isNumber(o)) {\n if (null === t.x2 || void 0 === t.x2) {\n var c = this.annoCtx.graphics.drawLine(o + t.offsetX, 0 + t.offsetY, o + t.offsetX, a.globals.gridHeight + t.offsetY, t.borderColor, h, t.borderWidth);\n e.appendChild(c.node), t.id && c.node.classList.add(t.id);\n } else {\n var d = (t.x2 - s) / (n / a.globals.gridWidth);\n\n if (this.annoCtx.inversedReversedAxis && (d = (r - t.x2) / (n / a.globals.gridWidth)), \"category\" !== a.config.xaxis.type && !a.config.xaxis.convertedCatToNumeric || this.invertAxis || a.globals.dataFormatXNumeric || (d = this.annoCtx.helpers.getStringX(t.x2)), d < o) {\n var g = o;\n o = d, d = g;\n }\n\n var u = this.annoCtx.graphics.drawRect(o + t.offsetX, 0 + t.offsetY, d - o, a.globals.gridHeight + t.offsetY, 0, t.fillColor, t.opacity, 1, t.borderColor, h);\n u.node.classList.add(\"apexcharts-annotation-rect\"), u.attr(\"clip-path\", \"url(#gridRectMask\".concat(a.globals.cuid, \")\")), e.appendChild(u.node), t.id && u.node.classList.add(t.id);\n }\n\n var p = \"top\" === t.label.position ? 4 : a.globals.gridHeight,\n x = this.annoCtx.graphics.getTextRects(l, parseFloat(t.label.style.fontSize)),\n b = this.annoCtx.graphics.drawText({\n x: o + t.label.offsetX,\n y: p + t.label.offsetY - (\"vertical\" === t.label.orientation ? \"top\" === t.label.position ? x.width / 2 - 12 : -x.width / 2 : 0),\n text: l,\n textAnchor: t.label.textAnchor,\n fontSize: t.label.style.fontSize,\n fontFamily: t.label.style.fontFamily,\n fontWeight: t.label.style.fontWeight,\n foreColor: t.label.style.color,\n cssClass: \"apexcharts-xaxis-annotation-label \".concat(t.label.style.cssClass, \" \").concat(t.id ? t.id : \"\")\n });\n b.attr({\n rel: i\n }), e.appendChild(b.node), this.annoCtx.helpers.setOrientations(t, i);\n }\n }\n }, {\n key: \"drawXAxisAnnotations\",\n value: function value() {\n var t = this,\n e = this.w,\n i = this.annoCtx.graphics.group({\n class: \"apexcharts-xaxis-annotations\"\n });\n return e.config.annotations.xaxis.map(function (e, a) {\n t.addXaxisAnnotation(e, i.node, a);\n }), i;\n }\n }]), t;\n}(),\n y = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"getStackedSeriesTotals\",\n value: function value() {\n var t = this.w,\n e = [];\n if (0 === t.globals.series.length) return e;\n\n for (var i = 0; i < t.globals.series[t.globals.maxValsInArrayIndex].length; i++) {\n for (var a = 0, s = 0; s < t.globals.series.length; s++) {\n void 0 !== t.globals.series[s][i] && (a += t.globals.series[s][i]);\n }\n\n e.push(a);\n }\n\n return t.globals.stackedSeriesTotals = e, e;\n }\n }, {\n key: \"getSeriesTotalByIndex\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;\n return null === t ? this.w.config.series.reduce(function (t, e) {\n return t + e;\n }, 0) : this.w.globals.series[t].reduce(function (t, e) {\n return t + e;\n }, 0);\n }\n }, {\n key: \"isSeriesNull\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;\n return 0 === (null === t ? this.w.config.series.filter(function (t) {\n return null !== t;\n }) : this.w.config.series[t].data.filter(function (t) {\n return null !== t;\n })).length;\n }\n }, {\n key: \"seriesHaveSameValues\",\n value: function value(t) {\n return this.w.globals.series[t].every(function (t, e, i) {\n return t === i[0];\n });\n }\n }, {\n key: \"getCategoryLabels\",\n value: function value(t) {\n var e = this.w,\n i = t.slice();\n return e.config.xaxis.convertedCatToNumeric && (i = t.map(function (t, i) {\n return e.config.xaxis.labels.formatter(t - e.globals.minX + 1);\n })), i;\n }\n }, {\n key: \"getLargestSeries\",\n value: function value() {\n var t = this.w;\n t.globals.maxValsInArrayIndex = t.globals.series.map(function (t) {\n return t.length;\n }).indexOf(Math.max.apply(Math, t.globals.series.map(function (t) {\n return t.length;\n })));\n }\n }, {\n key: \"getLargestMarkerSize\",\n value: function value() {\n var t = this.w,\n e = 0;\n return t.globals.markers.size.forEach(function (t) {\n e = Math.max(e, t);\n }), t.globals.markers.largestSize = e, e;\n }\n }, {\n key: \"getSeriesTotals\",\n value: function value() {\n var t = this.w;\n t.globals.seriesTotals = t.globals.series.map(function (t, e) {\n var i = 0;\n if (Array.isArray(t)) for (var a = 0; a < t.length; a++) {\n i += t[a];\n } else i += t;\n return i;\n });\n }\n }, {\n key: \"getSeriesTotalsXRange\",\n value: function value(t, e) {\n var i = this.w;\n return i.globals.series.map(function (a, s) {\n for (var r = 0, n = 0; n < a.length; n++) {\n i.globals.seriesX[s][n] > t && i.globals.seriesX[s][n] < e && (r += a[n]);\n }\n\n return r;\n });\n }\n }, {\n key: \"getPercentSeries\",\n value: function value() {\n var t = this.w;\n t.globals.seriesPercent = t.globals.series.map(function (e, i) {\n var a = [];\n if (Array.isArray(e)) for (var s = 0; s < e.length; s++) {\n var r = t.globals.stackedSeriesTotals[s],\n n = 0;\n r && (n = 100 * e[s] / r), a.push(n);\n } else {\n var o = 100 * e / t.globals.seriesTotals.reduce(function (t, e) {\n return t + e;\n }, 0);\n a.push(o);\n }\n return a;\n });\n }\n }, {\n key: \"getCalculatedRatios\",\n value: function value() {\n var t,\n e,\n i,\n a,\n s = this.w.globals,\n r = [],\n n = 0,\n o = [],\n l = .1,\n h = 0;\n if (s.yRange = [], s.isMultipleYAxis) for (var c = 0; c < s.minYArr.length; c++) {\n s.yRange.push(Math.abs(s.minYArr[c] - s.maxYArr[c])), o.push(0);\n } else s.yRange.push(Math.abs(s.minY - s.maxY));\n s.xRange = Math.abs(s.maxX - s.minX), s.zRange = Math.abs(s.maxZ - s.minZ);\n\n for (var d = 0; d < s.yRange.length; d++) {\n r.push(s.yRange[d] / s.gridHeight);\n }\n\n if (e = s.xRange / s.gridWidth, i = Math.abs(s.initialMaxX - s.initialMinX) / s.gridWidth, t = s.yRange / s.gridWidth, a = s.xRange / s.gridHeight, (n = s.zRange / s.gridHeight * 16) || (n = 1), s.minY !== Number.MIN_VALUE && 0 !== Math.abs(s.minY) && (s.hasNegs = !0), s.isMultipleYAxis) {\n o = [];\n\n for (var g = 0; g < r.length; g++) {\n o.push(-s.minYArr[g] / r[g]);\n }\n } else o.push(-s.minY / r[0]), s.minY !== Number.MIN_VALUE && 0 !== Math.abs(s.minY) && (l = -s.minY / t, h = s.minX / e);\n\n return {\n yRatio: r,\n invertedYRatio: t,\n zRatio: n,\n xRatio: e,\n initialXRatio: i,\n invertedXRatio: a,\n baseLineInvertedY: l,\n baseLineY: o,\n baseLineX: h\n };\n }\n }, {\n key: \"getLogSeries\",\n value: function value(t) {\n var e = this,\n i = this.w;\n return i.globals.seriesLog = t.map(function (t, a) {\n return i.config.yaxis[a] && i.config.yaxis[a].logarithmic ? t.map(function (t) {\n return null === t ? null : e.getLogVal(t, a);\n }) : t;\n }), i.globals.invalidLogScale ? t : i.globals.seriesLog;\n }\n }, {\n key: \"getLogVal\",\n value: function value(t, e) {\n var i = this.w;\n return (Math.log(t) - Math.log(i.globals.minYArr[e])) / (Math.log(i.globals.maxYArr[e]) - Math.log(i.globals.minYArr[e]));\n }\n }, {\n key: \"getLogYRatios\",\n value: function value(t) {\n var e = this,\n i = this.w,\n a = this.w.globals;\n return a.yLogRatio = t.slice(), a.logYRange = a.yRange.map(function (t, s) {\n if (i.config.yaxis[s] && e.w.config.yaxis[s].logarithmic) {\n var r,\n n = -Number.MAX_VALUE,\n o = Number.MIN_VALUE;\n return a.seriesLog.forEach(function (t, e) {\n t.forEach(function (t) {\n i.config.yaxis[e] && i.config.yaxis[e].logarithmic && (n = Math.max(t, n), o = Math.min(t, o));\n });\n }), r = Math.pow(a.yRange[s], Math.abs(o - n) / a.yRange[s]), a.yLogRatio[s] = r / a.gridHeight, r;\n }\n }), a.invalidLogScale ? t.slice() : a.yLogRatio;\n }\n }], [{\n key: \"checkComboSeries\",\n value: function value(t) {\n var e = !1,\n i = 0;\n return t.length && void 0 !== t[0].type && (e = !0, t.forEach(function (t) {\n \"bar\" !== t.type && \"column\" !== t.type && \"candlestick\" !== t.type || i++;\n })), {\n comboBarCount: i,\n comboCharts: e\n };\n }\n }, {\n key: \"extendArrayProps\",\n value: function value(t, e, i) {\n return e.yaxis && (e = t.extendYAxis(e, i)), e.annotations && (e.annotations.yaxis && (e = t.extendYAxisAnnotations(e)), e.annotations.xaxis && (e = t.extendXAxisAnnotations(e)), e.annotations.points && (e = t.extendPointAnnotations(e))), e;\n }\n }]), t;\n}(),\n w = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.annoCtx = i;\n }\n\n return a(t, [{\n key: \"addYaxisAnnotation\",\n value: function value(t, e, i) {\n var a,\n s = this.w,\n r = t.strokeDashArray,\n n = this._getY1Y2(\"y1\", t),\n o = t.label.text;\n\n if (null === t.y2 || void 0 === t.y2) {\n var l = this.annoCtx.graphics.drawLine(0 + t.offsetX, n + t.offsetY, this._getYAxisAnnotationWidth(t), n + t.offsetY, t.borderColor, r, t.borderWidth);\n e.appendChild(l.node), t.id && l.node.classList.add(t.id);\n } else {\n if ((a = this._getY1Y2(\"y2\", t)) > n) {\n var h = n;\n n = a, a = h;\n }\n\n var c = this.annoCtx.graphics.drawRect(0 + t.offsetX, a + t.offsetY, this._getYAxisAnnotationWidth(t), n - a, 0, t.fillColor, t.opacity, 1, t.borderColor, r);\n c.node.classList.add(\"apexcharts-annotation-rect\"), c.attr(\"clip-path\", \"url(#gridRectMask\".concat(s.globals.cuid, \")\")), e.appendChild(c.node), t.id && c.node.classList.add(t.id);\n }\n\n var d = \"right\" === t.label.position ? s.globals.gridWidth : 0,\n g = this.annoCtx.graphics.drawText({\n x: d + t.label.offsetX,\n y: (a || n) + t.label.offsetY - 3,\n text: o,\n textAnchor: t.label.textAnchor,\n fontSize: t.label.style.fontSize,\n fontFamily: t.label.style.fontFamily,\n fontWeight: t.label.style.fontWeight,\n foreColor: t.label.style.color,\n cssClass: \"apexcharts-yaxis-annotation-label \".concat(t.label.style.cssClass, \" \").concat(t.id ? t.id : \"\")\n });\n g.attr({\n rel: i\n }), e.appendChild(g.node);\n }\n }, {\n key: \"_getY1Y2\",\n value: function value(t, e) {\n var i,\n a = \"y1\" === t ? e.y : e.y2,\n s = this.w;\n\n if (this.annoCtx.invertAxis) {\n var r = s.globals.labels.indexOf(a);\n s.config.xaxis.convertedCatToNumeric && (r = s.globals.categoryLabels.indexOf(a));\n var n = s.globals.dom.baseEl.querySelector(\".apexcharts-yaxis-texts-g text:nth-child(\" + (r + 1) + \")\");\n n && (i = parseFloat(n.getAttribute(\"y\")));\n } else {\n var o;\n if (s.config.yaxis[e.yAxisIndex].logarithmic) o = (a = new y(this.annoCtx.ctx).getLogVal(a, e.yAxisIndex)) / s.globals.yLogRatio[e.yAxisIndex];else o = (a - s.globals.minYArr[e.yAxisIndex]) / (s.globals.yRange[e.yAxisIndex] / s.globals.gridHeight);\n i = s.globals.gridHeight - o, s.config.yaxis[e.yAxisIndex] && s.config.yaxis[e.yAxisIndex].reversed && (i = o);\n }\n\n return i;\n }\n }, {\n key: \"_getYAxisAnnotationWidth\",\n value: function value(t) {\n var e = this.w;\n e.globals.gridWidth;\n return (t.width.indexOf(\"%\") > -1 ? e.globals.gridWidth * parseInt(t.width, 10) / 100 : parseInt(t.width, 10)) + t.offsetX;\n }\n }, {\n key: \"drawYAxisAnnotations\",\n value: function value() {\n var t = this,\n e = this.w,\n i = this.annoCtx.graphics.group({\n class: \"apexcharts-yaxis-annotations\"\n });\n return e.config.annotations.yaxis.map(function (e, a) {\n t.addYaxisAnnotation(e, i.node, a);\n }), i;\n }\n }]), t;\n}(),\n k = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.annoCtx = i;\n }\n\n return a(t, [{\n key: \"addPointAnnotation\",\n value: function value(t, e, i) {\n var a = this.w,\n s = 0,\n r = 0,\n n = 0;\n this.annoCtx.invertAxis && console.warn(\"Point annotation is not supported in horizontal bar charts.\");\n var o,\n l = parseFloat(t.y);\n\n if (\"string\" == typeof t.x) {\n var h = a.globals.labels.indexOf(t.x);\n a.config.xaxis.convertedCatToNumeric && (h = a.globals.categoryLabels.indexOf(t.x)), s = this.annoCtx.helpers.getStringX(t.x), null === t.y && (l = a.globals.series[t.seriesIndex][h]);\n } else s = (t.x - a.globals.minX) / (a.globals.xRange / a.globals.gridWidth);\n\n a.config.yaxis[t.yAxisIndex].logarithmic ? o = (l = new y(this.annoCtx.ctx).getLogVal(l, t.yAxisIndex)) / a.globals.yLogRatio[t.yAxisIndex] : o = (l - a.globals.minYArr[t.yAxisIndex]) / (a.globals.yRange[t.yAxisIndex] / a.globals.gridHeight);\n\n if (r = a.globals.gridHeight - o - parseFloat(t.label.style.fontSize) - t.marker.size, n = a.globals.gridHeight - o, a.config.yaxis[t.yAxisIndex] && a.config.yaxis[t.yAxisIndex].reversed && (r = o + parseFloat(t.label.style.fontSize) + t.marker.size, n = o), f.isNumber(s)) {\n var c = {\n pSize: t.marker.size,\n pWidth: t.marker.strokeWidth,\n pointFillColor: t.marker.fillColor,\n pointStrokeColor: t.marker.strokeColor,\n shape: t.marker.shape,\n pRadius: t.marker.radius,\n class: \"apexcharts-point-annotation-marker \".concat(t.marker.cssClass, \" \").concat(t.id ? t.id : \"\")\n },\n d = this.annoCtx.graphics.drawMarker(s + t.marker.offsetX, n + t.marker.offsetY, c);\n e.appendChild(d.node);\n var g = t.label.text ? t.label.text : \"\",\n u = this.annoCtx.graphics.drawText({\n x: s + t.label.offsetX,\n y: r + t.label.offsetY,\n text: g,\n textAnchor: t.label.textAnchor,\n fontSize: t.label.style.fontSize,\n fontFamily: t.label.style.fontFamily,\n fontWeight: t.label.style.fontWeight,\n foreColor: t.label.style.color,\n cssClass: \"apexcharts-point-annotation-label \".concat(t.label.style.cssClass, \" \").concat(t.id ? t.id : \"\")\n });\n\n if (u.attr({\n rel: i\n }), e.appendChild(u.node), t.customSVG.SVG) {\n var p = this.annoCtx.graphics.group({\n class: \"apexcharts-point-annotations-custom-svg \" + t.customSVG.cssClass\n });\n p.attr({\n transform: \"translate(\".concat(s + t.customSVG.offsetX, \", \").concat(r + t.customSVG.offsetY, \")\")\n }), p.node.innerHTML = t.customSVG.SVG, e.appendChild(p.node);\n }\n\n if (t.image.path) {\n var x = t.image.width ? t.image.width : 20,\n b = t.image.height ? t.image.height : 20;\n this.annoCtx.addImage({\n x: s + t.image.offsetX - x / 2,\n y: r + t.image.offsetY - b / 2,\n width: x,\n height: b,\n path: t.image.path,\n appendTo: \".apexcharts-point-annotations\"\n });\n }\n }\n }\n }, {\n key: \"drawPointAnnotations\",\n value: function value() {\n var t = this,\n e = this.w,\n i = this.annoCtx.graphics.group({\n class: \"apexcharts-point-annotations\"\n });\n return e.config.annotations.points.map(function (e, a) {\n t.addPointAnnotation(e, i.node, a);\n }), i;\n }\n }]), t;\n}();\n\nvar A = {\n name: \"en\",\n options: {\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n toolbar: {\n exportToSVG: \"Download SVG\",\n exportToPNG: \"Download PNG\",\n exportToCSV: \"Download CSV\",\n menu: \"Menu\",\n selection: \"Selection\",\n selectionZoom: \"Selection Zoom\",\n zoomIn: \"Zoom In\",\n zoomOut: \"Zoom Out\",\n pan: \"Panning\",\n reset: \"Reset Zoom\"\n }\n }\n},\n S = function () {\n function t() {\n e(this, t), this.yAxis = {\n show: !0,\n showAlways: !1,\n showForNullSeries: !0,\n seriesName: void 0,\n opposite: !1,\n reversed: !1,\n logarithmic: !1,\n tickAmount: void 0,\n forceNiceScale: !1,\n max: void 0,\n min: void 0,\n floating: !1,\n decimalsInFloat: void 0,\n labels: {\n show: !0,\n minWidth: 0,\n maxWidth: 160,\n offsetX: 0,\n offsetY: 0,\n align: void 0,\n rotate: 0,\n padding: 20,\n style: {\n colors: [],\n fontSize: \"11px\",\n fontWeight: 400,\n fontFamily: void 0,\n cssClass: \"\"\n },\n formatter: void 0\n },\n axisBorder: {\n show: !1,\n color: \"#e0e0e0\",\n width: 1,\n offsetX: 0,\n offsetY: 0\n },\n axisTicks: {\n show: !1,\n color: \"#e0e0e0\",\n width: 6,\n offsetX: 0,\n offsetY: 0\n },\n title: {\n text: void 0,\n rotate: -90,\n offsetY: 0,\n offsetX: 0,\n style: {\n color: void 0,\n fontSize: \"11px\",\n fontWeight: 900,\n fontFamily: void 0,\n cssClass: \"\"\n }\n },\n tooltip: {\n enabled: !1,\n offsetX: 0\n },\n crosshairs: {\n show: !0,\n position: \"front\",\n stroke: {\n color: \"#b6b6b6\",\n width: 1,\n dashArray: 0\n }\n }\n }, this.pointAnnotation = {\n x: 0,\n y: null,\n yAxisIndex: 0,\n seriesIndex: 0,\n marker: {\n size: 4,\n fillColor: \"#fff\",\n strokeWidth: 2,\n strokeColor: \"#333\",\n shape: \"circle\",\n offsetX: 0,\n offsetY: 0,\n radius: 2,\n cssClass: \"\"\n },\n label: {\n borderColor: \"#c2c2c2\",\n borderWidth: 1,\n borderRadius: 2,\n text: void 0,\n textAnchor: \"middle\",\n offsetX: 0,\n offsetY: 0,\n style: {\n background: \"#fff\",\n color: void 0,\n fontSize: \"11px\",\n fontFamily: void 0,\n fontWeight: 400,\n cssClass: \"\",\n padding: {\n left: 5,\n right: 5,\n top: 2,\n bottom: 2\n }\n }\n },\n customSVG: {\n SVG: void 0,\n cssClass: void 0,\n offsetX: 0,\n offsetY: 0\n },\n image: {\n path: void 0,\n width: 20,\n height: 20,\n offsetX: 0,\n offsetY: 0\n }\n }, this.yAxisAnnotation = {\n y: 0,\n y2: null,\n strokeDashArray: 1,\n fillColor: \"#c2c2c2\",\n borderColor: \"#c2c2c2\",\n borderWidth: 1,\n opacity: .3,\n offsetX: 0,\n offsetY: 0,\n width: \"100%\",\n yAxisIndex: 0,\n label: {\n borderColor: \"#c2c2c2\",\n borderWidth: 1,\n borderRadius: 2,\n text: void 0,\n textAnchor: \"end\",\n position: \"right\",\n offsetX: 0,\n offsetY: -3,\n style: {\n background: \"#fff\",\n color: void 0,\n fontSize: \"11px\",\n fontFamily: void 0,\n fontWeight: 400,\n cssClass: \"\",\n padding: {\n left: 5,\n right: 5,\n top: 2,\n bottom: 2\n }\n }\n }\n }, this.xAxisAnnotation = {\n x: 0,\n x2: null,\n strokeDashArray: 1,\n fillColor: \"#c2c2c2\",\n borderColor: \"#c2c2c2\",\n borderWidth: 1,\n opacity: .3,\n offsetX: 0,\n offsetY: 0,\n label: {\n borderColor: \"#c2c2c2\",\n borderWidth: 1,\n borderRadius: 2,\n text: void 0,\n textAnchor: \"middle\",\n orientation: \"vertical\",\n position: \"top\",\n offsetX: 0,\n offsetY: 0,\n style: {\n background: \"#fff\",\n color: void 0,\n fontSize: \"11px\",\n fontFamily: void 0,\n fontWeight: 400,\n cssClass: \"\",\n padding: {\n left: 5,\n right: 5,\n top: 2,\n bottom: 2\n }\n }\n }\n }, this.text = {\n x: 0,\n y: 0,\n text: \"\",\n textAnchor: \"start\",\n foreColor: void 0,\n fontSize: \"13px\",\n fontFamily: void 0,\n fontWeight: 400,\n appendTo: \".apexcharts-annotations\",\n backgroundColor: \"transparent\",\n borderColor: \"#c2c2c2\",\n borderRadius: 0,\n borderWidth: 0,\n paddingLeft: 4,\n paddingRight: 4,\n paddingTop: 2,\n paddingBottom: 2\n };\n }\n\n return a(t, [{\n key: \"init\",\n value: function value() {\n return {\n annotations: {\n position: \"front\",\n yaxis: [this.yAxisAnnotation],\n xaxis: [this.xAxisAnnotation],\n points: [this.pointAnnotation],\n texts: [],\n images: [],\n shapes: []\n },\n chart: {\n animations: {\n enabled: !0,\n easing: \"easeinout\",\n speed: 800,\n animateGradually: {\n delay: 150,\n enabled: !0\n },\n dynamicAnimation: {\n enabled: !0,\n speed: 350\n }\n },\n background: \"transparent\",\n locales: [A],\n defaultLocale: \"en\",\n dropShadow: {\n enabled: !1,\n enabledOnSeries: void 0,\n top: 2,\n left: 2,\n blur: 4,\n color: \"#000\",\n opacity: .35\n },\n events: {\n animationEnd: void 0,\n beforeMount: void 0,\n mounted: void 0,\n updated: void 0,\n click: void 0,\n mouseMove: void 0,\n legendClick: void 0,\n markerClick: void 0,\n selection: void 0,\n dataPointSelection: void 0,\n dataPointMouseEnter: void 0,\n dataPointMouseLeave: void 0,\n beforeZoom: void 0,\n beforeResetZoom: void 0,\n zoomed: void 0,\n scrolled: void 0,\n brushScrolled: void 0\n },\n foreColor: \"#373d3f\",\n fontFamily: \"Helvetica, Arial, sans-serif\",\n height: \"auto\",\n parentHeightOffset: 15,\n redrawOnParentResize: !0,\n redrawOnWindowResize: !0,\n id: void 0,\n group: void 0,\n offsetX: 0,\n offsetY: 0,\n selection: {\n enabled: !1,\n type: \"x\",\n fill: {\n color: \"#24292e\",\n opacity: .1\n },\n stroke: {\n width: 1,\n color: \"#24292e\",\n opacity: .4,\n dashArray: 3\n },\n xaxis: {\n min: void 0,\n max: void 0\n },\n yaxis: {\n min: void 0,\n max: void 0\n }\n },\n sparkline: {\n enabled: !1\n },\n brush: {\n enabled: !1,\n autoScaleYaxis: !0,\n target: void 0\n },\n stacked: !1,\n stackType: \"normal\",\n toolbar: {\n show: !0,\n offsetX: 0,\n offsetY: 0,\n tools: {\n download: !0,\n selection: !0,\n zoom: !0,\n zoomin: !0,\n zoomout: !0,\n pan: !0,\n reset: !0,\n customIcons: []\n },\n export: {\n csv: {\n filename: void 0,\n columnDelimiter: \",\",\n headerCategory: \"category\",\n headerValue: \"value\",\n dateFormatter: function dateFormatter(t) {\n return new Date(t).toDateString();\n }\n },\n png: {\n filename: void 0\n },\n svg: {\n filename: void 0\n }\n },\n autoSelected: \"zoom\"\n },\n type: \"line\",\n width: \"100%\",\n zoom: {\n enabled: !0,\n type: \"x\",\n autoScaleYaxis: !1,\n zoomedArea: {\n fill: {\n color: \"#90CAF9\",\n opacity: .4\n },\n stroke: {\n color: \"#0D47A1\",\n opacity: .4,\n width: 1\n }\n }\n }\n },\n plotOptions: {\n area: {\n fillTo: \"origin\"\n },\n bar: {\n horizontal: !1,\n columnWidth: \"70%\",\n barHeight: \"70%\",\n distributed: !1,\n startingShape: \"flat\",\n endingShape: \"flat\",\n rangeBarOverlap: !0,\n rangeBarGroupRows: !1,\n colors: {\n ranges: [],\n backgroundBarColors: [],\n backgroundBarOpacity: 1,\n backgroundBarRadius: 0\n },\n dataLabels: {\n position: \"top\",\n maxItems: 100,\n hideOverflowingLabels: !0,\n orientation: \"horizontal\"\n }\n },\n bubble: {\n minBubbleRadius: void 0,\n maxBubbleRadius: void 0\n },\n candlestick: {\n colors: {\n upward: \"#00B746\",\n downward: \"#EF403C\"\n },\n wick: {\n useFillColor: !0\n }\n },\n heatmap: {\n radius: 2,\n enableShades: !0,\n shadeIntensity: .5,\n reverseNegativeShade: !1,\n distributed: !1,\n useFillColorAsStroke: !1,\n colorScale: {\n inverse: !1,\n ranges: [],\n min: void 0,\n max: void 0\n }\n },\n treemap: {\n enableShades: !0,\n shadeIntensity: .5,\n distributed: !1,\n reverseNegativeShade: !1,\n useFillColorAsStroke: !1,\n colorScale: {\n inverse: !1,\n ranges: [],\n min: void 0,\n max: void 0\n }\n },\n radialBar: {\n inverseOrder: !1,\n startAngle: 0,\n endAngle: 360,\n offsetX: 0,\n offsetY: 0,\n hollow: {\n margin: 5,\n size: \"50%\",\n background: \"transparent\",\n image: void 0,\n imageWidth: 150,\n imageHeight: 150,\n imageOffsetX: 0,\n imageOffsetY: 0,\n imageClipped: !0,\n position: \"front\",\n dropShadow: {\n enabled: !1,\n top: 0,\n left: 0,\n blur: 3,\n color: \"#000\",\n opacity: .5\n }\n },\n track: {\n show: !0,\n startAngle: void 0,\n endAngle: void 0,\n background: \"#f2f2f2\",\n strokeWidth: \"97%\",\n opacity: 1,\n margin: 5,\n dropShadow: {\n enabled: !1,\n top: 0,\n left: 0,\n blur: 3,\n color: \"#000\",\n opacity: .5\n }\n },\n dataLabels: {\n show: !0,\n name: {\n show: !0,\n fontSize: \"16px\",\n fontFamily: void 0,\n fontWeight: 600,\n color: void 0,\n offsetY: 0,\n formatter: function formatter(t) {\n return t;\n }\n },\n value: {\n show: !0,\n fontSize: \"14px\",\n fontFamily: void 0,\n fontWeight: 400,\n color: void 0,\n offsetY: 16,\n formatter: function formatter(t) {\n return t + \"%\";\n }\n },\n total: {\n show: !1,\n label: \"Total\",\n fontSize: \"16px\",\n fontWeight: 600,\n fontFamily: void 0,\n color: void 0,\n formatter: function formatter(t) {\n return t.globals.seriesTotals.reduce(function (t, e) {\n return t + e;\n }, 0) / t.globals.series.length + \"%\";\n }\n }\n }\n },\n pie: {\n customScale: 1,\n offsetX: 0,\n offsetY: 0,\n startAngle: 0,\n endAngle: 360,\n expandOnClick: !0,\n dataLabels: {\n offset: 0,\n minAngleToShowLabel: 10\n },\n donut: {\n size: \"65%\",\n background: \"transparent\",\n labels: {\n show: !1,\n name: {\n show: !0,\n fontSize: \"16px\",\n fontFamily: void 0,\n fontWeight: 600,\n color: void 0,\n offsetY: -10,\n formatter: function formatter(t) {\n return t;\n }\n },\n value: {\n show: !0,\n fontSize: \"20px\",\n fontFamily: void 0,\n fontWeight: 400,\n color: void 0,\n offsetY: 10,\n formatter: function formatter(t) {\n return t;\n }\n },\n total: {\n show: !1,\n showAlways: !1,\n label: \"Total\",\n fontSize: \"16px\",\n fontWeight: 400,\n fontFamily: void 0,\n color: void 0,\n formatter: function formatter(t) {\n return t.globals.seriesTotals.reduce(function (t, e) {\n return t + e;\n }, 0);\n }\n }\n }\n }\n },\n polarArea: {\n rings: {\n strokeWidth: 1,\n strokeColor: \"#e8e8e8\"\n }\n },\n radar: {\n size: void 0,\n offsetX: 0,\n offsetY: 0,\n polygons: {\n strokeWidth: 1,\n strokeColors: \"#e8e8e8\",\n connectorColors: \"#e8e8e8\",\n fill: {\n colors: void 0\n }\n }\n }\n },\n colors: void 0,\n dataLabels: {\n enabled: !0,\n enabledOnSeries: void 0,\n formatter: function formatter(t) {\n return null !== t ? t : \"\";\n },\n textAnchor: \"middle\",\n distributed: !1,\n offsetX: 0,\n offsetY: 0,\n style: {\n fontSize: \"12px\",\n fontFamily: void 0,\n fontWeight: 600,\n colors: void 0\n },\n background: {\n enabled: !0,\n foreColor: \"#fff\",\n borderRadius: 2,\n padding: 4,\n opacity: .9,\n borderWidth: 1,\n borderColor: \"#fff\",\n dropShadow: {\n enabled: !1,\n top: 1,\n left: 1,\n blur: 1,\n color: \"#000\",\n opacity: .45\n }\n },\n dropShadow: {\n enabled: !1,\n top: 1,\n left: 1,\n blur: 1,\n color: \"#000\",\n opacity: .45\n }\n },\n fill: {\n type: \"solid\",\n colors: void 0,\n opacity: .85,\n gradient: {\n shade: \"dark\",\n type: \"horizontal\",\n shadeIntensity: .5,\n gradientToColors: void 0,\n inverseColors: !0,\n opacityFrom: 1,\n opacityTo: 1,\n stops: [0, 50, 100],\n colorStops: []\n },\n image: {\n src: [],\n width: void 0,\n height: void 0\n },\n pattern: {\n style: \"squares\",\n width: 6,\n height: 6,\n strokeWidth: 2\n }\n },\n grid: {\n show: !0,\n borderColor: \"#e0e0e0\",\n strokeDashArray: 0,\n position: \"back\",\n xaxis: {\n lines: {\n show: !1\n }\n },\n yaxis: {\n lines: {\n show: !0\n }\n },\n row: {\n colors: void 0,\n opacity: .5\n },\n column: {\n colors: void 0,\n opacity: .5\n },\n padding: {\n top: 0,\n right: 10,\n bottom: 0,\n left: 12\n }\n },\n labels: [],\n legend: {\n show: !0,\n showForSingleSeries: !1,\n showForNullSeries: !0,\n showForZeroSeries: !0,\n floating: !1,\n position: \"bottom\",\n horizontalAlign: \"center\",\n inverseOrder: !1,\n fontSize: \"12px\",\n fontFamily: void 0,\n fontWeight: 400,\n width: void 0,\n height: void 0,\n formatter: void 0,\n tooltipHoverFormatter: void 0,\n offsetX: -20,\n offsetY: 4,\n labels: {\n colors: void 0,\n useSeriesColors: !1\n },\n markers: {\n width: 12,\n height: 12,\n strokeWidth: 0,\n fillColors: void 0,\n strokeColor: \"#fff\",\n radius: 12,\n customHTML: void 0,\n offsetX: 0,\n offsetY: 0,\n onClick: void 0\n },\n itemMargin: {\n horizontal: 5,\n vertical: 2\n },\n onItemClick: {\n toggleDataSeries: !0\n },\n onItemHover: {\n highlightDataSeries: !0\n }\n },\n markers: {\n discrete: [],\n size: 0,\n colors: void 0,\n strokeColors: \"#fff\",\n strokeWidth: 2,\n strokeOpacity: .9,\n strokeDashArray: 0,\n fillOpacity: 1,\n shape: \"circle\",\n radius: 2,\n offsetX: 0,\n offsetY: 0,\n onClick: void 0,\n onDblClick: void 0,\n showNullDataPoints: !0,\n hover: {\n size: void 0,\n sizeOffset: 3\n }\n },\n noData: {\n text: void 0,\n align: \"center\",\n verticalAlign: \"middle\",\n offsetX: 0,\n offsetY: 0,\n style: {\n color: void 0,\n fontSize: \"14px\",\n fontFamily: void 0\n }\n },\n responsive: [],\n series: void 0,\n states: {\n normal: {\n filter: {\n type: \"none\",\n value: 0\n }\n },\n hover: {\n filter: {\n type: \"lighten\",\n value: .1\n }\n },\n active: {\n allowMultipleDataPointsSelection: !1,\n filter: {\n type: \"darken\",\n value: .5\n }\n }\n },\n title: {\n text: void 0,\n align: \"left\",\n margin: 5,\n offsetX: 0,\n offsetY: 0,\n floating: !1,\n style: {\n fontSize: \"14px\",\n fontWeight: 900,\n fontFamily: void 0,\n color: void 0\n }\n },\n subtitle: {\n text: void 0,\n align: \"left\",\n margin: 5,\n offsetX: 0,\n offsetY: 30,\n floating: !1,\n style: {\n fontSize: \"12px\",\n fontWeight: 400,\n fontFamily: void 0,\n color: void 0\n }\n },\n stroke: {\n show: !0,\n curve: \"smooth\",\n lineCap: \"butt\",\n width: 2,\n colors: void 0,\n dashArray: 0\n },\n tooltip: {\n enabled: !0,\n enabledOnSeries: void 0,\n shared: !0,\n followCursor: !1,\n intersect: !1,\n inverseOrder: !1,\n custom: void 0,\n fillSeriesColor: !1,\n theme: \"light\",\n style: {\n fontSize: \"12px\",\n fontFamily: void 0\n },\n onDatasetHover: {\n highlightDataSeries: !1\n },\n x: {\n show: !0,\n format: \"dd MMM\",\n formatter: void 0\n },\n y: {\n formatter: void 0,\n title: {\n formatter: function formatter(t) {\n return t ? t + \": \" : \"\";\n }\n }\n },\n z: {\n formatter: void 0,\n title: \"Size: \"\n },\n marker: {\n show: !0,\n fillColors: void 0\n },\n items: {\n display: \"flex\"\n },\n fixed: {\n enabled: !1,\n position: \"topRight\",\n offsetX: 0,\n offsetY: 0\n }\n },\n xaxis: {\n type: \"category\",\n categories: [],\n convertedCatToNumeric: !1,\n sorted: !1,\n offsetX: 0,\n offsetY: 0,\n labels: {\n show: !0,\n rotate: -45,\n rotateAlways: !1,\n hideOverlappingLabels: !0,\n trim: !1,\n minHeight: void 0,\n maxHeight: 120,\n showDuplicates: !0,\n style: {\n colors: [],\n fontSize: \"12px\",\n fontWeight: 400,\n fontFamily: void 0,\n cssClass: \"\"\n },\n offsetX: 0,\n offsetY: 0,\n format: void 0,\n formatter: void 0,\n datetimeUTC: !0,\n datetimeFormatter: {\n year: \"yyyy\",\n month: \"MMM 'yy\",\n day: \"dd MMM\",\n hour: \"HH:mm\",\n minute: \"HH:mm:ss\"\n }\n },\n axisBorder: {\n show: !0,\n color: \"#e0e0e0\",\n width: \"100%\",\n height: 1,\n offsetX: 0,\n offsetY: 0\n },\n axisTicks: {\n show: !0,\n color: \"#e0e0e0\",\n height: 6,\n offsetX: 0,\n offsetY: 0\n },\n tickAmount: void 0,\n tickPlacement: \"on\",\n min: void 0,\n max: void 0,\n range: void 0,\n floating: !1,\n position: \"bottom\",\n title: {\n text: void 0,\n offsetX: 0,\n offsetY: 0,\n style: {\n color: void 0,\n fontSize: \"12px\",\n fontWeight: 900,\n fontFamily: void 0,\n cssClass: \"\"\n }\n },\n crosshairs: {\n show: !0,\n width: 1,\n position: \"back\",\n opacity: .9,\n stroke: {\n color: \"#b6b6b6\",\n width: 1,\n dashArray: 3\n },\n fill: {\n type: \"solid\",\n color: \"#B1B9C4\",\n gradient: {\n colorFrom: \"#D8E3F0\",\n colorTo: \"#BED1E6\",\n stops: [0, 100],\n opacityFrom: .4,\n opacityTo: .5\n }\n },\n dropShadow: {\n enabled: !1,\n left: 0,\n top: 0,\n blur: 1,\n opacity: .4\n }\n },\n tooltip: {\n enabled: !0,\n offsetY: 0,\n formatter: void 0,\n style: {\n fontSize: \"12px\",\n fontFamily: void 0\n }\n }\n },\n yaxis: this.yAxis,\n theme: {\n mode: \"light\",\n palette: \"palette1\",\n monochrome: {\n enabled: !1,\n color: \"#008FFB\",\n shadeTo: \"light\",\n shadeIntensity: .65\n }\n }\n };\n }\n }]), t;\n}(),\n C = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.graphics = new b(this.ctx), this.w.globals.isBarHorizontal && (this.invertAxis = !0), this.helpers = new m(this), this.xAxisAnnotations = new v(this), this.yAxisAnnotations = new w(this), this.pointsAnnotations = new k(this), this.w.globals.isBarHorizontal && this.w.config.yaxis[0].reversed && (this.inversedReversedAxis = !0), this.xDivision = this.w.globals.gridWidth / this.w.globals.dataPoints;\n }\n\n return a(t, [{\n key: \"drawAxesAnnotations\",\n value: function value() {\n var t = this.w;\n\n if (t.globals.axisCharts) {\n for (var e = this.yAxisAnnotations.drawYAxisAnnotations(), i = this.xAxisAnnotations.drawXAxisAnnotations(), a = this.pointsAnnotations.drawPointAnnotations(), s = t.config.chart.animations.enabled, r = [e, i, a], n = [i.node, e.node, a.node], o = 0; o < 3; o++) {\n t.globals.dom.elGraphical.add(r[o]), !s || t.globals.resized || t.globals.dataChanged || \"scatter\" !== t.config.chart.type && \"bubble\" !== t.config.chart.type && t.globals.dataPoints > 1 && n[o].classList.add(\"apexcharts-element-hidden\"), t.globals.delayedElements.push({\n el: n[o],\n index: 0\n });\n }\n\n this.helpers.annotationsBackground();\n }\n }\n }, {\n key: \"drawImageAnnos\",\n value: function value() {\n var t = this;\n this.w.config.annotations.images.map(function (e, i) {\n t.addImage(e, i);\n });\n }\n }, {\n key: \"drawTextAnnos\",\n value: function value() {\n var t = this;\n this.w.config.annotations.texts.map(function (e, i) {\n t.addText(e, i);\n });\n }\n }, {\n key: \"addXaxisAnnotation\",\n value: function value(t, e, i) {\n this.xAxisAnnotations.addXaxisAnnotation(t, e, i);\n }\n }, {\n key: \"addYaxisAnnotation\",\n value: function value(t, e, i) {\n this.yAxisAnnotations.addYaxisAnnotation(t, e, i);\n }\n }, {\n key: \"addPointAnnotation\",\n value: function value(t, e, i) {\n this.pointsAnnotations.addPointAnnotation(t, e, i);\n }\n }, {\n key: \"addText\",\n value: function value(t, e) {\n var i = t.x,\n a = t.y,\n s = t.text,\n r = t.textAnchor,\n n = t.foreColor,\n o = t.fontSize,\n l = t.fontFamily,\n h = t.fontWeight,\n c = t.cssClass,\n d = t.backgroundColor,\n g = t.borderWidth,\n u = t.strokeDashArray,\n f = t.borderRadius,\n p = t.borderColor,\n x = t.appendTo,\n b = void 0 === x ? \".apexcharts-annotations\" : x,\n m = t.paddingLeft,\n v = void 0 === m ? 4 : m,\n y = t.paddingRight,\n w = void 0 === y ? 4 : y,\n k = t.paddingBottom,\n A = void 0 === k ? 2 : k,\n S = t.paddingTop,\n C = void 0 === S ? 2 : S,\n L = this.w,\n P = this.graphics.drawText({\n x: i,\n y: a,\n text: s,\n textAnchor: r || \"start\",\n fontSize: o || \"12px\",\n fontWeight: h || \"regular\",\n fontFamily: l || L.config.chart.fontFamily,\n foreColor: n || L.config.chart.foreColor,\n cssClass: c\n }),\n T = L.globals.dom.baseEl.querySelector(b);\n T && T.appendChild(P.node);\n var z = P.bbox();\n\n if (s) {\n var I = this.graphics.drawRect(z.x - v, z.y - C, z.width + v + w, z.height + A + C, f, d || \"transparent\", 1, g, p, u);\n T.insertBefore(I.node, P.node);\n }\n }\n }, {\n key: \"addImage\",\n value: function value(t, e) {\n var i = this.w,\n a = t.path,\n s = t.x,\n r = void 0 === s ? 0 : s,\n n = t.y,\n o = void 0 === n ? 0 : n,\n l = t.width,\n h = void 0 === l ? 20 : l,\n c = t.height,\n d = void 0 === c ? 20 : c,\n g = t.appendTo,\n u = void 0 === g ? \".apexcharts-annotations\" : g,\n f = i.globals.dom.Paper.image(a);\n f.size(h, d).move(r, o);\n var p = i.globals.dom.baseEl.querySelector(u);\n p && p.appendChild(f.node);\n }\n }, {\n key: \"addXaxisAnnotationExternal\",\n value: function value(t, e, i) {\n return this.addAnnotationExternal({\n params: t,\n pushToMemory: e,\n context: i,\n type: \"xaxis\",\n contextMethod: i.addXaxisAnnotation\n }), i;\n }\n }, {\n key: \"addYaxisAnnotationExternal\",\n value: function value(t, e, i) {\n return this.addAnnotationExternal({\n params: t,\n pushToMemory: e,\n context: i,\n type: \"yaxis\",\n contextMethod: i.addYaxisAnnotation\n }), i;\n }\n }, {\n key: \"addPointAnnotationExternal\",\n value: function value(t, e, i) {\n return void 0 === this.invertAxis && (this.invertAxis = i.w.globals.isBarHorizontal), this.addAnnotationExternal({\n params: t,\n pushToMemory: e,\n context: i,\n type: \"point\",\n contextMethod: i.addPointAnnotation\n }), i;\n }\n }, {\n key: \"addAnnotationExternal\",\n value: function value(t) {\n var e = t.params,\n i = t.pushToMemory,\n a = t.context,\n s = t.type,\n r = t.contextMethod,\n n = a,\n o = n.w,\n l = o.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s, \"-annotations\")),\n h = l.childNodes.length + 1,\n c = new S(),\n d = Object.assign({}, \"xaxis\" === s ? c.xAxisAnnotation : \"yaxis\" === s ? c.yAxisAnnotation : c.pointAnnotation),\n g = f.extend(d, e);\n\n switch (s) {\n case \"xaxis\":\n this.addXaxisAnnotation(g, l, h);\n break;\n\n case \"yaxis\":\n this.addYaxisAnnotation(g, l, h);\n break;\n\n case \"point\":\n this.addPointAnnotation(g, l, h);\n }\n\n var u = o.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s, \"-annotations .apexcharts-\").concat(s, \"-annotation-label[rel='\").concat(h, \"']\")),\n p = this.helpers.addBackgroundToAnno(u, g);\n return p && l.insertBefore(p.node, u), i && o.globals.memory.methodsToExec.push({\n context: n,\n id: g.id ? g.id : f.randomId(),\n method: r,\n label: \"addAnnotation\",\n params: e\n }), a;\n }\n }, {\n key: \"clearAnnotations\",\n value: function value(t) {\n var e = t.w,\n i = e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations\");\n e.globals.memory.methodsToExec.map(function (t, i) {\n \"addText\" !== t.label && \"addAnnotation\" !== t.label || e.globals.memory.methodsToExec.splice(i, 1);\n }), i = f.listToArray(i), Array.prototype.forEach.call(i, function (t) {\n for (; t.firstChild;) {\n t.removeChild(t.firstChild);\n }\n });\n }\n }, {\n key: \"removeAnnotation\",\n value: function value(t, e) {\n var i = t.w,\n a = i.globals.dom.baseEl.querySelectorAll(\".\".concat(e));\n a && (i.globals.memory.methodsToExec.map(function (t, a) {\n t.id === e && i.globals.memory.methodsToExec.splice(a, 1);\n }), Array.prototype.forEach.call(a, function (t) {\n t.parentElement.removeChild(t);\n }));\n }\n }]), t;\n}(),\n L = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.opts = null, this.seriesIndex = 0;\n }\n\n return a(t, [{\n key: \"clippedImgArea\",\n value: function value(t) {\n var e = this.w,\n i = e.config,\n a = parseInt(e.globals.gridWidth, 10),\n s = parseInt(e.globals.gridHeight, 10),\n r = a > s ? a : s,\n n = t.image,\n o = 0,\n l = 0;\n void 0 === t.width && void 0 === t.height ? void 0 !== i.fill.image.width && void 0 !== i.fill.image.height ? (o = i.fill.image.width + 1, l = i.fill.image.height) : (o = r + 1, l = r) : (o = t.width, l = t.height);\n var h = document.createElementNS(e.globals.SVGNS, \"pattern\");\n b.setAttrs(h, {\n id: t.patternID,\n patternUnits: t.patternUnits ? t.patternUnits : \"userSpaceOnUse\",\n width: o + \"px\",\n height: l + \"px\"\n });\n var c = document.createElementNS(e.globals.SVGNS, \"image\");\n h.appendChild(c), c.setAttributeNS(window.SVG.xlink, \"href\", n), b.setAttrs(c, {\n x: 0,\n y: 0,\n preserveAspectRatio: \"none\",\n width: o + \"px\",\n height: l + \"px\"\n }), c.style.opacity = t.opacity, e.globals.dom.elDefs.node.appendChild(h);\n }\n }, {\n key: \"getSeriesIndex\",\n value: function value(t) {\n var e = this.w;\n return (\"bar\" === e.config.chart.type || \"rangeBar\" === e.config.chart.type) && e.config.plotOptions.bar.distributed || \"heatmap\" === e.config.chart.type || \"treemap\" === e.config.chart.type ? this.seriesIndex = t.seriesNumber : this.seriesIndex = t.seriesNumber % e.globals.series.length, this.seriesIndex;\n }\n }, {\n key: \"fillPath\",\n value: function value(t) {\n var e = this.w;\n this.opts = t;\n var i,\n a,\n s,\n r = this.w.config;\n this.seriesIndex = this.getSeriesIndex(t);\n var n = this.getFillColors()[this.seriesIndex];\n void 0 !== e.globals.seriesColors[this.seriesIndex] && (n = e.globals.seriesColors[this.seriesIndex]), \"function\" == typeof n && (n = n({\n seriesIndex: this.seriesIndex,\n dataPointIndex: t.dataPointIndex,\n value: t.value,\n w: e\n }));\n var o = this.getFillType(this.seriesIndex),\n l = Array.isArray(r.fill.opacity) ? r.fill.opacity[this.seriesIndex] : r.fill.opacity;\n t.color && (n = t.color);\n var h = n;\n\n if (-1 === n.indexOf(\"rgb\") ? n.length < 9 && (h = f.hexToRgba(n, l)) : n.indexOf(\"rgba\") > -1 && (l = f.getOpacityFromRGBA(n)), t.opacity && (l = t.opacity), \"pattern\" === o && (a = this.handlePatternFill(a, n, l, h)), \"gradient\" === o && (s = this.handleGradientFill(n, l, this.seriesIndex)), \"image\" === o) {\n var c = r.fill.image.src,\n d = t.patternID ? t.patternID : \"\";\n this.clippedImgArea({\n opacity: l,\n image: Array.isArray(c) ? t.seriesNumber < c.length ? c[t.seriesNumber] : c[0] : c,\n width: t.width ? t.width : void 0,\n height: t.height ? t.height : void 0,\n patternUnits: t.patternUnits,\n patternID: \"pattern\".concat(e.globals.cuid).concat(t.seriesNumber + 1).concat(d)\n }), i = \"url(#pattern\".concat(e.globals.cuid).concat(t.seriesNumber + 1).concat(d, \")\");\n } else i = \"gradient\" === o ? s : \"pattern\" === o ? a : h;\n\n return t.solid && (i = h), i;\n }\n }, {\n key: \"getFillType\",\n value: function value(t) {\n var e = this.w;\n return Array.isArray(e.config.fill.type) ? e.config.fill.type[t] : e.config.fill.type;\n }\n }, {\n key: \"getFillColors\",\n value: function value() {\n var t = this.w,\n e = t.config,\n i = this.opts,\n a = [];\n return t.globals.comboCharts ? \"line\" === t.config.series[this.seriesIndex].type ? Array.isArray(t.globals.stroke.colors) ? a = t.globals.stroke.colors : a.push(t.globals.stroke.colors) : Array.isArray(t.globals.fill.colors) ? a = t.globals.fill.colors : a.push(t.globals.fill.colors) : \"line\" === e.chart.type ? Array.isArray(t.globals.stroke.colors) ? a = t.globals.stroke.colors : a.push(t.globals.stroke.colors) : Array.isArray(t.globals.fill.colors) ? a = t.globals.fill.colors : a.push(t.globals.fill.colors), void 0 !== i.fillColors && (a = [], Array.isArray(i.fillColors) ? a = i.fillColors.slice() : a.push(i.fillColors)), a;\n }\n }, {\n key: \"handlePatternFill\",\n value: function value(t, e, i, a) {\n var s = this.w.config,\n r = this.opts,\n n = new b(this.ctx),\n o = void 0 === s.fill.pattern.strokeWidth ? Array.isArray(s.stroke.width) ? s.stroke.width[this.seriesIndex] : s.stroke.width : Array.isArray(s.fill.pattern.strokeWidth) ? s.fill.pattern.strokeWidth[this.seriesIndex] : s.fill.pattern.strokeWidth,\n l = e;\n Array.isArray(s.fill.pattern.style) ? t = void 0 !== s.fill.pattern.style[r.seriesNumber] ? n.drawPattern(s.fill.pattern.style[r.seriesNumber], s.fill.pattern.width, s.fill.pattern.height, l, o, i) : a : t = n.drawPattern(s.fill.pattern.style, s.fill.pattern.width, s.fill.pattern.height, l, o, i);\n return t;\n }\n }, {\n key: \"handleGradientFill\",\n value: function value(t, e, i) {\n var a,\n s = this.w.config,\n r = this.opts,\n n = new b(this.ctx),\n o = new f(),\n l = s.fill.gradient.type,\n h = t,\n c = void 0 === s.fill.gradient.opacityFrom ? e : Array.isArray(s.fill.gradient.opacityFrom) ? s.fill.gradient.opacityFrom[i] : s.fill.gradient.opacityFrom;\n h.indexOf(\"rgba\") > -1 && (c = f.getOpacityFromRGBA(h));\n var d = void 0 === s.fill.gradient.opacityTo ? e : Array.isArray(s.fill.gradient.opacityTo) ? s.fill.gradient.opacityTo[i] : s.fill.gradient.opacityTo;\n if (void 0 === s.fill.gradient.gradientToColors || 0 === s.fill.gradient.gradientToColors.length) a = \"dark\" === s.fill.gradient.shade ? o.shadeColor(-1 * parseFloat(s.fill.gradient.shadeIntensity), t.indexOf(\"rgb\") > -1 ? f.rgb2hex(t) : t) : o.shadeColor(parseFloat(s.fill.gradient.shadeIntensity), t.indexOf(\"rgb\") > -1 ? f.rgb2hex(t) : t);else if (s.fill.gradient.gradientToColors[r.seriesNumber]) {\n var g = s.fill.gradient.gradientToColors[r.seriesNumber];\n a = g, g.indexOf(\"rgba\") > -1 && (d = f.getOpacityFromRGBA(g));\n } else a = t;\n\n if (s.fill.gradient.inverseColors) {\n var u = h;\n h = a, a = u;\n }\n\n return h.indexOf(\"rgb\") > -1 && (h = f.rgb2hex(h)), a.indexOf(\"rgb\") > -1 && (a = f.rgb2hex(a)), n.drawGradient(l, h, a, c, d, r.size, s.fill.gradient.stops, s.fill.gradient.colorStops, i);\n }\n }]), t;\n}(),\n P = function () {\n function t(i, a) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"setGlobalMarkerSize\",\n value: function value() {\n var t = this.w;\n\n if (t.globals.markers.size = Array.isArray(t.config.markers.size) ? t.config.markers.size : [t.config.markers.size], t.globals.markers.size.length > 0) {\n if (t.globals.markers.size.length < t.globals.series.length + 1) for (var e = 0; e <= t.globals.series.length; e++) {\n void 0 === t.globals.markers.size[e] && t.globals.markers.size.push(t.globals.markers.size[0]);\n }\n } else t.globals.markers.size = t.config.series.map(function (e) {\n return t.config.markers.size;\n });\n }\n }, {\n key: \"plotChartMarkers\",\n value: function value(t, e, i, a) {\n var s,\n r = arguments.length > 4 && void 0 !== arguments[4] && arguments[4],\n n = this.w,\n o = e,\n l = t,\n h = null,\n c = new b(this.ctx);\n if ((n.globals.markers.size[e] > 0 || r) && (h = c.group({\n class: r ? \"\" : \"apexcharts-series-markers\"\n })).attr(\"clip-path\", \"url(#gridRectMarkerMask\".concat(n.globals.cuid, \")\")), Array.isArray(l.x)) for (var d = 0; d < l.x.length; d++) {\n var g = i;\n 1 === i && 0 === d && (g = 0), 1 === i && 1 === d && (g = 1);\n var u = \"apexcharts-marker\";\n \"line\" !== n.config.chart.type && \"area\" !== n.config.chart.type || n.globals.comboCharts || n.config.tooltip.intersect || (u += \" no-pointer-events\");\n var x = Array.isArray(n.config.markers.size) ? n.globals.markers.size[e] > 0 : n.config.markers.size > 0;\n\n if (x || r) {\n f.isNumber(l.y[d]) ? u += \" w\".concat(f.randomId()) : u = \"apexcharts-nullpoint\";\n var m = this.getMarkerConfig(u, e, g);\n n.config.series[o].data[g] && (n.config.series[o].data[g].fillColor && (m.pointFillColor = n.config.series[o].data[g].fillColor), n.config.series[o].data[g].strokeColor && (m.pointStrokeColor = n.config.series[o].data[g].strokeColor)), a && (m.pSize = a), (s = c.drawMarker(l.x[d], l.y[d], m)).attr(\"rel\", g), s.attr(\"j\", g), s.attr(\"index\", e), s.node.setAttribute(\"default-marker-size\", m.pSize);\n var v = new p(this.ctx);\n v.setSelectionFilter(s, e, g), this.addEvents(s), h && h.add(s);\n } else void 0 === n.globals.pointsArray[e] && (n.globals.pointsArray[e] = []), n.globals.pointsArray[e].push([l.x[d], l.y[d]]);\n }\n return h;\n }\n }, {\n key: \"getMarkerConfig\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null,\n a = this.w,\n s = this.getMarkerStyle(e),\n r = a.globals.markers.size[e],\n n = a.config.markers;\n return null !== i && n.discrete.length && n.discrete.map(function (t) {\n t.seriesIndex === e && t.dataPointIndex === i && (s.pointStrokeColor = t.strokeColor, s.pointFillColor = t.fillColor, r = t.size);\n }), {\n pSize: r,\n pRadius: n.radius,\n pWidth: Array.isArray(n.strokeWidth) ? n.strokeWidth[e] : n.strokeWidth,\n pointStrokeColor: s.pointStrokeColor,\n pointFillColor: s.pointFillColor,\n shape: Array.isArray(n.shape) ? n.shape[e] : n.shape,\n class: t,\n pointStrokeOpacity: Array.isArray(n.strokeOpacity) ? n.strokeOpacity[e] : n.strokeOpacity,\n pointStrokeDashArray: Array.isArray(n.strokeDashArray) ? n.strokeDashArray[e] : n.strokeDashArray,\n pointFillOpacity: Array.isArray(n.fillOpacity) ? n.fillOpacity[e] : n.fillOpacity,\n seriesIndex: e\n };\n }\n }, {\n key: \"addEvents\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx);\n t.node.addEventListener(\"mouseenter\", i.pathMouseEnter.bind(this.ctx, t)), t.node.addEventListener(\"mouseleave\", i.pathMouseLeave.bind(this.ctx, t)), t.node.addEventListener(\"mousedown\", i.pathMouseDown.bind(this.ctx, t)), t.node.addEventListener(\"click\", e.config.markers.onClick), t.node.addEventListener(\"dblclick\", e.config.markers.onDblClick), t.node.addEventListener(\"touchstart\", i.pathMouseDown.bind(this.ctx, t), {\n passive: !0\n });\n }\n }, {\n key: \"getMarkerStyle\",\n value: function value(t) {\n var e = this.w,\n i = e.globals.markers.colors,\n a = e.config.markers.strokeColor || e.config.markers.strokeColors;\n return {\n pointStrokeColor: Array.isArray(a) ? a[t] : a,\n pointFillColor: Array.isArray(i) ? i[t] : i\n };\n }\n }]), t;\n}(),\n T = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled;\n }\n\n return a(t, [{\n key: \"draw\",\n value: function value(t, e, i) {\n var a = this.w,\n s = new b(this.ctx),\n r = i.realIndex,\n n = i.pointsPos,\n o = i.zRatio,\n l = i.elParent,\n h = s.group({\n class: \"apexcharts-series-markers apexcharts-series-\".concat(a.config.chart.type)\n });\n if (h.attr(\"clip-path\", \"url(#gridRectMarkerMask\".concat(a.globals.cuid, \")\")), Array.isArray(n.x)) for (var c = 0; c < n.x.length; c++) {\n var d = e + 1,\n g = !0;\n 0 === e && 0 === c && (d = 0), 0 === e && 1 === c && (d = 1);\n var u = 0,\n f = a.globals.markers.size[r];\n\n if (o !== 1 / 0) {\n f = a.globals.seriesZ[r][d] / o;\n var p = a.config.plotOptions.bubble;\n p.minBubbleRadius && f < p.minBubbleRadius && (f = p.minBubbleRadius), p.maxBubbleRadius && f > p.maxBubbleRadius && (f = p.maxBubbleRadius);\n }\n\n a.config.chart.animations.enabled || (u = f);\n var x = n.x[c],\n m = n.y[c];\n\n if (u = u || 0, null !== m && void 0 !== a.globals.series[r][d] || (g = !1), g) {\n var v = this.drawPoint(x, m, u, f, r, d, e);\n h.add(v);\n }\n\n l.add(h);\n }\n }\n }, {\n key: \"drawPoint\",\n value: function value(t, e, i, a, s, r, n) {\n var o = this.w,\n l = s,\n h = new x(this.ctx),\n c = new p(this.ctx),\n d = new L(this.ctx),\n g = new P(this.ctx),\n u = new b(this.ctx),\n f = g.getMarkerConfig(\"apexcharts-marker\", l),\n m = d.fillPath({\n seriesNumber: s,\n dataPointIndex: r,\n patternUnits: \"objectBoundingBox\",\n value: o.globals.series[s][n]\n }),\n v = u.drawCircle(i);\n\n if (o.config.series[l].data[r] && o.config.series[l].data[r].fillColor && (m = o.config.series[l].data[r].fillColor), v.attr({\n cx: t,\n cy: e,\n fill: m,\n stroke: f.pointStrokeColor,\n r: a,\n \"stroke-width\": f.pWidth,\n \"stroke-dasharray\": f.pointStrokeDashArray,\n \"stroke-opacity\": f.pointStrokeOpacity\n }), o.config.chart.dropShadow.enabled) {\n var y = o.config.chart.dropShadow;\n c.dropShadow(v, y, s);\n }\n\n if (this.initialAnim && !o.globals.dataChanged && !o.globals.resized) {\n var w = o.config.chart.animations.speed;\n h.animateCircleRadius(v, 0, a, w, o.globals.easing, function () {\n window.setTimeout(function () {\n h.animationCompleted(v);\n }, 100);\n });\n }\n\n if (o.globals.dataChanged) if (this.dynamicAnim) {\n var k,\n A,\n S,\n C,\n T = o.config.chart.animations.dynamicAnimation.speed;\n null != (C = o.globals.previousPaths[s] && o.globals.previousPaths[s][n]) && (k = C.x, A = C.y, S = void 0 !== C.r ? C.r : a);\n\n for (var z = 0; z < o.globals.collapsedSeries.length; z++) {\n o.globals.collapsedSeries[z].index === s && (T = 1, a = 0);\n }\n\n 0 === t && 0 === e && (a = 0), h.animateCircle(v, {\n cx: k,\n cy: A,\n r: S\n }, {\n cx: t,\n cy: e,\n r: a\n }, T, o.globals.easing);\n } else v.attr({\n r: a\n });\n return v.attr({\n rel: r,\n j: r,\n index: s,\n \"default-marker-size\": a\n }), c.setSelectionFilter(v, s, r), g.addEvents(v), v.node.classList.add(\"apexcharts-marker\"), v;\n }\n }, {\n key: \"centerTextInBubble\",\n value: function value(t) {\n var e = this.w;\n return {\n y: t += parseInt(e.config.dataLabels.style.fontSize, 10) / 4\n };\n }\n }]), t;\n}(),\n z = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"dataLabelsCorrection\",\n value: function value(t, e, i, a, s, r, n) {\n var o = this.w,\n l = !1,\n h = new b(this.ctx).getTextRects(i, n),\n c = h.width,\n d = h.height;\n void 0 === o.globals.dataLabelsRects[a] && (o.globals.dataLabelsRects[a] = []), o.globals.dataLabelsRects[a].push({\n x: t,\n y: e,\n width: c,\n height: d\n });\n var g = o.globals.dataLabelsRects[a].length - 2,\n u = void 0 !== o.globals.lastDrawnDataLabelsIndexes[a] ? o.globals.lastDrawnDataLabelsIndexes[a][o.globals.lastDrawnDataLabelsIndexes[a].length - 1] : 0;\n\n if (void 0 !== o.globals.dataLabelsRects[a][g]) {\n var f = o.globals.dataLabelsRects[a][u];\n (t > f.x + f.width + 2 || e > f.y + f.height + 2 || t + c < f.x) && (l = !0);\n }\n\n return (0 === s || r) && (l = !0), {\n x: t,\n y: e,\n textRects: h,\n drawnextLabel: l\n };\n }\n }, {\n key: \"drawDataLabel\",\n value: function value(t, e, i) {\n var a = this,\n s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 2,\n r = this.w,\n n = new b(this.ctx),\n o = r.config.dataLabels,\n l = 0,\n h = 0,\n c = i,\n d = null;\n if (!o.enabled || !Array.isArray(t.x)) return d;\n d = n.group({\n class: \"apexcharts-data-labels\"\n });\n\n for (var g = 0; g < t.x.length; g++) {\n if (l = t.x[g] + o.offsetX, h = t.y[g] + o.offsetY + s, !isNaN(l)) {\n 1 === i && 0 === g && (c = 0), 1 === i && 1 === g && (c = 1);\n\n var u = r.globals.series[e][c],\n f = \"\",\n p = function p(t) {\n return r.config.dataLabels.formatter(t, {\n ctx: a.ctx,\n seriesIndex: e,\n dataPointIndex: c,\n w: r\n });\n };\n\n if (\"bubble\" === r.config.chart.type) {\n f = p(u = r.globals.seriesZ[e][c]), h = t.y[g];\n var x = new T(this.ctx),\n m = x.centerTextInBubble(h, e, c);\n h = m.y;\n } else void 0 !== u && (f = p(u));\n\n this.plotDataLabelsText({\n x: l,\n y: h,\n text: f,\n i: e,\n j: c,\n parent: d,\n offsetCorrection: !0,\n dataLabelsConfig: r.config.dataLabels\n });\n }\n }\n\n return d;\n }\n }, {\n key: \"plotDataLabelsText\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx),\n a = t.x,\n s = t.y,\n r = t.i,\n n = t.j,\n o = t.text,\n l = t.textAnchor,\n h = t.fontSize,\n c = t.parent,\n d = t.dataLabelsConfig,\n g = t.color,\n u = t.alwaysDrawDataLabel,\n f = t.offsetCorrection;\n\n if (!(Array.isArray(e.config.dataLabels.enabledOnSeries) && e.config.dataLabels.enabledOnSeries.indexOf(r) < 0)) {\n var x = {\n x: a,\n y: s,\n drawnextLabel: !0\n };\n f && (x = this.dataLabelsCorrection(a, s, o, r, n, u, parseInt(d.style.fontSize, 10))), e.globals.zoomed || (a = x.x, s = x.y), x.textRects;\n var m = e.globals.dataLabels.style.colors[r];\n ((\"bar\" === e.config.chart.type || \"rangeBar\" === e.config.chart.type) && e.config.plotOptions.bar.distributed || e.config.dataLabels.distributed) && (m = e.globals.dataLabels.style.colors[n]), g && (m = g);\n var v = d.offsetX,\n y = d.offsetY;\n\n if (\"bar\" !== e.config.chart.type && \"rangeBar\" !== e.config.chart.type || (v = 0, y = 0), x.drawnextLabel) {\n var w = i.drawText({\n width: 100,\n height: parseInt(d.style.fontSize, 10),\n x: a + v,\n y: s + y,\n foreColor: m,\n textAnchor: l || d.textAnchor,\n text: o,\n fontSize: h || d.style.fontSize,\n fontFamily: d.style.fontFamily,\n fontWeight: d.style.fontWeight || \"normal\"\n });\n\n if (w.attr({\n class: \"apexcharts-datalabel\",\n cx: a,\n cy: s\n }), d.dropShadow.enabled) {\n var k = d.dropShadow;\n new p(this.ctx).dropShadow(w, k);\n }\n\n c.add(w), void 0 === e.globals.lastDrawnDataLabelsIndexes[r] && (e.globals.lastDrawnDataLabelsIndexes[r] = []), e.globals.lastDrawnDataLabelsIndexes[r].push(n);\n }\n }\n }\n }, {\n key: \"addBackgroundToDataLabel\",\n value: function value(t, e) {\n var i = this.w,\n a = i.config.dataLabels.background,\n s = a.padding,\n r = a.padding / 2,\n n = e.width,\n o = e.height,\n l = new b(this.ctx).drawRect(e.x - s, e.y - r / 2, n + 2 * s, o + r, a.borderRadius, \"transparent\" === i.config.chart.background ? \"#fff\" : i.config.chart.background, a.opacity, a.borderWidth, a.borderColor);\n a.dropShadow.enabled && new p(this.ctx).dropShadow(l, a.dropShadow);\n return l;\n }\n }, {\n key: \"dataLabelsBackground\",\n value: function value() {\n var t = this.w;\n if (\"bubble\" !== t.config.chart.type) for (var e = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels text\"), i = 0; i < e.length; i++) {\n var a = e[i],\n s = a.getBBox(),\n r = null;\n\n if (s.width && s.height && (r = this.addBackgroundToDataLabel(a, s)), r) {\n a.parentNode.insertBefore(r.node, a);\n var n = a.getAttribute(\"fill\");\n t.config.chart.animations.enabled && !t.globals.resized && !t.globals.dataChanged ? r.animate().attr({\n fill: n\n }) : r.attr({\n fill: n\n }), a.setAttribute(\"fill\", t.config.dataLabels.background.foreColor);\n }\n }\n }\n }, {\n key: \"bringForward\",\n value: function value() {\n for (var t = this.w, e = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels\"), i = t.globals.dom.baseEl.querySelector(\".apexcharts-plot-series:last-child\"), a = 0; a < e.length; a++) {\n i && i.insertBefore(e[a], i.nextSibling);\n }\n }\n }]), t;\n}(),\n I = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.barCtx = i;\n }\n\n return a(t, [{\n key: \"handleBarDataLabels\",\n value: function value(t) {\n var e = t.x,\n i = t.y,\n a = t.y1,\n s = t.y2,\n r = t.i,\n n = t.j,\n o = t.realIndex,\n l = t.series,\n h = t.barHeight,\n c = t.barWidth,\n d = t.barYPosition,\n g = t.visibleSeries,\n u = t.renderedPath,\n f = this.w,\n p = new b(this.barCtx.ctx),\n x = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[o] : this.barCtx.strokeWidth,\n m = e + parseFloat(c * g),\n v = i + parseFloat(h * g);\n f.globals.isXNumeric && !f.globals.isBarHorizontal && (m = e + parseFloat(c * (g + 1)), v = i + parseFloat(h * (g + 1)) - x);\n var y = e,\n w = i,\n k = {},\n A = f.config.dataLabels,\n S = this.barCtx.barOptions.dataLabels;\n void 0 !== d && this.barCtx.isTimelineBar && (v = d, w = d);\n var C = A.offsetX,\n L = A.offsetY,\n P = {\n width: 0,\n height: 0\n };\n\n if (f.config.dataLabels.enabled) {\n var T = this.barCtx.series[r][n];\n P = p.getTextRects(f.globals.yLabelFormatters[0](T), parseFloat(A.style.fontSize));\n }\n\n var z = {\n x: e,\n y: i,\n i: r,\n j: n,\n renderedPath: u,\n bcx: m,\n bcy: v,\n barHeight: h,\n barWidth: c,\n textRects: P,\n strokeWidth: x,\n dataLabelsX: y,\n dataLabelsY: w,\n barDataLabelsConfig: S,\n offX: C,\n offY: L\n };\n return k = this.barCtx.isHorizontal ? this.calculateBarsDataLabelsPosition(z) : this.calculateColumnsDataLabelsPosition(z), u.attr({\n cy: k.bcy,\n cx: k.bcx,\n j: n,\n val: l[r][n],\n barHeight: h,\n barWidth: c\n }), this.drawCalculatedDataLabels({\n x: k.dataLabelsX,\n y: k.dataLabelsY,\n val: this.barCtx.isTimelineBar ? [a, s] : l[r][n],\n i: o,\n j: n,\n barWidth: c,\n barHeight: h,\n textRects: P,\n dataLabelsConfig: A\n });\n }\n }, {\n key: \"calculateColumnsDataLabelsPosition\",\n value: function value(t) {\n var e,\n i = this.w,\n a = t.i,\n s = t.j,\n r = t.y,\n n = t.bcx,\n o = t.barWidth,\n l = t.barHeight,\n h = t.textRects,\n c = t.dataLabelsY,\n d = t.barDataLabelsConfig,\n g = t.strokeWidth,\n u = t.offX,\n f = t.offY;\n l = Math.abs(l);\n var p = \"vertical\" === i.config.plotOptions.bar.dataLabels.orientation;\n n -= g / 2;\n var x = i.globals.gridWidth / i.globals.dataPoints;\n\n if (e = i.globals.isXNumeric ? n - o / 2 + u : n - x + o / 2 + u, p) {\n e = e + h.height / 2 - g / 2 - 2;\n }\n\n var b = this.barCtx.series[a][s] < 0,\n m = r;\n\n switch (this.barCtx.isReversed && (m = r - l + (b ? 2 * l : 0), r -= l), d.position) {\n case \"center\":\n c = p ? b ? m + l / 2 + f : m + l / 2 - f : b ? m - l / 2 + h.height / 2 + f : m + l / 2 + h.height / 2 - f;\n break;\n\n case \"bottom\":\n c = p ? b ? m + l + f : m + l - f : b ? m - l + h.height + g + f : m + l - h.height / 2 + g - f;\n break;\n\n case \"top\":\n c = p ? b ? m + f : m - f : b ? m - h.height / 2 - f : m + h.height + f;\n }\n\n return i.config.chart.stacked || (c < 0 ? c = 0 + g : c + h.height / 3 > i.globals.gridHeight && (c = i.globals.gridHeight - g)), {\n bcx: n,\n bcy: r,\n dataLabelsX: e,\n dataLabelsY: c\n };\n }\n }, {\n key: \"calculateBarsDataLabelsPosition\",\n value: function value(t) {\n var e = this.w,\n i = t.x,\n a = t.i,\n s = t.j,\n r = t.bcy,\n n = t.barHeight,\n o = t.barWidth,\n l = t.textRects,\n h = t.dataLabelsX,\n c = t.strokeWidth,\n d = t.barDataLabelsConfig,\n g = t.offX,\n u = t.offY,\n f = e.globals.gridHeight / e.globals.dataPoints;\n o = Math.abs(o);\n var p = r - (this.barCtx.isTimelineBar ? 0 : f) + n / 2 + l.height / 2 + u - 3,\n x = this.barCtx.series[a][s] < 0,\n b = i;\n\n switch (this.barCtx.isReversed && (b = i + o - (x ? 2 * o : 0), i = e.globals.gridWidth - o), d.position) {\n case \"center\":\n h = x ? b + o / 2 - g : Math.max(l.width / 2, b - o / 2) + g;\n break;\n\n case \"bottom\":\n h = x ? b + o - c - Math.round(l.width / 2) - g : b - o + c + Math.round(l.width / 2) + g;\n break;\n\n case \"top\":\n h = x ? b - c + Math.round(l.width / 2) - g : b - c - Math.round(l.width / 2) + g;\n }\n\n return e.config.chart.stacked || (h < 0 ? h = h + l.width + c : h + l.width / 2 > e.globals.gridWidth && (h = e.globals.gridWidth - l.width - c)), {\n bcx: i,\n bcy: r,\n dataLabelsX: h,\n dataLabelsY: p\n };\n }\n }, {\n key: \"drawCalculatedDataLabels\",\n value: function value(t) {\n var e = t.x,\n i = t.y,\n a = t.val,\n s = t.i,\n r = t.j,\n o = t.textRects,\n l = t.barHeight,\n h = t.barWidth,\n c = t.dataLabelsConfig,\n d = this.w,\n g = \"rotate(0)\";\n \"vertical\" === d.config.plotOptions.bar.dataLabels.orientation && (g = \"rotate(-90, \".concat(e, \", \").concat(i, \")\"));\n var u = new z(this.barCtx.ctx),\n f = new b(this.barCtx.ctx),\n p = c.formatter,\n x = null,\n m = d.globals.collapsedSeriesIndices.indexOf(s) > -1;\n\n if (c.enabled && !m) {\n x = f.group({\n class: \"apexcharts-data-labels\",\n transform: g\n });\n var v = \"\";\n void 0 !== a && (v = p(a, {\n seriesIndex: s,\n dataPointIndex: r,\n w: d\n })), 0 === a && d.config.chart.stacked && (v = \"\");\n var y = d.globals.series[s][r] <= 0,\n w = d.config.plotOptions.bar.dataLabels.position;\n if (\"vertical\" === d.config.plotOptions.bar.dataLabels.orientation && (\"top\" === w && (c.textAnchor = y ? \"end\" : \"start\"), \"center\" === w && (c.textAnchor = \"middle\"), \"bottom\" === w && (c.textAnchor = y ? \"end\" : \"start\")), this.barCtx.isTimelineBar && this.barCtx.barOptions.dataLabels.hideOverflowingLabels) h < f.getTextRects(v, parseFloat(c.style.fontSize)).width && (v = \"\");\n d.config.chart.stacked && this.barCtx.barOptions.dataLabels.hideOverflowingLabels && (this.barCtx.isHorizontal ? (h > 0 && o.width / 1.6 > h || h < 0 && o.width / 1.6 < h) && (v = \"\") : o.height / 1.6 > l && (v = \"\"));\n var k = n({}, c);\n this.barCtx.isHorizontal && a < 0 && (\"start\" === c.textAnchor ? k.textAnchor = \"end\" : \"end\" === c.textAnchor && (k.textAnchor = \"start\")), u.plotDataLabelsText({\n x: e,\n y: i,\n text: v,\n i: s,\n j: r,\n parent: x,\n dataLabelsConfig: k,\n alwaysDrawDataLabel: !0,\n offsetCorrection: !0\n });\n }\n\n return x;\n }\n }]), t;\n}(),\n M = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.legendInactiveClass = \"legend-mouseover-inactive\";\n }\n\n return a(t, [{\n key: \"getAllSeriesEls\",\n value: function value() {\n return this.w.globals.dom.baseEl.getElementsByClassName(\"apexcharts-series\");\n }\n }, {\n key: \"getSeriesByName\",\n value: function value(t) {\n return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner .apexcharts-series[seriesName='\".concat(f.escapeString(t), \"']\"));\n }\n }, {\n key: \"isSeriesHidden\",\n value: function value(t) {\n var e = this.getSeriesByName(t),\n i = parseInt(e.getAttribute(\"data:realIndex\"), 10);\n return {\n isHidden: e.classList.contains(\"apexcharts-series-collapsed\"),\n realIndex: i\n };\n }\n }, {\n key: \"addCollapsedClassToSeries\",\n value: function value(t, e) {\n var i = this.w;\n\n function a(i) {\n for (var a = 0; a < i.length; a++) {\n i[a].index === e && t.node.classList.add(\"apexcharts-series-collapsed\");\n }\n }\n\n a(i.globals.collapsedSeries), a(i.globals.ancillaryCollapsedSeries);\n }\n }, {\n key: \"toggleSeries\",\n value: function value(t) {\n var e = this.isSeriesHidden(t);\n return this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, e.isHidden), e.isHidden;\n }\n }, {\n key: \"showSeries\",\n value: function value(t) {\n var e = this.isSeriesHidden(t);\n e.isHidden && this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, !0);\n }\n }, {\n key: \"hideSeries\",\n value: function value(t) {\n var e = this.isSeriesHidden(t);\n e.isHidden || this.ctx.legend.legendHelpers.toggleDataSeries(e.realIndex, !1);\n }\n }, {\n key: \"resetSeries\",\n value: function value() {\n var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0],\n e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],\n i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],\n a = this.w,\n s = f.clone(a.globals.initialSeries);\n a.globals.previousPaths = [], i ? (a.globals.collapsedSeries = [], a.globals.ancillaryCollapsedSeries = [], a.globals.collapsedSeriesIndices = [], a.globals.ancillaryCollapsedSeriesIndices = []) : s = this.emptyCollapsedSeries(s), a.config.series = s, t && (e && (a.globals.zoomed = !1, this.ctx.updateHelpers.revertDefaultAxisMinMax()), this.ctx.updateHelpers._updateSeries(s, a.config.chart.animations.dynamicAnimation.enabled));\n }\n }, {\n key: \"emptyCollapsedSeries\",\n value: function value(t) {\n for (var e = this.w, i = 0; i < t.length; i++) {\n e.globals.collapsedSeriesIndices.indexOf(i) > -1 && (t[i].data = []);\n }\n\n return t;\n }\n }, {\n key: \"toggleSeriesOnHover\",\n value: function value(t, e) {\n var i = this.w,\n a = i.globals.dom.baseEl.querySelectorAll(\".apexcharts-series, .apexcharts-datalabels\");\n\n if (\"mousemove\" === t.type) {\n var s = parseInt(e.getAttribute(\"rel\"), 10) - 1,\n r = null,\n n = null;\n i.globals.axisCharts || \"radialBar\" === i.config.chart.type ? i.globals.axisCharts ? (r = i.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(s, \"']\")), n = i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels[data\\\\:realIndex='\".concat(s, \"']\"))) : r = i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s + 1, \"']\")) : r = i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s + 1, \"'] path\"));\n\n for (var o = 0; o < a.length; o++) {\n a[o].classList.add(this.legendInactiveClass);\n }\n\n null !== r && (i.globals.axisCharts || r.parentNode.classList.remove(this.legendInactiveClass), r.classList.remove(this.legendInactiveClass), null !== n && n.classList.remove(this.legendInactiveClass));\n } else if (\"mouseout\" === t.type) for (var l = 0; l < a.length; l++) {\n a[l].classList.remove(this.legendInactiveClass);\n }\n }\n }, {\n key: \"highlightRangeInSeries\",\n value: function value(t, e) {\n var i = this,\n a = this.w,\n s = a.globals.dom.baseEl.getElementsByClassName(\"apexcharts-heatmap-rect\"),\n r = function r(t) {\n for (var e = 0; e < s.length; e++) {\n s[e].classList[t](i.legendInactiveClass);\n }\n };\n\n if (\"mousemove\" === t.type) {\n var n = parseInt(e.getAttribute(\"rel\"), 10) - 1;\n r(\"add\"), function (t) {\n for (var e = 0; e < s.length; e++) {\n var a = parseInt(s[e].getAttribute(\"val\"), 10);\n a >= t.from && a <= t.to && s[e].classList.remove(i.legendInactiveClass);\n }\n }(a.config.plotOptions.heatmap.colorScale.ranges[n]);\n } else \"mouseout\" === t.type && r(\"remove\");\n }\n }, {\n key: \"getActiveConfigSeriesIndex\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0],\n e = this.w,\n i = 0;\n if (e.config.series.length > 1) for (var a = e.config.series.map(function (i, a) {\n var s = !1;\n return t && (s = \"bar\" === e.config.series[a].type || \"column\" === e.config.series[a].type), i.data && i.data.length > 0 && !s ? a : -1;\n }), s = 0; s < a.length; s++) {\n if (-1 !== a[s]) {\n i = a[s];\n break;\n }\n }\n return i;\n }\n }, {\n key: \"getPreviousPaths\",\n value: function value() {\n var t = this.w;\n\n function e(e, i, a) {\n for (var s = e[i].childNodes, r = {\n type: a,\n paths: [],\n realIndex: e[i].getAttribute(\"data:realIndex\")\n }, n = 0; n < s.length; n++) {\n if (s[n].hasAttribute(\"pathTo\")) {\n var o = s[n].getAttribute(\"pathTo\");\n r.paths.push({\n d: o\n });\n }\n }\n\n t.globals.previousPaths.push(r);\n }\n\n t.globals.previousPaths = [];\n [\"line\", \"area\", \"bar\", \"rangebar\", \"candlestick\", \"radar\"].forEach(function (i) {\n for (var a, s = (a = i, t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(a, \"-series .apexcharts-series\"))), r = 0; r < s.length; r++) {\n e(s, r, i);\n }\n }), this.handlePrevBubbleScatterPaths(\"bubble\"), this.handlePrevBubbleScatterPaths(\"scatter\");\n var i = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type, \" .apexcharts-series\"));\n if (i.length > 0) for (var a = function a(e) {\n for (var i = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type, \" .apexcharts-series[data\\\\:realIndex='\").concat(e, \"'] rect\")), a = [], s = function s(t) {\n var e = function e(_e) {\n return i[t].getAttribute(_e);\n },\n s = {\n x: parseFloat(e(\"x\")),\n y: parseFloat(e(\"y\")),\n width: parseFloat(e(\"width\")),\n height: parseFloat(e(\"height\"))\n };\n\n a.push({\n rect: s,\n color: i[t].getAttribute(\"color\")\n });\n }, r = 0; r < i.length; r++) {\n s(r);\n }\n\n t.globals.previousPaths.push(a);\n }, s = 0; s < i.length; s++) {\n a(s);\n }\n t.globals.axisCharts || (t.globals.previousPaths = t.globals.series);\n }\n }, {\n key: \"handlePrevBubbleScatterPaths\",\n value: function value(t) {\n var e = this.w,\n i = e.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t, \"-series .apexcharts-series\"));\n if (i.length > 0) for (var a = 0; a < i.length; a++) {\n for (var s = e.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t, \"-series .apexcharts-series[data\\\\:realIndex='\").concat(a, \"'] circle\")), r = [], n = 0; n < s.length; n++) {\n r.push({\n x: s[n].getAttribute(\"cx\"),\n y: s[n].getAttribute(\"cy\"),\n r: s[n].getAttribute(\"r\")\n });\n }\n\n e.globals.previousPaths.push(r);\n }\n }\n }, {\n key: \"clearPreviousPaths\",\n value: function value() {\n var t = this.w;\n t.globals.previousPaths = [], t.globals.allSeriesCollapsed = !1;\n }\n }, {\n key: \"handleNoData\",\n value: function value() {\n var t = this.w,\n e = t.config.noData,\n i = new b(this.ctx),\n a = t.globals.svgWidth / 2,\n s = t.globals.svgHeight / 2,\n r = \"middle\";\n\n if (t.globals.noData = !0, t.globals.animationEnded = !0, \"left\" === e.align ? (a = 10, r = \"start\") : \"right\" === e.align && (a = t.globals.svgWidth - 10, r = \"end\"), \"top\" === e.verticalAlign ? s = 50 : \"bottom\" === e.verticalAlign && (s = t.globals.svgHeight - 50), a += e.offsetX, s = s + parseInt(e.style.fontSize, 10) + 2 + e.offsetY, void 0 !== e.text && \"\" !== e.text) {\n var n = i.drawText({\n x: a,\n y: s,\n text: e.text,\n textAnchor: r,\n fontSize: e.style.fontSize,\n fontFamily: e.style.fontFamily,\n foreColor: e.style.color,\n opacity: 1,\n class: \"apexcharts-text-nodata\"\n });\n t.globals.dom.Paper.add(n);\n }\n }\n }, {\n key: \"setNullSeriesToZeroValues\",\n value: function value(t) {\n for (var e = this.w, i = 0; i < t.length; i++) {\n if (0 === t[i].length) for (var a = 0; a < t[e.globals.maxValsInArrayIndex].length; a++) {\n t[i].push(0);\n }\n }\n\n return t;\n }\n }, {\n key: \"hasAllSeriesEqualX\",\n value: function value() {\n for (var t = !0, e = this.w, i = this.filteredSeriesX(), a = 0; a < i.length - 1; a++) {\n if (i[a][0] !== i[a + 1][0]) {\n t = !1;\n break;\n }\n }\n\n return e.globals.allSeriesHasEqualX = t, t;\n }\n }, {\n key: \"filteredSeriesX\",\n value: function value() {\n var t = this.w.globals.seriesX.map(function (t) {\n return t.length > 0 ? t : [];\n });\n return t;\n }\n }]), t;\n}(),\n E = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.barCtx = i;\n }\n\n return a(t, [{\n key: \"initVariables\",\n value: function value(t) {\n var e = this.w;\n this.barCtx.series = t, this.barCtx.totalItems = 0, this.barCtx.seriesLen = 0, this.barCtx.visibleI = -1, this.barCtx.visibleItems = 1;\n\n for (var i = 0; i < t.length; i++) {\n if (t[i].length > 0 && (this.barCtx.seriesLen = this.barCtx.seriesLen + 1, this.barCtx.totalItems += t[i].length), e.globals.isXNumeric) for (var a = 0; a < t[i].length; a++) {\n e.globals.seriesX[i][a] > e.globals.minX && e.globals.seriesX[i][a] < e.globals.maxX && this.barCtx.visibleItems++;\n } else this.barCtx.visibleItems = e.globals.dataPoints;\n }\n\n 0 === this.barCtx.seriesLen && (this.barCtx.seriesLen = 1);\n }\n }, {\n key: \"initialPositions\",\n value: function value() {\n var t,\n e,\n i,\n a,\n s,\n r,\n n,\n o,\n l = this.w,\n h = l.globals.dataPoints;\n this.barCtx.isTimelineBar && (h = l.globals.labels.length);\n var c = this.barCtx.seriesLen;\n if (l.config.plotOptions.bar.rangeBarGroupRows && (c = 1), this.barCtx.isHorizontal) s = (i = l.globals.gridHeight / h) / c, l.globals.isXNumeric && (s = (i = l.globals.gridHeight / this.barCtx.totalItems) / this.barCtx.seriesLen), s = s * parseInt(this.barCtx.barOptions.barHeight, 10) / 100, o = this.barCtx.baseLineInvertedY + l.globals.padHorizontal + (this.barCtx.isReversed ? l.globals.gridWidth : 0) - (this.barCtx.isReversed ? 2 * this.barCtx.baseLineInvertedY : 0), e = (i - s * this.barCtx.seriesLen) / 2;else {\n if (a = l.globals.gridWidth / this.barCtx.visibleItems, l.config.xaxis.convertedCatToNumeric && (a = l.globals.gridWidth / l.globals.dataPoints), r = a / this.barCtx.seriesLen * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100, l.globals.isXNumeric) {\n var d = this.barCtx.xRatio;\n l.config.xaxis.convertedCatToNumeric && (d = this.barCtx.initialXRatio), l.globals.minXDiff && .5 !== l.globals.minXDiff && l.globals.minXDiff / d > 0 && (a = l.globals.minXDiff / d), (r = a / this.barCtx.seriesLen * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100) < 1 && (r = 1);\n }\n\n n = l.globals.gridHeight - this.barCtx.baseLineY[this.barCtx.yaxisIndex] - (this.barCtx.isReversed ? l.globals.gridHeight : 0) + (this.barCtx.isReversed ? 2 * this.barCtx.baseLineY[this.barCtx.yaxisIndex] : 0), t = l.globals.padHorizontal + (a - r * this.barCtx.seriesLen) / 2;\n }\n return {\n x: t,\n y: e,\n yDivision: i,\n xDivision: a,\n barHeight: s,\n barWidth: r,\n zeroH: n,\n zeroW: o\n };\n }\n }, {\n key: \"getPathFillColor\",\n value: function value(t, e, i, a) {\n var s = this.w,\n r = new L(this.barCtx.ctx),\n n = null,\n o = this.barCtx.barOptions.distributed ? i : e;\n this.barCtx.barOptions.colors.ranges.length > 0 && this.barCtx.barOptions.colors.ranges.map(function (a) {\n t[e][i] >= a.from && t[e][i] <= a.to && (n = a.color);\n });\n return s.config.series[e].data[i] && s.config.series[e].data[i].fillColor && (n = s.config.series[e].data[i].fillColor), r.fillPath({\n seriesNumber: this.barCtx.barOptions.distributed ? o : a,\n dataPointIndex: i,\n color: n,\n value: t[e][i]\n });\n }\n }, {\n key: \"getStrokeWidth\",\n value: function value(t, e, i) {\n var a = 0,\n s = this.w;\n return void 0 === this.barCtx.series[t][e] || null === this.barCtx.series[t][e] ? this.barCtx.isNullValue = !0 : this.barCtx.isNullValue = !1, s.config.stroke.show && (this.barCtx.isNullValue || (a = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[i] : this.barCtx.strokeWidth)), a;\n }\n }, {\n key: \"barBackground\",\n value: function value(t) {\n var e = t.j,\n i = t.i,\n a = t.x1,\n s = t.x2,\n r = t.y1,\n n = t.y2,\n o = t.elSeries,\n l = this.w,\n h = new b(this.barCtx.ctx),\n c = new M(this.barCtx.ctx).getActiveConfigSeriesIndex();\n\n if (this.barCtx.barOptions.colors.backgroundBarColors.length > 0 && c === i) {\n e >= this.barCtx.barOptions.colors.backgroundBarColors.length && (e -= this.barCtx.barOptions.colors.backgroundBarColors.length);\n var d = this.barCtx.barOptions.colors.backgroundBarColors[e],\n g = h.drawRect(void 0 !== a ? a : 0, void 0 !== r ? r : 0, void 0 !== s ? s : l.globals.gridWidth, void 0 !== n ? n : l.globals.gridHeight, this.barCtx.barOptions.colors.backgroundBarRadius, d, this.barCtx.barOptions.colors.backgroundBarOpacity);\n o.add(g), g.node.classList.add(\"apexcharts-backgroundBar\");\n }\n }\n }, {\n key: \"getColumnPaths\",\n value: function value(t) {\n var e = t.barWidth,\n i = t.barXPosition,\n a = t.yRatio,\n s = t.y1,\n r = t.y2,\n n = t.strokeWidth,\n o = t.series,\n l = t.realIndex,\n h = t.i,\n c = t.j,\n d = t.w,\n g = new b(this.barCtx.ctx);\n (n = Array.isArray(n) ? n[l] : n) || (n = 0);\n var u = {\n barWidth: e,\n strokeWidth: n,\n yRatio: a,\n barXPosition: i,\n y1: s,\n y2: r\n },\n f = this.getRoundedBars(d, u, o, h, c),\n p = i,\n x = i + e,\n m = g.move(p, f.y1),\n v = g.move(p, f.y1);\n return d.globals.previousPaths.length > 0 && (v = this.barCtx.getPreviousPath(l, c, !1)), {\n pathTo: m = m + g.line(p, f.y2) + f.endingPath + g.line(x - n, f.y2) + g.line(x - n, f.y1) + f.startingPath + \"z\",\n pathFrom: v = v + g.line(p, s) + g.line(x - n, s) + g.line(x - n, s) + g.line(x - n, s) + g.line(p, s)\n };\n }\n }, {\n key: \"getBarpaths\",\n value: function value(t) {\n var e = t.barYPosition,\n i = t.barHeight,\n a = t.x1,\n s = t.x2,\n r = t.strokeWidth,\n n = t.series,\n o = t.realIndex,\n l = t.i,\n h = t.j,\n c = t.w,\n d = new b(this.barCtx.ctx);\n (r = Array.isArray(r) ? r[o] : r) || (r = 0);\n var g = {\n barHeight: i,\n strokeWidth: r,\n barYPosition: e,\n x2: s,\n x1: a\n },\n u = this.getRoundedBars(c, g, n, l, h),\n f = d.move(u.x1, e),\n p = d.move(u.x1, e);\n c.globals.previousPaths.length > 0 && (p = this.barCtx.getPreviousPath(o, h, !1));\n var x = e,\n m = e + i;\n return {\n pathTo: f = f + d.line(u.x2, x) + u.endingPath + d.line(u.x2, m - r) + d.line(u.x1, m - r) + u.startingPath + \"z\",\n pathFrom: p = p + d.line(a, x) + d.line(a, m - r) + d.line(a, m - r) + d.line(a, m - r) + d.line(a, x)\n };\n }\n }, {\n key: \"getRoundedBars\",\n value: function value(t, e, i, a, s) {\n var r = new b(this.barCtx.ctx),\n n = Array.isArray(e.strokeWidth) ? e.strokeWidth[a] : e.strokeWidth;\n\n if (n || (n = 0), this.barCtx.isHorizontal) {\n var o = null,\n l = \"\",\n h = e.x2,\n c = e.x1;\n\n if (void 0 !== i[a][s] || null !== i[a][s]) {\n var d = i[a][s] < 0,\n g = e.barHeight / 2 - n;\n\n switch (d && (g = -e.barHeight / 2 - n), g > Math.abs(h - c) && (g = Math.abs(h - c)), \"rounded\" === this.barCtx.barOptions.endingShape && (h = e.x2 - g / 2), \"rounded\" === this.barCtx.barOptions.startingShape && (c = e.x1 + g / 2), this.barCtx.barOptions.endingShape) {\n case \"flat\":\n o = r.line(h, e.barYPosition + e.barHeight - n);\n break;\n\n case \"rounded\":\n o = r.quadraticCurve(h + g, e.barYPosition + (e.barHeight - n) / 2, h, e.barYPosition + e.barHeight - n);\n }\n\n switch (this.barCtx.barOptions.startingShape) {\n case \"flat\":\n l = r.line(c, e.barYPosition + e.barHeight - n);\n break;\n\n case \"rounded\":\n l = r.quadraticCurve(c - g, e.barYPosition + e.barHeight / 2, c, e.barYPosition);\n }\n }\n\n return {\n endingPath: o,\n startingPath: l,\n x2: h,\n x1: c\n };\n }\n\n var u = null,\n f = \"\",\n p = e.y2,\n x = e.y1;\n\n if (void 0 !== i[a][s] || null !== i[a][s]) {\n var m = i[a][s] < 0,\n v = e.barWidth / 2 - n;\n\n switch (m && (v = -e.barWidth / 2 - n), v > Math.abs(p - x) && (v = Math.abs(p - x)), \"rounded\" === this.barCtx.barOptions.endingShape && (p += v / 2), \"rounded\" === this.barCtx.barOptions.startingShape && (x -= v / 2), this.barCtx.barOptions.endingShape) {\n case \"flat\":\n u = r.line(e.barXPosition + e.barWidth - n, p);\n break;\n\n case \"rounded\":\n u = r.quadraticCurve(e.barXPosition + (e.barWidth - n) / 2, p - v, e.barXPosition + e.barWidth - n, p);\n }\n\n switch (this.barCtx.barOptions.startingShape) {\n case \"flat\":\n f = r.line(e.barXPosition + e.barWidth - n, x);\n break;\n\n case \"rounded\":\n f = r.quadraticCurve(e.barXPosition + (e.barWidth - n) / 2, x + v, e.barXPosition, x);\n }\n }\n\n return {\n endingPath: u,\n startingPath: f,\n y2: p,\n y1: x\n };\n }\n }]), t;\n}(),\n X = function () {\n function t(i, a) {\n e(this, t), this.ctx = i, this.w = i.w;\n var s = this.w;\n this.barOptions = s.config.plotOptions.bar, this.isHorizontal = this.barOptions.horizontal, this.strokeWidth = s.config.stroke.width, this.isNullValue = !1, this.isTimelineBar = \"datetime\" === s.config.xaxis.type && s.globals.seriesRangeBarTimeline.length, this.xyRatios = a, null !== this.xyRatios && (this.xRatio = a.xRatio, this.initialXRatio = a.initialXRatio, this.yRatio = a.yRatio, this.invertedXRatio = a.invertedXRatio, this.invertedYRatio = a.invertedYRatio, this.baseLineY = a.baseLineY, this.baseLineInvertedY = a.baseLineInvertedY), this.yaxisIndex = 0, this.seriesLen = 0, this.barHelpers = new E(this);\n }\n\n return a(t, [{\n key: \"draw\",\n value: function value(t, e) {\n var i = this.w,\n a = new b(this.ctx),\n s = new y(this.ctx, i);\n t = s.getLogSeries(t), this.series = t, this.yRatio = s.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t);\n var r = a.group({\n class: \"apexcharts-bar-series apexcharts-plot-series\"\n });\n i.config.dataLabels.enabled && this.totalItems > this.barOptions.dataLabels.maxItems && console.warn(\"WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.\");\n\n for (var o = 0, l = 0; o < t.length; o++, l++) {\n var h,\n c,\n d,\n g,\n u = void 0,\n p = void 0,\n x = [],\n m = [],\n v = i.globals.comboCharts ? e[o] : o,\n w = a.group({\n class: \"apexcharts-series\",\n rel: o + 1,\n seriesName: f.escapeString(i.globals.seriesNames[v]),\n \"data:realIndex\": v\n });\n this.ctx.series.addCollapsedClassToSeries(w, v), t[o].length > 0 && (this.visibleI = this.visibleI + 1);\n var k = 0,\n A = 0;\n this.yRatio.length > 1 && (this.yaxisIndex = v), this.isReversed = i.config.yaxis[this.yaxisIndex] && i.config.yaxis[this.yaxisIndex].reversed;\n var S = this.barHelpers.initialPositions();\n p = S.y, k = S.barHeight, c = S.yDivision, g = S.zeroW, u = S.x, A = S.barWidth, h = S.xDivision, d = S.zeroH, this.horizontal || m.push(u + A / 2);\n\n for (var C = a.group({\n class: \"apexcharts-datalabels\",\n \"data:realIndex\": v\n }), L = 0; L < i.globals.dataPoints; L++) {\n var P = this.barHelpers.getStrokeWidth(o, L, v),\n T = null,\n z = {\n indexes: {\n i: o,\n j: L,\n realIndex: v,\n bc: l\n },\n x: u,\n y: p,\n strokeWidth: P,\n elSeries: w\n };\n this.isHorizontal ? (T = this.drawBarPaths(n(n({}, z), {}, {\n barHeight: k,\n zeroW: g,\n yDivision: c\n })), A = this.series[o][L] / this.invertedYRatio) : (T = this.drawColumnPaths(n(n({}, z), {}, {\n xDivision: h,\n barWidth: A,\n zeroH: d\n })), k = this.series[o][L] / this.yRatio[this.yaxisIndex]), p = T.y, u = T.x, L > 0 && m.push(u + A / 2), x.push(p);\n var I = this.barHelpers.getPathFillColor(t, o, L, v);\n this.renderSeries({\n realIndex: v,\n pathFill: I,\n j: L,\n i: o,\n pathFrom: T.pathFrom,\n pathTo: T.pathTo,\n strokeWidth: P,\n elSeries: w,\n x: u,\n y: p,\n series: t,\n barHeight: k,\n barWidth: A,\n elDataLabelsWrap: C,\n visibleSeries: this.visibleI,\n type: \"bar\"\n });\n }\n\n i.globals.seriesXvalues[v] = m, i.globals.seriesYvalues[v] = x, r.add(w);\n }\n\n return r;\n }\n }, {\n key: \"renderSeries\",\n value: function value(t) {\n var e = t.realIndex,\n i = t.pathFill,\n a = t.lineFill,\n s = t.j,\n r = t.i,\n n = t.pathFrom,\n o = t.pathTo,\n l = t.strokeWidth,\n h = t.elSeries,\n c = t.x,\n d = t.y,\n g = t.y1,\n u = t.y2,\n f = t.series,\n x = t.barHeight,\n m = t.barWidth,\n v = t.barYPosition,\n y = t.elDataLabelsWrap,\n w = t.visibleSeries,\n k = t.type,\n A = this.w,\n S = new b(this.ctx);\n a || (a = this.barOptions.distributed ? A.globals.stroke.colors[s] : A.globals.stroke.colors[e]), A.config.series[r].data[s] && A.config.series[r].data[s].strokeColor && (a = A.config.series[r].data[s].strokeColor), this.isNullValue && (i = \"none\");\n var C = s / A.config.chart.animations.animateGradually.delay * (A.config.chart.animations.speed / A.globals.dataPoints) / 2.4,\n L = S.renderPaths({\n i: r,\n j: s,\n realIndex: e,\n pathFrom: n,\n pathTo: o,\n stroke: a,\n strokeWidth: l,\n strokeLineCap: A.config.stroke.lineCap,\n fill: i,\n animationDelay: C,\n initialSpeed: A.config.chart.animations.speed,\n dataChangeSpeed: A.config.chart.animations.dynamicAnimation.speed,\n className: \"apexcharts-\".concat(k, \"-area\")\n });\n L.attr(\"clip-path\", \"url(#gridRectMask\".concat(A.globals.cuid, \")\")), void 0 !== g && void 0 !== u && (L.attr(\"data-range-y1\", g), L.attr(\"data-range-y2\", u)), new p(this.ctx).setSelectionFilter(L, e, s), h.add(L);\n var P = new I(this).handleBarDataLabels({\n x: c,\n y: d,\n y1: g,\n y2: u,\n i: r,\n j: s,\n series: f,\n realIndex: e,\n barHeight: x,\n barWidth: m,\n barYPosition: v,\n renderedPath: L,\n visibleSeries: w\n });\n return null !== P && y.add(P), h.add(y), h;\n }\n }, {\n key: \"drawBarPaths\",\n value: function value(t) {\n var e = t.indexes,\n i = t.barHeight,\n a = t.strokeWidth,\n s = t.zeroW,\n r = t.x,\n n = t.y,\n o = t.yDivision,\n l = t.elSeries,\n h = this.w,\n c = e.i,\n d = e.j;\n h.globals.isXNumeric && (n = (h.globals.seriesX[c][d] - h.globals.minX) / this.invertedXRatio - i);\n var g = n + i * this.visibleI;\n r = void 0 === this.series[c][d] || null === this.series[c][d] ? s : s + this.series[c][d] / this.invertedYRatio - 2 * (this.isReversed ? this.series[c][d] / this.invertedYRatio : 0);\n var u = this.barHelpers.getBarpaths({\n barYPosition: g,\n barHeight: i,\n x1: s,\n x2: r,\n strokeWidth: a,\n series: this.series,\n realIndex: e.realIndex,\n i: c,\n j: d,\n w: h\n });\n return h.globals.isXNumeric || (n += o), this.barHelpers.barBackground({\n j: d,\n i: c,\n y1: g - i * this.visibleI,\n y2: i * this.seriesLen,\n elSeries: l\n }), {\n pathTo: u.pathTo,\n pathFrom: u.pathFrom,\n x: r,\n y: n,\n barYPosition: g\n };\n }\n }, {\n key: \"drawColumnPaths\",\n value: function value(t) {\n var e = t.indexes,\n i = t.x,\n a = t.y,\n s = t.xDivision,\n r = t.barWidth,\n n = t.zeroH,\n o = t.strokeWidth,\n l = t.elSeries,\n h = this.w,\n c = e.i,\n d = e.j,\n g = e.bc;\n\n if (h.globals.isXNumeric) {\n var u = c;\n h.globals.seriesX[c].length || (u = h.globals.maxValsInArrayIndex), i = (h.globals.seriesX[u][d] - h.globals.minX) / this.xRatio - r * this.seriesLen / 2;\n }\n\n var f = i + r * this.visibleI;\n a = void 0 === this.series[c][d] || null === this.series[c][d] ? n : n - this.series[c][d] / this.yRatio[this.yaxisIndex] + 2 * (this.isReversed ? this.series[c][d] / this.yRatio[this.yaxisIndex] : 0);\n var p = this.barHelpers.getColumnPaths({\n barXPosition: f,\n barWidth: r,\n y1: n,\n y2: a,\n strokeWidth: o,\n series: this.series,\n realIndex: e.realIndex,\n i: c,\n j: d,\n w: h\n });\n return h.globals.isXNumeric || (i += s), this.barHelpers.barBackground({\n bc: g,\n j: d,\n i: c,\n x1: f - o / 2 - r * this.visibleI,\n x2: r * this.seriesLen + o / 2,\n elSeries: l\n }), {\n pathTo: p.pathTo,\n pathFrom: p.pathFrom,\n x: i,\n y: a,\n barXPosition: f\n };\n }\n }, {\n key: \"getPreviousPath\",\n value: function value(t, e) {\n for (var i, a = this.w, s = 0; s < a.globals.previousPaths.length; s++) {\n var r = a.globals.previousPaths[s];\n r.paths && r.paths.length > 0 && parseInt(r.realIndex, 10) === parseInt(t, 10) && void 0 !== a.globals.previousPaths[s].paths[e] && (i = a.globals.previousPaths[s].paths[e].d);\n }\n\n return i;\n }\n }]), t;\n}(),\n Y = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.months31 = [1, 3, 5, 7, 8, 10, 12], this.months30 = [2, 4, 6, 9, 11], this.daysCntOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n }\n\n return a(t, [{\n key: \"isValidDate\",\n value: function value(t) {\n return !isNaN(this.parseDate(t));\n }\n }, {\n key: \"getTimeStamp\",\n value: function value(t) {\n return Date.parse(t) ? this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(t).toISOString().substr(0, 25)).getTime() : new Date(t).getTime() : t;\n }\n }, {\n key: \"getDate\",\n value: function value(t) {\n return this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(t).toUTCString()) : new Date(t);\n }\n }, {\n key: \"parseDate\",\n value: function value(t) {\n var e = Date.parse(t);\n if (!isNaN(e)) return this.getTimeStamp(t);\n var i = Date.parse(t.replace(/-/g, \"/\").replace(/[a-z]+/gi, \" \"));\n return i = this.getTimeStamp(i);\n }\n }, {\n key: \"parseDateWithTimezone\",\n value: function value(t) {\n return Date.parse(t.replace(/-/g, \"/\").replace(/[a-z]+/gi, \" \"));\n }\n }, {\n key: \"formatDate\",\n value: function value(t, e) {\n var i = this.w.globals.locale,\n a = this.w.config.xaxis.labels.datetimeUTC,\n s = [\"\\0\"].concat(g(i.months)),\n r = [\"\\x01\"].concat(g(i.shortMonths)),\n n = [\"\\x02\"].concat(g(i.days)),\n o = [\"\\x03\"].concat(g(i.shortDays));\n\n function l(t, e) {\n var i = t + \"\";\n\n for (e = e || 2; i.length < e;) {\n i = \"0\" + i;\n }\n\n return i;\n }\n\n var h = a ? t.getUTCFullYear() : t.getFullYear();\n e = (e = (e = e.replace(/(^|[^\\\\])yyyy+/g, \"$1\" + h)).replace(/(^|[^\\\\])yy/g, \"$1\" + h.toString().substr(2, 2))).replace(/(^|[^\\\\])y/g, \"$1\" + h);\n var c = (a ? t.getUTCMonth() : t.getMonth()) + 1;\n e = (e = (e = (e = e.replace(/(^|[^\\\\])MMMM+/g, \"$1\" + s[0])).replace(/(^|[^\\\\])MMM/g, \"$1\" + r[0])).replace(/(^|[^\\\\])MM/g, \"$1\" + l(c))).replace(/(^|[^\\\\])M/g, \"$1\" + c);\n var d = a ? t.getUTCDate() : t.getDate();\n e = (e = (e = (e = e.replace(/(^|[^\\\\])dddd+/g, \"$1\" + n[0])).replace(/(^|[^\\\\])ddd/g, \"$1\" + o[0])).replace(/(^|[^\\\\])dd/g, \"$1\" + l(d))).replace(/(^|[^\\\\])d/g, \"$1\" + d);\n var u = a ? t.getUTCHours() : t.getHours(),\n f = u > 12 ? u - 12 : 0 === u ? 12 : u;\n e = (e = (e = (e = e.replace(/(^|[^\\\\])HH+/g, \"$1\" + l(u))).replace(/(^|[^\\\\])H/g, \"$1\" + u)).replace(/(^|[^\\\\])hh+/g, \"$1\" + l(f))).replace(/(^|[^\\\\])h/g, \"$1\" + f);\n var p = a ? t.getUTCMinutes() : t.getMinutes();\n e = (e = e.replace(/(^|[^\\\\])mm+/g, \"$1\" + l(p))).replace(/(^|[^\\\\])m/g, \"$1\" + p);\n var x = a ? t.getUTCSeconds() : t.getSeconds();\n e = (e = e.replace(/(^|[^\\\\])ss+/g, \"$1\" + l(x))).replace(/(^|[^\\\\])s/g, \"$1\" + x);\n var b = a ? t.getUTCMilliseconds() : t.getMilliseconds();\n e = e.replace(/(^|[^\\\\])fff+/g, \"$1\" + l(b, 3)), b = Math.round(b / 10), e = e.replace(/(^|[^\\\\])ff/g, \"$1\" + l(b)), b = Math.round(b / 10);\n var m = u < 12 ? \"AM\" : \"PM\";\n e = (e = (e = e.replace(/(^|[^\\\\])f/g, \"$1\" + b)).replace(/(^|[^\\\\])TT+/g, \"$1\" + m)).replace(/(^|[^\\\\])T/g, \"$1\" + m.charAt(0));\n var v = m.toLowerCase();\n e = (e = e.replace(/(^|[^\\\\])tt+/g, \"$1\" + v)).replace(/(^|[^\\\\])t/g, \"$1\" + v.charAt(0));\n var y = -t.getTimezoneOffset(),\n w = a || !y ? \"Z\" : y > 0 ? \"+\" : \"-\";\n\n if (!a) {\n var k = (y = Math.abs(y)) % 60;\n w += l(Math.floor(y / 60)) + \":\" + l(k);\n }\n\n e = e.replace(/(^|[^\\\\])K/g, \"$1\" + w);\n var A = (a ? t.getUTCDay() : t.getDay()) + 1;\n return e = (e = (e = (e = (e = e.replace(new RegExp(n[0], \"g\"), n[A])).replace(new RegExp(o[0], \"g\"), o[A])).replace(new RegExp(s[0], \"g\"), s[c])).replace(new RegExp(r[0], \"g\"), r[c])).replace(/\\\\(.)/g, \"$1\");\n }\n }, {\n key: \"getTimeUnitsfromTimestamp\",\n value: function value(t, e, i) {\n var a = this.w;\n void 0 !== a.config.xaxis.min && (t = a.config.xaxis.min), void 0 !== a.config.xaxis.max && (e = a.config.xaxis.max);\n var s = this.getDate(t),\n r = this.getDate(e),\n n = this.formatDate(s, \"yyyy MM dd HH mm ss\").split(\" \"),\n o = this.formatDate(r, \"yyyy MM dd HH mm ss\").split(\" \");\n return {\n minSecond: parseInt(n[5], 10),\n maxSecond: parseInt(o[5], 10),\n minMinute: parseInt(n[4], 10),\n maxMinute: parseInt(o[4], 10),\n minHour: parseInt(n[3], 10),\n maxHour: parseInt(o[3], 10),\n minDate: parseInt(n[2], 10),\n maxDate: parseInt(o[2], 10),\n minMonth: parseInt(n[1], 10) - 1,\n maxMonth: parseInt(o[1], 10) - 1,\n minYear: parseInt(n[0], 10),\n maxYear: parseInt(o[0], 10)\n };\n }\n }, {\n key: \"isLeapYear\",\n value: function value(t) {\n return t % 4 == 0 && t % 100 != 0 || t % 400 == 0;\n }\n }, {\n key: \"calculcateLastDaysOfMonth\",\n value: function value(t, e, i) {\n return this.determineDaysOfMonths(t, e) - i;\n }\n }, {\n key: \"determineDaysOfYear\",\n value: function value(t) {\n var e = 365;\n return this.isLeapYear(t) && (e = 366), e;\n }\n }, {\n key: \"determineRemainingDaysOfYear\",\n value: function value(t, e, i) {\n var a = this.daysCntOfYear[e] + i;\n return e > 1 && this.isLeapYear() && a++, a;\n }\n }, {\n key: \"determineDaysOfMonths\",\n value: function value(t, e) {\n var i = 30;\n\n switch (t = f.monthMod(t), !0) {\n case this.months30.indexOf(t) > -1:\n 2 === t && (i = this.isLeapYear(e) ? 29 : 28);\n break;\n\n case this.months31.indexOf(t) > -1:\n default:\n i = 31;\n }\n\n return i;\n }\n }]), t;\n}(),\n F = function (t) {\n o(s, X);\n var i = d(s);\n\n function s() {\n return e(this, s), i.apply(this, arguments);\n }\n\n return a(s, [{\n key: \"draw\",\n value: function value(t, e) {\n var i = this.w,\n a = new b(this.ctx);\n this.rangeBarOptions = this.w.config.plotOptions.rangeBar, this.series = t, this.seriesRangeStart = i.globals.seriesRangeStart, this.seriesRangeEnd = i.globals.seriesRangeEnd, this.barHelpers.initVariables(t);\n\n for (var s = a.group({\n class: \"apexcharts-rangebar-series apexcharts-plot-series\"\n }), r = 0; r < t.length; r++) {\n var o,\n l,\n h,\n c = void 0,\n d = void 0,\n g = void 0,\n u = i.globals.comboCharts ? e[r] : r,\n p = a.group({\n class: \"apexcharts-series\",\n seriesName: f.escapeString(i.globals.seriesNames[u]),\n rel: r + 1,\n \"data:realIndex\": u\n });\n t[r].length > 0 && (this.visibleI = this.visibleI + 1);\n var x = 0,\n m = 0;\n this.yRatio.length > 1 && (this.yaxisIndex = u);\n var v = this.barHelpers.initialPositions();\n d = v.y, h = v.zeroW, c = v.x, m = v.barWidth, o = v.xDivision, l = v.zeroH;\n\n for (var y = a.group({\n class: \"apexcharts-datalabels\",\n \"data:realIndex\": u\n }), w = 0; w < i.globals.dataPoints; w++) {\n var k = this.barHelpers.getStrokeWidth(r, w, u),\n A = this.seriesRangeStart[r][w],\n S = this.seriesRangeEnd[r][w],\n C = null,\n L = null,\n P = {\n x: c,\n y: d,\n strokeWidth: k,\n elSeries: p\n };\n\n if (g = v.yDivision, x = v.barHeight, this.isHorizontal) {\n L = d + x * this.visibleI;\n var T = this.seriesLen;\n i.config.plotOptions.bar.rangeBarGroupRows && (T = 1);\n var z = (g - x * T) / 2;\n if (void 0 === i.config.series[r].data[w]) break;\n\n if (this.isTimelineBar && i.config.series[r].data[w].x) {\n var I = this.detectOverlappingBars({\n i: r,\n j: w,\n barYPosition: L,\n srty: z,\n barHeight: x,\n yDivision: g,\n initPositions: v\n });\n x = I.barHeight, L = I.barYPosition;\n }\n\n m = (C = this.drawRangeBarPaths(n({\n indexes: {\n i: r,\n j: w,\n realIndex: u\n },\n barHeight: x,\n barYPosition: L,\n zeroW: h,\n yDivision: g,\n y1: A,\n y2: S\n }, P))).barWidth;\n } else x = (C = this.drawRangeColumnPaths(n({\n indexes: {\n i: r,\n j: w,\n realIndex: u\n },\n zeroH: l,\n barWidth: m,\n xDivision: o\n }, P))).barHeight;\n\n d = C.y, c = C.x;\n var M = this.barHelpers.getPathFillColor(t, r, w, u),\n E = i.globals.stroke.colors[u];\n this.renderSeries({\n realIndex: u,\n pathFill: M,\n lineFill: E,\n j: w,\n i: r,\n x: c,\n y: d,\n y1: A,\n y2: S,\n pathFrom: C.pathFrom,\n pathTo: C.pathTo,\n strokeWidth: k,\n elSeries: p,\n series: t,\n barHeight: x,\n barYPosition: L,\n barWidth: m,\n elDataLabelsWrap: y,\n visibleSeries: this.visibleI,\n type: \"rangebar\"\n });\n }\n\n s.add(p);\n }\n\n return s;\n }\n }, {\n key: \"detectOverlappingBars\",\n value: function value(t) {\n var e = t.i,\n i = t.j,\n a = t.barYPosition,\n s = t.srty,\n r = t.barHeight,\n n = t.yDivision,\n o = t.initPositions,\n l = this.w,\n h = [],\n c = l.config.series[e].data[i].rangeName,\n d = l.config.series[e].data[i].x,\n g = l.globals.labels.indexOf(d),\n u = l.globals.seriesRangeBarTimeline[e].findIndex(function (t) {\n return t.x === d && t.overlaps.length > 0;\n });\n return a = l.config.plotOptions.bar.rangeBarGroupRows ? s + n * g : s + r * this.visibleI + n * g, u > -1 && !l.config.plotOptions.bar.rangeBarOverlap && (h = l.globals.seriesRangeBarTimeline[e][u].overlaps).indexOf(c) > -1 && (a = (r = o.barHeight / h.length) * this.visibleI + n * (100 - parseInt(this.barOptions.barHeight, 10)) / 100 / 2 + r * (this.visibleI + h.indexOf(c)) + n * g), {\n barYPosition: a,\n barHeight: r\n };\n }\n }, {\n key: \"drawRangeColumnPaths\",\n value: function value(t) {\n var e = t.indexes,\n i = t.x,\n a = (t.strokeWidth, t.xDivision),\n s = t.barWidth,\n r = t.zeroH,\n n = this.w,\n o = e.i,\n l = e.j,\n h = this.yRatio[this.yaxisIndex],\n c = e.realIndex,\n d = this.getRangeValue(c, l),\n g = Math.min(d.start, d.end),\n u = Math.max(d.start, d.end);\n n.globals.isXNumeric && (i = (n.globals.seriesX[o][l] - n.globals.minX) / this.xRatio - s / 2);\n var f = i + s * this.visibleI;\n void 0 === this.series[o][l] || null === this.series[o][l] ? g = r : (g = r - g / h, u = r - u / h);\n var p = Math.abs(u - g),\n x = this.barHelpers.getColumnPaths({\n barXPosition: f,\n barWidth: s,\n y1: g,\n y2: u,\n strokeWidth: this.strokeWidth,\n series: this.seriesRangeEnd,\n realIndex: e.realIndex,\n i: c,\n j: l,\n w: n\n });\n return n.globals.isXNumeric || (i += a), {\n pathTo: x.pathTo,\n pathFrom: x.pathFrom,\n barHeight: p,\n x: i,\n y: u,\n barXPosition: f\n };\n }\n }, {\n key: \"drawRangeBarPaths\",\n value: function value(t) {\n var e = t.indexes,\n i = t.y,\n a = t.y1,\n s = t.y2,\n r = t.yDivision,\n n = t.barHeight,\n o = t.barYPosition,\n l = t.zeroW,\n h = this.w,\n c = l + a / this.invertedYRatio,\n d = l + s / this.invertedYRatio,\n g = Math.abs(d - c),\n u = this.barHelpers.getBarpaths({\n barYPosition: o,\n barHeight: n,\n x1: c,\n x2: d,\n strokeWidth: this.strokeWidth,\n series: this.seriesRangeEnd,\n i: e.realIndex,\n realIndex: e.realIndex,\n j: e.j,\n w: h\n });\n return h.globals.isXNumeric || (i += r), {\n pathTo: u.pathTo,\n pathFrom: u.pathFrom,\n barWidth: g,\n x: d,\n y: i\n };\n }\n }, {\n key: \"getRangeValue\",\n value: function value(t, e) {\n var i = this.w;\n return {\n start: i.globals.seriesRangeStart[t][e],\n end: i.globals.seriesRangeEnd[t][e]\n };\n }\n }, {\n key: \"getTooltipValues\",\n value: function value(t) {\n var e = t.ctx,\n i = t.seriesIndex,\n a = t.dataPointIndex,\n s = t.y1,\n r = t.y2,\n n = t.w,\n o = n.globals.seriesRangeStart[i][a],\n l = n.globals.seriesRangeEnd[i][a],\n h = n.globals.labels[a],\n c = n.config.series[i].name ? n.config.series[i].name : \"\",\n d = n.config.tooltip.y.formatter,\n g = n.config.tooltip.y.title.formatter,\n u = {\n w: n,\n seriesIndex: i,\n dataPointIndex: a\n };\n \"function\" == typeof g && (c = g(c, u)), s && r && (o = s, l = r, n.config.series[i].data[a].x && (h = n.config.series[i].data[a].x + \":\"), \"function\" == typeof d && (h = d(h, u)));\n var f = \"\",\n p = \"\",\n x = n.globals.colors[i];\n if (void 0 === n.config.tooltip.x.formatter) {\n if (\"datetime\" === n.config.xaxis.type) {\n var b = new Y(e);\n f = b.formatDate(b.getDate(o), n.config.tooltip.x.format), p = b.formatDate(b.getDate(l), n.config.tooltip.x.format);\n } else f = o, p = l;\n } else f = n.config.tooltip.x.formatter(o), p = n.config.tooltip.x.formatter(l);\n return {\n start: o,\n end: l,\n startVal: f,\n endVal: p,\n ylabel: h,\n color: x,\n seriesName: c\n };\n }\n }, {\n key: \"buildCustomTooltipHTML\",\n value: function value(t) {\n var e = t.color,\n i = t.seriesName;\n return '
' + (i || \"\") + '
' + t.ylabel + ' ' + t.start + ' - ' + t.end + \"
\";\n }\n }]), s;\n}(),\n R = function () {\n function t(i) {\n e(this, t), this.opts = i;\n }\n\n return a(t, [{\n key: \"line\",\n value: function value() {\n return {\n chart: {\n animations: {\n easing: \"swing\"\n }\n },\n dataLabels: {\n enabled: !1\n },\n stroke: {\n width: 5,\n curve: \"straight\"\n },\n markers: {\n size: 0,\n hover: {\n sizeOffset: 6\n }\n },\n xaxis: {\n crosshairs: {\n width: 1\n }\n }\n };\n }\n }, {\n key: \"sparkline\",\n value: function value(t) {\n this.opts.yaxis[0].show = !1, this.opts.yaxis[0].title.text = \"\", this.opts.yaxis[0].axisBorder.show = !1, this.opts.yaxis[0].axisTicks.show = !1, this.opts.yaxis[0].floating = !0;\n return f.extend(t, {\n grid: {\n show: !1,\n padding: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }\n },\n legend: {\n show: !1\n },\n xaxis: {\n labels: {\n show: !1\n },\n tooltip: {\n enabled: !1\n },\n axisBorder: {\n show: !1\n },\n axisTicks: {\n show: !1\n }\n },\n chart: {\n toolbar: {\n show: !1\n },\n zoom: {\n enabled: !1\n }\n },\n dataLabels: {\n enabled: !1\n }\n });\n }\n }, {\n key: \"bar\",\n value: function value() {\n return {\n chart: {\n stacked: !1,\n animations: {\n easing: \"swing\"\n }\n },\n plotOptions: {\n bar: {\n dataLabels: {\n position: \"center\"\n }\n }\n },\n dataLabels: {\n style: {\n colors: [\"#fff\"]\n },\n background: {\n enabled: !1\n }\n },\n stroke: {\n width: 0,\n lineCap: \"square\"\n },\n fill: {\n opacity: .85\n },\n legend: {\n markers: {\n shape: \"square\",\n radius: 2,\n size: 8\n }\n },\n tooltip: {\n shared: !1\n },\n xaxis: {\n tooltip: {\n enabled: !1\n },\n tickPlacement: \"between\",\n crosshairs: {\n width: \"barWidth\",\n position: \"back\",\n fill: {\n type: \"gradient\"\n },\n dropShadow: {\n enabled: !1\n },\n stroke: {\n width: 0\n }\n }\n }\n };\n }\n }, {\n key: \"candlestick\",\n value: function value() {\n return {\n stroke: {\n width: 1,\n colors: [\"#333\"]\n },\n fill: {\n opacity: 1\n },\n dataLabels: {\n enabled: !1\n },\n tooltip: {\n shared: !0,\n custom: function custom(t) {\n var e = t.seriesIndex,\n i = t.dataPointIndex,\n a = t.w;\n return '
Open: ' + a.globals.seriesCandleO[e][i] + '
High: ' + a.globals.seriesCandleH[e][i] + '
Low: ' + a.globals.seriesCandleL[e][i] + '
Close: ' + a.globals.seriesCandleC[e][i] + \"
\";\n }\n },\n states: {\n active: {\n filter: {\n type: \"none\"\n }\n }\n },\n xaxis: {\n crosshairs: {\n width: 1\n }\n }\n };\n }\n }, {\n key: \"rangeBar\",\n value: function value() {\n return {\n stroke: {\n width: 0,\n lineCap: \"square\"\n },\n plotOptions: {\n bar: {\n dataLabels: {\n position: \"center\"\n }\n }\n },\n dataLabels: {\n enabled: !1,\n formatter: function formatter(t, e) {\n e.ctx;\n var i = e.seriesIndex,\n a = e.dataPointIndex,\n s = e.w,\n r = s.globals.seriesRangeStart[i][a];\n return s.globals.seriesRangeEnd[i][a] - r;\n },\n background: {\n enabled: !1\n },\n style: {\n colors: [\"#fff\"]\n }\n },\n tooltip: {\n shared: !1,\n followCursor: !0,\n custom: function custom(t) {\n return t.w.config.plotOptions && t.w.config.plotOptions.bar && t.w.config.plotOptions.bar.horizontal ? function (t) {\n var e = new F(t.ctx, null),\n i = e.getTooltipValues(t),\n a = i.color,\n s = i.seriesName,\n r = i.ylabel,\n n = i.startVal,\n o = i.endVal;\n return e.buildCustomTooltipHTML({\n color: a,\n seriesName: s,\n ylabel: r,\n start: n,\n end: o\n });\n }(t) : function (t) {\n var e = new F(t.ctx, null),\n i = e.getTooltipValues(t),\n a = i.color,\n s = i.seriesName,\n r = i.ylabel,\n n = i.start,\n o = i.end;\n return e.buildCustomTooltipHTML({\n color: a,\n seriesName: s,\n ylabel: r,\n start: n,\n end: o\n });\n }(t);\n }\n },\n xaxis: {\n tickPlacement: \"between\",\n tooltip: {\n enabled: !1\n },\n crosshairs: {\n stroke: {\n width: 0\n }\n }\n }\n };\n }\n }, {\n key: \"area\",\n value: function value() {\n return {\n stroke: {\n width: 4\n },\n fill: {\n type: \"gradient\",\n gradient: {\n inverseColors: !1,\n shade: \"light\",\n type: \"vertical\",\n opacityFrom: .65,\n opacityTo: .5,\n stops: [0, 100, 100]\n }\n },\n markers: {\n size: 0,\n hover: {\n sizeOffset: 6\n }\n },\n tooltip: {\n followCursor: !1\n }\n };\n }\n }, {\n key: \"brush\",\n value: function value(t) {\n return f.extend(t, {\n chart: {\n toolbar: {\n autoSelected: \"selection\",\n show: !1\n },\n zoom: {\n enabled: !1\n }\n },\n dataLabels: {\n enabled: !1\n },\n stroke: {\n width: 1\n },\n tooltip: {\n enabled: !1\n },\n xaxis: {\n tooltip: {\n enabled: !1\n }\n }\n });\n }\n }, {\n key: \"stacked100\",\n value: function value(t) {\n t.dataLabels = t.dataLabels || {}, t.dataLabels.formatter = t.dataLabels.formatter || void 0;\n var e = t.dataLabels.formatter;\n return t.yaxis.forEach(function (e, i) {\n t.yaxis[i].min = 0, t.yaxis[i].max = 100;\n }), \"bar\" === t.chart.type && (t.dataLabels.formatter = e || function (t) {\n return \"number\" == typeof t && t ? t.toFixed(0) + \"%\" : t;\n }), t;\n }\n }, {\n key: \"convertCatToNumeric\",\n value: function value(t) {\n return t.xaxis.convertedCatToNumeric = !0, t;\n }\n }, {\n key: \"convertCatToNumericXaxis\",\n value: function value(t, e, i) {\n t.xaxis.type = \"numeric\", t.xaxis.labels = t.xaxis.labels || {}, t.xaxis.labels.formatter = t.xaxis.labels.formatter || function (t) {\n return f.isNumber(t) ? Math.floor(t) : t;\n };\n var a = t.xaxis.labels.formatter,\n s = t.xaxis.categories && t.xaxis.categories.length ? t.xaxis.categories : t.labels;\n return i && i.length && (s = i.map(function (t) {\n return Array.isArray(t) ? t : String(t);\n })), s && s.length && (t.xaxis.labels.formatter = function (t) {\n return f.isNumber(t) ? a(s[Math.floor(t) - 1]) : a(t);\n }), t.xaxis.categories = [], t.labels = [], t.xaxis.tickAmount = t.xaxis.tickAmount || \"dataPoints\", t;\n }\n }, {\n key: \"bubble\",\n value: function value() {\n return {\n dataLabels: {\n style: {\n colors: [\"#fff\"]\n }\n },\n tooltip: {\n shared: !1,\n intersect: !0\n },\n xaxis: {\n crosshairs: {\n width: 0\n }\n },\n fill: {\n type: \"solid\",\n gradient: {\n shade: \"light\",\n inverse: !0,\n shadeIntensity: .55,\n opacityFrom: .4,\n opacityTo: .8\n }\n }\n };\n }\n }, {\n key: \"scatter\",\n value: function value() {\n return {\n dataLabels: {\n enabled: !1\n },\n tooltip: {\n shared: !1,\n intersect: !0\n },\n markers: {\n size: 6,\n strokeWidth: 1,\n hover: {\n sizeOffset: 2\n }\n }\n };\n }\n }, {\n key: \"heatmap\",\n value: function value() {\n return {\n chart: {\n stacked: !1\n },\n fill: {\n opacity: 1\n },\n dataLabels: {\n style: {\n colors: [\"#fff\"]\n }\n },\n stroke: {\n colors: [\"#fff\"]\n },\n tooltip: {\n followCursor: !0,\n marker: {\n show: !1\n },\n x: {\n show: !1\n }\n },\n legend: {\n position: \"top\",\n markers: {\n shape: \"square\",\n size: 10,\n offsetY: 2\n }\n },\n grid: {\n padding: {\n right: 20\n }\n }\n };\n }\n }, {\n key: \"treemap\",\n value: function value() {\n return {\n chart: {\n zoom: {\n enabled: !1\n }\n },\n dataLabels: {\n style: {\n fontSize: 14,\n fontWeight: 600,\n colors: [\"#fff\"]\n }\n },\n stroke: {\n show: !0,\n width: 2,\n colors: [\"#fff\"]\n },\n legend: {\n show: !1\n },\n fill: {\n gradient: {\n stops: [0, 100]\n }\n },\n tooltip: {\n followCursor: !0,\n x: {\n show: !1\n }\n },\n grid: {\n padding: {\n left: 0,\n right: 0\n }\n },\n xaxis: {\n crosshairs: {\n show: !1\n },\n tooltip: {\n enabled: !1\n }\n }\n };\n }\n }, {\n key: \"pie\",\n value: function value() {\n return {\n chart: {\n toolbar: {\n show: !1\n }\n },\n plotOptions: {\n pie: {\n donut: {\n labels: {\n show: !1\n }\n }\n }\n },\n dataLabels: {\n formatter: function formatter(t) {\n return t.toFixed(1) + \"%\";\n },\n style: {\n colors: [\"#fff\"]\n },\n background: {\n enabled: !1\n },\n dropShadow: {\n enabled: !0\n }\n },\n stroke: {\n colors: [\"#fff\"]\n },\n fill: {\n opacity: 1,\n gradient: {\n shade: \"light\",\n stops: [0, 100]\n }\n },\n tooltip: {\n theme: \"dark\",\n fillSeriesColor: !0\n },\n legend: {\n position: \"right\"\n }\n };\n }\n }, {\n key: \"donut\",\n value: function value() {\n return {\n chart: {\n toolbar: {\n show: !1\n }\n },\n dataLabels: {\n formatter: function formatter(t) {\n return t.toFixed(1) + \"%\";\n },\n style: {\n colors: [\"#fff\"]\n },\n background: {\n enabled: !1\n },\n dropShadow: {\n enabled: !0\n }\n },\n stroke: {\n colors: [\"#fff\"]\n },\n fill: {\n opacity: 1,\n gradient: {\n shade: \"light\",\n shadeIntensity: .35,\n stops: [80, 100],\n opacityFrom: 1,\n opacityTo: 1\n }\n },\n tooltip: {\n theme: \"dark\",\n fillSeriesColor: !0\n },\n legend: {\n position: \"right\"\n }\n };\n }\n }, {\n key: \"polarArea\",\n value: function value() {\n return this.opts.yaxis[0].tickAmount = this.opts.yaxis[0].tickAmount ? this.opts.yaxis[0].tickAmount : 6, {\n chart: {\n toolbar: {\n show: !1\n }\n },\n dataLabels: {\n formatter: function formatter(t) {\n return t.toFixed(1) + \"%\";\n },\n enabled: !1\n },\n stroke: {\n show: !0,\n width: 2\n },\n fill: {\n opacity: .7\n },\n tooltip: {\n theme: \"dark\",\n fillSeriesColor: !0\n },\n legend: {\n position: \"right\"\n }\n };\n }\n }, {\n key: \"radar\",\n value: function value() {\n return this.opts.yaxis[0].labels.offsetY = this.opts.yaxis[0].labels.offsetY ? this.opts.yaxis[0].labels.offsetY : 6, {\n dataLabels: {\n enabled: !1,\n style: {\n fontSize: \"11px\"\n }\n },\n stroke: {\n width: 2\n },\n markers: {\n size: 3,\n strokeWidth: 1,\n strokeOpacity: 1\n },\n fill: {\n opacity: .2\n },\n tooltip: {\n shared: !1,\n intersect: !0,\n followCursor: !0\n },\n grid: {\n show: !1\n },\n xaxis: {\n labels: {\n formatter: function formatter(t) {\n return t;\n },\n style: {\n colors: [\"#a8a8a8\"],\n fontSize: \"11px\"\n }\n },\n tooltip: {\n enabled: !1\n },\n crosshairs: {\n show: !1\n }\n }\n };\n }\n }, {\n key: \"radialBar\",\n value: function value() {\n return {\n chart: {\n animations: {\n dynamicAnimation: {\n enabled: !0,\n speed: 800\n }\n },\n toolbar: {\n show: !1\n }\n },\n fill: {\n gradient: {\n shade: \"dark\",\n shadeIntensity: .4,\n inverseColors: !1,\n type: \"diagonal2\",\n opacityFrom: 1,\n opacityTo: 1,\n stops: [70, 98, 100]\n }\n },\n legend: {\n show: !1,\n position: \"right\"\n },\n tooltip: {\n enabled: !1,\n fillSeriesColor: !0\n }\n };\n }\n }]), t;\n}(),\n D = function () {\n function i(t) {\n e(this, i), this.opts = t;\n }\n\n return a(i, [{\n key: \"init\",\n value: function value(e) {\n var i = e.responsiveOverride,\n a = this.opts,\n s = new S(),\n r = new R(a);\n this.chartType = a.chart.type, \"histogram\" === this.chartType && (a.chart.type = \"bar\", a = f.extend({\n plotOptions: {\n bar: {\n columnWidth: \"99.99%\"\n }\n }\n }, a)), a = this.extendYAxis(a), a = this.extendAnnotations(a);\n var n = s.init(),\n o = {};\n\n if (a && \"object\" === t(a)) {\n var l = {};\n l = -1 !== [\"line\", \"area\", \"bar\", \"candlestick\", \"rangeBar\", \"histogram\", \"bubble\", \"scatter\", \"heatmap\", \"treemap\", \"pie\", \"polarArea\", \"donut\", \"radar\", \"radialBar\"].indexOf(a.chart.type) ? r[a.chart.type]() : r.line(), a.chart.brush && a.chart.brush.enabled && (l = r.brush(l)), a.chart.stacked && \"100%\" === a.chart.stackType && (a = r.stacked100(a)), this.checkForDarkTheme(window.Apex), this.checkForDarkTheme(a), a.xaxis = a.xaxis || window.Apex.xaxis || {}, i || (a.xaxis.convertedCatToNumeric = !1), ((a = this.checkForCatToNumericXAxis(this.chartType, l, a)).chart.sparkline && a.chart.sparkline.enabled || window.Apex.chart && window.Apex.chart.sparkline && window.Apex.chart.sparkline.enabled) && (l = r.sparkline(l)), o = f.extend(n, l);\n }\n\n var h = f.extend(o, window.Apex);\n return n = f.extend(h, a), n = this.handleUserInputErrors(n);\n }\n }, {\n key: \"checkForCatToNumericXAxis\",\n value: function value(t, e, i) {\n var a = new R(i),\n s = \"bar\" === t && i.plotOptions && i.plotOptions.bar && i.plotOptions.bar.horizontal,\n r = \"pie\" === t || \"polarArea\" === t || \"donut\" === t || \"radar\" === t || \"radialBar\" === t || \"heatmap\" === t,\n n = \"datetime\" !== i.xaxis.type && \"numeric\" !== i.xaxis.type,\n o = i.xaxis.tickPlacement ? i.xaxis.tickPlacement : e.xaxis && e.xaxis.tickPlacement;\n return s || r || !n || \"between\" === o || (i = a.convertCatToNumeric(i)), i;\n }\n }, {\n key: \"extendYAxis\",\n value: function value(t, e) {\n var i = new S();\n (void 0 === t.yaxis || !t.yaxis || Array.isArray(t.yaxis) && 0 === t.yaxis.length) && (t.yaxis = {}), t.yaxis.constructor !== Array && window.Apex.yaxis && window.Apex.yaxis.constructor !== Array && (t.yaxis = f.extend(t.yaxis, window.Apex.yaxis)), t.yaxis.constructor !== Array ? t.yaxis = [f.extend(i.yAxis, t.yaxis)] : t.yaxis = f.extendArray(t.yaxis, i.yAxis);\n var a = !1;\n t.yaxis.forEach(function (t) {\n t.logarithmic && (a = !0);\n });\n var s = t.series;\n return e && !s && (s = e.config.series), a && s.length !== t.yaxis.length && s.length && (t.yaxis = s.map(function (e, a) {\n if (e.name || (s[a].name = \"series-\".concat(a + 1)), t.yaxis[a]) return t.yaxis[a].seriesName = s[a].name, t.yaxis[a];\n var r = f.extend(i.yAxis, t.yaxis[0]);\n return r.show = !1, r;\n })), a && s.length > 1 && s.length !== t.yaxis.length && console.warn(\"A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both.\"), t;\n }\n }, {\n key: \"extendAnnotations\",\n value: function value(t) {\n return void 0 === t.annotations && (t.annotations = {}, t.annotations.yaxis = [], t.annotations.xaxis = [], t.annotations.points = []), t = this.extendYAxisAnnotations(t), t = this.extendXAxisAnnotations(t), t = this.extendPointAnnotations(t);\n }\n }, {\n key: \"extendYAxisAnnotations\",\n value: function value(t) {\n var e = new S();\n return t.annotations.yaxis = f.extendArray(void 0 !== t.annotations.yaxis ? t.annotations.yaxis : [], e.yAxisAnnotation), t;\n }\n }, {\n key: \"extendXAxisAnnotations\",\n value: function value(t) {\n var e = new S();\n return t.annotations.xaxis = f.extendArray(void 0 !== t.annotations.xaxis ? t.annotations.xaxis : [], e.xAxisAnnotation), t;\n }\n }, {\n key: \"extendPointAnnotations\",\n value: function value(t) {\n var e = new S();\n return t.annotations.points = f.extendArray(void 0 !== t.annotations.points ? t.annotations.points : [], e.pointAnnotation), t;\n }\n }, {\n key: \"checkForDarkTheme\",\n value: function value(t) {\n t.theme && \"dark\" === t.theme.mode && (t.tooltip || (t.tooltip = {}), \"light\" !== t.tooltip.theme && (t.tooltip.theme = \"dark\"), t.chart.foreColor || (t.chart.foreColor = \"#f6f7f8\"), t.chart.background || (t.chart.background = \"#424242\"), t.theme.palette || (t.theme.palette = \"palette4\"));\n }\n }, {\n key: \"handleUserInputErrors\",\n value: function value(t) {\n var e = t;\n if (e.tooltip.shared && e.tooltip.intersect) throw new Error(\"tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.\");\n\n if (\"bar\" === e.chart.type && e.plotOptions.bar.horizontal) {\n if (e.yaxis.length > 1) throw new Error(\"Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false\");\n e.yaxis[0].reversed && (e.yaxis[0].opposite = !0), e.xaxis.tooltip.enabled = !1, e.yaxis[0].tooltip.enabled = !1, e.chart.zoom.enabled = !1;\n }\n\n return \"bar\" !== e.chart.type && \"rangeBar\" !== e.chart.type || e.tooltip.shared && (\"barWidth\" === e.xaxis.crosshairs.width && e.series.length > 1 && (console.warn('crosshairs.width = \"barWidth\" is only supported in single series, not in a multi-series barChart.'), e.xaxis.crosshairs.width = \"tickWidth\"), e.plotOptions.bar.horizontal && (e.states.hover.type = \"none\", e.tooltip.shared = !1), e.tooltip.followCursor || (console.warn(\"followCursor option in shared columns cannot be turned off. Please set %ctooltip.followCursor: true\", \"color: blue;\"), e.tooltip.followCursor = !0)), \"candlestick\" === e.chart.type && e.yaxis[0].reversed && (console.warn(\"Reversed y-axis in candlestick chart is not supported.\"), e.yaxis[0].reversed = !1), e.chart.group && 0 === e.yaxis[0].labels.minWidth && console.warn(\"It looks like you have multiple charts in synchronization. You must provide yaxis.labels.minWidth which must be EQUAL for all grouped charts to prevent incorrect behaviour.\"), Array.isArray(e.stroke.width) && \"line\" !== e.chart.type && \"area\" !== e.chart.type && (console.warn(\"stroke.width option accepts array only for line and area charts. Reverted back to Number\"), e.stroke.width = e.stroke.width[0]), e;\n }\n }]), i;\n}(),\n H = function () {\n function t() {\n e(this, t);\n }\n\n return a(t, [{\n key: \"initGlobalVars\",\n value: function value(t) {\n t.series = [], t.seriesCandleO = [], t.seriesCandleH = [], t.seriesCandleL = [], t.seriesCandleC = [], t.seriesRangeStart = [], t.seriesRangeEnd = [], t.seriesRangeBarTimeline = [], t.seriesPercent = [], t.seriesX = [], t.seriesZ = [], t.seriesNames = [], t.seriesTotals = [], t.seriesLog = [], t.seriesColors = [], t.stackedSeriesTotals = [], t.seriesXvalues = [], t.seriesYvalues = [], t.labels = [], t.categoryLabels = [], t.timescaleLabels = [], t.noLabelsProvided = !1, t.resizeTimer = null, t.selectionResizeTimer = null, t.delayedElements = [], t.pointsArray = [], t.dataLabelsRects = [], t.isXNumeric = !1, t.xaxisLabelsCount = 0, t.skipLastTimelinelabel = !1, t.skipFirstTimelinelabel = !1, t.isDataXYZ = !1, t.isMultiLineX = !1, t.isMultipleYAxis = !1, t.maxY = -Number.MAX_VALUE, t.minY = Number.MIN_VALUE, t.minYArr = [], t.maxYArr = [], t.maxX = -Number.MAX_VALUE, t.minX = Number.MAX_VALUE, t.initialMaxX = -Number.MAX_VALUE, t.initialMinX = Number.MAX_VALUE, t.maxDate = 0, t.minDate = Number.MAX_VALUE, t.minZ = Number.MAX_VALUE, t.maxZ = -Number.MAX_VALUE, t.minXDiff = Number.MAX_VALUE, t.yAxisScale = [], t.xAxisScale = null, t.xAxisTicksPositions = [], t.yLabelsCoords = [], t.yTitleCoords = [], t.barPadForNumericAxis = 0, t.padHorizontal = 0, t.xRange = 0, t.yRange = [], t.zRange = 0, t.dataPoints = 0, t.xTickAmount = 0;\n }\n }, {\n key: \"globalVars\",\n value: function value(t) {\n return {\n chartID: null,\n cuid: null,\n events: {\n beforeMount: [],\n mounted: [],\n updated: [],\n clicked: [],\n selection: [],\n dataPointSelection: [],\n zoomed: [],\n scrolled: []\n },\n colors: [],\n clientX: null,\n clientY: null,\n fill: {\n colors: []\n },\n stroke: {\n colors: []\n },\n dataLabels: {\n style: {\n colors: []\n }\n },\n radarPolygons: {\n fill: {\n colors: []\n }\n },\n markers: {\n colors: [],\n size: t.markers.size,\n largestSize: 0\n },\n animationEnded: !1,\n isTouchDevice: \"ontouchstart\" in window || navigator.msMaxTouchPoints,\n isDirty: !1,\n isExecCalled: !1,\n initialConfig: null,\n initialSeries: [],\n lastXAxis: [],\n lastYAxis: [],\n columnSeries: null,\n labels: [],\n timescaleLabels: [],\n noLabelsProvided: !1,\n allSeriesCollapsed: !1,\n collapsedSeries: [],\n collapsedSeriesIndices: [],\n ancillaryCollapsedSeries: [],\n ancillaryCollapsedSeriesIndices: [],\n risingSeries: [],\n dataFormatXNumeric: !1,\n capturedSeriesIndex: -1,\n capturedDataPointIndex: -1,\n selectedDataPoints: [],\n goldenPadding: 35,\n invalidLogScale: !1,\n ignoreYAxisIndexes: [],\n yAxisSameScaleIndices: [],\n maxValsInArrayIndex: 0,\n radialSize: 0,\n selection: void 0,\n zoomEnabled: \"zoom\" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.zoom && t.chart.zoom.enabled,\n panEnabled: \"pan\" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.pan,\n selectionEnabled: \"selection\" === t.chart.toolbar.autoSelected && t.chart.toolbar.tools.selection,\n yaxis: null,\n mousedown: !1,\n lastClientPosition: {},\n visibleXRange: void 0,\n yValueDecimal: 0,\n total: 0,\n SVGNS: \"http://www.w3.org/2000/svg\",\n svgWidth: 0,\n svgHeight: 0,\n noData: !1,\n locale: {},\n dom: {},\n memory: {\n methodsToExec: []\n },\n shouldAnimate: !0,\n skipLastTimelinelabel: !1,\n skipFirstTimelinelabel: !1,\n delayedElements: [],\n axisCharts: !0,\n isDataXYZ: !1,\n resized: !1,\n resizeTimer: null,\n comboCharts: !1,\n dataChanged: !1,\n previousPaths: [],\n allSeriesHasEqualX: !0,\n pointsArray: [],\n dataLabelsRects: [],\n lastDrawnDataLabelsIndexes: [],\n hasNullValues: !1,\n easing: null,\n zoomed: !1,\n gridWidth: 0,\n gridHeight: 0,\n rotateXLabels: !1,\n defaultLabels: !1,\n xLabelFormatter: void 0,\n yLabelFormatters: [],\n xaxisTooltipFormatter: void 0,\n ttKeyFormatter: void 0,\n ttVal: void 0,\n ttZFormatter: void 0,\n LINE_HEIGHT_RATIO: 1.618,\n xAxisLabelsHeight: 0,\n xAxisLabelsWidth: 0,\n yAxisLabelsWidth: 0,\n scaleX: 1,\n scaleY: 1,\n translateX: 0,\n translateY: 0,\n translateYAxisX: [],\n yAxisWidths: [],\n translateXAxisY: 0,\n translateXAxisX: 0,\n tooltip: null\n };\n }\n }, {\n key: \"init\",\n value: function value(t) {\n var e = this.globalVars(t);\n return this.initGlobalVars(e), e.initialConfig = f.extend({}, t), e.initialSeries = f.clone(t.series), e.lastXAxis = f.clone(e.initialConfig.xaxis), e.lastYAxis = f.clone(e.initialConfig.yaxis), e;\n }\n }]), t;\n}(),\n N = function () {\n function t(i) {\n e(this, t), this.opts = i;\n }\n\n return a(t, [{\n key: \"init\",\n value: function value() {\n var t = new D(this.opts).init({\n responsiveOverride: !1\n });\n return {\n config: t,\n globals: new H().init(t)\n };\n }\n }]), t;\n}(),\n O = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.twoDSeries = [], this.threeDSeries = [], this.twoDSeriesX = [], this.coreUtils = new y(this.ctx);\n }\n\n return a(t, [{\n key: \"isMultiFormat\",\n value: function value() {\n return this.isFormatXY() || this.isFormat2DArray();\n }\n }, {\n key: \"isFormatXY\",\n value: function value() {\n var t = this.w.config.series.slice(),\n e = new M(this.ctx);\n if (this.activeSeriesIndex = e.getActiveConfigSeriesIndex(), void 0 !== t[this.activeSeriesIndex].data && t[this.activeSeriesIndex].data.length > 0 && null !== t[this.activeSeriesIndex].data[0] && void 0 !== t[this.activeSeriesIndex].data[0].x && null !== t[this.activeSeriesIndex].data[0]) return !0;\n }\n }, {\n key: \"isFormat2DArray\",\n value: function value() {\n var t = this.w.config.series.slice(),\n e = new M(this.ctx);\n if (this.activeSeriesIndex = e.getActiveConfigSeriesIndex(), void 0 !== t[this.activeSeriesIndex].data && t[this.activeSeriesIndex].data.length > 0 && void 0 !== t[this.activeSeriesIndex].data[0] && null !== t[this.activeSeriesIndex].data[0] && t[this.activeSeriesIndex].data[0].constructor === Array) return !0;\n }\n }, {\n key: \"handleFormat2DArray\",\n value: function value(t, e) {\n var i = this.w.config,\n a = this.w.globals;\n i.xaxis.sorted && (\"datetime\" === i.xaxis.type ? t[e].data.sort(function (t, e) {\n return new Date(t[0]).getTime() - new Date(e[0]).getTime();\n }) : \"numeric\" === i.xaxis.type && t[e].data.sort(function (t, e) {\n return t[0] - e[0];\n }));\n\n for (var s = 0; s < t[e].data.length; s++) {\n if (void 0 !== t[e].data[s][1] && (Array.isArray(t[e].data[s][1]) && 4 === t[e].data[s][1].length ? this.twoDSeries.push(f.parseNumber(t[e].data[s][1][3])) : 5 === t[e].data[s].length ? this.twoDSeries.push(f.parseNumber(t[e].data[s][4])) : this.twoDSeries.push(f.parseNumber(t[e].data[s][1])), a.dataFormatXNumeric = !0), \"datetime\" === i.xaxis.type) {\n var r = new Date(t[e].data[s][0]);\n r = new Date(r).getTime(), this.twoDSeriesX.push(r);\n } else this.twoDSeriesX.push(t[e].data[s][0]);\n }\n\n for (var n = 0; n < t[e].data.length; n++) {\n void 0 !== t[e].data[n][2] && (this.threeDSeries.push(t[e].data[n][2]), a.isDataXYZ = !0);\n }\n }\n }, {\n key: \"handleFormatXY\",\n value: function value(t, e) {\n var i = this.w.config,\n a = this.w.globals,\n s = new Y(this.ctx),\n r = e;\n a.collapsedSeriesIndices.indexOf(e) > -1 && (r = this.activeSeriesIndex), i.xaxis.sorted && (\"datetime\" === i.xaxis.type ? t[e].data.sort(function (t, e) {\n return new Date(t.x).getTime() - new Date(e.x).getTime();\n }) : \"numeric\" === i.xaxis.type && t[e].data.sort(function (t, e) {\n return t.x - e.x;\n }));\n\n for (var n = 0; n < t[e].data.length; n++) {\n void 0 !== t[e].data[n].y && (Array.isArray(t[e].data[n].y) ? this.twoDSeries.push(f.parseNumber(t[e].data[n].y[t[e].data[n].y.length - 1])) : this.twoDSeries.push(f.parseNumber(t[e].data[n].y)));\n }\n\n for (var o = 0; o < t[r].data.length; o++) {\n var l = \"string\" == typeof t[r].data[o].x,\n h = Array.isArray(t[r].data[o].x),\n c = !h && !!s.isValidDate(t[r].data[o].x.toString());\n if (l || c) {\n if (l || i.xaxis.convertedCatToNumeric) {\n var d = a.isBarHorizontal && a.isRangeData;\n \"datetime\" !== i.xaxis.type || d ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(t[r].data[o].x)) : this.twoDSeriesX.push(s.parseDate(t[r].data[o].x));\n } else \"datetime\" === i.xaxis.type ? this.twoDSeriesX.push(s.parseDate(t[r].data[o].x.toString())) : (a.dataFormatXNumeric = !0, a.isXNumeric = !0, this.twoDSeriesX.push(parseFloat(t[r].data[o].x)));\n } else h ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(t[r].data[o].x)) : (a.isXNumeric = !0, a.dataFormatXNumeric = !0, this.twoDSeriesX.push(t[r].data[o].x));\n }\n\n if (t[e].data[0] && void 0 !== t[e].data[0].z) {\n for (var g = 0; g < t[e].data.length; g++) {\n this.threeDSeries.push(t[e].data[g].z);\n }\n\n a.isDataXYZ = !0;\n }\n }\n }, {\n key: \"handleRangeData\",\n value: function value(t, e) {\n var i = this.w.config,\n a = this.w.globals,\n s = {};\n return this.isFormat2DArray() ? s = this.handleRangeDataFormat(\"array\", t, e) : this.isFormatXY() && (s = this.handleRangeDataFormat(\"xy\", t, e)), a.seriesRangeStart.push(s.start), a.seriesRangeEnd.push(s.end), \"datetime\" === i.xaxis.type && a.seriesRangeBarTimeline.push(s.rangeUniques), a.seriesRangeBarTimeline.forEach(function (t, e) {\n t && t.forEach(function (t, e) {\n t.y.forEach(function (e, i) {\n for (var a = 0; a < t.y.length; a++) {\n if (i !== a) {\n var s = e.y1,\n r = e.y2,\n n = t.y[a].y1;\n s <= t.y[a].y2 && n <= r && (t.overlaps.indexOf(e.rangeName) < 0 && t.overlaps.push(e.rangeName), t.overlaps.indexOf(t.y[a].rangeName) < 0 && t.overlaps.push(t.y[a].rangeName));\n }\n }\n });\n });\n }), s;\n }\n }, {\n key: \"handleCandleStickData\",\n value: function value(t, e) {\n var i = this.w.globals,\n a = {};\n return this.isFormat2DArray() ? a = this.handleCandleStickDataFormat(\"array\", t, e) : this.isFormatXY() && (a = this.handleCandleStickDataFormat(\"xy\", t, e)), i.seriesCandleO[e] = a.o, i.seriesCandleH[e] = a.h, i.seriesCandleL[e] = a.l, i.seriesCandleC[e] = a.c, a;\n }\n }, {\n key: \"handleRangeDataFormat\",\n value: function value(t, e, i) {\n var a = [],\n s = [],\n r = e[i].data.filter(function (t, e, i) {\n return e === i.findIndex(function (e) {\n return e.x === t.x;\n });\n }).map(function (t, e) {\n return {\n x: t.x,\n overlaps: [],\n y: []\n };\n }),\n n = \"Please provide [Start, End] values in valid format. Read more https://apexcharts.com/docs/series/#rangecharts\",\n o = new M(this.ctx).getActiveConfigSeriesIndex();\n\n if (\"array\" === t) {\n if (2 !== e[o].data[0][1].length) throw new Error(n);\n\n for (var l = 0; l < e[i].data.length; l++) {\n a.push(e[i].data[l][1][0]), s.push(e[i].data[l][1][1]);\n }\n } else if (\"xy\" === t) {\n if (2 !== e[o].data[0].y.length) throw new Error(n);\n\n for (var h = function h(t) {\n var n = f.randomId(),\n o = e[i].data[t].x,\n l = {\n y1: e[i].data[t].y[0],\n y2: e[i].data[t].y[1],\n rangeName: n\n };\n e[i].data[t].rangeName = n;\n var h = r.findIndex(function (t) {\n return t.x === o;\n });\n r[h].y.push(l), a.push(l.y1), s.push(l.y2);\n }, c = 0; c < e[i].data.length; c++) {\n h(c);\n }\n }\n\n return {\n start: a,\n end: s,\n rangeUniques: r\n };\n }\n }, {\n key: \"handleCandleStickDataFormat\",\n value: function value(t, e, i) {\n var a = this.w,\n s = [],\n r = [],\n n = [],\n o = [],\n l = \"Please provide [Open, High, Low and Close] values in valid format. Read more https://apexcharts.com/docs/series/#candlestick\";\n\n if (\"array\" === t) {\n if (!Array.isArray(e[i].data[0][1]) && 5 !== e[i].data[0].length || Array.isArray(e[i].data[0][1]) && 4 !== e[i].data[0][1].length) throw new Error(l);\n if (5 === e[i].data[0].length) for (var h = 0; h < e[i].data.length; h++) {\n s.push(e[i].data[h][1]), r.push(e[i].data[h][2]), n.push(e[i].data[h][3]), o.push(e[i].data[h][4]);\n } else for (var c = 0; c < e[i].data.length; c++) {\n s.push(e[i].data[c][1][0]), r.push(e[i].data[c][1][1]), n.push(e[i].data[c][1][2]), o.push(e[i].data[c][1][3]);\n }\n } else if (\"xy\" === t) {\n if (!a.globals.comboCharts && 4 !== e[i].data[0].y.length || a.globals.comboCharts && \"candlestick\" === e[i].type && e[i].data.length && 4 !== e[i].data[0].y.length) throw new Error(l);\n\n for (var d = 0; d < e[i].data.length; d++) {\n s.push(e[i].data[d].y[0]), r.push(e[i].data[d].y[1]), n.push(e[i].data[d].y[2]), o.push(e[i].data[d].y[3]);\n }\n }\n\n return {\n o: s,\n h: r,\n l: n,\n c: o\n };\n }\n }, {\n key: \"parseDataAxisCharts\",\n value: function value(t) {\n var e = this,\n i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.ctx,\n a = this.w.config,\n s = this.w.globals,\n r = new Y(i),\n n = a.labels.length > 0 ? a.labels.slice() : a.xaxis.categories.slice();\n s.isTimelineBar = \"rangeBar\" === a.chart.type && \"datetime\" === a.xaxis.type;\n\n for (var o = function o() {\n for (var t = 0; t < n.length; t++) {\n if (\"string\" == typeof n[t]) {\n if (!r.isValidDate(n[t])) throw new Error(\"You have provided invalid Date format. Please provide a valid JavaScript Date\");\n e.twoDSeriesX.push(r.parseDate(n[t]));\n } else e.twoDSeriesX.push(n[t]);\n }\n }, l = 0; l < t.length; l++) {\n if (this.twoDSeries = [], this.twoDSeriesX = [], this.threeDSeries = [], void 0 === t[l].data) return void console.error(\"It is a possibility that you may have not included 'data' property in series.\");\n if (\"rangeBar\" !== a.chart.type && \"rangeArea\" !== a.chart.type && \"rangeBar\" !== t[l].type && \"rangeArea\" !== t[l].type || (s.isRangeData = !0, this.handleRangeData(t, l)), this.isMultiFormat()) this.isFormat2DArray() ? this.handleFormat2DArray(t, l) : this.isFormatXY() && this.handleFormatXY(t, l), \"candlestick\" !== a.chart.type && \"candlestick\" !== t[l].type || this.handleCandleStickData(t, l), s.series.push(this.twoDSeries), s.labels.push(this.twoDSeriesX), s.seriesX.push(this.twoDSeriesX), l !== this.activeSeriesIndex || this.fallbackToCategory || (s.isXNumeric = !0);else {\n \"datetime\" === a.xaxis.type ? (s.isXNumeric = !0, o(), s.seriesX.push(this.twoDSeriesX)) : \"numeric\" === a.xaxis.type && (s.isXNumeric = !0, n.length > 0 && (this.twoDSeriesX = n, s.seriesX.push(this.twoDSeriesX))), s.labels.push(this.twoDSeriesX);\n var h = t[l].data.map(function (t) {\n return f.parseNumber(t);\n });\n s.series.push(h);\n }\n s.seriesZ.push(this.threeDSeries), void 0 !== t[l].name ? s.seriesNames.push(t[l].name) : s.seriesNames.push(\"series-\" + parseInt(l + 1, 10)), void 0 !== t[l].color ? s.seriesColors.push(t[l].color) : s.seriesColors.push(void 0);\n }\n\n return this.w;\n }\n }, {\n key: \"parseDataNonAxisCharts\",\n value: function value(t) {\n var e = this.w.globals,\n i = this.w.config;\n e.series = t.slice(), e.seriesNames = i.labels.slice();\n\n for (var a = 0; a < e.series.length; a++) {\n void 0 === e.seriesNames[a] && e.seriesNames.push(\"series-\" + (a + 1));\n }\n\n return this.w;\n }\n }, {\n key: \"handleExternalLabelsData\",\n value: function value(t) {\n var e = this.w.config,\n i = this.w.globals;\n if (e.xaxis.categories.length > 0) i.labels = e.xaxis.categories;else if (e.labels.length > 0) i.labels = e.labels.slice();else if (this.fallbackToCategory) {\n if (i.labels = i.labels[0], i.seriesRangeBarTimeline.length && (i.seriesRangeBarTimeline.map(function (t) {\n t.forEach(function (t) {\n i.labels.indexOf(t.x) < 0 && t.x && i.labels.push(t.x);\n });\n }), i.labels = i.labels.filter(function (t, e, i) {\n return i.indexOf(t) === e;\n })), e.xaxis.convertedCatToNumeric) new R(e).convertCatToNumericXaxis(e, this.ctx, i.seriesX[0]), this._generateExternalLabels(t);\n } else this._generateExternalLabels(t);\n }\n }, {\n key: \"_generateExternalLabels\",\n value: function value(t) {\n var e = this.w.globals,\n i = this.w.config,\n a = [];\n\n if (e.axisCharts) {\n if (e.series.length > 0) for (var s = 0; s < e.series[e.maxValsInArrayIndex].length; s++) {\n a.push(s + 1);\n }\n e.seriesX = [];\n\n for (var r = 0; r < t.length; r++) {\n e.seriesX.push(a);\n }\n\n e.isXNumeric = !0;\n }\n\n if (0 === a.length) {\n a = e.axisCharts ? [] : e.series.map(function (t, e) {\n return e + 1;\n });\n\n for (var n = 0; n < t.length; n++) {\n e.seriesX.push(a);\n }\n }\n\n e.labels = a, i.xaxis.convertedCatToNumeric && (e.categoryLabels = a.map(function (t) {\n return i.xaxis.labels.formatter(t);\n })), e.noLabelsProvided = !0;\n }\n }, {\n key: \"parseData\",\n value: function value(t) {\n var e = this.w,\n i = e.config,\n a = e.globals;\n\n if (this.excludeCollapsedSeriesInYAxis(), this.fallbackToCategory = !1, this.ctx.core.resetGlobals(), this.ctx.core.isMultipleY(), a.axisCharts ? this.parseDataAxisCharts(t) : this.parseDataNonAxisCharts(t), this.coreUtils.getLargestSeries(), \"bar\" === i.chart.type && i.chart.stacked) {\n var s = new M(this.ctx);\n a.series = s.setNullSeriesToZeroValues(a.series);\n }\n\n this.coreUtils.getSeriesTotals(), a.axisCharts && this.coreUtils.getStackedSeriesTotals(), this.coreUtils.getPercentSeries(), a.dataFormatXNumeric || a.isXNumeric && (\"numeric\" !== i.xaxis.type || 0 !== i.labels.length || 0 !== i.xaxis.categories.length) || this.handleExternalLabelsData(t);\n\n for (var r = this.coreUtils.getCategoryLabels(a.labels), n = 0; n < r.length; n++) {\n if (Array.isArray(r[n])) {\n a.isMultiLineX = !0;\n break;\n }\n }\n }\n }, {\n key: \"excludeCollapsedSeriesInYAxis\",\n value: function value() {\n var t = this,\n e = this.w;\n e.globals.ignoreYAxisIndexes = e.globals.collapsedSeries.map(function (i, a) {\n if (t.w.globals.isMultipleYAxis && !e.config.chart.stacked) return i.index;\n });\n }\n }]), t;\n}(),\n W = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.tooltipKeyFormat = \"dd MMM\";\n }\n\n return a(t, [{\n key: \"xLabelFormat\",\n value: function value(t, e, i, a) {\n var s = this.w;\n\n if (\"datetime\" === s.config.xaxis.type && void 0 === s.config.xaxis.labels.formatter && void 0 === s.config.tooltip.x.formatter) {\n var r = new Y(this.ctx);\n return r.formatDate(r.getDate(e), s.config.tooltip.x.format);\n }\n\n return t(e, i, a);\n }\n }, {\n key: \"defaultGeneralFormatter\",\n value: function value(t) {\n return Array.isArray(t) ? t.map(function (t) {\n return t;\n }) : t;\n }\n }, {\n key: \"defaultYFormatter\",\n value: function value(t, e, i) {\n var a = this.w;\n return f.isNumber(t) && (t = 0 !== a.globals.yValueDecimal ? t.toFixed(void 0 !== e.decimalsInFloat ? e.decimalsInFloat : a.globals.yValueDecimal) : a.globals.maxYArr[i] - a.globals.minYArr[i] < 5 ? t.toFixed(1) : t.toFixed(0)), t;\n }\n }, {\n key: \"setLabelFormatters\",\n value: function value() {\n var t = this,\n e = this.w;\n return e.globals.xLabelFormatter = function (e) {\n return t.defaultGeneralFormatter(e);\n }, e.globals.xaxisTooltipFormatter = function (e) {\n return t.defaultGeneralFormatter(e);\n }, e.globals.ttKeyFormatter = function (e) {\n return t.defaultGeneralFormatter(e);\n }, e.globals.ttZFormatter = function (t) {\n return t;\n }, e.globals.legendFormatter = function (e) {\n return t.defaultGeneralFormatter(e);\n }, void 0 !== e.config.xaxis.labels.formatter ? e.globals.xLabelFormatter = e.config.xaxis.labels.formatter : e.globals.xLabelFormatter = function (t) {\n if (f.isNumber(t)) {\n if (!e.config.xaxis.convertedCatToNumeric && \"numeric\" === e.config.xaxis.type && e.globals.dataPoints < 50) return t.toFixed(1);\n if (e.globals.isBarHorizontal) if (e.globals.maxY - e.globals.minYArr < 4) return t.toFixed(1);\n return t.toFixed(0);\n }\n\n return t;\n }, \"function\" == typeof e.config.tooltip.x.formatter ? e.globals.ttKeyFormatter = e.config.tooltip.x.formatter : e.globals.ttKeyFormatter = e.globals.xLabelFormatter, \"function\" == typeof e.config.xaxis.tooltip.formatter && (e.globals.xaxisTooltipFormatter = e.config.xaxis.tooltip.formatter), (Array.isArray(e.config.tooltip.y) || void 0 !== e.config.tooltip.y.formatter) && (e.globals.ttVal = e.config.tooltip.y), void 0 !== e.config.tooltip.z.formatter && (e.globals.ttZFormatter = e.config.tooltip.z.formatter), void 0 !== e.config.legend.formatter && (e.globals.legendFormatter = e.config.legend.formatter), e.config.yaxis.forEach(function (i, a) {\n void 0 !== i.labels.formatter ? e.globals.yLabelFormatters[a] = i.labels.formatter : e.globals.yLabelFormatters[a] = function (s) {\n return e.globals.xyCharts ? Array.isArray(s) ? s.map(function (e) {\n return t.defaultYFormatter(e, i, a);\n }) : t.defaultYFormatter(s, i, a) : s;\n };\n }), e.globals;\n }\n }, {\n key: \"heatmapLabelFormatters\",\n value: function value() {\n var t = this.w;\n\n if (\"heatmap\" === t.config.chart.type) {\n t.globals.yAxisScale[0].result = t.globals.seriesNames.slice();\n var e = t.globals.seriesNames.reduce(function (t, e) {\n return t.length > e.length ? t : e;\n }, 0);\n t.globals.yAxisScale[0].niceMax = e, t.globals.yAxisScale[0].niceMin = e;\n }\n }\n }]), t;\n}(),\n B = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"getLabel\",\n value: function value(t, e, i, a) {\n var s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : [],\n r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : \"12px\",\n n = this.w,\n o = void 0 === t[a] ? \"\" : t[a],\n l = o,\n h = n.globals.xLabelFormatter,\n c = n.config.xaxis.labels.formatter,\n d = !1,\n g = new W(this.ctx),\n u = o;\n l = g.xLabelFormat(h, o, u, {\n i: a,\n dateFormatter: new Y(this.ctx).formatDate,\n w: n\n }), void 0 !== c && (l = c(o, t[a], {\n i: a,\n dateFormatter: new Y(this.ctx).formatDate,\n w: n\n }));\n\n var f = function f(t) {\n var i = null;\n return e.forEach(function (t) {\n \"month\" === t.unit ? i = \"year\" : \"day\" === t.unit ? i = \"month\" : \"hour\" === t.unit ? i = \"day\" : \"minute\" === t.unit && (i = \"hour\");\n }), i === t;\n };\n\n e.length > 0 ? (d = f(e[a].unit), i = e[a].position, l = e[a].value) : \"datetime\" === n.config.xaxis.type && void 0 === c && (l = \"\"), void 0 === l && (l = \"\"), l = Array.isArray(l) ? l : l.toString();\n var p = new b(this.ctx),\n x = {};\n x = n.globals.rotateXLabels ? p.getTextRects(l, parseInt(r, 10), null, \"rotate(\".concat(n.config.xaxis.labels.rotate, \" 0 0)\"), !1) : p.getTextRects(l, parseInt(r, 10));\n var m = !n.config.xaxis.labels.showDuplicates && this.ctx.timeScale;\n return !Array.isArray(l) && (0 === l.indexOf(\"NaN\") || 0 === l.toLowerCase().indexOf(\"invalid\") || l.toLowerCase().indexOf(\"infinity\") >= 0 || s.indexOf(l) >= 0 && m) && (l = \"\"), {\n x: i,\n text: l,\n textRect: x,\n isBold: d\n };\n }\n }, {\n key: \"checkLabelBasedOnTickamount\",\n value: function value(t, e, i) {\n var a = this.w,\n s = a.config.xaxis.tickAmount;\n return \"dataPoints\" === s && (s = Math.round(a.globals.gridWidth / 120)), s > i || t % Math.round(i / (s + 1)) == 0 || (e.text = \"\"), e;\n }\n }, {\n key: \"checkForOverflowingLabels\",\n value: function value(t, e, i, a, s) {\n var r = this.w;\n\n if (0 === t && r.globals.skipFirstTimelinelabel && (e.text = \"\"), t === i - 1 && r.globals.skipLastTimelinelabel && (e.text = \"\"), r.config.xaxis.labels.hideOverlappingLabels && a.length > 0) {\n var n = s[s.length - 1];\n e.x < n.textRect.width / (r.globals.rotateXLabels ? Math.abs(r.config.xaxis.labels.rotate) / 12 : 1.01) + n.x && (e.text = \"\");\n }\n\n return e;\n }\n }, {\n key: \"checkForReversedLabels\",\n value: function value(t, e) {\n var i = this.w;\n return i.config.yaxis[t] && i.config.yaxis[t].reversed && e.reverse(), e;\n }\n }, {\n key: \"isYAxisHidden\",\n value: function value(t) {\n var e = this.w,\n i = new y(this.ctx);\n return !e.config.yaxis[t].show || !e.config.yaxis[t].showForNullSeries && i.isSeriesNull(t) && -1 === e.globals.collapsedSeriesIndices.indexOf(t);\n }\n }, {\n key: \"getYAxisForeColor\",\n value: function value(t, e) {\n var i = this.w;\n return Array.isArray(t) && i.globals.yAxisScale[e] && this.ctx.theme.pushExtraColors(t, i.globals.yAxisScale[e].result.length, !1), t;\n }\n }, {\n key: \"drawYAxisTicks\",\n value: function value(t, e, i, a, s, r, n) {\n var o = this.w,\n l = new b(this.ctx),\n h = o.globals.translateY;\n\n if (a.show && e > 0) {\n !0 === o.config.yaxis[s].opposite && (t += a.width);\n\n for (var c = e; c >= 0; c--) {\n var d = h + e / 10 + o.config.yaxis[s].labels.offsetY - 1;\n o.globals.isBarHorizontal && (d = r * c), \"heatmap\" === o.config.chart.type && (d += r / 2);\n var g = l.drawLine(t + i.offsetX - a.width + a.offsetX, d + a.offsetY, t + i.offsetX + a.offsetX, d + a.offsetY, a.color);\n n.add(g), h += r;\n }\n }\n }\n }]), t;\n}(),\n V = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"fixSvgStringForIe11\",\n value: function value(t) {\n if (!f.isIE11()) return t;\n var e = 0,\n i = t.replace(/xmlns=\"http:\\/\\/www.w3.org\\/2000\\/svg\"/g, function (t) {\n return 2 === ++e ? 'xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:svgjs=\"http://svgjs.com/svgjs\"' : t;\n });\n return i = (i = i.replace(/xmlns:NS\\d+=\"\"/g, \"\")).replace(/NS\\d+:(\\w+:\\w+=\")/g, \"$1\");\n }\n }, {\n key: \"getSvgString\",\n value: function value() {\n var t = this.w.globals.dom.Paper.svg();\n return this.fixSvgStringForIe11(t);\n }\n }, {\n key: \"cleanup\",\n value: function value() {\n var t = this.w,\n e = t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-xcrosshairs\"),\n i = t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-ycrosshairs\"),\n a = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-zoom-rect, .apexcharts-selection-rect\");\n Array.prototype.forEach.call(a, function (t) {\n t.setAttribute(\"width\", 0);\n }), e && e[0] && (e[0].setAttribute(\"x\", -500), e[0].setAttribute(\"x1\", -500), e[0].setAttribute(\"x2\", -500)), i && i[0] && (i[0].setAttribute(\"y\", -100), i[0].setAttribute(\"y1\", -100), i[0].setAttribute(\"y2\", -100));\n }\n }, {\n key: \"svgUrl\",\n value: function value() {\n this.cleanup();\n var t = this.getSvgString(),\n e = new Blob([t], {\n type: \"image/svg+xml;charset=utf-8\"\n });\n return URL.createObjectURL(e);\n }\n }, {\n key: \"dataURI\",\n value: function value() {\n var t = this;\n return new Promise(function (e) {\n var i = t.w;\n t.cleanup();\n var a = document.createElement(\"canvas\");\n a.width = i.globals.svgWidth, a.height = parseInt(i.globals.dom.elWrap.style.height, 10);\n var s = \"transparent\" === i.config.chart.background ? \"#fff\" : i.config.chart.background,\n r = a.getContext(\"2d\");\n r.fillStyle = s, r.fillRect(0, 0, a.width, a.height);\n var n = t.getSvgString();\n\n if (window.canvg && f.isIE11()) {\n var o = window.canvg.Canvg.fromString(r, n, {\n ignoreClear: !0,\n ignoreDimensions: !0\n });\n o.start();\n var l = a.msToBlob();\n o.stop(), e({\n blob: l\n });\n } else {\n var h = \"data:image/svg+xml,\" + encodeURIComponent(n),\n c = new Image();\n c.crossOrigin = \"anonymous\", c.onload = function () {\n if (r.drawImage(c, 0, 0), a.msToBlob) {\n var t = a.msToBlob();\n e({\n blob: t\n });\n } else {\n var i = a.toDataURL(\"image/png\");\n e({\n imgURI: i\n });\n }\n }, c.src = h;\n }\n });\n }\n }, {\n key: \"exportToSVG\",\n value: function value() {\n this.triggerDownload(this.svgUrl(), this.w.config.chart.toolbar.export.svg.filename, \".svg\");\n }\n }, {\n key: \"exportToPng\",\n value: function value() {\n var t = this;\n this.dataURI().then(function (e) {\n var i = e.imgURI,\n a = e.blob;\n a ? navigator.msSaveOrOpenBlob(a, t.w.globals.chartID + \".png\") : t.triggerDownload(i, t.w.config.chart.toolbar.export.png.filename, \".png\");\n });\n }\n }, {\n key: \"exportToCSV\",\n value: function value(t) {\n var e = this,\n i = t.series,\n a = t.columnDelimiter,\n s = t.lineDelimiter,\n r = void 0 === s ? \"\\n\" : s,\n n = this.w,\n o = [],\n l = [],\n h = \"data:text/csv;charset=utf-8,\",\n c = new O(this.ctx),\n d = new B(this.ctx),\n g = function g(t) {\n var i = \"\";\n\n if (n.globals.axisCharts) {\n if (\"category\" === n.config.xaxis.type || n.config.xaxis.convertedCatToNumeric) if (n.globals.isBarHorizontal) {\n var s = n.globals.yLabelFormatters[0],\n r = new M(e.ctx).getActiveConfigSeriesIndex();\n i = s(n.globals.labels[t], {\n seriesIndex: r,\n dataPointIndex: t,\n w: n\n });\n } else i = d.getLabel(n.globals.labels, n.globals.timescaleLabels, 0, t).text;\n \"datetime\" === n.config.xaxis.type && (n.config.xaxis.categories.length ? i = n.config.xaxis.categories[t] : n.config.labels.length && (i = n.config.labels[t]));\n } else i = n.config.labels[t];\n\n return f.isNumber(i) ? i : i.split(a).join(\"\");\n };\n\n o.push(n.config.chart.toolbar.export.csv.headerCategory), i.map(function (t, e) {\n var i = t.name ? t.name : \"series-\".concat(e);\n n.globals.axisCharts && o.push(i.split(a).join(\"\") ? i.split(a).join(\"\") : \"series-\".concat(e));\n }), n.globals.axisCharts || (o.push(n.config.chart.toolbar.export.csv.headerValue), l.push(o.join(a))), i.map(function (t, e) {\n n.globals.axisCharts ? function (t, e) {\n if (o.length && 0 === e && l.push(o.join(a)), t.data && t.data.length) for (var s = 0; s < t.data.length; s++) {\n o = [];\n var r = g(s);\n\n if (r || (c.isFormatXY() ? r = i[e].data[s].x : c.isFormat2DArray() && (r = i[e].data[s] ? i[e].data[s][0] : \"\")), 0 === e) {\n o.push((d = r, \"datetime\" === n.config.xaxis.type && String(d).length >= 10 ? n.config.chart.toolbar.export.csv.dateFormatter(r) : r.split(a).join(\"\")));\n\n for (var h = 0; h < n.globals.series.length; h++) {\n o.push(n.globals.series[h][s]);\n }\n }\n\n (\"candlestick\" === n.config.chart.type || t.type && \"candlestick\" === t.type) && (o.pop(), o.push(n.globals.seriesCandleO[e][s]), o.push(n.globals.seriesCandleH[e][s]), o.push(n.globals.seriesCandleL[e][s]), o.push(n.globals.seriesCandleC[e][s])), \"rangeBar\" === n.config.chart.type && (o.pop(), o.push(n.globals.seriesRangeStart[e][s]), o.push(n.globals.seriesRangeEnd[e][s])), o.length && l.push(o.join(a));\n }\n var d;\n }(t, e) : ((o = []).push(n.globals.labels[e].split(a).join(\"\")), o.push(n.globals.series[e]), l.push(o.join(a)));\n }), h += l.join(r), this.triggerDownload(encodeURI(h), n.config.chart.toolbar.export.csv.filename, \".csv\");\n }\n }, {\n key: \"triggerDownload\",\n value: function value(t, e, i) {\n var a = document.createElement(\"a\");\n a.href = t, a.download = (e || this.w.globals.chartID) + i, document.body.appendChild(a), a.click(), document.body.removeChild(a);\n }\n }]), t;\n}(),\n G = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n var a = this.w;\n this.axesUtils = new B(i), this.xaxisLabels = a.globals.labels.slice(), a.globals.timescaleLabels.length > 0 && !a.globals.isBarHorizontal && (this.xaxisLabels = a.globals.timescaleLabels.slice()), this.drawnLabels = [], this.drawnLabelsRects = [], \"top\" === a.config.xaxis.position ? this.offY = 0 : this.offY = a.globals.gridHeight + 1, this.offY = this.offY + a.config.xaxis.axisBorder.offsetY, this.isCategoryBarHorizontal = \"bar\" === a.config.chart.type && a.config.plotOptions.bar.horizontal, this.xaxisFontSize = a.config.xaxis.labels.style.fontSize, this.xaxisFontFamily = a.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = a.config.xaxis.labels.style.colors, this.xaxisBorderWidth = a.config.xaxis.axisBorder.width, this.isCategoryBarHorizontal && (this.xaxisBorderWidth = a.config.yaxis[0].axisBorder.width.toString()), this.xaxisBorderWidth.indexOf(\"%\") > -1 ? this.xaxisBorderWidth = a.globals.gridWidth * parseInt(this.xaxisBorderWidth, 10) / 100 : this.xaxisBorderWidth = parseInt(this.xaxisBorderWidth, 10), this.xaxisBorderHeight = a.config.xaxis.axisBorder.height, this.yaxis = a.config.yaxis[0];\n }\n\n return a(t, [{\n key: \"drawXaxis\",\n value: function value() {\n var t,\n e = this,\n i = this.w,\n a = new b(this.ctx),\n s = a.group({\n class: \"apexcharts-xaxis\",\n transform: \"translate(\".concat(i.config.xaxis.offsetX, \", \").concat(i.config.xaxis.offsetY, \")\")\n }),\n r = a.group({\n class: \"apexcharts-xaxis-texts-g\",\n transform: \"translate(\".concat(i.globals.translateXAxisX, \", \").concat(i.globals.translateXAxisY, \")\")\n });\n s.add(r);\n\n for (var n = i.globals.padHorizontal, o = [], l = 0; l < this.xaxisLabels.length; l++) {\n o.push(this.xaxisLabels[l]);\n }\n\n var h = o.length;\n\n if (i.globals.isXNumeric) {\n var c = h > 1 ? h - 1 : h;\n t = i.globals.gridWidth / c, n = n + t / 2 + i.config.xaxis.labels.offsetX;\n } else t = i.globals.gridWidth / o.length, n = n + t + i.config.xaxis.labels.offsetX;\n\n for (var d = function d(s) {\n var l = n - t / 2 + i.config.xaxis.labels.offsetX;\n 0 === s && 1 === h && t / 2 === n && 1 === i.globals.dataPoints && (l = i.globals.gridWidth / 2);\n var c = e.axesUtils.getLabel(o, i.globals.timescaleLabels, l, s, e.drawnLabels, e.xaxisFontSize),\n d = 28;\n i.globals.rotateXLabels && (d = 22);\n\n if ((c = void 0 !== i.config.xaxis.tickAmount && \"dataPoints\" !== i.config.xaxis.tickAmount && \"datetime\" !== i.config.xaxis.type ? e.axesUtils.checkLabelBasedOnTickamount(s, c, h) : e.axesUtils.checkForOverflowingLabels(s, c, h, e.drawnLabels, e.drawnLabelsRects)).text && i.globals.xaxisLabelsCount++, i.config.xaxis.labels.show) {\n var g = a.drawText({\n x: c.x,\n y: e.offY + i.config.xaxis.labels.offsetY + d - (\"top\" === i.config.xaxis.position ? i.globals.xAxisHeight + i.config.xaxis.axisTicks.height - 2 : 0),\n text: c.text,\n textAnchor: \"middle\",\n fontWeight: c.isBold ? 600 : i.config.xaxis.labels.style.fontWeight,\n fontSize: e.xaxisFontSize,\n fontFamily: e.xaxisFontFamily,\n foreColor: Array.isArray(e.xaxisForeColors) ? i.config.xaxis.convertedCatToNumeric ? e.xaxisForeColors[i.globals.minX + s - 1] : e.xaxisForeColors[s] : e.xaxisForeColors,\n isPlainText: !1,\n cssClass: \"apexcharts-xaxis-label \" + i.config.xaxis.labels.style.cssClass\n });\n r.add(g);\n var u = document.createElementNS(i.globals.SVGNS, \"title\");\n u.textContent = Array.isArray(c.text) ? c.text.join(\" \") : c.text, g.node.appendChild(u), \"\" !== c.text && (e.drawnLabels.push(c.text), e.drawnLabelsRects.push(c));\n }\n\n n += t;\n }, g = 0; g <= h - 1; g++) {\n d(g);\n }\n\n if (void 0 !== i.config.xaxis.title.text) {\n var u = a.group({\n class: \"apexcharts-xaxis-title\"\n }),\n f = a.drawText({\n x: i.globals.gridWidth / 2 + i.config.xaxis.title.offsetX,\n y: this.offY - parseFloat(this.xaxisFontSize) + i.globals.xAxisLabelsHeight + i.config.xaxis.title.offsetY,\n text: i.config.xaxis.title.text,\n textAnchor: \"middle\",\n fontSize: i.config.xaxis.title.style.fontSize,\n fontFamily: i.config.xaxis.title.style.fontFamily,\n fontWeight: i.config.xaxis.title.style.fontWeight,\n foreColor: i.config.xaxis.title.style.color,\n cssClass: \"apexcharts-xaxis-title-text \" + i.config.xaxis.title.style.cssClass\n });\n u.add(f), s.add(u);\n }\n\n if (i.config.xaxis.axisBorder.show) {\n var p = i.globals.barPadForNumericAxis,\n x = a.drawLine(i.globals.padHorizontal + i.config.xaxis.axisBorder.offsetX - p, this.offY, this.xaxisBorderWidth + p, this.offY, i.config.xaxis.axisBorder.color, 0, this.xaxisBorderHeight);\n s.add(x);\n }\n\n return s;\n }\n }, {\n key: \"drawXaxisInversed\",\n value: function value(t) {\n var e,\n i,\n a = this,\n s = this.w,\n r = new b(this.ctx),\n n = s.config.yaxis[0].opposite ? s.globals.translateYAxisX[t] : 0,\n o = r.group({\n class: \"apexcharts-yaxis apexcharts-xaxis-inversed\",\n rel: t\n }),\n l = r.group({\n class: \"apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g\",\n transform: \"translate(\" + n + \", 0)\"\n });\n o.add(l);\n var h = [];\n if (s.config.yaxis[t].show) for (var c = 0; c < this.xaxisLabels.length; c++) {\n h.push(this.xaxisLabels[c]);\n }\n e = s.globals.gridHeight / h.length, i = -e / 2.2;\n var d = s.globals.yLabelFormatters[0],\n g = s.config.yaxis[0].labels;\n if (g.show) for (var u = function u(n) {\n var o = void 0 === h[n] ? \"\" : h[n];\n o = d(o, {\n seriesIndex: t,\n dataPointIndex: n,\n w: s\n });\n var c = a.axesUtils.getYAxisForeColor(g.style.colors, t),\n u = 0;\n Array.isArray(o) && (u = o.length / 2 * parseInt(g.style.fontSize, 10));\n var f = r.drawText({\n x: g.offsetX - 15,\n y: i + e + g.offsetY - u,\n text: o,\n textAnchor: a.yaxis.opposite ? \"start\" : \"end\",\n foreColor: Array.isArray(c) ? c[n] : c,\n fontSize: g.style.fontSize,\n fontFamily: g.style.fontFamily,\n fontWeight: g.style.fontWeight,\n isPlainText: !1,\n cssClass: \"apexcharts-yaxis-label \" + g.style.cssClass\n });\n l.add(f);\n var p = document.createElementNS(s.globals.SVGNS, \"title\");\n\n if (p.textContent = o.text, f.node.appendChild(p), 0 !== s.config.yaxis[t].labels.rotate) {\n var x = r.rotateAroundCenter(f.node);\n f.node.setAttribute(\"transform\", \"rotate(\".concat(s.config.yaxis[t].labels.rotate, \" 0 \").concat(x.y, \")\"));\n }\n\n i += e;\n }, f = 0; f <= h.length - 1; f++) {\n u(f);\n }\n\n if (void 0 !== s.config.yaxis[0].title.text) {\n var p = r.group({\n class: \"apexcharts-yaxis-title apexcharts-xaxis-title-inversed\",\n transform: \"translate(\" + n + \", 0)\"\n }),\n x = r.drawText({\n x: 0,\n y: s.globals.gridHeight / 2,\n text: s.config.yaxis[0].title.text,\n textAnchor: \"middle\",\n foreColor: s.config.yaxis[0].title.style.color,\n fontSize: s.config.yaxis[0].title.style.fontSize,\n fontWeight: s.config.yaxis[0].title.style.fontWeight,\n fontFamily: s.config.yaxis[0].title.style.fontFamily,\n cssClass: \"apexcharts-yaxis-title-text \" + s.config.yaxis[0].title.style.cssClass\n });\n p.add(x), o.add(p);\n }\n\n var m = 0;\n this.isCategoryBarHorizontal && s.config.yaxis[0].opposite && (m = s.globals.gridWidth);\n var v = s.config.xaxis.axisBorder;\n\n if (v.show) {\n var y = r.drawLine(s.globals.padHorizontal + v.offsetX + m, 1 + v.offsetY, s.globals.padHorizontal + v.offsetX + m, s.globals.gridHeight + v.offsetY, v.color, 0);\n o.add(y);\n }\n\n return s.config.yaxis[0].axisTicks.show && this.axesUtils.drawYAxisTicks(m, h.length, s.config.yaxis[0].axisBorder, s.config.yaxis[0].axisTicks, 0, e, o), o;\n }\n }, {\n key: \"drawXaxisTicks\",\n value: function value(t, e) {\n var i = this.w,\n a = t;\n\n if (!(t < 0 || t - 2 > i.globals.gridWidth)) {\n var s = this.offY + i.config.xaxis.axisTicks.offsetY,\n r = s + i.config.xaxis.axisTicks.height;\n\n if (\"top\" === i.config.xaxis.position && (r = s - i.config.xaxis.axisTicks.height), i.config.xaxis.axisTicks.show) {\n var n = new b(this.ctx).drawLine(t + i.config.xaxis.axisTicks.offsetX, s + i.config.xaxis.offsetY, a + i.config.xaxis.axisTicks.offsetX, r + i.config.xaxis.offsetY, i.config.xaxis.axisTicks.color);\n e.add(n), n.node.classList.add(\"apexcharts-xaxis-tick\");\n }\n }\n }\n }, {\n key: \"getXAxisTicksPositions\",\n value: function value() {\n var t = this.w,\n e = [],\n i = this.xaxisLabels.length,\n a = t.globals.padHorizontal;\n if (t.globals.timescaleLabels.length > 0) for (var s = 0; s < i; s++) {\n a = this.xaxisLabels[s].position, e.push(a);\n } else for (var r = i, n = 0; n < r; n++) {\n var o = r;\n t.globals.isXNumeric && \"bar\" !== t.config.chart.type && (o -= 1), a += t.globals.gridWidth / o, e.push(a);\n }\n return e;\n }\n }, {\n key: \"xAxisLabelCorrections\",\n value: function value() {\n var t = this.w,\n e = new b(this.ctx),\n i = t.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g\"),\n a = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-xaxis-texts-g text\"),\n s = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-inversed text\"),\n r = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-xaxis-inversed-texts-g text tspan\");\n if (t.globals.rotateXLabels || t.config.xaxis.labels.rotateAlways) for (var n = 0; n < a.length; n++) {\n var o = e.rotateAroundCenter(a[n]);\n o.y = o.y - 1, o.x = o.x + 1, a[n].setAttribute(\"transform\", \"rotate(\".concat(t.config.xaxis.labels.rotate, \" \").concat(o.x, \" \").concat(o.y, \")\")), a[n].setAttribute(\"text-anchor\", \"end\");\n i.setAttribute(\"transform\", \"translate(0, \".concat(-10, \")\"));\n var l = a[n].childNodes;\n t.config.xaxis.labels.trim && Array.prototype.forEach.call(l, function (i) {\n e.placeTextWithEllipsis(i, i.textContent, t.config.xaxis.labels.maxHeight - (\"bottom\" === t.config.legend.position ? 20 : 10));\n });\n } else !function () {\n for (var i = t.globals.gridWidth / (t.globals.labels.length + 1), s = 0; s < a.length; s++) {\n var r = a[s].childNodes;\n t.config.xaxis.labels.trim && \"datetime\" !== t.config.xaxis.type && Array.prototype.forEach.call(r, function (t) {\n e.placeTextWithEllipsis(t, t.textContent, i);\n });\n }\n }();\n\n if (s.length > 0) {\n var h = s[s.length - 1].getBBox(),\n c = s[0].getBBox();\n h.x < -20 && s[s.length - 1].parentNode.removeChild(s[s.length - 1]), c.x + c.width > t.globals.gridWidth && !t.globals.isBarHorizontal && s[0].parentNode.removeChild(s[0]);\n\n for (var d = 0; d < r.length; d++) {\n e.placeTextWithEllipsis(r[d], r[d].textContent, t.config.yaxis[0].labels.maxWidth - 2 * parseFloat(t.config.yaxis[0].title.style.fontSize) - 20);\n }\n }\n }\n }]), t;\n}(),\n _ = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n var a = this.w;\n this.xaxisLabels = a.globals.labels.slice(), this.axesUtils = new B(i), this.isTimelineBar = \"datetime\" === a.config.xaxis.type && a.globals.seriesRangeBarTimeline.length, a.globals.timescaleLabels.length > 0 && (this.xaxisLabels = a.globals.timescaleLabels.slice());\n }\n\n return a(t, [{\n key: \"drawGridArea\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,\n e = this.w,\n i = new b(this.ctx);\n null === t && (t = i.group({\n class: \"apexcharts-grid\"\n }));\n var a = i.drawLine(e.globals.padHorizontal, 1, e.globals.padHorizontal, e.globals.gridHeight, \"transparent\"),\n s = i.drawLine(e.globals.padHorizontal, e.globals.gridHeight, e.globals.gridWidth, e.globals.gridHeight, \"transparent\");\n return t.add(s), t.add(a), t;\n }\n }, {\n key: \"drawGrid\",\n value: function value() {\n var t = null;\n return this.w.globals.axisCharts && (t = this.renderGrid(), this.drawGridArea(t.el)), t;\n }\n }, {\n key: \"createGridMask\",\n value: function value() {\n var t = this.w,\n e = t.globals,\n i = new b(this.ctx),\n a = Array.isArray(t.config.stroke.width) ? 0 : t.config.stroke.width;\n\n if (Array.isArray(t.config.stroke.width)) {\n var s = 0;\n t.config.stroke.width.forEach(function (t) {\n s = Math.max(s, t);\n }), a = s;\n }\n\n e.dom.elGridRectMask = document.createElementNS(e.SVGNS, \"clipPath\"), e.dom.elGridRectMask.setAttribute(\"id\", \"gridRectMask\".concat(e.cuid)), e.dom.elGridRectMarkerMask = document.createElementNS(e.SVGNS, \"clipPath\"), e.dom.elGridRectMarkerMask.setAttribute(\"id\", \"gridRectMarkerMask\".concat(e.cuid));\n var r = t.config.chart.type,\n n = 0,\n o = 0;\n (\"bar\" === r || \"rangeBar\" === r || t.globals.comboBarCount > 0) && t.globals.isXNumeric && !t.globals.isBarHorizontal && (n = t.config.grid.padding.left, o = t.config.grid.padding.right, e.barPadForNumericAxis > n && (n = e.barPadForNumericAxis, o = e.barPadForNumericAxis)), e.dom.elGridRect = i.drawRect(-a / 2 - n - 2, -a / 2, e.gridWidth + a + o + n + 4, e.gridHeight + a, 0, \"#fff\"), new y(this).getLargestMarkerSize();\n var l = t.globals.markers.largestSize + 1;\n e.dom.elGridRectMarker = i.drawRect(2 * -l, 2 * -l, e.gridWidth + 4 * l, e.gridHeight + 4 * l, 0, \"#fff\"), e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node), e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);\n var h = e.dom.baseEl.querySelector(\"defs\");\n h.appendChild(e.dom.elGridRectMask), h.appendChild(e.dom.elGridRectMarkerMask);\n }\n }, {\n key: \"_drawGridLines\",\n value: function value(t) {\n var e = t.i,\n i = t.x1,\n a = t.y1,\n s = t.x2,\n r = t.y2,\n n = t.xCount,\n o = t.parent,\n l = this.w;\n 0 === e && l.globals.skipFirstTimelinelabel || e === n - 1 && l.globals.skipLastTimelinelabel && !l.config.xaxis.labels.formatter || \"radar\" === l.config.chart.type || (l.config.grid.xaxis.lines.show && this._drawGridLine({\n x1: i,\n y1: a,\n x2: s,\n y2: r,\n parent: o\n }), new G(this.ctx).drawXaxisTicks(i, this.elg));\n }\n }, {\n key: \"_drawGridLine\",\n value: function value(t) {\n var e = t.x1,\n i = t.y1,\n a = t.x2,\n s = t.y2,\n r = t.parent,\n n = this.w,\n o = r.node.classList.contains(\"apexcharts-gridlines-horizontal\"),\n l = n.config.grid.strokeDashArray,\n h = n.globals.barPadForNumericAxis,\n c = new b(this).drawLine(e - (o ? h : 0), i, a + (o ? h : 0), s, n.config.grid.borderColor, l);\n c.node.classList.add(\"apexcharts-gridline\"), r.add(c);\n }\n }, {\n key: \"_drawGridBandRect\",\n value: function value(t) {\n var e = t.c,\n i = t.x1,\n a = t.y1,\n s = t.x2,\n r = t.y2,\n n = t.type,\n o = this.w,\n l = new b(this.ctx),\n h = o.globals.barPadForNumericAxis;\n\n if (\"column\" !== n || \"datetime\" !== o.config.xaxis.type) {\n var c = o.config.grid[n].colors[e],\n d = l.drawRect(i - (\"row\" === n ? h : 0), a, s + (\"row\" === n ? 2 * h : 0), r, 0, c, o.config.grid[n].opacity);\n this.elg.add(d), d.attr(\"clip-path\", \"url(#gridRectMask\".concat(o.globals.cuid, \")\")), d.node.classList.add(\"apexcharts-grid-\".concat(n));\n }\n }\n }, {\n key: \"_drawXYLines\",\n value: function value(t) {\n var e = this,\n i = t.xCount,\n a = t.tickAmount,\n s = this.w;\n\n if (s.config.grid.xaxis.lines.show || s.config.xaxis.axisTicks.show) {\n var r,\n n = s.globals.padHorizontal,\n o = s.globals.gridHeight;\n s.globals.timescaleLabels.length ? function (t) {\n for (var a = t.xC, s = t.x1, r = t.y1, n = t.x2, o = t.y2, l = 0; l < a; l++) {\n s = e.xaxisLabels[l].position, n = e.xaxisLabels[l].position, e._drawGridLines({\n i: l,\n x1: s,\n y1: r,\n x2: n,\n y2: o,\n xCount: i,\n parent: e.elgridLinesV\n });\n }\n }({\n xC: i,\n x1: n,\n y1: 0,\n x2: r,\n y2: o\n }) : (s.globals.isXNumeric && (i = s.globals.xAxisScale.result.length), s.config.xaxis.convertedCatToNumeric && (i = s.globals.xaxisLabelsCount), function (t) {\n var a = t.xC,\n r = t.x1,\n n = t.y1,\n o = t.x2,\n l = t.y2;\n if (void 0 !== s.config.xaxis.tickAmount && \"dataPoints\" !== s.config.xaxis.tickAmount) s.globals.dom.baseEl.querySelectorAll(\".apexcharts-text.apexcharts-xaxis-label tspan:not(:empty)\").forEach(function (t, a) {\n var s = t.getBBox();\n\n e._drawGridLines({\n i: a,\n x1: s.x + s.width / 2,\n y1: n,\n x2: s.x + s.width / 2,\n y2: l,\n xCount: i,\n parent: e.elgridLinesV\n });\n });else for (var h = 0; h < a + (s.globals.isXNumeric ? 0 : 1); h++) {\n 0 === h && 1 === a && 1 === s.globals.dataPoints && (o = r = s.globals.gridWidth / 2), e._drawGridLines({\n i: h,\n x1: r,\n y1: n,\n x2: o,\n y2: l,\n xCount: i,\n parent: e.elgridLinesV\n }), o = r += s.globals.gridWidth / (s.globals.isXNumeric ? a - 1 : a);\n }\n }({\n xC: i,\n x1: n,\n y1: 0,\n x2: r,\n y2: o\n }));\n }\n\n if (s.config.grid.yaxis.lines.show) {\n var l = 0,\n h = 0,\n c = s.globals.gridWidth,\n d = a + 1;\n this.isTimelineBar && (d = s.globals.labels.length);\n\n for (var g = 0; g < d + (this.isTimelineBar ? 1 : 0); g++) {\n this._drawGridLine({\n x1: 0,\n y1: l,\n x2: c,\n y2: h,\n parent: this.elgridLinesH\n }), h = l += s.globals.gridHeight / (this.isTimelineBar ? d : a);\n }\n }\n }\n }, {\n key: \"_drawInvertedXYLines\",\n value: function value(t) {\n var e = t.xCount,\n i = this.w;\n if (i.config.grid.xaxis.lines.show || i.config.xaxis.axisTicks.show) for (var a, s = i.globals.padHorizontal, r = i.globals.gridHeight, n = 0; n < e + 1; n++) {\n i.config.grid.xaxis.lines.show && this._drawGridLine({\n x1: s,\n y1: 0,\n x2: a,\n y2: r,\n parent: this.elgridLinesV\n }), new G(this.ctx).drawXaxisTicks(s, this.elg), a = s = s + i.globals.gridWidth / e + .3;\n }\n if (i.config.grid.yaxis.lines.show) for (var o = 0, l = 0, h = i.globals.gridWidth, c = 0; c < i.globals.dataPoints + 1; c++) {\n this._drawGridLine({\n x1: 0,\n y1: o,\n x2: h,\n y2: l,\n parent: this.elgridLinesH\n }), l = o += i.globals.gridHeight / i.globals.dataPoints;\n }\n }\n }, {\n key: \"renderGrid\",\n value: function value() {\n var t = this.w,\n e = new b(this.ctx);\n this.elg = e.group({\n class: \"apexcharts-grid\"\n }), this.elgridLinesH = e.group({\n class: \"apexcharts-gridlines-horizontal\"\n }), this.elgridLinesV = e.group({\n class: \"apexcharts-gridlines-vertical\"\n }), this.elg.add(this.elgridLinesH), this.elg.add(this.elgridLinesV), t.config.grid.show || (this.elgridLinesV.hide(), this.elgridLinesH.hide());\n\n for (var i, a = t.globals.yAxisScale.length ? t.globals.yAxisScale[0].result.length - 1 : 5, s = 0; s < t.globals.series.length && (void 0 !== t.globals.yAxisScale[s] && (a = t.globals.yAxisScale[s].result.length - 1), !(a > 2)); s++) {\n ;\n }\n\n return !t.globals.isBarHorizontal || this.isTimelineBar ? (i = this.xaxisLabels.length, this.isTimelineBar && (a = t.globals.labels.length, t.config.xaxis.tickAmount && t.config.xaxis.labels.formatter && (i = t.config.xaxis.tickAmount)), this._drawXYLines({\n xCount: i,\n tickAmount: a\n })) : (i = a, a = t.globals.xTickAmount, this._drawInvertedXYLines({\n xCount: i,\n tickAmount: a\n })), this.drawGridBands(i, a), {\n el: this.elg,\n xAxisTickWidth: t.globals.gridWidth / i\n };\n }\n }, {\n key: \"drawGridBands\",\n value: function value(t, e) {\n var i = this.w;\n if (void 0 !== i.config.grid.row.colors && i.config.grid.row.colors.length > 0) for (var a = 0, s = i.globals.gridHeight / e, r = i.globals.gridWidth, n = 0, o = 0; n < e; n++, o++) {\n o >= i.config.grid.row.colors.length && (o = 0), this._drawGridBandRect({\n c: o,\n x1: 0,\n y1: a,\n x2: r,\n y2: s,\n type: \"row\"\n }), a += i.globals.gridHeight / e;\n }\n if (void 0 !== i.config.grid.column.colors && i.config.grid.column.colors.length > 0) for (var l = i.globals.isBarHorizontal || \"category\" !== i.config.xaxis.type && !i.config.xaxis.convertedCatToNumeric ? t : t - 1, h = i.globals.padHorizontal, c = i.globals.padHorizontal + i.globals.gridWidth / l, d = i.globals.gridHeight, g = 0, u = 0; g < t; g++, u++) {\n u >= i.config.grid.column.colors.length && (u = 0), this._drawGridBandRect({\n c: u,\n x1: h,\n y1: 0,\n x2: c,\n y2: d,\n type: \"column\"\n }), h += i.globals.gridWidth / l;\n }\n }\n }]), t;\n}(),\n j = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"niceScale\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 10,\n a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,\n s = arguments.length > 4 ? arguments[4] : void 0,\n r = this.w,\n n = Math.abs(e - t);\n\n if (\"dataPoints\" === (i = this._adjustTicksForSmallRange(i, a, n)) && (i = r.globals.dataPoints - 1), t === Number.MIN_VALUE && 0 === e || !f.isNumber(t) && !f.isNumber(e) || t === Number.MIN_VALUE && e === -Number.MAX_VALUE) {\n t = 0, e = i;\n var o = this.linearScale(t, e, i);\n return o;\n }\n\n t > e ? (console.warn(\"axis.min cannot be greater than axis.max\"), e = t + .1) : t === e && (t = 0 === t ? 0 : t - .5, e = 0 === e ? 2 : e + .5);\n var l = [];\n n < 1 && s && (\"candlestick\" === r.config.chart.type || \"candlestick\" === r.config.series[a].type || r.globals.isRangeData) && (e *= 1.01);\n var h = i + 1;\n h < 2 ? h = 2 : h > 2 && (h -= 2);\n var c = n / h,\n d = Math.floor(f.log10(c)),\n g = Math.pow(10, d),\n u = Math.round(c / g);\n u < 1 && (u = 1);\n var p = u * g,\n x = p * Math.floor(t / p),\n b = p * Math.ceil(e / p),\n m = x;\n\n if (s && n > 2) {\n for (; l.push(m), !((m += p) > b);) {\n ;\n }\n\n return {\n result: l,\n niceMin: l[0],\n niceMax: l[l.length - 1]\n };\n }\n\n var v = t;\n (l = []).push(v);\n\n for (var y = Math.abs(e - t) / i, w = 0; w <= i; w++) {\n v += y, l.push(v);\n }\n\n return l[l.length - 2] >= e && l.pop(), {\n result: l,\n niceMin: l[0],\n niceMax: l[l.length - 1]\n };\n }\n }, {\n key: \"linearScale\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 10,\n a = arguments.length > 3 ? arguments[3] : void 0,\n s = Math.abs(e - t),\n r = s / (i = this._adjustTicksForSmallRange(i, a, s));\n\n i === Number.MAX_VALUE && (i = 10, r = 1);\n\n for (var n = [], o = t; i >= 0;) {\n n.push(o), o += r, i -= 1;\n }\n\n return {\n result: n,\n niceMin: n[0],\n niceMax: n[n.length - 1]\n };\n }\n }, {\n key: \"logarithmicScale\",\n value: function value(t) {\n for (var e = [], i = Math.ceil(Math.log10(t)) + 1, a = 0; a < i; a++) {\n e.push(Math.pow(10, a));\n }\n\n return {\n result: e,\n niceMin: e[0],\n niceMax: e[e.length - 1]\n };\n }\n }, {\n key: \"_adjustTicksForSmallRange\",\n value: function value(t, e, i) {\n var a = t;\n\n if (void 0 !== e && this.w.config.yaxis[e].labels.formatter && void 0 === this.w.config.yaxis[e].tickAmount) {\n var s = this.w.config.yaxis[e].labels.formatter(1);\n f.isNumber(Number(s)) && !f.isFloat(s) && (a = Math.ceil(i));\n }\n\n return a < t ? a : t;\n }\n }, {\n key: \"setYScaleForIndex\",\n value: function value(t, e, i) {\n var a = this.w.globals,\n s = this.w.config,\n r = a.isBarHorizontal ? s.xaxis : s.yaxis[t];\n void 0 === a.yAxisScale[t] && (a.yAxisScale[t] = []);\n var n = Math.abs(i - e);\n if (r.logarithmic && n <= 5 && (a.invalidLogScale = !0), r.logarithmic && n > 5) a.allSeriesCollapsed = !1, a.yAxisScale[t] = this.logarithmicScale(i);else if (i !== -Number.MAX_VALUE && f.isNumber(i)) {\n if (a.allSeriesCollapsed = !1, void 0 === r.min && void 0 === r.max || r.forceNiceScale) {\n var o = void 0 === s.yaxis[t].max && void 0 === s.yaxis[t].min || s.yaxis[t].forceNiceScale;\n a.yAxisScale[t] = this.niceScale(e, i, r.tickAmount ? r.tickAmount : n < 5 && n > 1 ? n + 1 : 5, t, o);\n } else a.yAxisScale[t] = this.linearScale(e, i, r.tickAmount, t);\n } else a.yAxisScale[t] = this.linearScale(0, 5, 5);\n }\n }, {\n key: \"setXScale\",\n value: function value(t, e) {\n var i = this.w,\n a = i.globals,\n s = i.config.xaxis,\n r = Math.abs(e - t);\n return e !== -Number.MAX_VALUE && f.isNumber(e) ? a.xAxisScale = this.niceScale(t, e, s.tickAmount ? s.tickAmount : r < 5 && r > 1 ? r + 1 : 5, 0) : a.xAxisScale = this.linearScale(0, 5, 5), a.xAxisScale;\n }\n }, {\n key: \"setMultipleYScales\",\n value: function value() {\n var t = this,\n e = this.w.globals,\n i = this.w.config,\n a = e.minYArr.concat([]),\n s = e.maxYArr.concat([]),\n r = [];\n i.yaxis.forEach(function (e, n) {\n var o = n;\n i.series.forEach(function (t, i) {\n t.name === e.seriesName && (o = i, n !== i ? r.push({\n index: i,\n similarIndex: n,\n alreadyExists: !0\n }) : r.push({\n index: i\n }));\n });\n var l = a[o],\n h = s[o];\n t.setYScaleForIndex(n, l, h);\n }), this.sameScaleInMultipleAxes(a, s, r);\n }\n }, {\n key: \"sameScaleInMultipleAxes\",\n value: function value(t, e, i) {\n var a = this,\n s = this.w.config,\n r = this.w.globals,\n n = [];\n i.forEach(function (t) {\n t.alreadyExists && (void 0 === n[t.index] && (n[t.index] = []), n[t.index].push(t.index), n[t.index].push(t.similarIndex));\n }), r.yAxisSameScaleIndices = n, n.forEach(function (t, e) {\n n.forEach(function (i, a) {\n var s, r;\n e !== a && (s = t, r = i, s.filter(function (t) {\n return -1 !== r.indexOf(t);\n })).length > 0 && (n[e] = n[e].concat(n[a]));\n });\n });\n var o = n.map(function (t) {\n return t.filter(function (e, i) {\n return t.indexOf(e) === i;\n });\n }).map(function (t) {\n return t.sort();\n });\n n = n.filter(function (t) {\n return !!t;\n });\n var l = o.slice(),\n h = l.map(function (t) {\n return JSON.stringify(t);\n });\n l = l.filter(function (t, e) {\n return h.indexOf(JSON.stringify(t)) === e;\n });\n var c = [],\n d = [];\n t.forEach(function (t, i) {\n l.forEach(function (a, s) {\n a.indexOf(i) > -1 && (void 0 === c[s] && (c[s] = [], d[s] = []), c[s].push({\n key: i,\n value: t\n }), d[s].push({\n key: i,\n value: e[i]\n }));\n });\n });\n var g = Array.apply(null, Array(l.length)).map(Number.prototype.valueOf, Number.MIN_VALUE),\n u = Array.apply(null, Array(l.length)).map(Number.prototype.valueOf, -Number.MAX_VALUE);\n c.forEach(function (t, e) {\n t.forEach(function (t, i) {\n g[e] = Math.min(t.value, g[e]);\n });\n }), d.forEach(function (t, e) {\n t.forEach(function (t, i) {\n u[e] = Math.max(t.value, u[e]);\n });\n }), t.forEach(function (t, e) {\n d.forEach(function (t, i) {\n var n = g[i],\n o = u[i];\n s.chart.stacked && (o = 0, t.forEach(function (t, e) {\n t.value !== -Number.MAX_VALUE && (o += t.value), n !== Number.MIN_VALUE && (n += c[i][e].value);\n })), t.forEach(function (i, l) {\n t[l].key === e && (void 0 !== s.yaxis[e].min && (n = \"function\" == typeof s.yaxis[e].min ? s.yaxis[e].min(r.minY) : s.yaxis[e].min), void 0 !== s.yaxis[e].max && (o = \"function\" == typeof s.yaxis[e].max ? s.yaxis[e].max(r.maxY) : s.yaxis[e].max), a.setYScaleForIndex(e, n, o));\n });\n });\n });\n }\n }, {\n key: \"autoScaleY\",\n value: function value(t, e, i) {\n t || (t = this);\n var a = t.w;\n if (a.globals.isMultipleYAxis || a.globals.collapsedSeries.length) return console.warn(\"autoScaleYaxis is not supported in a multi-yaxis chart.\"), e;\n var s = a.globals.seriesX[0],\n r = a.config.chart.stacked;\n return e.forEach(function (t, n) {\n for (var o = 0, l = 0; l < s.length; l++) {\n if (s[l] >= i.xaxis.min) {\n o = l;\n break;\n }\n }\n\n var h,\n c,\n d = a.globals.minYArr[n],\n g = a.globals.maxYArr[n],\n u = a.globals.stackedSeriesTotals;\n a.globals.series.forEach(function (n, l) {\n var f = n[o];\n r ? (f = u[o], h = c = f, u.forEach(function (t, e) {\n s[e] <= i.xaxis.max && s[e] >= i.xaxis.min && (t > c && null !== t && (c = t), n[e] < h && null !== n[e] && (h = n[e]));\n })) : (h = c = f, n.forEach(function (t, e) {\n if (s[e] <= i.xaxis.max && s[e] >= i.xaxis.min) {\n var r = t,\n n = t;\n a.globals.series.forEach(function (i, a) {\n null !== t && (r = Math.min(i[e], r), n = Math.max(i[e], n));\n }), n > c && null !== n && (c = n), r < h && null !== r && (h = r);\n }\n })), void 0 === h && void 0 === c && (h = d, c = g), (c *= c < 0 ? .9 : 1.1) < 0 && c < g && (c = g), (h *= h < 0 ? 1.1 : .9) < 0 && h > d && (h = d), e.length > 1 ? (e[l].min = void 0 === t.min ? h : t.min, e[l].max = void 0 === t.max ? c : t.max) : (e[0].min = void 0 === t.min ? h : t.min, e[0].max = void 0 === t.max ? c : t.max);\n });\n }), e;\n }\n }]), t;\n}(),\n U = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.scales = new j(i);\n }\n\n return a(t, [{\n key: \"init\",\n value: function value() {\n this.setYRange(), this.setXRange(), this.setZRange();\n }\n }, {\n key: \"getMinYMaxY\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Number.MAX_VALUE,\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -Number.MAX_VALUE,\n a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null,\n s = this.w.config,\n r = this.w.globals,\n n = -Number.MAX_VALUE,\n o = Number.MIN_VALUE;\n null === a && (a = t + 1);\n var l = r.series,\n h = l,\n c = l;\n \"candlestick\" === s.chart.type ? (h = r.seriesCandleL, c = r.seriesCandleH) : r.isRangeData && (h = r.seriesRangeStart, c = r.seriesRangeEnd);\n\n for (var d = t; d < a; d++) {\n r.dataPoints = Math.max(r.dataPoints, l[d].length);\n\n for (var g = 0; g < r.series[d].length; g++) {\n var u = l[d][g];\n null !== u && f.isNumber(u) ? (n = Math.max(n, c[d][g]), e = Math.min(e, h[d][g]), i = Math.max(i, h[d][g]), \"candlestick\" === this.w.config.chart.type && (n = Math.max(n, r.seriesCandleO[d][g]), n = Math.max(n, r.seriesCandleH[d][g]), n = Math.max(n, r.seriesCandleL[d][g]), i = n = Math.max(n, r.seriesCandleC[d][g])), f.isFloat(u) && (u = f.noExponents(u), r.yValueDecimal = Math.max(r.yValueDecimal, u.toString().split(\".\")[1].length)), o > h[d][g] && h[d][g] < 0 && (o = h[d][g])) : r.hasNullValues = !0;\n }\n }\n\n return \"rangeBar\" === s.chart.type && r.seriesRangeStart.length && r.isBarHorizontal && \"datetime\" === s.xaxis.type && (o = e), \"bar\" === s.chart.type && (o < 0 && n < 0 && (n = 0), o === Number.MIN_VALUE && (o = 0)), {\n minY: o,\n maxY: n,\n lowestY: e,\n highestY: i\n };\n }\n }, {\n key: \"setYRange\",\n value: function value() {\n var t = this.w.globals,\n e = this.w.config;\n t.maxY = -Number.MAX_VALUE, t.minY = Number.MIN_VALUE;\n var i = Number.MAX_VALUE;\n if (t.isMultipleYAxis) for (var a = 0; a < t.series.length; a++) {\n var s = this.getMinYMaxY(a, i, null, a + 1);\n t.minYArr.push(s.minY), t.maxYArr.push(s.maxY), i = s.lowestY;\n }\n var r = this.getMinYMaxY(0, i, null, t.series.length);\n\n if (t.minY = r.minY, t.maxY = r.maxY, i = r.lowestY, e.chart.stacked && this._setStackedMinMax(), (\"line\" === e.chart.type || \"area\" === e.chart.type || \"candlestick\" === e.chart.type || \"rangeBar\" === e.chart.type && !t.isBarHorizontal) && t.minY === Number.MIN_VALUE && i !== -Number.MAX_VALUE && i !== t.maxY) {\n var n = t.maxY - i;\n i >= 0 && i <= 10 && (n = 0), t.minY = i - 5 * n / 100, i > 0 && t.minY < 0 && (t.minY = 0), t.maxY = t.maxY + 5 * n / 100;\n }\n\n if (e.yaxis.forEach(function (e, i) {\n void 0 !== e.max && (\"number\" == typeof e.max ? t.maxYArr[i] = e.max : \"function\" == typeof e.max && (t.maxYArr[i] = e.max(t.isMultipleYAxis ? t.maxYArr[i] : t.maxY)), t.maxY = t.maxYArr[i]), void 0 !== e.min && (\"number\" == typeof e.min ? t.minYArr[i] = e.min : \"function\" == typeof e.min && (t.minYArr[i] = e.min(t.isMultipleYAxis ? t.minYArr[i] === Number.MIN_VALUE ? 0 : t.minYArr[i] : t.minY)), t.minY = t.minYArr[i]);\n }), t.isBarHorizontal) {\n [\"min\", \"max\"].forEach(function (i) {\n void 0 !== e.xaxis[i] && \"number\" == typeof e.xaxis[i] && (\"min\" === i ? t.minY = e.xaxis[i] : t.maxY = e.xaxis[i]);\n });\n }\n\n return t.isMultipleYAxis ? (this.scales.setMultipleYScales(), t.minY = i, t.yAxisScale.forEach(function (e, i) {\n t.minYArr[i] = e.niceMin, t.maxYArr[i] = e.niceMax;\n })) : (this.scales.setYScaleForIndex(0, t.minY, t.maxY), t.minY = t.yAxisScale[0].niceMin, t.maxY = t.yAxisScale[0].niceMax, t.minYArr[0] = t.yAxisScale[0].niceMin, t.maxYArr[0] = t.yAxisScale[0].niceMax), {\n minY: t.minY,\n maxY: t.maxY,\n minYArr: t.minYArr,\n maxYArr: t.maxYArr,\n yAxisScale: t.yAxisScale\n };\n }\n }, {\n key: \"setXRange\",\n value: function value() {\n var t = this.w.globals,\n e = this.w.config,\n i = \"numeric\" === e.xaxis.type || \"datetime\" === e.xaxis.type || \"category\" === e.xaxis.type && !t.noLabelsProvided || t.noLabelsProvided || t.isXNumeric;\n\n if (t.isXNumeric && function () {\n for (var e = 0; e < t.series.length; e++) {\n if (t.labels[e]) for (var i = 0; i < t.labels[e].length; i++) {\n null !== t.labels[e][i] && f.isNumber(t.labels[e][i]) && (t.maxX = Math.max(t.maxX, t.labels[e][i]), t.initialMaxX = Math.max(t.maxX, t.labels[e][i]), t.minX = Math.min(t.minX, t.labels[e][i]), t.initialMinX = Math.min(t.minX, t.labels[e][i]));\n }\n }\n }(), t.noLabelsProvided && 0 === e.xaxis.categories.length && (t.maxX = t.labels[t.labels.length - 1], t.initialMaxX = t.labels[t.labels.length - 1], t.minX = 1, t.initialMinX = 1), t.isXNumeric || t.noLabelsProvided || t.dataFormatXNumeric) {\n var a;\n if (void 0 === e.xaxis.tickAmount ? (a = Math.round(t.svgWidth / 150), \"numeric\" === e.xaxis.type && t.dataPoints < 30 && (a = t.dataPoints - 1), a > t.dataPoints && 0 !== t.dataPoints && (a = t.dataPoints - 1)) : \"dataPoints\" === e.xaxis.tickAmount ? (t.series.length > 1 && (a = t.series[t.maxValsInArrayIndex].length - 1), t.isXNumeric && (a = t.maxX - t.minX - 1)) : a = e.xaxis.tickAmount, t.xTickAmount = a, void 0 !== e.xaxis.max && \"number\" == typeof e.xaxis.max && (t.maxX = e.xaxis.max), void 0 !== e.xaxis.min && \"number\" == typeof e.xaxis.min && (t.minX = e.xaxis.min), void 0 !== e.xaxis.range && (t.minX = t.maxX - e.xaxis.range), t.minX !== Number.MAX_VALUE && t.maxX !== -Number.MAX_VALUE) {\n if (e.xaxis.convertedCatToNumeric && !t.dataFormatXNumeric) {\n for (var s = [], r = t.minX - 1; r < t.maxX; r++) {\n s.push(r + 1);\n }\n\n t.xAxisScale = {\n result: s,\n niceMin: s[0],\n niceMax: s[s.length - 1]\n };\n } else t.xAxisScale = this.scales.setXScale(t.minX, t.maxX);\n } else t.xAxisScale = this.scales.linearScale(1, a, a), t.noLabelsProvided && t.labels.length > 0 && (t.xAxisScale = this.scales.linearScale(1, t.labels.length, a - 1), t.seriesX = t.labels.slice());\n i && (t.labels = t.xAxisScale.result.slice());\n }\n\n return t.isBarHorizontal && t.labels.length && (t.xTickAmount = t.labels.length), this._handleSingleDataPoint(), this._getMinXDiff(), {\n minX: t.minX,\n maxX: t.maxX\n };\n }\n }, {\n key: \"setZRange\",\n value: function value() {\n var t = this.w.globals;\n if (t.isDataXYZ) for (var e = 0; e < t.series.length; e++) {\n if (void 0 !== t.seriesZ[e]) for (var i = 0; i < t.seriesZ[e].length; i++) {\n null !== t.seriesZ[e][i] && f.isNumber(t.seriesZ[e][i]) && (t.maxZ = Math.max(t.maxZ, t.seriesZ[e][i]), t.minZ = Math.min(t.minZ, t.seriesZ[e][i]));\n }\n }\n }\n }, {\n key: \"_handleSingleDataPoint\",\n value: function value() {\n var t = this.w.globals,\n e = this.w.config;\n\n if (t.minX === t.maxX) {\n var i = new Y(this.ctx);\n\n if (\"datetime\" === e.xaxis.type) {\n var a = i.getDate(t.minX);\n a.setUTCDate(a.getDate() - 2), t.minX = new Date(a).getTime();\n var s = i.getDate(t.maxX);\n s.setUTCDate(s.getDate() + 2), t.maxX = new Date(s).getTime();\n } else (\"numeric\" === e.xaxis.type || \"category\" === e.xaxis.type && !t.noLabelsProvided) && (t.minX = t.minX - 2, t.initialMinX = t.minX, t.maxX = t.maxX + 2, t.initialMaxX = t.maxX);\n }\n }\n }, {\n key: \"_getMinXDiff\",\n value: function value() {\n var t = this.w.globals;\n t.isXNumeric && t.seriesX.forEach(function (e, i) {\n 1 === e.length && e.push(t.seriesX[t.maxValsInArrayIndex][t.seriesX[t.maxValsInArrayIndex].length - 1]);\n var a = e.slice();\n a.sort(function (t, e) {\n return t - e;\n }), a.forEach(function (e, a) {\n if (a > 0) {\n var s = e - t.seriesX[i][a - 1];\n s > 0 && (t.minXDiff = Math.min(s, t.minXDiff));\n }\n }), 1 === t.dataPoints && t.minXDiff === Number.MAX_VALUE && (t.minXDiff = .5);\n });\n }\n }, {\n key: \"_setStackedMinMax\",\n value: function value() {\n var t = this.w.globals,\n e = [],\n i = [];\n if (t.series.length) for (var a = 0; a < t.series[t.maxValsInArrayIndex].length; a++) {\n for (var s = 0, r = 0, n = 0; n < t.series.length; n++) {\n null !== t.series[n][a] && f.isNumber(t.series[n][a]) && (t.series[n][a] > 0 ? s = s + parseFloat(t.series[n][a]) + 1e-4 : r += parseFloat(t.series[n][a])), n === t.series.length - 1 && (e.push(s), i.push(r));\n }\n }\n\n for (var o = 0; o < e.length; o++) {\n t.maxY = Math.max(t.maxY, e[o]), t.minY = Math.min(t.minY, i[o]);\n }\n }\n }]), t;\n}(),\n q = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n var a = this.w;\n this.xaxisFontSize = a.config.xaxis.labels.style.fontSize, this.axisFontFamily = a.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = a.config.xaxis.labels.style.colors, this.isCategoryBarHorizontal = \"bar\" === a.config.chart.type && a.config.plotOptions.bar.horizontal, this.xAxisoffX = 0, \"bottom\" === a.config.xaxis.position && (this.xAxisoffX = a.globals.gridHeight), this.drawnLabels = [], this.axesUtils = new B(i);\n }\n\n return a(t, [{\n key: \"drawYaxis\",\n value: function value(t) {\n var e = this,\n i = this.w,\n a = new b(this.ctx),\n s = i.config.yaxis[t].labels.style,\n r = s.fontSize,\n n = s.fontFamily,\n o = s.fontWeight,\n l = a.group({\n class: \"apexcharts-yaxis\",\n rel: t,\n transform: \"translate(\" + i.globals.translateYAxisX[t] + \", 0)\"\n });\n if (this.axesUtils.isYAxisHidden(t)) return l;\n var h = a.group({\n class: \"apexcharts-yaxis-texts-g\"\n });\n l.add(h);\n var c = i.globals.yAxisScale[t].result.length - 1,\n d = i.globals.gridHeight / c,\n g = i.globals.translateY,\n u = i.globals.yLabelFormatters[t],\n f = i.globals.yAxisScale[t].result.slice();\n f = this.axesUtils.checkForReversedLabels(t, f);\n var p = \"\";\n if (i.config.yaxis[t].labels.show) for (var x = function x(l) {\n var x = f[l];\n x = u(x, l);\n var b = i.config.yaxis[t].labels.padding;\n i.config.yaxis[t].opposite && 0 !== i.config.yaxis.length && (b *= -1);\n var m = e.axesUtils.getYAxisForeColor(s.colors, t),\n v = a.drawText({\n x: b,\n y: g + c / 10 + i.config.yaxis[t].labels.offsetY + 1,\n text: x,\n textAnchor: i.config.yaxis[t].opposite ? \"start\" : \"end\",\n fontSize: r,\n fontFamily: n,\n fontWeight: o,\n foreColor: Array.isArray(m) ? m[l] : m,\n isPlainText: !1,\n cssClass: \"apexcharts-yaxis-label \" + s.cssClass\n });\n\n if (l === c && (p = v), h.add(v), 0 !== i.config.yaxis[t].labels.rotate) {\n var y = a.rotateAroundCenter(p.node),\n w = a.rotateAroundCenter(v.node);\n v.node.setAttribute(\"transform\", \"rotate(\".concat(i.config.yaxis[t].labels.rotate, \" \").concat(y.x, \" \").concat(w.y, \")\"));\n }\n\n g += d;\n }, m = c; m >= 0; m--) {\n x(m);\n }\n\n if (void 0 !== i.config.yaxis[t].title.text) {\n var v = a.group({\n class: \"apexcharts-yaxis-title\"\n }),\n y = 0;\n i.config.yaxis[t].opposite && (y = i.globals.translateYAxisX[t]);\n var w = a.drawText({\n x: y,\n y: i.globals.gridHeight / 2 + i.globals.translateY + i.config.yaxis[t].title.offsetY,\n text: i.config.yaxis[t].title.text,\n textAnchor: \"end\",\n foreColor: i.config.yaxis[t].title.style.color,\n fontSize: i.config.yaxis[t].title.style.fontSize,\n fontWeight: i.config.yaxis[t].title.style.fontWeight,\n fontFamily: i.config.yaxis[t].title.style.fontFamily,\n cssClass: \"apexcharts-yaxis-title-text \" + i.config.yaxis[t].title.style.cssClass\n });\n v.add(w), l.add(v);\n }\n\n var k = i.config.yaxis[t].axisBorder,\n A = 31 + k.offsetX;\n\n if (i.config.yaxis[t].opposite && (A = -31 - k.offsetX), k.show) {\n var S = a.drawLine(A, i.globals.translateY + k.offsetY - 2, A, i.globals.gridHeight + i.globals.translateY + k.offsetY + 2, k.color, 0, k.width);\n l.add(S);\n }\n\n return i.config.yaxis[t].axisTicks.show && this.axesUtils.drawYAxisTicks(A, c, k, i.config.yaxis[t].axisTicks, t, d, l), l;\n }\n }, {\n key: \"drawYaxisInversed\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx),\n a = i.group({\n class: \"apexcharts-xaxis apexcharts-yaxis-inversed\"\n }),\n s = i.group({\n class: \"apexcharts-xaxis-texts-g\",\n transform: \"translate(\".concat(e.globals.translateXAxisX, \", \").concat(e.globals.translateXAxisY, \")\")\n });\n a.add(s);\n var r = e.globals.yAxisScale[t].result.length - 1,\n n = e.globals.gridWidth / r + .1,\n o = n + e.config.xaxis.labels.offsetX,\n l = e.globals.xLabelFormatter,\n h = e.globals.yAxisScale[t].result.slice(),\n c = e.globals.timescaleLabels;\n c.length > 0 && (this.xaxisLabels = c.slice(), r = (h = c.slice()).length), h = this.axesUtils.checkForReversedLabels(t, h);\n var d = c.length;\n if (e.config.xaxis.labels.show) for (var g = d ? 0 : r; d ? g < d : g >= 0; d ? g++ : g--) {\n var u = h[g];\n u = l(u, g);\n var f = e.globals.gridWidth + e.globals.padHorizontal - (o - n + e.config.xaxis.labels.offsetX);\n\n if (c.length) {\n var p = this.axesUtils.getLabel(h, c, f, g, this.drawnLabels, this.xaxisFontSize);\n f = p.x, u = p.text, this.drawnLabels.push(p.text), 0 === g && e.globals.skipFirstTimelinelabel && (u = \"\"), g === h.length - 1 && e.globals.skipLastTimelinelabel && (u = \"\");\n }\n\n var x = i.drawText({\n x: f,\n y: this.xAxisoffX + e.config.xaxis.labels.offsetY + 30 - (\"top\" === e.config.xaxis.position ? e.globals.xAxisHeight + e.config.xaxis.axisTicks.height - 2 : 0),\n text: u,\n textAnchor: \"middle\",\n foreColor: Array.isArray(this.xaxisForeColors) ? this.xaxisForeColors[t] : this.xaxisForeColors,\n fontSize: this.xaxisFontSize,\n fontFamily: this.xaxisFontFamily,\n fontWeight: e.config.xaxis.labels.style.fontWeight,\n isPlainText: !1,\n cssClass: \"apexcharts-xaxis-label \" + e.config.xaxis.labels.style.cssClass\n });\n s.add(x), x.tspan(u);\n var m = document.createElementNS(e.globals.SVGNS, \"title\");\n m.textContent = u, x.node.appendChild(m), o += n;\n }\n return this.inversedYAxisTitleText(a), this.inversedYAxisBorder(a), a;\n }\n }, {\n key: \"inversedYAxisBorder\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx),\n a = e.config.xaxis.axisBorder;\n\n if (a.show) {\n var s = 0;\n \"bar\" === e.config.chart.type && e.globals.isXNumeric && (s -= 15);\n var r = i.drawLine(e.globals.padHorizontal + s + a.offsetX, this.xAxisoffX, e.globals.gridWidth, this.xAxisoffX, a.color, 0, a.height);\n t.add(r);\n }\n }\n }, {\n key: \"inversedYAxisTitleText\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx);\n\n if (void 0 !== e.config.xaxis.title.text) {\n var a = i.group({\n class: \"apexcharts-xaxis-title apexcharts-yaxis-title-inversed\"\n }),\n s = i.drawText({\n x: e.globals.gridWidth / 2 + e.config.xaxis.title.offsetX,\n y: this.xAxisoffX + parseFloat(this.xaxisFontSize) + parseFloat(e.config.xaxis.title.style.fontSize) + e.config.xaxis.title.offsetY + 20,\n text: e.config.xaxis.title.text,\n textAnchor: \"middle\",\n fontSize: e.config.xaxis.title.style.fontSize,\n fontFamily: e.config.xaxis.title.style.fontFamily,\n fontWeight: e.config.xaxis.title.style.fontWeight,\n foreColor: e.config.xaxis.title.style.color,\n cssClass: \"apexcharts-xaxis-title-text \" + e.config.xaxis.title.style.cssClass\n });\n a.add(s), t.add(a);\n }\n }\n }, {\n key: \"yAxisTitleRotate\",\n value: function value(t, e) {\n var i = this.w,\n a = new b(this.ctx),\n s = {\n width: 0,\n height: 0\n },\n r = {\n width: 0,\n height: 0\n },\n n = i.globals.dom.baseEl.querySelector(\" .apexcharts-yaxis[rel='\".concat(t, \"'] .apexcharts-yaxis-texts-g\"));\n null !== n && (s = n.getBoundingClientRect());\n var o = i.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(t, \"'] .apexcharts-yaxis-title text\"));\n\n if (null !== o && (r = o.getBoundingClientRect()), null !== o) {\n var l = this.xPaddingForYAxisTitle(t, s, r, e);\n o.setAttribute(\"x\", l.xPos - (e ? 10 : 0));\n }\n\n if (null !== o) {\n var h = a.rotateAroundCenter(o);\n o.setAttribute(\"transform\", \"rotate(\".concat(e ? -1 * i.config.yaxis[t].title.rotate : i.config.yaxis[t].title.rotate, \" \").concat(h.x, \" \").concat(h.y, \")\"));\n }\n }\n }, {\n key: \"xPaddingForYAxisTitle\",\n value: function value(t, e, i, a) {\n var s = this.w,\n r = 0,\n n = 0,\n o = 10;\n return void 0 === s.config.yaxis[t].title.text || t < 0 ? {\n xPos: n,\n padd: 0\n } : (a ? (n = e.width + s.config.yaxis[t].title.offsetX + i.width / 2 + o / 2, 0 === (r += 1) && (n -= o / 2)) : (n = -1 * e.width + s.config.yaxis[t].title.offsetX + o / 2 + i.width / 2, s.globals.isBarHorizontal && (o = 25, n = -1 * e.width - s.config.yaxis[t].title.offsetX - o)), {\n xPos: n,\n padd: o\n });\n }\n }, {\n key: \"setYAxisXPosition\",\n value: function value(t, e) {\n var i = this.w,\n a = 0,\n s = 0,\n r = 18,\n n = 1;\n i.config.yaxis.length > 1 && (this.multipleYs = !0), i.config.yaxis.map(function (o, l) {\n var h = i.globals.ignoreYAxisIndexes.indexOf(l) > -1 || !o.show || o.floating || 0 === t[l].width,\n c = t[l].width + e[l].width;\n o.opposite ? i.globals.isBarHorizontal ? (s = i.globals.gridWidth + i.globals.translateX - 1, i.globals.translateYAxisX[l] = s - o.labels.offsetX) : (s = i.globals.gridWidth + i.globals.translateX + n, h || (n = n + c + 20), i.globals.translateYAxisX[l] = s - o.labels.offsetX + 20) : (a = i.globals.translateX - r, h || (r = r + c + 20), i.globals.translateYAxisX[l] = a + o.labels.offsetX);\n });\n }\n }, {\n key: \"setYAxisTextAlignments\",\n value: function value() {\n var t = this.w,\n e = t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-yaxis\");\n (e = f.listToArray(e)).forEach(function (e, i) {\n var a = t.config.yaxis[i];\n\n if (a && void 0 !== a.labels.align) {\n var s = t.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(i, \"'] .apexcharts-yaxis-texts-g\")),\n r = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis[rel='\".concat(i, \"'] .apexcharts-yaxis-label\"));\n r = f.listToArray(r);\n var n = s.getBoundingClientRect();\n \"left\" === a.labels.align ? (r.forEach(function (t, e) {\n t.setAttribute(\"text-anchor\", \"start\");\n }), a.opposite || s.setAttribute(\"transform\", \"translate(-\".concat(n.width, \", 0)\"))) : \"center\" === a.labels.align ? (r.forEach(function (t, e) {\n t.setAttribute(\"text-anchor\", \"middle\");\n }), s.setAttribute(\"transform\", \"translate(\".concat(n.width / 2 * (a.opposite ? 1 : -1), \", 0)\"))) : \"right\" === a.labels.align && (r.forEach(function (t, e) {\n t.setAttribute(\"text-anchor\", \"end\");\n }), a.opposite && s.setAttribute(\"transform\", \"translate(\".concat(n.width, \", 0)\")));\n }\n });\n }\n }]), t;\n}(),\n Z = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.documentEvent = f.bind(this.documentEvent, this);\n }\n\n return a(t, [{\n key: \"addEventListener\",\n value: function value(t, e) {\n var i = this.w;\n i.globals.events.hasOwnProperty(t) ? i.globals.events[t].push(e) : i.globals.events[t] = [e];\n }\n }, {\n key: \"removeEventListener\",\n value: function value(t, e) {\n var i = this.w;\n\n if (i.globals.events.hasOwnProperty(t)) {\n var a = i.globals.events[t].indexOf(e);\n -1 !== a && i.globals.events[t].splice(a, 1);\n }\n }\n }, {\n key: \"fireEvent\",\n value: function value(t, e) {\n var i = this.w;\n\n if (i.globals.events.hasOwnProperty(t)) {\n e && e.length || (e = []);\n\n for (var a = i.globals.events[t], s = a.length, r = 0; r < s; r++) {\n a[r].apply(null, e);\n }\n }\n }\n }, {\n key: \"setupEventHandlers\",\n value: function value() {\n var t = this,\n e = this.w,\n i = this.ctx,\n a = e.globals.dom.baseEl.querySelector(e.globals.chartClass);\n this.ctx.eventList.forEach(function (t) {\n a.addEventListener(t, function (t) {\n var a = Object.assign({}, e, {\n seriesIndex: e.globals.capturedSeriesIndex,\n dataPointIndex: e.globals.capturedDataPointIndex\n });\n \"mousemove\" === t.type || \"touchmove\" === t.type ? \"function\" == typeof e.config.chart.events.mouseMove && e.config.chart.events.mouseMove(t, i, a) : (\"mouseup\" === t.type && 1 === t.which || \"touchend\" === t.type) && (\"function\" == typeof e.config.chart.events.click && e.config.chart.events.click(t, i, a), i.ctx.events.fireEvent(\"click\", [t, i, a]));\n }, {\n capture: !1,\n passive: !0\n });\n }), this.ctx.eventList.forEach(function (i) {\n e.globals.dom.baseEl.addEventListener(i, t.documentEvent, {\n passive: !0\n });\n }), this.ctx.core.setupBrushHandler();\n }\n }, {\n key: \"documentEvent\",\n value: function value(t) {\n var e = this.w,\n i = t.target.className;\n\n if (\"click\" === t.type) {\n var a = e.globals.dom.baseEl.querySelector(\".apexcharts-menu\");\n a && a.classList.contains(\"apexcharts-menu-open\") && \"apexcharts-menu-icon\" !== i && a.classList.remove(\"apexcharts-menu-open\");\n }\n\n e.globals.clientX = \"touchmove\" === t.type ? t.touches[0].clientX : t.clientX, e.globals.clientY = \"touchmove\" === t.type ? t.touches[0].clientY : t.clientY;\n }\n }]), t;\n}(),\n $ = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"setCurrentLocaleValues\",\n value: function value(t) {\n var e = this.w.config.chart.locales;\n window.Apex.chart && window.Apex.chart.locales && window.Apex.chart.locales.length > 0 && (e = this.w.config.chart.locales.concat(window.Apex.chart.locales));\n var i = e.filter(function (e) {\n return e.name === t;\n })[0];\n if (!i) throw new Error(\"Wrong locale name provided. Please make sure you set the correct locale name in options\");\n var a = f.extend(A, i);\n this.w.globals.locale = a.options;\n }\n }]), t;\n}(),\n J = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"drawAxis\",\n value: function value(t, e) {\n var i,\n a,\n s = this.w.globals,\n r = this.w.config,\n n = new G(this.ctx),\n o = new q(this.ctx);\n s.axisCharts && \"radar\" !== t && (s.isBarHorizontal ? (a = o.drawYaxisInversed(0), i = n.drawXaxisInversed(0), s.dom.elGraphical.add(i), s.dom.elGraphical.add(a)) : (i = n.drawXaxis(), s.dom.elGraphical.add(i), r.yaxis.map(function (t, e) {\n -1 === s.ignoreYAxisIndexes.indexOf(e) && (a = o.drawYaxis(e), s.dom.Paper.add(a));\n })));\n r.yaxis.map(function (t, e) {\n -1 === s.ignoreYAxisIndexes.indexOf(e) && o.yAxisTitleRotate(e, t.opposite);\n });\n }\n }]), t;\n}(),\n Q = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"drawXCrosshairs\",\n value: function value() {\n var t = this.w,\n e = new b(this.ctx),\n i = new p(this.ctx),\n a = t.config.xaxis.crosshairs.fill.gradient,\n s = t.config.xaxis.crosshairs.dropShadow,\n r = t.config.xaxis.crosshairs.fill.type,\n n = a.colorFrom,\n o = a.colorTo,\n l = a.opacityFrom,\n h = a.opacityTo,\n c = a.stops,\n d = s.enabled,\n g = s.left,\n u = s.top,\n x = s.blur,\n m = s.color,\n v = s.opacity,\n y = t.config.xaxis.crosshairs.fill.color;\n\n if (t.config.xaxis.crosshairs.show) {\n \"gradient\" === r && (y = e.drawGradient(\"vertical\", n, o, l, h, null, c, null));\n var w = e.drawRect();\n 1 === t.config.xaxis.crosshairs.width && (w = e.drawLine()), w.attr({\n class: \"apexcharts-xcrosshairs\",\n x: 0,\n y: 0,\n y2: t.globals.gridHeight,\n width: f.isNumber(t.config.xaxis.crosshairs.width) ? t.config.xaxis.crosshairs.width : 0,\n height: t.globals.gridHeight,\n fill: y,\n filter: \"none\",\n \"fill-opacity\": t.config.xaxis.crosshairs.opacity,\n stroke: t.config.xaxis.crosshairs.stroke.color,\n \"stroke-width\": t.config.xaxis.crosshairs.stroke.width,\n \"stroke-dasharray\": t.config.xaxis.crosshairs.stroke.dashArray\n }), d && (w = i.dropShadow(w, {\n left: g,\n top: u,\n blur: x,\n color: m,\n opacity: v\n })), t.globals.dom.elGraphical.add(w);\n }\n }\n }, {\n key: \"drawYCrosshairs\",\n value: function value() {\n var t = this.w,\n e = new b(this.ctx),\n i = t.config.yaxis[0].crosshairs,\n a = t.globals.barPadForNumericAxis;\n\n if (t.config.yaxis[0].crosshairs.show) {\n var s = e.drawLine(-a, 0, t.globals.gridWidth + a, 0, i.stroke.color, i.stroke.dashArray, i.stroke.width);\n s.attr({\n class: \"apexcharts-ycrosshairs\"\n }), t.globals.dom.elGraphical.add(s);\n }\n\n var r = e.drawLine(-a, 0, t.globals.gridWidth + a, 0, i.stroke.color, 0, 0);\n r.attr({\n class: \"apexcharts-ycrosshairs-hidden\"\n }), t.globals.dom.elGraphical.add(r);\n }\n }]), t;\n}(),\n K = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"checkResponsiveConfig\",\n value: function value(t) {\n var e = this,\n i = this.w,\n a = i.config;\n\n if (0 !== a.responsive.length) {\n var s = a.responsive.slice();\n s.sort(function (t, e) {\n return t.breakpoint > e.breakpoint ? 1 : e.breakpoint > t.breakpoint ? -1 : 0;\n }).reverse();\n\n var r = new D({}),\n n = function n() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n a = s[0].breakpoint,\n n = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n if (n > a) {\n var o = y.extendArrayProps(r, i.globals.initialConfig, i);\n t = f.extend(o, t), t = f.extend(i.config, t), e.overrideResponsiveOptions(t);\n } else for (var l = 0; l < s.length; l++) {\n n < s[l].breakpoint && (t = y.extendArrayProps(r, s[l].options, i), t = f.extend(i.config, t), e.overrideResponsiveOptions(t));\n }\n };\n\n if (t) {\n var o = y.extendArrayProps(r, t, i);\n o = f.extend(i.config, o), n(o = f.extend(o, t));\n } else n({});\n }\n }\n }, {\n key: \"overrideResponsiveOptions\",\n value: function value(t) {\n var e = new D(t).init({\n responsiveOverride: !0\n });\n this.w.config = e;\n }\n }]), t;\n}(),\n tt = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.colors = [], this.w = i.w;\n var a = this.w;\n this.isColorFn = !1, this.isHeatmapDistributed = \"treemap\" === a.config.chart.type && a.config.plotOptions.treemap.distributed || \"heatmap\" === a.config.chart.type && a.config.plotOptions.heatmap.distributed, this.isBarDistributed = a.config.plotOptions.bar.distributed && (\"bar\" === a.config.chart.type || \"rangeBar\" === a.config.chart.type);\n }\n\n return a(t, [{\n key: \"init\",\n value: function value() {\n this.setDefaultColors();\n }\n }, {\n key: \"setDefaultColors\",\n value: function value() {\n var t = this,\n e = this.w,\n i = new f();\n\n if (e.globals.dom.elWrap.classList.add(\"apexcharts-theme-\".concat(e.config.theme.mode)), void 0 === e.config.colors ? e.globals.colors = this.predefined() : (e.globals.colors = e.config.colors, Array.isArray(e.config.colors) && e.config.colors.length > 0 && \"function\" == typeof e.config.colors[0] && (e.globals.colors = e.config.series.map(function (i, a) {\n var s = e.config.colors[a];\n return s || (s = e.config.colors[0]), \"function\" == typeof s ? (t.isColorFn = !0, s({\n value: e.globals.axisCharts ? e.globals.series[a][0] ? e.globals.series[a][0] : 0 : e.globals.series[a],\n seriesIndex: a,\n dataPointIndex: a,\n w: e\n })) : s;\n }))), e.globals.seriesColors.map(function (t, i) {\n t && (e.globals.colors[i] = t);\n }), e.config.theme.monochrome.enabled) {\n var a = [],\n s = e.globals.series.length;\n (this.isBarDistributed || this.isHeatmapDistributed) && (s = e.globals.series[0].length * e.globals.series.length);\n\n for (var r = e.config.theme.monochrome.color, n = 1 / (s / e.config.theme.monochrome.shadeIntensity), o = e.config.theme.monochrome.shadeTo, l = 0, h = 0; h < s; h++) {\n var c = void 0;\n \"dark\" === o ? (c = i.shadeColor(-1 * l, r), l += n) : (c = i.shadeColor(l, r), l += n), a.push(c);\n }\n\n e.globals.colors = a.slice();\n }\n\n var d = e.globals.colors.slice();\n this.pushExtraColors(e.globals.colors);\n [\"fill\", \"stroke\"].forEach(function (i) {\n void 0 === e.config[i].colors ? e.globals[i].colors = t.isColorFn ? e.config.colors : d : e.globals[i].colors = e.config[i].colors.slice(), t.pushExtraColors(e.globals[i].colors);\n }), void 0 === e.config.dataLabels.style.colors ? e.globals.dataLabels.style.colors = d : e.globals.dataLabels.style.colors = e.config.dataLabels.style.colors.slice(), this.pushExtraColors(e.globals.dataLabels.style.colors, 50), void 0 === e.config.plotOptions.radar.polygons.fill.colors ? e.globals.radarPolygons.fill.colors = [\"dark\" === e.config.theme.mode ? \"#424242\" : \"#fff\"] : e.globals.radarPolygons.fill.colors = e.config.plotOptions.radar.polygons.fill.colors.slice(), this.pushExtraColors(e.globals.radarPolygons.fill.colors, 20), void 0 === e.config.markers.colors ? e.globals.markers.colors = d : e.globals.markers.colors = e.config.markers.colors.slice(), this.pushExtraColors(e.globals.markers.colors);\n }\n }, {\n key: \"pushExtraColors\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null,\n a = this.w,\n s = e || a.globals.series.length;\n if (null === i && (i = this.isBarDistributed || this.isHeatmapDistributed || \"heatmap\" === a.config.chart.type && a.config.plotOptions.heatmap.colorScale.inverse), i && a.globals.series.length && (s = a.globals.series[a.globals.maxValsInArrayIndex].length * a.globals.series.length), t.length < s) for (var r = s - t.length, n = 0; n < r; n++) {\n t.push(t[n]);\n }\n }\n }, {\n key: \"updateThemeOptions\",\n value: function value(t) {\n t.chart = t.chart || {}, t.tooltip = t.tooltip || {};\n var e = t.theme.mode || \"light\",\n i = t.theme.palette ? t.theme.palette : \"dark\" === e ? \"palette4\" : \"palette1\",\n a = t.chart.foreColor ? t.chart.foreColor : \"dark\" === e ? \"#f6f7f8\" : \"#373d3f\";\n return t.tooltip.theme = e, t.chart.foreColor = a, t.theme.palette = i, t;\n }\n }, {\n key: \"predefined\",\n value: function value() {\n switch (this.w.config.theme.palette) {\n case \"palette1\":\n this.colors = [\"#008FFB\", \"#00E396\", \"#FEB019\", \"#FF4560\", \"#775DD0\"];\n break;\n\n case \"palette2\":\n this.colors = [\"#3f51b5\", \"#03a9f4\", \"#4caf50\", \"#f9ce1d\", \"#FF9800\"];\n break;\n\n case \"palette3\":\n this.colors = [\"#33b2df\", \"#546E7A\", \"#d4526e\", \"#13d8aa\", \"#A5978B\"];\n break;\n\n case \"palette4\":\n this.colors = [\"#4ecdc4\", \"#c7f464\", \"#81D4FA\", \"#fd6a6a\", \"#546E7A\"];\n break;\n\n case \"palette5\":\n this.colors = [\"#2b908f\", \"#f9a3a4\", \"#90ee7e\", \"#fa4443\", \"#69d2e7\"];\n break;\n\n case \"palette6\":\n this.colors = [\"#449DD1\", \"#F86624\", \"#EA3546\", \"#662E9B\", \"#C5D86D\"];\n break;\n\n case \"palette7\":\n this.colors = [\"#D7263D\", \"#1B998B\", \"#2E294E\", \"#F46036\", \"#E2C044\"];\n break;\n\n case \"palette8\":\n this.colors = [\"#662E9B\", \"#F86624\", \"#F9C80E\", \"#EA3546\", \"#43BCCD\"];\n break;\n\n case \"palette9\":\n this.colors = [\"#5C4742\", \"#A5978B\", \"#8D5B4C\", \"#5A2A27\", \"#C4BBAF\"];\n break;\n\n case \"palette10\":\n this.colors = [\"#A300D6\", \"#7D02EB\", \"#5653FE\", \"#2983FF\", \"#00B1F2\"];\n break;\n\n default:\n this.colors = [\"#008FFB\", \"#00E396\", \"#FEB019\", \"#FF4560\", \"#775DD0\"];\n }\n\n return this.colors;\n }\n }]), t;\n}(),\n et = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"draw\",\n value: function value() {\n this.drawTitleSubtitle(\"title\"), this.drawTitleSubtitle(\"subtitle\");\n }\n }, {\n key: \"drawTitleSubtitle\",\n value: function value(t) {\n var e = this.w,\n i = \"title\" === t ? e.config.title : e.config.subtitle,\n a = e.globals.svgWidth / 2,\n s = i.offsetY,\n r = \"middle\";\n\n if (\"left\" === i.align ? (a = 10, r = \"start\") : \"right\" === i.align && (a = e.globals.svgWidth - 10, r = \"end\"), a += i.offsetX, s = s + parseInt(i.style.fontSize, 10) + i.margin / 2, void 0 !== i.text) {\n var n = new b(this.ctx).drawText({\n x: a,\n y: s,\n text: i.text,\n textAnchor: r,\n fontSize: i.style.fontSize,\n fontFamily: i.style.fontFamily,\n fontWeight: i.style.fontWeight,\n foreColor: i.style.color,\n opacity: 1\n });\n n.node.setAttribute(\"class\", \"apexcharts-\".concat(t, \"-text\")), e.globals.dom.Paper.add(n);\n }\n }\n }]), t;\n}(),\n it = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.dCtx = i;\n }\n\n return a(t, [{\n key: \"getTitleSubtitleCoords\",\n value: function value(t) {\n var e = this.w,\n i = 0,\n a = 0,\n s = \"title\" === t ? e.config.title.floating : e.config.subtitle.floating,\n r = e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(t, \"-text\"));\n\n if (null !== r && !s) {\n var n = r.getBoundingClientRect();\n i = n.width, a = e.globals.axisCharts ? n.height + 5 : n.height;\n }\n\n return {\n width: i,\n height: a\n };\n }\n }, {\n key: \"getLegendsRect\",\n value: function value() {\n var t = this.w,\n e = t.globals.dom.baseEl.querySelector(\".apexcharts-legend\");\n t.config.legend.height || \"top\" !== t.config.legend.position && \"bottom\" !== t.config.legend.position || (e.style.maxHeight = t.globals.svgHeight / 2 + \"px\");\n var i = Object.assign({}, f.getBoundingClientRect(e));\n return null !== e && !t.config.legend.floating && t.config.legend.show ? this.dCtx.lgRect = {\n x: i.x,\n y: i.y,\n height: i.height,\n width: 0 === i.height ? 0 : i.width\n } : this.dCtx.lgRect = {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n }, \"left\" !== t.config.legend.position && \"right\" !== t.config.legend.position || 1.5 * this.dCtx.lgRect.width > t.globals.svgWidth && (this.dCtx.lgRect.width = t.globals.svgWidth / 1.5), this.dCtx.lgRect;\n }\n }, {\n key: \"getLargestStringFromMultiArr\",\n value: function value(t, e) {\n var i = t;\n\n if (this.w.globals.isMultiLineX) {\n var a = e.map(function (t, e) {\n return Array.isArray(t) ? t.length : 1;\n }),\n s = Math.max.apply(Math, g(a));\n i = e[a.indexOf(s)];\n }\n\n return i;\n }\n }]), t;\n}(),\n at = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.dCtx = i;\n }\n\n return a(t, [{\n key: \"getxAxisLabelsCoords\",\n value: function value() {\n var t,\n e = this.w,\n i = e.globals.labels.slice();\n\n if (e.config.xaxis.convertedCatToNumeric && 0 === i.length && (i = e.globals.categoryLabels), e.globals.timescaleLabels.length > 0) {\n var a = this.getxAxisTimeScaleLabelsCoords();\n t = {\n width: a.width,\n height: a.height\n }, e.globals.rotateXLabels = !1;\n } else {\n this.dCtx.lgWidthForSideLegends = \"left\" !== e.config.legend.position && \"right\" !== e.config.legend.position || e.config.legend.floating ? 0 : this.dCtx.lgRect.width;\n var s = e.globals.xLabelFormatter,\n r = f.getLargestStringFromArr(i),\n n = this.dCtx.dimHelpers.getLargestStringFromMultiArr(r, i);\n e.globals.isBarHorizontal && (n = r = e.globals.yAxisScale[0].result.reduce(function (t, e) {\n return t.length > e.length ? t : e;\n }, 0));\n var o = new W(this.dCtx.ctx),\n l = r;\n r = o.xLabelFormat(s, r, l, {\n i: void 0,\n dateFormatter: new Y(this.dCtx.ctx).formatDate,\n w: e\n }), n = o.xLabelFormat(s, n, l, {\n i: void 0,\n dateFormatter: new Y(this.dCtx.ctx).formatDate,\n w: e\n }), (e.config.xaxis.convertedCatToNumeric && void 0 === r || \"\" === String(r).trim()) && (n = r = \"1\");\n var h = new b(this.dCtx.ctx),\n c = h.getTextRects(r, e.config.xaxis.labels.style.fontSize),\n d = c;\n\n if (r !== n && (d = h.getTextRects(n, e.config.xaxis.labels.style.fontSize)), (t = {\n width: c.width >= d.width ? c.width : d.width,\n height: c.height >= d.height ? c.height : d.height\n }).width * i.length > e.globals.svgWidth - this.dCtx.lgWidthForSideLegends - this.dCtx.yAxisWidth - this.dCtx.gridPad.left - this.dCtx.gridPad.right && 0 !== e.config.xaxis.labels.rotate || e.config.xaxis.labels.rotateAlways) {\n if (!e.globals.isBarHorizontal) {\n e.globals.rotateXLabels = !0;\n\n var g = function g(t) {\n return h.getTextRects(t, e.config.xaxis.labels.style.fontSize, e.config.xaxis.labels.style.fontFamily, \"rotate(\".concat(e.config.xaxis.labels.rotate, \" 0 0)\"), !1);\n };\n\n c = g(r), r !== n && (d = g(n)), t.height = (c.height > d.height ? c.height : d.height) / 1.5, t.width = c.width > d.width ? c.width : d.width;\n }\n } else e.globals.rotateXLabels = !1;\n }\n\n return e.config.xaxis.labels.show || (t = {\n width: 0,\n height: 0\n }), {\n width: t.width,\n height: t.height\n };\n }\n }, {\n key: \"getxAxisTitleCoords\",\n value: function value() {\n var t = this.w,\n e = 0,\n i = 0;\n\n if (void 0 !== t.config.xaxis.title.text) {\n var a = new b(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text, t.config.xaxis.title.style.fontSize);\n e = a.width, i = a.height;\n }\n\n return {\n width: e,\n height: i\n };\n }\n }, {\n key: \"getxAxisTimeScaleLabelsCoords\",\n value: function value() {\n var t,\n e = this.w;\n this.dCtx.timescaleLabels = e.globals.timescaleLabels.slice();\n var i = this.dCtx.timescaleLabels.map(function (t) {\n return t.value;\n }),\n a = i.reduce(function (t, e) {\n return void 0 === t ? (console.error(\"You have possibly supplied invalid Date format. Please supply a valid JavaScript Date\"), 0) : t.length > e.length ? t : e;\n }, 0);\n return 1.05 * (t = new b(this.dCtx.ctx).getTextRects(a, e.config.xaxis.labels.style.fontSize)).width * i.length > e.globals.gridWidth && 0 !== e.config.xaxis.labels.rotate && (e.globals.overlappingXLabels = !0), t;\n }\n }, {\n key: \"additionalPaddingXLabels\",\n value: function value(t) {\n var e = this,\n i = this.w,\n a = i.globals,\n s = i.config,\n r = s.xaxis.type,\n n = t.width;\n a.skipLastTimelinelabel = !1, a.skipFirstTimelinelabel = !1;\n\n var o = i.config.yaxis[0].opposite && i.globals.isBarHorizontal,\n l = function l(t, s) {\n (function (t) {\n return -1 !== a.collapsedSeriesIndices.indexOf(t);\n })(s) || function (t) {\n if (e.dCtx.timescaleLabels && e.dCtx.timescaleLabels.length) {\n var s = e.dCtx.timescaleLabels[0],\n o = e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length - 1].position + n / 1.75 - e.dCtx.yAxisWidthRight,\n l = s.position - n / 1.75 + e.dCtx.yAxisWidthLeft;\n o > a.svgWidth - a.translateX && (a.skipLastTimelinelabel = !0), l < 0 && (a.skipFirstTimelinelabel = !0);\n } else \"datetime\" === r ? e.dCtx.gridPad.right < n && !a.rotateXLabels && (a.skipLastTimelinelabel = !0) : \"datetime\" !== r && e.dCtx.gridPad.right < n / 2 - e.dCtx.yAxisWidthRight && !a.rotateXLabels && (\"between\" !== i.config.xaxis.tickPlacement || i.globals.isBarHorizontal) && (e.dCtx.xPadRight = n / 2 + 1);\n }();\n };\n\n s.yaxis.forEach(function (t, i) {\n o ? (e.dCtx.gridPad.left < n && (e.dCtx.xPadLeft = n / 2 + 1), e.dCtx.xPadRight = n / 2 + 1) : l(0, i);\n });\n }\n }]), t;\n}(),\n st = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.dCtx = i;\n }\n\n return a(t, [{\n key: \"getyAxisLabelsCoords\",\n value: function value() {\n var t = this,\n e = this.w,\n i = [],\n a = 10,\n s = new B(this.dCtx.ctx);\n return e.config.yaxis.map(function (r, n) {\n var o = e.globals.yAxisScale[n];\n\n if (!s.isYAxisHidden(n) && r.labels.show && o.result.length) {\n var l = e.globals.yLabelFormatters[n],\n h = String(o.niceMin).length > String(o.niceMax).length ? o.niceMin : o.niceMax,\n c = l(h, {\n seriesIndex: n,\n dataPointIndex: -1,\n w: e\n }),\n d = c;\n\n if (void 0 !== c && 0 !== c.length || (c = h), e.globals.isBarHorizontal) {\n a = 0;\n var g = e.globals.labels.slice();\n c = l(c = f.getLargestStringFromArr(g), {\n seriesIndex: n,\n dataPointIndex: -1,\n w: e\n }), d = t.dCtx.dimHelpers.getLargestStringFromMultiArr(c, g);\n }\n\n var u = new b(t.dCtx.ctx),\n p = u.getTextRects(c, r.labels.style.fontSize),\n x = p;\n c !== d && (x = u.getTextRects(d, r.labels.style.fontSize)), i.push({\n width: (x.width > p.width ? x.width : p.width) + a,\n height: x.height > p.height ? x.height : p.height\n });\n } else i.push({\n width: 0,\n height: 0\n });\n }), i;\n }\n }, {\n key: \"getyAxisTitleCoords\",\n value: function value() {\n var t = this,\n e = this.w,\n i = [];\n return e.config.yaxis.map(function (e, a) {\n if (e.show && void 0 !== e.title.text) {\n var s = new b(t.dCtx.ctx).getTextRects(e.title.text, e.title.style.fontSize, e.title.style.fontFamily, \"rotate(-90 0 0)\", !1);\n i.push({\n width: s.width,\n height: s.height\n });\n } else i.push({\n width: 0,\n height: 0\n });\n }), i;\n }\n }, {\n key: \"getTotalYAxisWidth\",\n value: function value() {\n var t = this.w,\n e = 0,\n i = 0,\n a = 0,\n s = t.globals.yAxisScale.length > 1 ? 10 : 0,\n r = new B(this.dCtx.ctx),\n n = function n(_n, o) {\n var l = t.config.yaxis[o].floating,\n h = 0;\n _n.width > 0 && !l ? (h = _n.width + s, function (e) {\n return t.globals.ignoreYAxisIndexes.indexOf(e) > -1;\n }(o) && (h = h - _n.width - s)) : h = l || r.isYAxisHidden(o) ? 0 : 5, t.config.yaxis[o].opposite ? a += h : i += h, e += h;\n };\n\n return t.globals.yLabelsCoords.map(function (t, e) {\n n(t, e);\n }), t.globals.yTitleCoords.map(function (t, e) {\n n(t, e);\n }), t.globals.isBarHorizontal && (e = t.globals.yLabelsCoords[0].width + t.globals.yTitleCoords[0].width + 15), this.dCtx.yAxisWidthLeft = i, this.dCtx.yAxisWidthRight = a, e;\n }\n }]), t;\n}(),\n rt = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.dCtx = i;\n }\n\n return a(t, [{\n key: \"gridPadForColumnsInNumericAxis\",\n value: function value(t) {\n var e = this.w;\n if (e.globals.noData || e.globals.allSeriesCollapsed) return 0;\n var i = e.config.chart.type,\n a = 0,\n s = \"bar\" === i || \"rangeBar\" === i ? e.config.series.length : 1;\n\n if (e.globals.comboBarCount > 0 && (s = e.globals.comboBarCount), e.globals.collapsedSeries.forEach(function (t) {\n \"bar\" !== t.type && \"rangeBar\" !== t.type || (s -= 1);\n }), e.config.chart.stacked && (s = 1), (\"bar\" === i || \"rangeBar\" === i || e.globals.comboBarCount > 0) && e.globals.isXNumeric && !e.globals.isBarHorizontal && s > 0) {\n var r,\n n,\n o = Math.abs(e.globals.initialMaxX - e.globals.initialMinX);\n o <= 3 && (o = e.globals.dataPoints), r = o / t, e.globals.minXDiff && e.globals.minXDiff / r > 0 && (n = e.globals.minXDiff / r), n > t / 2 && (n /= 2), (a = n / s * parseInt(e.config.plotOptions.bar.columnWidth, 10) / 100) < 1 && (a = 1), a = a / (s > 1 ? 1 : 1.5) + 5, e.globals.barPadForNumericAxis = a;\n }\n\n return a;\n }\n }, {\n key: \"gridPadFortitleSubtitle\",\n value: function value() {\n var t = this,\n e = this.w,\n i = e.globals,\n a = this.dCtx.isSparkline || !e.globals.axisCharts ? 0 : 10;\n [\"title\", \"subtitle\"].forEach(function (i) {\n void 0 !== e.config[i].text ? a += e.config[i].margin : a += t.dCtx.isSparkline || !e.globals.axisCharts ? 0 : 5;\n }), !e.config.legend.show || \"bottom\" !== e.config.legend.position || e.config.legend.floating || e.globals.axisCharts || (a += 10);\n var s = this.dCtx.dimHelpers.getTitleSubtitleCoords(\"title\"),\n r = this.dCtx.dimHelpers.getTitleSubtitleCoords(\"subtitle\");\n i.gridHeight = i.gridHeight - s.height - r.height - a, i.translateY = i.translateY + s.height + r.height + a;\n }\n }, {\n key: \"setGridXPosForDualYAxis\",\n value: function value(t, e) {\n var i = this.w,\n a = new B(this.dCtx.ctx);\n i.config.yaxis.map(function (s, r) {\n -1 !== i.globals.ignoreYAxisIndexes.indexOf(r) || s.floating || a.isYAxisHidden(r) || (s.opposite && (i.globals.translateX = i.globals.translateX - (e[r].width + t[r].width) - parseInt(i.config.yaxis[r].labels.style.fontSize, 10) / 1.2 - 12), i.globals.translateX < 2 && (i.globals.translateX = 2));\n });\n }\n }]), t;\n}(),\n nt = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.lgRect = {}, this.yAxisWidth = 0, this.yAxisWidthLeft = 0, this.yAxisWidthRight = 0, this.xAxisHeight = 0, this.isSparkline = this.w.config.chart.sparkline.enabled, this.dimHelpers = new it(this), this.dimYAxis = new st(this), this.dimXAxis = new at(this), this.dimGrid = new rt(this), this.lgWidthForSideLegends = 0, this.gridPad = this.w.config.grid.padding, this.xPadRight = 0, this.xPadLeft = 0;\n }\n\n return a(t, [{\n key: \"plotCoords\",\n value: function value() {\n var t = this.w.globals;\n this.lgRect = this.dimHelpers.getLegendsRect(), t.axisCharts ? this.setDimensionsForAxisCharts() : this.setDimensionsForNonAxisCharts(), this.dimGrid.gridPadFortitleSubtitle(), t.gridHeight = t.gridHeight - this.gridPad.top - this.gridPad.bottom, t.gridWidth = t.gridWidth - this.gridPad.left - this.gridPad.right - this.xPadRight - this.xPadLeft;\n var e = this.dimGrid.gridPadForColumnsInNumericAxis(t.gridWidth);\n t.gridWidth = t.gridWidth - 2 * e, t.translateX = t.translateX + this.gridPad.left + this.xPadLeft + (e > 0 ? e + 4 : 0), t.translateY = t.translateY + this.gridPad.top;\n }\n }, {\n key: \"setDimensionsForAxisCharts\",\n value: function value() {\n var t = this,\n e = this.w,\n i = e.globals,\n a = this.dimYAxis.getyAxisLabelsCoords(),\n s = this.dimYAxis.getyAxisTitleCoords();\n e.globals.yLabelsCoords = [], e.globals.yTitleCoords = [], e.config.yaxis.map(function (t, i) {\n e.globals.yLabelsCoords.push({\n width: a[i].width,\n index: i\n }), e.globals.yTitleCoords.push({\n width: s[i].width,\n index: i\n });\n }), this.yAxisWidth = this.dimYAxis.getTotalYAxisWidth();\n var r = this.dimXAxis.getxAxisLabelsCoords(),\n n = this.dimXAxis.getxAxisTitleCoords();\n this.conditionalChecksForAxisCoords(r, n), i.translateXAxisY = e.globals.rotateXLabels ? this.xAxisHeight / 8 : -4, i.translateXAxisX = e.globals.rotateXLabels && e.globals.isXNumeric && e.config.xaxis.labels.rotate <= -45 ? -this.xAxisWidth / 4 : 0, e.globals.isBarHorizontal && (i.rotateXLabels = !1, i.translateXAxisY = parseInt(e.config.xaxis.labels.style.fontSize, 10) / 1.5 * -1), i.translateXAxisY = i.translateXAxisY + e.config.xaxis.labels.offsetY, i.translateXAxisX = i.translateXAxisX + e.config.xaxis.labels.offsetX;\n var o = this.yAxisWidth,\n l = this.xAxisHeight;\n i.xAxisLabelsHeight = this.xAxisHeight, i.xAxisLabelsWidth = this.xAxisWidth, i.xAxisHeight = this.xAxisHeight;\n var h = 10;\n (\"radar\" === e.config.chart.type || this.isSparkline) && (o = 0, l = i.goldenPadding), this.isSparkline && (this.lgRect = {\n height: 0,\n width: 0\n }), (this.isSparkline || \"treemap\" === e.config.chart.type) && (o = 0, l = 0, h = 0), this.isSparkline || this.dimXAxis.additionalPaddingXLabels(r);\n\n var c = function c() {\n i.translateX = o, i.gridHeight = i.svgHeight - t.lgRect.height - l - (t.isSparkline || \"treemap\" === e.config.chart.type ? 0 : e.globals.rotateXLabels ? 10 : 15), i.gridWidth = i.svgWidth - o;\n };\n\n switch (\"top\" === e.config.xaxis.position && (h = i.xAxisHeight - e.config.xaxis.axisTicks.height - 5), e.config.legend.position) {\n case \"bottom\":\n i.translateY = h, c();\n break;\n\n case \"top\":\n i.translateY = this.lgRect.height + h, c();\n break;\n\n case \"left\":\n i.translateY = h, i.translateX = this.lgRect.width + o, i.gridHeight = i.svgHeight - l - 12, i.gridWidth = i.svgWidth - this.lgRect.width - o;\n break;\n\n case \"right\":\n i.translateY = h, i.translateX = o, i.gridHeight = i.svgHeight - l - 12, i.gridWidth = i.svgWidth - this.lgRect.width - o - 5;\n break;\n\n default:\n throw new Error(\"Legend position not supported\");\n }\n\n this.dimGrid.setGridXPosForDualYAxis(s, a), new q(this.ctx).setYAxisXPosition(a, s);\n }\n }, {\n key: \"setDimensionsForNonAxisCharts\",\n value: function value() {\n var t = this.w,\n e = t.globals,\n i = t.config,\n a = 0;\n t.config.legend.show && !t.config.legend.floating && (a = 20);\n var s = \"pie\" === i.chart.type || \"polarArea\" === i.chart.type || \"donut\" === i.chart.type ? \"pie\" : \"radialBar\",\n r = i.plotOptions[s].offsetY,\n n = i.plotOptions[s].offsetX;\n if (!i.legend.show || i.legend.floating) return e.gridHeight = e.svgHeight - i.grid.padding.left + i.grid.padding.right, e.gridWidth = e.gridHeight, e.translateY = r, void (e.translateX = n + (e.svgWidth - e.gridWidth) / 2);\n\n switch (i.legend.position) {\n case \"bottom\":\n e.gridHeight = e.svgHeight - this.lgRect.height - e.goldenPadding, e.gridWidth = e.svgWidth, e.translateY = r - 10, e.translateX = n + (e.svgWidth - e.gridWidth) / 2;\n break;\n\n case \"top\":\n e.gridHeight = e.svgHeight - this.lgRect.height - e.goldenPadding, e.gridWidth = e.svgWidth, e.translateY = this.lgRect.height + r + 10, e.translateX = n + (e.svgWidth - e.gridWidth) / 2;\n break;\n\n case \"left\":\n e.gridWidth = e.svgWidth - this.lgRect.width - a, e.gridHeight = \"auto\" !== i.chart.height ? e.svgHeight : e.gridWidth, e.translateY = r, e.translateX = n + this.lgRect.width + a;\n break;\n\n case \"right\":\n e.gridWidth = e.svgWidth - this.lgRect.width - a - 5, e.gridHeight = \"auto\" !== i.chart.height ? e.svgHeight : e.gridWidth, e.translateY = r, e.translateX = n + 10;\n break;\n\n default:\n throw new Error(\"Legend position not supported\");\n }\n }\n }, {\n key: \"conditionalChecksForAxisCoords\",\n value: function value(t, e) {\n var i = this.w;\n this.xAxisHeight = (t.height + e.height) * (i.globals.isMultiLineX ? 1.2 : i.globals.LINE_HEIGHT_RATIO) + (i.globals.rotateXLabels ? 22 : 10), this.xAxisWidth = t.width, this.xAxisHeight - e.height > i.config.xaxis.labels.maxHeight && (this.xAxisHeight = i.config.xaxis.labels.maxHeight), i.config.xaxis.labels.minHeight && this.xAxisHeight < i.config.xaxis.labels.minHeight && (this.xAxisHeight = i.config.xaxis.labels.minHeight), i.config.xaxis.floating && (this.xAxisHeight = 0);\n var a = 0,\n s = 0;\n i.config.yaxis.forEach(function (t) {\n a += t.labels.minWidth, s += t.labels.maxWidth;\n }), this.yAxisWidth < a && (this.yAxisWidth = a), this.yAxisWidth > s && (this.yAxisWidth = s);\n }\n }]), t;\n}(),\n ot = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.lgCtx = i;\n }\n\n return a(t, [{\n key: \"getLegendStyles\",\n value: function value() {\n var t = document.createElement(\"style\");\n t.setAttribute(\"type\", \"text/css\");\n var e = document.createTextNode(\"\\t\\n \\t\\n .apexcharts-legend {\\t\\n display: flex;\\t\\n overflow: auto;\\t\\n padding: 0 10px;\\t\\n }\\t\\n .apexcharts-legend.position-bottom, .apexcharts-legend.position-top {\\t\\n flex-wrap: wrap\\t\\n }\\t\\n .apexcharts-legend.position-right, .apexcharts-legend.position-left {\\t\\n flex-direction: column;\\t\\n bottom: 0;\\t\\n }\\t\\n .apexcharts-legend.position-bottom.apexcharts-align-left, .apexcharts-legend.position-top.apexcharts-align-left, .apexcharts-legend.position-right, .apexcharts-legend.position-left {\\t\\n justify-content: flex-start;\\t\\n }\\t\\n .apexcharts-legend.position-bottom.apexcharts-align-center, .apexcharts-legend.position-top.apexcharts-align-center {\\t\\n justify-content: center; \\t\\n }\\t\\n .apexcharts-legend.position-bottom.apexcharts-align-right, .apexcharts-legend.position-top.apexcharts-align-right {\\t\\n justify-content: flex-end;\\t\\n }\\t\\n .apexcharts-legend-series {\\t\\n cursor: pointer;\\t\\n line-height: normal;\\t\\n }\\t\\n .apexcharts-legend.position-bottom .apexcharts-legend-series, .apexcharts-legend.position-top .apexcharts-legend-series{\\t\\n display: flex;\\t\\n align-items: center;\\t\\n }\\t\\n .apexcharts-legend-text {\\t\\n position: relative;\\t\\n font-size: 14px;\\t\\n }\\t\\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\\t\\n pointer-events: none;\\t\\n }\\t\\n .apexcharts-legend-marker {\\t\\n position: relative;\\t\\n display: inline-block;\\t\\n cursor: pointer;\\t\\n margin-right: 3px;\\t\\n border-style: solid;\\n }\\t\\n \\t\\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\\t\\n display: inline-block;\\t\\n }\\t\\n .apexcharts-legend-series.apexcharts-no-click {\\t\\n cursor: auto;\\t\\n }\\t\\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\\t\\n display: none !important;\\t\\n }\\t\\n .apexcharts-inactive-legend {\\t\\n opacity: 0.45;\\t\\n }\");\n return t.appendChild(e), t;\n }\n }, {\n key: \"getLegendBBox\",\n value: function value() {\n var t = this.w.globals.dom.baseEl.querySelector(\".apexcharts-legend\").getBoundingClientRect(),\n e = t.width;\n return {\n clwh: t.height,\n clww: e\n };\n }\n }, {\n key: \"appendToForeignObject\",\n value: function value() {\n var t = this.w.globals;\n t.dom.elLegendForeign = document.createElementNS(t.SVGNS, \"foreignObject\");\n var e = t.dom.elLegendForeign;\n e.setAttribute(\"x\", 0), e.setAttribute(\"y\", 0), e.setAttribute(\"width\", t.svgWidth), e.setAttribute(\"height\", t.svgHeight), t.dom.elLegendWrap.setAttribute(\"xmlns\", \"http://www.w3.org/1999/xhtml\"), e.appendChild(t.dom.elLegendWrap), e.appendChild(this.getLegendStyles()), t.dom.Paper.node.insertBefore(e, t.dom.elGraphical.node);\n }\n }, {\n key: \"toggleDataSeries\",\n value: function value(t, e) {\n var i = this,\n a = this.w;\n\n if (a.globals.axisCharts || \"radialBar\" === a.config.chart.type) {\n a.globals.resized = !0;\n var s = null,\n r = null;\n if (a.globals.risingSeries = [], a.globals.axisCharts ? (s = a.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(t, \"']\")), r = parseInt(s.getAttribute(\"data:realIndex\"), 10)) : (s = a.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(t + 1, \"']\")), r = parseInt(s.getAttribute(\"rel\"), 10) - 1), e) [{\n cs: a.globals.collapsedSeries,\n csi: a.globals.collapsedSeriesIndices\n }, {\n cs: a.globals.ancillaryCollapsedSeries,\n csi: a.globals.ancillaryCollapsedSeriesIndices\n }].forEach(function (t) {\n i.riseCollapsedSeries(t.cs, t.csi, r);\n });else this.hideSeries({\n seriesEl: s,\n realIndex: r\n });\n } else {\n var n = a.globals.dom.Paper.select(\" .apexcharts-series[rel='\".concat(t + 1, \"'] path\")),\n o = a.config.chart.type;\n\n if (\"pie\" === o || \"polarArea\" === o || \"donut\" === o) {\n var l = a.config.plotOptions.pie.donut.labels;\n new b(this.lgCtx.ctx).pathMouseDown(n.members[0], null), this.lgCtx.ctx.pie.printDataLabelsInner(n.members[0].node, l);\n }\n\n n.fire(\"click\");\n }\n }\n }, {\n key: \"hideSeries\",\n value: function value(t) {\n var e = t.seriesEl,\n i = t.realIndex,\n a = this.w,\n s = f.clone(a.config.series);\n\n if (a.globals.axisCharts) {\n var r = !1;\n\n if (a.config.yaxis[i] && a.config.yaxis[i].show && a.config.yaxis[i].showAlways && (r = !0, a.globals.ancillaryCollapsedSeriesIndices.indexOf(i) < 0 && (a.globals.ancillaryCollapsedSeries.push({\n index: i,\n data: s[i].data.slice(),\n type: e.parentNode.className.baseVal.split(\"-\")[1]\n }), a.globals.ancillaryCollapsedSeriesIndices.push(i))), !r) {\n a.globals.collapsedSeries.push({\n index: i,\n data: s[i].data.slice(),\n type: e.parentNode.className.baseVal.split(\"-\")[1]\n }), a.globals.collapsedSeriesIndices.push(i);\n var n = a.globals.risingSeries.indexOf(i);\n a.globals.risingSeries.splice(n, 1);\n }\n } else a.globals.collapsedSeries.push({\n index: i,\n data: s[i]\n }), a.globals.collapsedSeriesIndices.push(i);\n\n for (var o = e.childNodes, l = 0; l < o.length; l++) {\n o[l].classList.contains(\"apexcharts-series-markers-wrap\") && (o[l].classList.contains(\"apexcharts-hide\") ? o[l].classList.remove(\"apexcharts-hide\") : o[l].classList.add(\"apexcharts-hide\"));\n }\n\n a.globals.allSeriesCollapsed = a.globals.collapsedSeries.length === a.config.series.length, s = this._getSeriesBasedOnCollapsedState(s), this.lgCtx.ctx.updateHelpers._updateSeries(s, a.config.chart.animations.dynamicAnimation.enabled);\n }\n }, {\n key: \"riseCollapsedSeries\",\n value: function value(t, e, i) {\n var a = this.w,\n s = f.clone(a.config.series);\n\n if (t.length > 0) {\n for (var r = 0; r < t.length; r++) {\n t[r].index === i && (a.globals.axisCharts ? (s[i].data = t[r].data.slice(), t.splice(r, 1), e.splice(r, 1), a.globals.risingSeries.push(i)) : (s[i] = t[r].data, t.splice(r, 1), e.splice(r, 1), a.globals.risingSeries.push(i)));\n }\n\n s = this._getSeriesBasedOnCollapsedState(s), this.lgCtx.ctx.updateHelpers._updateSeries(s, a.config.chart.animations.dynamicAnimation.enabled);\n }\n }\n }, {\n key: \"_getSeriesBasedOnCollapsedState\",\n value: function value(t) {\n var e = this.w;\n return e.globals.axisCharts ? t.forEach(function (i, a) {\n e.globals.collapsedSeriesIndices.indexOf(a) > -1 && (t[a].data = []);\n }) : t.forEach(function (i, a) {\n e.globals.collapsedSeriesIndices.indexOf(a) > -1 && (t[a] = 0);\n }), t;\n }\n }]), t;\n}(),\n lt = function () {\n function t(i, a) {\n e(this, t), this.ctx = i, this.w = i.w, this.onLegendClick = this.onLegendClick.bind(this), this.onLegendHovered = this.onLegendHovered.bind(this), this.isBarsDistributed = \"bar\" === this.w.config.chart.type && this.w.config.plotOptions.bar.distributed && 1 === this.w.config.series.length, this.legendHelpers = new ot(this);\n }\n\n return a(t, [{\n key: \"init\",\n value: function value() {\n var t = this.w,\n e = t.globals,\n i = t.config;\n\n if ((i.legend.showForSingleSeries && 1 === e.series.length || this.isBarsDistributed || e.series.length > 1 || !e.axisCharts) && i.legend.show) {\n for (; e.dom.elLegendWrap.firstChild;) {\n e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);\n }\n\n this.drawLegends(), f.isIE11() ? document.getElementsByTagName(\"head\")[0].appendChild(this.legendHelpers.getLegendStyles()) : this.legendHelpers.appendToForeignObject(), \"bottom\" === i.legend.position || \"top\" === i.legend.position ? this.legendAlignHorizontal() : \"right\" !== i.legend.position && \"left\" !== i.legend.position || this.legendAlignVertical();\n }\n }\n }, {\n key: \"drawLegends\",\n value: function value() {\n var t = this,\n e = this.w,\n i = e.config.legend.fontFamily,\n a = e.globals.seriesNames,\n s = e.globals.colors.slice();\n\n if (\"heatmap\" === e.config.chart.type) {\n var r = e.config.plotOptions.heatmap.colorScale.ranges;\n a = r.map(function (t) {\n return t.name ? t.name : t.from + \" - \" + t.to;\n }), s = r.map(function (t) {\n return t.color;\n });\n } else this.isBarsDistributed && (a = e.globals.labels.slice());\n\n for (var n = e.globals.legendFormatter, o = e.config.legend.inverseOrder, l = o ? a.length - 1 : 0; o ? l >= 0 : l <= a.length - 1; o ? l-- : l++) {\n var h = n(a[l], {\n seriesIndex: l,\n w: e\n }),\n c = !1,\n d = !1;\n if (e.globals.collapsedSeries.length > 0) for (var g = 0; g < e.globals.collapsedSeries.length; g++) {\n e.globals.collapsedSeries[g].index === l && (c = !0);\n }\n if (e.globals.ancillaryCollapsedSeriesIndices.length > 0) for (var u = 0; u < e.globals.ancillaryCollapsedSeriesIndices.length; u++) {\n e.globals.ancillaryCollapsedSeriesIndices[u] === l && (d = !0);\n }\n var p = document.createElement(\"span\");\n p.classList.add(\"apexcharts-legend-marker\");\n var x = e.config.legend.markers.offsetX,\n m = e.config.legend.markers.offsetY,\n v = e.config.legend.markers.height,\n w = e.config.legend.markers.width,\n k = e.config.legend.markers.strokeWidth,\n A = e.config.legend.markers.strokeColor,\n S = e.config.legend.markers.radius,\n C = p.style;\n C.background = s[l], C.color = s[l], C.setProperty(\"background\", s[l], \"important\"), e.config.legend.markers.fillColors && e.config.legend.markers.fillColors[l] && (C.background = e.config.legend.markers.fillColors[l]), void 0 !== e.globals.seriesColors[l] && (C.background = e.globals.seriesColors[l], C.color = e.globals.seriesColors[l]), C.height = Array.isArray(v) ? parseFloat(v[l]) + \"px\" : parseFloat(v) + \"px\", C.width = Array.isArray(w) ? parseFloat(w[l]) + \"px\" : parseFloat(w) + \"px\", C.left = Array.isArray(x) ? x[l] : x, C.top = Array.isArray(m) ? m[l] : m, C.borderWidth = Array.isArray(k) ? k[l] : k, C.borderColor = Array.isArray(A) ? A[l] : A, C.borderRadius = Array.isArray(S) ? parseFloat(S[l]) + \"px\" : parseFloat(S) + \"px\", e.config.legend.markers.customHTML && (Array.isArray(e.config.legend.markers.customHTML) ? e.config.legend.markers.customHTML[l] && (p.innerHTML = e.config.legend.markers.customHTML[l]()) : p.innerHTML = e.config.legend.markers.customHTML()), b.setAttrs(p, {\n rel: l + 1,\n \"data:collapsed\": c || d\n }), (c || d) && p.classList.add(\"apexcharts-inactive-legend\");\n var L = document.createElement(\"div\"),\n P = document.createElement(\"span\");\n P.classList.add(\"apexcharts-legend-text\"), P.innerHTML = Array.isArray(h) ? h.join(\" \") : h;\n var T = e.config.legend.labels.useSeriesColors ? e.globals.colors[l] : e.config.legend.labels.colors;\n T || (T = e.config.chart.foreColor), P.style.color = T, P.style.fontSize = parseFloat(e.config.legend.fontSize) + \"px\", P.style.fontWeight = e.config.legend.fontWeight, P.style.fontFamily = i || e.config.chart.fontFamily, b.setAttrs(P, {\n rel: l + 1,\n i: l,\n \"data:default-text\": encodeURIComponent(h),\n \"data:collapsed\": c || d\n }), L.appendChild(p), L.appendChild(P);\n var z = new y(this.ctx);\n if (!e.config.legend.showForZeroSeries) 0 === z.getSeriesTotalByIndex(l) && z.seriesHaveSameValues(l) && !z.isSeriesNull(l) && -1 === e.globals.collapsedSeriesIndices.indexOf(l) && -1 === e.globals.ancillaryCollapsedSeriesIndices.indexOf(l) && L.classList.add(\"apexcharts-hidden-zero-series\");\n e.config.legend.showForNullSeries || z.isSeriesNull(l) && -1 === e.globals.collapsedSeriesIndices.indexOf(l) && -1 === e.globals.ancillaryCollapsedSeriesIndices.indexOf(l) && L.classList.add(\"apexcharts-hidden-null-series\"), e.globals.dom.elLegendWrap.appendChild(L), e.globals.dom.elLegendWrap.classList.add(\"apexcharts-align-\".concat(e.config.legend.horizontalAlign)), e.globals.dom.elLegendWrap.classList.add(\"position-\" + e.config.legend.position), L.classList.add(\"apexcharts-legend-series\"), L.style.margin = \"\".concat(e.config.legend.itemMargin.vertical, \"px \").concat(e.config.legend.itemMargin.horizontal, \"px\"), e.globals.dom.elLegendWrap.style.width = e.config.legend.width ? e.config.legend.width + \"px\" : \"\", e.globals.dom.elLegendWrap.style.height = e.config.legend.height ? e.config.legend.height + \"px\" : \"\", b.setAttrs(L, {\n rel: l + 1,\n seriesName: f.escapeString(a[l]),\n \"data:collapsed\": c || d\n }), (c || d) && L.classList.add(\"apexcharts-inactive-legend\"), e.config.legend.onItemClick.toggleDataSeries || L.classList.add(\"apexcharts-no-click\");\n }\n\n e.globals.dom.elWrap.addEventListener(\"click\", t.onLegendClick, !0), e.config.legend.onItemHover.highlightDataSeries && (e.globals.dom.elWrap.addEventListener(\"mousemove\", t.onLegendHovered, !0), e.globals.dom.elWrap.addEventListener(\"mouseout\", t.onLegendHovered, !0));\n }\n }, {\n key: \"setLegendWrapXY\",\n value: function value(t, e) {\n var i = this.w,\n a = i.globals.dom.baseEl.querySelector(\".apexcharts-legend\"),\n s = a.getBoundingClientRect(),\n r = 0,\n n = 0;\n if (\"bottom\" === i.config.legend.position) n += i.globals.svgHeight - s.height / 2;else if (\"top\" === i.config.legend.position) {\n var o = new nt(this.ctx),\n l = o.dimHelpers.getTitleSubtitleCoords(\"title\").height,\n h = o.dimHelpers.getTitleSubtitleCoords(\"subtitle\").height;\n n = n + (l > 0 ? l - 10 : 0) + (h > 0 ? h - 10 : 0);\n }\n a.style.position = \"absolute\", r = r + t + i.config.legend.offsetX, n = n + e + i.config.legend.offsetY, a.style.left = r + \"px\", a.style.top = n + \"px\", \"bottom\" === i.config.legend.position ? (a.style.top = \"auto\", a.style.bottom = 5 - i.config.legend.offsetY + \"px\") : \"right\" === i.config.legend.position && (a.style.left = \"auto\", a.style.right = 25 + i.config.legend.offsetX + \"px\");\n [\"width\", \"height\"].forEach(function (t) {\n a.style[t] && (a.style[t] = parseInt(i.config.legend[t], 10) + \"px\");\n });\n }\n }, {\n key: \"legendAlignHorizontal\",\n value: function value() {\n var t = this.w;\n t.globals.dom.baseEl.querySelector(\".apexcharts-legend\").style.right = 0;\n var e = this.legendHelpers.getLegendBBox(),\n i = new nt(this.ctx),\n a = i.dimHelpers.getTitleSubtitleCoords(\"title\"),\n s = i.dimHelpers.getTitleSubtitleCoords(\"subtitle\"),\n r = 0;\n \"bottom\" === t.config.legend.position ? r = -e.clwh / 1.8 : \"top\" === t.config.legend.position && (r = a.height + s.height + t.config.title.margin + t.config.subtitle.margin - 10), this.setLegendWrapXY(20, r);\n }\n }, {\n key: \"legendAlignVertical\",\n value: function value() {\n var t = this.w,\n e = this.legendHelpers.getLegendBBox(),\n i = 0;\n \"left\" === t.config.legend.position && (i = 20), \"right\" === t.config.legend.position && (i = t.globals.svgWidth - e.clww - 10), this.setLegendWrapXY(i, 20);\n }\n }, {\n key: \"onLegendHovered\",\n value: function value(t) {\n var e = this.w,\n i = t.target.classList.contains(\"apexcharts-legend-text\") || t.target.classList.contains(\"apexcharts-legend-marker\");\n\n if (\"heatmap\" === e.config.chart.type || this.isBarsDistributed) {\n if (i) {\n var a = parseInt(t.target.getAttribute(\"rel\"), 10) - 1;\n this.ctx.events.fireEvent(\"legendHover\", [this.ctx, a, this.w]), new M(this.ctx).highlightRangeInSeries(t, t.target);\n }\n } else !t.target.classList.contains(\"apexcharts-inactive-legend\") && i && new M(this.ctx).toggleSeriesOnHover(t, t.target);\n }\n }, {\n key: \"onLegendClick\",\n value: function value(t) {\n var e = this.w;\n\n if (t.target.classList.contains(\"apexcharts-legend-text\") || t.target.classList.contains(\"apexcharts-legend-marker\")) {\n var i = parseInt(t.target.getAttribute(\"rel\"), 10) - 1,\n a = \"true\" === t.target.getAttribute(\"data:collapsed\"),\n s = this.w.config.chart.events.legendClick;\n \"function\" == typeof s && s(this.ctx, i, this.w), this.ctx.events.fireEvent(\"legendClick\", [this.ctx, i, this.w]);\n var r = this.w.config.legend.markers.onClick;\n \"function\" == typeof r && t.target.classList.contains(\"apexcharts-legend-marker\") && (r(this.ctx, i, this.w), this.ctx.events.fireEvent(\"legendMarkerClick\", [this.ctx, i, this.w])), \"treemap\" !== e.config.chart.type && \"heatmap\" !== e.config.chart.type && !this.isBarsDistributed && e.config.legend.onItemClick.toggleDataSeries && this.legendHelpers.toggleDataSeries(i, a);\n }\n }\n }]), t;\n}(),\n ht = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n var a = this.w;\n this.ev = this.w.config.chart.events, this.selectedClass = \"apexcharts-selected\", this.localeValues = this.w.globals.locale.toolbar, this.minX = a.globals.minX, this.maxX = a.globals.maxX;\n }\n\n return a(t, [{\n key: \"createToolbar\",\n value: function value() {\n var t = this,\n e = this.w,\n i = function i() {\n return document.createElement(\"div\");\n },\n a = i();\n\n if (a.setAttribute(\"class\", \"apexcharts-toolbar\"), a.style.top = e.config.chart.toolbar.offsetY + \"px\", a.style.right = 3 - e.config.chart.toolbar.offsetX + \"px\", e.globals.dom.elWrap.appendChild(a), this.elZoom = i(), this.elZoomIn = i(), this.elZoomOut = i(), this.elPan = i(), this.elSelection = i(), this.elZoomReset = i(), this.elMenuIcon = i(), this.elMenu = i(), this.elCustomIcons = [], this.t = e.config.chart.toolbar.tools, Array.isArray(this.t.customIcons)) for (var s = 0; s < this.t.customIcons.length; s++) {\n this.elCustomIcons.push(i());\n }\n\n var r = [],\n n = function n(i, a, s) {\n var n = i.toLowerCase();\n t.t[n] && e.config.chart.zoom.enabled && r.push({\n el: a,\n icon: \"string\" == typeof t.t[n] ? t.t[n] : s,\n title: t.localeValues[i],\n class: \"apexcharts-\".concat(n, \"-icon\")\n });\n };\n\n n(\"zoomIn\", this.elZoomIn, '\\n \\n \\n\\n'), n(\"zoomOut\", this.elZoomOut, '\\n \\n \\n\\n');\n\n var o = function o(i) {\n t.t[i] && e.config.chart[i].enabled && r.push({\n el: \"zoom\" === i ? t.elZoom : t.elSelection,\n icon: \"string\" == typeof t.t[i] ? t.t[i] : \"zoom\" === i ? '\\n \\n \\n \\n' : '\\n \\n \\n',\n title: t.localeValues[\"zoom\" === i ? \"selectionZoom\" : \"selection\"],\n class: e.globals.isTouchDevice ? \"apexcharts-element-hidden\" : \"apexcharts-\".concat(i, \"-icon\")\n });\n };\n\n o(\"zoom\"), o(\"selection\"), this.t.pan && e.config.chart.zoom.enabled && r.push({\n el: this.elPan,\n icon: \"string\" == typeof this.t.pan ? this.t.pan : '\\n \\n \\n \\n \\n \\n \\n \\n',\n title: this.localeValues.pan,\n class: e.globals.isTouchDevice ? \"apexcharts-element-hidden\" : \"apexcharts-pan-icon\"\n }), n(\"reset\", this.elZoomReset, '\\n \\n \\n'), this.t.download && r.push({\n el: this.elMenuIcon,\n icon: \"string\" == typeof this.t.download ? this.t.download : '',\n title: this.localeValues.menu,\n class: \"apexcharts-menu-icon\"\n });\n\n for (var l = 0; l < this.elCustomIcons.length; l++) {\n r.push({\n el: this.elCustomIcons[l],\n icon: this.t.customIcons[l].icon,\n title: this.t.customIcons[l].title,\n index: this.t.customIcons[l].index,\n class: \"apexcharts-toolbar-custom-icon \" + this.t.customIcons[l].class\n });\n }\n\n r.forEach(function (t, e) {\n t.index && f.moveIndexInArray(r, e, t.index);\n });\n\n for (var h = 0; h < r.length; h++) {\n b.setAttrs(r[h].el, {\n class: r[h].class,\n title: r[h].title\n }), r[h].el.innerHTML = r[h].icon, a.appendChild(r[h].el);\n }\n\n this._createHamburgerMenu(a), e.globals.zoomEnabled ? this.elZoom.classList.add(this.selectedClass) : e.globals.panEnabled ? this.elPan.classList.add(this.selectedClass) : e.globals.selectionEnabled && this.elSelection.classList.add(this.selectedClass), this.addToolbarEventListeners();\n }\n }, {\n key: \"_createHamburgerMenu\",\n value: function value(t) {\n this.elMenuItems = [], t.appendChild(this.elMenu), b.setAttrs(this.elMenu, {\n class: \"apexcharts-menu\"\n });\n var e = [{\n name: \"exportSVG\",\n title: this.localeValues.exportToSVG\n }, {\n name: \"exportPNG\",\n title: this.localeValues.exportToPNG\n }, {\n name: \"exportCSV\",\n title: this.localeValues.exportToCSV\n }];\n this.w.globals.allSeriesHasEqualX || e.splice(2, 1);\n\n for (var i = 0; i < e.length; i++) {\n this.elMenuItems.push(document.createElement(\"div\")), this.elMenuItems[i].innerHTML = e[i].title, b.setAttrs(this.elMenuItems[i], {\n class: \"apexcharts-menu-item \".concat(e[i].name),\n title: e[i].title\n }), this.elMenu.appendChild(this.elMenuItems[i]);\n }\n }\n }, {\n key: \"addToolbarEventListeners\",\n value: function value() {\n var t = this;\n this.elZoomReset.addEventListener(\"click\", this.handleZoomReset.bind(this)), this.elSelection.addEventListener(\"click\", this.toggleZoomSelection.bind(this, \"selection\")), this.elZoom.addEventListener(\"click\", this.toggleZoomSelection.bind(this, \"zoom\")), this.elZoomIn.addEventListener(\"click\", this.handleZoomIn.bind(this)), this.elZoomOut.addEventListener(\"click\", this.handleZoomOut.bind(this)), this.elPan.addEventListener(\"click\", this.togglePanning.bind(this)), this.elMenuIcon.addEventListener(\"click\", this.toggleMenu.bind(this)), this.elMenuItems.forEach(function (e) {\n e.classList.contains(\"exportSVG\") ? e.addEventListener(\"click\", t.handleDownload.bind(t, \"svg\")) : e.classList.contains(\"exportPNG\") ? e.addEventListener(\"click\", t.handleDownload.bind(t, \"png\")) : e.classList.contains(\"exportCSV\") && e.addEventListener(\"click\", t.handleDownload.bind(t, \"csv\"));\n });\n\n for (var e = 0; e < this.t.customIcons.length; e++) {\n this.elCustomIcons[e].addEventListener(\"click\", this.t.customIcons[e].click.bind(this, this.ctx, this.ctx.w));\n }\n }\n }, {\n key: \"toggleZoomSelection\",\n value: function value(t) {\n this.ctx.getSyncedCharts().forEach(function (e) {\n e.ctx.toolbar.toggleOtherControls();\n var i = \"selection\" === t ? e.ctx.toolbar.elSelection : e.ctx.toolbar.elZoom,\n a = \"selection\" === t ? \"selectionEnabled\" : \"zoomEnabled\";\n e.w.globals[a] = !e.w.globals[a], i.classList.contains(e.ctx.toolbar.selectedClass) ? i.classList.remove(e.ctx.toolbar.selectedClass) : i.classList.add(e.ctx.toolbar.selectedClass);\n });\n }\n }, {\n key: \"getToolbarIconsReference\",\n value: function value() {\n var t = this.w;\n this.elZoom || (this.elZoom = t.globals.dom.baseEl.querySelector(\".apexcharts-zoom-icon\")), this.elPan || (this.elPan = t.globals.dom.baseEl.querySelector(\".apexcharts-pan-icon\")), this.elSelection || (this.elSelection = t.globals.dom.baseEl.querySelector(\".apexcharts-selection-icon\"));\n }\n }, {\n key: \"enableZoomPanFromToolbar\",\n value: function value(t) {\n this.toggleOtherControls(), \"pan\" === t ? this.w.globals.panEnabled = !0 : this.w.globals.zoomEnabled = !0;\n var e = \"pan\" === t ? this.elPan : this.elZoom,\n i = \"pan\" === t ? this.elZoom : this.elPan;\n e && e.classList.add(this.selectedClass), i && i.classList.remove(this.selectedClass);\n }\n }, {\n key: \"togglePanning\",\n value: function value() {\n this.ctx.getSyncedCharts().forEach(function (t) {\n t.ctx.toolbar.toggleOtherControls(), t.w.globals.panEnabled = !t.w.globals.panEnabled, t.ctx.toolbar.elPan.classList.contains(t.ctx.toolbar.selectedClass) ? t.ctx.toolbar.elPan.classList.remove(t.ctx.toolbar.selectedClass) : t.ctx.toolbar.elPan.classList.add(t.ctx.toolbar.selectedClass);\n });\n }\n }, {\n key: \"toggleOtherControls\",\n value: function value() {\n var t = this,\n e = this.w;\n e.globals.panEnabled = !1, e.globals.zoomEnabled = !1, e.globals.selectionEnabled = !1, this.getToolbarIconsReference(), [this.elPan, this.elSelection, this.elZoom].forEach(function (e) {\n e && e.classList.remove(t.selectedClass);\n });\n }\n }, {\n key: \"handleZoomIn\",\n value: function value() {\n var t = this.w;\n t.globals.isTimelineBar && (this.minX = t.globals.minY, this.maxX = t.globals.maxY);\n\n var e = (this.minX + this.maxX) / 2,\n i = (this.minX + e) / 2,\n a = (this.maxX + e) / 2,\n s = this._getNewMinXMaxX(i, a);\n\n t.globals.disableZoomIn || this.zoomUpdateOptions(s.minX, s.maxX);\n }\n }, {\n key: \"handleZoomOut\",\n value: function value() {\n var t = this.w;\n\n if (t.globals.isTimelineBar && (this.minX = t.globals.minY, this.maxX = t.globals.maxY), !(\"datetime\" === t.config.xaxis.type && new Date(this.minX).getUTCFullYear() < 1e3)) {\n var e = (this.minX + this.maxX) / 2,\n i = this.minX - (e - this.minX),\n a = this.maxX - (e - this.maxX),\n s = this._getNewMinXMaxX(i, a);\n\n t.globals.disableZoomOut || this.zoomUpdateOptions(s.minX, s.maxX);\n }\n }\n }, {\n key: \"_getNewMinXMaxX\",\n value: function value(t, e) {\n var i = this.w.config.xaxis.convertedCatToNumeric;\n return {\n minX: i ? Math.floor(t) : t,\n maxX: i ? Math.floor(e) : e\n };\n }\n }, {\n key: \"zoomUpdateOptions\",\n value: function value(t, e) {\n var i = this.w;\n\n if (void 0 !== t || void 0 !== e) {\n if (!(i.config.xaxis.convertedCatToNumeric && (t < 1 && (t = 1, e = i.globals.dataPoints), e - t < 2))) {\n var a = {\n min: t,\n max: e\n },\n s = this.getBeforeZoomRange(a);\n s && (a = s.xaxis);\n var r = {\n xaxis: a\n },\n n = f.clone(i.globals.initialConfig.yaxis);\n if (i.config.chart.zoom.autoScaleYaxis) n = new j(this.ctx).autoScaleY(this.ctx, n, {\n xaxis: a\n });\n i.config.chart.group || (r.yaxis = n), this.w.globals.zoomed = !0, this.ctx.updateHelpers._updateOptions(r, !1, this.w.config.chart.animations.dynamicAnimation.enabled), this.zoomCallback(a, n);\n }\n } else this.handleZoomReset();\n }\n }, {\n key: \"zoomCallback\",\n value: function value(t, e) {\n \"function\" == typeof this.ev.zoomed && this.ev.zoomed(this.ctx, {\n xaxis: t,\n yaxis: e\n });\n }\n }, {\n key: \"getBeforeZoomRange\",\n value: function value(t, e) {\n var i = null;\n return \"function\" == typeof this.ev.beforeZoom && (i = this.ev.beforeZoom(this, {\n xaxis: t,\n yaxis: e\n })), i;\n }\n }, {\n key: \"toggleMenu\",\n value: function value() {\n var t = this;\n window.setTimeout(function () {\n t.elMenu.classList.contains(\"apexcharts-menu-open\") ? t.elMenu.classList.remove(\"apexcharts-menu-open\") : t.elMenu.classList.add(\"apexcharts-menu-open\");\n }, 0);\n }\n }, {\n key: \"handleDownload\",\n value: function value(t) {\n var e = this.w,\n i = new V(this.ctx);\n\n switch (t) {\n case \"svg\":\n i.exportToSVG(this.ctx);\n break;\n\n case \"png\":\n i.exportToPng(this.ctx);\n break;\n\n case \"csv\":\n i.exportToCSV({\n series: e.config.series,\n columnDelimiter: e.config.chart.toolbar.export.csv.columnDelimiter\n });\n }\n }\n }, {\n key: \"handleZoomReset\",\n value: function value(t) {\n this.ctx.getSyncedCharts().forEach(function (t) {\n var e = t.w;\n\n if (e.globals.lastXAxis.min = void 0, e.globals.lastXAxis.max = void 0, t.updateHelpers.revertDefaultAxisMinMax(), \"function\" == typeof e.config.chart.events.beforeResetZoom) {\n var i = e.config.chart.events.beforeResetZoom(t, e);\n i && t.updateHelpers.revertDefaultAxisMinMax(i);\n }\n\n \"function\" == typeof e.config.chart.events.zoomed && t.ctx.toolbar.zoomCallback({\n min: e.config.xaxis.min,\n max: e.config.xaxis.max\n }), e.globals.zoomed = !1;\n var a = t.ctx.series.emptyCollapsedSeries(f.clone(e.globals.initialSeries));\n\n t.updateHelpers._updateSeries(a, e.config.chart.animations.dynamicAnimation.enabled);\n });\n }\n }, {\n key: \"destroy\",\n value: function value() {\n this.elZoom = null, this.elZoomIn = null, this.elZoomOut = null, this.elPan = null, this.elSelection = null, this.elZoomReset = null, this.elMenuIcon = null;\n }\n }]), t;\n}(),\n ct = function (t) {\n o(s, ht);\n var i = d(s);\n\n function s(t) {\n var a;\n return e(this, s), (a = i.call(this, t)).ctx = t, a.w = t.w, a.dragged = !1, a.graphics = new b(a.ctx), a.eventList = [\"mousedown\", \"mouseleave\", \"mousemove\", \"touchstart\", \"touchmove\", \"mouseup\", \"touchend\"], a.clientX = 0, a.clientY = 0, a.startX = 0, a.endX = 0, a.dragX = 0, a.startY = 0, a.endY = 0, a.dragY = 0, a.moveDirection = \"none\", a;\n }\n\n return a(s, [{\n key: \"init\",\n value: function value(t) {\n var e = this,\n i = t.xyRatios,\n a = this.w,\n s = this;\n this.xyRatios = i, this.zoomRect = this.graphics.drawRect(0, 0, 0, 0), this.selectionRect = this.graphics.drawRect(0, 0, 0, 0), this.gridRect = a.globals.dom.baseEl.querySelector(\".apexcharts-grid\"), this.zoomRect.node.classList.add(\"apexcharts-zoom-rect\"), this.selectionRect.node.classList.add(\"apexcharts-selection-rect\"), a.globals.dom.elGraphical.add(this.zoomRect), a.globals.dom.elGraphical.add(this.selectionRect), \"x\" === a.config.chart.selection.type ? this.slDraggableRect = this.selectionRect.draggable({\n minX: 0,\n minY: 0,\n maxX: a.globals.gridWidth,\n maxY: a.globals.gridHeight\n }).on(\"dragmove\", this.selectionDragging.bind(this, \"dragging\")) : \"y\" === a.config.chart.selection.type ? this.slDraggableRect = this.selectionRect.draggable({\n minX: 0,\n maxX: a.globals.gridWidth\n }).on(\"dragmove\", this.selectionDragging.bind(this, \"dragging\")) : this.slDraggableRect = this.selectionRect.draggable().on(\"dragmove\", this.selectionDragging.bind(this, \"dragging\")), this.preselectedSelection(), this.hoverArea = a.globals.dom.baseEl.querySelector(\"\".concat(a.globals.chartClass, \" .apexcharts-svg\")), this.hoverArea.classList.add(\"apexcharts-zoomable\"), this.eventList.forEach(function (t) {\n e.hoverArea.addEventListener(t, s.svgMouseEvents.bind(s, i), {\n capture: !1,\n passive: !0\n });\n });\n }\n }, {\n key: \"destroy\",\n value: function value() {\n this.slDraggableRect && (this.slDraggableRect.draggable(!1), this.slDraggableRect.off(), this.selectionRect.off()), this.selectionRect = null, this.zoomRect = null, this.gridRect = null;\n }\n }, {\n key: \"svgMouseEvents\",\n value: function value(t, e) {\n var i = this.w,\n a = this,\n s = this.ctx.toolbar,\n r = i.globals.zoomEnabled ? i.config.chart.zoom.type : i.config.chart.selection.type,\n n = i.config.chart.toolbar.autoSelected;\n e.shiftKey ? (this.shiftWasPressed = !0, s.enableZoomPanFromToolbar(\"pan\" === n ? \"zoom\" : \"pan\")) : this.shiftWasPressed && (s.enableZoomPanFromToolbar(n), this.shiftWasPressed = !1);\n var o = e.target.classList;\n\n if (!(o.contains(\"apexcharts-selection-rect\") || o.contains(\"apexcharts-legend-marker\") || o.contains(\"apexcharts-legend-text\") || e.target.parentNode.classList.contains(\"apexcharts-toolbar\"))) {\n if (a.clientX = \"touchmove\" === e.type || \"touchstart\" === e.type ? e.touches[0].clientX : \"touchend\" === e.type ? e.changedTouches[0].clientX : e.clientX, a.clientY = \"touchmove\" === e.type || \"touchstart\" === e.type ? e.touches[0].clientY : \"touchend\" === e.type ? e.changedTouches[0].clientY : e.clientY, \"mousedown\" === e.type && 1 === e.which) {\n var l = a.gridRect.getBoundingClientRect();\n a.startX = a.clientX - l.left, a.startY = a.clientY - l.top, a.dragged = !1, a.w.globals.mousedown = !0;\n }\n\n if ((\"mousemove\" === e.type && 1 === e.which || \"touchmove\" === e.type) && (a.dragged = !0, i.globals.panEnabled ? (i.globals.selection = null, a.w.globals.mousedown && a.panDragging({\n context: a,\n zoomtype: r,\n xyRatios: t\n })) : (a.w.globals.mousedown && i.globals.zoomEnabled || a.w.globals.mousedown && i.globals.selectionEnabled) && (a.selection = a.selectionDrawing({\n context: a,\n zoomtype: r\n }))), \"mouseup\" === e.type || \"touchend\" === e.type || \"mouseleave\" === e.type) {\n var h = a.gridRect.getBoundingClientRect();\n a.w.globals.mousedown && (a.endX = a.clientX - h.left, a.endY = a.clientY - h.top, a.dragX = Math.abs(a.endX - a.startX), a.dragY = Math.abs(a.endY - a.startY), (i.globals.zoomEnabled || i.globals.selectionEnabled) && a.selectionDrawn({\n context: a,\n zoomtype: r\n }), i.globals.panEnabled && i.config.xaxis.convertedCatToNumeric && a.delayedPanScrolled()), i.globals.zoomEnabled && a.hideSelectionRect(this.selectionRect), a.dragged = !1, a.w.globals.mousedown = !1;\n }\n\n this.makeSelectionRectDraggable();\n }\n }\n }, {\n key: \"makeSelectionRectDraggable\",\n value: function value() {\n var t = this.w;\n\n if (this.selectionRect) {\n var e = this.selectionRect.node.getBoundingClientRect();\n e.width > 0 && e.height > 0 && this.slDraggableRect.selectize({\n points: \"l, r\",\n pointSize: 8,\n pointType: \"rect\"\n }).resize({\n constraint: {\n minX: 0,\n minY: 0,\n maxX: t.globals.gridWidth,\n maxY: t.globals.gridHeight\n }\n }).on(\"resizing\", this.selectionDragging.bind(this, \"resizing\"));\n }\n }\n }, {\n key: \"preselectedSelection\",\n value: function value() {\n var t = this.w,\n e = this.xyRatios;\n if (!t.globals.zoomEnabled) if (void 0 !== t.globals.selection && null !== t.globals.selection) this.drawSelectionRect(t.globals.selection);else if (void 0 !== t.config.chart.selection.xaxis.min && void 0 !== t.config.chart.selection.xaxis.max) {\n var i = (t.config.chart.selection.xaxis.min - t.globals.minX) / e.xRatio,\n a = {\n x: i,\n y: 0,\n width: t.globals.gridWidth - (t.globals.maxX - t.config.chart.selection.xaxis.max) / e.xRatio - i,\n height: t.globals.gridHeight,\n translateX: 0,\n translateY: 0,\n selectionEnabled: !0\n };\n this.drawSelectionRect(a), this.makeSelectionRectDraggable(), \"function\" == typeof t.config.chart.events.selection && t.config.chart.events.selection(this.ctx, {\n xaxis: {\n min: t.config.chart.selection.xaxis.min,\n max: t.config.chart.selection.xaxis.max\n },\n yaxis: {}\n });\n }\n }\n }, {\n key: \"drawSelectionRect\",\n value: function value(t) {\n var e = t.x,\n i = t.y,\n a = t.width,\n s = t.height,\n r = t.translateX,\n n = void 0 === r ? 0 : r,\n o = t.translateY,\n l = void 0 === o ? 0 : o,\n h = this.w,\n c = this.zoomRect,\n d = this.selectionRect;\n\n if (this.dragged || null !== h.globals.selection) {\n var g = {\n transform: \"translate(\" + n + \", \" + l + \")\"\n };\n h.globals.zoomEnabled && this.dragged && (a < 0 && (a = 1), c.attr({\n x: e,\n y: i,\n width: a,\n height: s,\n fill: h.config.chart.zoom.zoomedArea.fill.color,\n \"fill-opacity\": h.config.chart.zoom.zoomedArea.fill.opacity,\n stroke: h.config.chart.zoom.zoomedArea.stroke.color,\n \"stroke-width\": h.config.chart.zoom.zoomedArea.stroke.width,\n \"stroke-opacity\": h.config.chart.zoom.zoomedArea.stroke.opacity\n }), b.setAttrs(c.node, g)), h.globals.selectionEnabled && (d.attr({\n x: e,\n y: i,\n width: a > 0 ? a : 0,\n height: s > 0 ? s : 0,\n fill: h.config.chart.selection.fill.color,\n \"fill-opacity\": h.config.chart.selection.fill.opacity,\n stroke: h.config.chart.selection.stroke.color,\n \"stroke-width\": h.config.chart.selection.stroke.width,\n \"stroke-dasharray\": h.config.chart.selection.stroke.dashArray,\n \"stroke-opacity\": h.config.chart.selection.stroke.opacity\n }), b.setAttrs(d.node, g));\n }\n }\n }, {\n key: \"hideSelectionRect\",\n value: function value(t) {\n t && t.attr({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n }\n }, {\n key: \"selectionDrawing\",\n value: function value(t) {\n var e = t.context,\n i = t.zoomtype,\n a = this.w,\n s = e,\n r = this.gridRect.getBoundingClientRect(),\n n = s.startX - 1,\n o = s.startY,\n l = !1,\n h = !1,\n c = s.clientX - r.left - n,\n d = s.clientY - r.top - o,\n g = {};\n return Math.abs(c + n) > a.globals.gridWidth ? c = a.globals.gridWidth - n : s.clientX - r.left < 0 && (c = n), n > s.clientX - r.left && (l = !0, c = Math.abs(c)), o > s.clientY - r.top && (h = !0, d = Math.abs(d)), g = \"x\" === i ? {\n x: l ? n - c : n,\n y: 0,\n width: c,\n height: a.globals.gridHeight\n } : \"y\" === i ? {\n x: 0,\n y: h ? o - d : o,\n width: a.globals.gridWidth,\n height: d\n } : {\n x: l ? n - c : n,\n y: h ? o - d : o,\n width: c,\n height: d\n }, s.drawSelectionRect(g), s.selectionDragging(\"resizing\"), g;\n }\n }, {\n key: \"selectionDragging\",\n value: function value(t, e) {\n var i = this,\n a = this.w,\n s = this.xyRatios,\n r = this.selectionRect,\n n = 0;\n \"resizing\" === t && (n = 30);\n\n var o = function o(t) {\n return parseFloat(r.node.getAttribute(t));\n },\n l = {\n x: o(\"x\"),\n y: o(\"y\"),\n width: o(\"width\"),\n height: o(\"height\")\n };\n\n a.globals.selection = l, \"function\" == typeof a.config.chart.events.selection && a.globals.selectionEnabled && (clearTimeout(this.w.globals.selectionResizeTimer), this.w.globals.selectionResizeTimer = window.setTimeout(function () {\n var t = i.gridRect.getBoundingClientRect(),\n e = r.node.getBoundingClientRect(),\n n = {\n xaxis: {\n min: a.globals.xAxisScale.niceMin + (e.left - t.left) * s.xRatio,\n max: a.globals.xAxisScale.niceMin + (e.right - t.left) * s.xRatio\n },\n yaxis: {\n min: a.globals.yAxisScale[0].niceMin + (t.bottom - e.bottom) * s.yRatio[0],\n max: a.globals.yAxisScale[0].niceMax - (e.top - t.top) * s.yRatio[0]\n }\n };\n a.config.chart.events.selection(i.ctx, n), a.config.chart.brush.enabled && void 0 !== a.config.chart.events.brushScrolled && a.config.chart.events.brushScrolled(i.ctx, n);\n }, n));\n }\n }, {\n key: \"selectionDrawn\",\n value: function value(t) {\n var e = t.context,\n i = t.zoomtype,\n a = this.w,\n s = e,\n r = this.xyRatios,\n n = this.ctx.toolbar;\n\n if (s.startX > s.endX) {\n var o = s.startX;\n s.startX = s.endX, s.endX = o;\n }\n\n if (s.startY > s.endY) {\n var l = s.startY;\n s.startY = s.endY, s.endY = l;\n }\n\n var h = void 0,\n c = void 0;\n a.globals.isTimelineBar ? (h = a.globals.yAxisScale[0].niceMin + s.startX * r.invertedYRatio, c = a.globals.yAxisScale[0].niceMin + s.endX * r.invertedYRatio) : (h = a.globals.xAxisScale.niceMin + s.startX * r.xRatio, c = a.globals.xAxisScale.niceMin + s.endX * r.xRatio);\n var d = [],\n g = [];\n if (a.config.yaxis.forEach(function (t, e) {\n d.push(a.globals.yAxisScale[e].niceMax - r.yRatio[e] * s.startY), g.push(a.globals.yAxisScale[e].niceMax - r.yRatio[e] * s.endY);\n }), s.dragged && (s.dragX > 10 || s.dragY > 10) && h !== c) if (a.globals.zoomEnabled) {\n var u = f.clone(a.globals.initialConfig.yaxis),\n p = f.clone(a.globals.initialConfig.xaxis);\n\n if (a.globals.zoomed = !0, a.config.xaxis.convertedCatToNumeric && (h = Math.floor(h), c = Math.floor(c), h < 1 && (h = 1, c = a.globals.dataPoints), c - h < 2 && (c = h + 1)), \"xy\" !== i && \"x\" !== i || (p = {\n min: h,\n max: c\n }), \"xy\" !== i && \"y\" !== i || u.forEach(function (t, e) {\n u[e].min = g[e], u[e].max = d[e];\n }), a.config.chart.zoom.autoScaleYaxis) {\n var x = new j(s.ctx);\n u = x.autoScaleY(s.ctx, u, {\n xaxis: p\n });\n }\n\n if (n) {\n var b = n.getBeforeZoomRange(p, u);\n b && (p = b.xaxis ? b.xaxis : p, u = b.yaxis ? b.yaxis : u);\n }\n\n var m = {\n xaxis: p\n };\n a.config.chart.group || (m.yaxis = u), s.ctx.updateHelpers._updateOptions(m, !1, s.w.config.chart.animations.dynamicAnimation.enabled), \"function\" == typeof a.config.chart.events.zoomed && n.zoomCallback(p, u);\n } else if (a.globals.selectionEnabled) {\n var v,\n y = null;\n v = {\n min: h,\n max: c\n }, \"xy\" !== i && \"y\" !== i || (y = f.clone(a.config.yaxis)).forEach(function (t, e) {\n y[e].min = g[e], y[e].max = d[e];\n }), a.globals.selection = s.selection, \"function\" == typeof a.config.chart.events.selection && a.config.chart.events.selection(s.ctx, {\n xaxis: v,\n yaxis: y\n });\n }\n }\n }, {\n key: \"panDragging\",\n value: function value(t) {\n var e = t.context,\n i = this.w,\n a = e;\n\n if (void 0 !== i.globals.lastClientPosition.x) {\n var s = i.globals.lastClientPosition.x - a.clientX,\n r = i.globals.lastClientPosition.y - a.clientY;\n Math.abs(s) > Math.abs(r) && s > 0 ? this.moveDirection = \"left\" : Math.abs(s) > Math.abs(r) && s < 0 ? this.moveDirection = \"right\" : Math.abs(r) > Math.abs(s) && r > 0 ? this.moveDirection = \"up\" : Math.abs(r) > Math.abs(s) && r < 0 && (this.moveDirection = \"down\");\n }\n\n i.globals.lastClientPosition = {\n x: a.clientX,\n y: a.clientY\n };\n var n = i.globals.minX,\n o = i.globals.maxX;\n i.config.xaxis.convertedCatToNumeric || a.panScrolled(n, o);\n }\n }, {\n key: \"delayedPanScrolled\",\n value: function value() {\n var t = this.w,\n e = t.globals.minX,\n i = t.globals.maxX,\n a = (t.globals.maxX - t.globals.minX) / 2;\n \"left\" === this.moveDirection ? (e = t.globals.minX + a, i = t.globals.maxX + a) : \"right\" === this.moveDirection && (e = t.globals.minX - a, i = t.globals.maxX - a), e = Math.floor(e), i = Math.floor(i), this.updateScrolledChart({\n xaxis: {\n min: e,\n max: i\n }\n }, e, i);\n }\n }, {\n key: \"panScrolled\",\n value: function value(t, e) {\n var i = this.w,\n a = this.xyRatios,\n s = f.clone(i.globals.initialConfig.yaxis);\n \"left\" === this.moveDirection ? (t = i.globals.minX + i.globals.gridWidth / 15 * a.xRatio, e = i.globals.maxX + i.globals.gridWidth / 15 * a.xRatio) : \"right\" === this.moveDirection && (t = i.globals.minX - i.globals.gridWidth / 15 * a.xRatio, e = i.globals.maxX - i.globals.gridWidth / 15 * a.xRatio), (t < i.globals.initialMinX || e > i.globals.initialMaxX) && (t = i.globals.minX, e = i.globals.maxX);\n var r = {\n min: t,\n max: e\n };\n i.config.chart.zoom.autoScaleYaxis && (s = new j(this.ctx).autoScaleY(this.ctx, s, {\n xaxis: r\n }));\n var n = {\n xaxis: {\n min: t,\n max: e\n }\n };\n i.config.chart.group || (n.yaxis = s), this.updateScrolledChart(n, t, e);\n }\n }, {\n key: \"updateScrolledChart\",\n value: function value(t, e, i) {\n var a = this.w;\n this.ctx.updateHelpers._updateOptions(t, !1, !1), \"function\" == typeof a.config.chart.events.scrolled && a.config.chart.events.scrolled(this.ctx, {\n xaxis: {\n min: e,\n max: i\n }\n });\n }\n }]), s;\n}(),\n dt = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.ttCtx = i, this.ctx = i.ctx;\n }\n\n return a(t, [{\n key: \"getNearestValues\",\n value: function value(t) {\n var e = t.hoverArea,\n i = t.elGrid,\n a = t.clientX,\n s = t.clientY,\n r = this.w,\n n = r.globals.gridWidth,\n o = n / (r.globals.dataPoints - 1),\n l = i.getBoundingClientRect(),\n h = this.hasBars();\n !r.globals.comboCharts && !h || r.config.xaxis.convertedCatToNumeric || (o = n / r.globals.dataPoints);\n var c = a - l.left - r.globals.barPadForNumericAxis,\n d = s - l.top;\n c < 0 || d < 0 || c > r.globals.gridWidth || d > r.globals.gridHeight ? (e.classList.remove(\"hovering-zoom\"), e.classList.remove(\"hovering-pan\")) : r.globals.zoomEnabled ? (e.classList.remove(\"hovering-pan\"), e.classList.add(\"hovering-zoom\")) : r.globals.panEnabled && (e.classList.remove(\"hovering-zoom\"), e.classList.add(\"hovering-pan\"));\n var g = Math.round(c / o);\n h && !r.config.xaxis.convertedCatToNumeric && (g = Math.ceil(c / o), g -= 1);\n\n for (var u, p = null, x = null, b = [], m = 0; m < r.globals.seriesXvalues.length; m++) {\n b.push([r.globals.seriesXvalues[m][0] - 1e-6].concat(r.globals.seriesXvalues[m]));\n }\n\n return b = b.map(function (t) {\n return t.filter(function (t) {\n return t;\n });\n }), u = r.globals.seriesYvalues.map(function (t) {\n return t.filter(function (t) {\n return f.isNumber(t);\n });\n }), r.globals.isXNumeric && (p = (x = this.closestInMultiArray(c, d, b, u)).index, g = x.j, null !== p && (b = r.globals.seriesXvalues[p], g = (x = this.closestInArray(c, b)).index)), r.globals.capturedSeriesIndex = null === p ? -1 : p, (!g || g < 1) && (g = 0), r.globals.capturedDataPointIndex = g, {\n capturedSeries: p,\n j: g,\n hoverX: c,\n hoverY: d\n };\n }\n }, {\n key: \"closestInMultiArray\",\n value: function value(t, e, i, a) {\n var s = this.w,\n r = 0,\n n = null,\n o = -1;\n s.globals.series.length > 1 ? r = this.getFirstActiveXArray(i) : n = 0;\n var l = a[r][0],\n h = i[r][0],\n c = Math.abs(t - h),\n d = Math.abs(e - l),\n g = d + c;\n return a.map(function (s, r) {\n s.map(function (s, l) {\n var h = Math.abs(e - a[r][l]),\n u = Math.abs(t - i[r][l]),\n f = u + h;\n f < g && (g = f, c = u, d = h, n = r, o = l);\n });\n }), {\n index: n,\n j: o\n };\n }\n }, {\n key: \"getFirstActiveXArray\",\n value: function value(t) {\n for (var e = 0, i = t.map(function (t, e) {\n return t.length > 0 ? e : -1;\n }), a = 0; a < i.length; a++) {\n if (-1 !== i[a]) {\n e = i[a];\n break;\n }\n }\n\n return e;\n }\n }, {\n key: \"closestInArray\",\n value: function value(t, e) {\n for (var i = e[0], a = null, s = Math.abs(t - i), r = 0; r < e.length; r++) {\n var n = Math.abs(t - e[r]);\n n < s && (s = n, a = r);\n }\n\n return {\n index: a\n };\n }\n }, {\n key: \"isXoverlap\",\n value: function value(t) {\n var e = [],\n i = this.w.globals.seriesX.filter(function (t) {\n return void 0 !== t[0];\n });\n if (i.length > 0) for (var a = 0; a < i.length - 1; a++) {\n void 0 !== i[a][t] && void 0 !== i[a + 1][t] && i[a][t] !== i[a + 1][t] && e.push(\"unEqual\");\n }\n return 0 === e.length;\n }\n }, {\n key: \"isInitialSeriesSameLen\",\n value: function value() {\n for (var t = !0, e = this.w.globals.initialSeries, i = 0; i < e.length - 1; i++) {\n if (e[i].data.length !== e[i + 1].data.length) {\n t = !1;\n break;\n }\n }\n\n return t;\n }\n }, {\n key: \"getBarsHeight\",\n value: function value(t) {\n return g(t).reduce(function (t, e) {\n return t + e.getBBox().height;\n }, 0);\n }\n }, {\n key: \"getElMarkers\",\n value: function value() {\n return this.w.globals.dom.baseEl.querySelectorAll(\" .apexcharts-series-markers\");\n }\n }, {\n key: \"getAllMarkers\",\n value: function value() {\n var t = this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap\");\n (t = g(t)).sort(function (t, e) {\n return Number(e.getAttribute(\"data:realIndex\")) < Number(t.getAttribute(\"data:realIndex\")) ? 0 : -1;\n });\n var e = [];\n return t.forEach(function (t) {\n e.push(t.querySelector(\".apexcharts-marker\"));\n }), e;\n }\n }, {\n key: \"hasMarkers\",\n value: function value() {\n return this.getElMarkers().length > 0;\n }\n }, {\n key: \"getElBars\",\n value: function value() {\n return this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-rangebar-series\");\n }\n }, {\n key: \"hasBars\",\n value: function value() {\n return this.getElBars().length > 0;\n }\n }, {\n key: \"getHoverMarkerSize\",\n value: function value(t) {\n var e = this.w,\n i = e.config.markers.hover.size;\n return void 0 === i && (i = e.globals.markers.size[t] + e.config.markers.hover.sizeOffset), i;\n }\n }, {\n key: \"toggleAllTooltipSeriesGroups\",\n value: function value(t) {\n var e = this.w,\n i = this.ttCtx;\n 0 === i.allTooltipSeriesGroups.length && (i.allTooltipSeriesGroups = e.globals.dom.baseEl.querySelectorAll(\".apexcharts-tooltip-series-group\"));\n\n for (var a = i.allTooltipSeriesGroups, s = 0; s < a.length; s++) {\n \"enable\" === t ? (a[s].classList.add(\"apexcharts-active\"), a[s].style.display = e.config.tooltip.items.display) : (a[s].classList.remove(\"apexcharts-active\"), a[s].style.display = \"none\");\n }\n }\n }]), t;\n}(),\n gt = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.ctx = i.ctx, this.ttCtx = i, this.tooltipUtil = new dt(i);\n }\n\n return a(t, [{\n key: \"drawSeriesTexts\",\n value: function value(t) {\n var e = t.shared,\n i = void 0 === e || e,\n a = t.ttItems,\n s = t.i,\n r = void 0 === s ? 0 : s,\n n = t.j,\n o = void 0 === n ? null : n,\n l = t.y1,\n h = t.y2,\n c = t.e,\n d = this.w;\n void 0 !== d.config.tooltip.custom ? this.handleCustomTooltip({\n i: r,\n j: o,\n y1: l,\n y2: h,\n w: d\n }) : this.toggleActiveInactiveSeries(i);\n var g = this.getValuesToPrint({\n i: r,\n j: o\n });\n this.printLabels({\n i: r,\n j: o,\n values: g,\n ttItems: a,\n shared: i,\n e: c\n });\n var u = this.ttCtx.getElTooltip();\n this.ttCtx.tooltipRect.ttWidth = u.getBoundingClientRect().width, this.ttCtx.tooltipRect.ttHeight = u.getBoundingClientRect().height;\n }\n }, {\n key: \"printLabels\",\n value: function value(t) {\n var e,\n i = this,\n a = t.i,\n s = t.j,\n r = t.values,\n o = t.ttItems,\n l = t.shared,\n h = t.e,\n c = this.w,\n d = r.xVal,\n g = r.zVal,\n u = r.xAxisTTVal,\n f = \"\",\n p = c.globals.colors[a];\n null !== s && c.config.plotOptions.bar.distributed && (p = c.globals.colors[s]);\n\n for (var x = function x(t, r) {\n var x = i.getFormatters(a);\n f = i.getSeriesName({\n fn: x.yLbTitleFormatter,\n index: a,\n seriesIndex: a,\n j: s\n }), \"treemap\" === c.config.chart.type && (f = x.yLbTitleFormatter(String(c.config.series[a].data[s].x), {\n series: c.globals.series,\n seriesIndex: a,\n dataPointIndex: s,\n w: c\n }));\n var b = c.config.tooltip.inverseOrder ? r : t;\n\n if (c.globals.axisCharts) {\n var m = function m(t) {\n return x.yLbFormatter(c.globals.series[t][s], {\n series: c.globals.series,\n seriesIndex: t,\n dataPointIndex: s,\n w: c\n });\n };\n\n l ? (x = i.getFormatters(b), f = i.getSeriesName({\n fn: x.yLbTitleFormatter,\n index: b,\n seriesIndex: a,\n j: s\n }), p = c.globals.colors[b], e = m(b)) : (h && h.target && h.target.getAttribute(\"fill\") && (p = h.target.getAttribute(\"fill\")), e = m(a));\n }\n\n null === s && (e = x.yLbFormatter(c.globals.series[a], n(n({}, c), {}, {\n seriesIndex: a,\n dataPointIndex: a\n }))), i.DOMHandling({\n i: a,\n t: b,\n j: s,\n ttItems: o,\n values: {\n val: e,\n xVal: d,\n xAxisTTVal: u,\n zVal: g\n },\n seriesName: f,\n shared: l,\n pColor: p\n });\n }, b = 0, m = c.globals.series.length - 1; b < c.globals.series.length; b++, m--) {\n x(b, m);\n }\n }\n }, {\n key: \"getFormatters\",\n value: function value(t) {\n var e,\n i = this.w,\n a = i.globals.yLabelFormatters[t];\n return void 0 !== i.globals.ttVal ? Array.isArray(i.globals.ttVal) ? (a = i.globals.ttVal[t] && i.globals.ttVal[t].formatter, e = i.globals.ttVal[t] && i.globals.ttVal[t].title && i.globals.ttVal[t].title.formatter) : (a = i.globals.ttVal.formatter, \"function\" == typeof i.globals.ttVal.title.formatter && (e = i.globals.ttVal.title.formatter)) : e = i.config.tooltip.y.title.formatter, \"function\" != typeof a && (a = i.globals.yLabelFormatters[0] ? i.globals.yLabelFormatters[0] : function (t) {\n return t;\n }), \"function\" != typeof e && (e = function e(t) {\n return t;\n }), {\n yLbFormatter: a,\n yLbTitleFormatter: e\n };\n }\n }, {\n key: \"getSeriesName\",\n value: function value(t) {\n var e = t.fn,\n i = t.index,\n a = t.seriesIndex,\n s = t.j,\n r = this.w;\n return e(String(r.globals.seriesNames[i]), {\n series: r.globals.series,\n seriesIndex: a,\n dataPointIndex: s,\n w: r\n });\n }\n }, {\n key: \"DOMHandling\",\n value: function value(t) {\n t.i;\n var e = t.t,\n i = (t.j, t.ttItems),\n a = t.values,\n s = t.seriesName,\n r = t.shared,\n n = t.pColor,\n o = this.w,\n l = this.ttCtx,\n h = a.val,\n c = a.xVal,\n d = a.xAxisTTVal,\n g = a.zVal,\n u = null;\n u = i[e].children, o.config.tooltip.fillSeriesColor && (i[e].style.backgroundColor = n, u[0].style.display = \"none\"), l.showTooltipTitle && (null === l.tooltipTitle && (l.tooltipTitle = o.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-title\")), l.tooltipTitle.innerHTML = c), l.blxaxisTooltip && (l.xaxisTooltipText.innerHTML = \"\" !== d ? d : c);\n var f = i[e].querySelector(\".apexcharts-tooltip-text-label\");\n f && (f.innerHTML = s || \"\");\n var p = i[e].querySelector(\".apexcharts-tooltip-text-value\");\n (p && (p.innerHTML = void 0 !== h ? h : \"\"), u[0] && u[0].classList.contains(\"apexcharts-tooltip-marker\") && (o.config.tooltip.marker.fillColors && Array.isArray(o.config.tooltip.marker.fillColors) && (n = o.config.tooltip.marker.fillColors[e]), u[0].style.backgroundColor = n), o.config.tooltip.marker.show || (u[0].style.display = \"none\"), null !== g) && (i[e].querySelector(\".apexcharts-tooltip-text-z-label\").innerHTML = o.config.tooltip.z.title, i[e].querySelector(\".apexcharts-tooltip-text-z-value\").innerHTML = void 0 !== g ? g : \"\");\n r && u[0] && (null == h || o.globals.collapsedSeriesIndices.indexOf(e) > -1 ? u[0].parentNode.style.display = \"none\" : u[0].parentNode.style.display = o.config.tooltip.items.display);\n }\n }, {\n key: \"toggleActiveInactiveSeries\",\n value: function value(t) {\n var e = this.w;\n if (t) this.tooltipUtil.toggleAllTooltipSeriesGroups(\"enable\");else {\n this.tooltipUtil.toggleAllTooltipSeriesGroups(\"disable\");\n var i = e.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-series-group\");\n i && (i.classList.add(\"apexcharts-active\"), i.style.display = e.config.tooltip.items.display);\n }\n }\n }, {\n key: \"getValuesToPrint\",\n value: function value(t) {\n var e = t.i,\n i = t.j,\n a = this.w,\n s = this.ctx.series.filteredSeriesX(),\n r = \"\",\n n = \"\",\n o = null,\n l = null,\n h = {\n series: a.globals.series,\n seriesIndex: e,\n dataPointIndex: i,\n w: a\n },\n c = a.globals.ttZFormatter;\n null === i ? l = a.globals.series[e] : a.globals.isXNumeric && \"treemap\" !== a.config.chart.type ? (r = s[e][i], 0 === s[e].length && (r = s[this.tooltipUtil.getFirstActiveXArray(s)][i])) : r = void 0 !== a.globals.labels[i] ? a.globals.labels[i] : \"\";\n var d = r;\n a.globals.isXNumeric && \"datetime\" === a.config.xaxis.type ? r = new W(this.ctx).xLabelFormat(a.globals.ttKeyFormatter, d, d, {\n i: void 0,\n dateFormatter: new Y(this.ctx).formatDate,\n w: this.w\n }) : r = a.globals.isBarHorizontal ? a.globals.yLabelFormatters[0](d, h) : a.globals.xLabelFormatter(d, h);\n return void 0 !== a.config.tooltip.x.formatter && (r = a.globals.ttKeyFormatter(d, h)), a.globals.seriesZ.length > 0 && a.globals.seriesZ[e].length > 0 && (o = c(a.globals.seriesZ[e][i], a)), n = \"function\" == typeof a.config.xaxis.tooltip.formatter ? a.globals.xaxisTooltipFormatter(d, h) : r, {\n val: Array.isArray(l) ? l.join(\" \") : l,\n xVal: Array.isArray(r) ? r.join(\" \") : r,\n xAxisTTVal: Array.isArray(n) ? n.join(\" \") : n,\n zVal: o\n };\n }\n }, {\n key: \"handleCustomTooltip\",\n value: function value(t) {\n var e = t.i,\n i = t.j,\n a = t.y1,\n s = t.y2,\n r = t.w,\n n = this.ttCtx.getElTooltip(),\n o = r.config.tooltip.custom;\n Array.isArray(o) && o[e] && (o = o[e]), n.innerHTML = o({\n ctx: this.ctx,\n series: r.globals.series,\n seriesIndex: e,\n dataPointIndex: i,\n y1: a,\n y2: s,\n w: r\n });\n }\n }]), t;\n}(),\n ut = function () {\n function t(i) {\n e(this, t), this.ttCtx = i, this.ctx = i.ctx, this.w = i.w;\n }\n\n return a(t, [{\n key: \"moveXCrosshairs\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,\n i = this.ttCtx,\n a = this.w,\n s = i.getElXCrosshairs(),\n r = t - i.xcrosshairsWidth / 2,\n n = a.globals.labels.slice().length;\n\n if (null !== e && (r = a.globals.gridWidth / n * e), null !== s && (s.setAttribute(\"x\", r), s.setAttribute(\"x1\", r), s.setAttribute(\"x2\", r), s.setAttribute(\"y2\", a.globals.gridHeight), s.classList.add(\"apexcharts-active\")), r < 0 && (r = 0), r > a.globals.gridWidth && (r = a.globals.gridWidth), i.blxaxisTooltip) {\n var o = r;\n \"tickWidth\" !== a.config.xaxis.crosshairs.width && \"barWidth\" !== a.config.xaxis.crosshairs.width || (o = r + i.xcrosshairsWidth / 2), this.moveXAxisTooltip(o);\n }\n }\n }, {\n key: \"moveYCrosshairs\",\n value: function value(t) {\n var e = this.ttCtx;\n null !== e.ycrosshairs && b.setAttrs(e.ycrosshairs, {\n y1: t,\n y2: t\n }), null !== e.ycrosshairsHidden && b.setAttrs(e.ycrosshairsHidden, {\n y1: t,\n y2: t\n });\n }\n }, {\n key: \"moveXAxisTooltip\",\n value: function value(t) {\n var e = this.w,\n i = this.ttCtx;\n\n if (null !== i.xaxisTooltip) {\n i.xaxisTooltip.classList.add(\"apexcharts-active\");\n var a = i.xaxisOffY + e.config.xaxis.tooltip.offsetY + e.globals.translateY + 1 + e.config.xaxis.offsetY;\n\n if (t -= i.xaxisTooltip.getBoundingClientRect().width / 2, !isNaN(t)) {\n t += e.globals.translateX;\n var s;\n s = new b(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML), i.xaxisTooltipText.style.minWidth = s.width + \"px\", i.xaxisTooltip.style.left = t + \"px\", i.xaxisTooltip.style.top = a + \"px\";\n }\n }\n }\n }, {\n key: \"moveYAxisTooltip\",\n value: function value(t) {\n var e = this.w,\n i = this.ttCtx;\n null === i.yaxisTTEls && (i.yaxisTTEls = e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));\n var a = parseInt(i.ycrosshairsHidden.getAttribute(\"y1\"), 10),\n s = e.globals.translateY + a,\n r = i.yaxisTTEls[t].getBoundingClientRect().height,\n n = e.globals.translateYAxisX[t] - 2;\n e.config.yaxis[t].opposite && (n -= 26), s -= r / 2, -1 === e.globals.ignoreYAxisIndexes.indexOf(t) ? (i.yaxisTTEls[t].classList.add(\"apexcharts-active\"), i.yaxisTTEls[t].style.top = s + \"px\", i.yaxisTTEls[t].style.left = n + e.config.yaxis[t].tooltip.offsetX + \"px\") : i.yaxisTTEls[t].classList.remove(\"apexcharts-active\");\n }\n }, {\n key: \"moveTooltip\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null,\n a = this.w,\n s = this.ttCtx,\n r = s.getElTooltip(),\n n = s.tooltipRect,\n o = null !== i ? parseFloat(i) : 1,\n l = parseFloat(t) + o + 5,\n h = parseFloat(e) + o / 2;\n\n if (l > a.globals.gridWidth / 2 && (l = l - n.ttWidth - o - 15), l > a.globals.gridWidth - n.ttWidth - 10 && (l = a.globals.gridWidth - n.ttWidth), l < -20 && (l = -20), a.config.tooltip.followCursor) {\n var c = s.getElGrid(),\n d = c.getBoundingClientRect();\n h = s.e.clientY + a.globals.translateY - d.top - n.ttHeight / 2;\n }\n\n if (!a.config.tooltip.followCursor) {\n var g = this.positionChecks(n, l, h);\n l = g.x, h = g.y;\n }\n\n isNaN(l) || (l += a.globals.translateX, r.style.left = l + \"px\", r.style.top = h + \"px\");\n }\n }, {\n key: \"positionChecks\",\n value: function value(t, e, i) {\n var a = this.w;\n return t.ttHeight / 2 + i > a.globals.gridHeight && (i = a.globals.gridHeight - t.ttHeight + a.globals.translateY), i < 0 && (i = 0), {\n x: e,\n y: i\n };\n }\n }, {\n key: \"moveMarkers\",\n value: function value(t, e) {\n var i = this.w,\n a = this.ttCtx;\n if (i.globals.markers.size[t] > 0) for (var s = i.globals.dom.baseEl.querySelectorAll(\" .apexcharts-series[data\\\\:realIndex='\".concat(t, \"'] .apexcharts-marker\")), r = 0; r < s.length; r++) {\n parseInt(s[r].getAttribute(\"rel\"), 10) === e && (a.marker.resetPointsSize(), a.marker.enlargeCurrentPoint(e, s[r]));\n } else a.marker.resetPointsSize(), this.moveDynamicPointOnHover(e, t);\n }\n }, {\n key: \"moveDynamicPointOnHover\",\n value: function value(t, e) {\n var i,\n a,\n s = this.w,\n r = this.ttCtx,\n n = s.globals.pointsArray,\n o = r.tooltipUtil.getHoverMarkerSize(e),\n l = s.config.series[e].type;\n\n if (!l || \"column\" !== l && \"candlestick\" !== l) {\n i = n[e][t][0], a = n[e][t][1] ? n[e][t][1] : 0;\n var h = s.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(e, \"'] .apexcharts-series-markers circle\"));\n h && a < s.globals.gridHeight && a > 0 && (h.setAttribute(\"r\", o), h.setAttribute(\"cx\", i), h.setAttribute(\"cy\", a)), this.moveXCrosshairs(i), r.fixedTooltip || this.moveTooltip(i, a, o);\n }\n }\n }, {\n key: \"moveDynamicPointsOnHover\",\n value: function value(t) {\n var e,\n i = this.ttCtx,\n a = i.w,\n s = 0,\n r = 0,\n n = a.globals.pointsArray;\n e = new M(this.ctx).getActiveConfigSeriesIndex(!0);\n var o = i.tooltipUtil.getHoverMarkerSize(e);\n n[e] && (s = n[e][t][0], r = n[e][t][1]);\n var l = i.tooltipUtil.getAllMarkers();\n if (null !== l) for (var h = 0; h < a.globals.series.length; h++) {\n var c = n[h];\n\n if (a.globals.comboCharts && void 0 === c && l.splice(h, 0, null), c && c.length) {\n var d = n[h][t][1];\n l[h].setAttribute(\"cx\", s), null !== d && !isNaN(d) && d < a.globals.gridHeight && d > 0 ? (l[h] && l[h].setAttribute(\"r\", o), l[h] && l[h].setAttribute(\"cy\", d)) : l[h] && l[h].setAttribute(\"r\", 0);\n }\n }\n\n if (this.moveXCrosshairs(s), !i.fixedTooltip) {\n var g = r || a.globals.gridHeight;\n this.moveTooltip(s, g, o);\n }\n }\n }, {\n key: \"moveStickyTooltipOverBars\",\n value: function value(t) {\n var e,\n i = this.w,\n a = this.ttCtx,\n s = i.globals.columnSeries ? i.globals.columnSeries.length : i.globals.series.length,\n r = s >= 2 && s % 2 == 0 ? Math.floor(s / 2) : Math.floor(s / 2) + 1,\n n = i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[rel='\".concat(r, \"'] path[j='\").concat(t, \"'], .apexcharts-candlestick-series .apexcharts-series[rel='\").concat(r, \"'] path[j='\").concat(t, \"'], .apexcharts-rangebar-series .apexcharts-series[rel='\").concat(r, \"'] path[j='\").concat(t, \"']\")),\n o = n ? parseFloat(n.getAttribute(\"cx\")) : 0,\n l = n ? parseFloat(n.getAttribute(\"barWidth\")) : 0;\n i.globals.isXNumeric ? o -= s % 2 != 0 ? l / 2 : 0 : (o = a.xAxisTicksPositions[t - 1] + a.dataPointsDividedWidth / 2, isNaN(o) && (o = a.xAxisTicksPositions[t] - a.dataPointsDividedWidth / 2));\n var h = a.getElGrid().getBoundingClientRect();\n\n if (e = a.e.clientY - h.top - a.tooltipRect.ttHeight / 2, this.moveXCrosshairs(o), !a.fixedTooltip) {\n var c = e || i.globals.gridHeight;\n this.moveTooltip(o, c);\n }\n }\n }]), t;\n}(),\n ft = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.ttCtx = i, this.ctx = i.ctx, this.tooltipPosition = new ut(i);\n }\n\n return a(t, [{\n key: \"drawDynamicPoints\",\n value: function value() {\n var t = this.w,\n e = new b(this.ctx),\n i = new P(this.ctx),\n a = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");\n a = g(a), t.config.chart.stacked && a.sort(function (t, e) {\n return parseFloat(t.getAttribute(\"data:realIndex\")) - parseFloat(e.getAttribute(\"data:realIndex\"));\n });\n\n for (var s = 0; s < a.length; s++) {\n var r = a[s].querySelector(\".apexcharts-series-markers-wrap\");\n\n if (null !== r) {\n var n = void 0,\n o = \"apexcharts-marker w\".concat((Math.random() + 1).toString(36).substring(4));\n \"line\" !== t.config.chart.type && \"area\" !== t.config.chart.type || t.globals.comboCharts || t.config.tooltip.intersect || (o += \" no-pointer-events\");\n var l = i.getMarkerConfig(o, s);\n (n = e.drawMarker(0, 0, l)).node.setAttribute(\"default-marker-size\", 0);\n var h = document.createElementNS(t.globals.SVGNS, \"g\");\n h.classList.add(\"apexcharts-series-markers\"), h.appendChild(n.node), r.appendChild(h);\n }\n }\n }\n }, {\n key: \"enlargeCurrentPoint\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null,\n a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null,\n s = this.w;\n \"bubble\" !== s.config.chart.type && this.newPointSize(t, e);\n var r = e.getAttribute(\"cx\"),\n n = e.getAttribute(\"cy\");\n\n if (null !== i && null !== a && (r = i, n = a), this.tooltipPosition.moveXCrosshairs(r), !this.fixedTooltip) {\n if (\"radar\" === s.config.chart.type) {\n var o = this.ttCtx.getElGrid(),\n l = o.getBoundingClientRect();\n r = this.ttCtx.e.clientX - l.left;\n }\n\n this.tooltipPosition.moveTooltip(r, n, s.config.markers.hover.size);\n }\n }\n }, {\n key: \"enlargePoints\",\n value: function value(t) {\n for (var e = this.w, i = this, a = this.ttCtx, s = t, r = e.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"), n = e.config.markers.hover.size, o = 0; o < r.length; o++) {\n var l = r[o].getAttribute(\"rel\"),\n h = r[o].getAttribute(\"index\");\n\n if (void 0 === n && (n = e.globals.markers.size[h] + e.config.markers.hover.sizeOffset), s === parseInt(l, 10)) {\n i.newPointSize(s, r[o]);\n var c = r[o].getAttribute(\"cx\"),\n d = r[o].getAttribute(\"cy\");\n i.tooltipPosition.moveXCrosshairs(c), a.fixedTooltip || i.tooltipPosition.moveTooltip(c, d, n);\n } else i.oldPointSize(r[o]);\n }\n }\n }, {\n key: \"newPointSize\",\n value: function value(t, e) {\n var i = this.w,\n a = i.config.markers.hover.size,\n s = 0 === t ? e.parentNode.firstChild : e.parentNode.lastChild;\n\n if (\"0\" !== s.getAttribute(\"default-marker-size\")) {\n var r = parseInt(s.getAttribute(\"index\"), 10);\n void 0 === a && (a = i.globals.markers.size[r] + i.config.markers.hover.sizeOffset), s.setAttribute(\"r\", a);\n }\n }\n }, {\n key: \"oldPointSize\",\n value: function value(t) {\n var e = parseFloat(t.getAttribute(\"default-marker-size\"));\n t.setAttribute(\"r\", e);\n }\n }, {\n key: \"resetPointsSize\",\n value: function value() {\n for (var t = this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"), e = 0; e < t.length; e++) {\n var i = parseFloat(t[e].getAttribute(\"default-marker-size\"));\n f.isNumber(i) ? t[e].setAttribute(\"r\", i) : t[e].setAttribute(\"r\", 0);\n }\n }\n }]), t;\n}(),\n pt = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.ttCtx = i;\n }\n\n return a(t, [{\n key: \"getAttr\",\n value: function value(t, e) {\n return parseFloat(t.target.getAttribute(e));\n }\n }, {\n key: \"handleHeatTreeTooltip\",\n value: function value(t) {\n var e = t.e,\n i = t.opt,\n a = t.x,\n s = t.y,\n r = t.type,\n n = this.ttCtx,\n o = this.w;\n\n if (e.target.classList.contains(\"apexcharts-\".concat(r, \"-rect\"))) {\n var l = this.getAttr(e, \"i\"),\n h = this.getAttr(e, \"j\"),\n c = this.getAttr(e, \"cx\"),\n d = this.getAttr(e, \"cy\"),\n g = this.getAttr(e, \"width\"),\n u = this.getAttr(e, \"height\");\n\n if (n.tooltipLabels.drawSeriesTexts({\n ttItems: i.ttItems,\n i: l,\n j: h,\n shared: !1,\n e: e\n }), o.globals.capturedSeriesIndex = l, o.globals.capturedDataPointIndex = h, a = c + n.tooltipRect.ttWidth / 2 + g, s = d + n.tooltipRect.ttHeight / 2 - u / 2, n.tooltipPosition.moveXCrosshairs(c + g / 2), a > o.globals.gridWidth / 2 && (a = c - n.tooltipRect.ttWidth / 2 + g), n.w.config.tooltip.followCursor) {\n var f = n.getElGrid().getBoundingClientRect();\n (a = n.e.clientX - f.left + 10) > o.globals.gridWidth / 2 && (a = a - n.tooltipRect.ttWidth - 10), s = n.e.clientY - f.top + o.globals.translateY / 2 - 10;\n }\n }\n\n return {\n x: a,\n y: s\n };\n }\n }, {\n key: \"handleMarkerTooltip\",\n value: function value(t) {\n var e,\n i,\n a = t.e,\n s = t.opt,\n r = t.x,\n n = t.y,\n o = this.w,\n l = this.ttCtx;\n\n if (a.target.classList.contains(\"apexcharts-marker\")) {\n var h = parseInt(s.paths.getAttribute(\"cx\"), 10),\n c = parseInt(s.paths.getAttribute(\"cy\"), 10),\n d = parseFloat(s.paths.getAttribute(\"val\"));\n\n if (i = parseInt(s.paths.getAttribute(\"rel\"), 10), e = parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute(\"rel\"), 10) - 1, l.intersect) {\n var g = f.findAncestor(s.paths, \"apexcharts-series\");\n g && (e = parseInt(g.getAttribute(\"data:realIndex\"), 10));\n }\n\n if (l.tooltipLabels.drawSeriesTexts({\n ttItems: s.ttItems,\n i: e,\n j: i,\n shared: !l.showOnIntersect && o.config.tooltip.shared,\n e: a\n }), \"mouseup\" === a.type && l.markerClick(a, e, i), o.globals.capturedSeriesIndex = e, o.globals.capturedDataPointIndex = i, r = h, n = c + o.globals.translateY - 1.4 * l.tooltipRect.ttHeight, l.w.config.tooltip.followCursor) {\n var u = l.getElGrid().getBoundingClientRect();\n n = l.e.clientY + o.globals.translateY - u.top;\n }\n\n d < 0 && (n = c), l.marker.enlargeCurrentPoint(i, s.paths, r, n);\n }\n\n return {\n x: r,\n y: n\n };\n }\n }, {\n key: \"handleBarTooltip\",\n value: function value(t) {\n var e,\n i,\n a = t.e,\n s = t.opt,\n r = this.w,\n n = this.ttCtx,\n o = n.getElTooltip(),\n l = 0,\n h = 0,\n c = 0,\n d = this.getBarTooltipXY({\n e: a,\n opt: s\n });\n e = d.i;\n var g = d.barHeight,\n u = d.j;\n\n if (r.globals.capturedSeriesIndex = e, r.globals.capturedDataPointIndex = u, r.globals.isBarHorizontal && n.tooltipUtil.hasBars() || !r.config.tooltip.shared ? (h = d.x, c = d.y, i = Array.isArray(r.config.stroke.width) ? r.config.stroke.width[e] : r.config.stroke.width, l = h) : r.globals.comboCharts || r.config.tooltip.shared || (l /= 2), isNaN(c) ? c = r.globals.svgHeight - n.tooltipRect.ttHeight : c < 0 && (c = 0), h + n.tooltipRect.ttWidth > r.globals.gridWidth ? h -= n.tooltipRect.ttWidth : h < 0 && (h = 0), n.w.config.tooltip.followCursor) {\n var f = n.getElGrid().getBoundingClientRect();\n c = n.e.clientY - f.top;\n }\n\n if (null === n.tooltip && (n.tooltip = r.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\")), r.config.tooltip.shared || (r.globals.comboBarCount > 0 ? n.tooltipPosition.moveXCrosshairs(l + i / 2) : n.tooltipPosition.moveXCrosshairs(l)), !n.fixedTooltip && (!r.config.tooltip.shared || r.globals.isBarHorizontal && n.tooltipUtil.hasBars())) {\n var p = r.globals.isMultipleYAxis ? r.config.yaxis[x] && r.config.yaxis[x].reversed : r.config.yaxis[0].reversed;\n p && (h -= n.tooltipRect.ttWidth) < 0 && (h = 0), o.style.left = h + r.globals.translateX + \"px\";\n var x = parseInt(s.paths.parentNode.getAttribute(\"data:realIndex\"), 10);\n !p || r.globals.isBarHorizontal && n.tooltipUtil.hasBars() || (c = c + g - 2 * (r.globals.series[e][u] < 0 ? g : 0)), n.tooltipRect.ttHeight + c > r.globals.gridHeight ? (c = r.globals.gridHeight - n.tooltipRect.ttHeight + r.globals.translateY, o.style.top = c + \"px\") : o.style.top = c + r.globals.translateY - n.tooltipRect.ttHeight / 2 + \"px\";\n }\n }\n }, {\n key: \"getBarTooltipXY\",\n value: function value(t) {\n var e = t.e,\n i = t.opt,\n a = this.w,\n s = null,\n r = this.ttCtx,\n n = 0,\n o = 0,\n l = 0,\n h = 0,\n c = 0,\n d = e.target.classList;\n\n if (d.contains(\"apexcharts-bar-area\") || d.contains(\"apexcharts-candlestick-area\") || d.contains(\"apexcharts-rangebar-area\")) {\n var g = e.target,\n u = g.getBoundingClientRect(),\n f = i.elGrid.getBoundingClientRect(),\n p = u.height;\n c = u.height;\n var x = u.width,\n b = parseInt(g.getAttribute(\"cx\"), 10),\n m = parseInt(g.getAttribute(\"cy\"), 10);\n h = parseFloat(g.getAttribute(\"barWidth\"));\n var v = \"touchmove\" === e.type ? e.touches[0].clientX : e.clientX;\n s = parseInt(g.getAttribute(\"j\"), 10), n = parseInt(g.parentNode.getAttribute(\"rel\"), 10) - 1;\n var y = g.getAttribute(\"data-range-y1\"),\n w = g.getAttribute(\"data-range-y2\");\n a.globals.comboCharts && (n = parseInt(g.parentNode.getAttribute(\"data:realIndex\"), 10)), r.tooltipLabels.drawSeriesTexts({\n ttItems: i.ttItems,\n i: n,\n j: s,\n y1: y ? parseInt(y, 10) : null,\n y2: w ? parseInt(w, 10) : null,\n shared: !r.showOnIntersect && a.config.tooltip.shared,\n e: e\n }), a.config.tooltip.followCursor ? a.globals.isBarHorizontal ? (o = v - f.left + 15, l = m - r.dataPointsDividedHeight + p / 2 - r.tooltipRect.ttHeight / 2) : (o = a.globals.isXNumeric ? b - x / 2 : b - r.dataPointsDividedWidth + x / 2, l = e.clientY - f.top - r.tooltipRect.ttHeight / 2 - 15) : a.globals.isBarHorizontal ? ((o = b) < r.xyRatios.baseLineInvertedY && (o = b - r.tooltipRect.ttWidth), l = m - r.dataPointsDividedHeight + p / 2 - r.tooltipRect.ttHeight / 2) : (o = a.globals.isXNumeric ? b - x / 2 : b - r.dataPointsDividedWidth + x / 2, l = m);\n }\n\n return {\n x: o,\n y: l,\n barHeight: c,\n barWidth: h,\n i: n,\n j: s\n };\n }\n }]), t;\n}(),\n xt = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.ttCtx = i;\n }\n\n return a(t, [{\n key: \"drawXaxisTooltip\",\n value: function value() {\n var t = this.w,\n e = this.ttCtx,\n i = \"bottom\" === t.config.xaxis.position;\n e.xaxisOffY = i ? t.globals.gridHeight + 1 : -t.globals.xAxisHeight - t.config.xaxis.axisTicks.height + 3;\n var a = i ? \"apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom\" : \"apexcharts-xaxistooltip apexcharts-xaxistooltip-top\",\n s = t.globals.dom.elWrap;\n e.blxaxisTooltip && null === t.globals.dom.baseEl.querySelector(\".apexcharts-xaxistooltip\") && (e.xaxisTooltip = document.createElement(\"div\"), e.xaxisTooltip.setAttribute(\"class\", a + \" apexcharts-theme-\" + t.config.tooltip.theme), s.appendChild(e.xaxisTooltip), e.xaxisTooltipText = document.createElement(\"div\"), e.xaxisTooltipText.classList.add(\"apexcharts-xaxistooltip-text\"), e.xaxisTooltipText.style.fontFamily = t.config.xaxis.tooltip.style.fontFamily || t.config.chart.fontFamily, e.xaxisTooltipText.style.fontSize = t.config.xaxis.tooltip.style.fontSize, e.xaxisTooltip.appendChild(e.xaxisTooltipText));\n }\n }, {\n key: \"drawYaxisTooltip\",\n value: function value() {\n for (var t = this.w, e = this.ttCtx, i = function i(_i2) {\n var a = t.config.yaxis[_i2].opposite || t.config.yaxis[_i2].crosshairs.opposite;\n e.yaxisOffX = a ? t.globals.gridWidth + 1 : 1;\n var s = \"apexcharts-yaxistooltip apexcharts-yaxistooltip-\".concat(_i2, a ? \" apexcharts-yaxistooltip-right\" : \" apexcharts-yaxistooltip-left\");\n t.globals.yAxisSameScaleIndices.map(function (e, a) {\n e.map(function (e, a) {\n a === _i2 && (s += t.config.yaxis[a].show ? \" \" : \" apexcharts-yaxistooltip-hidden\");\n });\n });\n var r = t.globals.dom.elWrap;\n null === t.globals.dom.baseEl.querySelector(\".apexcharts-yaxistooltip apexcharts-yaxistooltip-\".concat(_i2)) && (e.yaxisTooltip = document.createElement(\"div\"), e.yaxisTooltip.setAttribute(\"class\", s + \" apexcharts-theme-\" + t.config.tooltip.theme), r.appendChild(e.yaxisTooltip), 0 === _i2 && (e.yaxisTooltipText = []), e.yaxisTooltipText[_i2] = document.createElement(\"div\"), e.yaxisTooltipText[_i2].classList.add(\"apexcharts-yaxistooltip-text\"), e.yaxisTooltip.appendChild(e.yaxisTooltipText[_i2]));\n }, a = 0; a < t.config.yaxis.length; a++) {\n i(a);\n }\n }\n }, {\n key: \"setXCrosshairWidth\",\n value: function value() {\n var t = this.w,\n e = this.ttCtx,\n i = e.getElXCrosshairs();\n\n if (e.xcrosshairsWidth = parseInt(t.config.xaxis.crosshairs.width, 10), t.globals.comboCharts) {\n var a = t.globals.dom.baseEl.querySelector(\".apexcharts-bar-area\");\n\n if (null !== a && \"barWidth\" === t.config.xaxis.crosshairs.width) {\n var s = parseFloat(a.getAttribute(\"barWidth\"));\n e.xcrosshairsWidth = s;\n } else if (\"tickWidth\" === t.config.xaxis.crosshairs.width) {\n var r = t.globals.labels.length;\n e.xcrosshairsWidth = t.globals.gridWidth / r;\n }\n } else if (\"tickWidth\" === t.config.xaxis.crosshairs.width) {\n var n = t.globals.labels.length;\n e.xcrosshairsWidth = t.globals.gridWidth / n;\n } else if (\"barWidth\" === t.config.xaxis.crosshairs.width) {\n var o = t.globals.dom.baseEl.querySelector(\".apexcharts-bar-area\");\n\n if (null !== o) {\n var l = parseFloat(o.getAttribute(\"barWidth\"));\n e.xcrosshairsWidth = l;\n } else e.xcrosshairsWidth = 1;\n }\n\n t.globals.isBarHorizontal && (e.xcrosshairsWidth = 0), null !== i && e.xcrosshairsWidth > 0 && i.setAttribute(\"width\", e.xcrosshairsWidth);\n }\n }, {\n key: \"handleYCrosshair\",\n value: function value() {\n var t = this.w,\n e = this.ttCtx;\n e.ycrosshairs = t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs\"), e.ycrosshairsHidden = t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs-hidden\");\n }\n }, {\n key: \"drawYaxisTooltipText\",\n value: function value(t, e, i) {\n var a = this.ttCtx,\n s = this.w,\n r = s.globals.yLabelFormatters[t];\n\n if (a.yaxisTooltips[t]) {\n var n = a.getElGrid().getBoundingClientRect(),\n o = (e - n.top) * i.yRatio[t],\n l = s.globals.maxYArr[t] - s.globals.minYArr[t],\n h = s.globals.minYArr[t] + (l - o);\n a.tooltipPosition.moveYCrosshairs(e - n.top), a.yaxisTooltipText[t].innerHTML = r(h), a.tooltipPosition.moveYAxisTooltip(t);\n }\n }\n }]), t;\n}(),\n bt = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n var a = this.w;\n this.tConfig = a.config.tooltip, this.tooltipUtil = new dt(this), this.tooltipLabels = new gt(this), this.tooltipPosition = new ut(this), this.marker = new ft(this), this.intersect = new pt(this), this.axesTooltip = new xt(this), this.showOnIntersect = this.tConfig.intersect, this.showTooltipTitle = this.tConfig.x.show, this.fixedTooltip = this.tConfig.fixed.enabled, this.xaxisTooltip = null, this.yaxisTTEls = null, this.isBarShared = !a.globals.isBarHorizontal && this.tConfig.shared;\n }\n\n return a(t, [{\n key: \"getElTooltip\",\n value: function value(t) {\n return t || (t = this), t.w.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\");\n }\n }, {\n key: \"getElXCrosshairs\",\n value: function value() {\n return this.w.globals.dom.baseEl.querySelector(\".apexcharts-xcrosshairs\");\n }\n }, {\n key: \"getElGrid\",\n value: function value() {\n return this.w.globals.dom.baseEl.querySelector(\".apexcharts-grid\");\n }\n }, {\n key: \"drawTooltip\",\n value: function value(t) {\n var e = this.w;\n this.xyRatios = t, this.blxaxisTooltip = e.config.xaxis.tooltip.enabled && e.globals.axisCharts, this.yaxisTooltips = e.config.yaxis.map(function (t, i) {\n return !!(t.show && t.tooltip.enabled && e.globals.axisCharts);\n }), this.allTooltipSeriesGroups = [], e.globals.axisCharts || (this.showTooltipTitle = !1);\n var i = document.createElement(\"div\");\n\n if (i.classList.add(\"apexcharts-tooltip\"), i.classList.add(\"apexcharts-theme-\".concat(this.tConfig.theme)), e.globals.dom.elWrap.appendChild(i), e.globals.axisCharts) {\n this.axesTooltip.drawXaxisTooltip(), this.axesTooltip.drawYaxisTooltip(), this.axesTooltip.setXCrosshairWidth(), this.axesTooltip.handleYCrosshair();\n var a = new G(this.ctx);\n this.xAxisTicksPositions = a.getXAxisTicksPositions();\n }\n\n if (!e.globals.comboCharts && !this.tConfig.intersect && \"bar\" !== e.config.chart.type && \"rangeBar\" !== e.config.chart.type || this.tConfig.shared || (this.showOnIntersect = !0), 0 !== e.config.markers.size && 0 !== e.globals.markers.largestSize || this.marker.drawDynamicPoints(this), e.globals.collapsedSeries.length !== e.globals.series.length) {\n this.dataPointsDividedHeight = e.globals.gridHeight / e.globals.dataPoints, this.dataPointsDividedWidth = e.globals.gridWidth / e.globals.dataPoints, this.showTooltipTitle && (this.tooltipTitle = document.createElement(\"div\"), this.tooltipTitle.classList.add(\"apexcharts-tooltip-title\"), this.tooltipTitle.style.fontFamily = this.tConfig.style.fontFamily || e.config.chart.fontFamily, this.tooltipTitle.style.fontSize = this.tConfig.style.fontSize, i.appendChild(this.tooltipTitle));\n var s = e.globals.series.length;\n (e.globals.xyCharts || e.globals.comboCharts) && this.tConfig.shared && (s = this.showOnIntersect ? 1 : e.globals.series.length), this.legendLabels = e.globals.dom.baseEl.querySelectorAll(\".apexcharts-legend-text\"), this.ttItems = this.createTTElements(s), this.addSVGEvents();\n }\n }\n }, {\n key: \"createTTElements\",\n value: function value(t) {\n for (var e = this.w, i = [], a = this.getElTooltip(), s = 0; s < t; s++) {\n var r = document.createElement(\"div\");\n r.classList.add(\"apexcharts-tooltip-series-group\"), r.style.order = e.config.tooltip.inverseOrder ? t - s : s + 1, this.tConfig.shared && this.tConfig.enabledOnSeries && Array.isArray(this.tConfig.enabledOnSeries) && this.tConfig.enabledOnSeries.indexOf(s) < 0 && r.classList.add(\"apexcharts-tooltip-series-group-hidden\");\n var n = document.createElement(\"span\");\n n.classList.add(\"apexcharts-tooltip-marker\"), n.style.backgroundColor = e.globals.colors[s], r.appendChild(n);\n var o = document.createElement(\"div\");\n o.classList.add(\"apexcharts-tooltip-text\"), o.style.fontFamily = this.tConfig.style.fontFamily || e.config.chart.fontFamily, o.style.fontSize = this.tConfig.style.fontSize;\n var l = document.createElement(\"div\");\n l.classList.add(\"apexcharts-tooltip-y-group\");\n var h = document.createElement(\"span\");\n h.classList.add(\"apexcharts-tooltip-text-label\"), l.appendChild(h);\n var c = document.createElement(\"span\");\n c.classList.add(\"apexcharts-tooltip-text-value\"), l.appendChild(c);\n var d = document.createElement(\"div\");\n d.classList.add(\"apexcharts-tooltip-z-group\");\n var g = document.createElement(\"span\");\n g.classList.add(\"apexcharts-tooltip-text-z-label\"), d.appendChild(g);\n var u = document.createElement(\"span\");\n u.classList.add(\"apexcharts-tooltip-text-z-value\"), d.appendChild(u), o.appendChild(l), o.appendChild(d), r.appendChild(o), a.appendChild(r), i.push(r);\n }\n\n return i;\n }\n }, {\n key: \"addSVGEvents\",\n value: function value() {\n var t = this.w,\n e = t.config.chart.type,\n i = this.getElTooltip(),\n a = !(\"bar\" !== e && \"candlestick\" !== e && \"rangeBar\" !== e),\n s = \"area\" === e || \"line\" === e || \"scatter\" === e || \"bubble\" === e || \"radar\" === e,\n r = t.globals.dom.Paper.node,\n n = this.getElGrid();\n n && (this.seriesBound = n.getBoundingClientRect());\n var o,\n l = [],\n h = [],\n c = {\n hoverArea: r,\n elGrid: n,\n tooltipEl: i,\n tooltipY: l,\n tooltipX: h,\n ttItems: this.ttItems\n };\n if (t.globals.axisCharts && (s ? o = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series[data\\\\:longestSeries='true'] .apexcharts-marker\") : a ? o = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-rangebar-area\") : \"heatmap\" !== e && \"treemap\" !== e || (o = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap\")), o && o.length)) for (var d = 0; d < o.length; d++) {\n l.push(o[d].getAttribute(\"cy\")), h.push(o[d].getAttribute(\"cx\"));\n }\n if (t.globals.xyCharts && !this.showOnIntersect || t.globals.comboCharts && !this.showOnIntersect || a && this.tooltipUtil.hasBars() && this.tConfig.shared) this.addPathsEventListeners([r], c);else if (a && !t.globals.comboCharts || s && this.showOnIntersect) this.addDatapointEventsListeners(c);else if (!t.globals.axisCharts || \"heatmap\" === e || \"treemap\" === e) {\n var g = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");\n this.addPathsEventListeners(g, c);\n }\n\n if (this.showOnIntersect) {\n var u = t.globals.dom.baseEl.querySelectorAll(\".apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker\");\n u.length > 0 && this.addPathsEventListeners(u, c), this.tooltipUtil.hasBars() && !this.tConfig.shared && this.addDatapointEventsListeners(c);\n }\n }\n }, {\n key: \"drawFixedTooltipRect\",\n value: function value() {\n var t = this.w,\n e = this.getElTooltip(),\n i = e.getBoundingClientRect(),\n a = i.width + 10,\n s = i.height + 10,\n r = this.tConfig.fixed.offsetX,\n n = this.tConfig.fixed.offsetY,\n o = this.tConfig.fixed.position.toLowerCase();\n return o.indexOf(\"right\") > -1 && (r = r + t.globals.svgWidth - a + 10), o.indexOf(\"bottom\") > -1 && (n = n + t.globals.svgHeight - s - 10), e.style.left = r + \"px\", e.style.top = n + \"px\", {\n x: r,\n y: n,\n ttWidth: a,\n ttHeight: s\n };\n }\n }, {\n key: \"addDatapointEventsListeners\",\n value: function value(t) {\n var e = this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-rangebar-area\");\n this.addPathsEventListeners(e, t);\n }\n }, {\n key: \"addPathsEventListeners\",\n value: function value(t, e) {\n for (var i = this, a = function a(_a) {\n var s = {\n paths: t[_a],\n tooltipEl: e.tooltipEl,\n tooltipY: e.tooltipY,\n tooltipX: e.tooltipX,\n elGrid: e.elGrid,\n hoverArea: e.hoverArea,\n ttItems: e.ttItems\n };\n [\"mousemove\", \"mouseup\", \"touchmove\", \"mouseout\", \"touchend\"].map(function (e) {\n return t[_a].addEventListener(e, i.seriesHover.bind(i, s), {\n capture: !1,\n passive: !0\n });\n });\n }, s = 0; s < t.length; s++) {\n a(s);\n }\n }\n }, {\n key: \"seriesHover\",\n value: function value(t, e) {\n var i = this,\n a = [],\n s = this.w;\n s.config.chart.group && (a = this.ctx.getGroupedCharts()), s.globals.axisCharts && (s.globals.minX === -1 / 0 && s.globals.maxX === 1 / 0 || 0 === s.globals.dataPoints) || (a.length ? a.forEach(function (a) {\n var s = i.getElTooltip(a),\n r = {\n paths: t.paths,\n tooltipEl: s,\n tooltipY: t.tooltipY,\n tooltipX: t.tooltipX,\n elGrid: t.elGrid,\n hoverArea: t.hoverArea,\n ttItems: a.w.globals.tooltip.ttItems\n };\n a.w.globals.minX === i.w.globals.minX && a.w.globals.maxX === i.w.globals.maxX && a.w.globals.tooltip.seriesHoverByContext({\n chartCtx: a,\n ttCtx: a.w.globals.tooltip,\n opt: r,\n e: e\n });\n }) : this.seriesHoverByContext({\n chartCtx: this.ctx,\n ttCtx: this.w.globals.tooltip,\n opt: t,\n e: e\n }));\n }\n }, {\n key: \"seriesHoverByContext\",\n value: function value(t) {\n var e = t.chartCtx,\n i = t.ttCtx,\n a = t.opt,\n s = t.e,\n r = e.w,\n n = this.getElTooltip();\n (i.tooltipRect = {\n x: 0,\n y: 0,\n ttWidth: n.getBoundingClientRect().width,\n ttHeight: n.getBoundingClientRect().height\n }, i.e = s, !i.tooltipUtil.hasBars() || r.globals.comboCharts || i.isBarShared) || this.tConfig.onDatasetHover.highlightDataSeries && new M(e).toggleSeriesOnHover(s, s.target.parentNode);\n i.fixedTooltip && i.drawFixedTooltipRect(), r.globals.axisCharts ? i.axisChartsTooltips({\n e: s,\n opt: a,\n tooltipRect: i.tooltipRect\n }) : i.nonAxisChartsTooltips({\n e: s,\n opt: a,\n tooltipRect: i.tooltipRect\n });\n }\n }, {\n key: \"axisChartsTooltips\",\n value: function value(t) {\n var e,\n i,\n a = t.e,\n s = t.opt,\n r = this.w,\n n = s.elGrid.getBoundingClientRect(),\n o = \"touchmove\" === a.type ? a.touches[0].clientX : a.clientX,\n l = \"touchmove\" === a.type ? a.touches[0].clientY : a.clientY;\n if (this.clientY = l, this.clientX = o, r.globals.capturedSeriesIndex = -1, r.globals.capturedDataPointIndex = -1, l < n.top || l > n.top + n.height) this.handleMouseOut(s);else {\n if (Array.isArray(this.tConfig.enabledOnSeries) && !r.config.tooltip.shared) {\n var h = parseInt(s.paths.getAttribute(\"index\"), 10);\n if (this.tConfig.enabledOnSeries.indexOf(h) < 0) return void this.handleMouseOut(s);\n }\n\n var c = this.getElTooltip(),\n d = this.getElXCrosshairs(),\n g = r.globals.xyCharts || \"bar\" === r.config.chart.type && !r.globals.isBarHorizontal && this.tooltipUtil.hasBars() && this.tConfig.shared || r.globals.comboCharts && this.tooltipUtil.hasBars();\n\n if (r.globals.isBarHorizontal && this.tooltipUtil.hasBars() && (g = !1), \"mousemove\" === a.type || \"touchmove\" === a.type || \"mouseup\" === a.type) {\n null !== d && d.classList.add(\"apexcharts-active\");\n var u = this.yaxisTooltips.filter(function (t) {\n return !0 === t;\n });\n if (null !== this.ycrosshairs && u.length && this.ycrosshairs.classList.add(\"apexcharts-active\"), g && !this.showOnIntersect) this.handleStickyTooltip(a, o, l, s);else if (\"heatmap\" === r.config.chart.type || \"treemap\" === r.config.chart.type) {\n var f = this.intersect.handleHeatTreeTooltip({\n e: a,\n opt: s,\n x: e,\n y: i,\n type: r.config.chart.type\n });\n e = f.x, i = f.y, c.style.left = e + \"px\", c.style.top = i + \"px\";\n } else this.tooltipUtil.hasBars() && this.intersect.handleBarTooltip({\n e: a,\n opt: s\n }), this.tooltipUtil.hasMarkers() && this.intersect.handleMarkerTooltip({\n e: a,\n opt: s,\n x: e,\n y: i\n });\n if (this.yaxisTooltips.length) for (var p = 0; p < r.config.yaxis.length; p++) {\n this.axesTooltip.drawYaxisTooltipText(p, l, this.xyRatios);\n }\n s.tooltipEl.classList.add(\"apexcharts-active\");\n } else \"mouseout\" !== a.type && \"touchend\" !== a.type || this.handleMouseOut(s);\n }\n }\n }, {\n key: \"nonAxisChartsTooltips\",\n value: function value(t) {\n var e = t.e,\n i = t.opt,\n a = t.tooltipRect,\n s = this.w,\n r = i.paths.getAttribute(\"rel\"),\n n = this.getElTooltip(),\n o = s.globals.dom.elWrap.getBoundingClientRect();\n\n if (\"mousemove\" === e.type || \"touchmove\" === e.type) {\n n.classList.add(\"apexcharts-active\"), this.tooltipLabels.drawSeriesTexts({\n ttItems: i.ttItems,\n i: parseInt(r, 10) - 1,\n shared: !1\n });\n var l = s.globals.clientX - o.left - a.ttWidth / 2,\n h = s.globals.clientY - o.top - a.ttHeight - 10;\n n.style.left = l + \"px\", n.style.top = h + \"px\";\n } else \"mouseout\" !== e.type && \"touchend\" !== e.type || n.classList.remove(\"apexcharts-active\");\n }\n }, {\n key: \"handleStickyTooltip\",\n value: function value(t, e, i, a) {\n var s = this.w,\n r = this.tooltipUtil.getNearestValues({\n context: this,\n hoverArea: a.hoverArea,\n elGrid: a.elGrid,\n clientX: e,\n clientY: i\n }),\n n = r.j,\n o = r.capturedSeries;\n r.hoverX < 0 || r.hoverX > s.globals.gridWidth ? this.handleMouseOut(a) : null !== o ? this.handleStickyCapturedSeries(t, o, a, n) : this.tooltipUtil.isXoverlap(n) && this.create(t, this, 0, n, a.ttItems);\n }\n }, {\n key: \"handleStickyCapturedSeries\",\n value: function value(t, e, i, a) {\n var s = this.w;\n null === s.globals.series[e][a] ? this.handleMouseOut(i) : void 0 !== s.globals.series[e][a] ? this.tConfig.shared && this.tooltipUtil.isXoverlap(a) && this.tooltipUtil.isInitialSeriesSameLen() ? this.create(t, this, e, a, i.ttItems) : this.create(t, this, e, a, i.ttItems, !1) : this.tooltipUtil.isXoverlap(a) && this.create(t, this, 0, a, i.ttItems);\n }\n }, {\n key: \"deactivateHoverFilter\",\n value: function value() {\n for (var t = this.w, e = new b(this.ctx), i = t.globals.dom.Paper.select(\".apexcharts-bar-area\"), a = 0; a < i.length; a++) {\n e.pathMouseLeave(i[a]);\n }\n }\n }, {\n key: \"handleMouseOut\",\n value: function value(t) {\n var e = this.w,\n i = this.getElXCrosshairs();\n\n if (t.tooltipEl.classList.remove(\"apexcharts-active\"), this.deactivateHoverFilter(), \"bubble\" !== e.config.chart.type && this.marker.resetPointsSize(), null !== i && i.classList.remove(\"apexcharts-active\"), null !== this.ycrosshairs && this.ycrosshairs.classList.remove(\"apexcharts-active\"), this.blxaxisTooltip && this.xaxisTooltip.classList.remove(\"apexcharts-active\"), this.yaxisTooltips.length) {\n null === this.yaxisTTEls && (this.yaxisTTEls = e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));\n\n for (var a = 0; a < this.yaxisTTEls.length; a++) {\n this.yaxisTTEls[a].classList.remove(\"apexcharts-active\");\n }\n }\n\n e.config.legend.tooltipHoverFormatter && this.legendLabels.forEach(function (t) {\n var e = t.getAttribute(\"data:default-text\");\n t.innerHTML = decodeURIComponent(e);\n });\n }\n }, {\n key: \"markerClick\",\n value: function value(t, e, i) {\n var a = this.w;\n \"function\" == typeof a.config.chart.events.markerClick && a.config.chart.events.markerClick(t, this.ctx, {\n seriesIndex: e,\n dataPointIndex: i,\n w: a\n }), this.ctx.events.fireEvent(\"markerClick\", [t, this.ctx, {\n seriesIndex: e,\n dataPointIndex: i,\n w: a\n }]);\n }\n }, {\n key: \"create\",\n value: function value(t, e, i, a, s) {\n var r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null,\n n = this.w,\n o = e;\n \"mouseup\" === t.type && this.markerClick(t, i, a), null === r && (r = this.tConfig.shared);\n var l = this.tooltipUtil.hasMarkers(),\n h = this.tooltipUtil.getElBars();\n\n if (n.config.legend.tooltipHoverFormatter) {\n var c = n.config.legend.tooltipHoverFormatter,\n d = Array.from(this.legendLabels);\n d.forEach(function (t) {\n var e = t.getAttribute(\"data:default-text\");\n t.innerHTML = decodeURIComponent(e);\n });\n\n for (var g = 0; g < d.length; g++) {\n var u = d[g],\n f = parseInt(u.getAttribute(\"i\"), 10),\n p = decodeURIComponent(u.getAttribute(\"data:default-text\")),\n x = c(p, {\n seriesIndex: r ? f : i,\n dataPointIndex: a,\n w: n\n });\n if (r) u.innerHTML = n.globals.collapsedSeriesIndices.indexOf(f) < 0 ? x : p;else if (u.innerHTML = f === i ? x : p, i === f) break;\n }\n }\n\n if (r) {\n if (o.tooltipLabels.drawSeriesTexts({\n ttItems: s,\n i: i,\n j: a,\n shared: !this.showOnIntersect && this.tConfig.shared\n }), l && (n.globals.markers.largestSize > 0 ? o.marker.enlargePoints(a) : o.tooltipPosition.moveDynamicPointsOnHover(a)), this.tooltipUtil.hasBars() && (this.barSeriesHeight = this.tooltipUtil.getBarsHeight(h), this.barSeriesHeight > 0)) {\n var m = new b(this.ctx),\n v = n.globals.dom.Paper.select(\".apexcharts-bar-area[j='\".concat(a, \"']\"));\n this.deactivateHoverFilter(), this.tooltipPosition.moveStickyTooltipOverBars(a);\n\n for (var y = 0; y < v.length; y++) {\n m.pathMouseEnter(v[y]);\n }\n }\n } else o.tooltipLabels.drawSeriesTexts({\n shared: !1,\n ttItems: s,\n i: i,\n j: a\n }), this.tooltipUtil.hasBars() && o.tooltipPosition.moveStickyTooltipOverBars(a), l && o.tooltipPosition.moveMarkers(i, a);\n }\n }]), t;\n}(),\n mt = function (t) {\n o(s, X);\n var i = d(s);\n\n function s() {\n return e(this, s), i.apply(this, arguments);\n }\n\n return a(s, [{\n key: \"draw\",\n value: function value(t, e) {\n var i = this,\n a = this.w;\n this.graphics = new b(this.ctx), this.bar = new X(this.ctx, this.xyRatios);\n var s = new y(this.ctx, a);\n t = s.getLogSeries(t), this.yRatio = s.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t), \"100%\" === a.config.chart.stackType && (t = a.globals.seriesPercent.slice()), this.series = t, this.totalItems = 0, this.prevY = [], this.prevX = [], this.prevYF = [], this.prevXF = [], this.prevYVal = [], this.prevXVal = [], this.xArrj = [], this.xArrjF = [], this.xArrjVal = [], this.yArrj = [], this.yArrjF = [], this.yArrjVal = [];\n\n for (var r = 0; r < t.length; r++) {\n t[r].length > 0 && (this.totalItems += t[r].length);\n }\n\n for (var o = this.graphics.group({\n class: \"apexcharts-bar-series apexcharts-plot-series\"\n }), l = 0, h = 0, c = function c(s, r) {\n var c = void 0,\n d = void 0,\n g = void 0,\n u = void 0,\n p = [],\n x = [],\n b = a.globals.comboCharts ? e[s] : s;\n i.yRatio.length > 1 && (i.yaxisIndex = b), i.isReversed = a.config.yaxis[i.yaxisIndex] && a.config.yaxis[i.yaxisIndex].reversed;\n var m = i.graphics.group({\n class: \"apexcharts-series\",\n seriesName: f.escapeString(a.globals.seriesNames[b]),\n rel: s + 1,\n \"data:realIndex\": b\n });\n i.ctx.series.addCollapsedClassToSeries(m, b);\n var v = i.graphics.group({\n class: \"apexcharts-datalabels\",\n \"data:realIndex\": b\n }),\n y = 0,\n w = 0,\n k = i.initialPositions(l, h, c, d, g, u);\n h = k.y, y = k.barHeight, d = k.yDivision, u = k.zeroW, l = k.x, w = k.barWidth, c = k.xDivision, g = k.zeroH, i.yArrj = [], i.yArrjF = [], i.yArrjVal = [], i.xArrj = [], i.xArrjF = [], i.xArrjVal = [], 1 === i.prevY.length && i.prevY[0].every(function (t) {\n return isNaN(t);\n }) && (i.prevY[0] = i.prevY[0].map(function (t) {\n return g;\n }), i.prevYF[0] = i.prevYF[0].map(function (t) {\n return 0;\n }));\n\n for (var A = 0; A < a.globals.dataPoints; A++) {\n var S = i.barHelpers.getStrokeWidth(s, A, b),\n C = {\n indexes: {\n i: s,\n j: A,\n realIndex: b,\n bc: r\n },\n strokeWidth: S,\n x: l,\n y: h,\n elSeries: m\n },\n L = null;\n i.isHorizontal ? (L = i.drawStackedBarPaths(n(n({}, C), {}, {\n zeroW: u,\n barHeight: y,\n yDivision: d\n })), w = i.series[s][A] / i.invertedYRatio) : (L = i.drawStackedColumnPaths(n(n({}, C), {}, {\n xDivision: c,\n barWidth: w,\n zeroH: g\n })), y = i.series[s][A] / i.yRatio[i.yaxisIndex]), h = L.y, l = L.x, p.push(l), x.push(h);\n var P = i.barHelpers.getPathFillColor(t, s, A, b);\n m = i.renderSeries({\n realIndex: b,\n pathFill: P,\n j: A,\n i: s,\n pathFrom: L.pathFrom,\n pathTo: L.pathTo,\n strokeWidth: S,\n elSeries: m,\n x: l,\n y: h,\n series: t,\n barHeight: y,\n barWidth: w,\n elDataLabelsWrap: v,\n type: \"bar\",\n visibleSeries: 0\n });\n }\n\n a.globals.seriesXvalues[b] = p, a.globals.seriesYvalues[b] = x, i.prevY.push(i.yArrj), i.prevYF.push(i.yArrjF), i.prevYVal.push(i.yArrjVal), i.prevX.push(i.xArrj), i.prevXF.push(i.xArrjF), i.prevXVal.push(i.xArrjVal), o.add(m);\n }, d = 0, g = 0; d < t.length; d++, g++) {\n c(d, g);\n }\n\n return o;\n }\n }, {\n key: \"initialPositions\",\n value: function value(t, e, i, a, s, r) {\n var n,\n o,\n l = this.w;\n return this.isHorizontal ? (n = (n = a = l.globals.gridHeight / l.globals.dataPoints) * parseInt(l.config.plotOptions.bar.barHeight, 10) / 100, r = this.baseLineInvertedY + l.globals.padHorizontal + (this.isReversed ? l.globals.gridWidth : 0) - (this.isReversed ? 2 * this.baseLineInvertedY : 0), e = (a - n) / 2) : (o = i = l.globals.gridWidth / l.globals.dataPoints, o = l.globals.isXNumeric && l.globals.dataPoints > 1 ? (i = l.globals.minXDiff / this.xRatio) * parseInt(this.barOptions.columnWidth, 10) / 100 : o * parseInt(l.config.plotOptions.bar.columnWidth, 10) / 100, s = this.baseLineY[this.yaxisIndex] + (this.isReversed ? l.globals.gridHeight : 0) - (this.isReversed ? 2 * this.baseLineY[this.yaxisIndex] : 0), t = l.globals.padHorizontal + (i - o) / 2), {\n x: t,\n y: e,\n yDivision: a,\n xDivision: i,\n barHeight: n,\n barWidth: o,\n zeroH: s,\n zeroW: r\n };\n }\n }, {\n key: \"drawStackedBarPaths\",\n value: function value(t) {\n for (var e, i = t.indexes, a = t.barHeight, s = t.strokeWidth, r = t.zeroW, n = t.x, o = t.y, l = t.yDivision, h = t.elSeries, c = this.w, d = o, g = i.i, u = i.j, f = 0, p = 0; p < this.prevXF.length; p++) {\n f += this.prevXF[p][u];\n }\n\n if (g > 0) {\n var x = r;\n this.prevXVal[g - 1][u] < 0 ? x = this.series[g][u] >= 0 ? this.prevX[g - 1][u] + f - 2 * (this.isReversed ? f : 0) : this.prevX[g - 1][u] : this.prevXVal[g - 1][u] >= 0 && (x = this.series[g][u] >= 0 ? this.prevX[g - 1][u] : this.prevX[g - 1][u] - f + 2 * (this.isReversed ? f : 0)), e = x;\n } else e = r;\n\n n = null === this.series[g][u] ? e : e + this.series[g][u] / this.invertedYRatio - 2 * (this.isReversed ? this.series[g][u] / this.invertedYRatio : 0), this.xArrj.push(n), this.xArrjF.push(Math.abs(e - n)), this.xArrjVal.push(this.series[g][u]);\n var b = this.barHelpers.getBarpaths({\n barYPosition: d,\n barHeight: a,\n x1: e,\n x2: n,\n strokeWidth: s,\n series: this.series,\n realIndex: i.realIndex,\n i: g,\n j: u,\n w: c\n });\n return this.barHelpers.barBackground({\n j: u,\n i: g,\n y1: d,\n y2: a,\n elSeries: h\n }), o += l, {\n pathTo: b.pathTo,\n pathFrom: b.pathFrom,\n x: n,\n y: o\n };\n }\n }, {\n key: \"drawStackedColumnPaths\",\n value: function value(t) {\n var e = t.indexes,\n i = t.x,\n a = t.y,\n s = t.xDivision,\n r = t.barWidth,\n n = t.zeroH,\n o = (t.strokeWidth, t.elSeries),\n l = this.w,\n h = e.i,\n c = e.j,\n d = e.bc;\n\n if (l.globals.isXNumeric) {\n var g = l.globals.seriesX[h][c];\n g || (g = 0), i = (g - l.globals.minX) / this.xRatio - r / 2;\n }\n\n for (var u, f = i, p = 0, x = 0; x < this.prevYF.length; x++) {\n p += isNaN(this.prevYF[x][c]) ? 0 : this.prevYF[x][c];\n }\n\n if (h > 0 && !l.globals.isXNumeric || h > 0 && l.globals.isXNumeric && l.globals.seriesX[h - 1][c] === l.globals.seriesX[h][c]) {\n var b,\n m,\n v = Math.min(this.yRatio.length + 1, h + 1);\n if (void 0 !== this.prevY[h - 1]) for (var y = 1; y < v; y++) {\n if (!isNaN(this.prevY[h - y][c])) {\n m = this.prevY[h - y][c];\n break;\n }\n }\n\n for (var w = 1; w < v; w++) {\n if (this.prevYVal[h - w][c] < 0) {\n b = this.series[h][c] >= 0 ? m - p + 2 * (this.isReversed ? p : 0) : m;\n break;\n }\n\n if (this.prevYVal[h - w][c] >= 0) {\n b = this.series[h][c] >= 0 ? m : m + p - 2 * (this.isReversed ? p : 0);\n break;\n }\n }\n\n void 0 === b && (b = l.globals.gridHeight), u = this.prevYF[0].every(function (t) {\n return 0 === t;\n }) && this.prevYF.slice(1, h).every(function (t) {\n return t.every(function (t) {\n return isNaN(t);\n });\n }) ? l.globals.gridHeight - n : b;\n } else u = l.globals.gridHeight - n;\n\n a = u - this.series[h][c] / this.yRatio[this.yaxisIndex] + 2 * (this.isReversed ? this.series[h][c] / this.yRatio[this.yaxisIndex] : 0), this.yArrj.push(a), this.yArrjF.push(Math.abs(u - a)), this.yArrjVal.push(this.series[h][c]);\n var k = this.barHelpers.getColumnPaths({\n barXPosition: f,\n barWidth: r,\n y1: u,\n y2: a,\n yRatio: this.yRatio[this.yaxisIndex],\n strokeWidth: this.strokeWidth,\n series: this.series,\n realIndex: e.realIndex,\n i: h,\n j: c,\n w: l\n });\n return this.barHelpers.barBackground({\n bc: d,\n j: c,\n i: h,\n x1: f,\n x2: r,\n elSeries: o\n }), i += s, {\n pathTo: k.pathTo,\n pathFrom: k.pathFrom,\n x: l.globals.isXNumeric ? i - s : i,\n y: a\n };\n }\n }]), s;\n}(),\n vt = function (t) {\n o(s, X);\n var i = d(s);\n\n function s() {\n return e(this, s), i.apply(this, arguments);\n }\n\n return a(s, [{\n key: \"draw\",\n value: function value(t, e) {\n var i = this.w,\n a = new b(this.ctx),\n s = new L(this.ctx);\n this.candlestickOptions = this.w.config.plotOptions.candlestick;\n var r = new y(this.ctx, i);\n t = r.getLogSeries(t), this.series = t, this.yRatio = r.getLogYRatios(this.yRatio), this.barHelpers.initVariables(t);\n\n for (var n = a.group({\n class: \"apexcharts-candlestick-series apexcharts-plot-series\"\n }), o = 0; o < t.length; o++) {\n var l,\n h,\n c = void 0,\n d = void 0,\n g = [],\n u = [],\n p = i.globals.comboCharts ? e[o] : o,\n x = a.group({\n class: \"apexcharts-series\",\n seriesName: f.escapeString(i.globals.seriesNames[p]),\n rel: o + 1,\n \"data:realIndex\": p\n });\n t[o].length > 0 && (this.visibleI = this.visibleI + 1);\n var m, v;\n this.yRatio.length > 1 && (this.yaxisIndex = p);\n var w = this.barHelpers.initialPositions();\n d = w.y, m = w.barHeight, c = w.x, v = w.barWidth, l = w.xDivision, h = w.zeroH, u.push(c + v / 2);\n\n for (var k = a.group({\n class: \"apexcharts-datalabels\",\n \"data:realIndex\": p\n }), A = 0; A < i.globals.dataPoints; A++) {\n var S,\n C = this.barHelpers.getStrokeWidth(o, A, p),\n P = this.drawCandleStickPaths({\n indexes: {\n i: o,\n j: A,\n realIndex: p\n },\n x: c,\n y: d,\n xDivision: l,\n barWidth: v,\n zeroH: h,\n strokeWidth: C,\n elSeries: x\n });\n d = P.y, c = P.x, S = P.color, A > 0 && u.push(c + v / 2), g.push(d);\n var T = s.fillPath({\n seriesNumber: p,\n dataPointIndex: A,\n color: S,\n value: t[o][A]\n }),\n z = this.candlestickOptions.wick.useFillColor ? S : void 0;\n this.renderSeries({\n realIndex: p,\n pathFill: T,\n lineFill: z,\n j: A,\n i: o,\n pathFrom: P.pathFrom,\n pathTo: P.pathTo,\n strokeWidth: C,\n elSeries: x,\n x: c,\n y: d,\n series: t,\n barHeight: m,\n barWidth: v,\n elDataLabelsWrap: k,\n visibleSeries: this.visibleI,\n type: \"candlestick\"\n });\n }\n\n i.globals.seriesXvalues[p] = u, i.globals.seriesYvalues[p] = g, n.add(x);\n }\n\n return n;\n }\n }, {\n key: \"drawCandleStickPaths\",\n value: function value(t) {\n var e = t.indexes,\n i = t.x,\n a = (t.y, t.xDivision),\n s = t.barWidth,\n r = t.zeroH,\n n = t.strokeWidth,\n o = this.w,\n l = new b(this.ctx),\n h = e.i,\n c = e.j,\n d = !0,\n g = o.config.plotOptions.candlestick.colors.upward,\n u = o.config.plotOptions.candlestick.colors.downward,\n f = this.yRatio[this.yaxisIndex],\n p = e.realIndex,\n x = this.getOHLCValue(p, c),\n m = r,\n v = r;\n x.o > x.c && (d = !1);\n var y = Math.min(x.o, x.c),\n w = Math.max(x.o, x.c);\n o.globals.isXNumeric && (i = (o.globals.seriesX[p][c] - o.globals.minX) / this.xRatio - s / 2);\n var k = i + s * this.visibleI;\n void 0 === this.series[h][c] || null === this.series[h][c] ? y = r : (y = r - y / f, w = r - w / f, m = r - x.h / f, v = r - x.l / f);\n var A = l.move(k, r),\n S = l.move(k, y);\n return o.globals.previousPaths.length > 0 && (S = this.getPreviousPath(p, c, !0)), A = l.move(k, w) + l.line(k + s / 2, w) + l.line(k + s / 2, m) + l.line(k + s / 2, w) + l.line(k + s, w) + l.line(k + s, y) + l.line(k + s / 2, y) + l.line(k + s / 2, v) + l.line(k + s / 2, y) + l.line(k, y) + l.line(k, w - n / 2), S += l.move(k, y), o.globals.isXNumeric || (i += a), {\n pathTo: A,\n pathFrom: S,\n x: i,\n y: w,\n barXPosition: k,\n color: d ? g : u\n };\n }\n }, {\n key: \"getOHLCValue\",\n value: function value(t, e) {\n var i = this.w;\n return {\n o: i.globals.seriesCandleO[t][e],\n h: i.globals.seriesCandleH[t][e],\n l: i.globals.seriesCandleL[t][e],\n c: i.globals.seriesCandleC[t][e]\n };\n }\n }]), s;\n}(),\n yt = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"checkColorRange\",\n value: function value() {\n var t = this.w,\n e = !1,\n i = t.config.plotOptions[t.config.chart.type];\n return i.colorScale.ranges.length > 0 && i.colorScale.ranges.map(function (t, i) {\n t.from <= 0 && (e = !0);\n }), e;\n }\n }, {\n key: \"getShadeColor\",\n value: function value(t, e, i, a) {\n var s = this.w,\n r = 1,\n n = s.config.plotOptions[t].shadeIntensity,\n o = this.determineColor(t, e, i);\n s.globals.hasNegs || a ? r = s.config.plotOptions[t].reverseNegativeShade ? o.percent < 0 ? o.percent / 100 * (1.25 * n) : (1 - o.percent / 100) * (1.25 * n) : o.percent <= 0 ? 1 - (1 + o.percent / 100) * n : (1 - o.percent / 100) * n : (r = 1 - o.percent / 100, \"treemap\" === t && (r = (1 - o.percent / 100) * (1.25 * n)));\n var l = o.color,\n h = new f();\n return s.config.plotOptions[t].enableShades && (r < 0 && (r = 0), l = \"dark\" === this.w.config.theme.mode ? f.hexToRgba(h.shadeColor(-1 * r, o.color), s.config.fill.opacity) : f.hexToRgba(h.shadeColor(r, o.color), s.config.fill.opacity)), {\n color: l,\n colorProps: o\n };\n }\n }, {\n key: \"determineColor\",\n value: function value(t, e, i) {\n var a = this.w,\n s = a.globals.series[e][i],\n r = a.config.plotOptions[t],\n n = r.colorScale.inverse ? i : e;\n a.config.plotOptions[t].distributed && (n = i);\n var o = a.globals.colors[n],\n l = null,\n h = Math.min.apply(Math, g(a.globals.series[e])),\n c = Math.max.apply(Math, g(a.globals.series[e]));\n r.distributed || \"heatmap\" !== t || (h = a.globals.minY, c = a.globals.maxY), void 0 !== r.colorScale.min && (h = r.colorScale.min < a.globals.minY ? r.colorScale.min : a.globals.minY, c = r.colorScale.max > a.globals.maxY ? r.colorScale.max : a.globals.maxY);\n var d = Math.abs(c) + Math.abs(h),\n u = 100 * s / (0 === d ? d - 1e-6 : d);\n r.colorScale.ranges.length > 0 && r.colorScale.ranges.map(function (t, e) {\n if (s >= t.from && s <= t.to) {\n o = t.color, l = t.foreColor ? t.foreColor : null, h = t.from, c = t.to;\n var i = Math.abs(c) + Math.abs(h);\n u = 100 * s / (0 === i ? i - 1e-6 : i);\n }\n });\n return {\n color: o,\n foreColor: l,\n percent: u\n };\n }\n }, {\n key: \"calculateDataLabels\",\n value: function value(t) {\n var e = t.text,\n i = t.x,\n a = t.y,\n s = t.i,\n r = t.j,\n n = t.colorProps,\n o = t.fontSize,\n l = this.w.config.dataLabels,\n h = new b(this.ctx),\n c = new z(this.ctx),\n d = null;\n\n if (l.enabled) {\n d = h.group({\n class: \"apexcharts-data-labels\"\n });\n var g = l.offsetX,\n u = l.offsetY,\n f = i + g,\n p = a + parseFloat(l.style.fontSize) / 3 + u;\n c.plotDataLabelsText({\n x: f,\n y: p,\n text: e,\n i: s,\n j: r,\n color: n.foreColor,\n parent: d,\n fontSize: o,\n dataLabelsConfig: l\n });\n }\n\n return d;\n }\n }, {\n key: \"addListeners\",\n value: function value(t) {\n var e = new b(this.ctx);\n t.node.addEventListener(\"mouseenter\", e.pathMouseEnter.bind(this, t)), t.node.addEventListener(\"mouseleave\", e.pathMouseLeave.bind(this, t)), t.node.addEventListener(\"mousedown\", e.pathMouseDown.bind(this, t));\n }\n }]), t;\n}(),\n wt = function () {\n function t(i, a) {\n e(this, t), this.ctx = i, this.w = i.w, this.xRatio = a.xRatio, this.yRatio = a.yRatio, this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.helpers = new yt(i), this.rectRadius = this.w.config.plotOptions.heatmap.radius, this.strokeWidth = this.w.config.stroke.show ? this.w.config.stroke.width : 0;\n }\n\n return a(t, [{\n key: \"draw\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx),\n a = i.group({\n class: \"apexcharts-heatmap\"\n });\n a.attr(\"clip-path\", \"url(#gridRectMask\".concat(e.globals.cuid, \")\"));\n var s = e.globals.gridWidth / e.globals.dataPoints,\n r = e.globals.gridHeight / e.globals.series.length,\n n = 0,\n o = !1;\n this.negRange = this.helpers.checkColorRange();\n var l = t.slice();\n e.config.yaxis[0].reversed && (o = !0, l.reverse());\n\n for (var h = o ? 0 : l.length - 1; o ? h < l.length : h >= 0; o ? h++ : h--) {\n var c = i.group({\n class: \"apexcharts-series apexcharts-heatmap-series\",\n seriesName: f.escapeString(e.globals.seriesNames[h]),\n rel: h + 1,\n \"data:realIndex\": h\n });\n\n if (this.ctx.series.addCollapsedClassToSeries(c, h), e.config.chart.dropShadow.enabled) {\n var d = e.config.chart.dropShadow;\n new p(this.ctx).dropShadow(c, d, h);\n }\n\n for (var g = 0, u = e.config.plotOptions.heatmap.shadeIntensity, x = 0; x < l[h].length; x++) {\n var m = this.helpers.getShadeColor(e.config.chart.type, h, x, this.negRange),\n v = m.color,\n y = m.colorProps;\n if (\"image\" === e.config.fill.type) v = new L(this.ctx).fillPath({\n seriesNumber: h,\n dataPointIndex: x,\n opacity: e.globals.hasNegs ? y.percent < 0 ? 1 - (1 + y.percent / 100) : u + y.percent / 100 : y.percent / 100,\n patternID: f.randomId(),\n width: e.config.fill.image.width ? e.config.fill.image.width : s,\n height: e.config.fill.image.height ? e.config.fill.image.height : r\n });\n var w = this.rectRadius,\n k = i.drawRect(g, n, s, r, w);\n\n if (k.attr({\n cx: g,\n cy: n\n }), k.node.classList.add(\"apexcharts-heatmap-rect\"), c.add(k), k.attr({\n fill: v,\n i: h,\n index: h,\n j: x,\n val: l[h][x],\n \"stroke-width\": this.strokeWidth,\n stroke: e.config.plotOptions.heatmap.useFillColorAsStroke ? v : e.globals.stroke.colors[0],\n color: v\n }), this.helpers.addListeners(k), e.config.chart.animations.enabled && !e.globals.dataChanged) {\n var A = 1;\n e.globals.resized || (A = e.config.chart.animations.speed), this.animateHeatMap(k, g, n, s, r, A);\n }\n\n if (e.globals.dataChanged) {\n var S = 1;\n\n if (this.dynamicAnim.enabled && e.globals.shouldAnimate) {\n S = this.dynamicAnim.speed;\n var C = e.globals.previousPaths[h] && e.globals.previousPaths[h][x] && e.globals.previousPaths[h][x].color;\n C || (C = \"rgba(255, 255, 255, 0)\"), this.animateHeatColor(k, f.isColorHex(C) ? C : f.rgb2hex(C), f.isColorHex(v) ? v : f.rgb2hex(v), S);\n }\n }\n\n var P = (0, e.config.dataLabels.formatter)(e.globals.series[h][x], {\n value: e.globals.series[h][x],\n seriesIndex: h,\n dataPointIndex: x,\n w: e\n }),\n T = this.helpers.calculateDataLabels({\n text: P,\n x: g + s / 2,\n y: n + r / 2,\n i: h,\n j: x,\n colorProps: y,\n series: l\n });\n null !== T && c.add(T), g += s;\n }\n\n n += r, a.add(c);\n }\n\n var z = e.globals.yAxisScale[0].result.slice();\n e.config.yaxis[0].reversed ? z.unshift(\"\") : z.push(\"\"), e.globals.yAxisScale[0].result = z;\n var I = e.globals.gridHeight / e.globals.series.length;\n return e.config.yaxis[0].labels.offsetY = -I / 2, a;\n }\n }, {\n key: \"animateHeatMap\",\n value: function value(t, e, i, a, s, r) {\n var n = new x(this.ctx);\n n.animateRect(t, {\n x: e + a / 2,\n y: i + s / 2,\n width: 0,\n height: 0\n }, {\n x: e,\n y: i,\n width: a,\n height: s\n }, r, function () {\n n.animationCompleted(t);\n });\n }\n }, {\n key: \"animateHeatColor\",\n value: function value(t, e, i, a) {\n t.attr({\n fill: e\n }).animate(a).attr({\n fill: i\n });\n }\n }]), t;\n}(),\n kt = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"drawYAxisTexts\",\n value: function value(t, e, i, a) {\n var s = this.w,\n r = s.config.yaxis[0],\n n = s.globals.yLabelFormatters[0];\n return new b(this.ctx).drawText({\n x: t + r.labels.offsetX,\n y: e + r.labels.offsetY,\n text: n(a, i),\n textAnchor: \"middle\",\n fontSize: r.labels.style.fontSize,\n fontFamily: r.labels.style.fontFamily,\n foreColor: Array.isArray(r.labels.style.colors) ? r.labels.style.colors[i] : r.labels.style.colors\n });\n }\n }]), t;\n}(),\n At = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n var a = this.w;\n this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animBeginArr = [0], this.animDur = 0, this.donutDataLabels = this.w.config.plotOptions.pie.donut.labels, this.lineColorArr = void 0 !== a.globals.stroke.colors ? a.globals.stroke.colors : a.globals.colors, this.defaultSize = Math.min(a.globals.gridWidth, a.globals.gridHeight), this.centerY = this.defaultSize / 2, this.centerX = a.globals.gridWidth / 2, \"radialBar\" === a.config.chart.type ? this.fullAngle = 360 : this.fullAngle = Math.abs(a.config.plotOptions.pie.endAngle - a.config.plotOptions.pie.startAngle), this.initialAngle = a.config.plotOptions.pie.startAngle % this.fullAngle, a.globals.radialSize = this.defaultSize / 2.05 - a.config.stroke.width - (a.config.chart.sparkline.enabled ? 0 : a.config.chart.dropShadow.blur), this.donutSize = a.globals.radialSize * parseInt(a.config.plotOptions.pie.donut.size, 10) / 100, this.maxY = 0, this.sliceLabels = [], this.sliceSizes = [], this.prevSectorAngleArr = [];\n }\n\n return a(t, [{\n key: \"draw\",\n value: function value(t) {\n var e = this,\n i = this.w,\n a = new b(this.ctx);\n if (this.ret = a.group({\n class: \"apexcharts-pie\"\n }), i.globals.noData) return this.ret;\n\n for (var s = 0, r = 0; r < t.length; r++) {\n s += f.negToZero(t[r]);\n }\n\n var n = [],\n o = a.group();\n 0 === s && (s = 1e-5), t.forEach(function (t) {\n e.maxY = Math.max(e.maxY, t);\n }), i.config.yaxis[0].max && (this.maxY = i.config.yaxis[0].max), \"polarArea\" === this.chartType && this.drawPolarElements();\n\n for (var l = 0; l < t.length; l++) {\n var h = this.fullAngle * f.negToZero(t[l]) / s;\n n.push(h), \"polarArea\" === this.chartType ? (n[l] = this.fullAngle / t.length, this.sliceSizes.push(i.globals.radialSize * t[l] / this.maxY)) : this.sliceSizes.push(i.globals.radialSize);\n }\n\n if (i.globals.dataChanged) {\n for (var c, d = 0, g = 0; g < i.globals.previousPaths.length; g++) {\n d += f.negToZero(i.globals.previousPaths[g]);\n }\n\n for (var u = 0; u < i.globals.previousPaths.length; u++) {\n c = this.fullAngle * f.negToZero(i.globals.previousPaths[u]) / d, this.prevSectorAngleArr.push(c);\n }\n }\n\n this.donutSize < 0 && (this.donutSize = 0);\n var p = i.config.plotOptions.pie.customScale,\n x = i.globals.gridWidth / 2,\n m = i.globals.gridHeight / 2,\n v = x - i.globals.gridWidth / 2 * p,\n y = m - i.globals.gridHeight / 2 * p;\n\n if (\"donut\" === this.chartType) {\n var w = a.drawCircle(this.donutSize);\n w.attr({\n cx: this.centerX,\n cy: this.centerY,\n fill: i.config.plotOptions.pie.donut.background ? i.config.plotOptions.pie.donut.background : \"transparent\"\n }), o.add(w);\n }\n\n var k = this.drawArcs(n, t);\n\n if (this.sliceLabels.forEach(function (t) {\n k.add(t);\n }), o.attr({\n transform: \"translate(\".concat(v, \", \").concat(y, \") scale(\").concat(p, \")\")\n }), o.add(k), this.ret.add(o), this.donutDataLabels.show) {\n var A = this.renderInnerDataLabels(this.donutDataLabels, {\n hollowSize: this.donutSize,\n centerX: this.centerX,\n centerY: this.centerY,\n opacity: this.donutDataLabels.show,\n translateX: v,\n translateY: y\n });\n this.ret.add(A);\n }\n\n return this.ret;\n }\n }, {\n key: \"drawArcs\",\n value: function value(t, e) {\n var i = this.w,\n a = new p(this.ctx),\n s = new b(this.ctx),\n r = new L(this.ctx),\n n = s.group({\n class: \"apexcharts-slices\"\n }),\n o = this.initialAngle,\n l = this.initialAngle,\n h = this.initialAngle,\n c = this.initialAngle;\n this.strokeWidth = i.config.stroke.show ? i.config.stroke.width : 0;\n\n for (var d = 0; d < t.length; d++) {\n var g = s.group({\n class: \"apexcharts-series apexcharts-pie-series\",\n seriesName: f.escapeString(i.globals.seriesNames[d]),\n rel: d + 1,\n \"data:realIndex\": d\n });\n n.add(g), l = c, h = (o = h) + t[d], c = l + this.prevSectorAngleArr[d];\n var u = h < o ? this.fullAngle + h - o : h - o,\n x = r.fillPath({\n seriesNumber: d,\n size: this.sliceSizes[d],\n value: e[d]\n }),\n m = this.getChangedPath(l, c),\n v = s.drawPath({\n d: m,\n stroke: Array.isArray(this.lineColorArr) ? this.lineColorArr[d] : this.lineColorArr,\n strokeWidth: 0,\n fill: x,\n fillOpacity: i.config.fill.opacity,\n classes: \"apexcharts-pie-area apexcharts-\".concat(this.chartType.toLowerCase(), \"-slice-\").concat(d)\n });\n\n if (v.attr({\n index: 0,\n j: d\n }), i.config.chart.dropShadow.enabled) {\n var y = i.config.chart.dropShadow;\n a.dropShadow(v, y, d);\n }\n\n this.addListeners(v, this.donutDataLabels), b.setAttrs(v.node, {\n \"data:angle\": u,\n \"data:startAngle\": o,\n \"data:strokeWidth\": this.strokeWidth,\n \"data:value\": e[d]\n });\n var w = {\n x: 0,\n y: 0\n };\n \"pie\" === this.chartType || \"polarArea\" === this.chartType ? w = f.polarToCartesian(this.centerX, this.centerY, i.globals.radialSize / 1.25 + i.config.plotOptions.pie.dataLabels.offset, (o + u / 2) % this.fullAngle) : \"donut\" === this.chartType && (w = f.polarToCartesian(this.centerX, this.centerY, (i.globals.radialSize + this.donutSize) / 2 + i.config.plotOptions.pie.dataLabels.offset, (o + u / 2) % this.fullAngle)), g.add(v);\n var k = 0;\n\n if (!this.initialAnim || i.globals.resized || i.globals.dataChanged ? this.animBeginArr.push(0) : (0 === (k = u / this.fullAngle * i.config.chart.animations.speed) && (k = 1), this.animDur = k + this.animDur, this.animBeginArr.push(this.animDur)), this.dynamicAnim && i.globals.dataChanged ? this.animatePaths(v, {\n size: this.sliceSizes[d],\n endAngle: h,\n startAngle: o,\n prevStartAngle: l,\n prevEndAngle: c,\n animateStartingPos: !0,\n i: d,\n animBeginArr: this.animBeginArr,\n shouldSetPrevPaths: !0,\n dur: i.config.chart.animations.dynamicAnimation.speed\n }) : this.animatePaths(v, {\n size: this.sliceSizes[d],\n endAngle: h,\n startAngle: o,\n i: d,\n totalItems: t.length - 1,\n animBeginArr: this.animBeginArr,\n dur: k\n }), i.config.plotOptions.pie.expandOnClick && \"polarArea\" !== this.chartType && v.click(this.pieClicked.bind(this, d)), i.config.dataLabels.enabled) {\n var A = w.x,\n S = w.y,\n C = 100 * u / this.fullAngle + \"%\";\n\n if (0 !== u && i.config.plotOptions.pie.dataLabels.minAngleToShowLabel < t[d]) {\n var P = i.config.dataLabels.formatter;\n void 0 !== P && (C = P(i.globals.seriesPercent[d][0], {\n seriesIndex: d,\n w: i\n }));\n var T = i.globals.dataLabels.style.colors[d],\n z = s.group({\n class: \"apexcharts-datalabels\"\n }),\n I = s.drawText({\n x: A,\n y: S,\n text: C,\n textAnchor: \"middle\",\n fontSize: i.config.dataLabels.style.fontSize,\n fontFamily: i.config.dataLabels.style.fontFamily,\n fontWeight: i.config.dataLabels.style.fontWeight,\n foreColor: T\n });\n\n if (z.add(I), i.config.dataLabels.dropShadow.enabled) {\n var M = i.config.dataLabels.dropShadow;\n a.dropShadow(I, M);\n }\n\n I.node.classList.add(\"apexcharts-pie-label\"), i.config.chart.animations.animate && !1 === i.globals.resized && (I.node.classList.add(\"apexcharts-pie-label-delay\"), I.node.style.animationDelay = i.config.chart.animations.speed / 940 + \"s\"), this.sliceLabels.push(z);\n }\n }\n }\n\n return n;\n }\n }, {\n key: \"addListeners\",\n value: function value(t, e) {\n var i = new b(this.ctx);\n t.node.addEventListener(\"mouseenter\", i.pathMouseEnter.bind(this, t)), t.node.addEventListener(\"mouseleave\", i.pathMouseLeave.bind(this, t)), t.node.addEventListener(\"mouseleave\", this.revertDataLabelsInner.bind(this, t.node, e)), t.node.addEventListener(\"mousedown\", i.pathMouseDown.bind(this, t)), this.donutDataLabels.total.showAlways || (t.node.addEventListener(\"mouseenter\", this.printDataLabelsInner.bind(this, t.node, e)), t.node.addEventListener(\"mousedown\", this.printDataLabelsInner.bind(this, t.node, e)));\n }\n }, {\n key: \"animatePaths\",\n value: function value(t, e) {\n var i = this.w,\n a = e.endAngle < e.startAngle ? this.fullAngle + e.endAngle - e.startAngle : e.endAngle - e.startAngle,\n s = a,\n r = e.startAngle,\n n = e.startAngle;\n void 0 !== e.prevStartAngle && void 0 !== e.prevEndAngle && (r = e.prevEndAngle, s = e.prevEndAngle < e.prevStartAngle ? this.fullAngle + e.prevEndAngle - e.prevStartAngle : e.prevEndAngle - e.prevStartAngle), e.i === i.config.series.length - 1 && (a + n > this.fullAngle ? e.endAngle = e.endAngle - (a + n) : a + n < this.fullAngle && (e.endAngle = e.endAngle + (this.fullAngle - (a + n)))), a === this.fullAngle && (a = this.fullAngle - .01), this.animateArc(t, r, n, a, s, e);\n }\n }, {\n key: \"animateArc\",\n value: function value(t, e, i, a, s, r) {\n var n,\n o = this,\n l = this.w,\n h = new x(this.ctx),\n c = r.size;\n (isNaN(e) || isNaN(s)) && (e = i, s = a, r.dur = 0);\n var d = a,\n g = i,\n u = e < i ? this.fullAngle + e - i : e - i;\n l.globals.dataChanged && r.shouldSetPrevPaths && r.prevEndAngle && (n = o.getPiePath({\n me: o,\n startAngle: r.prevStartAngle,\n angle: r.prevEndAngle < r.prevStartAngle ? this.fullAngle + r.prevEndAngle - r.prevStartAngle : r.prevEndAngle - r.prevStartAngle,\n size: c\n }), t.attr({\n d: n\n })), 0 !== r.dur ? t.animate(r.dur, l.globals.easing, r.animBeginArr[r.i]).afterAll(function () {\n \"pie\" !== o.chartType && \"donut\" !== o.chartType && \"polarArea\" !== o.chartType || this.animate(l.config.chart.animations.dynamicAnimation.speed).attr({\n \"stroke-width\": o.strokeWidth\n }), r.i === l.config.series.length - 1 && h.animationCompleted(t);\n }).during(function (l) {\n d = u + (a - u) * l, r.animateStartingPos && (d = s + (a - s) * l, g = e - s + (i - (e - s)) * l), n = o.getPiePath({\n me: o,\n startAngle: g,\n angle: d,\n size: c\n }), t.node.setAttribute(\"data:pathOrig\", n), t.attr({\n d: n\n });\n }) : (n = o.getPiePath({\n me: o,\n startAngle: g,\n angle: a,\n size: c\n }), r.isTrack || (l.globals.animationEnded = !0), t.node.setAttribute(\"data:pathOrig\", n), t.attr({\n d: n,\n \"stroke-width\": o.strokeWidth\n }));\n }\n }, {\n key: \"pieClicked\",\n value: function value(t) {\n var e,\n i = this.w,\n a = this,\n s = a.sliceSizes[t] + (i.config.plotOptions.pie.expandOnClick ? 4 : 0),\n r = i.globals.dom.Paper.select(\".apexcharts-\".concat(a.chartType.toLowerCase(), \"-slice-\").concat(t)).members[0];\n\n if (\"true\" !== r.attr(\"data:pieClicked\")) {\n var n = i.globals.dom.baseEl.getElementsByClassName(\"apexcharts-pie-area\");\n Array.prototype.forEach.call(n, function (t) {\n t.setAttribute(\"data:pieClicked\", \"false\");\n var e = t.getAttribute(\"data:pathOrig\");\n t.setAttribute(\"d\", e);\n }), r.attr(\"data:pieClicked\", \"true\");\n var o = parseInt(r.attr(\"data:startAngle\"), 10),\n l = parseInt(r.attr(\"data:angle\"), 10);\n e = a.getPiePath({\n me: a,\n startAngle: o,\n angle: l,\n size: s\n }), 360 !== l && r.plot(e);\n } else {\n r.attr({\n \"data:pieClicked\": \"false\"\n }), this.revertDataLabelsInner(r.node, this.donutDataLabels);\n var h = r.attr(\"data:pathOrig\");\n r.attr({\n d: h\n });\n }\n }\n }, {\n key: \"getChangedPath\",\n value: function value(t, e) {\n var i = \"\";\n return this.dynamicAnim && this.w.globals.dataChanged && (i = this.getPiePath({\n me: this,\n startAngle: t,\n angle: e - t,\n size: this.size\n })), i;\n }\n }, {\n key: \"getPiePath\",\n value: function value(t) {\n var e = t.me,\n i = t.startAngle,\n a = t.angle,\n s = t.size,\n r = i,\n n = Math.PI * (r - 90) / 180,\n o = a + i;\n Math.ceil(o) >= this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle && (o = this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle - .01), Math.ceil(o) > this.fullAngle && (o -= this.fullAngle);\n var l = Math.PI * (o - 90) / 180,\n h = e.centerX + s * Math.cos(n),\n c = e.centerY + s * Math.sin(n),\n d = e.centerX + s * Math.cos(l),\n g = e.centerY + s * Math.sin(l),\n u = f.polarToCartesian(e.centerX, e.centerY, e.donutSize, o),\n p = f.polarToCartesian(e.centerX, e.centerY, e.donutSize, r),\n x = a > 180 ? 1 : 0,\n b = [\"M\", h, c, \"A\", s, s, 0, x, 1, d, g];\n return \"donut\" === e.chartType ? [].concat(b, [\"L\", u.x, u.y, \"A\", e.donutSize, e.donutSize, 0, x, 0, p.x, p.y, \"L\", h, c, \"z\"]).join(\" \") : \"pie\" === e.chartType || \"polarArea\" === e.chartType ? [].concat(b, [\"L\", e.centerX, e.centerY, \"L\", h, c]).join(\" \") : [].concat(b).join(\" \");\n }\n }, {\n key: \"drawPolarElements\",\n value: function value() {\n var t = this.w,\n e = new j(this.ctx),\n i = new b(this.ctx),\n a = new kt(this.ctx),\n s = i.group(),\n r = i.group(),\n n = e.niceScale(0, Math.ceil(this.maxY), t.config.yaxis[0].tickAmount, 0, !0),\n o = n.result.reverse(),\n l = n.result.length;\n this.maxY = n.niceMax;\n\n for (var h = t.globals.radialSize, c = h / (l - 1), d = 0; d < l - 1; d++) {\n var g = i.drawCircle(h);\n\n if (g.attr({\n cx: this.centerX,\n cy: this.centerY,\n fill: \"none\",\n \"stroke-width\": t.config.plotOptions.polarArea.rings.strokeWidth,\n stroke: t.config.plotOptions.polarArea.rings.strokeColor\n }), t.config.yaxis[0].show) {\n var u = a.drawYAxisTexts(this.centerX, this.centerY - h + parseInt(t.config.yaxis[0].labels.style.fontSize, 10) / 2, d, o[d]);\n r.add(u);\n }\n\n s.add(g), h -= c;\n }\n\n this.ret.add(s), this.ret.add(r);\n }\n }, {\n key: \"renderInnerDataLabels\",\n value: function value(t, e) {\n var i = this.w,\n a = new b(this.ctx),\n s = a.group({\n class: \"apexcharts-datalabels-group\",\n transform: \"translate(\".concat(e.translateX ? e.translateX : 0, \", \").concat(e.translateY ? e.translateY : 0, \") scale(\").concat(i.config.plotOptions.pie.customScale, \")\")\n }),\n r = t.total.show;\n s.node.style.opacity = e.opacity;\n var n,\n o,\n l = e.centerX,\n h = e.centerY;\n n = void 0 === t.name.color ? i.globals.colors[0] : t.name.color;\n var c = t.name.fontSize,\n d = t.name.fontFamily,\n g = t.value.fontWeight;\n o = void 0 === t.value.color ? i.config.chart.foreColor : t.value.color;\n var u = t.value.formatter,\n f = \"\",\n p = \"\";\n\n if (r ? (n = t.total.color, c = t.total.fontSize, d = t.total.fontFamily, g = t.total.fontWeight, p = t.total.label, f = t.total.formatter(i)) : 1 === i.globals.series.length && (f = u(i.globals.series[0], i), p = i.globals.seriesNames[0]), p && (p = t.name.formatter(p, t.total.show, i)), t.name.show) {\n var x = a.drawText({\n x: l,\n y: h + parseFloat(t.name.offsetY),\n text: p,\n textAnchor: \"middle\",\n foreColor: n,\n fontSize: c,\n fontWeight: g,\n fontFamily: d\n });\n x.node.classList.add(\"apexcharts-datalabel-label\"), s.add(x);\n }\n\n if (t.value.show) {\n var m = t.name.show ? parseFloat(t.value.offsetY) + 16 : t.value.offsetY,\n v = a.drawText({\n x: l,\n y: h + m,\n text: f,\n textAnchor: \"middle\",\n foreColor: o,\n fontWeight: t.value.fontWeight,\n fontSize: t.value.fontSize,\n fontFamily: t.value.fontFamily\n });\n v.node.classList.add(\"apexcharts-datalabel-value\"), s.add(v);\n }\n\n return s;\n }\n }, {\n key: \"printInnerLabels\",\n value: function value(t, e, i, a) {\n var s,\n r = this.w;\n a ? s = void 0 === t.name.color ? r.globals.colors[parseInt(a.parentNode.getAttribute(\"rel\"), 10) - 1] : t.name.color : r.globals.series.length > 1 && t.total.show && (s = t.total.color);\n var n = r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-label\"),\n o = r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-value\");\n i = (0, t.value.formatter)(i, r), a || \"function\" != typeof t.total.formatter || (i = t.total.formatter(r));\n var l = e === t.total.label;\n e = t.name.formatter(e, l, r), null !== n && (n.textContent = e), null !== o && (o.textContent = i), null !== n && (n.style.fill = s);\n }\n }, {\n key: \"printDataLabelsInner\",\n value: function value(t, e) {\n var i = this.w,\n a = t.getAttribute(\"data:value\"),\n s = i.globals.seriesNames[parseInt(t.parentNode.getAttribute(\"rel\"), 10) - 1];\n i.globals.series.length > 1 && this.printInnerLabels(e, s, a, t);\n var r = i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\");\n null !== r && (r.style.opacity = 1);\n }\n }, {\n key: \"revertDataLabelsInner\",\n value: function value(t, e, i) {\n var a = this,\n s = this.w,\n r = s.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\"),\n n = !1,\n o = s.globals.dom.baseEl.getElementsByClassName(\"apexcharts-pie-area\"),\n l = function l(t) {\n var i = t.makeSliceOut,\n s = t.printLabel;\n Array.prototype.forEach.call(o, function (t) {\n \"true\" === t.getAttribute(\"data:pieClicked\") && (i && (n = !0), s && a.printDataLabelsInner(t, e));\n });\n };\n\n if (l({\n makeSliceOut: !0,\n printLabel: !1\n }), e.total.show && s.globals.series.length > 1) n && !e.total.showAlways ? l({\n makeSliceOut: !1,\n printLabel: !0\n }) : this.printInnerLabels(e, e.total.label, e.total.formatter(s));else if (l({\n makeSliceOut: !1,\n printLabel: !0\n }), !n) if (s.globals.selectedDataPoints.length && s.globals.series.length > 1) {\n if (s.globals.selectedDataPoints[0].length > 0) {\n var h = s.globals.selectedDataPoints[0],\n c = s.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(this.chartType.toLowerCase(), \"-slice-\").concat(h));\n this.printDataLabelsInner(c, e);\n } else r && s.globals.selectedDataPoints.length && 0 === s.globals.selectedDataPoints[0].length && (r.style.opacity = 0);\n } else r && s.globals.series.length > 1 && (r.style.opacity = 0);\n }\n }]), t;\n}(),\n St = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animDur = 0;\n var a = this.w;\n this.graphics = new b(this.ctx), this.lineColorArr = void 0 !== a.globals.stroke.colors ? a.globals.stroke.colors : a.globals.colors, this.defaultSize = a.globals.svgHeight < a.globals.svgWidth ? a.globals.gridHeight + 1.5 * a.globals.goldenPadding : a.globals.gridWidth, this.isLog = a.config.yaxis[0].logarithmic, this.coreUtils = new y(this.ctx), this.maxValue = this.isLog ? this.coreUtils.getLogVal(a.globals.maxY, 0) : a.globals.maxY, this.minValue = this.isLog ? this.coreUtils.getLogVal(this.w.globals.minY, 0) : a.globals.minY, this.polygons = a.config.plotOptions.radar.polygons, this.strokeWidth = a.config.stroke.show ? a.config.stroke.width : 0, this.size = this.defaultSize / 2.1 - this.strokeWidth - a.config.chart.dropShadow.blur, a.config.xaxis.labels.show && (this.size = this.size - a.globals.xAxisLabelsWidth / 1.75), void 0 !== a.config.plotOptions.radar.size && (this.size = a.config.plotOptions.radar.size), this.dataRadiusOfPercent = [], this.dataRadius = [], this.angleArr = [], this.yaxisLabelsTextsPos = [];\n }\n\n return a(t, [{\n key: \"draw\",\n value: function value(t) {\n var e = this,\n i = this.w,\n a = new L(this.ctx),\n s = [],\n r = new z(this.ctx);\n t.length && (this.dataPointsLen = t[i.globals.maxValsInArrayIndex].length), this.disAngle = 2 * Math.PI / this.dataPointsLen;\n var o = i.globals.gridWidth / 2,\n l = i.globals.gridHeight / 2,\n h = o + i.config.plotOptions.radar.offsetX,\n c = l + i.config.plotOptions.radar.offsetY,\n d = this.graphics.group({\n class: \"apexcharts-radar-series apexcharts-plot-series\",\n transform: \"translate(\".concat(h || 0, \", \").concat(c || 0, \")\")\n }),\n g = [],\n u = null,\n x = null;\n\n if (this.yaxisLabels = this.graphics.group({\n class: \"apexcharts-yaxis\"\n }), t.forEach(function (t, o) {\n var l = t.length === i.globals.dataPoints,\n h = e.graphics.group().attr({\n class: \"apexcharts-series\",\n \"data:longestSeries\": l,\n seriesName: f.escapeString(i.globals.seriesNames[o]),\n rel: o + 1,\n \"data:realIndex\": o\n });\n e.dataRadiusOfPercent[o] = [], e.dataRadius[o] = [], e.angleArr[o] = [], t.forEach(function (t, i) {\n var a = Math.abs(e.maxValue - e.minValue);\n t += Math.abs(e.minValue), e.isLog && (t = e.coreUtils.getLogVal(t, 0)), e.dataRadiusOfPercent[o][i] = t / a, e.dataRadius[o][i] = e.dataRadiusOfPercent[o][i] * e.size, e.angleArr[o][i] = i * e.disAngle;\n }), g = e.getDataPointsPos(e.dataRadius[o], e.angleArr[o]);\n var c = e.createPaths(g, {\n x: 0,\n y: 0\n });\n u = e.graphics.group({\n class: \"apexcharts-series-markers-wrap apexcharts-element-hidden\"\n }), x = e.graphics.group({\n class: \"apexcharts-datalabels\",\n \"data:realIndex\": o\n }), i.globals.delayedElements.push({\n el: u.node,\n index: o\n });\n var d = {\n i: o,\n realIndex: o,\n animationDelay: o,\n initialSpeed: i.config.chart.animations.speed,\n dataChangeSpeed: i.config.chart.animations.dynamicAnimation.speed,\n className: \"apexcharts-radar\",\n shouldClipToGrid: !1,\n bindEventsOnPaths: !1,\n stroke: i.globals.stroke.colors[o],\n strokeLineCap: i.config.stroke.lineCap\n },\n b = null;\n i.globals.previousPaths.length > 0 && (b = e.getPreviousPath(o));\n\n for (var m = 0; m < c.linePathsTo.length; m++) {\n var v = e.graphics.renderPaths(n(n({}, d), {}, {\n pathFrom: null === b ? c.linePathsFrom[m] : b,\n pathTo: c.linePathsTo[m],\n strokeWidth: Array.isArray(e.strokeWidth) ? e.strokeWidth[o] : e.strokeWidth,\n fill: \"none\",\n drawShadow: !1\n }));\n h.add(v);\n var y = a.fillPath({\n seriesNumber: o\n }),\n w = e.graphics.renderPaths(n(n({}, d), {}, {\n pathFrom: null === b ? c.areaPathsFrom[m] : b,\n pathTo: c.areaPathsTo[m],\n strokeWidth: 0,\n fill: y,\n drawShadow: !1\n }));\n\n if (i.config.chart.dropShadow.enabled) {\n var k = new p(e.ctx),\n A = i.config.chart.dropShadow;\n k.dropShadow(w, Object.assign({}, A, {\n noUserSpaceOnUse: !0\n }), o);\n }\n\n h.add(w);\n }\n\n t.forEach(function (t, a) {\n var s = new P(e.ctx).getMarkerConfig(\"apexcharts-marker\", o, a),\n l = e.graphics.drawMarker(g[a].x, g[a].y, s);\n l.attr(\"rel\", a), l.attr(\"j\", a), l.attr(\"index\", o), l.node.setAttribute(\"default-marker-size\", s.pSize);\n var c = e.graphics.group({\n class: \"apexcharts-series-markers\"\n });\n c && c.add(l), u.add(c), h.add(u);\n var d = i.config.dataLabels;\n\n if (d.enabled) {\n var f = d.formatter(i.globals.series[o][a], {\n seriesIndex: o,\n dataPointIndex: a,\n w: i\n });\n r.plotDataLabelsText({\n x: g[a].x,\n y: g[a].y,\n text: f,\n textAnchor: \"middle\",\n i: o,\n j: o,\n parent: x,\n offsetCorrection: !1,\n dataLabelsConfig: n({}, d)\n });\n }\n\n h.add(x);\n }), s.push(h);\n }), this.drawPolygons({\n parent: d\n }), i.config.xaxis.labels.show) {\n var b = this.drawXAxisTexts();\n d.add(b);\n }\n\n return d.add(this.yaxisLabels), s.forEach(function (t) {\n d.add(t);\n }), d;\n }\n }, {\n key: \"drawPolygons\",\n value: function value(t) {\n for (var e = this, i = this.w, a = t.parent, s = new kt(this.ctx), r = i.globals.yAxisScale[0].result.reverse(), n = r.length, o = [], l = this.size / (n - 1), h = 0; h < n; h++) {\n o[h] = l * h;\n }\n\n o.reverse();\n var c = [],\n d = [];\n o.forEach(function (t, i) {\n var a = e.getPolygonPos(t),\n s = \"\";\n a.forEach(function (t, a) {\n if (0 === i) {\n var r = e.graphics.drawLine(t.x, t.y, 0, 0, Array.isArray(e.polygons.connectorColors) ? e.polygons.connectorColors[a] : e.polygons.connectorColors);\n d.push(r);\n }\n\n 0 === a && e.yaxisLabelsTextsPos.push({\n x: t.x,\n y: t.y\n }), s += t.x + \",\" + t.y + \" \";\n }), c.push(s);\n }), c.forEach(function (t, s) {\n var r = e.polygons.strokeColors,\n n = e.polygons.strokeWidth,\n o = e.graphics.drawPolygon(t, Array.isArray(r) ? r[s] : r, Array.isArray(n) ? n[s] : n, i.globals.radarPolygons.fill.colors[s]);\n a.add(o);\n }), d.forEach(function (t) {\n a.add(t);\n }), i.config.yaxis[0].show && this.yaxisLabelsTextsPos.forEach(function (t, i) {\n var a = s.drawYAxisTexts(t.x, t.y, i, r[i]);\n e.yaxisLabels.add(a);\n });\n }\n }, {\n key: \"drawXAxisTexts\",\n value: function value() {\n var t = this,\n e = this.w,\n i = e.config.xaxis.labels,\n a = this.graphics.group({\n class: \"apexcharts-xaxis\"\n }),\n s = this.getPolygonPos(this.size);\n return e.globals.labels.forEach(function (r, o) {\n var l = e.config.xaxis.labels.formatter,\n h = new z(t.ctx);\n\n if (s[o]) {\n var c = t.getTextPos(s[o], t.size),\n d = l(r, {\n seriesIndex: -1,\n dataPointIndex: o,\n w: e\n });\n h.plotDataLabelsText({\n x: c.newX,\n y: c.newY,\n text: d,\n textAnchor: c.textAnchor,\n i: o,\n j: o,\n parent: a,\n color: Array.isArray(i.style.colors) && i.style.colors[o] ? i.style.colors[o] : \"#a8a8a8\",\n dataLabelsConfig: n({\n textAnchor: c.textAnchor,\n dropShadow: {\n enabled: !1\n }\n }, i),\n offsetCorrection: !1\n });\n }\n }), a;\n }\n }, {\n key: \"createPaths\",\n value: function value(t, e) {\n var i = this,\n a = [],\n s = [],\n r = [],\n n = [];\n\n if (t.length) {\n s = [this.graphics.move(e.x, e.y)], n = [this.graphics.move(e.x, e.y)];\n var o = this.graphics.move(t[0].x, t[0].y),\n l = this.graphics.move(t[0].x, t[0].y);\n t.forEach(function (e, a) {\n o += i.graphics.line(e.x, e.y), l += i.graphics.line(e.x, e.y), a === t.length - 1 && (o += \"Z\", l += \"Z\");\n }), a.push(o), r.push(l);\n }\n\n return {\n linePathsFrom: s,\n linePathsTo: a,\n areaPathsFrom: n,\n areaPathsTo: r\n };\n }\n }, {\n key: \"getTextPos\",\n value: function value(t, e) {\n var i = \"middle\",\n a = t.x,\n s = t.y;\n return Math.abs(t.x) >= 10 ? t.x > 0 ? (i = \"start\", a += 10) : t.x < 0 && (i = \"end\", a -= 10) : i = \"middle\", Math.abs(t.y) >= e - 10 && (t.y < 0 ? s -= 10 : t.y > 0 && (s += 10)), {\n textAnchor: i,\n newX: a,\n newY: s\n };\n }\n }, {\n key: \"getPreviousPath\",\n value: function value(t) {\n for (var e = this.w, i = null, a = 0; a < e.globals.previousPaths.length; a++) {\n var s = e.globals.previousPaths[a];\n s.paths.length > 0 && parseInt(s.realIndex, 10) === parseInt(t, 10) && void 0 !== e.globals.previousPaths[a].paths[0] && (i = e.globals.previousPaths[a].paths[0].d);\n }\n\n return i;\n }\n }, {\n key: \"getDataPointsPos\",\n value: function value(t, e) {\n var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.dataPointsLen;\n t = t || [], e = e || [];\n\n for (var a = [], s = 0; s < i; s++) {\n var r = {};\n r.x = t[s] * Math.sin(e[s]), r.y = -t[s] * Math.cos(e[s]), a.push(r);\n }\n\n return a;\n }\n }, {\n key: \"getPolygonPos\",\n value: function value(t) {\n for (var e = [], i = 2 * Math.PI / this.dataPointsLen, a = 0; a < this.dataPointsLen; a++) {\n var s = {};\n s.x = t * Math.sin(a * i), s.y = -t * Math.cos(a * i), e.push(s);\n }\n\n return e;\n }\n }]), t;\n}(),\n Ct = function (t) {\n o(s, At);\n var i = d(s);\n\n function s(t) {\n var a;\n e(this, s), (a = i.call(this, t)).ctx = t, a.w = t.w, a.animBeginArr = [0], a.animDur = 0;\n var r = a.w;\n return a.startAngle = r.config.plotOptions.radialBar.startAngle, a.endAngle = r.config.plotOptions.radialBar.endAngle, a.totalAngle = Math.abs(r.config.plotOptions.radialBar.endAngle - r.config.plotOptions.radialBar.startAngle), a.trackStartAngle = r.config.plotOptions.radialBar.track.startAngle, a.trackEndAngle = r.config.plotOptions.radialBar.track.endAngle, a.radialDataLabels = r.config.plotOptions.radialBar.dataLabels, a.trackStartAngle || (a.trackStartAngle = a.startAngle), a.trackEndAngle || (a.trackEndAngle = a.endAngle), 360 === a.endAngle && (a.endAngle = 359.99), a.margin = parseInt(r.config.plotOptions.radialBar.track.margin, 10), a;\n }\n\n return a(s, [{\n key: \"draw\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx),\n a = i.group({\n class: \"apexcharts-radialbar\"\n });\n if (e.globals.noData) return a;\n var s = i.group(),\n r = this.defaultSize / 2,\n n = e.globals.gridWidth / 2,\n o = this.defaultSize / 2.05;\n e.config.chart.sparkline.enabled || (o = o - e.config.stroke.width - e.config.chart.dropShadow.blur);\n var l = e.globals.fill.colors;\n\n if (e.config.plotOptions.radialBar.track.show) {\n var h = this.drawTracks({\n size: o,\n centerX: n,\n centerY: r,\n colorArr: l,\n series: t\n });\n s.add(h);\n }\n\n var c = this.drawArcs({\n size: o,\n centerX: n,\n centerY: r,\n colorArr: l,\n series: t\n }),\n d = 360;\n e.config.plotOptions.radialBar.startAngle < 0 && (d = this.totalAngle);\n var g = (360 - d) / 360;\n\n if (e.globals.radialSize = o - o * g, this.radialDataLabels.value.show) {\n var u = Math.max(this.radialDataLabels.value.offsetY, this.radialDataLabels.name.offsetY);\n e.globals.radialSize += u * g;\n }\n\n return s.add(c.g), \"front\" === e.config.plotOptions.radialBar.hollow.position && (c.g.add(c.elHollow), c.dataLabels && c.g.add(c.dataLabels)), a.add(s), a;\n }\n }, {\n key: \"drawTracks\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx),\n a = i.group({\n class: \"apexcharts-tracks\"\n }),\n s = new p(this.ctx),\n r = new L(this.ctx),\n n = this.getStrokeWidth(t);\n t.size = t.size - n / 2;\n\n for (var o = 0; o < t.series.length; o++) {\n var l = i.group({\n class: \"apexcharts-radialbar-track apexcharts-track\"\n });\n a.add(l), l.attr({\n rel: o + 1\n }), t.size = t.size - n - this.margin;\n var h = e.config.plotOptions.radialBar.track,\n c = r.fillPath({\n seriesNumber: 0,\n size: t.size,\n fillColors: Array.isArray(h.background) ? h.background[o] : h.background,\n solid: !0\n }),\n d = this.trackStartAngle,\n g = this.trackEndAngle;\n Math.abs(g) + Math.abs(d) >= 360 && (g = 360 - Math.abs(this.startAngle) - .1);\n var u = i.drawPath({\n d: \"\",\n stroke: c,\n strokeWidth: n * parseInt(h.strokeWidth, 10) / 100,\n fill: \"none\",\n strokeOpacity: h.opacity,\n classes: \"apexcharts-radialbar-area\"\n });\n\n if (h.dropShadow.enabled) {\n var f = h.dropShadow;\n s.dropShadow(u, f);\n }\n\n l.add(u), u.attr(\"id\", \"apexcharts-radialbarTrack-\" + o), this.animatePaths(u, {\n centerX: t.centerX,\n centerY: t.centerY,\n endAngle: g,\n startAngle: d,\n size: t.size,\n i: o,\n totalItems: 2,\n animBeginArr: 0,\n dur: 0,\n isTrack: !0,\n easing: e.globals.easing\n });\n }\n\n return a;\n }\n }, {\n key: \"drawArcs\",\n value: function value(t) {\n var e = this.w,\n i = new b(this.ctx),\n a = new L(this.ctx),\n s = new p(this.ctx),\n r = i.group(),\n n = this.getStrokeWidth(t);\n t.size = t.size - n / 2;\n var o = e.config.plotOptions.radialBar.hollow.background,\n l = t.size - n * t.series.length - this.margin * t.series.length - n * parseInt(e.config.plotOptions.radialBar.track.strokeWidth, 10) / 100 / 2,\n h = l - e.config.plotOptions.radialBar.hollow.margin;\n void 0 !== e.config.plotOptions.radialBar.hollow.image && (o = this.drawHollowImage(t, r, l, o));\n var c = this.drawHollow({\n size: h,\n centerX: t.centerX,\n centerY: t.centerY,\n fill: o || \"transparent\"\n });\n\n if (e.config.plotOptions.radialBar.hollow.dropShadow.enabled) {\n var d = e.config.plotOptions.radialBar.hollow.dropShadow;\n s.dropShadow(c, d);\n }\n\n var g = 1;\n !this.radialDataLabels.total.show && e.globals.series.length > 1 && (g = 0);\n var u = null;\n this.radialDataLabels.show && (u = this.renderInnerDataLabels(this.radialDataLabels, {\n hollowSize: l,\n centerX: t.centerX,\n centerY: t.centerY,\n opacity: g\n })), \"back\" === e.config.plotOptions.radialBar.hollow.position && (r.add(c), u && r.add(u));\n var x = !1;\n e.config.plotOptions.radialBar.inverseOrder && (x = !0);\n\n for (var m = x ? t.series.length - 1 : 0; x ? m >= 0 : m < t.series.length; x ? m-- : m++) {\n var v = i.group({\n class: \"apexcharts-series apexcharts-radial-series\",\n seriesName: f.escapeString(e.globals.seriesNames[m])\n });\n r.add(v), v.attr({\n rel: m + 1,\n \"data:realIndex\": m\n }), this.ctx.series.addCollapsedClassToSeries(v, m), t.size = t.size - n - this.margin;\n var y = a.fillPath({\n seriesNumber: m,\n size: t.size,\n value: t.series[m]\n }),\n w = this.startAngle,\n k = void 0,\n A = f.negToZero(t.series[m] > 100 ? 100 : t.series[m]) / 100,\n S = Math.round(this.totalAngle * A) + this.startAngle,\n C = void 0;\n e.globals.dataChanged && (k = this.startAngle, C = Math.round(this.totalAngle * f.negToZero(e.globals.previousPaths[m]) / 100) + k), Math.abs(S) + Math.abs(w) >= 360 && (S -= .01), Math.abs(C) + Math.abs(k) >= 360 && (C -= .01);\n var P = S - w,\n T = Array.isArray(e.config.stroke.dashArray) ? e.config.stroke.dashArray[m] : e.config.stroke.dashArray,\n z = i.drawPath({\n d: \"\",\n stroke: y,\n strokeWidth: n,\n fill: \"none\",\n fillOpacity: e.config.fill.opacity,\n classes: \"apexcharts-radialbar-area apexcharts-radialbar-slice-\" + m,\n strokeDashArray: T\n });\n\n if (b.setAttrs(z.node, {\n \"data:angle\": P,\n \"data:value\": t.series[m]\n }), e.config.chart.dropShadow.enabled) {\n var I = e.config.chart.dropShadow;\n s.dropShadow(z, I, m);\n }\n\n this.addListeners(z, this.radialDataLabels), v.add(z), z.attr({\n index: 0,\n j: m\n });\n var M = 0;\n !this.initialAnim || e.globals.resized || e.globals.dataChanged || (M = (S - w) / 360 * e.config.chart.animations.speed, this.animDur = M / (1.2 * t.series.length) + this.animDur, this.animBeginArr.push(this.animDur)), e.globals.dataChanged && (M = (S - w) / 360 * e.config.chart.animations.dynamicAnimation.speed, this.animDur = M / (1.2 * t.series.length) + this.animDur, this.animBeginArr.push(this.animDur)), this.animatePaths(z, {\n centerX: t.centerX,\n centerY: t.centerY,\n endAngle: S,\n startAngle: w,\n prevEndAngle: C,\n prevStartAngle: k,\n size: t.size,\n i: m,\n totalItems: 2,\n animBeginArr: this.animBeginArr,\n dur: M,\n shouldSetPrevPaths: !0,\n easing: e.globals.easing\n });\n }\n\n return {\n g: r,\n elHollow: c,\n dataLabels: u\n };\n }\n }, {\n key: \"drawHollow\",\n value: function value(t) {\n var e = new b(this.ctx).drawCircle(2 * t.size);\n return e.attr({\n class: \"apexcharts-radialbar-hollow\",\n cx: t.centerX,\n cy: t.centerY,\n r: t.size,\n fill: t.fill\n }), e;\n }\n }, {\n key: \"drawHollowImage\",\n value: function value(t, e, i, a) {\n var s = this.w,\n r = new L(this.ctx),\n n = f.randomId(),\n o = s.config.plotOptions.radialBar.hollow.image;\n if (s.config.plotOptions.radialBar.hollow.imageClipped) r.clippedImgArea({\n width: i,\n height: i,\n image: o,\n patternID: \"pattern\".concat(s.globals.cuid).concat(n)\n }), a = \"url(#pattern\".concat(s.globals.cuid).concat(n, \")\");else {\n var l = s.config.plotOptions.radialBar.hollow.imageWidth,\n h = s.config.plotOptions.radialBar.hollow.imageHeight;\n\n if (void 0 === l && void 0 === h) {\n var c = s.globals.dom.Paper.image(o).loaded(function (e) {\n this.move(t.centerX - e.width / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetX, t.centerY - e.height / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetY);\n });\n e.add(c);\n } else {\n var d = s.globals.dom.Paper.image(o).loaded(function (e) {\n this.move(t.centerX - l / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetX, t.centerY - h / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetY), this.size(l, h);\n });\n e.add(d);\n }\n }\n return a;\n }\n }, {\n key: \"getStrokeWidth\",\n value: function value(t) {\n var e = this.w;\n return t.size * (100 - parseInt(e.config.plotOptions.radialBar.hollow.size, 10)) / 100 / (t.series.length + 1) - this.margin;\n }\n }]), s;\n}(),\n Lt = function () {\n function t(i) {\n e(this, t), this.w = i.w, this.lineCtx = i;\n }\n\n return a(t, [{\n key: \"sameValueSeriesFix\",\n value: function value(t, e) {\n var i = this.w;\n\n if (\"line\" === i.config.chart.type && (\"gradient\" === i.config.fill.type || \"gradient\" === i.config.fill.type[t]) && new y(this.lineCtx.ctx, i).seriesHaveSameValues(t)) {\n var a = e[t].slice();\n a[a.length - 1] = a[a.length - 1] + 1e-6, e[t] = a;\n }\n\n return e;\n }\n }, {\n key: \"calculatePoints\",\n value: function value(t) {\n var e = t.series,\n i = t.realIndex,\n a = t.x,\n s = t.y,\n r = t.i,\n n = t.j,\n o = t.prevY,\n l = this.w,\n h = [],\n c = [];\n\n if (0 === n) {\n var d = this.lineCtx.categoryAxisCorrection + l.config.markers.offsetX;\n l.globals.isXNumeric && (d = (l.globals.seriesX[i][0] - l.globals.minX) / this.lineCtx.xRatio + l.config.markers.offsetX), h.push(d), c.push(f.isNumber(e[r][0]) ? o + l.config.markers.offsetY : null), h.push(a + l.config.markers.offsetX), c.push(f.isNumber(e[r][n + 1]) ? s + l.config.markers.offsetY : null);\n } else h.push(a + l.config.markers.offsetX), c.push(f.isNumber(e[r][n + 1]) ? s + l.config.markers.offsetY : null);\n\n return {\n x: h,\n y: c\n };\n }\n }, {\n key: \"checkPreviousPaths\",\n value: function value(t) {\n for (var e = t.pathFromLine, i = t.pathFromArea, a = t.realIndex, s = this.w, r = 0; r < s.globals.previousPaths.length; r++) {\n var n = s.globals.previousPaths[r];\n (\"line\" === n.type || \"area\" === n.type) && n.paths.length > 0 && parseInt(n.realIndex, 10) === parseInt(a, 10) && (\"line\" === n.type ? (this.lineCtx.appendPathFrom = !1, e = s.globals.previousPaths[r].paths[0].d) : \"area\" === n.type && (this.lineCtx.appendPathFrom = !1, i = s.globals.previousPaths[r].paths[0].d, s.config.stroke.show && s.globals.previousPaths[r].paths[1] && (e = s.globals.previousPaths[r].paths[1].d)));\n }\n\n return {\n pathFromLine: e,\n pathFromArea: i\n };\n }\n }, {\n key: \"determineFirstPrevY\",\n value: function value(t) {\n var e = t.i,\n i = t.series,\n a = t.prevY,\n s = t.lineYPosition,\n r = this.w;\n if (void 0 !== i[e][0]) a = (s = r.config.chart.stacked && e > 0 ? this.lineCtx.prevSeriesY[e - 1][0] : this.lineCtx.zeroY) - i[e][0] / this.lineCtx.yRatio[this.lineCtx.yaxisIndex] + 2 * (this.lineCtx.isReversed ? i[e][0] / this.lineCtx.yRatio[this.lineCtx.yaxisIndex] : 0);else if (r.config.chart.stacked && e > 0 && void 0 === i[e][0]) for (var n = e - 1; n >= 0; n--) {\n if (null !== i[n][0] && void 0 !== i[n][0]) {\n a = s = this.lineCtx.prevSeriesY[n][0];\n break;\n }\n }\n return {\n prevY: a,\n lineYPosition: s\n };\n }\n }]), t;\n}(),\n Pt = function () {\n function t(i, a, s) {\n e(this, t), this.ctx = i, this.w = i.w, this.xyRatios = a, this.pointsChart = !(\"bubble\" !== this.w.config.chart.type && \"scatter\" !== this.w.config.chart.type) || s, this.scatter = new T(this.ctx), this.noNegatives = this.w.globals.minX === Number.MAX_VALUE, this.lineHelpers = new Lt(this), this.markers = new P(this.ctx), this.prevSeriesY = [], this.categoryAxisCorrection = 0, this.yaxisIndex = 0;\n }\n\n return a(t, [{\n key: \"draw\",\n value: function value(t, e, i) {\n var a = this.w,\n s = new b(this.ctx),\n r = a.globals.comboCharts ? e : a.config.chart.type,\n n = s.group({\n class: \"apexcharts-\".concat(r, \"-series apexcharts-plot-series\")\n }),\n o = new y(this.ctx, a);\n this.yRatio = this.xyRatios.yRatio, this.zRatio = this.xyRatios.zRatio, this.xRatio = this.xyRatios.xRatio, this.baseLineY = this.xyRatios.baseLineY, t = o.getLogSeries(t), this.yRatio = o.getLogYRatios(this.yRatio);\n\n for (var l = [], h = 0; h < t.length; h++) {\n t = this.lineHelpers.sameValueSeriesFix(h, t);\n var c = a.globals.comboCharts ? i[h] : h;\n\n this._initSerieVariables(t, h, c);\n\n var d = [],\n g = [],\n u = a.globals.padHorizontal + this.categoryAxisCorrection;\n this.ctx.series.addCollapsedClassToSeries(this.elSeries, c), a.globals.isXNumeric && a.globals.seriesX.length > 0 && (u = (a.globals.seriesX[c][0] - a.globals.minX) / this.xRatio), g.push(u);\n var f,\n p = u,\n x = p,\n m = this.zeroY;\n m = this.lineHelpers.determineFirstPrevY({\n i: h,\n series: t,\n prevY: m,\n lineYPosition: 0\n }).prevY, d.push(m), f = m;\n\n var v = this._calculatePathsFrom({\n series: t,\n i: h,\n realIndex: c,\n prevX: x,\n prevY: m\n }),\n w = this._iterateOverDataPoints({\n series: t,\n realIndex: c,\n i: h,\n x: u,\n y: 1,\n pX: p,\n pY: f,\n pathsFrom: v,\n linePaths: [],\n areaPaths: [],\n seriesIndex: i,\n lineYPosition: 0,\n xArrj: g,\n yArrj: d\n });\n\n this._handlePaths({\n type: r,\n realIndex: c,\n i: h,\n paths: w\n }), this.elSeries.add(this.elPointsMain), this.elSeries.add(this.elDataLabelsWrap), l.push(this.elSeries);\n }\n\n if (a.config.chart.stacked) for (var k = l.length; k > 0; k--) {\n n.add(l[k - 1]);\n } else for (var A = 0; A < l.length; A++) {\n n.add(l[A]);\n }\n return n;\n }\n }, {\n key: \"_initSerieVariables\",\n value: function value(t, e, i) {\n var a = this.w,\n s = new b(this.ctx);\n this.xDivision = a.globals.gridWidth / (a.globals.dataPoints - (\"on\" === a.config.xaxis.tickPlacement ? 1 : 0)), this.strokeWidth = Array.isArray(a.config.stroke.width) ? a.config.stroke.width[i] : a.config.stroke.width, this.yRatio.length > 1 && (this.yaxisIndex = i), this.isReversed = a.config.yaxis[this.yaxisIndex] && a.config.yaxis[this.yaxisIndex].reversed, this.zeroY = a.globals.gridHeight - this.baseLineY[this.yaxisIndex] - (this.isReversed ? a.globals.gridHeight : 0) + (this.isReversed ? 2 * this.baseLineY[this.yaxisIndex] : 0), this.areaBottomY = this.zeroY, (this.zeroY > a.globals.gridHeight || \"end\" === a.config.plotOptions.area.fillTo) && (this.areaBottomY = a.globals.gridHeight), this.categoryAxisCorrection = this.xDivision / 2, this.elSeries = s.group({\n class: \"apexcharts-series\",\n seriesName: f.escapeString(a.globals.seriesNames[i])\n }), this.elPointsMain = s.group({\n class: \"apexcharts-series-markers-wrap\",\n \"data:realIndex\": i\n }), this.elDataLabelsWrap = s.group({\n class: \"apexcharts-datalabels\",\n \"data:realIndex\": i\n });\n var r = t[e].length === a.globals.dataPoints;\n this.elSeries.attr({\n \"data:longestSeries\": r,\n rel: e + 1,\n \"data:realIndex\": i\n }), this.appendPathFrom = !0;\n }\n }, {\n key: \"_calculatePathsFrom\",\n value: function value(t) {\n var e,\n i,\n a,\n s,\n r = t.series,\n n = t.i,\n o = t.realIndex,\n l = t.prevX,\n h = t.prevY,\n c = this.w,\n d = new b(this.ctx);\n\n if (null === r[n][0]) {\n for (var g = 0; g < r[n].length; g++) {\n if (null !== r[n][g]) {\n l = this.xDivision * g, h = this.zeroY - r[n][g] / this.yRatio[this.yaxisIndex], e = d.move(l, h), i = d.move(l, this.areaBottomY);\n break;\n }\n }\n } else e = d.move(l, h), i = d.move(l, this.areaBottomY) + d.line(l, h);\n\n if (a = d.move(-1, this.zeroY) + d.line(-1, this.zeroY), s = d.move(-1, this.zeroY) + d.line(-1, this.zeroY), c.globals.previousPaths.length > 0) {\n var u = this.lineHelpers.checkPreviousPaths({\n pathFromLine: a,\n pathFromArea: s,\n realIndex: o\n });\n a = u.pathFromLine, s = u.pathFromArea;\n }\n\n return {\n prevX: l,\n prevY: h,\n linePath: e,\n areaPath: i,\n pathFromLine: a,\n pathFromArea: s\n };\n }\n }, {\n key: \"_handlePaths\",\n value: function value(t) {\n var e = t.type,\n i = t.realIndex,\n a = t.i,\n s = t.paths,\n r = this.w,\n o = new b(this.ctx),\n l = new L(this.ctx);\n this.prevSeriesY.push(s.yArrj), r.globals.seriesXvalues[i] = s.xArrj, r.globals.seriesYvalues[i] = s.yArrj, this.pointsChart || r.globals.delayedElements.push({\n el: this.elPointsMain.node,\n index: i\n });\n var h = {\n i: a,\n realIndex: i,\n animationDelay: a,\n initialSpeed: r.config.chart.animations.speed,\n dataChangeSpeed: r.config.chart.animations.dynamicAnimation.speed,\n className: \"apexcharts-\".concat(e)\n };\n if (\"area\" === e) for (var c = l.fillPath({\n seriesNumber: i\n }), d = 0; d < s.areaPaths.length; d++) {\n var g = o.renderPaths(n(n({}, h), {}, {\n pathFrom: s.pathFromArea,\n pathTo: s.areaPaths[d],\n stroke: \"none\",\n strokeWidth: 0,\n strokeLineCap: null,\n fill: c\n }));\n this.elSeries.add(g);\n }\n\n if (r.config.stroke.show && !this.pointsChart) {\n var u = null;\n u = \"line\" === e ? l.fillPath({\n seriesNumber: i,\n i: a\n }) : r.globals.stroke.colors[i];\n\n for (var f = 0; f < s.linePaths.length; f++) {\n var p = o.renderPaths(n(n({}, h), {}, {\n pathFrom: s.pathFromLine,\n pathTo: s.linePaths[f],\n stroke: u,\n strokeWidth: this.strokeWidth,\n strokeLineCap: r.config.stroke.lineCap,\n fill: \"none\"\n }));\n this.elSeries.add(p);\n }\n }\n }\n }, {\n key: \"_iterateOverDataPoints\",\n value: function value(t) {\n for (var e = t.series, i = t.realIndex, a = t.i, s = t.x, r = t.y, n = t.pX, o = t.pY, l = t.pathsFrom, h = t.linePaths, c = t.areaPaths, d = t.seriesIndex, g = t.lineYPosition, u = t.xArrj, p = t.yArrj, x = this.w, m = new b(this.ctx), v = this.yRatio, y = l.prevY, w = l.linePath, k = l.areaPath, A = l.pathFromLine, S = l.pathFromArea, C = f.isNumber(x.globals.minYArr[i]) ? x.globals.minYArr[i] : x.globals.minY, L = x.globals.dataPoints > 1 ? x.globals.dataPoints - 1 : x.globals.dataPoints, P = 0; P < L; P++) {\n var T = void 0 === e[a][P + 1] || null === e[a][P + 1];\n\n if (x.globals.isXNumeric) {\n var z = x.globals.seriesX[i][P + 1];\n void 0 === x.globals.seriesX[i][P + 1] && (z = x.globals.seriesX[i][L - 1]), s = (z - x.globals.minX) / this.xRatio;\n } else s += this.xDivision;\n\n if (x.config.chart.stacked) {\n if (a > 0 && x.globals.collapsedSeries.length < x.config.series.length - 1) {\n g = this.prevSeriesY[function (t) {\n for (var e = t, i = 0; i < x.globals.series.length; i++) {\n if (x.globals.collapsedSeriesIndices.indexOf(t) > -1) {\n e--;\n break;\n }\n }\n\n return e >= 0 ? e : 0;\n }(a - 1)][P + 1];\n } else g = this.zeroY;\n } else g = this.zeroY;\n r = T ? g - C / v[this.yaxisIndex] + 2 * (this.isReversed ? C / v[this.yaxisIndex] : 0) : g - e[a][P + 1] / v[this.yaxisIndex] + 2 * (this.isReversed ? e[a][P + 1] / v[this.yaxisIndex] : 0), u.push(s), p.push(r);\n\n var I = this.lineHelpers.calculatePoints({\n series: e,\n x: s,\n y: r,\n realIndex: i,\n i: a,\n j: P,\n prevY: y\n }),\n M = this._createPaths({\n series: e,\n i: a,\n realIndex: i,\n j: P,\n x: s,\n y: r,\n pX: n,\n pY: o,\n linePath: w,\n areaPath: k,\n linePaths: h,\n areaPaths: c,\n seriesIndex: d\n });\n\n c = M.areaPaths, h = M.linePaths, n = M.pX, o = M.pY, k = M.areaPath, w = M.linePath, this.appendPathFrom && (A += m.line(s, this.zeroY), S += m.line(s, this.zeroY)), this.handleNullDataPoints(e, I, a, P, i), this._handleMarkersAndLabels({\n pointsPos: I,\n series: e,\n x: s,\n y: r,\n prevY: y,\n i: a,\n j: P,\n realIndex: i\n });\n }\n\n return {\n yArrj: p,\n xArrj: u,\n pathFromArea: S,\n areaPaths: c,\n pathFromLine: A,\n linePaths: h\n };\n }\n }, {\n key: \"_handleMarkersAndLabels\",\n value: function value(t) {\n var e = t.pointsPos,\n i = (t.series, t.x, t.y, t.prevY, t.i),\n a = t.j,\n s = t.realIndex,\n r = this.w,\n n = new z(this.ctx);\n if (this.pointsChart) this.scatter.draw(this.elSeries, a, {\n realIndex: s,\n pointsPos: e,\n zRatio: this.zRatio,\n elParent: this.elPointsMain\n });else {\n r.globals.series[i].length > 1 && this.elPointsMain.node.classList.add(\"apexcharts-element-hidden\");\n var o = this.markers.plotChartMarkers(e, s, a + 1);\n null !== o && this.elPointsMain.add(o);\n }\n var l = n.drawDataLabel(e, s, a + 1, null);\n null !== l && this.elDataLabelsWrap.add(l);\n }\n }, {\n key: \"_createPaths\",\n value: function value(t) {\n var e = t.series,\n i = t.i,\n a = t.realIndex,\n s = t.j,\n r = t.x,\n n = t.y,\n o = t.pX,\n l = t.pY,\n h = t.linePath,\n c = t.areaPath,\n d = t.linePaths,\n g = t.areaPaths,\n u = t.seriesIndex,\n f = this.w,\n p = new b(this.ctx),\n x = f.config.stroke.curve,\n m = this.areaBottomY;\n\n if (Array.isArray(f.config.stroke.curve) && (x = Array.isArray(u) ? f.config.stroke.curve[u[i]] : f.config.stroke.curve[i]), \"smooth\" === x) {\n var v = .35 * (r - o);\n f.globals.hasNullValues ? (null !== e[i][s] && (null !== e[i][s + 1] ? (h = p.move(o, l) + p.curve(o + v, l, r - v, n, r + 1, n), c = p.move(o + 1, l) + p.curve(o + v, l, r - v, n, r + 1, n) + p.line(r, m) + p.line(o, m) + \"z\") : (h = p.move(o, l), c = p.move(o, l) + \"z\")), d.push(h), g.push(c)) : (h += p.curve(o + v, l, r - v, n, r, n), c += p.curve(o + v, l, r - v, n, r, n)), o = r, l = n, s === e[i].length - 2 && (c = c + p.curve(o, l, r, n, r, m) + p.move(r, n) + \"z\", f.globals.hasNullValues || (d.push(h), g.push(c)));\n } else {\n if (null === e[i][s + 1]) {\n h += p.move(r, n);\n var y = f.globals.isXNumeric ? (f.globals.seriesX[a][s] - f.globals.minX) / this.xRatio : r - this.xDivision;\n c = c + p.line(y, m) + p.move(r, n) + \"z\";\n }\n\n null === e[i][s] && (h += p.move(r, n), c += p.move(r, m)), \"stepline\" === x ? (h = h + p.line(r, null, \"H\") + p.line(null, n, \"V\"), c = c + p.line(r, null, \"H\") + p.line(null, n, \"V\")) : \"straight\" === x && (h += p.line(r, n), c += p.line(r, n)), s === e[i].length - 2 && (c = c + p.line(r, m) + p.move(r, n) + \"z\", d.push(h), g.push(c));\n }\n\n return {\n linePaths: d,\n areaPaths: g,\n pX: o,\n pY: l,\n linePath: h,\n areaPath: c\n };\n }\n }, {\n key: \"handleNullDataPoints\",\n value: function value(t, e, i, a, s) {\n var r = this.w;\n\n if (null === t[i][a] && r.config.markers.showNullDataPoints || 1 === t[i].length) {\n var n = this.markers.plotChartMarkers(e, s, a + 1, this.strokeWidth - r.config.markers.strokeWidth / 2, !0);\n null !== n && this.elPointsMain.add(n);\n }\n }\n }]), t;\n}();\n\nwindow.TreemapSquared = {}, window.TreemapSquared.generate = function () {\n function t(e, i, a, s) {\n this.xoffset = e, this.yoffset = i, this.height = s, this.width = a, this.shortestEdge = function () {\n return Math.min(this.height, this.width);\n }, this.getCoordinates = function (t) {\n var e,\n i = [],\n a = this.xoffset,\n s = this.yoffset,\n n = r(t) / this.height,\n o = r(t) / this.width;\n if (this.width >= this.height) for (e = 0; e < t.length; e++) {\n i.push([a, s, a + n, s + t[e] / n]), s += t[e] / n;\n } else for (e = 0; e < t.length; e++) {\n i.push([a, s, a + t[e] / o, s + o]), a += t[e] / o;\n }\n return i;\n }, this.cutArea = function (e) {\n var i;\n\n if (this.width >= this.height) {\n var a = e / this.height,\n s = this.width - a;\n i = new t(this.xoffset + a, this.yoffset, s, this.height);\n } else {\n var r = e / this.width,\n n = this.height - r;\n i = new t(this.xoffset, this.yoffset + r, this.width, n);\n }\n\n return i;\n };\n }\n\n function e(e, a, s, n, o) {\n return n = void 0 === n ? 0 : n, o = void 0 === o ? 0 : o, function (t) {\n var e,\n i,\n a = [];\n\n for (e = 0; e < t.length; e++) {\n for (i = 0; i < t[e].length; i++) {\n a.push(t[e][i]);\n }\n }\n\n return a;\n }(i(function (t, e) {\n var i,\n a = [],\n s = e / r(t);\n\n for (i = 0; i < t.length; i++) {\n a[i] = t[i] * s;\n }\n\n return a;\n }(e, a * s), [], new t(n, o, a, s), []));\n }\n\n function i(t, e, s, n) {\n var o, l, h;\n if (0 !== t.length) return o = s.shortestEdge(), function (t, e, i) {\n var s;\n if (0 === t.length) return !0;\n (s = t.slice()).push(e);\n var r = a(t, i),\n n = a(s, i);\n return r >= n;\n }(e, l = t[0], o) ? (e.push(l), i(t.slice(1), e, s, n)) : (h = s.cutArea(r(e), n), n.push(s.getCoordinates(e)), i(t, [], h, n)), n;\n n.push(s.getCoordinates(e));\n }\n\n function a(t, e) {\n var i = Math.min.apply(Math, t),\n a = Math.max.apply(Math, t),\n s = r(t);\n return Math.max(Math.pow(e, 2) * a / Math.pow(s, 2), Math.pow(s, 2) / (Math.pow(e, 2) * i));\n }\n\n function s(t) {\n return t && t.constructor === Array;\n }\n\n function r(t) {\n var e,\n i = 0;\n\n for (e = 0; e < t.length; e++) {\n i += t[e];\n }\n\n return i;\n }\n\n function n(t) {\n var e,\n i = 0;\n if (s(t[0])) for (e = 0; e < t.length; e++) {\n i += n(t[e]);\n } else i = r(t);\n return i;\n }\n\n return function t(i, a, r, o, l) {\n o = void 0 === o ? 0 : o, l = void 0 === l ? 0 : l;\n var h,\n c,\n d = [],\n g = [];\n\n if (s(i[0])) {\n for (c = 0; c < i.length; c++) {\n d[c] = n(i[c]);\n }\n\n for (h = e(d, a, r, o, l), c = 0; c < i.length; c++) {\n g.push(t(i[c], h[c][2] - h[c][0], h[c][3] - h[c][1], h[c][0], h[c][1]));\n }\n } else g = e(i, a, r, o, l);\n\n return g;\n };\n}();\n\nvar Tt,\n zt,\n It = function () {\n function t(i, a) {\n e(this, t), this.ctx = i, this.w = i.w, this.strokeWidth = this.w.config.stroke.width, this.helpers = new yt(i), this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.labels = [];\n }\n\n return a(t, [{\n key: \"draw\",\n value: function value(t) {\n var e = this,\n i = this.w,\n a = new b(this.ctx),\n s = new L(this.ctx),\n r = a.group({\n class: \"apexcharts-treemap\"\n });\n if (i.globals.noData) return r;\n var n = [];\n return t.forEach(function (t) {\n var e = t.map(function (t) {\n return Math.abs(t);\n });\n n.push(e);\n }), this.negRange = this.helpers.checkColorRange(), i.config.series.forEach(function (t, i) {\n t.data.forEach(function (t) {\n Array.isArray(e.labels[i]) || (e.labels[i] = []), e.labels[i].push(t.x);\n });\n }), window.TreemapSquared.generate(n, i.globals.gridWidth, i.globals.gridHeight).forEach(function (n, o) {\n var l = a.group({\n class: \"apexcharts-series apexcharts-treemap-series\",\n seriesName: f.escapeString(i.globals.seriesNames[o]),\n rel: o + 1,\n \"data:realIndex\": o\n });\n\n if (i.config.chart.dropShadow.enabled) {\n var h = i.config.chart.dropShadow;\n new p(e.ctx).dropShadow(r, h, o);\n }\n\n var c = a.group({\n class: \"apexcharts-data-labels\"\n });\n n.forEach(function (r, n) {\n var h = r[0],\n c = r[1],\n d = r[2],\n g = r[3],\n u = a.drawRect(h, c, d - h, g - c, 0, \"#fff\", 1, e.strokeWidth, i.config.plotOptions.treemap.useFillColorAsStroke ? p : i.globals.stroke.colors[o]);\n u.attr({\n cx: h,\n cy: c,\n index: o,\n i: o,\n j: n,\n width: d - h,\n height: g - c\n });\n var f = e.helpers.getShadeColor(i.config.chart.type, o, n, e.negRange),\n p = f.color;\n void 0 !== i.config.series[o].data[n] && i.config.series[o].data[n].fillColor && (p = i.config.series[o].data[n].fillColor);\n var x = s.fillPath({\n color: p,\n seriesNumber: o,\n dataPointIndex: n\n });\n u.node.classList.add(\"apexcharts-treemap-rect\"), u.attr({\n fill: x\n }), e.helpers.addListeners(u);\n var b = {\n x: h + (d - h) / 2,\n y: c + (g - c) / 2,\n width: 0,\n height: 0\n },\n m = {\n x: h,\n y: c,\n width: d - h,\n height: g - c\n };\n\n if (i.config.chart.animations.enabled && !i.globals.dataChanged) {\n var v = 1;\n i.globals.resized || (v = i.config.chart.animations.speed), e.animateTreemap(u, b, m, v);\n }\n\n if (i.globals.dataChanged) {\n var y = 1;\n e.dynamicAnim.enabled && i.globals.shouldAnimate && (y = e.dynamicAnim.speed, i.globals.previousPaths[o][n] && i.globals.previousPaths[o][n].rect && (b = i.globals.previousPaths[o][n].rect), e.animateTreemap(u, b, m, y));\n }\n\n var w = e.getFontSize(r),\n k = i.config.dataLabels.formatter(e.labels[o][n], {\n value: i.globals.series[o][n],\n seriesIndex: o,\n dataPointIndex: n,\n w: i\n }),\n A = e.helpers.calculateDataLabels({\n text: k,\n x: (h + d) / 2,\n y: (c + g) / 2 + e.strokeWidth / 2 + w / 3,\n i: o,\n j: n,\n colorProps: f,\n fontSize: w,\n series: t\n });\n i.config.dataLabels.enabled && A && e.rotateToFitLabel(A, k, h, c, d, g), l.add(u), null !== A && l.add(A);\n }), l.add(c), r.add(l);\n }), r;\n }\n }, {\n key: \"getFontSize\",\n value: function value(t) {\n var e = this.w;\n\n var i,\n a,\n s,\n r,\n n = function t(e) {\n var i,\n a = 0;\n if (Array.isArray(e[0])) for (i = 0; i < e.length; i++) {\n a += t(e[i]);\n } else for (i = 0; i < e.length; i++) {\n a += e[i].length;\n }\n return a;\n }(this.labels) / function t(e) {\n var i,\n a = 0;\n if (Array.isArray(e[0])) for (i = 0; i < e.length; i++) {\n a += t(e[i]);\n } else for (i = 0; i < e.length; i++) {\n a += 1;\n }\n return a;\n }(this.labels);\n\n return i = t[2] - t[0], a = t[3] - t[1], s = i * a, r = Math.pow(s, .5), Math.min(r / n, parseInt(e.config.dataLabels.style.fontSize, 10));\n }\n }, {\n key: \"rotateToFitLabel\",\n value: function value(t, e, i, a, s, r) {\n var n = new b(this.ctx),\n o = n.getTextRects(e);\n\n if (o.width + 5 > s - i && o.width <= r - a) {\n var l = n.rotateAroundCenter(t.node);\n t.node.setAttribute(\"transform\", \"rotate(-90 \".concat(l.x, \" \").concat(l.y, \")\"));\n }\n }\n }, {\n key: \"animateTreemap\",\n value: function value(t, e, i, a) {\n var s = new x(this.ctx);\n s.animateRect(t, {\n x: e.x,\n y: e.y,\n width: e.width,\n height: e.height\n }, {\n x: i.x,\n y: i.y,\n width: i.width,\n height: i.height\n }, a, function () {\n s.animationCompleted(t);\n });\n }\n }]), t;\n}(),\n Mt = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w, this.timeScaleArray = [], this.utc = this.w.config.xaxis.labels.datetimeUTC;\n }\n\n return a(t, [{\n key: \"calculateTimeScaleTicks\",\n value: function value(t, e) {\n var i = this,\n a = this.w;\n if (a.globals.allSeriesCollapsed) return a.globals.labels = [], a.globals.timescaleLabels = [], [];\n var s = new Y(this.ctx),\n r = (e - t) / 864e5;\n this.determineInterval(r), a.globals.disableZoomIn = !1, a.globals.disableZoomOut = !1, r < .005 ? a.globals.disableZoomIn = !0 : r > 5e4 && (a.globals.disableZoomOut = !0);\n var o = s.getTimeUnitsfromTimestamp(t, e, this.utc),\n l = a.globals.gridWidth / r,\n h = l / 24,\n c = h / 60,\n d = c / 60,\n g = Math.floor(24 * r),\n u = Math.floor(24 * r * 60),\n f = Math.floor(24 * r * 60 * 60),\n p = Math.floor(r),\n x = Math.floor(r / 30),\n b = Math.floor(r / 365),\n m = {\n minSecond: o.minSecond,\n minMinute: o.minMinute,\n minHour: o.minHour,\n minDate: o.minDate,\n minMonth: o.minMonth,\n minYear: o.minYear\n },\n v = {\n firstVal: m,\n currentSecond: m.minSecond,\n currentMinute: m.minMinute,\n currentHour: m.minHour,\n currentMonthDate: m.minDate,\n currentDate: m.minDate,\n currentMonth: m.minMonth,\n currentYear: m.minYear,\n daysWidthOnXAxis: l,\n hoursWidthOnXAxis: h,\n minutesWidthOnXAxis: c,\n secondsWidthOnXAxis: d,\n numberOfSeconds: f,\n numberOfMinutes: u,\n numberOfHours: g,\n numberOfDays: p,\n numberOfMonths: x,\n numberOfYears: b\n };\n\n switch (this.tickInterval) {\n case \"years\":\n this.generateYearScale(v);\n break;\n\n case \"months\":\n case \"half_year\":\n this.generateMonthScale(v);\n break;\n\n case \"months_days\":\n case \"months_fortnight\":\n case \"days\":\n case \"week_days\":\n this.generateDayScale(v);\n break;\n\n case \"hours\":\n this.generateHourScale(v);\n break;\n\n case \"minutes\":\n this.generateMinuteScale(v);\n }\n\n var y = this.timeScaleArray.map(function (t) {\n var e = {\n position: t.position,\n unit: t.unit,\n year: t.year,\n day: t.day ? t.day : 1,\n hour: t.hour ? t.hour : 0,\n month: t.month + 1\n };\n return \"month\" === t.unit ? n(n({}, e), {}, {\n day: 1,\n value: t.value + 1\n }) : \"day\" === t.unit || \"hour\" === t.unit ? n(n({}, e), {}, {\n value: t.value\n }) : \"minute\" === t.unit ? n(n({}, e), {}, {\n value: t.value,\n minute: t.value\n }) : t;\n });\n return y.filter(function (t) {\n var e = 1,\n s = Math.ceil(a.globals.gridWidth / 120),\n r = t.value;\n void 0 !== a.config.xaxis.tickAmount && (s = a.config.xaxis.tickAmount), y.length > s && (e = Math.floor(y.length / s));\n var n = !1,\n o = !1;\n\n switch (i.tickInterval) {\n case \"years\":\n \"year\" === t.unit && (n = !0);\n break;\n\n case \"half_year\":\n e = 7, \"year\" === t.unit && (n = !0);\n break;\n\n case \"months\":\n e = 1, \"year\" === t.unit && (n = !0);\n break;\n\n case \"months_fortnight\":\n e = 15, \"year\" !== t.unit && \"month\" !== t.unit || (n = !0), 30 === r && (o = !0);\n break;\n\n case \"months_days\":\n e = 10, \"month\" === t.unit && (n = !0), 30 === r && (o = !0);\n break;\n\n case \"week_days\":\n e = 8, \"month\" === t.unit && (n = !0);\n break;\n\n case \"days\":\n e = 1, \"month\" === t.unit && (n = !0);\n break;\n\n case \"hours\":\n \"day\" === t.unit && (n = !0);\n break;\n\n case \"minutes\":\n r % 5 != 0 && (o = !0);\n }\n\n if (\"minutes\" === i.tickInterval || \"hours\" === i.tickInterval) {\n if (!o) return !0;\n } else if ((r % e == 0 || n) && !o) return !0;\n });\n }\n }, {\n key: \"recalcDimensionsBasedOnFormat\",\n value: function value(t, e) {\n var i = this.w,\n a = this.formatDates(t),\n s = this.removeOverlappingTS(a);\n i.globals.timescaleLabels = s.slice(), new nt(this.ctx).plotCoords();\n }\n }, {\n key: \"determineInterval\",\n value: function value(t) {\n switch (!0) {\n case t > 1825:\n this.tickInterval = \"years\";\n break;\n\n case t > 800 && t <= 1825:\n this.tickInterval = \"half_year\";\n break;\n\n case t > 180 && t <= 800:\n this.tickInterval = \"months\";\n break;\n\n case t > 90 && t <= 180:\n this.tickInterval = \"months_fortnight\";\n break;\n\n case t > 60 && t <= 90:\n this.tickInterval = \"months_days\";\n break;\n\n case t > 30 && t <= 60:\n this.tickInterval = \"week_days\";\n break;\n\n case t > 2 && t <= 30:\n this.tickInterval = \"days\";\n break;\n\n case t > .1 && t <= 2:\n this.tickInterval = \"hours\";\n break;\n\n case t < .1:\n this.tickInterval = \"minutes\";\n break;\n\n default:\n this.tickInterval = \"days\";\n }\n }\n }, {\n key: \"generateYearScale\",\n value: function value(t) {\n var e = t.firstVal,\n i = t.currentMonth,\n a = t.currentYear,\n s = t.daysWidthOnXAxis,\n r = t.numberOfYears,\n n = e.minYear,\n o = 0,\n l = new Y(this.ctx),\n h = \"year\";\n\n if (e.minDate > 1 || e.minMonth > 0) {\n var c = l.determineRemainingDaysOfYear(e.minYear, e.minMonth, e.minDate);\n o = (l.determineDaysOfYear(e.minYear) - c + 1) * s, n = e.minYear + 1, this.timeScaleArray.push({\n position: o,\n value: n,\n unit: h,\n year: n,\n month: f.monthMod(i + 1)\n });\n } else 1 === e.minDate && 0 === e.minMonth && this.timeScaleArray.push({\n position: o,\n value: n,\n unit: h,\n year: a,\n month: f.monthMod(i + 1)\n });\n\n for (var d = n, g = o, u = 0; u < r; u++) {\n d++, g = l.determineDaysOfYear(d - 1) * s + g, this.timeScaleArray.push({\n position: g,\n value: d,\n unit: h,\n year: d,\n month: 1\n });\n }\n }\n }, {\n key: \"generateMonthScale\",\n value: function value(t) {\n var e = t.firstVal,\n i = t.currentMonthDate,\n a = t.currentMonth,\n s = t.currentYear,\n r = t.daysWidthOnXAxis,\n n = t.numberOfMonths,\n o = a,\n l = 0,\n h = new Y(this.ctx),\n c = \"month\",\n d = 0;\n\n if (e.minDate > 1) {\n l = (h.determineDaysOfMonths(a + 1, e.minYear) - i + 1) * r, o = f.monthMod(a + 1);\n var g = s + d,\n u = f.monthMod(o),\n p = o;\n 0 === o && (c = \"year\", p = g, u = 1, g += d += 1), this.timeScaleArray.push({\n position: l,\n value: p,\n unit: c,\n year: g,\n month: u\n });\n } else this.timeScaleArray.push({\n position: l,\n value: o,\n unit: c,\n year: s,\n month: f.monthMod(a)\n });\n\n for (var x = o + 1, b = l, m = 0, v = 1; m < n; m++, v++) {\n 0 === (x = f.monthMod(x)) ? (c = \"year\", d += 1) : c = \"month\";\n\n var y = this._getYear(s, x, d);\n\n b = h.determineDaysOfMonths(x, y) * r + b;\n var w = 0 === x ? y : x;\n this.timeScaleArray.push({\n position: b,\n value: w,\n unit: c,\n year: y,\n month: 0 === x ? 1 : x\n }), x++;\n }\n }\n }, {\n key: \"generateDayScale\",\n value: function value(t) {\n var e = t.firstVal,\n i = t.currentMonth,\n a = t.currentYear,\n s = t.hoursWidthOnXAxis,\n r = t.numberOfDays,\n n = new Y(this.ctx),\n o = \"day\",\n l = e.minDate + 1,\n h = l,\n c = function c(t, e, i) {\n return t > n.determineDaysOfMonths(e + 1, i) ? (h = 1, o = \"month\", g = e += 1, e) : e;\n },\n d = (24 - e.minHour) * s,\n g = l,\n u = c(h, i, a);\n\n 0 === e.minHour && 1 === e.minDate && (d = 0, g = f.monthMod(e.minMonth), o = \"month\", h = e.minDate, r++), this.timeScaleArray.push({\n position: d,\n value: g,\n unit: o,\n year: this._getYear(a, u, 0),\n month: f.monthMod(u),\n day: h\n });\n\n for (var p = d, x = 0; x < r; x++) {\n o = \"day\", u = c(h += 1, u, this._getYear(a, u, 0));\n\n var b = this._getYear(a, u, 0);\n\n p = 24 * s + p;\n var m = 1 === h ? f.monthMod(u) : h;\n this.timeScaleArray.push({\n position: p,\n value: m,\n unit: o,\n year: b,\n month: f.monthMod(u),\n day: m\n });\n }\n }\n }, {\n key: \"generateHourScale\",\n value: function value(t) {\n var e = t.firstVal,\n i = t.currentDate,\n a = t.currentMonth,\n s = t.currentYear,\n r = t.minutesWidthOnXAxis,\n n = t.numberOfHours,\n o = new Y(this.ctx),\n l = \"hour\",\n h = function h(t, e) {\n return t > o.determineDaysOfMonths(e + 1, s) && (x = 1, e += 1), {\n month: e,\n date: x\n };\n },\n c = function c(t, e) {\n return t > o.determineDaysOfMonths(e + 1, s) ? e += 1 : e;\n },\n d = 60 - (e.minMinute + e.minSecond / 60),\n g = d * r,\n u = e.minHour + 1,\n p = u + 1;\n\n 60 === d && (g = 0, p = (u = e.minHour) + 1);\n var x = i,\n b = c(x, a);\n this.timeScaleArray.push({\n position: g,\n value: u,\n unit: l,\n day: x,\n hour: p,\n year: s,\n month: f.monthMod(b)\n });\n\n for (var m = g, v = 0; v < n; v++) {\n if (l = \"hour\", p >= 24) p = 0, l = \"day\", b = h(x += 1, b).month, b = c(x, b);\n\n var y = this._getYear(s, b, 0);\n\n m = 0 === p && 0 === v ? d * r : 60 * r + m;\n var w = 0 === p ? x : p;\n this.timeScaleArray.push({\n position: m,\n value: w,\n unit: l,\n hour: p,\n day: x,\n year: y,\n month: f.monthMod(b)\n }), p++;\n }\n }\n }, {\n key: \"generateMinuteScale\",\n value: function value(t) {\n var e = t.firstVal,\n i = (t.currentSecond, t.currentMinute, t.currentHour),\n a = t.currentDate,\n s = t.currentMonth,\n r = t.currentYear,\n n = t.minutesWidthOnXAxis,\n o = t.secondsWidthOnXAxis,\n l = t.numberOfMinutes,\n h = \"minute\",\n c = (60 - e.minSecond) * o,\n d = e.minMinute + 1,\n g = d + 1,\n u = a,\n p = s,\n x = r,\n b = i;\n this.timeScaleArray.push({\n position: c,\n value: d,\n unit: h,\n day: u,\n hour: b,\n minute: g,\n year: x,\n month: f.monthMod(p)\n });\n\n for (var m = c, v = 0; v < l; v++) {\n g >= 60 && (g = 0, 24 === (b += 1) && (b = 0)), m = n + m, this.timeScaleArray.push({\n position: m,\n value: g,\n unit: h,\n hour: b,\n minute: g,\n day: u,\n year: this._getYear(r, p, 0),\n month: f.monthMod(p)\n }), g++;\n }\n }\n }, {\n key: \"createRawDateString\",\n value: function value(t, e) {\n var i = t.year;\n return i += \"-\" + (\"0\" + t.month.toString()).slice(-2), \"day\" === t.unit ? i += \"day\" === t.unit ? \"-\" + (\"0\" + e).slice(-2) : \"-01\" : i += \"-\" + (\"0\" + (t.day ? t.day : \"1\")).slice(-2), \"hour\" === t.unit ? i += \"hour\" === t.unit ? \"T\" + (\"0\" + e).slice(-2) : \"T00\" : i += \"T\" + (\"0\" + (t.hour ? t.hour : \"0\")).slice(-2), i += \"minute\" === t.unit ? \":\" + (\"0\" + e).slice(-2) + \":00\" : \":00:00\", this.utc && (i += \".000Z\"), i;\n }\n }, {\n key: \"formatDates\",\n value: function value(t) {\n var e = this,\n i = this.w;\n return t.map(function (t) {\n var a = t.value.toString(),\n s = new Y(e.ctx),\n r = e.createRawDateString(t, a),\n n = s.getDate(s.parseDate(r));\n\n if (e.utc || (n = s.getDate(s.parseDateWithTimezone(r))), void 0 === i.config.xaxis.labels.format) {\n var o = \"dd MMM\",\n l = i.config.xaxis.labels.datetimeFormatter;\n \"year\" === t.unit && (o = l.year), \"month\" === t.unit && (o = l.month), \"day\" === t.unit && (o = l.day), \"hour\" === t.unit && (o = l.hour), \"minute\" === t.unit && (o = l.minute), a = s.formatDate(n, o);\n } else a = s.formatDate(n, i.config.xaxis.labels.format);\n\n return {\n dateString: r,\n position: t.position,\n value: a,\n unit: t.unit,\n year: t.year,\n month: t.month\n };\n });\n }\n }, {\n key: \"removeOverlappingTS\",\n value: function value(t) {\n var e,\n i = this,\n a = new b(this.ctx),\n s = !1;\n t.length > 0 && t[0].value && t.every(function (e) {\n return e.value.length === t[0].value.length;\n }) && (s = !0, e = a.getTextRects(t[0].value).width);\n var r = 0,\n n = t.map(function (n, o) {\n if (o > 0 && i.w.config.xaxis.labels.hideOverlappingLabels) {\n var l = s ? e : a.getTextRects(t[r].value).width,\n h = t[r].position;\n return n.position > h + l + 10 ? (r = o, n) : null;\n }\n\n return n;\n });\n return n = n.filter(function (t) {\n return null !== t;\n });\n }\n }, {\n key: \"_getYear\",\n value: function value(t, e, i) {\n return t + Math.floor(e / 12) + i;\n }\n }]), t;\n}(),\n Et = function () {\n function t(i, a) {\n e(this, t), this.ctx = a, this.w = a.w, this.el = i;\n }\n\n return a(t, [{\n key: \"setupElements\",\n value: function value() {\n var t = this.w.globals,\n e = this.w.config,\n i = e.chart.type;\n t.axisCharts = [\"line\", \"area\", \"bar\", \"rangeBar\", \"candlestick\", \"scatter\", \"bubble\", \"radar\", \"heatmap\", \"treemap\"].indexOf(i) > -1, t.xyCharts = [\"line\", \"area\", \"bar\", \"rangeBar\", \"candlestick\", \"scatter\", \"bubble\"].indexOf(i) > -1, t.isBarHorizontal = (\"bar\" === e.chart.type || \"rangeBar\" === e.chart.type) && e.plotOptions.bar.horizontal, t.chartClass = \".apexcharts\" + t.chartID, t.dom.baseEl = this.el, t.dom.elWrap = document.createElement(\"div\"), b.setAttrs(t.dom.elWrap, {\n id: t.chartClass.substring(1),\n class: \"apexcharts-canvas \" + t.chartClass.substring(1)\n }), this.el.appendChild(t.dom.elWrap), t.dom.Paper = new window.SVG.Doc(t.dom.elWrap), t.dom.Paper.attr({\n class: \"apexcharts-svg\",\n \"xmlns:data\": \"ApexChartsNS\",\n transform: \"translate(\".concat(e.chart.offsetX, \", \").concat(e.chart.offsetY, \")\")\n }), t.dom.Paper.node.style.background = e.chart.background, this.setSVGDimensions(), t.dom.elGraphical = t.dom.Paper.group().attr({\n class: \"apexcharts-inner apexcharts-graphical\"\n }), t.dom.elAnnotations = t.dom.Paper.group().attr({\n class: \"apexcharts-annotations\"\n }), t.dom.elDefs = t.dom.Paper.defs(), t.dom.elLegendWrap = document.createElement(\"div\"), t.dom.elLegendWrap.classList.add(\"apexcharts-legend\"), t.dom.elWrap.appendChild(t.dom.elLegendWrap), t.dom.Paper.add(t.dom.elGraphical), t.dom.elGraphical.add(t.dom.elDefs);\n }\n }, {\n key: \"plotChartType\",\n value: function value(t, e) {\n var i = this.w,\n a = i.config,\n s = i.globals,\n r = {\n series: [],\n i: []\n },\n n = {\n series: [],\n i: []\n },\n o = {\n series: [],\n i: []\n },\n l = {\n series: [],\n i: []\n },\n h = {\n series: [],\n i: []\n },\n c = {\n series: [],\n i: []\n };\n s.series.map(function (e, d) {\n void 0 !== t[d].type ? (\"column\" === t[d].type || \"bar\" === t[d].type ? (s.series.length > 1 && a.plotOptions.bar.horizontal && console.warn(\"Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`\"), h.series.push(e), h.i.push(d), i.globals.columnSeries = h.series) : \"area\" === t[d].type ? (n.series.push(e), n.i.push(d)) : \"line\" === t[d].type ? (r.series.push(e), r.i.push(d)) : \"scatter\" === t[d].type ? (o.series.push(e), o.i.push(d)) : \"bubble\" === t[d].type ? (l.series.push(e), l.i.push(d)) : \"candlestick\" === t[d].type ? (c.series.push(e), c.i.push(d)) : console.warn(\"You have specified an unrecognized chart type. Available types for this propery are line/area/column/bar/scatter/bubble\"), s.comboCharts = !0) : (r.series.push(e), r.i.push(d));\n });\n var d = new Pt(this.ctx, e),\n g = new vt(this.ctx, e);\n this.ctx.pie = new At(this.ctx);\n var u = new Ct(this.ctx);\n this.ctx.rangeBar = new F(this.ctx, e);\n var f = new St(this.ctx),\n p = [];\n\n if (s.comboCharts) {\n if (n.series.length > 0 && p.push(d.draw(n.series, \"area\", n.i)), h.series.length > 0) if (i.config.chart.stacked) {\n var x = new mt(this.ctx, e);\n p.push(x.draw(h.series, h.i));\n } else {\n var b = new X(this.ctx, e);\n p.push(b.draw(h.series, h.i));\n }\n\n if (r.series.length > 0 && p.push(d.draw(r.series, \"line\", r.i)), c.series.length > 0 && p.push(g.draw(c.series, c.i)), o.series.length > 0) {\n var m = new Pt(this.ctx, e, !0);\n p.push(m.draw(o.series, \"scatter\", o.i));\n }\n\n if (l.series.length > 0) {\n var v = new Pt(this.ctx, e, !0);\n p.push(v.draw(l.series, \"bubble\", l.i));\n }\n } else switch (a.chart.type) {\n case \"line\":\n p = d.draw(s.series, \"line\");\n break;\n\n case \"area\":\n p = d.draw(s.series, \"area\");\n break;\n\n case \"bar\":\n if (a.chart.stacked) p = new mt(this.ctx, e).draw(s.series);else p = new X(this.ctx, e).draw(s.series);\n break;\n\n case \"candlestick\":\n p = new vt(this.ctx, e).draw(s.series);\n break;\n\n case \"rangeBar\":\n p = this.ctx.rangeBar.draw(s.series);\n break;\n\n case \"heatmap\":\n p = new wt(this.ctx, e).draw(s.series);\n break;\n\n case \"treemap\":\n p = new It(this.ctx, e).draw(s.series);\n break;\n\n case \"pie\":\n case \"donut\":\n case \"polarArea\":\n p = this.ctx.pie.draw(s.series);\n break;\n\n case \"radialBar\":\n p = u.draw(s.series);\n break;\n\n case \"radar\":\n p = f.draw(s.series);\n break;\n\n default:\n p = d.draw(s.series);\n }\n\n return p;\n }\n }, {\n key: \"setSVGDimensions\",\n value: function value() {\n var t = this.w.globals,\n e = this.w.config;\n t.svgWidth = e.chart.width, t.svgHeight = e.chart.height;\n var i = f.getDimensions(this.el),\n a = e.chart.width.toString().split(/[0-9]+/g).pop();\n \"%\" === a ? f.isNumber(i[0]) && (0 === i[0].width && (i = f.getDimensions(this.el.parentNode)), t.svgWidth = i[0] * parseInt(e.chart.width, 10) / 100) : \"px\" !== a && \"\" !== a || (t.svgWidth = parseInt(e.chart.width, 10));\n var s = e.chart.height.toString().split(/[0-9]+/g).pop();\n if (\"auto\" !== t.svgHeight && \"\" !== t.svgHeight) {\n if (\"%\" === s) {\n var r = f.getDimensions(this.el.parentNode);\n t.svgHeight = r[1] * parseInt(e.chart.height, 10) / 100;\n } else t.svgHeight = parseInt(e.chart.height, 10);\n } else t.axisCharts ? t.svgHeight = t.svgWidth / 1.61 : t.svgHeight = t.svgWidth / 1.2;\n\n if (t.svgWidth < 0 && (t.svgWidth = 0), t.svgHeight < 0 && (t.svgHeight = 0), b.setAttrs(t.dom.Paper.node, {\n width: t.svgWidth,\n height: t.svgHeight\n }), \"%\" !== s) {\n var n = e.chart.sparkline.enabled ? 0 : t.axisCharts ? e.chart.parentHeightOffset : 0;\n t.dom.Paper.node.parentNode.parentNode.style.minHeight = t.svgHeight + n + \"px\";\n }\n\n t.dom.elWrap.style.width = t.svgWidth + \"px\", t.dom.elWrap.style.height = t.svgHeight + \"px\";\n }\n }, {\n key: \"shiftGraphPosition\",\n value: function value() {\n var t = this.w.globals,\n e = t.translateY,\n i = {\n transform: \"translate(\" + t.translateX + \", \" + e + \")\"\n };\n b.setAttrs(t.dom.elGraphical.node, i);\n }\n }, {\n key: \"resizeNonAxisCharts\",\n value: function value() {\n var t = this.w,\n e = t.globals,\n i = 0,\n a = t.config.chart.sparkline.enabled ? 1 : 15;\n a += t.config.grid.padding.bottom, \"top\" !== t.config.legend.position && \"bottom\" !== t.config.legend.position || !t.config.legend.show || t.config.legend.floating || (i = new lt(this.ctx).legendHelpers.getLegendBBox().clwh + 10);\n var s = t.globals.dom.baseEl.querySelector(\".apexcharts-radialbar, .apexcharts-pie\"),\n r = 2.05 * t.globals.radialSize;\n\n if (s && !t.config.chart.sparkline.enabled) {\n var n = f.getBoundingClientRect(s);\n r = n.bottom;\n var o = n.bottom - n.top;\n r = Math.max(2.05 * t.globals.radialSize, o);\n }\n\n var l = r + e.translateY + i + a;\n e.dom.elLegendForeign && e.dom.elLegendForeign.setAttribute(\"height\", l), e.dom.elWrap.style.height = l + \"px\", b.setAttrs(e.dom.Paper.node, {\n height: l\n }), e.dom.Paper.node.parentNode.parentNode.style.minHeight = l + \"px\";\n }\n }, {\n key: \"coreCalculations\",\n value: function value() {\n new U(this.ctx).init();\n }\n }, {\n key: \"resetGlobals\",\n value: function value() {\n var t = this,\n e = function e() {\n return t.w.config.series.map(function (t) {\n return [];\n });\n },\n i = new H(),\n a = this.w.globals;\n\n i.initGlobalVars(a), a.seriesXvalues = e(), a.seriesYvalues = e();\n }\n }, {\n key: \"isMultipleY\",\n value: function value() {\n if (this.w.config.yaxis.constructor === Array && this.w.config.yaxis.length > 1) return this.w.globals.isMultipleYAxis = !0, !0;\n }\n }, {\n key: \"xySettings\",\n value: function value() {\n var t = null,\n e = this.w;\n\n if (e.globals.axisCharts) {\n if (\"back\" === e.config.xaxis.crosshairs.position) new Q(this.ctx).drawXCrosshairs();\n if (\"back\" === e.config.yaxis[0].crosshairs.position) new Q(this.ctx).drawYCrosshairs();\n\n if (\"datetime\" === e.config.xaxis.type && void 0 === e.config.xaxis.labels.formatter) {\n this.ctx.timeScale = new Mt(this.ctx);\n var i = [];\n isFinite(e.globals.minX) && isFinite(e.globals.maxX) && !e.globals.isBarHorizontal ? i = this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX, e.globals.maxX) : e.globals.isBarHorizontal && (i = this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY, e.globals.maxY)), this.ctx.timeScale.recalcDimensionsBasedOnFormat(i);\n }\n\n t = new y(this.ctx).getCalculatedRatios();\n }\n\n return t;\n }\n }, {\n key: \"updateSourceChart\",\n value: function value(t) {\n this.ctx.w.globals.selection = void 0, this.ctx.updateHelpers._updateOptions({\n chart: {\n selection: {\n xaxis: {\n min: t.w.globals.minX,\n max: t.w.globals.maxX\n }\n }\n }\n }, !1, !1);\n }\n }, {\n key: \"setupBrushHandler\",\n value: function value() {\n var t = this,\n e = this.w;\n\n if (e.config.chart.brush.enabled && \"function\" != typeof e.config.chart.events.selection) {\n var i = e.config.chart.brush.targets || [e.config.chart.brush.target];\n i.forEach(function (e) {\n var i = ApexCharts.getChartByID(e);\n i.w.globals.brushSource = t.ctx, \"function\" != typeof i.w.config.chart.events.zoomed && (i.w.config.chart.events.zoomed = function () {\n t.updateSourceChart(i);\n }), \"function\" != typeof i.w.config.chart.events.scrolled && (i.w.config.chart.events.scrolled = function () {\n t.updateSourceChart(i);\n });\n }), e.config.chart.events.selection = function (t, a) {\n i.forEach(function (t) {\n var i = ApexCharts.getChartByID(t),\n s = f.clone(e.config.yaxis);\n\n if (e.config.chart.brush.autoScaleYaxis && 1 === i.w.globals.series.length) {\n var r = new j(i);\n s = r.autoScaleY(i, s, a);\n }\n\n var o = i.w.config.yaxis.reduce(function (t, e, a) {\n return [].concat(g(t), [n(n({}, i.w.config.yaxis[a]), {}, {\n min: s[0].min,\n max: s[0].max\n })]);\n }, []);\n\n i.ctx.updateHelpers._updateOptions({\n xaxis: {\n min: a.xaxis.min,\n max: a.xaxis.max\n },\n yaxis: o\n }, !1, !1, !1, !1);\n });\n };\n }\n }\n }]), t;\n}(),\n Xt = function () {\n function i(t) {\n e(this, i), this.ctx = t, this.w = t.w;\n }\n\n return a(i, [{\n key: \"_updateOptions\",\n value: function value(e) {\n var i = this,\n a = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],\n s = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],\n r = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3],\n n = arguments.length > 4 && void 0 !== arguments[4] && arguments[4],\n o = [this.ctx];\n r && (o = this.ctx.getSyncedCharts()), this.ctx.w.globals.isExecCalled && (o = [this.ctx], this.ctx.w.globals.isExecCalled = !1), o.forEach(function (r) {\n var o = r.w;\n return o.globals.shouldAnimate = s, a || (o.globals.resized = !0, o.globals.dataChanged = !0, s && r.series.getPreviousPaths()), e && \"object\" === t(e) && (r.config = new D(e), e = y.extendArrayProps(r.config, e, o), r.w.globals.chartID !== i.ctx.w.globals.chartID && delete e.series, o.config = f.extend(o.config, e), n && (o.globals.lastXAxis = e.xaxis ? f.clone(e.xaxis) : [], o.globals.lastYAxis = e.yaxis ? f.clone(e.yaxis) : [], o.globals.initialConfig = f.extend({}, o.config), o.globals.initialSeries = f.clone(o.config.series))), r.update(e);\n });\n }\n }, {\n key: \"_updateSeries\",\n value: function value(t, e) {\n var i,\n a = this,\n s = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],\n r = this.w;\n return r.globals.shouldAnimate = e, r.globals.dataChanged = !0, e && this.ctx.series.getPreviousPaths(), r.globals.axisCharts ? (0 === (i = t.map(function (t, e) {\n return a._extendSeries(t, e);\n })).length && (i = [{\n data: []\n }]), r.config.series = i) : r.config.series = t.slice(), s && (r.globals.initialSeries = f.clone(r.config.series)), this.ctx.update();\n }\n }, {\n key: \"_extendSeries\",\n value: function value(t, e) {\n var i = this.w,\n a = i.config.series[e];\n return n(n({}, i.config.series[e]), {}, {\n name: t.name ? t.name : a && a.name,\n color: t.color ? t.color : a && a.color,\n type: t.type ? t.type : a && a.type,\n data: t.data ? t.data : a && a.data\n });\n }\n }, {\n key: \"toggleDataPointSelection\",\n value: function value(t, e) {\n var i = this.w,\n a = null,\n s = \".apexcharts-series[data\\\\:realIndex='\".concat(t, \"']\");\n return i.globals.axisCharts ? a = i.globals.dom.Paper.select(\"\".concat(s, \" path[j='\").concat(e, \"'], \").concat(s, \" circle[j='\").concat(e, \"'], \").concat(s, \" rect[j='\").concat(e, \"']\")).members[0] : void 0 === e && (a = i.globals.dom.Paper.select(\"\".concat(s, \" path[j='\").concat(t, \"']\")).members[0], \"pie\" !== i.config.chart.type && \"polarArea\" !== i.config.chart.type && \"donut\" !== i.config.chart.type || this.ctx.pie.pieClicked(t)), a ? (new b(this.ctx).pathMouseDown(a, null), a.node ? a.node : null) : (console.warn(\"toggleDataPointSelection: Element not found\"), null);\n }\n }, {\n key: \"forceXAxisUpdate\",\n value: function value(t) {\n var e = this.w;\n\n if ([\"min\", \"max\"].forEach(function (i) {\n void 0 !== t.xaxis[i] && (e.config.xaxis[i] = t.xaxis[i], e.globals.lastXAxis[i] = t.xaxis[i]);\n }), t.xaxis.categories && t.xaxis.categories.length && (e.config.xaxis.categories = t.xaxis.categories), e.config.xaxis.convertedCatToNumeric) {\n var i = new R(t);\n t = i.convertCatToNumericXaxis(t, this.ctx);\n }\n\n return t;\n }\n }, {\n key: \"forceYAxisUpdate\",\n value: function value(t) {\n var e = this.w;\n return e.config.chart.stacked && \"100%\" === e.config.chart.stackType && (Array.isArray(t.yaxis) ? t.yaxis.forEach(function (e, i) {\n t.yaxis[i].min = 0, t.yaxis[i].max = 100;\n }) : (t.yaxis.min = 0, t.yaxis.max = 100)), t;\n }\n }, {\n key: \"revertDefaultAxisMinMax\",\n value: function value(t) {\n var e = this,\n i = this.w,\n a = i.globals.lastXAxis,\n s = i.globals.lastYAxis;\n t && t.xaxis && (a = t.xaxis), t && t.yaxis && (s = t.yaxis), i.config.xaxis.min = a.min, i.config.xaxis.max = a.max;\n\n var r = function r(t) {\n void 0 !== s[t] && (i.config.yaxis[t].min = s[t].min, i.config.yaxis[t].max = s[t].max);\n };\n\n i.config.yaxis.map(function (t, a) {\n i.globals.zoomed || void 0 !== s[a] ? r(a) : void 0 !== e.ctx.opts.yaxis[a] && (t.min = e.ctx.opts.yaxis[a].min, t.max = e.ctx.opts.yaxis[a].max);\n });\n }\n }]), i;\n}();\n\nTt = \"undefined\" != typeof window ? window : void 0, zt = function zt(e, i) {\n var a = (void 0 !== this ? this : e).SVG = function (t) {\n if (a.supported) return t = new a.Doc(t), a.parser.draw || a.prepare(), t;\n };\n\n if (a.ns = \"http://www.w3.org/2000/svg\", a.xmlns = \"http://www.w3.org/2000/xmlns/\", a.xlink = \"http://www.w3.org/1999/xlink\", a.svgjs = \"http://svgjs.com/svgjs\", a.supported = !0, !a.supported) return !1;\n a.did = 1e3, a.eid = function (t) {\n return \"Svgjs\" + d(t) + a.did++;\n }, a.create = function (t) {\n var e = i.createElementNS(this.ns, t);\n return e.setAttribute(\"id\", this.eid(t)), e;\n }, a.extend = function () {\n var t, e;\n e = (t = [].slice.call(arguments)).pop();\n\n for (var i = t.length - 1; i >= 0; i--) {\n if (t[i]) for (var s in e) {\n t[i].prototype[s] = e[s];\n }\n }\n\n a.Set && a.Set.inherit && a.Set.inherit();\n }, a.invent = function (t) {\n var e = \"function\" == typeof t.create ? t.create : function () {\n this.constructor.call(this, a.create(t.create));\n };\n return t.inherit && (e.prototype = new t.inherit()), t.extend && a.extend(e, t.extend), t.construct && a.extend(t.parent || a.Container, t.construct), e;\n }, a.adopt = function (t) {\n return t ? t.instance ? t.instance : ((i = \"svg\" == t.nodeName ? t.parentNode instanceof e.SVGElement ? new a.Nested() : new a.Doc() : \"linearGradient\" == t.nodeName ? new a.Gradient(\"linear\") : \"radialGradient\" == t.nodeName ? new a.Gradient(\"radial\") : a[d(t.nodeName)] ? new a[d(t.nodeName)]() : new a.Element(t)).type = t.nodeName, i.node = t, t.instance = i, i instanceof a.Doc && i.namespace().defs(), i.setData(JSON.parse(t.getAttribute(\"svgjs:data\")) || {}), i) : null;\n var i;\n }, a.prepare = function () {\n var t = i.getElementsByTagName(\"body\")[0],\n e = (t ? new a.Doc(t) : a.adopt(i.documentElement).nested()).size(2, 0);\n a.parser = {\n body: t || i.documentElement,\n draw: e.style(\"opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden\").node,\n poly: e.polyline().node,\n path: e.path().node,\n native: a.create(\"svg\")\n };\n }, a.parser = {\n native: a.create(\"svg\")\n }, i.addEventListener(\"DOMContentLoaded\", function () {\n a.parser.draw || a.prepare();\n }, !1), a.regex = {\n numberAndUnit: /^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i,\n hex: /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,\n rgb: /rgb\\((\\d+),(\\d+),(\\d+)\\)/,\n reference: /#([a-z0-9\\-_]+)/i,\n transforms: /\\)\\s*,?\\s*/,\n whitespace: /\\s/g,\n isHex: /^#[a-f0-9]{3,6}$/i,\n isRgb: /^rgb\\(/,\n isCss: /[^:]+:[^;]+;?/,\n isBlank: /^(\\s+)?$/,\n isNumber: /^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\n isPercent: /^-?[\\d\\.]+%$/,\n isImage: /\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i,\n delimiter: /[\\s,]+/,\n hyphen: /([^e])\\-/gi,\n pathLetters: /[MLHVCSQTAZ]/gi,\n isPathLetter: /[MLHVCSQTAZ]/i,\n numbersWithDots: /((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi,\n dots: /\\./g\n }, a.utils = {\n map: function map(t, e) {\n for (var i = t.length, a = [], s = 0; s < i; s++) {\n a.push(e(t[s]));\n }\n\n return a;\n },\n filter: function filter(t, e) {\n for (var i = t.length, a = [], s = 0; s < i; s++) {\n e(t[s]) && a.push(t[s]);\n }\n\n return a;\n },\n filterSVGElements: function filterSVGElements(t) {\n return this.filter(t, function (t) {\n return t instanceof e.SVGElement;\n });\n }\n }, a.defaults = {\n attrs: {\n \"fill-opacity\": 1,\n \"stroke-opacity\": 1,\n \"stroke-width\": 0,\n \"stroke-linejoin\": \"miter\",\n \"stroke-linecap\": \"butt\",\n fill: \"#000000\",\n stroke: \"#000000\",\n opacity: 1,\n x: 0,\n y: 0,\n cx: 0,\n cy: 0,\n width: 0,\n height: 0,\n r: 0,\n rx: 0,\n ry: 0,\n offset: 0,\n \"stop-opacity\": 1,\n \"stop-color\": \"#000000\",\n \"font-size\": 16,\n \"font-family\": \"Helvetica, Arial, sans-serif\",\n \"text-anchor\": \"start\"\n }\n }, a.Color = function (e) {\n var i, s;\n this.r = 0, this.g = 0, this.b = 0, e && (\"string\" == typeof e ? a.regex.isRgb.test(e) ? (i = a.regex.rgb.exec(e.replace(a.regex.whitespace, \"\")), this.r = parseInt(i[1]), this.g = parseInt(i[2]), this.b = parseInt(i[3])) : a.regex.isHex.test(e) && (i = a.regex.hex.exec(4 == (s = e).length ? [\"#\", s.substring(1, 2), s.substring(1, 2), s.substring(2, 3), s.substring(2, 3), s.substring(3, 4), s.substring(3, 4)].join(\"\") : s), this.r = parseInt(i[1], 16), this.g = parseInt(i[2], 16), this.b = parseInt(i[3], 16)) : \"object\" === t(e) && (this.r = e.r, this.g = e.g, this.b = e.b));\n }, a.extend(a.Color, {\n toString: function toString() {\n return this.toHex();\n },\n toHex: function toHex() {\n return \"#\" + g(this.r) + g(this.g) + g(this.b);\n },\n toRgb: function toRgb() {\n return \"rgb(\" + [this.r, this.g, this.b].join() + \")\";\n },\n brightness: function brightness() {\n return this.r / 255 * .3 + this.g / 255 * .59 + this.b / 255 * .11;\n },\n morph: function morph(t) {\n return this.destination = new a.Color(t), this;\n },\n at: function at(t) {\n return this.destination ? (t = t < 0 ? 0 : t > 1 ? 1 : t, new a.Color({\n r: ~~(this.r + (this.destination.r - this.r) * t),\n g: ~~(this.g + (this.destination.g - this.g) * t),\n b: ~~(this.b + (this.destination.b - this.b) * t)\n })) : this;\n }\n }), a.Color.test = function (t) {\n return t += \"\", a.regex.isHex.test(t) || a.regex.isRgb.test(t);\n }, a.Color.isRgb = function (t) {\n return t && \"number\" == typeof t.r && \"number\" == typeof t.g && \"number\" == typeof t.b;\n }, a.Color.isColor = function (t) {\n return a.Color.isRgb(t) || a.Color.test(t);\n }, a.Array = function (t, e) {\n 0 == (t = (t || []).valueOf()).length && e && (t = e.valueOf()), this.value = this.parse(t);\n }, a.extend(a.Array, {\n toString: function toString() {\n return this.value.join(\" \");\n },\n valueOf: function valueOf() {\n return this.value;\n },\n parse: function parse(t) {\n return t = t.valueOf(), Array.isArray(t) ? t : this.split(t);\n }\n }), a.PointArray = function (t, e) {\n a.Array.call(this, t, e || [[0, 0]]);\n }, a.PointArray.prototype = new a.Array(), a.PointArray.prototype.constructor = a.PointArray;\n\n for (var s = {\n M: function M(t, e, i) {\n return e.x = i.x = t[0], e.y = i.y = t[1], [\"M\", e.x, e.y];\n },\n L: function L(t, e) {\n return e.x = t[0], e.y = t[1], [\"L\", t[0], t[1]];\n },\n H: function H(t, e) {\n return e.x = t[0], [\"H\", t[0]];\n },\n V: function V(t, e) {\n return e.y = t[0], [\"V\", t[0]];\n },\n C: function C(t, e) {\n return e.x = t[4], e.y = t[5], [\"C\", t[0], t[1], t[2], t[3], t[4], t[5]];\n },\n Q: function Q(t, e) {\n return e.x = t[2], e.y = t[3], [\"Q\", t[0], t[1], t[2], t[3]];\n },\n Z: function Z(t, e, i) {\n return e.x = i.x, e.y = i.y, [\"Z\"];\n }\n }, r = \"mlhvqtcsaz\".split(\"\"), n = 0, o = r.length; n < o; ++n) {\n s[r[n]] = function (t) {\n return function (e, i, a) {\n if (\"H\" == t) e[0] = e[0] + i.x;else if (\"V\" == t) e[0] = e[0] + i.y;else if (\"A\" == t) e[5] = e[5] + i.x, e[6] = e[6] + i.y;else for (var r = 0, n = e.length; r < n; ++r) {\n e[r] = e[r] + (r % 2 ? i.y : i.x);\n }\n return s[t](e, i, a);\n };\n }(r[n].toUpperCase());\n }\n\n a.PathArray = function (t, e) {\n a.Array.call(this, t, e || [[\"M\", 0, 0]]);\n }, a.PathArray.prototype = new a.Array(), a.PathArray.prototype.constructor = a.PathArray, a.extend(a.PathArray, {\n toString: function toString() {\n return function (t) {\n for (var e = 0, i = t.length, a = \"\"; e < i; e++) {\n a += t[e][0], null != t[e][1] && (a += t[e][1], null != t[e][2] && (a += \" \", a += t[e][2], null != t[e][3] && (a += \" \", a += t[e][3], a += \" \", a += t[e][4], null != t[e][5] && (a += \" \", a += t[e][5], a += \" \", a += t[e][6], null != t[e][7] && (a += \" \", a += t[e][7])))));\n }\n\n return a + \" \";\n }(this.value);\n },\n move: function move(t, e) {\n var i = this.bbox();\n return i.x, i.y, this;\n },\n at: function at(t) {\n if (!this.destination) return this;\n\n for (var e = this.value, i = this.destination.value, s = [], r = new a.PathArray(), n = 0, o = e.length; n < o; n++) {\n s[n] = [e[n][0]];\n\n for (var l = 1, h = e[n].length; l < h; l++) {\n s[n][l] = e[n][l] + (i[n][l] - e[n][l]) * t;\n }\n\n \"A\" === s[n][0] && (s[n][4] = +(0 != s[n][4]), s[n][5] = +(0 != s[n][5]));\n }\n\n return r.value = s, r;\n },\n parse: function parse(t) {\n if (t instanceof a.PathArray) return t.valueOf();\n var e,\n i = {\n M: 2,\n L: 2,\n H: 1,\n V: 1,\n C: 6,\n S: 4,\n Q: 4,\n T: 2,\n A: 7,\n Z: 0\n };\n t = \"string\" == typeof t ? t.replace(a.regex.numbersWithDots, h).replace(a.regex.pathLetters, \" $& \").replace(a.regex.hyphen, \"$1 -\").trim().split(a.regex.delimiter) : t.reduce(function (t, e) {\n return [].concat.call(t, e);\n }, []);\n var r = [],\n n = new a.Point(),\n o = new a.Point(),\n l = 0,\n c = t.length;\n\n do {\n a.regex.isPathLetter.test(t[l]) ? (e = t[l], ++l) : \"M\" == e ? e = \"L\" : \"m\" == e && (e = \"l\"), r.push(s[e].call(null, t.slice(l, l += i[e.toUpperCase()]).map(parseFloat), n, o));\n } while (c > l);\n\n return r;\n },\n bbox: function bbox() {\n return a.parser.draw || a.prepare(), a.parser.path.setAttribute(\"d\", this.toString()), a.parser.path.getBBox();\n }\n }), a.Number = a.invent({\n create: function create(t, e) {\n this.value = 0, this.unit = e || \"\", \"number\" == typeof t ? this.value = isNaN(t) ? 0 : isFinite(t) ? t : t < 0 ? -34e37 : 34e37 : \"string\" == typeof t ? (e = t.match(a.regex.numberAndUnit)) && (this.value = parseFloat(e[1]), \"%\" == e[5] ? this.value /= 100 : \"s\" == e[5] && (this.value *= 1e3), this.unit = e[5]) : t instanceof a.Number && (this.value = t.valueOf(), this.unit = t.unit);\n },\n extend: {\n toString: function toString() {\n return (\"%\" == this.unit ? ~~(1e8 * this.value) / 1e6 : \"s\" == this.unit ? this.value / 1e3 : this.value) + this.unit;\n },\n toJSON: function toJSON() {\n return this.toString();\n },\n valueOf: function valueOf() {\n return this.value;\n },\n plus: function plus(t) {\n return t = new a.Number(t), new a.Number(this + t, this.unit || t.unit);\n },\n minus: function minus(t) {\n return t = new a.Number(t), new a.Number(this - t, this.unit || t.unit);\n },\n times: function times(t) {\n return t = new a.Number(t), new a.Number(this * t, this.unit || t.unit);\n },\n divide: function divide(t) {\n return t = new a.Number(t), new a.Number(this / t, this.unit || t.unit);\n },\n to: function to(t) {\n var e = new a.Number(this);\n return \"string\" == typeof t && (e.unit = t), e;\n },\n morph: function morph(t) {\n return this.destination = new a.Number(t), t.relative && (this.destination.value += this.value), this;\n },\n at: function at(t) {\n return this.destination ? new a.Number(this.destination).minus(this).times(t).plus(this) : this;\n }\n }\n }), a.Element = a.invent({\n create: function create(t) {\n this._stroke = a.defaults.attrs.stroke, this._event = null, this.dom = {}, (this.node = t) && (this.type = t.nodeName, this.node.instance = this, this._stroke = t.getAttribute(\"stroke\") || this._stroke);\n },\n extend: {\n x: function x(t) {\n return this.attr(\"x\", t);\n },\n y: function y(t) {\n return this.attr(\"y\", t);\n },\n cx: function cx(t) {\n return null == t ? this.x() + this.width() / 2 : this.x(t - this.width() / 2);\n },\n cy: function cy(t) {\n return null == t ? this.y() + this.height() / 2 : this.y(t - this.height() / 2);\n },\n move: function move(t, e) {\n return this.x(t).y(e);\n },\n center: function center(t, e) {\n return this.cx(t).cy(e);\n },\n width: function width(t) {\n return this.attr(\"width\", t);\n },\n height: function height(t) {\n return this.attr(\"height\", t);\n },\n size: function size(t, e) {\n var i = u(this, t, e);\n return this.width(new a.Number(i.width)).height(new a.Number(i.height));\n },\n clone: function clone(t) {\n this.writeDataToDom();\n var e = x(this.node.cloneNode(!0));\n return t ? t.add(e) : this.after(e), e;\n },\n remove: function remove() {\n return this.parent() && this.parent().removeElement(this), this;\n },\n replace: function replace(t) {\n return this.after(t).remove(), t;\n },\n addTo: function addTo(t) {\n return t.put(this);\n },\n putIn: function putIn(t) {\n return t.add(this);\n },\n id: function id(t) {\n return this.attr(\"id\", t);\n },\n show: function show() {\n return this.style(\"display\", \"\");\n },\n hide: function hide() {\n return this.style(\"display\", \"none\");\n },\n visible: function visible() {\n return \"none\" != this.style(\"display\");\n },\n toString: function toString() {\n return this.attr(\"id\");\n },\n classes: function classes() {\n var t = this.attr(\"class\");\n return null == t ? [] : t.trim().split(a.regex.delimiter);\n },\n hasClass: function hasClass(t) {\n return -1 != this.classes().indexOf(t);\n },\n addClass: function addClass(t) {\n if (!this.hasClass(t)) {\n var e = this.classes();\n e.push(t), this.attr(\"class\", e.join(\" \"));\n }\n\n return this;\n },\n removeClass: function removeClass(t) {\n return this.hasClass(t) && this.attr(\"class\", this.classes().filter(function (e) {\n return e != t;\n }).join(\" \")), this;\n },\n toggleClass: function toggleClass(t) {\n return this.hasClass(t) ? this.removeClass(t) : this.addClass(t);\n },\n reference: function reference(t) {\n return a.get(this.attr(t));\n },\n parent: function parent(t) {\n var i = this;\n if (!i.node.parentNode) return null;\n if (i = a.adopt(i.node.parentNode), !t) return i;\n\n for (; i && i.node instanceof e.SVGElement;) {\n if (\"string\" == typeof t ? i.matches(t) : i instanceof t) return i;\n if (!i.node.parentNode || \"#document\" == i.node.parentNode.nodeName) return null;\n i = a.adopt(i.node.parentNode);\n }\n },\n doc: function doc() {\n return this instanceof a.Doc ? this : this.parent(a.Doc);\n },\n parents: function parents(t) {\n var e = [],\n i = this;\n\n do {\n if (!(i = i.parent(t)) || !i.node) break;\n e.push(i);\n } while (i.parent);\n\n return e;\n },\n matches: function matches(t) {\n return function (t, e) {\n return (t.matches || t.matchesSelector || t.msMatchesSelector || t.mozMatchesSelector || t.webkitMatchesSelector || t.oMatchesSelector).call(t, e);\n }(this.node, t);\n },\n native: function native() {\n return this.node;\n },\n svg: function svg(t) {\n var e = i.createElement(\"svg\");\n if (!(t && this instanceof a.Parent)) return e.appendChild(t = i.createElement(\"svg\")), this.writeDataToDom(), t.appendChild(this.node.cloneNode(!0)), e.innerHTML.replace(/^/, \"\").replace(/<\\/svg>$/, \"\");\n e.innerHTML = \"\" + t.replace(/\\n/, \"\").replace(/<([\\w:-]+)([^<]+?)\\/>/g, \"<$1$2>\") + \"\";\n\n for (var s = 0, r = e.firstChild.childNodes.length; s < r; s++) {\n this.node.appendChild(e.firstChild.firstChild);\n }\n\n return this;\n },\n writeDataToDom: function writeDataToDom() {\n return (this.each || this.lines) && (this.each ? this : this.lines()).each(function () {\n this.writeDataToDom();\n }), this.node.removeAttribute(\"svgjs:data\"), Object.keys(this.dom).length && this.node.setAttribute(\"svgjs:data\", JSON.stringify(this.dom)), this;\n },\n setData: function setData(t) {\n return this.dom = t, this;\n },\n is: function is(t) {\n return function (t, e) {\n return t instanceof e;\n }(this, t);\n }\n }\n }), a.easing = {\n \"-\": function _(t) {\n return t;\n },\n \"<>\": function _(t) {\n return -Math.cos(t * Math.PI) / 2 + .5;\n },\n \">\": function _(t) {\n return Math.sin(t * Math.PI / 2);\n },\n \"<\": function _(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n }, a.morph = function (t) {\n return function (e, i) {\n return new a.MorphObj(e, i).at(t);\n };\n }, a.Situation = a.invent({\n create: function create(t) {\n this.init = !1, this.reversed = !1, this.reversing = !1, this.duration = new a.Number(t.duration).valueOf(), this.delay = new a.Number(t.delay).valueOf(), this.start = +new Date() + this.delay, this.finish = this.start + this.duration, this.ease = t.ease, this.loop = 0, this.loops = !1, this.animations = {}, this.attrs = {}, this.styles = {}, this.transforms = [], this.once = {};\n }\n }), a.FX = a.invent({\n create: function create(t) {\n this._target = t, this.situations = [], this.active = !1, this.situation = null, this.paused = !1, this.lastPos = 0, this.pos = 0, this.absPos = 0, this._speed = 1;\n },\n extend: {\n animate: function animate(e, i, s) {\n \"object\" === t(e) && (i = e.ease, s = e.delay, e = e.duration);\n var r = new a.Situation({\n duration: e || 1e3,\n delay: s || 0,\n ease: a.easing[i || \"-\"] || i\n });\n return this.queue(r), this;\n },\n target: function target(t) {\n return t && t instanceof a.Element ? (this._target = t, this) : this._target;\n },\n timeToAbsPos: function timeToAbsPos(t) {\n return (t - this.situation.start) / (this.situation.duration / this._speed);\n },\n absPosToTime: function absPosToTime(t) {\n return this.situation.duration / this._speed * t + this.situation.start;\n },\n startAnimFrame: function startAnimFrame() {\n this.stopAnimFrame(), this.animationFrame = e.requestAnimationFrame(function () {\n this.step();\n }.bind(this));\n },\n stopAnimFrame: function stopAnimFrame() {\n e.cancelAnimationFrame(this.animationFrame);\n },\n start: function start() {\n return !this.active && this.situation && (this.active = !0, this.startCurrent()), this;\n },\n startCurrent: function startCurrent() {\n return this.situation.start = +new Date() + this.situation.delay / this._speed, this.situation.finish = this.situation.start + this.situation.duration / this._speed, this.initAnimations().step();\n },\n queue: function queue(t) {\n return (\"function\" == typeof t || t instanceof a.Situation) && this.situations.push(t), this.situation || (this.situation = this.situations.shift()), this;\n },\n dequeue: function dequeue() {\n return this.stop(), this.situation = this.situations.shift(), this.situation && (this.situation instanceof a.Situation ? this.start() : this.situation.call(this)), this;\n },\n initAnimations: function initAnimations() {\n var t,\n e = this.situation;\n if (e.init) return this;\n\n for (var i in e.animations) {\n t = this.target()[i](), Array.isArray(t) || (t = [t]), Array.isArray(e.animations[i]) || (e.animations[i] = [e.animations[i]]);\n\n for (var s = t.length; s--;) {\n e.animations[i][s] instanceof a.Number && (t[s] = new a.Number(t[s])), e.animations[i][s] = t[s].morph(e.animations[i][s]);\n }\n }\n\n for (var i in e.attrs) {\n e.attrs[i] = new a.MorphObj(this.target().attr(i), e.attrs[i]);\n }\n\n for (var i in e.styles) {\n e.styles[i] = new a.MorphObj(this.target().style(i), e.styles[i]);\n }\n\n return e.initialTransformation = this.target().matrixify(), e.init = !0, this;\n },\n clearQueue: function clearQueue() {\n return this.situations = [], this;\n },\n clearCurrent: function clearCurrent() {\n return this.situation = null, this;\n },\n stop: function stop(t, e) {\n var i = this.active;\n return this.active = !1, e && this.clearQueue(), t && this.situation && (!i && this.startCurrent(), this.atEnd()), this.stopAnimFrame(), this.clearCurrent();\n },\n after: function after(t) {\n var e = this.last();\n return this.target().on(\"finished.fx\", function i(a) {\n a.detail.situation == e && (t.call(this, e), this.off(\"finished.fx\", i));\n }), this._callStart();\n },\n during: function during(t) {\n var e = this.last(),\n i = function i(_i3) {\n _i3.detail.situation == e && t.call(this, _i3.detail.pos, a.morph(_i3.detail.pos), _i3.detail.eased, e);\n };\n\n return this.target().off(\"during.fx\", i).on(\"during.fx\", i), this.after(function () {\n this.off(\"during.fx\", i);\n }), this._callStart();\n },\n afterAll: function afterAll(t) {\n var e = function e(i) {\n t.call(this), this.off(\"allfinished.fx\", e);\n };\n\n return this.target().off(\"allfinished.fx\", e).on(\"allfinished.fx\", e), this._callStart();\n },\n last: function last() {\n return this.situations.length ? this.situations[this.situations.length - 1] : this.situation;\n },\n add: function add(t, e, i) {\n return this.last()[i || \"animations\"][t] = e, this._callStart();\n },\n step: function step(t) {\n var e, i, a;\n t || (this.absPos = this.timeToAbsPos(+new Date())), !1 !== this.situation.loops ? (e = Math.max(this.absPos, 0), i = Math.floor(e), !0 === this.situation.loops || i < this.situation.loops ? (this.pos = e - i, a = this.situation.loop, this.situation.loop = i) : (this.absPos = this.situation.loops, this.pos = 1, a = this.situation.loop - 1, this.situation.loop = this.situation.loops), this.situation.reversing && (this.situation.reversed = this.situation.reversed != Boolean((this.situation.loop - a) % 2))) : (this.absPos = Math.min(this.absPos, 1), this.pos = this.absPos), this.pos < 0 && (this.pos = 0), this.situation.reversed && (this.pos = 1 - this.pos);\n var s = this.situation.ease(this.pos);\n\n for (var r in this.situation.once) {\n r > this.lastPos && r <= s && (this.situation.once[r].call(this.target(), this.pos, s), delete this.situation.once[r]);\n }\n\n return this.active && this.target().fire(\"during\", {\n pos: this.pos,\n eased: s,\n fx: this,\n situation: this.situation\n }), this.situation ? (this.eachAt(), 1 == this.pos && !this.situation.reversed || this.situation.reversed && 0 == this.pos ? (this.stopAnimFrame(), this.target().fire(\"finished\", {\n fx: this,\n situation: this.situation\n }), this.situations.length || (this.target().fire(\"allfinished\"), this.situations.length || (this.target().off(\".fx\"), this.active = !1)), this.active ? this.dequeue() : this.clearCurrent()) : !this.paused && this.active && this.startAnimFrame(), this.lastPos = s, this) : this;\n },\n eachAt: function eachAt() {\n var t,\n e = this,\n i = this.target(),\n s = this.situation;\n\n for (var r in s.animations) {\n t = [].concat(s.animations[r]).map(function (t) {\n return \"string\" != typeof t && t.at ? t.at(s.ease(e.pos), e.pos) : t;\n }), i[r].apply(i, t);\n }\n\n for (var r in s.attrs) {\n t = [r].concat(s.attrs[r]).map(function (t) {\n return \"string\" != typeof t && t.at ? t.at(s.ease(e.pos), e.pos) : t;\n }), i.attr.apply(i, t);\n }\n\n for (var r in s.styles) {\n t = [r].concat(s.styles[r]).map(function (t) {\n return \"string\" != typeof t && t.at ? t.at(s.ease(e.pos), e.pos) : t;\n }), i.style.apply(i, t);\n }\n\n if (s.transforms.length) {\n t = s.initialTransformation, r = 0;\n\n for (var n = s.transforms.length; r < n; r++) {\n var o = s.transforms[r];\n o instanceof a.Matrix ? t = o.relative ? t.multiply(new a.Matrix().morph(o).at(s.ease(this.pos))) : t.morph(o).at(s.ease(this.pos)) : (o.relative || o.undo(t.extract()), t = t.multiply(o.at(s.ease(this.pos))));\n }\n\n i.matrix(t);\n }\n\n return this;\n },\n once: function once(t, e, i) {\n var a = this.last();\n return i || (t = a.ease(t)), a.once[t] = e, this;\n },\n _callStart: function _callStart() {\n return setTimeout(function () {\n this.start();\n }.bind(this), 0), this;\n }\n },\n parent: a.Element,\n construct: {\n animate: function animate(t, e, i) {\n return (this.fx || (this.fx = new a.FX(this))).animate(t, e, i);\n },\n delay: function delay(t) {\n return (this.fx || (this.fx = new a.FX(this))).delay(t);\n },\n stop: function stop(t, e) {\n return this.fx && this.fx.stop(t, e), this;\n },\n finish: function finish() {\n return this.fx && this.fx.finish(), this;\n }\n }\n }), a.MorphObj = a.invent({\n create: function create(t, e) {\n return a.Color.isColor(e) ? new a.Color(t).morph(e) : a.regex.delimiter.test(t) ? a.regex.pathLetters.test(t) ? new a.PathArray(t).morph(e) : new a.Array(t).morph(e) : a.regex.numberAndUnit.test(e) ? new a.Number(t).morph(e) : (this.value = t, void (this.destination = e));\n },\n extend: {\n at: function at(t, e) {\n return e < 1 ? this.value : this.destination;\n },\n valueOf: function valueOf() {\n return this.value;\n }\n }\n }), a.extend(a.FX, {\n attr: function attr(e, i, a) {\n if (\"object\" === t(e)) for (var s in e) {\n this.attr(s, e[s]);\n } else this.add(e, i, \"attrs\");\n return this;\n },\n plot: function plot(t, e, i, a) {\n return 4 == arguments.length ? this.plot([t, e, i, a]) : this.add(\"plot\", new (this.target().morphArray)(t));\n }\n }), a.Box = a.invent({\n create: function create(e, i, s, r) {\n if (!(\"object\" !== t(e) || e instanceof a.Element)) return a.Box.call(this, null != e.left ? e.left : e.x, null != e.top ? e.top : e.y, e.width, e.height);\n 4 == arguments.length && (this.x = e, this.y = i, this.width = s, this.height = r), b(this);\n }\n }), a.BBox = a.invent({\n create: function create(t) {\n if (a.Box.apply(this, [].slice.call(arguments)), t instanceof a.Element) {\n var e;\n\n try {\n if (!i.documentElement.contains) {\n for (var s = t.node; s.parentNode;) {\n s = s.parentNode;\n }\n\n if (s != i) throw new Error(\"Element not in the dom\");\n }\n\n e = t.node.getBBox();\n } catch (i) {\n if (t instanceof a.Shape) {\n a.parser.draw || a.prepare();\n var r = t.clone(a.parser.draw.instance).show();\n e = r.node.getBBox(), r.remove();\n } else e = {\n x: t.node.clientLeft,\n y: t.node.clientTop,\n width: t.node.clientWidth,\n height: t.node.clientHeight\n };\n }\n\n a.Box.call(this, e);\n }\n },\n inherit: a.Box,\n parent: a.Element,\n construct: {\n bbox: function bbox() {\n return new a.BBox(this);\n }\n }\n }), a.BBox.prototype.constructor = a.BBox, a.Matrix = a.invent({\n create: function create(e) {\n var i = p([1, 0, 0, 1, 0, 0]);\n e = e instanceof a.Element ? e.matrixify() : \"string\" == typeof e ? p(e.split(a.regex.delimiter).map(parseFloat)) : 6 == arguments.length ? p([].slice.call(arguments)) : Array.isArray(e) ? p(e) : \"object\" === t(e) ? e : i;\n\n for (var s = v.length - 1; s >= 0; --s) {\n this[v[s]] = null != e[v[s]] ? e[v[s]] : i[v[s]];\n }\n },\n extend: {\n extract: function extract() {\n var t = f(this, 0, 1),\n e = (f(this, 1, 0), 180 / Math.PI * Math.atan2(t.y, t.x) - 90);\n return {\n x: this.e,\n y: this.f,\n transformedX: (this.e * Math.cos(e * Math.PI / 180) + this.f * Math.sin(e * Math.PI / 180)) / Math.sqrt(this.a * this.a + this.b * this.b),\n transformedY: (this.f * Math.cos(e * Math.PI / 180) + this.e * Math.sin(-e * Math.PI / 180)) / Math.sqrt(this.c * this.c + this.d * this.d),\n rotation: e,\n a: this.a,\n b: this.b,\n c: this.c,\n d: this.d,\n e: this.e,\n f: this.f,\n matrix: new a.Matrix(this)\n };\n },\n clone: function clone() {\n return new a.Matrix(this);\n },\n morph: function morph(t) {\n return this.destination = new a.Matrix(t), this;\n },\n multiply: function multiply(t) {\n return new a.Matrix(this.native().multiply(function (t) {\n return t instanceof a.Matrix || (t = new a.Matrix(t)), t;\n }(t).native()));\n },\n inverse: function inverse() {\n return new a.Matrix(this.native().inverse());\n },\n translate: function translate(t, e) {\n return new a.Matrix(this.native().translate(t || 0, e || 0));\n },\n native: function native() {\n for (var t = a.parser.native.createSVGMatrix(), e = v.length - 1; e >= 0; e--) {\n t[v[e]] = this[v[e]];\n }\n\n return t;\n },\n toString: function toString() {\n return \"matrix(\" + m(this.a) + \",\" + m(this.b) + \",\" + m(this.c) + \",\" + m(this.d) + \",\" + m(this.e) + \",\" + m(this.f) + \")\";\n }\n },\n parent: a.Element,\n construct: {\n ctm: function ctm() {\n return new a.Matrix(this.node.getCTM());\n },\n screenCTM: function screenCTM() {\n if (this instanceof a.Nested) {\n var t = this.rect(1, 1),\n e = t.node.getScreenCTM();\n return t.remove(), new a.Matrix(e);\n }\n\n return new a.Matrix(this.node.getScreenCTM());\n }\n }\n }), a.Point = a.invent({\n create: function create(e, i) {\n var a;\n a = Array.isArray(e) ? {\n x: e[0],\n y: e[1]\n } : \"object\" === t(e) ? {\n x: e.x,\n y: e.y\n } : null != e ? {\n x: e,\n y: null != i ? i : e\n } : {\n x: 0,\n y: 0\n }, this.x = a.x, this.y = a.y;\n },\n extend: {\n clone: function clone() {\n return new a.Point(this);\n },\n morph: function morph(t, e) {\n return this.destination = new a.Point(t, e), this;\n }\n }\n }), a.extend(a.Element, {\n point: function point(t, e) {\n return new a.Point(t, e).transform(this.screenCTM().inverse());\n }\n }), a.extend(a.Element, {\n attr: function attr(e, i, s) {\n if (null == e) {\n for (e = {}, s = (i = this.node.attributes).length - 1; s >= 0; s--) {\n e[i[s].nodeName] = a.regex.isNumber.test(i[s].nodeValue) ? parseFloat(i[s].nodeValue) : i[s].nodeValue;\n }\n\n return e;\n }\n\n if (\"object\" === t(e)) for (var r in e) {\n this.attr(r, e[r]);\n } else if (null === i) this.node.removeAttribute(e);else {\n if (null == i) return null == (i = this.node.getAttribute(e)) ? a.defaults.attrs[e] : a.regex.isNumber.test(i) ? parseFloat(i) : i;\n \"stroke-width\" == e ? this.attr(\"stroke\", parseFloat(i) > 0 ? this._stroke : null) : \"stroke\" == e && (this._stroke = i), \"fill\" != e && \"stroke\" != e || (a.regex.isImage.test(i) && (i = this.doc().defs().image(i, 0, 0)), i instanceof a.Image && (i = this.doc().defs().pattern(0, 0, function () {\n this.add(i);\n }))), \"number\" == typeof i ? i = new a.Number(i) : a.Color.isColor(i) ? i = new a.Color(i) : Array.isArray(i) && (i = new a.Array(i)), \"leading\" == e ? this.leading && this.leading(i) : \"string\" == typeof s ? this.node.setAttributeNS(s, e, i.toString()) : this.node.setAttribute(e, i.toString()), !this.rebuild || \"font-size\" != e && \"x\" != e || this.rebuild(e, i);\n }\n return this;\n }\n }), a.extend(a.Element, {\n transform: function transform(e, i) {\n var s;\n return \"object\" !== t(e) ? (s = new a.Matrix(this).extract(), \"string\" == typeof e ? s[e] : s) : (s = new a.Matrix(this), i = !!i || !!e.relative, null != e.a && (s = i ? s.multiply(new a.Matrix(e)) : new a.Matrix(e)), this.attr(\"transform\", s));\n }\n }), a.extend(a.Element, {\n untransform: function untransform() {\n return this.attr(\"transform\", null);\n },\n matrixify: function matrixify() {\n return (this.attr(\"transform\") || \"\").split(a.regex.transforms).slice(0, -1).map(function (t) {\n var e = t.trim().split(\"(\");\n return [e[0], e[1].split(a.regex.delimiter).map(function (t) {\n return parseFloat(t);\n })];\n }).reduce(function (t, e) {\n return \"matrix\" == e[0] ? t.multiply(p(e[1])) : t[e[0]].apply(t, e[1]);\n }, new a.Matrix());\n },\n toParent: function toParent(t) {\n if (this == t) return this;\n var e = this.screenCTM(),\n i = t.screenCTM().inverse();\n return this.addTo(t).untransform().transform(i.multiply(e)), this;\n },\n toDoc: function toDoc() {\n return this.toParent(this.doc());\n }\n }), a.Transformation = a.invent({\n create: function create(e, i) {\n if (arguments.length > 1 && \"boolean\" != typeof i) return this.constructor.call(this, [].slice.call(arguments));\n if (Array.isArray(e)) for (var a = 0, s = this.arguments.length; a < s; ++a) {\n this[this.arguments[a]] = e[a];\n } else if (\"object\" === t(e)) for (a = 0, s = this.arguments.length; a < s; ++a) {\n this[this.arguments[a]] = e[this.arguments[a]];\n }\n this.inversed = !1, !0 === i && (this.inversed = !0);\n }\n }), a.Translate = a.invent({\n parent: a.Matrix,\n inherit: a.Transformation,\n create: function create(t, e) {\n this.constructor.apply(this, [].slice.call(arguments));\n },\n extend: {\n arguments: [\"transformedX\", \"transformedY\"],\n method: \"translate\"\n }\n }), a.extend(a.Element, {\n style: function style(e, i) {\n if (0 == arguments.length) return this.node.style.cssText || \"\";\n if (arguments.length < 2) {\n if (\"object\" === t(e)) for (var s in e) {\n this.style(s, e[s]);\n } else {\n if (!a.regex.isCss.test(e)) return this.node.style[c(e)];\n\n for (e = e.split(/\\s*;\\s*/).filter(function (t) {\n return !!t;\n }).map(function (t) {\n return t.split(/\\s*:\\s*/);\n }); i = e.pop();) {\n this.style(i[0], i[1]);\n }\n }\n } else this.node.style[c(e)] = null === i || a.regex.isBlank.test(i) ? \"\" : i;\n return this;\n }\n }), a.Parent = a.invent({\n create: function create(t) {\n this.constructor.call(this, t);\n },\n inherit: a.Element,\n extend: {\n children: function children() {\n return a.utils.map(a.utils.filterSVGElements(this.node.childNodes), function (t) {\n return a.adopt(t);\n });\n },\n add: function add(t, e) {\n return null == e ? this.node.appendChild(t.node) : t.node != this.node.childNodes[e] && this.node.insertBefore(t.node, this.node.childNodes[e]), this;\n },\n put: function put(t, e) {\n return this.add(t, e), t;\n },\n has: function has(t) {\n return this.index(t) >= 0;\n },\n index: function index(t) {\n return [].slice.call(this.node.childNodes).indexOf(t.node);\n },\n get: function get(t) {\n return a.adopt(this.node.childNodes[t]);\n },\n first: function first() {\n return this.get(0);\n },\n last: function last() {\n return this.get(this.node.childNodes.length - 1);\n },\n each: function each(t, e) {\n for (var i = this.children(), s = 0, r = i.length; s < r; s++) {\n i[s] instanceof a.Element && t.apply(i[s], [s, i]), e && i[s] instanceof a.Container && i[s].each(t, e);\n }\n\n return this;\n },\n removeElement: function removeElement(t) {\n return this.node.removeChild(t.node), this;\n },\n clear: function clear() {\n for (; this.node.hasChildNodes();) {\n this.node.removeChild(this.node.lastChild);\n }\n\n return delete this._defs, this;\n },\n defs: function defs() {\n return this.doc().defs();\n }\n }\n }), a.extend(a.Parent, {\n ungroup: function ungroup(t, e) {\n return 0 === e || this instanceof a.Defs || this.node == a.parser.draw || (t = t || (this instanceof a.Doc ? this : this.parent(a.Parent)), e = e || 1 / 0, this.each(function () {\n return this instanceof a.Defs ? this : this instanceof a.Parent ? this.ungroup(t, e - 1) : this.toParent(t);\n }), this.node.firstChild || this.remove()), this;\n },\n flatten: function flatten(t, e) {\n return this.ungroup(t, e);\n }\n }), a.Container = a.invent({\n create: function create(t) {\n this.constructor.call(this, t);\n },\n inherit: a.Parent\n }), a.ViewBox = a.invent({\n parent: a.Container,\n construct: {}\n }), [\"click\", \"dblclick\", \"mousedown\", \"mouseup\", \"mouseover\", \"mouseout\", \"mousemove\", \"touchstart\", \"touchmove\", \"touchleave\", \"touchend\", \"touchcancel\"].forEach(function (t) {\n a.Element.prototype[t] = function (e) {\n return a.on(this.node, t, e), this;\n };\n }), a.listeners = [], a.handlerMap = [], a.listenerId = 0, a.on = function (t, e, i, s, r) {\n var n = i.bind(s || t.instance || t),\n o = (a.handlerMap.indexOf(t) + 1 || a.handlerMap.push(t)) - 1,\n l = e.split(\".\")[0],\n h = e.split(\".\")[1] || \"*\";\n a.listeners[o] = a.listeners[o] || {}, a.listeners[o][l] = a.listeners[o][l] || {}, a.listeners[o][l][h] = a.listeners[o][l][h] || {}, i._svgjsListenerId || (i._svgjsListenerId = ++a.listenerId), a.listeners[o][l][h][i._svgjsListenerId] = n, t.addEventListener(l, n, r || {\n passive: !0\n });\n }, a.off = function (t, e, i) {\n var s = a.handlerMap.indexOf(t),\n r = e && e.split(\".\")[0],\n n = e && e.split(\".\")[1],\n o = \"\";\n if (-1 != s) if (i) {\n if (\"function\" == typeof i && (i = i._svgjsListenerId), !i) return;\n a.listeners[s][r] && a.listeners[s][r][n || \"*\"] && (t.removeEventListener(r, a.listeners[s][r][n || \"*\"][i], !1), delete a.listeners[s][r][n || \"*\"][i]);\n } else if (n && r) {\n if (a.listeners[s][r] && a.listeners[s][r][n]) {\n for (var l in a.listeners[s][r][n]) {\n a.off(t, [r, n].join(\".\"), l);\n }\n\n delete a.listeners[s][r][n];\n }\n } else if (n) for (var h in a.listeners[s]) {\n for (var o in a.listeners[s][h]) {\n n === o && a.off(t, [h, n].join(\".\"));\n }\n } else if (r) {\n if (a.listeners[s][r]) {\n for (var o in a.listeners[s][r]) {\n a.off(t, [r, o].join(\".\"));\n }\n\n delete a.listeners[s][r];\n }\n } else {\n for (var h in a.listeners[s]) {\n a.off(t, h);\n }\n\n delete a.listeners[s], delete a.handlerMap[s];\n }\n }, a.extend(a.Element, {\n on: function on(t, e, i, s) {\n return a.on(this.node, t, e, i, s), this;\n },\n off: function off(t, e) {\n return a.off(this.node, t, e), this;\n },\n fire: function fire(t, i) {\n return t instanceof e.Event ? this.node.dispatchEvent(t) : this.node.dispatchEvent(t = new a.CustomEvent(t, {\n detail: i,\n cancelable: !0\n })), this._event = t, this;\n },\n event: function event() {\n return this._event;\n }\n }), a.Defs = a.invent({\n create: \"defs\",\n inherit: a.Container\n }), a.G = a.invent({\n create: \"g\",\n inherit: a.Container,\n extend: {\n x: function x(t) {\n return null == t ? this.transform(\"x\") : this.transform({\n x: t - this.x()\n }, !0);\n }\n },\n construct: {\n group: function group() {\n return this.put(new a.G());\n }\n }\n }), a.Doc = a.invent({\n create: function create(t) {\n t && (\"svg\" == (t = \"string\" == typeof t ? i.getElementById(t) : t).nodeName ? this.constructor.call(this, t) : (this.constructor.call(this, a.create(\"svg\")), t.appendChild(this.node), this.size(\"100%\", \"100%\")), this.namespace().defs());\n },\n inherit: a.Container,\n extend: {\n namespace: function namespace() {\n return this.attr({\n xmlns: a.ns,\n version: \"1.1\"\n }).attr(\"xmlns:xlink\", a.xlink, a.xmlns).attr(\"xmlns:svgjs\", a.svgjs, a.xmlns);\n },\n defs: function defs() {\n var t;\n return this._defs || ((t = this.node.getElementsByTagName(\"defs\")[0]) ? this._defs = a.adopt(t) : this._defs = new a.Defs(), this.node.appendChild(this._defs.node)), this._defs;\n },\n parent: function parent() {\n return this.node.parentNode && \"#document\" != this.node.parentNode.nodeName ? this.node.parentNode : null;\n },\n remove: function remove() {\n return this.parent() && this.parent().removeChild(this.node), this;\n },\n clear: function clear() {\n for (; this.node.hasChildNodes();) {\n this.node.removeChild(this.node.lastChild);\n }\n\n return delete this._defs, a.parser.draw && !a.parser.draw.parentNode && this.node.appendChild(a.parser.draw), this;\n },\n clone: function clone(t) {\n this.writeDataToDom();\n var e = this.node,\n i = x(e.cloneNode(!0));\n return t ? (t.node || t).appendChild(i.node) : e.parentNode.insertBefore(i.node, e.nextSibling), i;\n }\n }\n }), a.extend(a.Element, {}), a.Gradient = a.invent({\n create: function create(t) {\n this.constructor.call(this, a.create(t + \"Gradient\")), this.type = t;\n },\n inherit: a.Container,\n extend: {\n at: function at(t, e, i) {\n return this.put(new a.Stop()).update(t, e, i);\n },\n update: function update(t) {\n return this.clear(), \"function\" == typeof t && t.call(this, this), this;\n },\n fill: function fill() {\n return \"url(#\" + this.id() + \")\";\n },\n toString: function toString() {\n return this.fill();\n },\n attr: function attr(t, e, i) {\n return \"transform\" == t && (t = \"gradientTransform\"), a.Container.prototype.attr.call(this, t, e, i);\n }\n },\n construct: {\n gradient: function gradient(t, e) {\n return this.defs().gradient(t, e);\n }\n }\n }), a.extend(a.Gradient, a.FX, {\n from: function from(t, e) {\n return \"radial\" == (this._target || this).type ? this.attr({\n fx: new a.Number(t),\n fy: new a.Number(e)\n }) : this.attr({\n x1: new a.Number(t),\n y1: new a.Number(e)\n });\n },\n to: function to(t, e) {\n return \"radial\" == (this._target || this).type ? this.attr({\n cx: new a.Number(t),\n cy: new a.Number(e)\n }) : this.attr({\n x2: new a.Number(t),\n y2: new a.Number(e)\n });\n }\n }), a.extend(a.Defs, {\n gradient: function gradient(t, e) {\n return this.put(new a.Gradient(t)).update(e);\n }\n }), a.Stop = a.invent({\n create: \"stop\",\n inherit: a.Element,\n extend: {\n update: function update(t) {\n return (\"number\" == typeof t || t instanceof a.Number) && (t = {\n offset: arguments[0],\n color: arguments[1],\n opacity: arguments[2]\n }), null != t.opacity && this.attr(\"stop-opacity\", t.opacity), null != t.color && this.attr(\"stop-color\", t.color), null != t.offset && this.attr(\"offset\", new a.Number(t.offset)), this;\n }\n }\n }), a.Pattern = a.invent({\n create: \"pattern\",\n inherit: a.Container,\n extend: {\n fill: function fill() {\n return \"url(#\" + this.id() + \")\";\n },\n update: function update(t) {\n return this.clear(), \"function\" == typeof t && t.call(this, this), this;\n },\n toString: function toString() {\n return this.fill();\n },\n attr: function attr(t, e, i) {\n return \"transform\" == t && (t = \"patternTransform\"), a.Container.prototype.attr.call(this, t, e, i);\n }\n },\n construct: {\n pattern: function pattern(t, e, i) {\n return this.defs().pattern(t, e, i);\n }\n }\n }), a.extend(a.Defs, {\n pattern: function pattern(t, e, i) {\n return this.put(new a.Pattern()).update(i).attr({\n x: 0,\n y: 0,\n width: t,\n height: e,\n patternUnits: \"userSpaceOnUse\"\n });\n }\n }), a.Shape = a.invent({\n create: function create(t) {\n this.constructor.call(this, t);\n },\n inherit: a.Element\n }), a.Symbol = a.invent({\n create: \"symbol\",\n inherit: a.Container,\n construct: {\n symbol: function symbol() {\n return this.put(new a.Symbol());\n }\n }\n }), a.Use = a.invent({\n create: \"use\",\n inherit: a.Shape,\n extend: {\n element: function element(t, e) {\n return this.attr(\"href\", (e || \"\") + \"#\" + t, a.xlink);\n }\n },\n construct: {\n use: function use(t, e) {\n return this.put(new a.Use()).element(t, e);\n }\n }\n }), a.Rect = a.invent({\n create: \"rect\",\n inherit: a.Shape,\n construct: {\n rect: function rect(t, e) {\n return this.put(new a.Rect()).size(t, e);\n }\n }\n }), a.Circle = a.invent({\n create: \"circle\",\n inherit: a.Shape,\n construct: {\n circle: function circle(t) {\n return this.put(new a.Circle()).rx(new a.Number(t).divide(2)).move(0, 0);\n }\n }\n }), a.extend(a.Circle, a.FX, {\n rx: function rx(t) {\n return this.attr(\"r\", t);\n },\n ry: function ry(t) {\n return this.rx(t);\n }\n }), a.Ellipse = a.invent({\n create: \"ellipse\",\n inherit: a.Shape,\n construct: {\n ellipse: function ellipse(t, e) {\n return this.put(new a.Ellipse()).size(t, e).move(0, 0);\n }\n }\n }), a.extend(a.Ellipse, a.Rect, a.FX, {\n rx: function rx(t) {\n return this.attr(\"rx\", t);\n },\n ry: function ry(t) {\n return this.attr(\"ry\", t);\n }\n }), a.extend(a.Circle, a.Ellipse, {\n x: function x(t) {\n return null == t ? this.cx() - this.rx() : this.cx(t + this.rx());\n },\n y: function y(t) {\n return null == t ? this.cy() - this.ry() : this.cy(t + this.ry());\n },\n cx: function cx(t) {\n return null == t ? this.attr(\"cx\") : this.attr(\"cx\", t);\n },\n cy: function cy(t) {\n return null == t ? this.attr(\"cy\") : this.attr(\"cy\", t);\n },\n width: function width(t) {\n return null == t ? 2 * this.rx() : this.rx(new a.Number(t).divide(2));\n },\n height: function height(t) {\n return null == t ? 2 * this.ry() : this.ry(new a.Number(t).divide(2));\n },\n size: function size(t, e) {\n var i = u(this, t, e);\n return this.rx(new a.Number(i.width).divide(2)).ry(new a.Number(i.height).divide(2));\n }\n }), a.Line = a.invent({\n create: \"line\",\n inherit: a.Shape,\n extend: {\n array: function array() {\n return new a.PointArray([[this.attr(\"x1\"), this.attr(\"y1\")], [this.attr(\"x2\"), this.attr(\"y2\")]]);\n },\n plot: function plot(t, e, i, s) {\n return null == t ? this.array() : (t = void 0 !== e ? {\n x1: t,\n y1: e,\n x2: i,\n y2: s\n } : new a.PointArray(t).toLine(), this.attr(t));\n },\n move: function move(t, e) {\n return this.attr(this.array().move(t, e).toLine());\n },\n size: function size(t, e) {\n var i = u(this, t, e);\n return this.attr(this.array().size(i.width, i.height).toLine());\n }\n },\n construct: {\n line: function line(t, e, i, s) {\n return a.Line.prototype.plot.apply(this.put(new a.Line()), null != t ? [t, e, i, s] : [0, 0, 0, 0]);\n }\n }\n }), a.Polyline = a.invent({\n create: \"polyline\",\n inherit: a.Shape,\n construct: {\n polyline: function polyline(t) {\n return this.put(new a.Polyline()).plot(t || new a.PointArray());\n }\n }\n }), a.Polygon = a.invent({\n create: \"polygon\",\n inherit: a.Shape,\n construct: {\n polygon: function polygon(t) {\n return this.put(new a.Polygon()).plot(t || new a.PointArray());\n }\n }\n }), a.extend(a.Polyline, a.Polygon, {\n array: function array() {\n return this._array || (this._array = new a.PointArray(this.attr(\"points\")));\n },\n plot: function plot(t) {\n return null == t ? this.array() : this.clear().attr(\"points\", \"string\" == typeof t ? t : this._array = new a.PointArray(t));\n },\n clear: function clear() {\n return delete this._array, this;\n },\n move: function move(t, e) {\n return this.attr(\"points\", this.array().move(t, e));\n },\n size: function size(t, e) {\n var i = u(this, t, e);\n return this.attr(\"points\", this.array().size(i.width, i.height));\n }\n }), a.extend(a.Line, a.Polyline, a.Polygon, {\n morphArray: a.PointArray,\n x: function x(t) {\n return null == t ? this.bbox().x : this.move(t, this.bbox().y);\n },\n y: function y(t) {\n return null == t ? this.bbox().y : this.move(this.bbox().x, t);\n },\n width: function width(t) {\n var e = this.bbox();\n return null == t ? e.width : this.size(t, e.height);\n },\n height: function height(t) {\n var e = this.bbox();\n return null == t ? e.height : this.size(e.width, t);\n }\n }), a.Path = a.invent({\n create: \"path\",\n inherit: a.Shape,\n extend: {\n morphArray: a.PathArray,\n array: function array() {\n return this._array || (this._array = new a.PathArray(this.attr(\"d\")));\n },\n plot: function plot(t) {\n return null == t ? this.array() : this.clear().attr(\"d\", \"string\" == typeof t ? t : this._array = new a.PathArray(t));\n },\n clear: function clear() {\n return delete this._array, this;\n }\n },\n construct: {\n path: function path(t) {\n return this.put(new a.Path()).plot(t || new a.PathArray());\n }\n }\n }), a.Image = a.invent({\n create: \"image\",\n inherit: a.Shape,\n extend: {\n load: function load(t) {\n if (!t) return this;\n var i = this,\n s = new e.Image();\n return a.on(s, \"load\", function () {\n a.off(s);\n var e = i.parent(a.Pattern);\n null !== e && (0 == i.width() && 0 == i.height() && i.size(s.width, s.height), e && 0 == e.width() && 0 == e.height() && e.size(i.width(), i.height()), \"function\" == typeof i._loaded && i._loaded.call(i, {\n width: s.width,\n height: s.height,\n ratio: s.width / s.height,\n url: t\n }));\n }), a.on(s, \"error\", function (t) {\n a.off(s), \"function\" == typeof i._error && i._error.call(i, t);\n }), this.attr(\"href\", s.src = this.src = t, a.xlink);\n },\n loaded: function loaded(t) {\n return this._loaded = t, this;\n },\n error: function error(t) {\n return this._error = t, this;\n }\n },\n construct: {\n image: function image(t, e, i) {\n return this.put(new a.Image()).load(t).size(e || 0, i || e || 0);\n }\n }\n }), a.Text = a.invent({\n create: function create() {\n this.constructor.call(this, a.create(\"text\")), this.dom.leading = new a.Number(1.3), this._rebuild = !0, this._build = !1, this.attr(\"font-family\", a.defaults.attrs[\"font-family\"]);\n },\n inherit: a.Shape,\n extend: {\n x: function x(t) {\n return null == t ? this.attr(\"x\") : this.attr(\"x\", t);\n },\n text: function text(t) {\n if (void 0 === t) {\n t = \"\";\n\n for (var e = this.node.childNodes, i = 0, s = e.length; i < s; ++i) {\n 0 != i && 3 != e[i].nodeType && 1 == a.adopt(e[i]).dom.newLined && (t += \"\\n\"), t += e[i].textContent;\n }\n\n return t;\n }\n\n if (this.clear().build(!0), \"function\" == typeof t) t.call(this, this);else {\n i = 0;\n\n for (var r = (t = t.split(\"\\n\")).length; i < r; i++) {\n this.tspan(t[i]).newLine();\n }\n }\n return this.build(!1).rebuild();\n },\n size: function size(t) {\n return this.attr(\"font-size\", t).rebuild();\n },\n leading: function leading(t) {\n return null == t ? this.dom.leading : (this.dom.leading = new a.Number(t), this.rebuild());\n },\n lines: function lines() {\n var t = (this.textPath && this.textPath() || this).node,\n e = a.utils.map(a.utils.filterSVGElements(t.childNodes), function (t) {\n return a.adopt(t);\n });\n return new a.Set(e);\n },\n rebuild: function rebuild(t) {\n if (\"boolean\" == typeof t && (this._rebuild = t), this._rebuild) {\n var e = this,\n i = 0,\n s = this.dom.leading * new a.Number(this.attr(\"font-size\"));\n this.lines().each(function () {\n this.dom.newLined && (e.textPath() || this.attr(\"x\", e.attr(\"x\")), \"\\n\" == this.text() ? i += s : (this.attr(\"dy\", s + i), i = 0));\n }), this.fire(\"rebuild\");\n }\n\n return this;\n },\n build: function build(t) {\n return this._build = !!t, this;\n },\n setData: function setData(t) {\n return this.dom = t, this.dom.leading = new a.Number(t.leading || 1.3), this;\n }\n },\n construct: {\n text: function text(t) {\n return this.put(new a.Text()).text(t);\n },\n plain: function plain(t) {\n return this.put(new a.Text()).plain(t);\n }\n }\n }), a.Tspan = a.invent({\n create: \"tspan\",\n inherit: a.Shape,\n extend: {\n text: function text(t) {\n return null == t ? this.node.textContent + (this.dom.newLined ? \"\\n\" : \"\") : (\"function\" == typeof t ? t.call(this, this) : this.plain(t), this);\n },\n dx: function dx(t) {\n return this.attr(\"dx\", t);\n },\n dy: function dy(t) {\n return this.attr(\"dy\", t);\n },\n newLine: function newLine() {\n var t = this.parent(a.Text);\n return this.dom.newLined = !0, this.dy(t.dom.leading * t.attr(\"font-size\")).attr(\"x\", t.x());\n }\n }\n }), a.extend(a.Text, a.Tspan, {\n plain: function plain(t) {\n return !1 === this._build && this.clear(), this.node.appendChild(i.createTextNode(t)), this;\n },\n tspan: function tspan(t) {\n var e = (this.textPath && this.textPath() || this).node,\n i = new a.Tspan();\n return !1 === this._build && this.clear(), e.appendChild(i.node), i.text(t);\n },\n clear: function clear() {\n for (var t = (this.textPath && this.textPath() || this).node; t.hasChildNodes();) {\n t.removeChild(t.lastChild);\n }\n\n return this;\n },\n length: function length() {\n return this.node.getComputedTextLength();\n }\n }), a.TextPath = a.invent({\n create: \"textPath\",\n inherit: a.Parent,\n parent: a.Text,\n construct: {\n morphArray: a.PathArray,\n array: function array() {\n var t = this.track();\n return t ? t.array() : null;\n },\n plot: function plot(t) {\n var e = this.track(),\n i = null;\n return e && (i = e.plot(t)), null == t ? i : this;\n },\n track: function track() {\n var t = this.textPath();\n if (t) return t.reference(\"href\");\n },\n textPath: function textPath() {\n if (this.node.firstChild && \"textPath\" == this.node.firstChild.nodeName) return a.adopt(this.node.firstChild);\n }\n }\n }), a.Nested = a.invent({\n create: function create() {\n this.constructor.call(this, a.create(\"svg\")), this.style(\"overflow\", \"visible\");\n },\n inherit: a.Container,\n construct: {\n nested: function nested() {\n return this.put(new a.Nested());\n }\n }\n });\n var l = {\n stroke: [\"color\", \"width\", \"opacity\", \"linecap\", \"linejoin\", \"miterlimit\", \"dasharray\", \"dashoffset\"],\n fill: [\"color\", \"opacity\", \"rule\"],\n prefix: function prefix(t, e) {\n return \"color\" == e ? t : t + \"-\" + e;\n }\n };\n\n function h(t, e, i, s) {\n return i + s.replace(a.regex.dots, \" .\");\n }\n\n function c(t) {\n return t.toLowerCase().replace(/-(.)/g, function (t, e) {\n return e.toUpperCase();\n });\n }\n\n function d(t) {\n return t.charAt(0).toUpperCase() + t.slice(1);\n }\n\n function g(t) {\n var e = t.toString(16);\n return 1 == e.length ? \"0\" + e : e;\n }\n\n function u(t, e, i) {\n if (null == e || null == i) {\n var a = t.bbox();\n null == e ? e = a.width / a.height * i : null == i && (i = a.height / a.width * e);\n }\n\n return {\n width: e,\n height: i\n };\n }\n\n function f(t, e, i) {\n return {\n x: e * t.a + i * t.c + 0,\n y: e * t.b + i * t.d + 0\n };\n }\n\n function p(t) {\n return {\n a: t[0],\n b: t[1],\n c: t[2],\n d: t[3],\n e: t[4],\n f: t[5]\n };\n }\n\n function x(t) {\n for (var i = t.childNodes.length - 1; i >= 0; i--) {\n t.childNodes[i] instanceof e.SVGElement && x(t.childNodes[i]);\n }\n\n return a.adopt(t).id(a.eid(t.nodeName));\n }\n\n function b(t) {\n return null == t.x && (t.x = 0, t.y = 0, t.width = 0, t.height = 0), t.w = t.width, t.h = t.height, t.x2 = t.x + t.width, t.y2 = t.y + t.height, t.cx = t.x + t.width / 2, t.cy = t.y + t.height / 2, t;\n }\n\n function m(t) {\n return Math.abs(t) > 1e-37 ? t : 0;\n }\n\n [\"fill\", \"stroke\"].forEach(function (t) {\n var e = {};\n e[t] = function (e) {\n if (void 0 === e) return this;\n if (\"string\" == typeof e || a.Color.isRgb(e) || e && \"function\" == typeof e.fill) this.attr(t, e);else for (var i = l[t].length - 1; i >= 0; i--) {\n null != e[l[t][i]] && this.attr(l.prefix(t, l[t][i]), e[l[t][i]]);\n }\n return this;\n }, a.extend(a.Element, a.FX, e);\n }), a.extend(a.Element, a.FX, {\n translate: function translate(t, e) {\n return this.transform({\n x: t,\n y: e\n });\n },\n matrix: function matrix(t) {\n return this.attr(\"transform\", new a.Matrix(6 == arguments.length ? [].slice.call(arguments) : t));\n },\n opacity: function opacity(t) {\n return this.attr(\"opacity\", t);\n },\n dx: function dx(t) {\n return this.x(new a.Number(t).plus(this instanceof a.FX ? 0 : this.x()), !0);\n },\n dy: function dy(t) {\n return this.y(new a.Number(t).plus(this instanceof a.FX ? 0 : this.y()), !0);\n }\n }), a.extend(a.Path, {\n length: function length() {\n return this.node.getTotalLength();\n },\n pointAt: function pointAt(t) {\n return this.node.getPointAtLength(t);\n }\n }), a.Set = a.invent({\n create: function create(t) {\n Array.isArray(t) ? this.members = t : this.clear();\n },\n extend: {\n add: function add() {\n for (var t = [].slice.call(arguments), e = 0, i = t.length; e < i; e++) {\n this.members.push(t[e]);\n }\n\n return this;\n },\n remove: function remove(t) {\n var e = this.index(t);\n return e > -1 && this.members.splice(e, 1), this;\n },\n each: function each(t) {\n for (var e = 0, i = this.members.length; e < i; e++) {\n t.apply(this.members[e], [e, this.members]);\n }\n\n return this;\n },\n clear: function clear() {\n return this.members = [], this;\n },\n length: function length() {\n return this.members.length;\n },\n has: function has(t) {\n return this.index(t) >= 0;\n },\n index: function index(t) {\n return this.members.indexOf(t);\n },\n get: function get(t) {\n return this.members[t];\n },\n first: function first() {\n return this.get(0);\n },\n last: function last() {\n return this.get(this.members.length - 1);\n },\n valueOf: function valueOf() {\n return this.members;\n }\n },\n construct: {\n set: function set(t) {\n return new a.Set(t);\n }\n }\n }), a.FX.Set = a.invent({\n create: function create(t) {\n this.set = t;\n }\n }), a.Set.inherit = function () {\n var t = [];\n\n for (var e in a.Shape.prototype) {\n \"function\" == typeof a.Shape.prototype[e] && \"function\" != typeof a.Set.prototype[e] && t.push(e);\n }\n\n for (var e in t.forEach(function (t) {\n a.Set.prototype[t] = function () {\n for (var e = 0, i = this.members.length; e < i; e++) {\n this.members[e] && \"function\" == typeof this.members[e][t] && this.members[e][t].apply(this.members[e], arguments);\n }\n\n return \"animate\" == t ? this.fx || (this.fx = new a.FX.Set(this)) : this;\n };\n }), t = [], a.FX.prototype) {\n \"function\" == typeof a.FX.prototype[e] && \"function\" != typeof a.FX.Set.prototype[e] && t.push(e);\n }\n\n t.forEach(function (t) {\n a.FX.Set.prototype[t] = function () {\n for (var e = 0, i = this.set.members.length; e < i; e++) {\n this.set.members[e].fx[t].apply(this.set.members[e].fx, arguments);\n }\n\n return this;\n };\n });\n }, a.extend(a.Element, {}), a.extend(a.Element, {\n remember: function remember(e, i) {\n if (\"object\" === t(arguments[0])) for (var a in e) {\n this.remember(a, e[a]);\n } else {\n if (1 == arguments.length) return this.memory()[e];\n this.memory()[e] = i;\n }\n return this;\n },\n forget: function forget() {\n if (0 == arguments.length) this._memory = {};else for (var t = arguments.length - 1; t >= 0; t--) {\n delete this.memory()[arguments[t]];\n }\n return this;\n },\n memory: function memory() {\n return this._memory || (this._memory = {});\n }\n }), a.get = function (t) {\n var e = i.getElementById(function (t) {\n var e = (t || \"\").toString().match(a.regex.reference);\n if (e) return e[1];\n }(t) || t);\n return a.adopt(e);\n }, a.select = function (t, e) {\n return new a.Set(a.utils.map((e || i).querySelectorAll(t), function (t) {\n return a.adopt(t);\n }));\n }, a.extend(a.Parent, {\n select: function select(t) {\n return a.select(t, this.node);\n }\n });\n var v = \"abcdef\".split(\"\");\n\n if (\"function\" != typeof e.CustomEvent) {\n var y = function y(t, e) {\n e = e || {\n bubbles: !1,\n cancelable: !1,\n detail: void 0\n };\n var a = i.createEvent(\"CustomEvent\");\n return a.initCustomEvent(t, e.bubbles, e.cancelable, e.detail), a;\n };\n\n y.prototype = e.Event.prototype, a.CustomEvent = y;\n } else a.CustomEvent = e.CustomEvent;\n\n return a;\n}, \"function\" == typeof define && define.amd ? define(function () {\n return zt(Tt, Tt.document);\n}) : \"object\" === (\"undefined\" == typeof exports ? \"undefined\" : t(exports)) && \"undefined\" != typeof module ? module.exports = Tt.document ? zt(Tt, Tt.document) : function (t) {\n return zt(t, t.document);\n} : Tt.SVG = zt(Tt, Tt.document),\n/*! svg.filter.js - v2.0.2 - 2016-02-24\n* https://github.com/wout/svg.filter.js\n* Copyright (c) 2016 Wout Fierens; Licensed MIT */\nfunction () {\n SVG.Filter = SVG.invent({\n create: \"filter\",\n inherit: SVG.Parent,\n extend: {\n source: \"SourceGraphic\",\n sourceAlpha: \"SourceAlpha\",\n background: \"BackgroundImage\",\n backgroundAlpha: \"BackgroundAlpha\",\n fill: \"FillPaint\",\n stroke: \"StrokePaint\",\n autoSetIn: !0,\n put: function put(t, e) {\n return this.add(t, e), !t.attr(\"in\") && this.autoSetIn && t.attr(\"in\", this.source), t.attr(\"result\") || t.attr(\"result\", t), t;\n },\n blend: function blend(t, e, i) {\n return this.put(new SVG.BlendEffect(t, e, i));\n },\n colorMatrix: function colorMatrix(t, e) {\n return this.put(new SVG.ColorMatrixEffect(t, e));\n },\n convolveMatrix: function convolveMatrix(t) {\n return this.put(new SVG.ConvolveMatrixEffect(t));\n },\n componentTransfer: function componentTransfer(t) {\n return this.put(new SVG.ComponentTransferEffect(t));\n },\n composite: function composite(t, e, i) {\n return this.put(new SVG.CompositeEffect(t, e, i));\n },\n flood: function flood(t, e) {\n return this.put(new SVG.FloodEffect(t, e));\n },\n offset: function offset(t, e) {\n return this.put(new SVG.OffsetEffect(t, e));\n },\n image: function image(t) {\n return this.put(new SVG.ImageEffect(t));\n },\n merge: function merge() {\n var t = [void 0];\n\n for (var e in arguments) {\n t.push(arguments[e]);\n }\n\n return this.put(new (SVG.MergeEffect.bind.apply(SVG.MergeEffect, t))());\n },\n gaussianBlur: function gaussianBlur(t, e) {\n return this.put(new SVG.GaussianBlurEffect(t, e));\n },\n morphology: function morphology(t, e) {\n return this.put(new SVG.MorphologyEffect(t, e));\n },\n diffuseLighting: function diffuseLighting(t, e, i) {\n return this.put(new SVG.DiffuseLightingEffect(t, e, i));\n },\n displacementMap: function displacementMap(t, e, i, a, s) {\n return this.put(new SVG.DisplacementMapEffect(t, e, i, a, s));\n },\n specularLighting: function specularLighting(t, e, i, a) {\n return this.put(new SVG.SpecularLightingEffect(t, e, i, a));\n },\n tile: function tile() {\n return this.put(new SVG.TileEffect());\n },\n turbulence: function turbulence(t, e, i, a, s) {\n return this.put(new SVG.TurbulenceEffect(t, e, i, a, s));\n },\n toString: function toString() {\n return \"url(#\" + this.attr(\"id\") + \")\";\n }\n }\n }), SVG.extend(SVG.Defs, {\n filter: function filter(t) {\n var e = this.put(new SVG.Filter());\n return \"function\" == typeof t && t.call(e, e), e;\n }\n }), SVG.extend(SVG.Container, {\n filter: function filter(t) {\n return this.defs().filter(t);\n }\n }), SVG.extend(SVG.Element, SVG.G, SVG.Nested, {\n filter: function filter(t) {\n return this.filterer = t instanceof SVG.Element ? t : this.doc().filter(t), this.doc() && this.filterer.doc() !== this.doc() && this.doc().defs().add(this.filterer), this.attr(\"filter\", this.filterer), this.filterer;\n },\n unfilter: function unfilter(t) {\n return this.filterer && !0 === t && this.filterer.remove(), delete this.filterer, this.attr(\"filter\", null);\n }\n }), SVG.Effect = SVG.invent({\n create: function create() {\n this.constructor.call(this);\n },\n inherit: SVG.Element,\n extend: {\n in: function _in(t) {\n return null == t ? this.parent() && this.parent().select('[result=\"' + this.attr(\"in\") + '\"]').get(0) || this.attr(\"in\") : this.attr(\"in\", t);\n },\n result: function result(t) {\n return null == t ? this.attr(\"result\") : this.attr(\"result\", t);\n },\n toString: function toString() {\n return this.result();\n }\n }\n }), SVG.ParentEffect = SVG.invent({\n create: function create() {\n this.constructor.call(this);\n },\n inherit: SVG.Parent,\n extend: {\n in: function _in(t) {\n return null == t ? this.parent() && this.parent().select('[result=\"' + this.attr(\"in\") + '\"]').get(0) || this.attr(\"in\") : this.attr(\"in\", t);\n },\n result: function result(t) {\n return null == t ? this.attr(\"result\") : this.attr(\"result\", t);\n },\n toString: function toString() {\n return this.result();\n }\n }\n });\n var t = {\n blend: function blend(t, e) {\n return this.parent() && this.parent().blend(this, t, e);\n },\n colorMatrix: function colorMatrix(t, e) {\n return this.parent() && this.parent().colorMatrix(t, e).in(this);\n },\n convolveMatrix: function convolveMatrix(t) {\n return this.parent() && this.parent().convolveMatrix(t).in(this);\n },\n componentTransfer: function componentTransfer(t) {\n return this.parent() && this.parent().componentTransfer(t).in(this);\n },\n composite: function composite(t, e) {\n return this.parent() && this.parent().composite(this, t, e);\n },\n flood: function flood(t, e) {\n return this.parent() && this.parent().flood(t, e);\n },\n offset: function offset(t, e) {\n return this.parent() && this.parent().offset(t, e).in(this);\n },\n image: function image(t) {\n return this.parent() && this.parent().image(t);\n },\n merge: function merge() {\n return this.parent() && this.parent().merge.apply(this.parent(), [this].concat(arguments));\n },\n gaussianBlur: function gaussianBlur(t, e) {\n return this.parent() && this.parent().gaussianBlur(t, e).in(this);\n },\n morphology: function morphology(t, e) {\n return this.parent() && this.parent().morphology(t, e).in(this);\n },\n diffuseLighting: function diffuseLighting(t, e, i) {\n return this.parent() && this.parent().diffuseLighting(t, e, i).in(this);\n },\n displacementMap: function displacementMap(t, e, i, a) {\n return this.parent() && this.parent().displacementMap(this, t, e, i, a);\n },\n specularLighting: function specularLighting(t, e, i, a) {\n return this.parent() && this.parent().specularLighting(t, e, i, a).in(this);\n },\n tile: function tile() {\n return this.parent() && this.parent().tile().in(this);\n },\n turbulence: function turbulence(t, e, i, a, s) {\n return this.parent() && this.parent().turbulence(t, e, i, a, s).in(this);\n }\n };\n SVG.extend(SVG.Effect, t), SVG.extend(SVG.ParentEffect, t), SVG.ChildEffect = SVG.invent({\n create: function create() {\n this.constructor.call(this);\n },\n inherit: SVG.Element,\n extend: {\n in: function _in(t) {\n this.attr(\"in\", t);\n }\n }\n });\n var e = {\n blend: function blend(t, e, i) {\n this.attr({\n in: t,\n in2: e,\n mode: i || \"normal\"\n });\n },\n colorMatrix: function colorMatrix(t, e) {\n \"matrix\" == t && (e = s(e)), this.attr({\n type: t,\n values: void 0 === e ? null : e\n });\n },\n convolveMatrix: function convolveMatrix(t) {\n t = s(t), this.attr({\n order: Math.sqrt(t.split(\" \").length),\n kernelMatrix: t\n });\n },\n composite: function composite(t, e, i) {\n this.attr({\n in: t,\n in2: e,\n operator: i\n });\n },\n flood: function flood(t, e) {\n this.attr(\"flood-color\", t), null != e && this.attr(\"flood-opacity\", e);\n },\n offset: function offset(t, e) {\n this.attr({\n dx: t,\n dy: e\n });\n },\n image: function image(t) {\n this.attr(\"href\", t, SVG.xlink);\n },\n displacementMap: function displacementMap(t, e, i, a, s) {\n this.attr({\n in: t,\n in2: e,\n scale: i,\n xChannelSelector: a,\n yChannelSelector: s\n });\n },\n gaussianBlur: function gaussianBlur(t, e) {\n null != t || null != e ? this.attr(\"stdDeviation\", r(Array.prototype.slice.call(arguments))) : this.attr(\"stdDeviation\", \"0 0\");\n },\n morphology: function morphology(t, e) {\n this.attr({\n operator: t,\n radius: e\n });\n },\n tile: function tile() {},\n turbulence: function turbulence(t, e, i, a, s) {\n this.attr({\n numOctaves: e,\n seed: i,\n stitchTiles: a,\n baseFrequency: t,\n type: s\n });\n }\n },\n i = {\n merge: function merge() {\n var t;\n\n if (arguments[0] instanceof SVG.Set) {\n var e = this;\n arguments[0].each(function (t) {\n this instanceof SVG.MergeNode ? e.put(this) : (this instanceof SVG.Effect || this instanceof SVG.ParentEffect) && e.put(new SVG.MergeNode(this));\n });\n } else {\n t = Array.isArray(arguments[0]) ? arguments[0] : arguments;\n\n for (var i = 0; i < t.length; i++) {\n t[i] instanceof SVG.MergeNode ? this.put(t[i]) : this.put(new SVG.MergeNode(t[i]));\n }\n }\n },\n componentTransfer: function componentTransfer(t) {\n if (this.rgb = new SVG.Set(), [\"r\", \"g\", \"b\", \"a\"].forEach(function (t) {\n this[t] = new SVG[\"Func\" + t.toUpperCase()](\"identity\"), this.rgb.add(this[t]), this.node.appendChild(this[t].node);\n }.bind(this)), t) for (var e in t.rgb && ([\"r\", \"g\", \"b\"].forEach(function (e) {\n this[e].attr(t.rgb);\n }.bind(this)), delete t.rgb), t) {\n this[e].attr(t[e]);\n }\n },\n diffuseLighting: function diffuseLighting(t, e, i) {\n this.attr({\n surfaceScale: t,\n diffuseConstant: e,\n kernelUnitLength: i\n });\n },\n specularLighting: function specularLighting(t, e, i, a) {\n this.attr({\n surfaceScale: t,\n diffuseConstant: e,\n specularExponent: i,\n kernelUnitLength: a\n });\n }\n },\n a = {\n distantLight: function distantLight(t, e) {\n this.attr({\n azimuth: t,\n elevation: e\n });\n },\n pointLight: function pointLight(t, e, i) {\n this.attr({\n x: t,\n y: e,\n z: i\n });\n },\n spotLight: function spotLight(t, e, i, a, s, r) {\n this.attr({\n x: t,\n y: e,\n z: i,\n pointsAtX: a,\n pointsAtY: s,\n pointsAtZ: r\n });\n },\n mergeNode: function mergeNode(t) {\n this.attr(\"in\", t);\n }\n };\n\n function s(t) {\n return Array.isArray(t) && (t = new SVG.Array(t)), t.toString().replace(/^\\s+/, \"\").replace(/\\s+$/, \"\").replace(/\\s+/g, \" \");\n }\n\n function r(t) {\n if (!Array.isArray(t)) return t;\n\n for (var e = 0, i = t.length, a = []; e < i; e++) {\n a.push(t[e]);\n }\n\n return a.join(\" \");\n }\n\n function n() {\n var t = function t() {};\n\n for (var e in \"function\" == typeof arguments[arguments.length - 1] && (t = arguments[arguments.length - 1], Array.prototype.splice.call(arguments, arguments.length - 1, 1)), arguments) {\n for (var i in arguments[e]) {\n t(arguments[e][i], i, arguments[e]);\n }\n }\n }\n\n [\"r\", \"g\", \"b\", \"a\"].forEach(function (t) {\n a[\"Func\" + t.toUpperCase()] = function (t) {\n switch (this.attr(\"type\", t), t) {\n case \"table\":\n this.attr(\"tableValues\", arguments[1]);\n break;\n\n case \"linear\":\n this.attr(\"slope\", arguments[1]), this.attr(\"intercept\", arguments[2]);\n break;\n\n case \"gamma\":\n this.attr(\"amplitude\", arguments[1]), this.attr(\"exponent\", arguments[2]), this.attr(\"offset\", arguments[2]);\n }\n };\n }), n(e, function (t, e) {\n var i = e.charAt(0).toUpperCase() + e.slice(1);\n SVG[i + \"Effect\"] = SVG.invent({\n create: function create() {\n this.constructor.call(this, SVG.create(\"fe\" + i)), t.apply(this, arguments), this.result(this.attr(\"id\") + \"Out\");\n },\n inherit: SVG.Effect,\n extend: {}\n });\n }), n(i, function (t, e) {\n var i = e.charAt(0).toUpperCase() + e.slice(1);\n SVG[i + \"Effect\"] = SVG.invent({\n create: function create() {\n this.constructor.call(this, SVG.create(\"fe\" + i)), t.apply(this, arguments), this.result(this.attr(\"id\") + \"Out\");\n },\n inherit: SVG.ParentEffect,\n extend: {}\n });\n }), n(a, function (t, e) {\n var i = e.charAt(0).toUpperCase() + e.slice(1);\n SVG[i] = SVG.invent({\n create: function create() {\n this.constructor.call(this, SVG.create(\"fe\" + i)), t.apply(this, arguments);\n },\n inherit: SVG.ChildEffect,\n extend: {}\n });\n }), SVG.extend(SVG.MergeEffect, {\n in: function _in(t) {\n return t instanceof SVG.MergeNode ? this.add(t, 0) : this.add(new SVG.MergeNode(t), 0), this;\n }\n }), SVG.extend(SVG.CompositeEffect, SVG.BlendEffect, SVG.DisplacementMapEffect, {\n in2: function in2(t) {\n return null == t ? this.parent() && this.parent().select('[result=\"' + this.attr(\"in2\") + '\"]').get(0) || this.attr(\"in2\") : this.attr(\"in2\", t);\n }\n }), SVG.filter = {\n sepiatone: [.343, .669, .119, 0, 0, .249, .626, .13, 0, 0, .172, .334, .111, 0, 0, 0, 0, 0, 1, 0]\n };\n}.call(void 0), function () {\n function t(t, s, r, n, o, l, h) {\n for (var c = t.slice(s, r || h), d = n.slice(o, l || h), g = 0, u = {\n pos: [0, 0],\n start: [0, 0]\n }, f = {\n pos: [0, 0],\n start: [0, 0]\n };;) {\n if (c[g] = e.call(u, c[g]), d[g] = e.call(f, d[g]), c[g][0] != d[g][0] || \"M\" == c[g][0] || \"A\" == c[g][0] && (c[g][4] != d[g][4] || c[g][5] != d[g][5]) ? (Array.prototype.splice.apply(c, [g, 1].concat(a.call(u, c[g]))), Array.prototype.splice.apply(d, [g, 1].concat(a.call(f, d[g])))) : (c[g] = i.call(u, c[g]), d[g] = i.call(f, d[g])), ++g == c.length && g == d.length) break;\n g == c.length && c.push([\"C\", u.pos[0], u.pos[1], u.pos[0], u.pos[1], u.pos[0], u.pos[1]]), g == d.length && d.push([\"C\", f.pos[0], f.pos[1], f.pos[0], f.pos[1], f.pos[0], f.pos[1]]);\n }\n\n return {\n start: c,\n dest: d\n };\n }\n\n function e(t) {\n switch (t[0]) {\n case \"z\":\n case \"Z\":\n t[0] = \"L\", t[1] = this.start[0], t[2] = this.start[1];\n break;\n\n case \"H\":\n t[0] = \"L\", t[2] = this.pos[1];\n break;\n\n case \"V\":\n t[0] = \"L\", t[2] = t[1], t[1] = this.pos[0];\n break;\n\n case \"T\":\n t[0] = \"Q\", t[3] = t[1], t[4] = t[2], t[1] = this.reflection[1], t[2] = this.reflection[0];\n break;\n\n case \"S\":\n t[0] = \"C\", t[6] = t[4], t[5] = t[3], t[4] = t[2], t[3] = t[1], t[2] = this.reflection[1], t[1] = this.reflection[0];\n }\n\n return t;\n }\n\n function i(t) {\n var e = t.length;\n return this.pos = [t[e - 2], t[e - 1]], -1 != \"SCQT\".indexOf(t[0]) && (this.reflection = [2 * this.pos[0] - t[e - 4], 2 * this.pos[1] - t[e - 3]]), t;\n }\n\n function a(t) {\n var e = [t];\n\n switch (t[0]) {\n case \"M\":\n return this.pos = this.start = [t[1], t[2]], e;\n\n case \"L\":\n t[5] = t[3] = t[1], t[6] = t[4] = t[2], t[1] = this.pos[0], t[2] = this.pos[1];\n break;\n\n case \"Q\":\n t[6] = t[4], t[5] = t[3], t[4] = 1 * t[4] / 3 + 2 * t[2] / 3, t[3] = 1 * t[3] / 3 + 2 * t[1] / 3, t[2] = 1 * this.pos[1] / 3 + 2 * t[2] / 3, t[1] = 1 * this.pos[0] / 3 + 2 * t[1] / 3;\n break;\n\n case \"A\":\n t = (e = function (t, e) {\n var i,\n a,\n s,\n r,\n n,\n o,\n l,\n h,\n c,\n d,\n g,\n u,\n f,\n p,\n x,\n b,\n m,\n v,\n y,\n w,\n k,\n A,\n S,\n C,\n L,\n P,\n T = Math.abs(e[1]),\n z = Math.abs(e[2]),\n I = e[3] % 360,\n M = e[4],\n E = e[5],\n X = e[6],\n Y = e[7],\n F = new SVG.Point(t),\n R = new SVG.Point(X, Y),\n D = [];\n if (0 === T || 0 === z || F.x === R.x && F.y === R.y) return [[\"C\", F.x, F.y, R.x, R.y, R.x, R.y]];\n i = new SVG.Point((F.x - R.x) / 2, (F.y - R.y) / 2).transform(new SVG.Matrix().rotate(I)), (a = i.x * i.x / (T * T) + i.y * i.y / (z * z)) > 1 && (T *= a = Math.sqrt(a), z *= a);\n s = new SVG.Matrix().rotate(I).scale(1 / T, 1 / z).rotate(-I), F = F.transform(s), R = R.transform(s), r = [R.x - F.x, R.y - F.y], o = r[0] * r[0] + r[1] * r[1], n = Math.sqrt(o), r[0] /= n, r[1] /= n, l = o < 4 ? Math.sqrt(1 - o / 4) : 0, M === E && (l *= -1);\n h = new SVG.Point((R.x + F.x) / 2 + l * -r[1], (R.y + F.y) / 2 + l * r[0]), c = new SVG.Point(F.x - h.x, F.y - h.y), d = new SVG.Point(R.x - h.x, R.y - h.y), g = Math.acos(c.x / Math.sqrt(c.x * c.x + c.y * c.y)), c.y < 0 && (g *= -1);\n u = Math.acos(d.x / Math.sqrt(d.x * d.x + d.y * d.y)), d.y < 0 && (u *= -1);\n E && g > u && (u += 2 * Math.PI);\n !E && g < u && (u -= 2 * Math.PI);\n\n for (p = Math.ceil(2 * Math.abs(g - u) / Math.PI), b = [], m = g, f = (u - g) / p, x = 4 * Math.tan(f / 4) / 3, k = 0; k <= p; k++) {\n y = Math.cos(m), v = Math.sin(m), w = new SVG.Point(h.x + y, h.y + v), b[k] = [new SVG.Point(w.x + x * v, w.y - x * y), w, new SVG.Point(w.x - x * v, w.y + x * y)], m += f;\n }\n\n for (b[0][0] = b[0][1].clone(), b[b.length - 1][2] = b[b.length - 1][1].clone(), s = new SVG.Matrix().rotate(I).scale(T, z).rotate(-I), k = 0, A = b.length; k < A; k++) {\n b[k][0] = b[k][0].transform(s), b[k][1] = b[k][1].transform(s), b[k][2] = b[k][2].transform(s);\n }\n\n for (k = 1, A = b.length; k < A; k++) {\n S = (w = b[k - 1][2]).x, C = w.y, L = (w = b[k][0]).x, P = w.y, X = (w = b[k][1]).x, Y = w.y, D.push([\"C\", S, C, L, P, X, Y]);\n }\n\n return D;\n }(this.pos, t))[0];\n\n }\n\n return t[0] = \"C\", this.pos = [t[5], t[6]], this.reflection = [2 * t[5] - t[3], 2 * t[6] - t[4]], e;\n }\n\n function s(t, e) {\n if (!1 === e) return !1;\n\n for (var i = e, a = t.length; i < a; ++i) {\n if (\"M\" == t[i][0]) return i;\n }\n\n return !1;\n }\n\n SVG.extend(SVG.PathArray, {\n morph: function morph(e) {\n for (var i = this.value, a = this.parse(e), r = 0, n = 0, o = !1, l = !1; !1 !== r || !1 !== n;) {\n var h;\n o = s(i, !1 !== r && r + 1), l = s(a, !1 !== n && n + 1), !1 === r && (r = 0 == (h = new SVG.PathArray(c.start).bbox()).height || 0 == h.width ? i.push(i[0]) - 1 : i.push([\"M\", h.x + h.width / 2, h.y + h.height / 2]) - 1), !1 === n && (n = 0 == (h = new SVG.PathArray(c.dest).bbox()).height || 0 == h.width ? a.push(a[0]) - 1 : a.push([\"M\", h.x + h.width / 2, h.y + h.height / 2]) - 1);\n var c = t(i, r, o, a, n, l);\n i = i.slice(0, r).concat(c.start, !1 === o ? [] : i.slice(o)), a = a.slice(0, n).concat(c.dest, !1 === l ? [] : a.slice(l)), r = !1 !== o && r + c.start.length, n = !1 !== l && n + c.dest.length;\n }\n\n return this.value = i, this.destination = new SVG.PathArray(), this.destination.value = a, this;\n }\n });\n}(),\n/*! svg.draggable.js - v2.2.2 - 2019-01-08\n* https://github.com/svgdotjs/svg.draggable.js\n* Copyright (c) 2019 Wout Fierens; Licensed MIT */\nfunction () {\n function t(t) {\n t.remember(\"_draggable\", this), this.el = t;\n }\n\n t.prototype.init = function (t, e) {\n var i = this;\n this.constraint = t, this.value = e, this.el.on(\"mousedown.drag\", function (t) {\n i.start(t);\n }), this.el.on(\"touchstart.drag\", function (t) {\n i.start(t);\n });\n }, t.prototype.transformPoint = function (t, e) {\n var i = (t = t || window.event).changedTouches && t.changedTouches[0] || t;\n return this.p.x = i.clientX - (e || 0), this.p.y = i.clientY, this.p.matrixTransform(this.m);\n }, t.prototype.getBBox = function () {\n var t = this.el.bbox();\n return this.el instanceof SVG.Nested && (t = this.el.rbox()), (this.el instanceof SVG.G || this.el instanceof SVG.Use || this.el instanceof SVG.Nested) && (t.x = this.el.x(), t.y = this.el.y()), t;\n }, t.prototype.start = function (t) {\n if (\"click\" != t.type && \"mousedown\" != t.type && \"mousemove\" != t.type || 1 == (t.which || t.buttons)) {\n var e = this;\n\n if (this.el.fire(\"beforedrag\", {\n event: t,\n handler: this\n }), !this.el.event().defaultPrevented) {\n t.preventDefault(), t.stopPropagation(), this.parent = this.parent || this.el.parent(SVG.Nested) || this.el.parent(SVG.Doc), this.p = this.parent.node.createSVGPoint(), this.m = this.el.node.getScreenCTM().inverse();\n var i,\n a = this.getBBox();\n if (this.el instanceof SVG.Text) switch (i = this.el.node.getComputedTextLength(), this.el.attr(\"text-anchor\")) {\n case \"middle\":\n i /= 2;\n break;\n\n case \"start\":\n i = 0;\n }\n this.startPoints = {\n point: this.transformPoint(t, i),\n box: a,\n transform: this.el.transform()\n }, SVG.on(window, \"mousemove.drag\", function (t) {\n e.drag(t);\n }), SVG.on(window, \"touchmove.drag\", function (t) {\n e.drag(t);\n }), SVG.on(window, \"mouseup.drag\", function (t) {\n e.end(t);\n }), SVG.on(window, \"touchend.drag\", function (t) {\n e.end(t);\n }), this.el.fire(\"dragstart\", {\n event: t,\n p: this.startPoints.point,\n m: this.m,\n handler: this\n });\n }\n }\n }, t.prototype.drag = function (t) {\n var e = this.getBBox(),\n i = this.transformPoint(t),\n a = this.startPoints.box.x + i.x - this.startPoints.point.x,\n s = this.startPoints.box.y + i.y - this.startPoints.point.y,\n r = this.constraint,\n n = i.x - this.startPoints.point.x,\n o = i.y - this.startPoints.point.y;\n if (this.el.fire(\"dragmove\", {\n event: t,\n p: i,\n m: this.m,\n handler: this\n }), this.el.event().defaultPrevented) return i;\n\n if (\"function\" == typeof r) {\n var l = r.call(this.el, a, s, this.m);\n \"boolean\" == typeof l && (l = {\n x: l,\n y: l\n }), !0 === l.x ? this.el.x(a) : !1 !== l.x && this.el.x(l.x), !0 === l.y ? this.el.y(s) : !1 !== l.y && this.el.y(l.y);\n } else \"object\" == _typeof(r) && (null != r.minX && a < r.minX ? n = (a = r.minX) - this.startPoints.box.x : null != r.maxX && a > r.maxX - e.width && (n = (a = r.maxX - e.width) - this.startPoints.box.x), null != r.minY && s < r.minY ? o = (s = r.minY) - this.startPoints.box.y : null != r.maxY && s > r.maxY - e.height && (o = (s = r.maxY - e.height) - this.startPoints.box.y), null != r.snapToGrid && (a -= a % r.snapToGrid, s -= s % r.snapToGrid, n -= n % r.snapToGrid, o -= o % r.snapToGrid), this.el instanceof SVG.G ? this.el.matrix(this.startPoints.transform).transform({\n x: n,\n y: o\n }, !0) : this.el.move(a, s));\n\n return i;\n }, t.prototype.end = function (t) {\n var e = this.drag(t);\n this.el.fire(\"dragend\", {\n event: t,\n p: e,\n m: this.m,\n handler: this\n }), SVG.off(window, \"mousemove.drag\"), SVG.off(window, \"touchmove.drag\"), SVG.off(window, \"mouseup.drag\"), SVG.off(window, \"touchend.drag\");\n }, SVG.extend(SVG.Element, {\n draggable: function draggable(e, i) {\n \"function\" != typeof e && \"object\" != _typeof(e) || (i = e, e = !0);\n var a = this.remember(\"_draggable\") || new t(this);\n return (e = void 0 === e || e) ? a.init(i || {}, e) : (this.off(\"mousedown.drag\"), this.off(\"touchstart.drag\")), this;\n }\n });\n}.call(void 0), function () {\n function t(t) {\n this.el = t, t.remember(\"_selectHandler\", this), this.pointSelection = {\n isSelected: !1\n }, this.rectSelection = {\n isSelected: !1\n }, this.pointsList = {\n lt: [0, 0],\n rt: [\"width\", 0],\n rb: [\"width\", \"height\"],\n lb: [0, \"height\"],\n t: [\"width\", 0],\n r: [\"width\", \"height\"],\n b: [\"width\", \"height\"],\n l: [0, \"height\"]\n }, this.pointCoord = function (t, e, i) {\n var a = \"string\" != typeof t ? t : e[t];\n return i ? a / 2 : a;\n }, this.pointCoords = function (t, e) {\n var i = this.pointsList[t];\n return {\n x: this.pointCoord(i[0], e, \"t\" === t || \"b\" === t),\n y: this.pointCoord(i[1], e, \"r\" === t || \"l\" === t)\n };\n };\n }\n\n t.prototype.init = function (t, e) {\n var i = this.el.bbox();\n this.options = {};\n var a = this.el.selectize.defaults.points;\n\n for (var s in this.el.selectize.defaults) {\n this.options[s] = this.el.selectize.defaults[s], void 0 !== e[s] && (this.options[s] = e[s]);\n }\n\n var r = [\"points\", \"pointsExclude\"];\n\n for (var s in r) {\n var n = this.options[r[s]];\n \"string\" == typeof n ? n = n.length > 0 ? n.split(/\\s*,\\s*/i) : [] : \"boolean\" == typeof n && \"points\" === r[s] && (n = n ? a : []), this.options[r[s]] = n;\n }\n\n this.options.points = [a, this.options.points].reduce(function (t, e) {\n return t.filter(function (t) {\n return e.indexOf(t) > -1;\n });\n }), this.options.points = [this.options.points, this.options.pointsExclude].reduce(function (t, e) {\n return t.filter(function (t) {\n return e.indexOf(t) < 0;\n });\n }), this.parent = this.el.parent(), this.nested = this.nested || this.parent.group(), this.nested.matrix(new SVG.Matrix(this.el).translate(i.x, i.y)), this.options.deepSelect && -1 !== [\"line\", \"polyline\", \"polygon\"].indexOf(this.el.type) ? this.selectPoints(t) : this.selectRect(t), this.observe(), this.cleanup();\n }, t.prototype.selectPoints = function (t) {\n return this.pointSelection.isSelected = t, this.pointSelection.set || (this.pointSelection.set = this.parent.set(), this.drawPoints()), this;\n }, t.prototype.getPointArray = function () {\n var t = this.el.bbox();\n return this.el.array().valueOf().map(function (e) {\n return [e[0] - t.x, e[1] - t.y];\n });\n }, t.prototype.drawPoints = function () {\n for (var t = this, e = this.getPointArray(), i = 0, a = e.length; i < a; ++i) {\n var s = function (e) {\n return function (i) {\n (i = i || window.event).preventDefault ? i.preventDefault() : i.returnValue = !1, i.stopPropagation();\n var a = i.pageX || i.touches[0].pageX,\n s = i.pageY || i.touches[0].pageY;\n t.el.fire(\"point\", {\n x: a,\n y: s,\n i: e,\n event: i\n });\n };\n }(i),\n r = this.drawPoint(e[i][0], e[i][1]).addClass(this.options.classPoints).addClass(this.options.classPoints + \"_point\").on(\"touchstart\", s).on(\"mousedown\", s);\n\n this.pointSelection.set.add(r);\n }\n }, t.prototype.drawPoint = function (t, e) {\n var i = this.options.pointType;\n\n switch (i) {\n case \"circle\":\n return this.drawCircle(t, e);\n\n case \"rect\":\n return this.drawRect(t, e);\n\n default:\n if (\"function\" == typeof i) return i.call(this, t, e);\n throw new Error(\"Unknown \" + i + \" point type!\");\n }\n }, t.prototype.drawCircle = function (t, e) {\n return this.nested.circle(this.options.pointSize).center(t, e);\n }, t.prototype.drawRect = function (t, e) {\n return this.nested.rect(this.options.pointSize, this.options.pointSize).center(t, e);\n }, t.prototype.updatePointSelection = function () {\n var t = this.getPointArray();\n this.pointSelection.set.each(function (e) {\n this.cx() === t[e][0] && this.cy() === t[e][1] || this.center(t[e][0], t[e][1]);\n });\n }, t.prototype.updateRectSelection = function () {\n var t = this,\n e = this.el.bbox();\n\n if (this.rectSelection.set.get(0).attr({\n width: e.width,\n height: e.height\n }), this.options.points.length && this.options.points.map(function (i, a) {\n var s = t.pointCoords(i, e);\n t.rectSelection.set.get(a + 1).center(s.x, s.y);\n }), this.options.rotationPoint) {\n var i = this.rectSelection.set.length();\n this.rectSelection.set.get(i - 1).center(e.width / 2, 20);\n }\n }, t.prototype.selectRect = function (t) {\n var e = this,\n i = this.el.bbox();\n\n function a(t) {\n return function (i) {\n (i = i || window.event).preventDefault ? i.preventDefault() : i.returnValue = !1, i.stopPropagation();\n var a = i.pageX || i.touches[0].pageX,\n s = i.pageY || i.touches[0].pageY;\n e.el.fire(t, {\n x: a,\n y: s,\n event: i\n });\n };\n }\n\n if (this.rectSelection.isSelected = t, this.rectSelection.set = this.rectSelection.set || this.parent.set(), this.rectSelection.set.get(0) || this.rectSelection.set.add(this.nested.rect(i.width, i.height).addClass(this.options.classRect)), this.options.points.length && this.rectSelection.set.length() < 2) {\n this.options.points.map(function (t, s) {\n var r = e.pointCoords(t, i),\n n = e.drawPoint(r.x, r.y).attr(\"class\", e.options.classPoints + \"_\" + t).on(\"mousedown\", a(t)).on(\"touchstart\", a(t));\n e.rectSelection.set.add(n);\n }), this.rectSelection.set.each(function () {\n this.addClass(e.options.classPoints);\n });\n }\n\n if (this.options.rotationPoint && (this.options.points && !this.rectSelection.set.get(9) || !this.options.points && !this.rectSelection.set.get(1))) {\n var s = function s(t) {\n (t = t || window.event).preventDefault ? t.preventDefault() : t.returnValue = !1, t.stopPropagation();\n var i = t.pageX || t.touches[0].pageX,\n a = t.pageY || t.touches[0].pageY;\n e.el.fire(\"rot\", {\n x: i,\n y: a,\n event: t\n });\n },\n r = this.drawPoint(i.width / 2, 20).attr(\"class\", this.options.classPoints + \"_rot\").on(\"touchstart\", s).on(\"mousedown\", s);\n\n this.rectSelection.set.add(r);\n }\n }, t.prototype.handler = function () {\n var t = this.el.bbox();\n this.nested.matrix(new SVG.Matrix(this.el).translate(t.x, t.y)), this.rectSelection.isSelected && this.updateRectSelection(), this.pointSelection.isSelected && this.updatePointSelection();\n }, t.prototype.observe = function () {\n var t = this;\n if (MutationObserver) {\n if (this.rectSelection.isSelected || this.pointSelection.isSelected) this.observerInst = this.observerInst || new MutationObserver(function () {\n t.handler();\n }), this.observerInst.observe(this.el.node, {\n attributes: !0\n });else try {\n this.observerInst.disconnect(), delete this.observerInst;\n } catch (t) {}\n } else this.el.off(\"DOMAttrModified.select\"), (this.rectSelection.isSelected || this.pointSelection.isSelected) && this.el.on(\"DOMAttrModified.select\", function () {\n t.handler();\n });\n }, t.prototype.cleanup = function () {\n !this.rectSelection.isSelected && this.rectSelection.set && (this.rectSelection.set.each(function () {\n this.remove();\n }), this.rectSelection.set.clear(), delete this.rectSelection.set), !this.pointSelection.isSelected && this.pointSelection.set && (this.pointSelection.set.each(function () {\n this.remove();\n }), this.pointSelection.set.clear(), delete this.pointSelection.set), this.pointSelection.isSelected || this.rectSelection.isSelected || (this.nested.remove(), delete this.nested);\n }, SVG.extend(SVG.Element, {\n selectize: function selectize(e, i) {\n return \"object\" == _typeof(e) && (i = e, e = !0), (this.remember(\"_selectHandler\") || new t(this)).init(void 0 === e || e, i || {}), this;\n }\n }), SVG.Element.prototype.selectize.defaults = {\n points: [\"lt\", \"rt\", \"rb\", \"lb\", \"t\", \"r\", \"b\", \"l\"],\n pointsExclude: [],\n classRect: \"svg_select_boundingRect\",\n classPoints: \"svg_select_points\",\n pointSize: 7,\n rotationPoint: !0,\n deepSelect: !1,\n pointType: \"circle\"\n };\n}(), function () {\n (function () {\n function t(t) {\n t.remember(\"_resizeHandler\", this), this.el = t, this.parameters = {}, this.lastUpdateCall = null, this.p = t.doc().node.createSVGPoint();\n }\n\n t.prototype.transformPoint = function (t, e, i) {\n return this.p.x = t - (this.offset.x - window.pageXOffset), this.p.y = e - (this.offset.y - window.pageYOffset), this.p.matrixTransform(i || this.m);\n }, t.prototype._extractPosition = function (t) {\n return {\n x: null != t.clientX ? t.clientX : t.touches[0].clientX,\n y: null != t.clientY ? t.clientY : t.touches[0].clientY\n };\n }, t.prototype.init = function (t) {\n var e = this;\n\n if (this.stop(), \"stop\" !== t) {\n for (var i in this.options = {}, this.el.resize.defaults) {\n this.options[i] = this.el.resize.defaults[i], void 0 !== t[i] && (this.options[i] = t[i]);\n }\n\n this.el.on(\"lt.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"rt.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"rb.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"lb.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"t.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"r.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"b.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"l.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"rot.resize\", function (t) {\n e.resize(t || window.event);\n }), this.el.on(\"point.resize\", function (t) {\n e.resize(t || window.event);\n }), this.update();\n }\n }, t.prototype.stop = function () {\n return this.el.off(\"lt.resize\"), this.el.off(\"rt.resize\"), this.el.off(\"rb.resize\"), this.el.off(\"lb.resize\"), this.el.off(\"t.resize\"), this.el.off(\"r.resize\"), this.el.off(\"b.resize\"), this.el.off(\"l.resize\"), this.el.off(\"rot.resize\"), this.el.off(\"point.resize\"), this;\n }, t.prototype.resize = function (t) {\n var e = this;\n this.m = this.el.node.getScreenCTM().inverse(), this.offset = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n\n var i = this._extractPosition(t.detail.event);\n\n if (this.parameters = {\n type: this.el.type,\n p: this.transformPoint(i.x, i.y),\n x: t.detail.x,\n y: t.detail.y,\n box: this.el.bbox(),\n rotation: this.el.transform().rotation\n }, \"text\" === this.el.type && (this.parameters.fontSize = this.el.attr()[\"font-size\"]), void 0 !== t.detail.i) {\n var a = this.el.array().valueOf();\n this.parameters.i = t.detail.i, this.parameters.pointCoords = [a[t.detail.i][0], a[t.detail.i][1]];\n }\n\n switch (t.type) {\n case \"lt\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e);\n\n if (this.parameters.box.width - i[0] > 0 && this.parameters.box.height - i[1] > 0) {\n if (\"text\" === this.parameters.type) return this.el.move(this.parameters.box.x + i[0], this.parameters.box.y), void this.el.attr(\"font-size\", this.parameters.fontSize - i[0]);\n i = this.checkAspectRatio(i), this.el.move(this.parameters.box.x + i[0], this.parameters.box.y + i[1]).size(this.parameters.box.width - i[0], this.parameters.box.height - i[1]);\n }\n };\n\n break;\n\n case \"rt\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e, 2);\n\n if (this.parameters.box.width + i[0] > 0 && this.parameters.box.height - i[1] > 0) {\n if (\"text\" === this.parameters.type) return this.el.move(this.parameters.box.x - i[0], this.parameters.box.y), void this.el.attr(\"font-size\", this.parameters.fontSize + i[0]);\n i = this.checkAspectRatio(i, !0), this.el.move(this.parameters.box.x, this.parameters.box.y + i[1]).size(this.parameters.box.width + i[0], this.parameters.box.height - i[1]);\n }\n };\n\n break;\n\n case \"rb\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e, 0);\n\n if (this.parameters.box.width + i[0] > 0 && this.parameters.box.height + i[1] > 0) {\n if (\"text\" === this.parameters.type) return this.el.move(this.parameters.box.x - i[0], this.parameters.box.y), void this.el.attr(\"font-size\", this.parameters.fontSize + i[0]);\n i = this.checkAspectRatio(i), this.el.move(this.parameters.box.x, this.parameters.box.y).size(this.parameters.box.width + i[0], this.parameters.box.height + i[1]);\n }\n };\n\n break;\n\n case \"lb\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e, 1);\n\n if (this.parameters.box.width - i[0] > 0 && this.parameters.box.height + i[1] > 0) {\n if (\"text\" === this.parameters.type) return this.el.move(this.parameters.box.x + i[0], this.parameters.box.y), void this.el.attr(\"font-size\", this.parameters.fontSize - i[0]);\n i = this.checkAspectRatio(i, !0), this.el.move(this.parameters.box.x + i[0], this.parameters.box.y).size(this.parameters.box.width - i[0], this.parameters.box.height + i[1]);\n }\n };\n\n break;\n\n case \"t\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e, 2);\n\n if (this.parameters.box.height - i[1] > 0) {\n if (\"text\" === this.parameters.type) return;\n this.el.move(this.parameters.box.x, this.parameters.box.y + i[1]).height(this.parameters.box.height - i[1]);\n }\n };\n\n break;\n\n case \"r\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e, 0);\n\n if (this.parameters.box.width + i[0] > 0) {\n if (\"text\" === this.parameters.type) return;\n this.el.move(this.parameters.box.x, this.parameters.box.y).width(this.parameters.box.width + i[0]);\n }\n };\n\n break;\n\n case \"b\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e, 0);\n\n if (this.parameters.box.height + i[1] > 0) {\n if (\"text\" === this.parameters.type) return;\n this.el.move(this.parameters.box.x, this.parameters.box.y).height(this.parameters.box.height + i[1]);\n }\n };\n\n break;\n\n case \"l\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e, 1);\n\n if (this.parameters.box.width - i[0] > 0) {\n if (\"text\" === this.parameters.type) return;\n this.el.move(this.parameters.box.x + i[0], this.parameters.box.y).width(this.parameters.box.width - i[0]);\n }\n };\n\n break;\n\n case \"rot\":\n this.calc = function (t, e) {\n var i = t + this.parameters.p.x,\n a = e + this.parameters.p.y,\n s = Math.atan2(this.parameters.p.y - this.parameters.box.y - this.parameters.box.height / 2, this.parameters.p.x - this.parameters.box.x - this.parameters.box.width / 2),\n r = Math.atan2(a - this.parameters.box.y - this.parameters.box.height / 2, i - this.parameters.box.x - this.parameters.box.width / 2),\n n = this.parameters.rotation + 180 * (r - s) / Math.PI + this.options.snapToAngle / 2;\n this.el.center(this.parameters.box.cx, this.parameters.box.cy).rotate(n - n % this.options.snapToAngle, this.parameters.box.cx, this.parameters.box.cy);\n };\n\n break;\n\n case \"point\":\n this.calc = function (t, e) {\n var i = this.snapToGrid(t, e, this.parameters.pointCoords[0], this.parameters.pointCoords[1]),\n a = this.el.array().valueOf();\n a[this.parameters.i][0] = this.parameters.pointCoords[0] + i[0], a[this.parameters.i][1] = this.parameters.pointCoords[1] + i[1], this.el.plot(a);\n };\n\n }\n\n this.el.fire(\"resizestart\", {\n dx: this.parameters.x,\n dy: this.parameters.y,\n event: t\n }), SVG.on(window, \"touchmove.resize\", function (t) {\n e.update(t || window.event);\n }), SVG.on(window, \"touchend.resize\", function () {\n e.done();\n }), SVG.on(window, \"mousemove.resize\", function (t) {\n e.update(t || window.event);\n }), SVG.on(window, \"mouseup.resize\", function () {\n e.done();\n });\n }, t.prototype.update = function (t) {\n if (t) {\n var e = this._extractPosition(t),\n i = this.transformPoint(e.x, e.y),\n a = i.x - this.parameters.p.x,\n s = i.y - this.parameters.p.y;\n\n this.lastUpdateCall = [a, s], this.calc(a, s), this.el.fire(\"resizing\", {\n dx: a,\n dy: s,\n event: t\n });\n } else this.lastUpdateCall && this.calc(this.lastUpdateCall[0], this.lastUpdateCall[1]);\n }, t.prototype.done = function () {\n this.lastUpdateCall = null, SVG.off(window, \"mousemove.resize\"), SVG.off(window, \"mouseup.resize\"), SVG.off(window, \"touchmove.resize\"), SVG.off(window, \"touchend.resize\"), this.el.fire(\"resizedone\");\n }, t.prototype.snapToGrid = function (t, e, i, a) {\n var s;\n return void 0 !== a ? s = [(i + t) % this.options.snapToGrid, (a + e) % this.options.snapToGrid] : (i = null == i ? 3 : i, s = [(this.parameters.box.x + t + (1 & i ? 0 : this.parameters.box.width)) % this.options.snapToGrid, (this.parameters.box.y + e + (2 & i ? 0 : this.parameters.box.height)) % this.options.snapToGrid]), t < 0 && (s[0] -= this.options.snapToGrid), e < 0 && (s[1] -= this.options.snapToGrid), t -= Math.abs(s[0]) < this.options.snapToGrid / 2 ? s[0] : s[0] - (t < 0 ? -this.options.snapToGrid : this.options.snapToGrid), e -= Math.abs(s[1]) < this.options.snapToGrid / 2 ? s[1] : s[1] - (e < 0 ? -this.options.snapToGrid : this.options.snapToGrid), this.constraintToBox(t, e, i, a);\n }, t.prototype.constraintToBox = function (t, e, i, a) {\n var s,\n r,\n n = this.options.constraint || {};\n return void 0 !== a ? (s = i, r = a) : (s = this.parameters.box.x + (1 & i ? 0 : this.parameters.box.width), r = this.parameters.box.y + (2 & i ? 0 : this.parameters.box.height)), void 0 !== n.minX && s + t < n.minX && (t = n.minX - s), void 0 !== n.maxX && s + t > n.maxX && (t = n.maxX - s), void 0 !== n.minY && r + e < n.minY && (e = n.minY - r), void 0 !== n.maxY && r + e > n.maxY && (e = n.maxY - r), [t, e];\n }, t.prototype.checkAspectRatio = function (t, e) {\n if (!this.options.saveAspectRatio) return t;\n var i = t.slice(),\n a = this.parameters.box.width / this.parameters.box.height,\n s = this.parameters.box.width + t[0],\n r = this.parameters.box.height - t[1],\n n = s / r;\n return n < a ? (i[1] = s / a - this.parameters.box.height, e && (i[1] = -i[1])) : n > a && (i[0] = this.parameters.box.width - r * a, e && (i[0] = -i[0])), i;\n }, SVG.extend(SVG.Element, {\n resize: function resize(e) {\n return (this.remember(\"_resizeHandler\") || new t(this)).init(e || {}), this;\n }\n }), SVG.Element.prototype.resize.defaults = {\n snapToAngle: .1,\n snapToGrid: 1,\n constraint: {},\n saveAspectRatio: !1\n };\n }).call(this);\n}();\n!function (t, e) {\n void 0 === e && (e = {});\n var i = e.insertAt;\n\n if (t && \"undefined\" != typeof document) {\n var a = document.head || document.getElementsByTagName(\"head\")[0],\n s = document.createElement(\"style\");\n s.type = \"text/css\", \"top\" === i && a.firstChild ? a.insertBefore(s, a.firstChild) : a.appendChild(s), s.styleSheet ? s.styleSheet.cssText = t : s.appendChild(document.createTextNode(t));\n }\n}('.apexcharts-canvas {\\n position: relative;\\n user-select: none;\\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\\n}\\n\\n\\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\\n.apexcharts-canvas ::-webkit-scrollbar {\\n -webkit-appearance: none;\\n width: 6px;\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\\n border-radius: 4px;\\n background-color: rgba(0, 0, 0, .5);\\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);\\n}\\n\\n\\n.apexcharts-inner {\\n position: relative;\\n}\\n\\n.apexcharts-text tspan {\\n font-family: inherit;\\n}\\n\\n.legend-mouseover-inactive {\\n transition: 0.15s ease all;\\n opacity: 0.20;\\n}\\n\\n.apexcharts-series-collapsed {\\n opacity: 0;\\n}\\n\\n.apexcharts-tooltip {\\n border-radius: 5px;\\n box-shadow: 2px 2px 6px -4px #999;\\n cursor: default;\\n font-size: 14px;\\n left: 62px;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 20px;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n white-space: nowrap;\\n z-index: 12;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-tooltip.apexcharts-active {\\n opacity: 1;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light {\\n border: 1px solid #e3e3e3;\\n background: rgba(255, 255, 255, 0.96);\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark {\\n color: #fff;\\n background: rgba(30, 30, 30, 0.8);\\n}\\n\\n.apexcharts-tooltip * {\\n font-family: inherit;\\n}\\n\\n\\n.apexcharts-tooltip-title {\\n padding: 6px;\\n font-size: 15px;\\n margin-bottom: 4px;\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\\n background: #ECEFF1;\\n border-bottom: 1px solid #ddd;\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\\n background: rgba(0, 0, 0, 0.7);\\n border-bottom: 1px solid #333;\\n}\\n\\n.apexcharts-tooltip-text-value,\\n.apexcharts-tooltip-text-z-value {\\n display: inline-block;\\n font-weight: 600;\\n margin-left: 5px;\\n}\\n\\n.apexcharts-tooltip-text-z-label:empty,\\n.apexcharts-tooltip-text-z-value:empty {\\n display: none;\\n}\\n\\n.apexcharts-tooltip-text-value,\\n.apexcharts-tooltip-text-z-value {\\n font-weight: 600;\\n}\\n\\n.apexcharts-tooltip-marker {\\n width: 12px;\\n height: 12px;\\n position: relative;\\n top: 0px;\\n margin-right: 10px;\\n border-radius: 50%;\\n}\\n\\n.apexcharts-tooltip-series-group {\\n padding: 0 10px;\\n display: none;\\n text-align: left;\\n justify-content: left;\\n align-items: center;\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\\n opacity: 1;\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active,\\n.apexcharts-tooltip-series-group:last-child {\\n padding-bottom: 4px;\\n}\\n\\n.apexcharts-tooltip-series-group-hidden {\\n opacity: 0;\\n height: 0;\\n line-height: 0;\\n padding: 0 !important;\\n}\\n\\n.apexcharts-tooltip-y-group {\\n padding: 6px 0 5px;\\n}\\n\\n.apexcharts-tooltip-candlestick {\\n padding: 4px 8px;\\n}\\n\\n.apexcharts-tooltip-candlestick>div {\\n margin: 4px 0;\\n}\\n\\n.apexcharts-tooltip-candlestick span.value {\\n font-weight: bold;\\n}\\n\\n.apexcharts-tooltip-rangebar {\\n padding: 5px 8px;\\n}\\n\\n.apexcharts-tooltip-rangebar .category {\\n font-weight: 600;\\n color: #777;\\n}\\n\\n.apexcharts-tooltip-rangebar .series-name {\\n font-weight: bold;\\n display: block;\\n margin-bottom: 5px;\\n}\\n\\n.apexcharts-xaxistooltip {\\n opacity: 0;\\n padding: 9px 10px;\\n pointer-events: none;\\n color: #373d3f;\\n font-size: 13px;\\n text-align: center;\\n border-radius: 2px;\\n position: absolute;\\n z-index: 10;\\n background: #ECEFF1;\\n border: 1px solid #90A4AE;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\\n background: rgba(0, 0, 0, 0.7);\\n border: 1px solid rgba(0, 0, 0, 0.5);\\n color: #fff;\\n}\\n\\n.apexcharts-xaxistooltip:after,\\n.apexcharts-xaxistooltip:before {\\n left: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n}\\n\\n.apexcharts-xaxistooltip:after {\\n border-color: rgba(236, 239, 241, 0);\\n border-width: 6px;\\n margin-left: -6px;\\n}\\n\\n.apexcharts-xaxistooltip:before {\\n border-color: rgba(144, 164, 174, 0);\\n border-width: 7px;\\n margin-left: -7px;\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after,\\n.apexcharts-xaxistooltip-bottom:before {\\n bottom: 100%;\\n}\\n\\n.apexcharts-xaxistooltip-top:after,\\n.apexcharts-xaxistooltip-top:before {\\n top: 100%;\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after {\\n border-bottom-color: #ECEFF1;\\n}\\n\\n.apexcharts-xaxistooltip-bottom:before {\\n border-bottom-color: #90A4AE;\\n}\\n\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {\\n border-bottom-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\\n border-bottom-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-xaxistooltip-top:after {\\n border-top-color: #ECEFF1\\n}\\n\\n.apexcharts-xaxistooltip-top:before {\\n border-top-color: #90A4AE;\\n}\\n\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {\\n border-top-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\\n border-top-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-active {\\n opacity: 1;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-yaxistooltip {\\n opacity: 0;\\n padding: 4px 10px;\\n pointer-events: none;\\n color: #373d3f;\\n font-size: 13px;\\n text-align: center;\\n border-radius: 2px;\\n position: absolute;\\n z-index: 10;\\n background: #ECEFF1;\\n border: 1px solid #90A4AE;\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\\n background: rgba(0, 0, 0, 0.7);\\n border: 1px solid rgba(0, 0, 0, 0.5);\\n color: #fff;\\n}\\n\\n.apexcharts-yaxistooltip:after,\\n.apexcharts-yaxistooltip:before {\\n top: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n}\\n\\n.apexcharts-yaxistooltip:after {\\n border-color: rgba(236, 239, 241, 0);\\n border-width: 6px;\\n margin-top: -6px;\\n}\\n\\n.apexcharts-yaxistooltip:before {\\n border-color: rgba(144, 164, 174, 0);\\n border-width: 7px;\\n margin-top: -7px;\\n}\\n\\n.apexcharts-yaxistooltip-left:after,\\n.apexcharts-yaxistooltip-left:before {\\n left: 100%;\\n}\\n\\n.apexcharts-yaxistooltip-right:after,\\n.apexcharts-yaxistooltip-right:before {\\n right: 100%;\\n}\\n\\n.apexcharts-yaxistooltip-left:after {\\n border-left-color: #ECEFF1;\\n}\\n\\n.apexcharts-yaxistooltip-left:before {\\n border-left-color: #90A4AE;\\n}\\n\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {\\n border-left-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\\n border-left-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-yaxistooltip-right:after {\\n border-right-color: #ECEFF1;\\n}\\n\\n.apexcharts-yaxistooltip-right:before {\\n border-right-color: #90A4AE;\\n}\\n\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {\\n border-right-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\\n border-right-color: rgba(0, 0, 0, 0.5);\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-active {\\n opacity: 1;\\n}\\n\\n.apexcharts-yaxistooltip-hidden {\\n display: none;\\n}\\n\\n.apexcharts-xcrosshairs,\\n.apexcharts-ycrosshairs {\\n pointer-events: none;\\n opacity: 0;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-xcrosshairs.apexcharts-active,\\n.apexcharts-ycrosshairs.apexcharts-active {\\n opacity: 1;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-ycrosshairs-hidden {\\n opacity: 0;\\n}\\n\\n.apexcharts-selection-rect {\\n cursor: move;\\n}\\n\\n.svg_select_boundingRect, .svg_select_points_rot {\\n pointer-events: none;\\n opacity: 0;\\n visibility: hidden;\\n}\\n.apexcharts-selection-rect + g .svg_select_boundingRect,\\n.apexcharts-selection-rect + g .svg_select_points_rot {\\n opacity: 0;\\n visibility: hidden;\\n}\\n\\n.apexcharts-selection-rect + g .svg_select_points_l,\\n.apexcharts-selection-rect + g .svg_select_points_r {\\n cursor: ew-resize;\\n opacity: 1;\\n visibility: visible;\\n}\\n\\n.svg_select_points {\\n fill: #efefef;\\n stroke: #333;\\n rx: 2;\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\\n cursor: crosshair\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\\n cursor: move\\n}\\n\\n.apexcharts-zoom-icon,\\n.apexcharts-zoomin-icon,\\n.apexcharts-zoomout-icon,\\n.apexcharts-reset-icon,\\n.apexcharts-pan-icon,\\n.apexcharts-selection-icon,\\n.apexcharts-menu-icon,\\n.apexcharts-toolbar-custom-icon {\\n cursor: pointer;\\n width: 20px;\\n height: 20px;\\n line-height: 24px;\\n color: #6E8192;\\n text-align: center;\\n}\\n\\n.apexcharts-zoom-icon svg,\\n.apexcharts-zoomin-icon svg,\\n.apexcharts-zoomout-icon svg,\\n.apexcharts-reset-icon svg,\\n.apexcharts-menu-icon svg {\\n fill: #6E8192;\\n}\\n\\n.apexcharts-selection-icon svg {\\n fill: #444;\\n transform: scale(0.76)\\n}\\n\\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg,\\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {\\n fill: #f3f4f5;\\n}\\n\\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,\\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {\\n fill: #008FFB;\\n}\\n\\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg {\\n fill: #333;\\n}\\n\\n.apexcharts-selection-icon,\\n.apexcharts-menu-icon {\\n position: relative;\\n}\\n\\n.apexcharts-reset-icon {\\n margin-left: 5px;\\n}\\n\\n.apexcharts-zoom-icon,\\n.apexcharts-reset-icon,\\n.apexcharts-menu-icon {\\n transform: scale(0.85);\\n}\\n\\n.apexcharts-zoomin-icon,\\n.apexcharts-zoomout-icon {\\n transform: scale(0.7)\\n}\\n\\n.apexcharts-zoomout-icon {\\n margin-right: 3px;\\n}\\n\\n.apexcharts-pan-icon {\\n transform: scale(0.62);\\n position: relative;\\n left: 1px;\\n top: 0px;\\n}\\n\\n.apexcharts-pan-icon svg {\\n fill: #fff;\\n stroke: #6E8192;\\n stroke-width: 2;\\n}\\n\\n.apexcharts-pan-icon.apexcharts-selected svg {\\n stroke: #008FFB;\\n}\\n\\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\\n stroke: #333;\\n}\\n\\n.apexcharts-toolbar {\\n position: absolute;\\n z-index: 11;\\n max-width: 176px;\\n text-align: right;\\n border-radius: 3px;\\n padding: 0px 6px 2px 6px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n}\\n\\n.apexcharts-menu {\\n background: #fff;\\n position: absolute;\\n top: 100%;\\n border: 1px solid #ddd;\\n border-radius: 3px;\\n padding: 3px;\\n right: 10px;\\n opacity: 0;\\n min-width: 110px;\\n transition: 0.15s ease all;\\n pointer-events: none;\\n}\\n\\n.apexcharts-menu.apexcharts-menu-open {\\n opacity: 1;\\n pointer-events: all;\\n transition: 0.15s ease all;\\n}\\n\\n.apexcharts-menu-item {\\n padding: 6px 7px;\\n font-size: 12px;\\n cursor: pointer;\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-item:hover {\\n background: #eee;\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu {\\n background: rgba(0, 0, 0, 0.7);\\n color: #fff;\\n}\\n\\n@media screen and (min-width: 768px) {\\n .apexcharts-canvas:hover .apexcharts-toolbar {\\n opacity: 1;\\n }\\n}\\n\\n.apexcharts-datalabel.apexcharts-element-hidden {\\n opacity: 0;\\n}\\n\\n.apexcharts-pie-label,\\n.apexcharts-datalabels,\\n.apexcharts-datalabel,\\n.apexcharts-datalabel-label,\\n.apexcharts-datalabel-value {\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n.apexcharts-pie-label-delay {\\n opacity: 0;\\n animation-name: opaque;\\n animation-duration: 0.3s;\\n animation-fill-mode: forwards;\\n animation-timing-function: ease;\\n}\\n\\n.apexcharts-canvas .apexcharts-element-hidden {\\n opacity: 0;\\n}\\n\\n.apexcharts-hide .apexcharts-series-points {\\n opacity: 0;\\n}\\n\\n.apexcharts-gridline,\\n.apexcharts-annotation-rect,\\n.apexcharts-tooltip .apexcharts-marker,\\n.apexcharts-area-series .apexcharts-area,\\n.apexcharts-line,\\n.apexcharts-zoom-rect,\\n.apexcharts-toolbar svg,\\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\\n.apexcharts-radar-series path,\\n.apexcharts-radar-series polygon {\\n pointer-events: none;\\n}\\n\\n\\n/* markers */\\n\\n.apexcharts-marker {\\n transition: 0.15s ease all;\\n}\\n\\n@keyframes opaque {\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n\\n/* Resize generated styles */\\n\\n@keyframes resizeanim {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n\\n.resize-triggers {\\n animation: 1ms resizeanim;\\n visibility: hidden;\\n opacity: 0;\\n}\\n\\n.resize-triggers,\\n.resize-triggers>div,\\n.contract-trigger:before {\\n content: \" \";\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden;\\n}\\n\\n.resize-triggers>div {\\n background: #eee;\\n overflow: auto;\\n}\\n\\n.contract-trigger:before {\\n width: 200%;\\n height: 200%;\\n}'), function () {\n function t(t) {\n var e = t.__resizeTriggers__,\n i = e.firstElementChild,\n a = e.lastElementChild,\n s = i ? i.firstElementChild : null;\n a && (a.scrollLeft = a.scrollWidth, a.scrollTop = a.scrollHeight), s && (s.style.width = i.offsetWidth + 1 + \"px\", s.style.height = i.offsetHeight + 1 + \"px\"), i && (i.scrollLeft = i.scrollWidth, i.scrollTop = i.scrollHeight);\n }\n\n function e(e) {\n var i = this;\n t(this), this.__resizeRAF__ && r(this.__resizeRAF__), this.__resizeRAF__ = s(function () {\n (function (t) {\n return t.offsetWidth != t.__resizeLast__.width || t.offsetHeight != t.__resizeLast__.height;\n })(i) && (i.__resizeLast__.width = i.offsetWidth, i.__resizeLast__.height = i.offsetHeight, i.__resizeListeners__.forEach(function (t) {\n t.call(e);\n }));\n });\n }\n\n var i,\n a,\n s = (i = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (t) {\n return window.setTimeout(t, 20);\n }, function (t) {\n return i(t);\n }),\n r = (a = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout, function (t) {\n return a(t);\n }),\n n = !1,\n o = \"animationstart\",\n l = \"Webkit Moz O ms\".split(\" \"),\n h = \"webkitAnimationStart animationstart oAnimationStart MSAnimationStart\".split(\" \"),\n c = document.createElement(\"fakeelement\");\n if (void 0 !== c.style.animationName && (n = !0), !1 === n) for (var d = 0; d < l.length; d++) {\n if (void 0 !== c.style[l[d] + \"AnimationName\"]) {\n o = h[d];\n break;\n }\n }\n window.addResizeListener = function (i, a) {\n i.__resizeTriggers__ || (\"static\" == getComputedStyle(i).position && (i.style.position = \"relative\"), i.__resizeLast__ = {}, i.__resizeListeners__ = [], (i.__resizeTriggers__ = document.createElement(\"div\")).className = \"resize-triggers\", i.__resizeTriggers__.innerHTML = '
', i.appendChild(i.__resizeTriggers__), t(i), i.addEventListener(\"scroll\", e, !0), o && i.__resizeTriggers__.addEventListener(o, function (e) {\n \"resizeanim\" == e.animationName && t(i);\n })), i.__resizeListeners__.push(a);\n }, window.removeResizeListener = function (t, i) {\n t && (t.__resizeListeners__.splice(t.__resizeListeners__.indexOf(i), 1), t.__resizeListeners__.length || (t.removeEventListener(\"scroll\", e), t.__resizeTriggers__.parentNode && (t.__resizeTriggers__ = !t.removeChild(t.__resizeTriggers__))));\n };\n}(), void 0 === window.Apex && (window.Apex = {});\n\nvar Yt = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"initModules\",\n value: function value() {\n this.ctx.publicMethods = [\"updateOptions\", \"updateSeries\", \"appendData\", \"appendSeries\", \"toggleSeries\", \"showSeries\", \"hideSeries\", \"setLocale\", \"resetSeries\", \"zoomX\", \"toggleDataPointSelection\", \"dataURI\", \"addXaxisAnnotation\", \"addYaxisAnnotation\", \"addPointAnnotation\", \"clearAnnotations\", \"removeAnnotation\", \"paper\", \"destroy\"], this.ctx.eventList = [\"click\", \"mousedown\", \"mousemove\", \"touchstart\", \"touchmove\", \"mouseup\", \"touchend\"], this.ctx.animations = new x(this.ctx), this.ctx.axes = new J(this.ctx), this.ctx.core = new Et(this.ctx.el, this.ctx), this.ctx.config = new D({}), this.ctx.data = new O(this.ctx), this.ctx.grid = new _(this.ctx), this.ctx.graphics = new b(this.ctx), this.ctx.coreUtils = new y(this.ctx), this.ctx.crosshairs = new Q(this.ctx), this.ctx.events = new Z(this.ctx), this.ctx.exports = new V(this.ctx), this.ctx.localization = new $(this.ctx), this.ctx.options = new S(), this.ctx.responsive = new K(this.ctx), this.ctx.series = new M(this.ctx), this.ctx.theme = new tt(this.ctx), this.ctx.formatters = new W(this.ctx), this.ctx.titleSubtitle = new et(this.ctx), this.ctx.legend = new lt(this.ctx), this.ctx.toolbar = new ht(this.ctx), this.ctx.dimensions = new nt(this.ctx), this.ctx.updateHelpers = new Xt(this.ctx), this.ctx.zoomPanSelection = new ct(this.ctx), this.ctx.w.globals.tooltip = new bt(this.ctx);\n }\n }]), t;\n}(),\n Ft = function () {\n function t(i) {\n e(this, t), this.ctx = i, this.w = i.w;\n }\n\n return a(t, [{\n key: \"clear\",\n value: function value(t) {\n var e = t.isUpdating;\n this.ctx.zoomPanSelection && this.ctx.zoomPanSelection.destroy(), this.ctx.toolbar && this.ctx.toolbar.destroy(), this.ctx.animations = null, this.ctx.axes = null, this.ctx.annotations = null, this.ctx.core = null, this.ctx.data = null, this.ctx.grid = null, this.ctx.series = null, this.ctx.responsive = null, this.ctx.theme = null, this.ctx.formatters = null, this.ctx.titleSubtitle = null, this.ctx.legend = null, this.ctx.dimensions = null, this.ctx.options = null, this.ctx.crosshairs = null, this.ctx.zoomPanSelection = null, this.ctx.updateHelpers = null, this.ctx.toolbar = null, this.ctx.localization = null, this.ctx.w.globals.tooltip = null, this.clearDomElements({\n isUpdating: e\n });\n }\n }, {\n key: \"killSVG\",\n value: function value(t) {\n t.each(function (t, e) {\n this.removeClass(\"*\"), this.off(), this.stop();\n }, !0), t.ungroup(), t.clear();\n }\n }, {\n key: \"clearDomElements\",\n value: function value(t) {\n var e = this,\n i = t.isUpdating,\n a = this.w.globals.dom.Paper.node;\n a.parentNode && a.parentNode.parentNode && !i && (a.parentNode.parentNode.style.minHeight = \"unset\");\n var s = this.w.globals.dom.baseEl;\n s && this.ctx.eventList.forEach(function (t) {\n s.removeEventListener(t, e.ctx.events.documentEvent);\n });\n var r = this.w.globals.dom;\n if (null !== this.ctx.el) for (; this.ctx.el.firstChild;) {\n this.ctx.el.removeChild(this.ctx.el.firstChild);\n }\n this.killSVG(r.Paper), r.Paper.remove(), r.elWrap = null, r.elGraphical = null, r.elAnnotations = null, r.elLegendWrap = null, r.baseEl = null, r.elGridRect = null, r.elGridRectMask = null, r.elGridRectMarkerMask = null, r.elDefs = null;\n }\n }]), t;\n}(),\n Rt = function () {\n function t(i, a) {\n e(this, t), this.opts = a, this.ctx = this, this.w = new N(a).init(), this.el = i, this.w.globals.cuid = f.randomId(), this.w.globals.chartID = this.w.config.chart.id ? f.escapeString(this.w.config.chart.id) : this.w.globals.cuid, new Yt(this).initModules(), this.create = f.bind(this.create, this), this.windowResizeHandler = this._windowResizeHandler.bind(this), this.parentResizeHandler = this._parentResizeCallback.bind(this);\n }\n\n return a(t, [{\n key: \"render\",\n value: function value() {\n var t = this;\n return new Promise(function (e, i) {\n if (null !== t.el) {\n void 0 === Apex._chartInstances && (Apex._chartInstances = []), t.w.config.chart.id && Apex._chartInstances.push({\n id: t.w.globals.chartID,\n group: t.w.config.chart.group,\n chart: t\n }), t.setLocale(t.w.config.chart.defaultLocale);\n var a = t.w.config.chart.events.beforeMount;\n \"function\" == typeof a && a(t, t.w), t.events.fireEvent(\"beforeMount\", [t, t.w]), window.addEventListener(\"resize\", t.windowResizeHandler), window.addResizeListener(t.el.parentNode, t.parentResizeHandler);\n var s = t.create(t.w.config.series, {});\n if (!s) return e(t);\n t.mount(s).then(function () {\n \"function\" == typeof t.w.config.chart.events.mounted && t.w.config.chart.events.mounted(t, t.w), t.events.fireEvent(\"mounted\", [t, t.w]), e(s);\n }).catch(function (t) {\n i(t);\n });\n } else i(new Error(\"Element not found\"));\n });\n }\n }, {\n key: \"create\",\n value: function value(t, e) {\n var i = this.w;\n new Yt(this).initModules();\n var a = this.w.globals;\n (a.noData = !1, a.animationEnded = !1, this.responsive.checkResponsiveConfig(e), i.config.xaxis.convertedCatToNumeric) && new R(i.config).convertCatToNumericXaxis(i.config, this.ctx);\n if (null === this.el) return a.animationEnded = !0, null;\n if (this.core.setupElements(), \"treemap\" === i.config.chart.type && (i.config.grid.show = !1, i.config.yaxis[0].show = !1), 0 === a.svgWidth) return a.animationEnded = !0, null;\n var s = y.checkComboSeries(t);\n a.comboCharts = s.comboCharts, a.comboBarCount = s.comboBarCount;\n var r = t.every(function (t) {\n return t.data && 0 === t.data.length;\n });\n (0 === t.length || r) && this.series.handleNoData(), this.events.setupEventHandlers(), this.data.parseData(t), this.theme.init(), new P(this).setGlobalMarkerSize(), this.formatters.setLabelFormatters(), this.titleSubtitle.draw(), a.noData && a.collapsedSeries.length !== a.series.length && !i.config.legend.showForSingleSeries || this.legend.init(), this.series.hasAllSeriesEqualX(), a.axisCharts && (this.core.coreCalculations(), \"category\" !== i.config.xaxis.type && this.formatters.setLabelFormatters()), this.formatters.heatmapLabelFormatters(), this.dimensions.plotCoords();\n var n = this.core.xySettings();\n this.grid.createGridMask();\n var o = this.core.plotChartType(t, n),\n l = new z(this);\n l.bringForward(), i.config.dataLabels.background.enabled && l.dataLabelsBackground(), this.core.shiftGraphPosition();\n var h = {\n plot: {\n left: i.globals.translateX,\n top: i.globals.translateY,\n width: i.globals.gridWidth,\n height: i.globals.gridHeight\n }\n };\n return {\n elGraph: o,\n xyRatios: n,\n elInner: i.globals.dom.elGraphical,\n dimensions: h\n };\n }\n }, {\n key: \"mount\",\n value: function value() {\n var t = this,\n e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,\n i = this,\n a = i.w;\n return new Promise(function (s, r) {\n if (null === i.el) return r(new Error(\"Not enough data to display or target element not found\"));\n (null === e || a.globals.allSeriesCollapsed) && i.series.handleNoData(), \"treemap\" !== a.config.chart.type && i.axes.drawAxis(a.config.chart.type, e.xyRatios), i.grid = new _(i);\n var n = i.grid.drawGrid();\n i.annotations = new C(i), i.annotations.drawImageAnnos(), i.annotations.drawTextAnnos(), \"back\" === a.config.grid.position && n && a.globals.dom.elGraphical.add(n.el);\n var o = new G(t.ctx),\n l = new q(t.ctx);\n if (null !== n && (o.xAxisLabelCorrections(n.xAxisTickWidth), l.setYAxisTextAlignments()), \"back\" === a.config.annotations.position && (a.globals.dom.Paper.add(a.globals.dom.elAnnotations), i.annotations.drawAxesAnnotations()), Array.isArray(e.elGraph)) for (var h = 0; h < e.elGraph.length; h++) {\n a.globals.dom.elGraphical.add(e.elGraph[h]);\n } else a.globals.dom.elGraphical.add(e.elGraph);\n\n if (\"front\" === a.config.grid.position && n && a.globals.dom.elGraphical.add(n.el), \"front\" === a.config.xaxis.crosshairs.position && i.crosshairs.drawXCrosshairs(), \"front\" === a.config.yaxis[0].crosshairs.position && i.crosshairs.drawYCrosshairs(), \"front\" === a.config.annotations.position && (a.globals.dom.Paper.add(a.globals.dom.elAnnotations), i.annotations.drawAxesAnnotations()), !a.globals.noData) {\n if (a.config.tooltip.enabled && !a.globals.noData && i.w.globals.tooltip.drawTooltip(e.xyRatios), a.globals.axisCharts && (a.globals.isXNumeric || a.config.xaxis.convertedCatToNumeric || a.globals.isTimelineBar)) (a.config.chart.zoom.enabled || a.config.chart.selection && a.config.chart.selection.enabled || a.config.chart.pan && a.config.chart.pan.enabled) && i.zoomPanSelection.init({\n xyRatios: e.xyRatios\n });else {\n var c = a.config.chart.toolbar.tools;\n [\"zoom\", \"zoomin\", \"zoomout\", \"selection\", \"pan\", \"reset\"].forEach(function (t) {\n c[t] = !1;\n });\n }\n a.config.chart.toolbar.show && !a.globals.allSeriesCollapsed && i.toolbar.createToolbar();\n }\n\n a.globals.memory.methodsToExec.length > 0 && a.globals.memory.methodsToExec.forEach(function (t) {\n t.method(t.params, !1, t.context);\n }), a.globals.axisCharts || a.globals.noData || i.core.resizeNonAxisCharts(), s(i);\n });\n }\n }, {\n key: \"destroy\",\n value: function value() {\n window.removeEventListener(\"resize\", this.windowResizeHandler), window.removeResizeListener(this.el.parentNode, this.parentResizeHandler);\n var t = this.w.config.chart.id;\n t && Apex._chartInstances.forEach(function (e, i) {\n e.id === f.escapeString(t) && Apex._chartInstances.splice(i, 1);\n }), new Ft(this.ctx).clear({\n isUpdating: !1\n });\n }\n }, {\n key: \"updateOptions\",\n value: function value(t) {\n var e = this,\n i = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],\n a = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],\n s = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3],\n r = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4],\n n = this.w;\n return n.globals.selection = void 0, t.series && (this.series.resetSeries(!1, !0, !1), t.series.length && t.series[0].data && (t.series = t.series.map(function (t, i) {\n return e.updateHelpers._extendSeries(t, i);\n })), this.updateHelpers.revertDefaultAxisMinMax()), t.xaxis && (t = this.updateHelpers.forceXAxisUpdate(t)), t.yaxis && (t = this.updateHelpers.forceYAxisUpdate(t)), n.globals.collapsedSeriesIndices.length > 0 && this.series.clearPreviousPaths(), t.theme && (t = this.theme.updateThemeOptions(t)), this.updateHelpers._updateOptions(t, i, a, s, r);\n }\n }, {\n key: \"updateSeries\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],\n i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];\n return this.series.resetSeries(!1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(t, e, i);\n }\n }, {\n key: \"appendSeries\",\n value: function value(t) {\n var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],\n i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],\n a = this.w.config.series.slice();\n return a.push(t), this.series.resetSeries(!1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(a, e, i);\n }\n }, {\n key: \"appendData\",\n value: function value(t) {\n var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],\n i = this;\n i.w.globals.dataChanged = !0, i.series.getPreviousPaths();\n\n for (var a = i.w.config.series.slice(), s = 0; s < a.length; s++) {\n if (null !== t[s] && void 0 !== t[s]) for (var r = 0; r < t[s].data.length; r++) {\n a[s].data.push(t[s].data[r]);\n }\n }\n\n return i.w.config.series = a, e && (i.w.globals.initialSeries = f.clone(i.w.config.series)), this.update();\n }\n }, {\n key: \"update\",\n value: function value(t) {\n var e = this;\n return new Promise(function (i, a) {\n new Ft(e.ctx).clear({\n isUpdating: !0\n });\n var s = e.create(e.w.config.series, t);\n if (!s) return i(e);\n e.mount(s).then(function () {\n \"function\" == typeof e.w.config.chart.events.updated && e.w.config.chart.events.updated(e, e.w), e.events.fireEvent(\"updated\", [e, e.w]), e.w.globals.isDirty = !0, i(e);\n }).catch(function (t) {\n a(t);\n });\n });\n }\n }, {\n key: \"getSyncedCharts\",\n value: function value() {\n var t = this.getGroupedCharts(),\n e = [this];\n return t.length && (e = [], t.forEach(function (t) {\n e.push(t);\n })), e;\n }\n }, {\n key: \"getGroupedCharts\",\n value: function value() {\n var t = this;\n return Apex._chartInstances.filter(function (t) {\n if (t.group) return !0;\n }).map(function (e) {\n return t.w.config.chart.group === e.group ? e.chart : t;\n });\n }\n }, {\n key: \"toggleSeries\",\n value: function value(t) {\n return this.series.toggleSeries(t);\n }\n }, {\n key: \"showSeries\",\n value: function value(t) {\n this.series.showSeries(t);\n }\n }, {\n key: \"hideSeries\",\n value: function value(t) {\n this.series.hideSeries(t);\n }\n }, {\n key: \"resetSeries\",\n value: function value() {\n var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0],\n e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n this.series.resetSeries(t, e);\n }\n }, {\n key: \"addEventListener\",\n value: function value(t, e) {\n this.events.addEventListener(t, e);\n }\n }, {\n key: \"removeEventListener\",\n value: function value(t, e) {\n this.events.removeEventListener(t, e);\n }\n }, {\n key: \"addXaxisAnnotation\",\n value: function value(t) {\n var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0,\n a = this;\n i && (a = i), a.annotations.addXaxisAnnotationExternal(t, e, a);\n }\n }, {\n key: \"addYaxisAnnotation\",\n value: function value(t) {\n var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0,\n a = this;\n i && (a = i), a.annotations.addYaxisAnnotationExternal(t, e, a);\n }\n }, {\n key: \"addPointAnnotation\",\n value: function value(t) {\n var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0,\n a = this;\n i && (a = i), a.annotations.addPointAnnotationExternal(t, e, a);\n }\n }, {\n key: \"clearAnnotations\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0,\n e = this;\n t && (e = t), e.annotations.clearAnnotations(e);\n }\n }, {\n key: \"removeAnnotation\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0,\n i = this;\n e && (i = e), i.annotations.removeAnnotation(i, t);\n }\n }, {\n key: \"getChartArea\",\n value: function value() {\n return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner\");\n }\n }, {\n key: \"getSeriesTotalXRange\",\n value: function value(t, e) {\n return this.coreUtils.getSeriesTotalsXRange(t, e);\n }\n }, {\n key: \"getHighestValueInSeries\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,\n e = new U(this.ctx);\n return e.getMinYMaxY(t).highestY;\n }\n }, {\n key: \"getLowestValueInSeries\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,\n e = new U(this.ctx);\n return e.getMinYMaxY(t).lowestY;\n }\n }, {\n key: \"getSeriesTotal\",\n value: function value() {\n return this.w.globals.seriesTotals;\n }\n }, {\n key: \"toggleDataPointSelection\",\n value: function value(t, e) {\n return this.updateHelpers.toggleDataPointSelection(t, e);\n }\n }, {\n key: \"zoomX\",\n value: function value(t, e) {\n this.ctx.toolbar.zoomUpdateOptions(t, e);\n }\n }, {\n key: \"setLocale\",\n value: function value(t) {\n this.localization.setCurrentLocaleValues(t);\n }\n }, {\n key: \"dataURI\",\n value: function value() {\n return new V(this.ctx).dataURI();\n }\n }, {\n key: \"paper\",\n value: function value() {\n return this.w.globals.dom.Paper;\n }\n }, {\n key: \"_parentResizeCallback\",\n value: function value() {\n !this.w.globals.noData && this.w.globals.animationEnded && this.w.config.chart.redrawOnParentResize && this._windowResize();\n }\n }, {\n key: \"_windowResize\",\n value: function value() {\n var t = this;\n clearTimeout(this.w.globals.resizeTimer), this.w.globals.resizeTimer = window.setTimeout(function () {\n t.w.globals.resized = !0, t.w.globals.dataChanged = !1, t.ctx.update();\n }, 150);\n }\n }, {\n key: \"_windowResizeHandler\",\n value: function value() {\n var t = this.w.config.chart.redrawOnWindowResize;\n \"function\" == typeof t && (t = t()), t && this._windowResize();\n }\n }], [{\n key: \"getChartByID\",\n value: function value(t) {\n var e = f.escapeString(t),\n i = Apex._chartInstances.filter(function (t) {\n return t.id === e;\n })[0];\n\n return i && i.chart;\n }\n }, {\n key: \"initOnLoad\",\n value: function value() {\n for (var e = document.querySelectorAll(\"[data-apexcharts]\"), i = 0; i < e.length; i++) {\n new t(e[i], JSON.parse(e[i].getAttribute(\"data-options\"))).render();\n }\n }\n }, {\n key: \"exec\",\n value: function value(t, e) {\n var i = this.getChartByID(t);\n\n if (i) {\n i.w.globals.isExecCalled = !0;\n var a = null;\n\n if (-1 !== i.publicMethods.indexOf(e)) {\n for (var s = arguments.length, r = new Array(s > 2 ? s - 2 : 0), n = 2; n < s; n++) {\n r[n - 2] = arguments[n];\n }\n\n a = i[e].apply(i, r);\n }\n\n return a;\n }\n }\n }, {\n key: \"merge\",\n value: function value(t, e) {\n return f.extend(t, e);\n }\n }]), t;\n}();\n\nmodule.exports = Rt;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n/* eslint-disable no-proto */\n\n\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return _typeof(o) === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype']; // eslint-disable-next-line\n\n var HTMLElement = typeof window !== 'undefined' ? window.HTMLElement : undefined;\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !(HTMLElement && nextSource instanceof HTMLElement)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + _typeof(index) + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (_typeof(slidesIndexes) === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (_typeof(item) === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (_typeof(moduleParams) !== 'object' || moduleParams === null) return;\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n };\n\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n };\n\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\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 return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, offset + \"px\");\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n var prependIndexes = [];\n var appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\").remove();\n }\n }\n }\n\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (_i >= from && _i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i);\n } else {\n if (_i > previousTo) appendIndexes.push(_i);\n if (_i < previousFrom) prependIndexes.push(_i);\n }\n }\n }\n\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset + \"px\");\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
\" + slide + \"
\");\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n virtual: _extends({}, Virtual, {\n slides: swiper.params.virtual.slides,\n cache: {}\n })\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"virtual\");\n var overwriteParams = {\n watchSlidesProgress: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n/* eslint-disable consistent-return */\n\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n if (!swiper.enabled) return;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n swiper.emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined($swiperEl, swiper.params.scrollbar, swiper.params.createElements, {\n el: 'swiper-scrollbar'\n });\n var params = swiper.params.scrollbar;\n if (!params.el) return;\n var $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"
\");\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = parseInt(x, 10) * progress * rtlFactor + \"%\";\n } else {\n x = x * progress * rtlFactor + \"px\";\n }\n\n if (y.indexOf('%') >= 0) {\n y = parseInt(y, 10) * progress + \"%\";\n } else {\n y = y * progress + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px)\");\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\");\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideEl, slideIndex) {\n var slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if (duration === void 0) {\n duration = this.params.speed;\n }\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n }\n};\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n parallax: _extends({}, Parallax)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var device = swiper.device;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n } // Define if we need image drag\n\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function _in(e) {\n var swiper = this;\n var window = getWindow();\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n gesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n out: function out() {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\n gesture.$slideEl = undefined;\n },\n toggleGestures: function toggleGestures(method) {\n var swiper = this;\n var zoom = swiper.zoom;\n var selector = zoom.slideSelector,\n passive = zoom.passiveListener;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures: function enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures: function disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var support = swiper.support;\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass;\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n swiper.zoom.enabled = false;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n }\n};\nexport default {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n zoom: _extends({\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n }\n }, Zoom)\n });\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart: function touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(swiper, e) {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + params.loadingClass + \")\");\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\" + background + \"\\\")\");\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\" + params.preloaderClass).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\").length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\n } // Prev Slides\n\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n checkInViewOnLoad: function checkInViewOnLoad() {\n var window = getWindow();\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n var isWindow = $scrollElement[0] === window;\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n var swiperOffset = swiper.$el.offset();\n var rtl = swiper.rtlTranslate;\n var inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n }\n }\n};\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n lazy: _extends({\n initialImageLoaded: false\n }, Lazy)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n if (swiper.params.lazy.checkInView) {\n swiper.lazy.checkInViewOnLoad();\n } else {\n swiper.lazy.load();\n }\n }\n },\n scroll: function scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n 'scrollbarDragMove resize _freeModeNoMomentumRelease': function lazyLoad(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange(swiper) {\n var _swiper$params = swiper.params,\n lazy = _swiper$params.lazy,\n cssMode = _swiper$params.cssMode,\n watchSlidesVisibility = _swiper$params.watchSlidesVisibility,\n watchSlidesProgress = _swiper$params.watchSlidesProgress,\n touchReleaseOnEdges = _swiper$params.touchReleaseOnEdges,\n resistanceRatio = _swiper$params.resistanceRatio;\n\n if (lazy.enabled && (cssMode || (watchSlidesVisibility || watchSlidesProgress) && (touchReleaseOnEdges || resistanceRatio === 0))) {\n swiper.lazy.load();\n }\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\n\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var swiper = this;\n var params = swiper.params.a11y;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n swiper.a11y.addElId($wrapperEl, wrapperId);\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.addElRole($(swiper.slides), params.slideRole);\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, $slideEl.index() + 1).replace(/\\{\\{slidesLength\\}\\}/, swiper.slides.length);\n swiper.a11y.addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends({}, A11y, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar History = {\n init: function init() {\n var swiper = this;\n var window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues(urlOverride) {\n var window = getWindow();\n var location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n var window = getWindow();\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n var location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n var root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = root + \"/\" + key + \"/\" + value;\n } else if (!location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n\n var currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n history: _extends({}, History)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var document = getDocument();\n swiper.emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n }\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: _extends({\n initialized: false\n }, HashNavigation)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n/* eslint no-underscore-dangle: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size,\n browser = swiper.browser;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: swiperWidth + \"px\"\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-moz-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-ms-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n 'transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\"\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \" + (swiperWidth / 2 + params.shadowOffset) + \"px, \" + -swiperWidth / 2 + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + params.shadowScale + \")\");\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + (swiperHeight / 2 + offset) + \"px, \" + -swiperHeight / 2 / scale2 + \"px) rotateX(-90deg)\");\n }\n }\n\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\");\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n }\n};\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: _extends({}, Cube)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"cube\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n $slideEl.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false; // eslint-disable-next-line\n\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: _extends({}, Flip)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"flip\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\"
\");\n $slideEl.append($shadowBeforeEl);\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"
\");\n $slideEl.append($shadowAfterEl);\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: _extends({}, Coverflow)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n thumbs: _extends({\n swiper: null,\n initialized: false\n }, Thumbs)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(swiper, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy(swiper) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};","/**\n * Swiper 6.7.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: July 1, 2021\n */\nimport Swiper from './esm/components/core/core-class';\nexport { default as Swiper, default } from './esm/components/core/core-class';\nimport Virtual from './esm/components/virtual/virtual';\nimport Keyboard from './esm/components/keyboard/keyboard';\nimport Mousewheel from './esm/components/mousewheel/mousewheel';\nimport Navigation from './esm/components/navigation/navigation';\nimport Pagination from './esm/components/pagination/pagination';\nimport Scrollbar from './esm/components/scrollbar/scrollbar';\nimport Parallax from './esm/components/parallax/parallax';\nimport Zoom from './esm/components/zoom/zoom';\nimport Lazy from './esm/components/lazy/lazy';\nimport Controller from './esm/components/controller/controller';\nimport A11y from './esm/components/a11y/a11y';\nimport History from './esm/components/history/history';\nimport HashNavigation from './esm/components/hash-navigation/hash-navigation';\nimport Autoplay from './esm/components/autoplay/autoplay';\nimport EffectFade from './esm/components/effect-fade/effect-fade';\nimport EffectCube from './esm/components/effect-cube/effect-cube';\nimport EffectFlip from './esm/components/effect-flip/effect-flip';\nimport EffectCoverflow from './esm/components/effect-coverflow/effect-coverflow';\nimport Thumbs from './esm/components/thumbs/thumbs'; // Swiper Class\n\nvar components = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs];\nSwiper.use(components);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport Swiper from 'swiper/bundle';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar _class = /*#__PURE__*/function (_Controller) {\n _inherits(_class, _Controller);\n\n var _super = _createSuper(_class);\n\n function _class() {\n _classCallCheck(this, _class);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(_class, [{\n key: \"connect\",\n value: function connect() {\n this.swiper = new Swiper(this.element, _objectSpread(_objectSpread({}, this.defaultOptions), this.optionsValue));\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.swiper.destroy();\n this.swiper = undefined;\n }\n }, {\n key: \"defaultOptions\",\n get: function get() {\n return {};\n }\n }]);\n\n return _class;\n}(Controller);\n\n_defineProperty(_class, \"values\", {\n options: Object\n});\n\nexport default _class;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// I18n.js\n// =======\n//\n// This small library provides the Rails I18n API on the Javascript.\n// You don't actually have to use Rails (or even Ruby) to use I18n.js.\n// Just make sure you export all translations in an object like this:\n//\n// I18n.translations.en = {\n// hello: \"Hello World\"\n// };\n//\n// See tests for specific formatting like numbers and dates.\n//\n// Using UMD pattern from\n// https://github.com/umdjs/umd#regular-module\n// `returnExports.js` version\n;\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(\"i18n\", function () {\n return factory(root);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(root);\n } else {\n // Browser globals (root is window)\n root.I18n = factory(root);\n }\n})(this, function (global) {\n \"use strict\"; // Use previously defined object if exists in current scope\n\n var I18n = global && global.I18n || {}; // Just cache the Array#slice function.\n\n var slice = Array.prototype.slice; // Apply number padding.\n\n var padding = function padding(number) {\n return (\"0\" + number.toString()).substr(-2);\n }; // Improved toFixed number rounding function with support for unprecise floating points\n // JavaScript's standard toFixed function does not round certain numbers correctly (for example 0.105 with precision 2).\n\n\n var toFixed = function toFixed(number, precision) {\n return decimalAdjust('round', number, -precision).toFixed(precision);\n }; // Is a given variable an object?\n // Borrowed from Underscore.js\n\n\n var isObject = function isObject(obj) {\n var type = _typeof(obj);\n\n return type === 'function' || type === 'object';\n };\n\n var isFunction = function isFunction(func) {\n var type = _typeof(func);\n\n return type === 'function';\n }; // Check if value is different than undefined and null;\n\n\n var isSet = function isSet(value) {\n return typeof value !== 'undefined' && value !== null;\n }; // Is a given value an array?\n // Borrowed from Underscore.js\n\n\n var isArray = function isArray(val) {\n if (Array.isArray) {\n return Array.isArray(val);\n }\n\n return Object.prototype.toString.call(val) === '[object Array]';\n };\n\n var isString = function isString(val) {\n return typeof val === 'string' || Object.prototype.toString.call(val) === '[object String]';\n };\n\n var isNumber = function isNumber(val) {\n return typeof val === 'number' || Object.prototype.toString.call(val) === '[object Number]';\n };\n\n var isBoolean = function isBoolean(val) {\n return val === true || val === false;\n };\n\n var isNull = function isNull(val) {\n return val === null;\n };\n\n var decimalAdjust = function decimalAdjust(type, value, exp) {\n // If the exp is undefined or zero...\n if (typeof exp === 'undefined' || +exp === 0) {\n return Math[type](value);\n }\n\n value = +value;\n exp = +exp; // If the value is not a number or the exp is not an integer...\n\n if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\n return NaN;\n } // Shift\n\n\n value = value.toString().split('e');\n value = Math[type](+(value[0] + 'e' + (value[1] ? +value[1] - exp : -exp))); // Shift back\n\n value = value.toString().split('e');\n return +(value[0] + 'e' + (value[1] ? +value[1] + exp : exp));\n };\n\n var lazyEvaluate = function lazyEvaluate(message, scope) {\n if (isFunction(message)) {\n return message(scope);\n } else {\n return message;\n }\n };\n\n var merge = function merge(dest, obj) {\n var key, value;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n value = obj[key];\n\n if (isString(value) || isNumber(value) || isBoolean(value) || isArray(value) || isNull(value)) {\n dest[key] = value;\n } else {\n if (dest[key] == null) dest[key] = {};\n merge(dest[key], value);\n }\n }\n }\n\n return dest;\n }; // Set default days/months translations.\n\n\n var DATE = {\n day_names: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n abbr_day_names: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n month_names: [null, \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n abbr_month_names: [null, \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n meridian: [\"AM\", \"PM\"]\n }; // Set default number format.\n\n var NUMBER_FORMAT = {\n precision: 3,\n separator: \".\",\n delimiter: \",\",\n strip_insignificant_zeros: false\n }; // Set default currency format.\n\n var CURRENCY_FORMAT = {\n unit: \"$\",\n precision: 2,\n format: \"%u%n\",\n sign_first: true,\n delimiter: \",\",\n separator: \".\"\n }; // Set default percentage format.\n\n var PERCENTAGE_FORMAT = {\n unit: \"%\",\n precision: 3,\n format: \"%n%u\",\n separator: \".\",\n delimiter: \"\"\n }; // Set default size units.\n\n var SIZE_UNITS = [null, \"kb\", \"mb\", \"gb\", \"tb\"]; // Other default options\n\n var DEFAULT_OPTIONS = {\n // Set default locale. This locale will be used when fallback is enabled and\n // the translation doesn't exist in a particular locale.\n defaultLocale: \"en\" // Set the current locale to `en`.\n ,\n locale: \"en\" // Set the translation key separator.\n ,\n defaultSeparator: \".\" // Set the placeholder format. Accepts `{{placeholder}}` and `%{placeholder}`.\n ,\n placeholder: /(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm // Set if engine should fallback to the default locale when a translation\n // is missing.\n ,\n fallbacks: false // Set the default translation object.\n ,\n translations: {} // Set missing translation behavior. 'message' will display a message\n // that the translation is missing, 'guess' will try to guess the string\n ,\n missingBehaviour: 'message' // if you use missingBehaviour with 'message', but want to know that the\n // string is actually missing for testing purposes, you can prefix the\n // guessed string by setting the value here. By default, no prefix!\n ,\n missingTranslationPrefix: ''\n }; // Set default locale. This locale will be used when fallback is enabled and\n // the translation doesn't exist in a particular locale.\n\n I18n.reset = function () {\n var key;\n\n for (key in DEFAULT_OPTIONS) {\n this[key] = DEFAULT_OPTIONS[key];\n }\n }; // Much like `reset`, but only assign options if not already assigned\n\n\n I18n.initializeOptions = function () {\n var key;\n\n for (key in DEFAULT_OPTIONS) {\n if (!isSet(this[key])) {\n this[key] = DEFAULT_OPTIONS[key];\n }\n }\n };\n\n I18n.initializeOptions(); // Return a list of all locales that must be tried before returning the\n // missing translation message. By default, this will consider the inline option,\n // current locale and fallback locale.\n //\n // I18n.locales.get(\"de-DE\");\n // // [\"de-DE\", \"de\", \"en\"]\n //\n // You can define custom rules for any locale. Just make sure you return a array\n // containing all locales.\n //\n // // Default the Wookie locale to English.\n // I18n.locales[\"wk\"] = function(locale) {\n // return [\"en\"];\n // };\n //\n\n I18n.locales = {}; // Retrieve locales based on inline locale, current locale or default to\n // I18n's detection.\n\n I18n.locales.get = function (locale) {\n var result = this[locale] || this[I18n.locale] || this[\"default\"];\n\n if (isFunction(result)) {\n result = result(locale);\n }\n\n if (isArray(result) === false) {\n result = [result];\n }\n\n return result;\n }; // The default locale list.\n\n\n I18n.locales[\"default\"] = function (locale) {\n var locales = [],\n list = []; // Handle the inline locale option that can be provided to\n // the `I18n.t` options.\n\n if (locale) {\n locales.push(locale);\n } // Add the current locale to the list.\n\n\n if (!locale && I18n.locale) {\n locales.push(I18n.locale);\n } // Add the default locale if fallback strategy is enabled.\n\n\n if (I18n.fallbacks && I18n.defaultLocale) {\n locales.push(I18n.defaultLocale);\n } // Locale code format 1:\n // According to RFC4646 (http://www.ietf.org/rfc/rfc4646.txt)\n // language codes for Traditional Chinese should be `zh-Hant`\n //\n // But due to backward compatibility\n // We use older version of IETF language tag\n // @see http://www.w3.org/TR/html401/struct/dirlang.html\n // @see http://en.wikipedia.org/wiki/IETF_language_tag\n //\n // Format: `language-code = primary-code ( \"-\" subcode )*`\n //\n // primary-code uses ISO639-1\n // @see http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n // @see http://www.iso.org/iso/home/standards/language_codes.htm\n //\n // subcode uses ISO 3166-1 alpha-2\n // @see http://en.wikipedia.org/wiki/ISO_3166\n // @see http://www.iso.org/iso/country_codes.htm\n //\n // @note\n // subcode can be in upper case or lower case\n // defining it in upper case is a convention only\n // Locale code format 2:\n // Format: `code = primary-code ( \"-\" region-code )*`\n // primary-code uses ISO 639-1\n // script-code uses ISO 15924\n // region-code uses ISO 3166-1 alpha-2\n // Example: zh-Hant-TW, en-HK, zh-Hant-CN\n //\n // It is similar to RFC4646 (or actually the same),\n // but seems to be limited to language, script, region\n // Compute each locale with its country code.\n // So this will return an array containing\n // `de-DE` and `de`\n // or\n // `zh-hans-tw`, `zh-hans`, `zh`\n // locales.\n\n\n locales.forEach(function (locale) {\n var localeParts = locale.split(\"-\");\n var firstFallback = null;\n var secondFallback = null;\n\n if (localeParts.length === 3) {\n firstFallback = [localeParts[0], localeParts[1]].join(\"-\");\n secondFallback = localeParts[0];\n } else if (localeParts.length === 2) {\n firstFallback = localeParts[0];\n }\n\n if (list.indexOf(locale) === -1) {\n list.push(locale);\n }\n\n if (!I18n.fallbacks) {\n return;\n }\n\n [firstFallback, secondFallback].forEach(function (nullableFallbackLocale) {\n // We don't want null values\n if (typeof nullableFallbackLocale === \"undefined\") {\n return;\n }\n\n if (nullableFallbackLocale === null) {\n return;\n } // We don't want duplicate values\n //\n // Comparing with `locale` first is faster than\n // checking whether value's presence in the list\n\n\n if (nullableFallbackLocale === locale) {\n return;\n }\n\n if (list.indexOf(nullableFallbackLocale) !== -1) {\n return;\n }\n\n list.push(nullableFallbackLocale);\n });\n }); // No locales set? English it is.\n\n if (!locales.length) {\n locales.push(\"en\");\n }\n\n return list;\n }; // Hold pluralization rules.\n\n\n I18n.pluralization = {}; // Return the pluralizer for a specific locale.\n // If no specify locale is found, then I18n's default will be used.\n\n I18n.pluralization.get = function (locale) {\n return this[locale] || this[I18n.locale] || this[\"default\"];\n }; // The default pluralizer rule.\n // It detects the `zero`, `one`, and `other` scopes.\n\n\n I18n.pluralization[\"default\"] = function (count) {\n switch (count) {\n case 0:\n return [\"zero\", \"other\"];\n\n case 1:\n return [\"one\"];\n\n default:\n return [\"other\"];\n }\n }; // Return current locale. If no locale has been set, then\n // the current locale will be the default locale.\n\n\n I18n.currentLocale = function () {\n return this.locale || this.defaultLocale;\n }; // Check if value is different than undefined and null;\n\n\n I18n.isSet = isSet; // Find and process the translation using the provided scope and options.\n // This is used internally by some functions and should not be used as an\n // public API.\n\n I18n.lookup = function (scope, options) {\n options = options || {};\n var locales = this.locales.get(options.locale).slice(),\n locale,\n scopes,\n fullScope,\n translations;\n fullScope = this.getFullScope(scope, options);\n\n while (locales.length) {\n locale = locales.shift();\n scopes = fullScope.split(options.separator || this.defaultSeparator);\n translations = this.translations[locale];\n\n if (!translations) {\n continue;\n }\n\n while (scopes.length) {\n translations = translations[scopes.shift()];\n\n if (translations === undefined || translations === null) {\n break;\n }\n }\n\n if (translations !== undefined && translations !== null) {\n return translations;\n }\n }\n\n if (isSet(options.defaultValue)) {\n return lazyEvaluate(options.defaultValue, scope);\n }\n }; // lookup pluralization rule key into translations\n\n\n I18n.pluralizationLookupWithoutFallback = function (count, locale, translations) {\n var pluralizer = this.pluralization.get(locale),\n pluralizerKeys = pluralizer(count),\n pluralizerKey,\n message;\n\n if (isObject(translations)) {\n while (pluralizerKeys.length) {\n pluralizerKey = pluralizerKeys.shift();\n\n if (isSet(translations[pluralizerKey])) {\n message = translations[pluralizerKey];\n break;\n }\n }\n }\n\n return message;\n }; // Lookup dedicated to pluralization\n\n\n I18n.pluralizationLookup = function (count, scope, options) {\n options = options || {};\n var locales = this.locales.get(options.locale).slice(),\n locale,\n scopes,\n translations,\n message;\n scope = this.getFullScope(scope, options);\n\n while (locales.length) {\n locale = locales.shift();\n scopes = scope.split(options.separator || this.defaultSeparator);\n translations = this.translations[locale];\n\n if (!translations) {\n continue;\n }\n\n while (scopes.length) {\n translations = translations[scopes.shift()];\n\n if (!isObject(translations)) {\n break;\n }\n\n if (scopes.length === 0) {\n message = this.pluralizationLookupWithoutFallback(count, locale, translations);\n }\n }\n\n if (typeof message !== \"undefined\" && message !== null) {\n break;\n }\n }\n\n if (typeof message === \"undefined\" || message === null) {\n if (isSet(options.defaultValue)) {\n if (isObject(options.defaultValue)) {\n message = this.pluralizationLookupWithoutFallback(count, options.locale, options.defaultValue);\n } else {\n message = options.defaultValue;\n }\n\n translations = options.defaultValue;\n }\n }\n\n return {\n message: message,\n translations: translations\n };\n }; // Rails changed the way the meridian is stored.\n // It started with `date.meridian` returning an array,\n // then it switched to `time.am` and `time.pm`.\n // This function abstracts this difference and returns\n // the correct meridian or the default value when none is provided.\n\n\n I18n.meridian = function () {\n var time = this.lookup(\"time\");\n var date = this.lookup(\"date\");\n\n if (time && time.am && time.pm) {\n return [time.am, time.pm];\n } else if (date && date.meridian) {\n return date.meridian;\n } else {\n return DATE.meridian;\n }\n }; // Merge serveral hash options, checking if value is set before\n // overwriting any value. The precedence is from left to right.\n //\n // I18n.prepareOptions({name: \"John Doe\"}, {name: \"Mary Doe\", role: \"user\"});\n // #=> {name: \"John Doe\", role: \"user\"}\n //\n\n\n I18n.prepareOptions = function () {\n var args = slice.call(arguments),\n options = {},\n subject;\n\n while (args.length) {\n subject = args.shift();\n\n if (_typeof(subject) != \"object\") {\n continue;\n }\n\n for (var attr in subject) {\n if (!subject.hasOwnProperty(attr)) {\n continue;\n }\n\n if (isSet(options[attr])) {\n continue;\n }\n\n options[attr] = subject[attr];\n }\n }\n\n return options;\n }; // Generate a list of translation options for default fallbacks.\n // `defaultValue` is also deleted from options as it is returned as part of\n // the translationOptions array.\n\n\n I18n.createTranslationOptions = function (scope, options) {\n var translationOptions = [{\n scope: scope\n }]; // Defaults should be an array of hashes containing either\n // fallback scopes or messages\n\n if (isSet(options.defaults)) {\n translationOptions = translationOptions.concat(options.defaults);\n } // Maintain support for defaultValue. Since it is always a message\n // insert it in to the translation options as such.\n\n\n if (isSet(options.defaultValue)) {\n translationOptions.push({\n message: options.defaultValue\n });\n }\n\n return translationOptions;\n }; // Translate the given scope with the provided options.\n\n\n I18n.translate = function (scope, options) {\n options = options || {};\n var translationOptions = this.createTranslationOptions(scope, options);\n var translation;\n var usedScope = scope;\n var optionsWithoutDefault = this.prepareOptions(options);\n delete optionsWithoutDefault.defaultValue; // Iterate through the translation options until a translation\n // or message is found.\n\n var translationFound = translationOptions.some(function (translationOption) {\n if (isSet(translationOption.scope)) {\n usedScope = translationOption.scope;\n translation = this.lookup(usedScope, optionsWithoutDefault);\n } else if (isSet(translationOption.message)) {\n translation = lazyEvaluate(translationOption.message, scope);\n }\n\n if (translation !== undefined && translation !== null) {\n return true;\n }\n }, this);\n\n if (!translationFound) {\n return this.missingTranslation(scope, options);\n }\n\n if (typeof translation === \"string\") {\n translation = this.interpolate(translation, options);\n } else if (isArray(translation)) {\n translation = translation.map(function (t) {\n return typeof t === \"string\" ? this.interpolate(t, options) : t;\n }, this);\n } else if (isObject(translation) && isSet(options.count)) {\n translation = this.pluralize(options.count, usedScope, options);\n }\n\n return translation;\n }; // This function interpolates the all variables in the given message.\n\n\n I18n.interpolate = function (message, options) {\n if (message == null) {\n return message;\n }\n\n options = options || {};\n var matches = message.match(this.placeholder),\n placeholder,\n value,\n name,\n regex;\n\n if (!matches) {\n return message;\n }\n\n while (matches.length) {\n placeholder = matches.shift();\n name = placeholder.replace(this.placeholder, \"$1\");\n\n if (isSet(options[name])) {\n value = options[name].toString().replace(/\\$/gm, \"_#$#_\");\n } else if (name in options) {\n value = this.nullPlaceholder(placeholder, message, options);\n } else {\n value = this.missingPlaceholder(placeholder, message, options);\n }\n\n regex = new RegExp(placeholder.replace(/{/gm, \"\\\\{\").replace(/}/gm, \"\\\\}\"));\n message = message.replace(regex, value);\n }\n\n return message.replace(/_#\\$#_/g, \"$\");\n }; // Pluralize the given scope using the `count` value.\n // The pluralized translation may have other placeholders,\n // which will be retrieved from `options`.\n\n\n I18n.pluralize = function (count, scope, options) {\n options = this.prepareOptions({\n count: String(count)\n }, options);\n var pluralizer, result;\n result = this.pluralizationLookup(count, scope, options);\n\n if (typeof result.translations === \"undefined\" || result.translations == null) {\n return this.missingTranslation(scope, options);\n }\n\n if (typeof result.message !== \"undefined\" && result.message != null) {\n return this.interpolate(result.message, options);\n } else {\n pluralizer = this.pluralization.get(options.locale);\n return this.missingTranslation(scope + '.' + pluralizer(count)[0], options);\n }\n }; // Return a missing translation message for the given parameters.\n\n\n I18n.missingTranslation = function (scope, options) {\n //guess intended string\n if (this.missingBehaviour === 'guess') {\n //get only the last portion of the scope\n var s = scope.split('.').slice(-1)[0]; //replace underscore with space && camelcase with space and lowercase letter\n\n return (this.missingTranslationPrefix.length > 0 ? this.missingTranslationPrefix : '') + s.replace(/_/g, ' ').replace(/([a-z])([A-Z])/g, function (match, p1, p2) {\n return p1 + ' ' + p2.toLowerCase();\n });\n }\n\n var localeForTranslation = options != null && options.locale != null ? options.locale : this.currentLocale();\n var fullScope = this.getFullScope(scope, options);\n var fullScopeWithLocale = [localeForTranslation, fullScope].join(options.separator || this.defaultSeparator);\n return '[missing \"' + fullScopeWithLocale + '\" translation]';\n }; // Return a missing placeholder message for given parameters\n\n\n I18n.missingPlaceholder = function (placeholder, message, options) {\n return \"[missing \" + placeholder + \" value]\";\n };\n\n I18n.nullPlaceholder = function () {\n return I18n.missingPlaceholder.apply(I18n, arguments);\n }; // Format number using localization rules.\n // The options will be retrieved from the `number.format` scope.\n // If this isn't present, then the following options will be used:\n //\n // - `precision`: `3`\n // - `separator`: `\".\"`\n // - `delimiter`: `\",\"`\n // - `strip_insignificant_zeros`: `false`\n //\n // You can also override these options by providing the `options` argument.\n //\n\n\n I18n.toNumber = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.format\"), NUMBER_FORMAT);\n var negative = number < 0,\n string = toFixed(Math.abs(number), options.precision).toString(),\n parts = string.split(\".\"),\n precision,\n buffer = [],\n formattedNumber,\n format = options.format || \"%n\",\n sign = negative ? \"-\" : \"\";\n number = parts[0];\n precision = parts[1];\n\n while (number.length > 0) {\n buffer.unshift(number.substr(Math.max(0, number.length - 3), 3));\n number = number.substr(0, number.length - 3);\n }\n\n formattedNumber = buffer.join(options.delimiter);\n\n if (options.strip_insignificant_zeros && precision) {\n precision = precision.replace(/0+$/, \"\");\n }\n\n if (options.precision > 0 && precision) {\n formattedNumber += options.separator + precision;\n }\n\n if (options.sign_first) {\n format = \"%s\" + format;\n } else {\n format = format.replace(\"%n\", \"%s%n\");\n }\n\n formattedNumber = format.replace(\"%u\", options.unit).replace(\"%n\", formattedNumber).replace(\"%s\", sign);\n return formattedNumber;\n }; // Format currency with localization rules.\n // The options will be retrieved from the `number.currency.format` and\n // `number.format` scopes, in that order.\n //\n // Any missing option will be retrieved from the `I18n.toNumber` defaults and\n // the following options:\n //\n // - `unit`: `\"$\"`\n // - `precision`: `2`\n // - `format`: `\"%u%n\"`\n // - `delimiter`: `\",\"`\n // - `separator`: `\".\"`\n //\n // You can also override these options by providing the `options` argument.\n //\n\n\n I18n.toCurrency = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.currency.format\", options), this.lookup(\"number.format\", options), CURRENCY_FORMAT);\n return this.toNumber(number, options);\n }; // Localize several values.\n // You can provide the following scopes: `currency`, `number`, or `percentage`.\n // If you provide a scope that matches the `/^(date|time)/` regular expression\n // then the `value` will be converted by using the `I18n.toTime` function.\n //\n // It will default to the value's `toString` function.\n //\n\n\n I18n.localize = function (scope, value, options) {\n options || (options = {});\n\n switch (scope) {\n case \"currency\":\n return this.toCurrency(value, options);\n\n case \"number\":\n scope = this.lookup(\"number.format\", options);\n return this.toNumber(value, scope);\n\n case \"percentage\":\n return this.toPercentage(value, options);\n\n default:\n var localizedValue;\n\n if (scope.match(/^(date|time)/)) {\n localizedValue = this.toTime(scope, value, options);\n } else {\n localizedValue = value.toString();\n }\n\n return this.interpolate(localizedValue, options);\n }\n }; // Parse a given `date` string into a JavaScript Date object.\n // This function is time zone aware.\n //\n // The following string formats are recognized:\n //\n // yyyy-mm-dd\n // yyyy-mm-dd[ T]hh:mm::ss\n // yyyy-mm-dd[ T]hh:mm::ss\n // yyyy-mm-dd[ T]hh:mm::ssZ\n // yyyy-mm-dd[ T]hh:mm::ss+0000\n // yyyy-mm-dd[ T]hh:mm::ss+00:00\n // yyyy-mm-dd[ T]hh:mm::ss.123Z\n //\n\n\n I18n.parseDate = function (date) {\n var matches, convertedDate, fraction; // A date input of `null` or `undefined` will be returned as-is\n\n if (date == null) {\n return date;\n } // we have a date, so just return it.\n\n\n if (_typeof(date) === \"object\") {\n return date;\n }\n\n matches = date.toString().match(/(\\d{4})-(\\d{2})-(\\d{2})(?:[ T](\\d{2}):(\\d{2}):(\\d{2})([\\.,]\\d{1,3})?)?(Z|\\+00:?00)?/);\n\n if (matches) {\n for (var i = 1; i <= 6; i++) {\n matches[i] = parseInt(matches[i], 10) || 0;\n } // month starts on 0\n\n\n matches[2] -= 1;\n fraction = matches[7] ? 1000 * (\"0\" + matches[7]) : null;\n\n if (matches[8]) {\n convertedDate = new Date(Date.UTC(matches[1], matches[2], matches[3], matches[4], matches[5], matches[6], fraction));\n } else {\n convertedDate = new Date(matches[1], matches[2], matches[3], matches[4], matches[5], matches[6], fraction);\n }\n } else if (typeof date == \"number\") {\n // UNIX timestamp\n convertedDate = new Date();\n convertedDate.setTime(date);\n } else if (date.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\\d+) (\\d+:\\d+:\\d+) ([+-]\\d+) (\\d+)/)) {\n // This format `Wed Jul 20 13:03:39 +0000 2011` is parsed by\n // webkit/firefox, but not by IE, so we must parse it manually.\n convertedDate = new Date();\n convertedDate.setTime(Date.parse([RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp.$4, RegExp.$5].join(\" \")));\n } else if (date.match(/\\d+ \\d+:\\d+:\\d+ [+-]\\d+ \\d+/)) {\n // a valid javascript format with timezone info\n convertedDate = new Date();\n convertedDate.setTime(Date.parse(date));\n } else {\n // an arbitrary javascript string\n convertedDate = new Date();\n convertedDate.setTime(Date.parse(date));\n }\n\n return convertedDate;\n }; // Formats time according to the directives in the given format string.\n // The directives begins with a percent (%) character. Any text not listed as a\n // directive will be passed through to the output string.\n //\n // The accepted formats are:\n //\n // %a - The abbreviated weekday name (Sun)\n // %A - The full weekday name (Sunday)\n // %b - The abbreviated month name (Jan)\n // %B - The full month name (January)\n // %c - The preferred local date and time representation\n // %d - Day of the month (01..31)\n // %-d - Day of the month (1..31)\n // %H - Hour of the day, 24-hour clock (00..23)\n // %-H/%k - Hour of the day, 24-hour clock (0..23)\n // %I - Hour of the day, 12-hour clock (01..12)\n // %-I/%l - Hour of the day, 12-hour clock (1..12)\n // %m - Month of the year (01..12)\n // %-m - Month of the year (1..12)\n // %M - Minute of the hour (00..59)\n // %-M - Minute of the hour (0..59)\n // %p - Meridian indicator (AM or PM)\n // %P - Meridian indicator (am or pm)\n // %S - Second of the minute (00..60)\n // %-S - Second of the minute (0..60)\n // %w - Day of the week (Sunday is 0, 0..6)\n // %y - Year without a century (00..99)\n // %-y - Year without a century (0..99)\n // %Y - Year with century\n // %z/%Z - Timezone offset (+0545)\n //\n\n\n I18n.strftime = function (date, format, options) {\n var options = this.lookup(\"date\", options),\n meridianOptions = I18n.meridian();\n\n if (!options) {\n options = {};\n }\n\n options = this.prepareOptions(options, DATE);\n\n if (isNaN(date.getTime())) {\n throw new Error('I18n.strftime() requires a valid date object, but received an invalid date.');\n }\n\n var weekDay = date.getDay(),\n day = date.getDate(),\n year = date.getFullYear(),\n month = date.getMonth() + 1,\n hour = date.getHours(),\n hour12 = hour,\n meridian = hour > 11 ? 1 : 0,\n secs = date.getSeconds(),\n mins = date.getMinutes(),\n offset = date.getTimezoneOffset(),\n absOffsetHours = Math.floor(Math.abs(offset / 60)),\n absOffsetMinutes = Math.abs(offset) - absOffsetHours * 60,\n timezoneoffset = (offset > 0 ? \"-\" : \"+\") + (absOffsetHours.toString().length < 2 ? \"0\" + absOffsetHours : absOffsetHours) + (absOffsetMinutes.toString().length < 2 ? \"0\" + absOffsetMinutes : absOffsetMinutes);\n\n if (hour12 > 12) {\n hour12 = hour12 - 12;\n } else if (hour12 === 0) {\n hour12 = 12;\n }\n\n format = format.replace(\"%a\", options.abbr_day_names[weekDay]);\n format = format.replace(\"%A\", options.day_names[weekDay]);\n format = format.replace(\"%b\", options.abbr_month_names[month]);\n format = format.replace(\"%B\", options.month_names[month]);\n format = format.replace(\"%d\", padding(day));\n format = format.replace(\"%e\", day);\n format = format.replace(\"%-d\", day);\n format = format.replace(\"%H\", padding(hour));\n format = format.replace(\"%-H\", hour);\n format = format.replace(\"%k\", hour);\n format = format.replace(\"%I\", padding(hour12));\n format = format.replace(\"%-I\", hour12);\n format = format.replace(\"%l\", hour12);\n format = format.replace(\"%m\", padding(month));\n format = format.replace(\"%-m\", month);\n format = format.replace(\"%M\", padding(mins));\n format = format.replace(\"%-M\", mins);\n format = format.replace(\"%p\", meridianOptions[meridian]);\n format = format.replace(\"%P\", meridianOptions[meridian].toLowerCase());\n format = format.replace(\"%S\", padding(secs));\n format = format.replace(\"%-S\", secs);\n format = format.replace(\"%w\", weekDay);\n format = format.replace(\"%y\", padding(year));\n format = format.replace(\"%-y\", padding(year).replace(/^0+/, \"\"));\n format = format.replace(\"%Y\", year);\n format = format.replace(\"%z\", timezoneoffset);\n format = format.replace(\"%Z\", timezoneoffset);\n return format;\n }; // Convert the given dateString into a formatted date.\n\n\n I18n.toTime = function (scope, dateString, options) {\n var date = this.parseDate(dateString),\n format = this.lookup(scope, options); // A date input of `null` or `undefined` will be returned as-is\n\n if (date == null) {\n return date;\n }\n\n var date_string = date.toString();\n\n if (date_string.match(/invalid/i)) {\n return date_string;\n }\n\n if (!format) {\n return date_string;\n }\n\n return this.strftime(date, format, options);\n }; // Convert a number into a formatted percentage value.\n\n\n I18n.toPercentage = function (number, options) {\n options = this.prepareOptions(options, this.lookup(\"number.percentage.format\", options), this.lookup(\"number.format\", options), PERCENTAGE_FORMAT);\n return this.toNumber(number, options);\n }; // Convert a number into a readable size representation.\n\n\n I18n.toHumanSize = function (number, options) {\n var kb = 1024,\n size = number,\n iterations = 0,\n unit,\n precision,\n fullScope;\n\n while (size >= kb && iterations < 4) {\n size = size / kb;\n iterations += 1;\n }\n\n if (iterations === 0) {\n fullScope = this.getFullScope(\"number.human.storage_units.units.byte\", options);\n unit = this.t(fullScope, {\n count: size\n });\n precision = 0;\n } else {\n fullScope = this.getFullScope(\"number.human.storage_units.units.\" + SIZE_UNITS[iterations], options);\n unit = this.t(fullScope);\n precision = size - Math.floor(size) === 0 ? 0 : 1;\n }\n\n options = this.prepareOptions(options, {\n unit: unit,\n precision: precision,\n format: \"%n%u\",\n delimiter: \"\"\n });\n return this.toNumber(size, options);\n };\n\n I18n.getFullScope = function (scope, options) {\n options = options || {}; // Deal with the scope as an array.\n\n if (isArray(scope)) {\n scope = scope.join(options.separator || this.defaultSeparator);\n } // Deal with the scope option provided through the second argument.\n //\n // I18n.t('hello', {scope: 'greetings'});\n //\n\n\n if (options.scope) {\n scope = [options.scope, scope].join(options.separator || this.defaultSeparator);\n }\n\n return scope;\n };\n /**\n * Merge obj1 with obj2 (shallow merge), without modifying inputs\n * @param {Object} obj1\n * @param {Object} obj2\n * @returns {Object} Merged values of obj1 and obj2\n *\n * In order to support ES3, `Object.prototype.hasOwnProperty.call` is used\n * Idea is from:\n * https://stackoverflow.com/questions/8157700/object-has-no-hasownproperty-method-i-e-its-undefined-ie8\n */\n\n\n I18n.extend = function (obj1, obj2) {\n if (typeof obj1 === \"undefined\" && typeof obj2 === \"undefined\") {\n return {};\n }\n\n return merge(obj1, obj2);\n }; // Set aliases, so we can save some typing.\n\n\n I18n.t = I18n.translate.bind(I18n);\n I18n.l = I18n.localize.bind(I18n);\n I18n.p = I18n.pluralize.bind(I18n);\n return I18n;\n});","function _typeof3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof3 = function _typeof3(obj) { return typeof obj; }; } else { _typeof3 = function _typeof3(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof3(obj); }\n\n/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof3(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof3(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define(\"pdfjs-dist/build/pdf\", [], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof3(exports)) === 'object') exports[\"pdfjs-dist/build/pdf\"] = factory();else root[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __w_pdfjs_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __w_pdfjs_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __w_pdfjs_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __w_pdfjs_require__.d = function (exports, name, getter) {\n /******/\n if (!__w_pdfjs_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __w_pdfjs_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __w_pdfjs_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __w_pdfjs_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && _typeof3(value) === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __w_pdfjs_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) {\n __w_pdfjs_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n }\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __w_pdfjs_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __w_pdfjs_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __w_pdfjs_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n /******/\n }(\n /************************************************************************/\n\n /******/\n [\n /* 0 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var pdfjsVersion = '2.0.943';\n var pdfjsBuild = 'dc98bf76';\n\n var pdfjsSharedUtil = __w_pdfjs_require__(1);\n\n var pdfjsDisplayAPI = __w_pdfjs_require__(129);\n\n var pdfjsDisplayTextLayer = __w_pdfjs_require__(145);\n\n var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(146);\n\n var pdfjsDisplayDOMUtils = __w_pdfjs_require__(130);\n\n var pdfjsDisplaySVG = __w_pdfjs_require__(147);\n\n var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(135);\n\n var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(132);\n\n {\n var isNodeJS = __w_pdfjs_require__(4);\n\n if (isNodeJS()) {\n var PDFNodeStream = __w_pdfjs_require__(148).PDFNodeStream;\n\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFNodeStream(params);\n });\n } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') {\n var PDFFetchStream = __w_pdfjs_require__(151).PDFFetchStream;\n\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFFetchStream(params);\n });\n } else {\n var PDFNetworkStream = __w_pdfjs_require__(152).PDFNetworkStream;\n\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFNetworkStream(params);\n });\n }\n }\n exports.build = pdfjsDisplayAPI.build;\n exports.version = pdfjsDisplayAPI.version;\n exports.getDocument = pdfjsDisplayAPI.getDocument;\n exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\n exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\n exports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\n exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\n exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\n exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\n exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\n exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\n exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\n exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\n exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\n exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\n exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\n exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;\n exports.OPS = pdfjsSharedUtil.OPS;\n exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\n exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\n exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\n exports.createObjectURL = pdfjsSharedUtil.createObjectURL;\n exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\n exports.shadow = pdfjsSharedUtil.shadow;\n exports.Util = pdfjsSharedUtil.Util;\n exports.ReadableStream = pdfjsSharedUtil.ReadableStream;\n exports.URL = pdfjsSharedUtil.URL;\n exports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException;\n exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl;\n exports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget;\n exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes;\n exports.loadScript = pdfjsDisplayDOMUtils.loadScript;\n exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\n exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;\n /***/\n },\n /* 1 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.URL = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isSpace = exports.isString = exports.isNum = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.getInheritableProperty = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.toRomanNumerals = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n __w_pdfjs_require__(2);\n\n var _streams_polyfill = __w_pdfjs_require__(125);\n\n var _url_polyfill = __w_pdfjs_require__(127);\n\n var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\n var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n var NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display'\n };\n var PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n };\n var TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n };\n var ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n };\n var AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n };\n var AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n };\n var AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n };\n var AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n };\n var StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9\n };\n var FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10\n };\n var VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n };\n var CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n };\n var OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n };\n var UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font'\n };\n var PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n };\n var verbosity = VerbosityLevel.WARNINGS;\n\n function setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n }\n\n function getVerbosityLevel() {\n return verbosity;\n }\n\n function info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n }\n\n function warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log('Warning: ' + msg);\n }\n }\n\n function deprecated(details) {\n console.log('Deprecated API usage: ' + details);\n }\n\n function unreachable(msg) {\n throw new Error(msg);\n }\n\n function assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n }\n\n function isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new _url_polyfill.URL(baseUrl);\n\n if (!base.origin || base.origin === 'null') {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n var other = new _url_polyfill.URL(otherUrl, base);\n return base.origin === other.origin;\n }\n\n function _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n\n default:\n return false;\n }\n }\n\n function createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n\n try {\n var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n }\n\n function shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n }\n\n function getLookupTableFactory(initializer) {\n var lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n\n return lookup;\n };\n }\n\n var PasswordException = function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n return PasswordException;\n }();\n\n var UnknownErrorException = function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n return UnknownErrorException;\n }();\n\n var InvalidPDFException = function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n return InvalidPDFException;\n }();\n\n var MissingPDFException = function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n return MissingPDFException;\n }();\n\n var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n return UnexpectedResponseException;\n }();\n\n var MissingDataException = function MissingDataExceptionClosure() {\n function MissingDataException(begin, end) {\n this.begin = begin;\n this.end = end;\n this.message = 'Missing data [' + begin + ', ' + end + ')';\n }\n\n MissingDataException.prototype = new Error();\n MissingDataException.prototype.name = 'MissingDataException';\n MissingDataException.constructor = MissingDataException;\n return MissingDataException;\n }();\n\n var XRefParseException = function XRefParseExceptionClosure() {\n function XRefParseException(msg) {\n this.message = msg;\n }\n\n XRefParseException.prototype = new Error();\n XRefParseException.prototype.name = 'XRefParseException';\n XRefParseException.constructor = XRefParseException;\n return XRefParseException;\n }();\n\n var FormatError = function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n return FormatError;\n }();\n\n var AbortException = function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n return AbortException;\n }();\n\n var NullCharactersRegExp = /\\x00/g;\n\n function removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n\n return str.replace(NullCharactersRegExp, '');\n }\n\n function bytesToString(bytes) {\n assert(bytes !== null && (typeof bytes === 'undefined' ? 'undefined' : _typeof(bytes)) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n var strBuf = [];\n\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join('');\n }\n\n function stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n\n return bytes;\n }\n\n function arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n }\n\n function arraysToBytes(arr) {\n if (arr.length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n var resultLength = 0;\n var i,\n ii = arr.length;\n var item, itemLength;\n\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n\n var pos = 0;\n var data = new Uint8Array(resultLength);\n\n for (i = 0; i < ii; i++) {\n item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n }\n\n function string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n }\n\n function log2(x) {\n if (x <= 0) {\n return 0;\n }\n\n return Math.ceil(Math.log2(x));\n }\n\n function readInt8(data, start) {\n return data[start] << 24 >> 24;\n }\n\n function readUint16(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n }\n\n function readUint32(data, offset) {\n return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n }\n\n function isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n }\n\n function isEvalSupported() {\n try {\n new Function('');\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function getInheritableProperty(_ref) {\n var dict = _ref.dict,\n key = _ref.key,\n _ref$getArray = _ref.getArray,\n getArray = _ref$getArray === undefined ? false : _ref$getArray,\n _ref$stopWhenFound = _ref.stopWhenFound,\n stopWhenFound = _ref$stopWhenFound === undefined ? true : _ref$stopWhenFound;\n var LOOP_LIMIT = 100;\n var loopCount = 0;\n var values = void 0;\n\n while (dict) {\n var value = getArray ? dict.getArray(key) : dict.get(key);\n\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n\n if (!values) {\n values = [];\n }\n\n values.push(value);\n }\n\n if (++loopCount > LOOP_LIMIT) {\n warn('getInheritableProperty: maximum loop count exceeded for \"' + key + '\"');\n break;\n }\n\n dict = dict.get('Parent');\n }\n\n return values;\n }\n\n var Util = function UtilClosure() {\n function Util() {}\n\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n\n Util.transform = function Util_transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n };\n\n Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n };\n\n Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n };\n\n Util.inverseTransform = function Util_inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n };\n\n Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {\n var transpose = [m[0], m[2], m[1], m[3]];\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n };\n\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n\n return result;\n };\n\n return Util;\n }();\n\n var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];\n\n function toRomanNumerals(number) {\n var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');\n var pos = void 0,\n romanBuf = [];\n\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push('M');\n }\n\n pos = number / 100 | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n pos = number / 10 | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n var romanStr = romanBuf.join('');\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n }\n\n var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n\n function stringToPDFString(str) {\n var i,\n n = str.length,\n strBuf = [];\n\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n\n return strBuf.join('');\n }\n\n function stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n }\n\n function utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n }\n\n function isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n\n return true;\n }\n\n function isBool(v) {\n return typeof v === 'boolean';\n }\n\n function isNum(v) {\n return typeof v === 'number';\n }\n\n function isString(v) {\n return typeof v === 'string';\n }\n\n function isArrayBuffer(v) {\n return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.byteLength !== undefined;\n }\n\n function isSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n }\n\n function createPromiseCapability() {\n var capability = {};\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = resolve;\n capability.reject = reject;\n });\n return capability;\n }\n\n var createObjectURL = function createObjectURLClosure() {\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n return function createObjectURL(data, contentType) {\n var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {\n var blob = new Blob([data], {\n type: contentType\n });\n return _url_polyfill.URL.createObjectURL(blob);\n }\n\n var buffer = 'data:' + contentType + ';base64,';\n\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < ii ? b3 & 0x3F : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n };\n }();\n\n exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\n exports.IDENTITY_MATRIX = IDENTITY_MATRIX;\n exports.OPS = OPS;\n exports.VerbosityLevel = VerbosityLevel;\n exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\n exports.AnnotationBorderStyleType = AnnotationBorderStyleType;\n exports.AnnotationFieldFlag = AnnotationFieldFlag;\n exports.AnnotationFlag = AnnotationFlag;\n exports.AnnotationType = AnnotationType;\n exports.FontType = FontType;\n exports.ImageKind = ImageKind;\n exports.CMapCompressionType = CMapCompressionType;\n exports.AbortException = AbortException;\n exports.InvalidPDFException = InvalidPDFException;\n exports.MissingDataException = MissingDataException;\n exports.MissingPDFException = MissingPDFException;\n exports.NativeImageDecoding = NativeImageDecoding;\n exports.PasswordException = PasswordException;\n exports.PasswordResponses = PasswordResponses;\n exports.PermissionFlag = PermissionFlag;\n exports.StreamType = StreamType;\n exports.TextRenderingMode = TextRenderingMode;\n exports.UnexpectedResponseException = UnexpectedResponseException;\n exports.UnknownErrorException = UnknownErrorException;\n exports.Util = Util;\n exports.toRomanNumerals = toRomanNumerals;\n exports.XRefParseException = XRefParseException;\n exports.FormatError = FormatError;\n exports.arrayByteLength = arrayByteLength;\n exports.arraysToBytes = arraysToBytes;\n exports.assert = assert;\n exports.bytesToString = bytesToString;\n exports.createPromiseCapability = createPromiseCapability;\n exports.createObjectURL = createObjectURL;\n exports.deprecated = deprecated;\n exports.getInheritableProperty = getInheritableProperty;\n exports.getLookupTableFactory = getLookupTableFactory;\n exports.getVerbosityLevel = getVerbosityLevel;\n exports.info = info;\n exports.isArrayBuffer = isArrayBuffer;\n exports.isBool = isBool;\n exports.isEmptyObj = isEmptyObj;\n exports.isNum = isNum;\n exports.isString = isString;\n exports.isSpace = isSpace;\n exports.isSameOrigin = isSameOrigin;\n exports.createValidAbsoluteUrl = createValidAbsoluteUrl;\n exports.isLittleEndian = isLittleEndian;\n exports.isEvalSupported = isEvalSupported;\n exports.log2 = log2;\n exports.readInt8 = readInt8;\n exports.readUint16 = readUint16;\n exports.readUint32 = readUint32;\n exports.removeNullCharacters = removeNullCharacters;\n exports.ReadableStream = _streams_polyfill.ReadableStream;\n exports.URL = _url_polyfill.URL;\n exports.setVerbosityLevel = setVerbosityLevel;\n exports.shadow = shadow;\n exports.string32 = string32;\n exports.stringToBytes = stringToBytes;\n exports.stringToPDFString = stringToPDFString;\n exports.stringToUTF8String = stringToUTF8String;\n exports.utf8StringToString = utf8StringToString;\n exports.warn = warn;\n exports.unreachable = unreachable;\n /***/\n },\n /* 2 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n var globalScope = __w_pdfjs_require__(3);\n\n if (!globalScope._pdfjsCompatibilityChecked) {\n globalScope._pdfjsCompatibilityChecked = true;\n\n var isNodeJS = __w_pdfjs_require__(4);\n\n var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object';\n\n (function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n\n globalScope.btoa = function (chars) {\n return Buffer.from(chars, 'binary').toString('base64');\n };\n })();\n\n (function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n\n globalScope.atob = function (input) {\n return Buffer.from(input, 'base64').toString('binary');\n };\n })();\n\n (function checkCurrentScript() {\n if (!hasDOM) {\n return;\n }\n\n if ('currentScript' in document) {\n return;\n }\n\n Object.defineProperty(document, 'currentScript', {\n get: function get() {\n var scripts = document.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n },\n enumerable: true,\n configurable: true\n });\n })();\n\n (function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n })();\n\n (function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n\n var div = document.createElement('div');\n\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n\n var originalDOMTokenListToggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function (token) {\n if (arguments.length > 1) {\n var force = !!arguments[1];\n return this[force ? 'add' : 'remove'](token), force;\n }\n\n return originalDOMTokenListToggle(token);\n };\n })();\n\n (function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n\n __w_pdfjs_require__(5);\n })();\n\n (function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n\n __w_pdfjs_require__(33);\n })();\n\n (function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n\n __w_pdfjs_require__(42);\n })();\n\n (function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n\n Math.log2 = __w_pdfjs_require__(52);\n })();\n\n (function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n\n Number.isNaN = __w_pdfjs_require__(54);\n })();\n\n (function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n\n Number.isInteger = __w_pdfjs_require__(56);\n })();\n\n (function checkPromise() {\n if (globalScope.Promise) {\n return;\n }\n\n globalScope.Promise = __w_pdfjs_require__(59);\n })();\n\n (function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n\n globalScope.WeakMap = __w_pdfjs_require__(94);\n })();\n\n (function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n\n String.codePointAt = __w_pdfjs_require__(111);\n })();\n\n (function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n\n String.fromCodePoint = __w_pdfjs_require__(113);\n })();\n\n (function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n\n __w_pdfjs_require__(115);\n })();\n\n (function checkObjectValues() {\n if (Object.values) {\n return;\n }\n\n Object.values = __w_pdfjs_require__(122);\n })();\n }\n /***/\n\n },\n /* 3 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};\n /***/\n },\n /* 4 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n module.exports = function isNodeJS() {\n return (typeof process === 'undefined' ? 'undefined' : _typeof(process)) === 'object' && process + '' === '[object process]';\n };\n /***/\n\n },\n /* 5 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(6);\n\n module.exports = __w_pdfjs_require__(9).String.includes;\n /***/\n },\n /* 6 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n var context = __w_pdfjs_require__(25);\n\n var INCLUDES = 'includes';\n $export($export.P + $export.F * __w_pdfjs_require__(32)(INCLUDES), 'String', {\n includes: function includes(searchString) {\n return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n });\n /***/\n },\n /* 7 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(8);\n\n var core = __w_pdfjs_require__(9);\n\n var hide = __w_pdfjs_require__(10);\n\n var redefine = __w_pdfjs_require__(20);\n\n var ctx = __w_pdfjs_require__(23);\n\n var PROTOTYPE = 'prototype';\n\n var $export = function $export(type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n\n for (key in source) {\n own = !IS_FORCED && target && target[key] !== undefined;\n out = (own ? target : source)[key];\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if (target) redefine(target, key, out, type & $export.U);\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n };\n\n global.core = core;\n $export.F = 1;\n $export.G = 2;\n $export.S = 4;\n $export.P = 8;\n $export.B = 16;\n $export.W = 32;\n $export.U = 64;\n $export.R = 128;\n module.exports = $export;\n /***/\n },\n /* 8 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n if (typeof __g == 'number') __g = global;\n /***/\n },\n /* 9 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var core = module.exports = {\n version: '2.5.7'\n };\n if (typeof __e == 'number') __e = core;\n /***/\n },\n /* 10 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var dP = __w_pdfjs_require__(11);\n\n var createDesc = __w_pdfjs_require__(19);\n\n module.exports = __w_pdfjs_require__(15) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n } : function (object, key, value) {\n object[key] = value;\n return object;\n };\n /***/\n },\n /* 11 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var anObject = __w_pdfjs_require__(12);\n\n var IE8_DOM_DEFINE = __w_pdfjs_require__(14);\n\n var toPrimitive = __w_pdfjs_require__(18);\n\n var dP = Object.defineProperty;\n exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) {}\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n };\n /***/\n },\n /* 12 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n module.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n };\n /***/\n\n },\n /* 13 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n module.exports = function (it) {\n return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function';\n };\n /***/\n\n },\n /* 14 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () {\n return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n /***/\n },\n /* 15 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = !__w_pdfjs_require__(16)(function () {\n return Object.defineProperty({}, 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n /***/\n },\n /* 16 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n };\n /***/\n\n },\n /* 17 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n var document = __w_pdfjs_require__(8).document;\n\n var is = isObject(document) && isObject(document.createElement);\n\n module.exports = function (it) {\n return is ? document.createElement(it) : {};\n };\n /***/\n\n },\n /* 18 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n module.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n };\n /***/\n\n },\n /* 19 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n };\n /***/\n\n },\n /* 20 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(8);\n\n var hide = __w_pdfjs_require__(10);\n\n var has = __w_pdfjs_require__(21);\n\n var SRC = __w_pdfjs_require__(22)('src');\n\n var TO_STRING = 'toString';\n var $toString = Function[TO_STRING];\n var TPL = ('' + $toString).split(TO_STRING);\n\n __w_pdfjs_require__(9).inspectSource = function (it) {\n return $toString.call(it);\n };\n\n (module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n })(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n });\n /***/\n },\n /* 21 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var hasOwnProperty = {}.hasOwnProperty;\n\n module.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n };\n /***/\n\n },\n /* 22 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var id = 0;\n var px = Math.random();\n\n module.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n };\n /***/\n\n },\n /* 23 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var aFunction = __w_pdfjs_require__(24);\n\n module.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n\n switch (length) {\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n\n return function () {\n return fn.apply(that, arguments);\n };\n };\n /***/\n\n },\n /* 24 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n };\n /***/\n\n },\n /* 25 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isRegExp = __w_pdfjs_require__(26);\n\n var defined = __w_pdfjs_require__(31);\n\n module.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n };\n /***/\n\n },\n /* 26 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n var cof = __w_pdfjs_require__(27);\n\n var MATCH = __w_pdfjs_require__(28)('match');\n\n module.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n };\n /***/\n\n },\n /* 27 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toString = {}.toString;\n\n module.exports = function (it) {\n return toString.call(it).slice(8, -1);\n };\n /***/\n\n },\n /* 28 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var store = __w_pdfjs_require__(29)('wks');\n\n var uid = __w_pdfjs_require__(22);\n\n var _Symbol = __w_pdfjs_require__(8).Symbol;\n\n var USE_SYMBOL = typeof _Symbol == 'function';\n\n var $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n };\n\n $exports.store = store;\n /***/\n },\n /* 29 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var core = __w_pdfjs_require__(9);\n\n var global = __w_pdfjs_require__(8);\n\n var SHARED = '__core-js_shared__';\n var store = global[SHARED] || (global[SHARED] = {});\n (module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n })('versions', []).push({\n version: core.version,\n mode: __w_pdfjs_require__(30) ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n });\n /***/\n },\n /* 30 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = false;\n /***/\n },\n /* 31 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n };\n /***/\n\n },\n /* 32 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var MATCH = __w_pdfjs_require__(28)('match');\n\n module.exports = function (KEY) {\n var re = /./;\n\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) {}\n }\n\n return true;\n };\n /***/\n\n },\n /* 33 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(34);\n\n module.exports = __w_pdfjs_require__(9).Array.includes;\n /***/\n },\n /* 34 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n var $includes = __w_pdfjs_require__(35)(true);\n\n $export($export.P, 'Array', {\n includes: function includes(el) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n });\n\n __w_pdfjs_require__(41)('includes');\n /***/\n\n },\n /* 35 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toIObject = __w_pdfjs_require__(36);\n\n var toLength = __w_pdfjs_require__(38);\n\n var toAbsoluteIndex = __w_pdfjs_require__(40);\n\n module.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n if (value != value) return true;\n } else for (; length > index; index++) {\n if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n }\n }\n return !IS_INCLUDES && -1;\n };\n };\n /***/\n\n },\n /* 36 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var IObject = __w_pdfjs_require__(37);\n\n var defined = __w_pdfjs_require__(31);\n\n module.exports = function (it) {\n return IObject(defined(it));\n };\n /***/\n\n },\n /* 37 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var cof = __w_pdfjs_require__(27);\n\n module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n };\n /***/\n },\n /* 38 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toInteger = __w_pdfjs_require__(39);\n\n var min = Math.min;\n\n module.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n };\n /***/\n\n },\n /* 39 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var ceil = Math.ceil;\n var floor = Math.floor;\n\n module.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n };\n /***/\n\n },\n /* 40 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toInteger = __w_pdfjs_require__(39);\n\n var max = Math.max;\n var min = Math.min;\n\n module.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n };\n /***/\n\n },\n /* 41 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var UNSCOPABLES = __w_pdfjs_require__(28)('unscopables');\n\n var ArrayProto = Array.prototype;\n if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {});\n\n module.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n };\n /***/\n\n },\n /* 42 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(43);\n\n module.exports = __w_pdfjs_require__(9).Object.assign;\n /***/\n },\n /* 43 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n $export($export.S + $export.F, 'Object', {\n assign: __w_pdfjs_require__(44)\n });\n /***/\n },\n /* 44 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var getKeys = __w_pdfjs_require__(45);\n\n var gOPS = __w_pdfjs_require__(49);\n\n var pIE = __w_pdfjs_require__(50);\n\n var toObject = __w_pdfjs_require__(51);\n\n var IObject = __w_pdfjs_require__(37);\n\n var $assign = Object.assign;\n module.exports = !$assign || __w_pdfjs_require__(16)(function () {\n var A = {};\n var B = {};\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) {\n B[k] = k;\n });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n }) ? function assign(target, source) {\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n\n while (length > j) {\n if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n }\n }\n\n return T;\n } : $assign;\n /***/\n },\n /* 45 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $keys = __w_pdfjs_require__(46);\n\n var enumBugKeys = __w_pdfjs_require__(48);\n\n module.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n };\n /***/\n\n },\n /* 46 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var has = __w_pdfjs_require__(21);\n\n var toIObject = __w_pdfjs_require__(36);\n\n var arrayIndexOf = __w_pdfjs_require__(35)(false);\n\n var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO');\n\n module.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) {\n if (key != IE_PROTO) has(O, key) && result.push(key);\n }\n\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n }\n\n return result;\n };\n /***/\n\n },\n /* 47 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var shared = __w_pdfjs_require__(29)('keys');\n\n var uid = __w_pdfjs_require__(22);\n\n module.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n };\n /***/\n\n },\n /* 48 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');\n /***/\n },\n /* 49 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n exports.f = Object.getOwnPropertySymbols;\n /***/\n },\n /* 50 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n exports.f = {}.propertyIsEnumerable;\n /***/\n },\n /* 51 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var defined = __w_pdfjs_require__(31);\n\n module.exports = function (it) {\n return Object(defined(it));\n };\n /***/\n\n },\n /* 52 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(53);\n\n module.exports = __w_pdfjs_require__(9).Math.log2;\n /***/\n },\n /* 53 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n $export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n });\n /***/\n },\n /* 54 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(55);\n\n module.exports = __w_pdfjs_require__(9).Number.isNaN;\n /***/\n },\n /* 55 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n $export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n return number != number;\n }\n });\n /***/\n },\n /* 56 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(57);\n\n module.exports = __w_pdfjs_require__(9).Number.isInteger;\n /***/\n },\n /* 57 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n $export($export.S, 'Number', {\n isInteger: __w_pdfjs_require__(58)\n });\n /***/\n },\n /* 58 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n var floor = Math.floor;\n\n module.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n };\n /***/\n\n },\n /* 59 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(60);\n\n __w_pdfjs_require__(62);\n\n __w_pdfjs_require__(72);\n\n __w_pdfjs_require__(75);\n\n __w_pdfjs_require__(92);\n\n __w_pdfjs_require__(93);\n\n module.exports = __w_pdfjs_require__(9).Promise;\n /***/\n },\n /* 60 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var classof = __w_pdfjs_require__(61);\n\n var test = {};\n test[__w_pdfjs_require__(28)('toStringTag')] = 'z';\n\n if (test + '' != '[object z]') {\n __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n }\n /***/\n\n },\n /* 61 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var cof = __w_pdfjs_require__(27);\n\n var TAG = __w_pdfjs_require__(28)('toStringTag');\n\n var ARG = cof(function () {\n return arguments;\n }()) == 'Arguments';\n\n var tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (e) {}\n };\n\n module.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n };\n /***/\n\n },\n /* 62 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $at = __w_pdfjs_require__(63)(true);\n\n __w_pdfjs_require__(64)(String, 'String', function (iterated) {\n this._t = String(iterated);\n this._i = 0;\n }, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return {\n value: undefined,\n done: true\n };\n point = $at(O, index);\n this._i += point.length;\n return {\n value: point,\n done: false\n };\n });\n /***/\n\n },\n /* 63 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toInteger = __w_pdfjs_require__(39);\n\n var defined = __w_pdfjs_require__(31);\n\n module.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n };\n /***/\n\n },\n /* 64 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var LIBRARY = __w_pdfjs_require__(30);\n\n var $export = __w_pdfjs_require__(7);\n\n var redefine = __w_pdfjs_require__(20);\n\n var hide = __w_pdfjs_require__(10);\n\n var Iterators = __w_pdfjs_require__(65);\n\n var $iterCreate = __w_pdfjs_require__(66);\n\n var setToStringTag = __w_pdfjs_require__(70);\n\n var getPrototypeOf = __w_pdfjs_require__(71);\n\n var ITERATOR = __w_pdfjs_require__(28)('iterator');\n\n var BUGGY = !([].keys && 'next' in [].keys());\n var FF_ITERATOR = '@@iterator';\n var KEYS = 'keys';\n var VALUES = 'values';\n\n var returnThis = function returnThis() {\n return this;\n };\n\n module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n\n var getMethod = function getMethod(kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n\n switch (kind) {\n case KEYS:\n return function keys() {\n return new Constructor(this, kind);\n };\n\n case VALUES:\n return function values() {\n return new Constructor(this, kind);\n };\n }\n\n return function entries() {\n return new Constructor(this, kind);\n };\n };\n\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n setToStringTag(IteratorPrototype, TAG, true);\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n\n $default = function values() {\n return $native.call(this);\n };\n }\n\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n\n return methods;\n };\n /***/\n\n },\n /* 65 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = {};\n /***/\n },\n /* 66 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var create = __w_pdfjs_require__(67);\n\n var descriptor = __w_pdfjs_require__(19);\n\n var setToStringTag = __w_pdfjs_require__(70);\n\n var IteratorPrototype = {};\n\n __w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(28)('iterator'), function () {\n return this;\n });\n\n module.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, {\n next: descriptor(1, next)\n });\n setToStringTag(Constructor, NAME + ' Iterator');\n };\n /***/\n\n },\n /* 67 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var anObject = __w_pdfjs_require__(12);\n\n var dPs = __w_pdfjs_require__(68);\n\n var enumBugKeys = __w_pdfjs_require__(48);\n\n var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO');\n\n var Empty = function Empty() {};\n\n var PROTOTYPE = 'prototype';\n\n var _createDict = function createDict() {\n var iframe = __w_pdfjs_require__(17)('iframe');\n\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n\n __w_pdfjs_require__(69).appendChild(iframe);\n\n iframe.src = 'javascript:';\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n _createDict = iframeDocument.F;\n\n while (i--) {\n delete _createDict[PROTOTYPE][enumBugKeys[i]];\n }\n\n return _createDict();\n };\n\n module.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else result = _createDict();\n\n return Properties === undefined ? result : dPs(result, Properties);\n };\n /***/\n\n },\n /* 68 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var dP = __w_pdfjs_require__(11);\n\n var anObject = __w_pdfjs_require__(12);\n\n var getKeys = __w_pdfjs_require__(45);\n\n module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n\n while (length > i) {\n dP.f(O, P = keys[i++], Properties[P]);\n }\n\n return O;\n };\n /***/\n },\n /* 69 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var document = __w_pdfjs_require__(8).document;\n\n module.exports = document && document.documentElement;\n /***/\n },\n /* 70 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var def = __w_pdfjs_require__(11).f;\n\n var has = __w_pdfjs_require__(21);\n\n var TAG = __w_pdfjs_require__(28)('toStringTag');\n\n module.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n configurable: true,\n value: tag\n });\n };\n /***/\n\n },\n /* 71 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var has = __w_pdfjs_require__(21);\n\n var toObject = __w_pdfjs_require__(51);\n\n var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO');\n\n var ObjectProto = Object.prototype;\n\n module.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n\n return O instanceof Object ? ObjectProto : null;\n };\n /***/\n\n },\n /* 72 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $iterators = __w_pdfjs_require__(73);\n\n var getKeys = __w_pdfjs_require__(45);\n\n var redefine = __w_pdfjs_require__(20);\n\n var global = __w_pdfjs_require__(8);\n\n var hide = __w_pdfjs_require__(10);\n\n var Iterators = __w_pdfjs_require__(65);\n\n var wks = __w_pdfjs_require__(28);\n\n var ITERATOR = wks('iterator');\n var TO_STRING_TAG = wks('toStringTag');\n var ArrayValues = Iterators.Array;\n var DOMIterables = {\n CSSRuleList: true,\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true,\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true,\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n };\n\n for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) {\n if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n }\n }\n /***/\n\n },\n /* 73 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var addToUnscopables = __w_pdfjs_require__(41);\n\n var step = __w_pdfjs_require__(74);\n\n var Iterators = __w_pdfjs_require__(65);\n\n var toIObject = __w_pdfjs_require__(36);\n\n module.exports = __w_pdfjs_require__(64)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated);\n this._i = 0;\n this._k = kind;\n }, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n }, 'values');\n Iterators.Arguments = Iterators.Array;\n addToUnscopables('keys');\n addToUnscopables('values');\n addToUnscopables('entries');\n /***/\n },\n /* 74 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (done, value) {\n return {\n value: value,\n done: !!done\n };\n };\n /***/\n\n },\n /* 75 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var LIBRARY = __w_pdfjs_require__(30);\n\n var global = __w_pdfjs_require__(8);\n\n var ctx = __w_pdfjs_require__(23);\n\n var classof = __w_pdfjs_require__(61);\n\n var $export = __w_pdfjs_require__(7);\n\n var isObject = __w_pdfjs_require__(13);\n\n var aFunction = __w_pdfjs_require__(24);\n\n var anInstance = __w_pdfjs_require__(76);\n\n var forOf = __w_pdfjs_require__(77);\n\n var speciesConstructor = __w_pdfjs_require__(81);\n\n var task = __w_pdfjs_require__(82).set;\n\n var microtask = __w_pdfjs_require__(84)();\n\n var newPromiseCapabilityModule = __w_pdfjs_require__(85);\n\n var perform = __w_pdfjs_require__(86);\n\n var userAgent = __w_pdfjs_require__(87);\n\n var promiseResolve = __w_pdfjs_require__(88);\n\n var PROMISE = 'Promise';\n var TypeError = global.TypeError;\n var process = global.process;\n var versions = process && process.versions;\n var v8 = versions && versions.v8 || '';\n var $Promise = global[PROMISE];\n var isNode = classof(process) == 'process';\n\n var empty = function empty() {};\n\n var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\n var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n var USE_NATIVE = !!function () {\n try {\n var promise = $Promise.resolve(1);\n\n var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(28)('species')] = function (exec) {\n exec(empty, empty);\n };\n\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) {}\n }();\n\n var isThenable = function isThenable(it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n };\n\n var notify = function notify(promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n\n var run = function run(reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n\n if (handler === true) result = value;else {\n if (domain) domain.enter();\n result = handler(value);\n\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n\n while (chain.length > i) {\n run(chain[i++]);\n }\n\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n };\n\n var onUnhandled = function onUnhandled(promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({\n promise: promise,\n reason: value\n });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n }\n\n promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n };\n\n var isUnhandled = function isUnhandled(promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n };\n\n var onHandleUnhandled = function onHandleUnhandled(promise) {\n task.call(global, function () {\n var handler;\n\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({\n promise: promise,\n reason: promise._v\n });\n }\n });\n };\n\n var $reject = function $reject(value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise;\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n };\n\n var $resolve = function $resolve(value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise;\n\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = {\n _w: promise,\n _d: false\n };\n\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({\n _w: promise,\n _d: false\n }, e);\n }\n };\n\n if (!USE_NATIVE) {\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n\n Internal = function Promise(executor) {\n this._c = [];\n this._a = undefined;\n this._s = 0;\n this._d = false;\n this._v = undefined;\n this._h = 0;\n this._n = false;\n };\n\n Internal.prototype = __w_pdfjs_require__(89)($Promise.prototype, {\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n\n this._c.push(reaction);\n\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n 'catch': function _catch(onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n\n OwnPromiseCapability = function OwnPromiseCapability() {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {\n return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n };\n }\n\n $export($export.G + $export.W + $export.F * !USE_NATIVE, {\n Promise: $Promise\n });\n\n __w_pdfjs_require__(70)($Promise, PROMISE);\n\n __w_pdfjs_require__(90)(PROMISE);\n\n Wrapper = __w_pdfjs_require__(9)[PROMISE];\n $export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n });\n $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n });\n $export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(91)(function (iter) {\n $Promise.all(iter)['catch'](empty);\n })), PROMISE, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n });\n /***/\n },\n /* 76 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {\n throw TypeError(name + ': incorrect invocation!');\n }\n\n return it;\n };\n /***/\n\n },\n /* 77 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var ctx = __w_pdfjs_require__(23);\n\n var call = __w_pdfjs_require__(78);\n\n var isArrayIter = __w_pdfjs_require__(79);\n\n var anObject = __w_pdfjs_require__(12);\n\n var toLength = __w_pdfjs_require__(38);\n\n var getIterFn = __w_pdfjs_require__(80);\n\n var BREAK = {};\n var RETURN = {};\n\n var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () {\n return iterable;\n } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n };\n\n _exports.BREAK = BREAK;\n _exports.RETURN = RETURN;\n /***/\n },\n /* 78 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var anObject = __w_pdfjs_require__(12);\n\n module.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n };\n /***/\n\n },\n /* 79 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var Iterators = __w_pdfjs_require__(65);\n\n var ITERATOR = __w_pdfjs_require__(28)('iterator');\n\n var ArrayProto = Array.prototype;\n\n module.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n };\n /***/\n\n },\n /* 80 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var classof = __w_pdfjs_require__(61);\n\n var ITERATOR = __w_pdfjs_require__(28)('iterator');\n\n var Iterators = __w_pdfjs_require__(65);\n\n module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n };\n /***/\n\n },\n /* 81 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var anObject = __w_pdfjs_require__(12);\n\n var aFunction = __w_pdfjs_require__(24);\n\n var SPECIES = __w_pdfjs_require__(28)('species');\n\n module.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n };\n /***/\n\n },\n /* 82 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var ctx = __w_pdfjs_require__(23);\n\n var invoke = __w_pdfjs_require__(83);\n\n var html = __w_pdfjs_require__(69);\n\n var cel = __w_pdfjs_require__(17);\n\n var global = __w_pdfjs_require__(8);\n\n var process = global.process;\n var setTask = global.setImmediate;\n var clearTask = global.clearImmediate;\n var MessageChannel = global.MessageChannel;\n var Dispatch = global.Dispatch;\n var counter = 0;\n var queue = {};\n var ONREADYSTATECHANGE = 'onreadystatechange';\n var defer, channel, port;\n\n var run = function run() {\n var id = +this;\n\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n };\n\n var listener = function listener(event) {\n run.call(event.data);\n };\n\n if (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }\n\n queue[++counter] = function () {\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n\n defer(counter);\n return counter;\n };\n\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n\n if (__w_pdfjs_require__(27)(process) == 'process') {\n defer = function defer(id) {\n process.nextTick(ctx(run, id, 1));\n };\n } else if (Dispatch && Dispatch.now) {\n defer = function defer(id) {\n Dispatch.now(ctx(run, id, 1));\n };\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function defer(id) {\n global.postMessage(id + '', '*');\n };\n\n global.addEventListener('message', listener, false);\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function defer(id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n } else {\n defer = function defer(id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n }\n\n module.exports = {\n set: setTask,\n clear: clearTask\n };\n /***/\n },\n /* 83 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (fn, args, that) {\n var un = that === undefined;\n\n switch (args.length) {\n case 0:\n return un ? fn() : fn.call(that);\n\n case 1:\n return un ? fn(args[0]) : fn.call(that, args[0]);\n\n case 2:\n return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);\n\n case 3:\n return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);\n\n case 4:\n return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);\n }\n\n return fn.apply(that, args);\n };\n /***/\n\n },\n /* 84 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(8);\n\n var macrotask = __w_pdfjs_require__(82).set;\n\n var Observer = global.MutationObserver || global.WebKitMutationObserver;\n var process = global.process;\n var Promise = global.Promise;\n var isNode = __w_pdfjs_require__(27)(process) == 'process';\n\n module.exports = function () {\n var head, last, notify;\n\n var flush = function flush() {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n\n while (head) {\n fn = head.fn;\n head = head.next;\n\n try {\n fn();\n } catch (e) {\n if (head) notify();else last = undefined;\n throw e;\n }\n }\n\n last = undefined;\n if (parent) parent.enter();\n };\n\n if (isNode) {\n notify = function notify() {\n process.nextTick(flush);\n };\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, {\n characterData: true\n });\n\n notify = function notify() {\n node.data = toggle = !toggle;\n };\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve(undefined);\n\n notify = function notify() {\n promise.then(flush);\n };\n } else {\n notify = function notify() {\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last) last.next = task;\n\n if (!head) {\n head = task;\n notify();\n }\n\n last = task;\n };\n };\n /***/\n\n },\n /* 85 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var aFunction = __w_pdfjs_require__(24);\n\n function PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n }\n\n module.exports.f = function (C) {\n return new PromiseCapability(C);\n };\n /***/\n\n },\n /* 86 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (exec) {\n try {\n return {\n e: false,\n v: exec()\n };\n } catch (e) {\n return {\n e: true,\n v: e\n };\n }\n };\n /***/\n\n },\n /* 87 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(8);\n\n var navigator = global.navigator;\n module.exports = navigator && navigator.userAgent || '';\n /***/\n },\n /* 88 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var anObject = __w_pdfjs_require__(12);\n\n var isObject = __w_pdfjs_require__(13);\n\n var newPromiseCapability = __w_pdfjs_require__(85);\n\n module.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n };\n /***/\n\n },\n /* 89 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var redefine = __w_pdfjs_require__(20);\n\n module.exports = function (target, src, safe) {\n for (var key in src) {\n redefine(target, key, src[key], safe);\n }\n\n return target;\n };\n /***/\n\n },\n /* 90 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(8);\n\n var dP = __w_pdfjs_require__(11);\n\n var DESCRIPTORS = __w_pdfjs_require__(15);\n\n var SPECIES = __w_pdfjs_require__(28)('species');\n\n module.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function get() {\n return this;\n }\n });\n };\n /***/\n\n },\n /* 91 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var ITERATOR = __w_pdfjs_require__(28)('iterator');\n\n var SAFE_CLOSING = false;\n\n try {\n var riter = [7][ITERATOR]();\n\n riter['return'] = function () {\n SAFE_CLOSING = true;\n };\n\n Array.from(riter, function () {\n throw 2;\n });\n } catch (e) {}\n\n module.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n\n iter.next = function () {\n return {\n done: safe = true\n };\n };\n\n arr[ITERATOR] = function () {\n return iter;\n };\n\n exec(arr);\n } catch (e) {}\n\n return safe;\n };\n /***/\n\n },\n /* 92 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n var core = __w_pdfjs_require__(9);\n\n var global = __w_pdfjs_require__(8);\n\n var speciesConstructor = __w_pdfjs_require__(81);\n\n var promiseResolve = __w_pdfjs_require__(88);\n\n $export($export.P + $export.R, 'Promise', {\n 'finally': function _finally(onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () {\n return x;\n });\n } : onFinally, isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () {\n throw e;\n });\n } : onFinally);\n }\n });\n /***/\n },\n /* 93 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n var newPromiseCapability = __w_pdfjs_require__(85);\n\n var perform = __w_pdfjs_require__(86);\n\n $export($export.S, 'Promise', {\n 'try': function _try(callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n }\n });\n /***/\n },\n /* 94 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(60);\n\n __w_pdfjs_require__(72);\n\n __w_pdfjs_require__(95);\n\n __w_pdfjs_require__(107);\n\n __w_pdfjs_require__(109);\n\n module.exports = __w_pdfjs_require__(9).WeakMap;\n /***/\n },\n /* 95 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var each = __w_pdfjs_require__(96)(0);\n\n var redefine = __w_pdfjs_require__(20);\n\n var meta = __w_pdfjs_require__(100);\n\n var assign = __w_pdfjs_require__(44);\n\n var weak = __w_pdfjs_require__(101);\n\n var isObject = __w_pdfjs_require__(13);\n\n var fails = __w_pdfjs_require__(16);\n\n var validate = __w_pdfjs_require__(102);\n\n var WEAK_MAP = 'WeakMap';\n var getWeak = meta.getWeak;\n var isExtensible = Object.isExtensible;\n var uncaughtFrozenStore = weak.ufstore;\n var tmp = {};\n var InternalMap;\n\n var wrapper = function wrapper(get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n };\n\n var methods = {\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n };\n\n var $WeakMap = module.exports = __w_pdfjs_require__(103)(WEAK_MAP, wrapper, methods, weak, true, true);\n\n if (fails(function () {\n return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7;\n })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n\n var result = this._f[key](a, b);\n\n return key == 'set' ? this : result;\n }\n\n return method.call(this, a, b);\n });\n });\n }\n /***/\n\n },\n /* 96 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var ctx = __w_pdfjs_require__(23);\n\n var IObject = __w_pdfjs_require__(37);\n\n var toObject = __w_pdfjs_require__(51);\n\n var toLength = __w_pdfjs_require__(38);\n\n var asc = __w_pdfjs_require__(97);\n\n module.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n\n if (TYPE) {\n if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {\n case 3:\n return true;\n\n case 5:\n return val;\n\n case 6:\n return index;\n\n case 2:\n result.push(val);\n } else if (IS_EVERY) return false;\n }\n }\n }\n\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n };\n /***/\n\n },\n /* 97 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var speciesConstructor = __w_pdfjs_require__(98);\n\n module.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n };\n /***/\n\n },\n /* 98 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n var isArray = __w_pdfjs_require__(99);\n\n var SPECIES = __w_pdfjs_require__(28)('species');\n\n module.exports = function (original) {\n var C;\n\n if (isArray(original)) {\n C = original.constructor;\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n\n return C === undefined ? Array : C;\n };\n /***/\n\n },\n /* 99 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var cof = __w_pdfjs_require__(27);\n\n module.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n };\n /***/\n\n },\n /* 100 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n var META = __w_pdfjs_require__(22)('meta');\n\n var isObject = __w_pdfjs_require__(13);\n\n var has = __w_pdfjs_require__(21);\n\n var setDesc = __w_pdfjs_require__(11).f;\n\n var id = 0;\n\n var isExtensible = Object.isExtensible || function () {\n return true;\n };\n\n var FREEZE = !__w_pdfjs_require__(16)(function () {\n return isExtensible(Object.preventExtensions({}));\n });\n\n var setMeta = function setMeta(it) {\n setDesc(it, META, {\n value: {\n i: 'O' + ++id,\n w: {}\n }\n });\n };\n\n var fastKey = function fastKey(it, create) {\n if (!isObject(it)) return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\n if (!has(it, META)) {\n if (!isExtensible(it)) return 'F';\n if (!create) return 'E';\n setMeta(it);\n }\n\n return it[META].i;\n };\n\n var getWeak = function getWeak(it, create) {\n if (!has(it, META)) {\n if (!isExtensible(it)) return true;\n if (!create) return false;\n setMeta(it);\n }\n\n return it[META].w;\n };\n\n var onFreeze = function onFreeze(it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n };\n\n var meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n };\n /***/\n },\n /* 101 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var redefineAll = __w_pdfjs_require__(89);\n\n var getWeak = __w_pdfjs_require__(100).getWeak;\n\n var anObject = __w_pdfjs_require__(12);\n\n var isObject = __w_pdfjs_require__(13);\n\n var anInstance = __w_pdfjs_require__(76);\n\n var forOf = __w_pdfjs_require__(77);\n\n var createArrayMethod = __w_pdfjs_require__(96);\n\n var $has = __w_pdfjs_require__(21);\n\n var validate = __w_pdfjs_require__(102);\n\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var id = 0;\n\n var uncaughtFrozenStore = function uncaughtFrozenStore(that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n };\n\n var UncaughtFrozenStore = function UncaughtFrozenStore() {\n this.a = [];\n };\n\n var findUncaughtFrozen = function findUncaughtFrozen(store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n };\n\n UncaughtFrozenStore.prototype = {\n get: function get(key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function has(key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function set(key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;else this.a.push([key, value]);\n },\n 'delete': function _delete(key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n };\n module.exports = {\n getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME;\n that._i = id++;\n that._l = undefined;\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n 'delete': function _delete(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function def(that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n };\n /***/\n },\n /* 102 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n module.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n };\n /***/\n\n },\n /* 103 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(8);\n\n var $export = __w_pdfjs_require__(7);\n\n var redefine = __w_pdfjs_require__(20);\n\n var redefineAll = __w_pdfjs_require__(89);\n\n var meta = __w_pdfjs_require__(100);\n\n var forOf = __w_pdfjs_require__(77);\n\n var anInstance = __w_pdfjs_require__(76);\n\n var isObject = __w_pdfjs_require__(13);\n\n var fails = __w_pdfjs_require__(16);\n\n var $iterDetect = __w_pdfjs_require__(91);\n\n var setToStringTag = __w_pdfjs_require__(70);\n\n var inheritIfRequired = __w_pdfjs_require__(104);\n\n module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n\n var fixMethod = function fixMethod(KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY, KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) {\n fn.call(this, a === 0 ? 0 : a);\n return this;\n } : function set(a, b) {\n fn.call(this, a === 0 ? 0 : a, b);\n return this;\n });\n };\n\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n var THROWS_ON_PRIMITIVES = fails(function () {\n instance.has(1);\n });\n var ACCEPT_ITERABLES = $iterDetect(function (iter) {\n new C(iter);\n });\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n var $instance = new C();\n var index = 5;\n\n while (index--) {\n $instance[ADDER](index, index);\n }\n\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n return C;\n };\n /***/\n\n },\n /* 104 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n var setPrototypeOf = __w_pdfjs_require__(105).set;\n\n module.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n }\n\n return that;\n };\n /***/\n\n },\n /* 105 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(13);\n\n var anObject = __w_pdfjs_require__(12);\n\n var check = function check(O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n };\n\n module.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {\n try {\n set = __w_pdfjs_require__(23)(Function.call, __w_pdfjs_require__(106).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) {\n buggy = true;\n }\n\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n };\n /***/\n },\n /* 106 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var pIE = __w_pdfjs_require__(50);\n\n var createDesc = __w_pdfjs_require__(19);\n\n var toIObject = __w_pdfjs_require__(36);\n\n var toPrimitive = __w_pdfjs_require__(18);\n\n var has = __w_pdfjs_require__(21);\n\n var IE8_DOM_DEFINE = __w_pdfjs_require__(14);\n\n var gOPD = Object.getOwnPropertyDescriptor;\n exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) {}\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n };\n /***/\n },\n /* 107 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(108)('WeakMap');\n /***/\n\n },\n /* 108 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n module.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, {\n of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n\n while (length--) {\n A[length] = arguments[length];\n }\n\n return new this(A);\n }\n });\n };\n /***/\n\n },\n /* 109 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(110)('WeakMap');\n /***/\n\n },\n /* 110 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n var aFunction = __w_pdfjs_require__(24);\n\n var ctx = __w_pdfjs_require__(23);\n\n var forOf = __w_pdfjs_require__(77);\n\n module.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, {\n from: function from(source) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n\n return new this(A);\n }\n });\n };\n /***/\n\n },\n /* 111 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(112);\n\n module.exports = __w_pdfjs_require__(9).String.codePointAt;\n /***/\n },\n /* 112 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n var $at = __w_pdfjs_require__(63)(false);\n\n $export($export.P, 'String', {\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n });\n /***/\n },\n /* 113 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(114);\n\n module.exports = __w_pdfjs_require__(9).String.fromCodePoint;\n /***/\n },\n /* 114 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n var toAbsoluteIndex = __w_pdfjs_require__(40);\n\n var fromCharCode = String.fromCharCode;\n var $fromCodePoint = String.fromCodePoint;\n $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n fromCodePoint: function fromCodePoint(x) {\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));\n }\n\n return res.join('');\n }\n });\n /***/\n },\n /* 115 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(116);\n\n __w_pdfjs_require__(60);\n\n module.exports = __w_pdfjs_require__(9).Symbol;\n /***/\n },\n /* 116 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n var global = __w_pdfjs_require__(8);\n\n var has = __w_pdfjs_require__(21);\n\n var DESCRIPTORS = __w_pdfjs_require__(15);\n\n var $export = __w_pdfjs_require__(7);\n\n var redefine = __w_pdfjs_require__(20);\n\n var META = __w_pdfjs_require__(100).KEY;\n\n var $fails = __w_pdfjs_require__(16);\n\n var shared = __w_pdfjs_require__(29);\n\n var setToStringTag = __w_pdfjs_require__(70);\n\n var uid = __w_pdfjs_require__(22);\n\n var wks = __w_pdfjs_require__(28);\n\n var wksExt = __w_pdfjs_require__(117);\n\n var wksDefine = __w_pdfjs_require__(118);\n\n var enumKeys = __w_pdfjs_require__(119);\n\n var isArray = __w_pdfjs_require__(99);\n\n var anObject = __w_pdfjs_require__(12);\n\n var isObject = __w_pdfjs_require__(13);\n\n var toIObject = __w_pdfjs_require__(36);\n\n var toPrimitive = __w_pdfjs_require__(18);\n\n var createDesc = __w_pdfjs_require__(19);\n\n var _create = __w_pdfjs_require__(67);\n\n var gOPNExt = __w_pdfjs_require__(120);\n\n var $GOPD = __w_pdfjs_require__(106);\n\n var $DP = __w_pdfjs_require__(11);\n\n var $keys = __w_pdfjs_require__(45);\n\n var gOPD = $GOPD.f;\n var dP = $DP.f;\n var gOPN = gOPNExt.f;\n var $Symbol = global.Symbol;\n var $JSON = global.JSON;\n\n var _stringify = $JSON && $JSON.stringify;\n\n var PROTOTYPE = 'prototype';\n var HIDDEN = wks('_hidden');\n var TO_PRIMITIVE = wks('toPrimitive');\n var isEnum = {}.propertyIsEnumerable;\n var SymbolRegistry = shared('symbol-registry');\n var AllSymbols = shared('symbols');\n var OPSymbols = shared('op-symbols');\n var ObjectProto = Object[PROTOTYPE];\n var USE_NATIVE = typeof $Symbol == 'function';\n var QObject = global.QObject;\n var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n var setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function get() {\n return dP(this, 'a', {\n value: 7\n }).a;\n }\n })).a != 7;\n }) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n } : dP;\n\n var wrap = function wrap(tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n\n sym._k = tag;\n return sym;\n };\n\n var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {\n return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol';\n } : function (it) {\n return it instanceof $Symbol;\n };\n\n var $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, {\n enumerable: createDesc(0, false)\n });\n }\n\n return setSymbolDesc(it, key, D);\n }\n\n return dP(it, key, D);\n };\n\n var $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n\n while (l > i) {\n $defineProperty(it, key = keys[i++], P[key]);\n }\n\n return it;\n };\n\n var $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n };\n\n var $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n };\n\n var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n };\n\n var $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n }\n\n return result;\n };\n\n var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n }\n\n return result;\n };\n\n if (!USE_NATIVE) {\n $Symbol = function _Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n\n var $set = function $set(value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {\n configurable: true,\n set: $set\n });\n return wrap(tag);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __w_pdfjs_require__(121).f = gOPNExt.f = $getOwnPropertyNames;\n __w_pdfjs_require__(50).f = $propertyIsEnumerable;\n __w_pdfjs_require__(49).f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__w_pdfjs_require__(30)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n }\n\n $export($export.G + $export.W + $export.F * !USE_NATIVE, {\n Symbol: $Symbol\n });\n\n for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {\n wks(es6Symbols[j++]);\n }\n\n for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {\n wksDefine(wellKnownSymbols[k++]);\n }\n\n $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n 'for': function _for(key) {\n return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);\n },\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n\n for (var key in SymbolRegistry) {\n if (SymbolRegistry[key] === sym) return key;\n }\n },\n useSetter: function useSetter() {\n setter = true;\n },\n useSimple: function useSimple() {\n setter = false;\n }\n });\n $export($export.S + $export.F * !USE_NATIVE, 'Object', {\n create: $create,\n defineProperty: $defineProperty,\n defineProperties: $defineProperties,\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n getOwnPropertyNames: $getOwnPropertyNames,\n getOwnPropertySymbols: $getOwnPropertySymbols\n });\n $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n return _stringify([S]) != '[null]' || _stringify({\n a: S\n }) != '{}' || _stringify(Object(S)) != '{}';\n })), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }\n\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return;\n if (!isArray(replacer)) replacer = function replacer(key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n });\n $Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n setToStringTag($Symbol, 'Symbol');\n setToStringTag(Math, 'Math', true);\n setToStringTag(global.JSON, 'JSON', true);\n /***/\n },\n /* 117 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n exports.f = __w_pdfjs_require__(28);\n /***/\n },\n /* 118 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(8);\n\n var core = __w_pdfjs_require__(9);\n\n var LIBRARY = __w_pdfjs_require__(30);\n\n var wksExt = __w_pdfjs_require__(117);\n\n var defineProperty = __w_pdfjs_require__(11).f;\n\n module.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {\n value: wksExt.f(name)\n });\n };\n /***/\n\n },\n /* 119 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var getKeys = __w_pdfjs_require__(45);\n\n var gOPS = __w_pdfjs_require__(49);\n\n var pIE = __w_pdfjs_require__(50);\n\n module.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n\n while (symbols.length > i) {\n if (isEnum.call(it, key = symbols[i++])) result.push(key);\n }\n }\n\n return result;\n };\n /***/\n\n },\n /* 120 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n var toIObject = __w_pdfjs_require__(36);\n\n var gOPN = __w_pdfjs_require__(121).f;\n\n var toString = {}.toString;\n var windowNames = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\n\n var getWindowNames = function getWindowNames(it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n };\n\n module.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n };\n /***/\n\n },\n /* 121 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $keys = __w_pdfjs_require__(46);\n\n var hiddenKeys = __w_pdfjs_require__(48).concat('length', 'prototype');\n\n exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n };\n /***/\n\n },\n /* 122 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(123);\n\n module.exports = __w_pdfjs_require__(9).Object.values;\n /***/\n },\n /* 123 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $export = __w_pdfjs_require__(7);\n\n var $values = __w_pdfjs_require__(124)(false);\n\n $export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n });\n /***/\n },\n /* 124 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var getKeys = __w_pdfjs_require__(45);\n\n var toIObject = __w_pdfjs_require__(36);\n\n var isEnum = __w_pdfjs_require__(50).f;\n\n module.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n\n while (length > i) {\n if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 125 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isReadableStreamSupported = false;\n\n if (typeof ReadableStream !== 'undefined') {\n try {\n new ReadableStream({\n start: function start(controller) {\n controller.close();\n }\n });\n isReadableStreamSupported = true;\n } catch (e) {}\n }\n\n if (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n } else {\n exports.ReadableStream = __w_pdfjs_require__(126).ReadableStream;\n }\n /***/\n\n },\n /* 126 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof2 = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n (function (e, a) {\n for (var i in a) {\n e[i] = a[i];\n }\n })(exports, function (modules) {\n var installedModules = {};\n\n function __w_pdfjs_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: false,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n module.l = true;\n return module.exports;\n }\n\n __w_pdfjs_require__.m = modules;\n __w_pdfjs_require__.c = installedModules;\n\n __w_pdfjs_require__.i = function (value) {\n return value;\n };\n\n __w_pdfjs_require__.d = function (exports, name, getter) {\n if (!__w_pdfjs_require__.o(exports, name)) {\n Object.defineProperty(exports, name, {\n configurable: false,\n enumerable: true,\n get: getter\n });\n }\n };\n\n __w_pdfjs_require__.n = function (module) {\n var getter = module && module.__esModule ? function getDefault() {\n return module['default'];\n } : function getModuleExports() {\n return module;\n };\n\n __w_pdfjs_require__.d(getter, 'a', getter);\n\n return getter;\n };\n\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n\n __w_pdfjs_require__.p = \"\";\n return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n }([function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n };\n\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\n function IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n }\n\n exports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n };\n\n exports.createDataProperty = function (o, p, v) {\n assert(exports.typeIsObject(o));\n Object.defineProperty(o, p, {\n value: v,\n writable: true,\n enumerable: true,\n configurable: true\n });\n };\n\n exports.createArrayFromList = function (elements) {\n return elements.slice();\n };\n\n exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n };\n\n exports.CreateIterResultObject = function (value, done) {\n assert(typeof done === 'boolean');\n var obj = {};\n Object.defineProperty(obj, 'value', {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n });\n Object.defineProperty(obj, 'done', {\n value: done,\n enumerable: true,\n writable: true,\n configurable: true\n });\n return obj;\n };\n\n exports.IsFiniteNonNegativeNumber = function (v) {\n if (Number.isNaN(v)) {\n return false;\n }\n\n if (v === Infinity) {\n return false;\n }\n\n if (v < 0) {\n return false;\n }\n\n return true;\n };\n\n function Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n\n return Function.prototype.apply.call(F, V, args);\n }\n\n exports.InvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n var method = O[P];\n\n if (method === undefined) {\n return undefined;\n }\n\n return Call(method, O, args);\n };\n\n exports.PromiseInvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n\n try {\n return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n } catch (returnValueE) {\n return Promise.reject(returnValueE);\n }\n };\n\n exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n assert(Array.isArray(argsF));\n var method = void 0;\n\n try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n exports.TransferArrayBuffer = function (O) {\n return O.slice();\n };\n\n exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n highWaterMark = Number(highWaterMark);\n\n if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n }\n\n return highWaterMark;\n };\n\n exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n if (size !== undefined && typeof size !== 'function') {\n throw new TypeError('size property of a queuing strategy must be a function');\n }\n\n highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n return {\n size: size,\n highWaterMark: highWaterMark\n };\n };\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n function rethrowAssertionErrorRejection(e) {\n if (e && e.constructor === AssertionError) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n\n function AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n }\n\n AssertionError.prototype = Object.create(Error.prototype);\n AssertionError.prototype.constructor = AssertionError;\n\n function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n }\n\n module.exports = {\n rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n AssertionError: AssertionError,\n assert: assert\n };\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _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 function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n\n var _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n\n var WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n _ref$highWaterMark = _ref.highWaterMark,\n highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n\n _classCallCheck(this, WritableStream);\n\n this._state = 'writable';\n this._storedError = undefined;\n this._writer = undefined;\n this._writableStreamController = undefined;\n this._writeRequests = [];\n this._inFlightWriteRequest = undefined;\n this._closeRequest = undefined;\n this._inFlightCloseRequest = undefined;\n this._pendingAbortRequest = undefined;\n this._backpressure = false;\n var type = underlyingSink.type;\n\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n\n this._writableStreamController.__startSteps();\n }\n\n _createClass(WritableStream, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('abort'));\n }\n\n if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n }\n\n return WritableStreamAbort(this, reason);\n }\n }, {\n key: 'getWriter',\n value: function getWriter() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('getWriter');\n }\n\n return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsWritableStreamLocked(this);\n }\n }]);\n\n return WritableStream;\n }();\n\n module.exports = {\n AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n IsWritableStream: IsWritableStream,\n IsWritableStreamLocked: IsWritableStreamLocked,\n WritableStream: WritableStream,\n WritableStreamAbort: WritableStreamAbort,\n WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n };\n\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n\n return true;\n }\n\n function IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n\n if (stream._writer === undefined) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamAbort(stream, reason) {\n var state = stream._state;\n\n if (state === 'closed') {\n return Promise.resolve(undefined);\n }\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n var error = new TypeError('Requested to abort');\n\n if (stream._pendingAbortRequest !== undefined) {\n return Promise.reject(error);\n }\n\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n var wasAlreadyErroring = false;\n\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n reason = undefined;\n }\n\n var promise = new Promise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n\n if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n\n return promise;\n }\n\n function WritableStreamAddWriteRequest(stream) {\n assert(IsWritableStreamLocked(stream) === true);\n assert(stream._state === 'writable');\n var promise = new Promise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\n }\n\n function WritableStreamStartErroring(stream, reason) {\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n assert(stream._state === 'writable', 'state must be writable');\n var controller = stream._writableStreamController;\n assert(controller !== undefined, 'controller must not be undefined');\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\n }\n }\n\n function WritableStreamFinishErroring(stream) {\n assert(stream._state === 'erroring', 'stream._state === erroring');\n assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n stream._state = 'errored';\n\n stream._writableStreamController.__errorSteps();\n\n var storedError = stream._storedError;\n\n for (var i = 0; i < stream._writeRequests.length; i++) {\n var writeRequest = stream._writeRequests[i];\n\n writeRequest._reject(storedError);\n }\n\n stream._writeRequests = [];\n\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n\n promise.then(function () {\n abortRequest._resolve();\n\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n\n function WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n\n stream._inFlightWriteRequest._resolve(undefined);\n\n stream._inFlightWriteRequest = undefined;\n }\n\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n\n stream._inFlightWriteRequest._reject(error);\n\n stream._inFlightWriteRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n WritableStreamDealWithRejection(stream, error);\n }\n\n function WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n\n stream._inFlightCloseRequest._resolve(undefined);\n\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n\n if (state === 'erroring') {\n stream._storedError = undefined;\n\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n\n stream._pendingAbortRequest = undefined;\n }\n }\n\n stream._state = 'closed';\n var writer = stream._writer;\n\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n }\n\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n\n stream._inFlightCloseRequest._reject(error);\n\n stream._inFlightCloseRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n\n stream._pendingAbortRequest = undefined;\n }\n\n WritableStreamDealWithRejection(stream, error);\n }\n\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamMarkCloseRequestInFlight(stream) {\n assert(stream._inFlightCloseRequest === undefined);\n assert(stream._closeRequest !== undefined);\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n\n stream._closeRequest._reject(stream._storedError);\n\n stream._closeRequest = undefined;\n }\n\n var writer = stream._writer;\n\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n\n writer._closedPromise.catch(function () {});\n }\n }\n\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var writer = stream._writer;\n\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure === true) {\n defaultWriterReadyPromiseReset(writer);\n } else {\n assert(backpressure === false);\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n\n stream._backpressure = backpressure;\n }\n\n var WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n }\n\n if (IsWritableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n\n this._readyPromise.catch(function () {});\n\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n } else {\n assert(state === 'errored', 'state must be errored');\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n\n this._readyPromise.catch(function () {});\n\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n\n this._closedPromise.catch(function () {});\n }\n }\n\n _createClass(WritableStreamDefaultWriter, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('abort'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\n }\n\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('close'));\n }\n\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\n }\n\n return WritableStreamDefaultWriterClose(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return;\n }\n\n assert(stream._writer !== undefined);\n WritableStreamDefaultWriterRelease(this);\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('write'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n }, {\n key: 'ready',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('ready'));\n }\n\n return this._readyPromise;\n }\n }]);\n\n return WritableStreamDefaultWriter;\n }();\n\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n return WritableStreamAbort(stream, reason);\n }\n\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n\n if (state === 'closed' || state === 'errored') {\n return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n }\n\n assert(state === 'writable' || state === 'erroring');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var promise = new Promise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n\n if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable' || state === 'erroring');\n return WritableStreamDefaultWriterClose(writer);\n }\n\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n\n writer._closedPromise.catch(function () {});\n }\n\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n\n writer._readyPromise.catch(function () {});\n }\n\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n assert(stream._writer === writer);\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n\n if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n\n var state = stream._state;\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n\n if (state === 'erroring') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable');\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n\n var WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n }\n\n this._controlledWritableStream = stream;\n this._underlyingSink = underlyingSink;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n _createClass(WritableStreamDefaultController, [{\n key: 'error',\n value: function error(e) {\n if (IsWritableStreamDefaultController(this) === false) {\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n }\n\n var state = this._controlledWritableStream._state;\n\n if (state !== 'writable') {\n return;\n }\n\n WritableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__abortSteps',\n value: function __abortSteps(reason) {\n return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n }\n }, {\n key: '__errorSteps',\n value: function __errorSteps() {\n ResetQueue(this);\n }\n }, {\n key: '__startSteps',\n value: function __startSteps() {\n var _this = this;\n\n var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n var stream = this._controlledWritableStream;\n Promise.resolve(startResult).then(function () {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n }, function (r) {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDealWithRejection(stream, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n }]);\n\n return WritableStreamDefaultController;\n }();\n\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n\n if (strategySize === undefined) {\n return 1;\n }\n\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = {\n chunk: chunk\n };\n\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n\n var stream = controller._controlledWritableStream;\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n\n return true;\n }\n\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n\n if (controller._started === false) {\n return;\n }\n\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n\n var state = stream._state;\n\n if (state === 'closed' || state === 'errored') {\n return;\n }\n\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n\n if (controller._queue.length === 0) {\n return;\n }\n\n var writeRecord = PeekQueueValue(controller);\n\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n }\n\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n sinkClosePromise.then(function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n sinkWritePromise.then(function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n DequeueValue(controller);\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n assert(stream._state === 'writable');\n WritableStreamStartErroring(stream, error);\n }\n\n function streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n }\n\n function defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n }\n\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = new Promise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n writer._closedPromise = Promise.resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n\n function defaultWriterClosedPromiseReject(writer, reason) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n writer._closedPromise_reject(reason);\n\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromiseState = 'rejected';\n }\n\n function defaultWriterClosedPromiseResolve(writer) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n writer._closedPromise_resolve(undefined);\n\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n writer._readyPromise = Promise.resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n function defaultWriterReadyPromiseReject(writer, reason) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_reject(reason);\n\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n\n function defaultWriterReadyPromiseReset(writer) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromiseState = 'rejected';\n }\n\n function defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_resolve(undefined);\n\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _require = __w_pdfjs_require__(0),\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\n\n exports.DequeueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n\n var pair = container._queue.shift();\n\n container._queueTotalSize -= pair.size;\n\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n\n return pair.value;\n };\n\n exports.EnqueueValueWithSize = function (container, value, size) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n size = Number(size);\n\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n\n container._queue.push({\n value: value,\n size: size\n });\n\n container._queueTotalSize += size;\n };\n\n exports.PeekQueueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n var pair = container._queue[0];\n return pair.value;\n };\n\n exports.ResetQueue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n container._queue = [];\n container._queueTotalSize = 0;\n };\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _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 function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _require = __w_pdfjs_require__(0),\n ArrayBufferCopy = _require.ArrayBufferCopy,\n CreateIterResultObject = _require.CreateIterResultObject,\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n TransferArrayBuffer = _require.TransferArrayBuffer,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n\n var _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n\n var _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n\n var _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\n\n var _require5 = __w_pdfjs_require__(2),\n AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n IsWritableStream = _require5.IsWritableStream,\n IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n WritableStreamAbort = _require5.WritableStreamAbort,\n WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n\n var ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n\n _classCallCheck(this, ReadableStream);\n\n this._state = 'readable';\n this._reader = undefined;\n this._storedError = undefined;\n this._disturbed = false;\n this._readableStreamController = undefined;\n var type = underlyingSource.type;\n var typeString = String(type);\n\n if (typeString === 'bytes') {\n if (highWaterMark === undefined) {\n highWaterMark = 0;\n }\n\n this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n } else if (type === undefined) {\n if (highWaterMark === undefined) {\n highWaterMark = 1;\n }\n\n this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n } else {\n throw new RangeError('Invalid type is specified');\n }\n }\n\n _createClass(ReadableStream, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('cancel'));\n }\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n\n return ReadableStreamCancel(this, reason);\n }\n }, {\n key: 'getReader',\n value: function getReader() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mode = _ref2.mode;\n\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n\n mode = String(mode);\n\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\n }\n\n throw new RangeError('Invalid mode is specified');\n }\n }, {\n key: 'pipeThrough',\n value: function pipeThrough(_ref3, options) {\n var writable = _ref3.writable,\n readable = _ref3.readable;\n var promise = this.pipeTo(writable, options);\n ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n return readable;\n }\n }, {\n key: 'pipeTo',\n value: function pipeTo(dest) {\n var _this = this;\n\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('pipeTo'));\n }\n\n if (IsWritableStream(dest) === false) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n }\n\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n\n if (IsWritableStreamLocked(dest) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n\n var reader = AcquireReadableStreamDefaultReader(this);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n var shuttingDown = false;\n var currentWrite = Promise.resolve();\n return new Promise(function (resolve, reject) {\n function pipeLoop() {\n currentWrite = Promise.resolve();\n\n if (shuttingDown === true) {\n return Promise.resolve();\n }\n\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n\n if (done === true) {\n return;\n }\n\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n });\n }).then(pipeLoop);\n }\n\n isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n if (preventAbort === false) {\n shutdownWithAction(function () {\n return WritableStreamAbort(dest, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesClosed(_this, reader._closedPromise, function () {\n if (preventClose === false) {\n shutdownWithAction(function () {\n return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n });\n } else {\n shutdown();\n }\n });\n\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n\n pipeLoop().catch(function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n\n function waitForWritesToFinish() {\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\n }\n\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n } else {\n promise.catch(action).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\n }\n\n function doTheRest() {\n action().then(function () {\n return finalize(originalIsError, originalError);\n }, function (newError) {\n return finalize(true, newError);\n }).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(function () {\n return finalize(isError, error);\n }).catch(rethrowAssertionErrorRejection);\n } else {\n finalize(isError, error);\n }\n }\n\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n\n if (isError) {\n reject(error);\n } else {\n resolve(undefined);\n }\n }\n });\n }\n }, {\n key: 'tee',\n value: function tee() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('tee');\n }\n\n var branches = ReadableStreamTee(this, false);\n return createArrayFromList(branches);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsReadableStreamLocked(this);\n }\n }]);\n\n return ReadableStream;\n }();\n\n module.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n };\n\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n\n return true;\n }\n\n function IsReadableStreamDisturbed(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n return stream._disturbed;\n }\n\n function IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n\n if (stream._reader === undefined) {\n return false;\n }\n\n return true;\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n assert(IsReadableStream(stream) === true);\n assert(typeof cloneForBranch2 === 'boolean');\n var reader = AcquireReadableStreamDefaultReader(stream);\n var teeState = {\n closedOrErrored: false,\n canceled1: false,\n canceled2: false,\n reason1: undefined,\n reason2: undefined\n };\n teeState.promise = new Promise(function (resolve) {\n teeState._resolve = resolve;\n });\n var pull = create_ReadableStreamTeePullFunction();\n pull._reader = reader;\n pull._teeState = teeState;\n pull._cloneForBranch2 = cloneForBranch2;\n var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n cancel1._stream = stream;\n cancel1._teeState = teeState;\n var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n cancel2._stream = stream;\n cancel2._teeState = teeState;\n var underlyingSource1 = Object.create(Object.prototype);\n createDataProperty(underlyingSource1, 'pull', pull);\n createDataProperty(underlyingSource1, 'cancel', cancel1);\n var branch1Stream = new ReadableStream(underlyingSource1);\n var underlyingSource2 = Object.create(Object.prototype);\n createDataProperty(underlyingSource2, 'pull', pull);\n createDataProperty(underlyingSource2, 'cancel', cancel2);\n var branch2Stream = new ReadableStream(underlyingSource2);\n pull._branch1 = branch1Stream._readableStreamController;\n pull._branch2 = branch2Stream._readableStreamController;\n\n reader._closedPromise.catch(function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n\n return [branch1Stream, branch2Stream];\n }\n\n function create_ReadableStreamTeePullFunction() {\n function f() {\n var reader = f._reader,\n branch1 = f._branch1,\n branch2 = f._branch2,\n teeState = f._teeState;\n return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n assert(typeIsObject(result));\n var value = result.value;\n var done = result.done;\n assert(typeof done === 'boolean');\n\n if (done === true && teeState.closedOrErrored === false) {\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerClose(branch1);\n }\n\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerClose(branch2);\n }\n\n teeState.closedOrErrored = true;\n }\n\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n var value1 = value;\n var value2 = value;\n\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n\n return f;\n }\n\n function create_ReadableStreamTeeBranch1CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled1 = true;\n teeState.reason1 = reason;\n\n if (teeState.canceled2 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n\n teeState._resolve(cancelResult);\n }\n\n return teeState.promise;\n }\n\n return f;\n }\n\n function create_ReadableStreamTeeBranch2CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled2 = true;\n teeState.reason2 = reason;\n\n if (teeState.canceled1 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n\n teeState._resolve(cancelResult);\n }\n\n return teeState.promise;\n }\n\n return f;\n }\n\n function ReadableStreamAddReadIntoRequest(stream) {\n assert(IsReadableStreamBYOBReader(stream._reader) === true);\n assert(stream._state === 'readable' || stream._state === 'closed');\n var promise = new Promise(function (resolve, reject) {\n var readIntoRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readIntoRequests.push(readIntoRequest);\n });\n return promise;\n }\n\n function ReadableStreamAddReadRequest(stream) {\n assert(IsReadableStreamDefaultReader(stream._reader) === true);\n assert(stream._state === 'readable');\n var promise = new Promise(function (resolve, reject) {\n var readRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readRequests.push(readRequest);\n });\n return promise;\n }\n\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n ReadableStreamClose(stream);\n\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n }\n\n function ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n stream._state = 'closed';\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n\n _resolve(CreateIterResultObject(undefined, true));\n }\n\n reader._readRequests = [];\n }\n\n defaultReaderClosedPromiseResolve(reader);\n return undefined;\n }\n\n function ReadableStreamError(stream, e) {\n assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n assert(stream._state === 'readable', 'state must be readable');\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var readRequest = reader._readRequests[i];\n\n readRequest._reject(e);\n }\n\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n\n readIntoRequest._reject(e);\n }\n\n reader._readIntoRequests = [];\n }\n\n defaultReaderClosedPromiseReject(reader, e);\n\n reader._closedPromise.catch(function () {});\n }\n\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readIntoRequests.length > 0);\n\n var readIntoRequest = reader._readIntoRequests.shift();\n\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n }\n\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readRequests.length > 0);\n\n var readRequest = reader._readRequests.shift();\n\n readRequest._resolve(CreateIterResultObject(chunk, done));\n }\n\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n\n return true;\n }\n\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n\n return true;\n }\n\n var ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n }\n\n if (IsReadableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = [];\n }\n\n _createClass(ReadableStreamDefaultReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('read'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n return ReadableStreamDefaultReaderRead(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsReadableStreamDefaultReader(this) === false) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n\n if (this._ownerReadableStream === undefined) {\n return;\n }\n\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamDefaultReader;\n }();\n\n var ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n\n if (!IsReadableStream(stream)) {\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n }\n\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n }\n\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = [];\n }\n\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('read'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\n }\n\n return ReadableStreamBYOBReaderRead(this, view);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n\n if (this._ownerReadableStream === undefined) {\n return;\n }\n\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamBYOBReader;\n }();\n\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n\n return true;\n }\n\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n\n return true;\n }\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n } else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n } else {\n assert(stream._state === 'errored', 'state must be errored');\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n\n reader._closedPromise.catch(function () {});\n }\n }\n\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n }\n\n function ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\n\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n } else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n }\n\n reader._closedPromise.catch(function () {});\n\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n\n function ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n }\n\n function ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(stream._state === 'readable');\n return stream._readableStreamController.__pullSteps();\n }\n\n var ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n }\n\n this._controlledReadableStream = stream;\n this._underlyingSource = underlyingSource;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n this._closeRequested = false;\n this._pullAgain = false;\n this._pulling = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var controller = this;\n var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n\n var state = this._controlledReadableStream._state;\n\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n\n ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n\n var state = this._controlledReadableStream._state;\n\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n\n var stream = this._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n\n ReadableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n\n return Promise.resolve(CreateIterResultObject(chunk, false));\n }\n\n var pendingPromise = ReadableStreamAddReadRequest(stream);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n return pendingPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableStreamDefaultController;\n }();\n\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n\n return true;\n }\n\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n\n return undefined;\n }, function (e) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n\n if (desiredSize > 0) {\n return true;\n }\n\n return false;\n }\n\n function ReadableStreamDefaultControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n controller._closeRequested = true;\n\n if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n }\n\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n\n if (controller._strategySize !== undefined) {\n var strategySize = controller._strategySize;\n\n try {\n chunkSize = strategySize(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n throw chunkSizeE;\n }\n }\n\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n return undefined;\n }\n\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n\n function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n }\n\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n }\n\n var ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n }, {\n key: 'respondWithNewView',\n value: function respondWithNewView(view) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n\n return ReadableStreamBYOBRequest;\n }();\n\n var ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n }\n\n this._controlledReadableStream = stream;\n this._underlyingByteSource = underlyingByteSource;\n this._pullAgain = false;\n this._pulling = false;\n ReadableByteStreamControllerClearPendingPullIntos(this);\n this._queue = this._queueTotalSize = undefined;\n ResetQueue(this);\n this._closeRequested = false;\n this._started = false;\n this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n\n if (autoAllocateChunkSize !== undefined) {\n if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\n }\n }\n\n this._autoAllocateChunkSize = autoAllocateChunkSize;\n this._pendingPullIntos = [];\n var controller = this;\n var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n if (stream._state === 'readable') {\n ReadableByteStreamControllerError(controller, r);\n }\n }).catch(rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n\n var state = this._controlledReadableStream._state;\n\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n\n ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n\n var state = this._controlledReadableStream._state;\n\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n }\n\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('error');\n }\n\n var stream = this._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n\n ReadableByteStreamControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n if (this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n firstDescriptor.bytesFilled = 0;\n }\n\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n assert(ReadableStreamHasDefaultReader(stream) === true);\n\n if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n\n var entry = this._queue.shift();\n\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = void 0;\n\n try {\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n } catch (viewE) {\n return Promise.reject(viewE);\n }\n\n return Promise.resolve(CreateIterResultObject(view, false));\n }\n\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n return Promise.reject(bufferE);\n }\n\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n ctor: Uint8Array,\n readerType: 'default'\n };\n\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n\n var promise = ReadableStreamAddReadRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n return promise;\n }\n }, {\n key: 'byobRequest',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n }\n\n return this._byobRequest;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableByteStreamController;\n }();\n\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n\n return true;\n }\n\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n\n return true;\n }\n\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableByteStreamControllerError(controller, e);\n }\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n }\n\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n var done = false;\n\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\n\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n } else {\n assert(pullIntoDescriptor.readerType === 'byob');\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n assert(bytesFilled <= pullIntoDescriptor.byteLength);\n assert(bytesFilled % elementSize === 0);\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength\n });\n\n controller._queueTotalSize += byteLength;\n }\n\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n\n var queue = controller._queue;\n\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue[0];\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n\n if (ready === false) {\n assert(controller._queueTotalSize === 0, 'queue must be empty');\n assert(pullIntoDescriptor.bytesFilled > 0);\n assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n }\n\n return ready;\n }\n\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n }\n\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n }\n\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n }\n\n function ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n var elementSize = 1;\n\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n\n var ctor = view.constructor;\n var pullIntoDescriptor = {\n buffer: view.buffer,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n ctor: ctor,\n readerType: 'byob'\n };\n\n if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n return ReadableStreamAddReadIntoRequest(stream);\n }\n\n if (stream._state === 'closed') {\n var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n return Promise.resolve(CreateIterResultObject(emptyView, true));\n }\n\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n return Promise.resolve(CreateIterResultObject(filledView, false));\n }\n\n if (controller._closeRequested === true) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n return Promise.reject(e);\n }\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n var promise = ReadableStreamAddReadIntoRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n return promise;\n }\n\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n var stream = controller._controlledReadableStream;\n\n if (ReadableStreamHasBYOBReader(stream) === true) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n }\n\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n }\n\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n\n return false;\n }\n\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos[0];\n\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n\n ReadableStreamClose(stream);\n }\n\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n\n if (ReadableStreamHasDefaultReader(stream) === true) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n } else {\n assert(controller._queue.length === 0);\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream) === true) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n }\n\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n }\n\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n\n assert(controller._pendingPullIntos.length > 0);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n var firstDescriptor = controller._pendingPullIntos[0];\n\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n\n firstDescriptor.buffer = view.buffer;\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n }\n\n function streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n }\n\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n\n function defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n }\n\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = new Promise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n function defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_reject(reason);\n\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n assert(reader._closedPromise_resolve === undefined);\n assert(reader._closedPromise_reject === undefined);\n reader._closedPromise = Promise.reject(reason);\n }\n\n function defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_resolve(undefined);\n\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n function byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n }\n\n function defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n }\n\n function byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n }\n\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n }\n\n function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n try {\n Promise.prototype.then.call(promise, undefined, function () {});\n } catch (e) {}\n }\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var transformStream = __w_pdfjs_require__(6);\n\n var readableStream = __w_pdfjs_require__(4);\n\n var writableStream = __w_pdfjs_require__(2);\n\n exports.TransformStream = transformStream.TransformStream;\n exports.ReadableStream = readableStream.ReadableStream;\n exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\n exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\n exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\n exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\n exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\n exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\n exports.IsWritableStream = writableStream.IsWritableStream;\n exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\n exports.WritableStream = writableStream.WritableStream;\n exports.WritableStreamAbort = writableStream.WritableStreamAbort;\n exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\n exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\n exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\n exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _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 function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\n var _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\n\n var _require3 = __w_pdfjs_require__(4),\n ReadableStream = _require3.ReadableStream,\n ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n\n var _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n\n function TransformStreamCloseReadable(transformStream) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n TransformStreamCloseReadableInternal(transformStream);\n }\n\n function TransformStreamEnqueueToReadable(transformStream, chunk) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n var controller = transformStream._readableController;\n\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n throw transformStream._storedError;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n TransformStreamSetBackpressure(transformStream, true);\n }\n }\n\n function TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n TransformStreamErrorInternal(transformStream, e);\n }\n\n function TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n\n transformStream._readableClosed = true;\n }\n\n function TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n }\n\n function TransformStreamErrorInternal(transformStream, e) {\n assert(transformStream._errored === false);\n transformStream._errored = true;\n transformStream._storedError = e;\n\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n }\n\n function TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n }\n\n function TransformStreamSetBackpressure(transformStream, backpressure) {\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n\n if (transformStream._backpressureChangePromise !== undefined) {\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n\n transformStream._backpressure = backpressure;\n }\n\n function TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\n }\n\n function TransformStreamTransform(transformStream, chunk) {\n assert(transformStream._errored === false);\n assert(transformStream._transforming === false);\n assert(transformStream._backpressure === false);\n transformStream._transforming = true;\n var transformer = transformStream._transformer;\n var controller = transformStream._transformStreamController;\n var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n return transformPromise.then(function () {\n transformStream._transforming = false;\n return TransformStreamReadableReadyPromise(transformStream);\n }, function (e) {\n TransformStreamErrorIfNeeded(transformStream, e);\n return Promise.reject(e);\n });\n }\n\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n\n return true;\n }\n\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n\n return true;\n }\n\n var TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSink, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._writableController = c;\n return this._startPromise.then(function () {\n return TransformStreamReadableReadyPromise(transformStream);\n });\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n var transformStream = this._transformStream;\n return TransformStreamTransform(transformStream, chunk);\n }\n }, {\n key: 'abort',\n value: function abort() {\n var transformStream = this._transformStream;\n transformStream._writableDone = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n }\n }, {\n key: 'close',\n value: function close() {\n var transformStream = this._transformStream;\n assert(transformStream._transforming === false);\n transformStream._writableDone = true;\n var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n return flushPromise.then(function () {\n if (transformStream._errored === true) {\n return Promise.reject(transformStream._storedError);\n }\n\n if (transformStream._readableClosed === false) {\n TransformStreamCloseReadableInternal(transformStream);\n }\n\n return Promise.resolve();\n }).catch(function (r) {\n TransformStreamErrorIfNeeded(transformStream, r);\n return Promise.reject(transformStream._storedError);\n });\n }\n }]);\n\n return TransformStreamSink;\n }();\n\n var TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSource, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._readableController = c;\n return this._startPromise.then(function () {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === true) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n });\n }\n }, {\n key: 'pull',\n value: function pull() {\n var transformStream = this._transformStream;\n assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n TransformStreamSetBackpressure(transformStream, false);\n return transformStream._backpressureChangePromise;\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n var transformStream = this._transformStream;\n transformStream._readableClosed = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n }\n }]);\n\n return TransformStreamSource;\n }();\n\n var TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n\n this._controlledTransformStream = transformStream;\n }\n\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n TransformStreamCloseReadable(this._controlledTransformStream);\n }\n }, {\n key: 'error',\n value: function error(reason) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n\n TransformStreamError(this._controlledTransformStream, reason);\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n\n var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n\n return TransformStreamDefaultController;\n }();\n\n var TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, TransformStream);\n\n this._transformer = transformer;\n var readableStrategy = transformer.readableStrategy,\n writableStrategy = transformer.writableStrategy;\n this._transforming = false;\n this._errored = false;\n this._storedError = undefined;\n this._writableController = undefined;\n this._readableController = undefined;\n this._transformStreamController = undefined;\n this._writableDone = false;\n this._readableClosed = false;\n this._backpressure = undefined;\n this._backpressureChangePromise = undefined;\n this._backpressureChangePromise_resolve = undefined;\n this._transformStreamController = new TransformStreamDefaultController(this);\n var startPromise_resolve = void 0;\n var startPromise = new Promise(function (resolve) {\n startPromise_resolve = resolve;\n });\n var source = new TransformStreamSource(this, startPromise);\n this._readable = new ReadableStream(source, readableStrategy);\n var sink = new TransformStreamSink(this, startPromise);\n this._writable = new WritableStream(sink, writableStrategy);\n assert(this._writableController !== undefined);\n assert(this._readableController !== undefined);\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n TransformStreamSetBackpressure(this, desiredSize <= 0);\n var transformStream = this;\n var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n startPromise_resolve(startResult);\n startPromise.catch(function (e) {\n if (transformStream._errored === false) {\n transformStream._errored = true;\n transformStream._storedError = e;\n }\n });\n }\n\n _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\n }\n\n return this._readable;\n }\n }, {\n key: 'writable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('writable');\n }\n\n return this._writable;\n }\n }]);\n\n return TransformStream;\n }();\n\n module.exports = {\n TransformStream: TransformStream\n };\n\n function defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n }\n\n function streamBrandCheckException(name) {\n return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n }\n }, function (module, exports, __w_pdfjs_require__) {\n module.exports = __w_pdfjs_require__(5);\n }]));\n /***/\n\n },\n /* 127 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n {\n var isURLSupported = false;\n\n try {\n if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {\n var u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n isURLSupported = u.href === 'http://a/c%20d';\n }\n } catch (ex) {}\n\n if (isURLSupported) {\n exports.URL = URL;\n } else {\n var PolyfillURL = __w_pdfjs_require__(128).URL;\n\n var OriginalURL = __w_pdfjs_require__(3).URL;\n\n if (OriginalURL) {\n PolyfillURL.createObjectURL = function (blob) {\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n\n PolyfillURL.revokeObjectURL = function (url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n\n exports.URL = PolyfillURL;\n }\n }\n /***/\n },\n /* 128 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n (function URLConstructorClosure() {\n 'use strict';\n\n var relative = Object.create(null);\n relative['ftp'] = 21;\n relative['file'] = 0;\n relative['gopher'] = 70;\n relative['http'] = 80;\n relative['https'] = 443;\n relative['ws'] = 80;\n relative['wss'] = 443;\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n\n return h.toLowerCase();\n }\n\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n\n return encodeURIComponent(c);\n }\n\n function percentEscapeQuery(c) {\n var unicode = c.charCodeAt(0);\n\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n\n return encodeURIComponent(c);\n }\n\n var EOF,\n ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {\n var c = input[cursor];\n\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase();\n state = 'scheme';\n } else if (!stateOverride) {\n buffer = '';\n state = 'no scheme';\n continue;\n } else {\n err('Invalid scheme.');\n break loop;\n }\n\n break;\n\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase();\n } else if (c === ':') {\n this._scheme = buffer;\n buffer = '';\n\n if (stateOverride) {\n break loop;\n }\n\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\n }\n\n if (this._scheme === 'file') {\n state = 'relative';\n } else if (this._isRelative && base && base._scheme === this._scheme) {\n state = 'relative or authority';\n } else if (this._isRelative) {\n state = 'authority first slash';\n } else {\n state = 'scheme data';\n }\n } else if (!stateOverride) {\n buffer = '';\n cursor = 0;\n state = 'no scheme';\n continue;\n } else if (c === EOF) {\n break loop;\n } else {\n err('Code point not allowed in scheme: ' + c);\n break loop;\n }\n\n break;\n\n case 'scheme data':\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else {\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._schemeData += percentEscape(c);\n }\n }\n\n break;\n\n case 'no scheme':\n if (!base || !isRelativeScheme(base._scheme)) {\n err('Missing scheme.');\n invalid.call(this);\n } else {\n state = 'relative';\n continue;\n }\n\n break;\n\n case 'relative or authority':\n if (c === '/' && input[cursor + 1] === '/') {\n state = 'authority ignore slashes';\n } else {\n err('Expected /, got: ' + c);\n state = 'relative';\n continue;\n }\n\n break;\n\n case 'relative':\n this._isRelative = true;\n\n if (this._scheme !== 'file') {\n this._scheme = base._scheme;\n }\n\n if (c === EOF) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._username = base._username;\n this._password = base._password;\n break loop;\n } else if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n\n state = 'relative slash';\n } else if (c === '?') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = '?';\n this._username = base._username;\n this._password = base._password;\n state = 'query';\n } else if (c === '#') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._fragment = '#';\n this._username = base._username;\n this._password = base._password;\n state = 'fragment';\n } else {\n var nextC = input[cursor + 1];\n var nextNextC = input[cursor + 2];\n\n if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' && nextNextC !== '?' && nextNextC !== '#') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n this._path = base._path.slice();\n\n this._path.pop();\n }\n\n state = 'relative path';\n continue;\n }\n\n break;\n\n case 'relative slash':\n if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n\n if (this._scheme === 'file') {\n state = 'file host';\n } else {\n state = 'authority ignore slashes';\n }\n } else {\n if (this._scheme !== 'file') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n }\n\n state = 'relative path';\n continue;\n }\n\n break;\n\n case 'authority first slash':\n if (c === '/') {\n state = 'authority second slash';\n } else {\n err('Expected \\'/\\', got: ' + c);\n state = 'authority ignore slashes';\n continue;\n }\n\n break;\n\n case 'authority second slash':\n state = 'authority ignore slashes';\n\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n\n break;\n\n case 'authority ignore slashes':\n if (c !== '/' && c !== '\\\\') {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n\n break;\n\n case 'authority':\n if (c === '@') {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n\n seenAt = true;\n\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n\n if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n err('Invalid whitespace in authority.');\n continue;\n }\n\n if (cp === ':' && this._password === null) {\n this._password = '';\n continue;\n }\n\n var tempC = percentEscape(cp);\n\n if (this._password !== null) {\n this._password += tempC;\n } else {\n this._username += tempC;\n }\n }\n\n buffer = '';\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n\n break;\n\n case 'file host':\n if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {\n state = 'relative path';\n } else if (buffer.length === 0) {\n state = 'relative path start';\n } else {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n }\n\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n\n break;\n\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\n\n if (stateOverride === 'hostname') {\n break loop;\n }\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n\n if (stateOverride) {\n break loop;\n }\n\n continue;\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n if (c === '[') {\n seenBracket = true;\n } else if (c === ']') {\n seenBracket = false;\n }\n\n buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n\n break;\n\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#' || stateOverride) {\n if (buffer !== '') {\n var temp = parseInt(buffer, 10);\n\n if (temp !== relative[this._scheme]) {\n this._port = temp + '';\n }\n\n buffer = '';\n }\n\n if (stateOverride) {\n break loop;\n }\n\n state = 'relative path start';\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid code point in port: ' + c);\n } else {\n invalid.call(this);\n }\n\n break;\n\n case 'relative path start':\n if (c === '\\\\') {\n err('\\'\\\\\\' not allowed in path.');\n }\n\n state = 'relative path';\n\n if (c !== '/' && c !== '\\\\') {\n continue;\n }\n\n break;\n\n case 'relative path':\n if (c === EOF || c === '/' || c === '\\\\' || !stateOverride && (c === '?' || c === '#')) {\n if (c === '\\\\') {\n err('\\\\ not allowed in relative path.');\n }\n\n var tmp;\n\n if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n buffer = tmp;\n }\n\n if (buffer === '..') {\n this._path.pop();\n\n if (c !== '/' && c !== '\\\\') {\n this._path.push('');\n }\n } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n this._path.push('');\n } else if (buffer !== '.') {\n if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {\n buffer = buffer[0] + ':';\n }\n\n this._path.push(buffer);\n }\n\n buffer = '';\n\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n }\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n buffer += percentEscape(c);\n }\n\n break;\n\n case 'query':\n if (!stateOverride && c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._query += percentEscapeQuery(c);\n }\n\n break;\n\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n\n break;\n }\n\n cursor++;\n }\n }\n\n function clear() {\n this._scheme = '';\n this._schemeData = '';\n this._username = '';\n this._password = null;\n this._host = '';\n this._port = '';\n this._path = [];\n this._query = '';\n this._fragment = '';\n this._isInvalid = false;\n this._isRelative = false;\n }\n\n function JURL(url, base) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\n }\n\n this._url = url;\n clear.call(this);\n var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n parse.call(this, input, null, base);\n }\n\n JURL.prototype = {\n toString: function toString() {\n return this.href;\n },\n\n get href() {\n if (this._isInvalid) {\n return this._url;\n }\n\n var authority = '';\n\n if (this._username !== '' || this._password !== null) {\n authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';\n }\n\n return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n },\n\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\n\n get protocol() {\n return this._scheme + ':';\n },\n\n set protocol(value) {\n if (this._isInvalid) {\n return;\n }\n\n parse.call(this, value + ':', 'scheme start');\n },\n\n get host() {\n return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n },\n\n set host(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n parse.call(this, value, 'host');\n },\n\n get hostname() {\n return this._host;\n },\n\n set hostname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n parse.call(this, value, 'hostname');\n },\n\n get port() {\n return this._port;\n },\n\n set port(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n parse.call(this, value, 'port');\n },\n\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n },\n\n set pathname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n this._path = [];\n parse.call(this, value, 'relative path start');\n },\n\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;\n },\n\n set search(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n\n this._query = '?';\n\n if (value[0] === '?') {\n value = value.slice(1);\n }\n\n parse.call(this, value, 'query');\n },\n\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;\n },\n\n set hash(value) {\n if (this._isInvalid) {\n return;\n }\n\n this._fragment = '#';\n\n if (value[0] === '#') {\n value = value.slice(1);\n }\n\n parse.call(this, value, 'fragment');\n },\n\n get origin() {\n var host;\n\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n\n case 'blob':\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {}\n\n return 'null';\n }\n\n host = this.host;\n\n if (!host) {\n return '';\n }\n\n return this._scheme + '://' + host;\n }\n\n };\n exports.URL = JURL;\n })();\n /***/\n\n },\n /* 129 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.build = exports.version = exports.setPDFNetworkStreamFactory = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.getDocument = undefined;\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _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 var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n var _util = __w_pdfjs_require__(1);\n\n var _dom_utils = __w_pdfjs_require__(130);\n\n var _font_loader = __w_pdfjs_require__(131);\n\n var _api_compatibility = __w_pdfjs_require__(132);\n\n var _canvas = __w_pdfjs_require__(133);\n\n var _global_scope = __w_pdfjs_require__(3);\n\n var _global_scope2 = _interopRequireDefault(_global_scope);\n\n var _worker_options = __w_pdfjs_require__(135);\n\n var _message_handler = __w_pdfjs_require__(136);\n\n var _metadata = __w_pdfjs_require__(141);\n\n var _transport_stream = __w_pdfjs_require__(143);\n\n var _webgl = __w_pdfjs_require__(144);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var DEFAULT_RANGE_CHUNK_SIZE = 65536;\n var isWorkerDisabled = false;\n var fallbackWorkerSrc = void 0;\n var fakeWorkerFilesLoader = null;\n {\n var useRequireEnsure = false;\n\n if (typeof window === 'undefined') {\n isWorkerDisabled = true;\n\n if (typeof require.ensure === 'undefined') {\n require.ensure = require('node-ensure');\n }\n\n useRequireEnsure = true;\n } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {\n useRequireEnsure = true;\n }\n\n if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n }\n\n var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load;\n fakeWorkerFilesLoader = useRequireEnsure ? function () {\n return new Promise(function (resolve, reject) {\n require.ensure([], function () {\n try {\n var worker = void 0;\n worker = require('./pdf.worker.js');\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject, 'pdfjsWorker');\n });\n } : dynamicLoaderSupported ? function () {\n return new Promise(function (resolve, reject) {\n requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {\n try {\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n });\n } : null;\n\n if (!fallbackWorkerSrc && typeof document !== 'undefined') {\n var pdfjsFilePath = document.currentScript && document.currentScript.src;\n\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n }\n }\n var createPDFNetworkStream;\n\n function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n }\n\n function getDocument(src) {\n var task = new PDFDocumentLoadingTask();\n var source;\n\n if (typeof src === 'string') {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error('Invalid parameter object: need either .data, .range or .url');\n }\n\n source = src;\n }\n\n var params = Object.create(null);\n var rangeTransport = null;\n var worker = null;\n\n for (var key in source) {\n if (key === 'url' && typeof window !== 'undefined') {\n params[key] = new _util.URL(source[key], window.location).href;\n continue;\n } else if (key === 'range') {\n rangeTransport = source[key];\n continue;\n } else if (key === 'worker') {\n worker = source[key];\n continue;\n } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {\n var pdfBytes = source[key];\n\n if (typeof pdfBytes === 'string') {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if ((typeof pdfBytes === 'undefined' ? 'undefined' : _typeof(pdfBytes)) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if ((0, _util.isArrayBuffer)(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.');\n }\n\n continue;\n }\n\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || _dom_utils.DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);\n\n if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;\n }\n\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.isEvalSupported !== 'boolean') {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== 'boolean') {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== 'boolean') {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== 'boolean') {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== 'boolean') {\n params.disableAutoFetch = false;\n }\n\n if (typeof params.disableCreateObjectURL !== 'boolean') {\n params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n var workerParams = {\n postMessageTransfers: params.postMessageTransfers,\n verbosity: params.verbosity\n };\n var workerPort = _worker_options.GlobalWorkerOptions.workerPort;\n\n if (workerPort) {\n workerParams.port = workerPort;\n worker = PDFWorker.fromPort(workerParams);\n } else {\n worker = new PDFWorker(workerParams);\n }\n\n task._worker = worker;\n }\n\n var docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n var networkStream = void 0;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n var transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send('Ready', null);\n });\n }).catch(task._capability.reject);\n return task;\n }\n\n function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n }\n\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId: docId,\n apiVersion: '2.0.943',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n disableCreateObjectURL: source.disableCreateObjectURL,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported\n }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error('Worker was destroyed');\n }\n\n return workerId;\n });\n }\n\n var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n var nextDocumentId = 0;\n\n function PDFDocumentLoadingTask() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = 'd' + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n PDFDocumentLoadingTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n destroy: function destroy() {\n var _this = this;\n\n this.destroyed = true;\n var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(function () {\n _this._transport = null;\n\n if (_this._worker) {\n _this._worker.destroy();\n\n _this._worker = null;\n }\n });\n },\n then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) {\n return this.promise.then.apply(this.promise, arguments);\n }\n };\n return PDFDocumentLoadingTask;\n }();\n\n var PDFDataRangeTransport = function () {\n function PDFDataRangeTransport(length, initialData) {\n _classCallCheck(this, PDFDataRangeTransport);\n\n this.length = length;\n this.initialData = initialData;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(PDFDataRangeTransport, [{\n key: 'addRangeListener',\n value: function addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n }, {\n key: 'addProgressListener',\n value: function addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n }, {\n key: 'addProgressiveReadListener',\n value: function addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n }, {\n key: 'onDataRange',\n value: function onDataRange(begin, chunk) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var listener = _step.value;\n listener(begin, chunk);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: 'onDataProgress',\n value: function onDataProgress(loaded) {\n var _this2 = this;\n\n this._readyCapability.promise.then(function () {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var listener = _step2.value;\n listener(loaded);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n });\n }\n }, {\n key: 'onDataProgressiveRead',\n value: function onDataProgressiveRead(chunk) {\n var _this3 = this;\n\n this._readyCapability.promise.then(function () {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var listener = _step3.value;\n listener(chunk);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n });\n }\n }, {\n key: 'transportReady',\n value: function transportReady() {\n this._readyCapability.resolve();\n }\n }, {\n key: 'requestDataRange',\n value: function requestDataRange(begin, end) {\n (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange');\n }\n }, {\n key: 'abort',\n value: function abort() {}\n }]);\n\n return PDFDataRangeTransport;\n }();\n\n var PDFDocumentProxy = function () {\n function PDFDocumentProxy(pdfInfo, transport, loadingTask) {\n _classCallCheck(this, PDFDocumentProxy);\n\n this.loadingTask = loadingTask;\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n _createClass(PDFDocumentProxy, [{\n key: 'getPage',\n value: function getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n }, {\n key: 'getPageIndex',\n value: function getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n }, {\n key: 'getDestinations',\n value: function getDestinations() {\n return this._transport.getDestinations();\n }\n }, {\n key: 'getDestination',\n value: function getDestination(id) {\n return this._transport.getDestination(id);\n }\n }, {\n key: 'getPageLabels',\n value: function getPageLabels() {\n return this._transport.getPageLabels();\n }\n }, {\n key: 'getPageMode',\n value: function getPageMode() {\n return this._transport.getPageMode();\n }\n }, {\n key: 'getAttachments',\n value: function getAttachments() {\n return this._transport.getAttachments();\n }\n }, {\n key: 'getJavaScript',\n value: function getJavaScript() {\n return this._transport.getJavaScript();\n }\n }, {\n key: 'getOutline',\n value: function getOutline() {\n return this._transport.getOutline();\n }\n }, {\n key: 'getPermissions',\n value: function getPermissions() {\n return this._transport.getPermissions();\n }\n }, {\n key: 'getMetadata',\n value: function getMetadata() {\n return this._transport.getMetadata();\n }\n }, {\n key: 'getData',\n value: function getData() {\n return this._transport.getData();\n }\n }, {\n key: 'getDownloadInfo',\n value: function getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n }, {\n key: 'getStats',\n value: function getStats() {\n return this._transport.getStats();\n }\n }, {\n key: 'cleanup',\n value: function cleanup() {\n this._transport.startCleanup();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n return this.loadingTask.destroy();\n }\n }, {\n key: 'numPages',\n get: function get() {\n return this._pdfInfo.numPages;\n }\n }, {\n key: 'fingerprint',\n get: function get() {\n return this._pdfInfo.fingerprint;\n }\n }, {\n key: 'loadingParams',\n get: function get() {\n return this._transport.loadingParams;\n }\n }]);\n\n return PDFDocumentProxy;\n }();\n\n var PDFPageProxy = function PDFPageProxyClosure() {\n function PDFPageProxy(pageIndex, pageInfo, transport) {\n var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n this.pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this.transport = transport;\n this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n PDFPageProxy.prototype = {\n get pageNumber() {\n return this.pageIndex + 1;\n },\n\n get rotate() {\n return this._pageInfo.rotate;\n },\n\n get ref() {\n return this._pageInfo.ref;\n },\n\n get userUnit() {\n return this._pageInfo.userUnit;\n },\n\n get view() {\n return this._pageInfo.view;\n },\n\n getViewport: function getViewport(scale) {\n var rotate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rotate;\n var dontFlip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return new _dom_utils.PageViewport({\n viewBox: this.view,\n scale: scale,\n rotation: rotate,\n dontFlip: dontFlip\n });\n },\n getAnnotations: function PDFPageProxy_getAnnotations(params) {\n var intent = params && params.intent || null;\n\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this.transport.getAnnotations(this.pageIndex, intent);\n this.annotationsIntent = intent;\n }\n\n return this.annotationsPromise;\n },\n render: function PDFPageProxy_render(params) {\n var _this4 = this;\n\n var stats = this._stats;\n stats.time('Overall');\n this.pendingCleanup = false;\n var renderingIntent = params.intent === 'print' ? 'print' : 'display';\n var canvasFactory = params.canvasFactory || new _dom_utils.DOMCanvasFactory();\n var webGLContext = new _webgl.WebGLContext({\n enable: params.enableWebGL\n });\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n var intentState = this.intentStates[renderingIntent];\n\n if (!intentState.displayReadyCapability) {\n intentState.receivingOperatorList = true;\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n stats.time('Page Request');\n this.transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: params.renderInteractiveForms === true\n });\n }\n\n var complete = function complete(error) {\n var i = intentState.renderTasks.indexOf(internalRenderTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (_this4.cleanupAfterRender) {\n _this4.pendingCleanup = true;\n }\n\n _this4._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n } else {\n internalRenderTask.capability.resolve();\n }\n\n stats.timeEnd('Rendering');\n stats.timeEnd('Overall');\n };\n\n var internalRenderTask = new InternalRenderTask(complete, params, this.objs, this.commonObjs, intentState.operatorList, this.pageNumber, canvasFactory, webGLContext, this._pdfBug);\n internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print';\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n\n intentState.renderTasks.push(internalRenderTask);\n var renderTask = internalRenderTask.task;\n intentState.displayReadyCapability.promise.then(function (transparency) {\n if (_this4.pendingCleanup) {\n complete();\n return;\n }\n\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n },\n getOperatorList: function PDFPageProxy_getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n var i = intentState.renderTasks.indexOf(opListTask);\n\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n var renderingIntent = 'oplist';\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n\n var intentState = this.intentStates[renderingIntent];\n var opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.receivingOperatorList = true;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n\n this._stats.time('Page Request');\n\n this.transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageIndex,\n intent: renderingIntent\n });\n }\n\n return intentState.opListReadCapability.promise;\n },\n streamTextContent: function streamTextContent() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var TEXT_CONTENT_CHUNK_SIZE = 100;\n return this.transport.messageHandler.sendWithStream('GetTextContent', {\n pageIndex: this.pageNumber - 1,\n normalizeWhitespace: params.normalizeWhitespace === true,\n combineTextItems: params.disableCombineTextItems !== true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size: function size(textContent) {\n return textContent.items.length;\n }\n });\n },\n getTextContent: function PDFPageProxy_getTextContent(params) {\n params = params || {};\n var readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function (_ref) {\n var _textContent$items;\n\n var value = _ref.value,\n done = _ref.done;\n\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n\n (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));\n\n pump();\n }, reject);\n }\n\n var reader = readableStream.getReader();\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n },\n _destroy: function PDFPageProxy_destroy() {\n this.destroyed = true;\n this.transport.pageCache[this.pageIndex] = null;\n var waitOn = [];\n Object.keys(this.intentStates).forEach(function (intent) {\n if (intent === 'oplist') {\n return;\n }\n\n var intentState = this.intentStates[intent];\n intentState.renderTasks.forEach(function (renderTask) {\n var renderCompleted = renderTask.capability.promise.catch(function () {});\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n },\n cleanup: function cleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.pendingCleanup = true;\n\n this._tryCleanup(resetStats);\n },\n _tryCleanup: function _tryCleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {\n var intentState = this.intentStates[intent];\n return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList;\n }, this)) {\n return;\n }\n\n Object.keys(this.intentStates).forEach(function (intent) {\n delete this.intentStates[intent];\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n\n if (resetStats && this._stats instanceof _dom_utils.StatTimer) {\n this._stats = new _dom_utils.StatTimer();\n }\n\n this.pendingCleanup = false;\n },\n _startRenderPage: function PDFPageProxy_startRenderPage(transparency, intent) {\n var intentState = this.intentStates[intent];\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n },\n _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, intent) {\n var intentState = this.intentStates[intent];\n var i, ii;\n\n for (i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n for (i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n intentState.receivingOperatorList = false;\n\n this._tryCleanup();\n }\n },\n\n get stats() {\n return this._stats instanceof _dom_utils.StatTimer ? this._stats : null;\n }\n\n };\n return PDFPageProxy;\n }();\n\n var LoopbackPort = function () {\n function LoopbackPort() {\n var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _classCallCheck(this, LoopbackPort);\n\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n _createClass(LoopbackPort, [{\n key: 'postMessage',\n value: function postMessage(obj, transfers) {\n var _this5 = this;\n\n function cloneValue(value) {\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) {\n return value;\n }\n\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n\n var result;\n var buffer;\n\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n var transferable = transfers && transfers.includes(buffer);\n\n if (value === buffer) {\n result = value;\n } else if (transferable) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n\n cloned.set(value, result);\n return result;\n }\n\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n\n for (var i in value) {\n var desc,\n p = value;\n\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n\n if (typeof desc.value === 'undefined' || typeof desc.value === 'function') {\n continue;\n }\n\n result[i] = cloneValue(desc.value);\n }\n\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(function (listener) {\n listener.call(this, {\n data: obj\n });\n }, this);\n\n return;\n }\n\n var cloned = new WeakMap();\n var e = {\n data: cloneValue(obj)\n };\n\n this._deferred.then(function () {\n _this5._listeners.forEach(function (listener) {\n listener.call(this, e);\n }, _this5);\n });\n }\n }, {\n key: 'addEventListener',\n value: function addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n }, {\n key: 'removeEventListener',\n value: function removeEventListener(name, listener) {\n var i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n }, {\n key: 'terminate',\n value: function terminate() {\n this._listeners = [];\n }\n }]);\n\n return LoopbackPort;\n }();\n\n var PDFWorker = function PDFWorkerClosure() {\n var nextFakeWorkerId = 0;\n\n function getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (typeof fallbackWorkerSrc !== 'undefined') {\n return fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n try {\n if (typeof window !== 'undefined') {\n return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler;\n }\n } catch (ex) {}\n\n return null;\n }\n\n var fakeWorkerFilesLoadedCapability = void 0;\n\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n\n fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();\n var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (mainWorkerMessageHandler) {\n fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n\n var loader = fakeWorkerFilesLoader || function () {\n return (0, _dom_utils.loadScript)(getWorkerSrc()).then(function () {\n return window.pdfjsWorker.WorkerMessageHandler;\n });\n };\n\n loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n\n function createCDNWrapper(url) {\n var wrapper = 'importScripts(\\'' + url + '\\');';\n return _util.URL.createObjectURL(new Blob([wrapper]));\n }\n\n var pdfWorkerPorts = new WeakMap();\n\n function PDFWorker() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$name = _ref2.name,\n name = _ref2$name === undefined ? null : _ref2$name,\n _ref2$port = _ref2.port,\n port = _ref2$port === undefined ? null : _ref2$port,\n _ref2$postMessageTran = _ref2.postMessageTransfers,\n postMessageTransfers = _ref2$postMessageTran === undefined ? true : _ref2$postMessageTran,\n _ref2$verbosity = _ref2.verbosity,\n verbosity = _ref2$verbosity === undefined ? (0, _util.getVerbosityLevel)() : _ref2$verbosity;\n\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error('Cannot use more than one PDFWorker per port');\n }\n\n this.name = name;\n this.destroyed = false;\n this.postMessageTransfers = postMessageTransfers !== false;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n PDFWorker.prototype = {\n get promise() {\n return this._readyCapability.promise;\n },\n\n get port() {\n return this._port;\n },\n\n get messageHandler() {\n return this._messageHandler;\n },\n\n _initializeFromPort: function PDFWorker_initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);\n\n this._messageHandler.on('ready', function () {});\n\n this._readyCapability.resolve();\n },\n _initialize: function PDFWorker_initialize() {\n var _this6 = this;\n\n if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n var workerSrc = getWorkerSrc();\n\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href);\n }\n\n var worker = new Worker(workerSrc);\n var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);\n\n var terminateEarly = function terminateEarly() {\n worker.removeEventListener('error', onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (_this6.destroyed) {\n _this6._readyCapability.reject(new Error('Worker was destroyed'));\n } else {\n _this6._setupFakeWorker();\n }\n };\n\n var onWorkerError = function onWorkerError() {\n if (!_this6._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener('error', onWorkerError);\n messageHandler.on('test', function (data) {\n worker.removeEventListener('error', onWorkerError);\n\n if (_this6.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data && data.supportTypedArray) {\n _this6._messageHandler = messageHandler;\n _this6._port = worker;\n _this6._webWorker = worker;\n\n if (!data.supportTransfers) {\n _this6.postMessageTransfers = false;\n }\n\n _this6._readyCapability.resolve();\n\n messageHandler.send('configure', {\n verbosity: _this6.verbosity\n });\n } else {\n _this6._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on('ready', function (data) {\n worker.removeEventListener('error', onWorkerError);\n\n if (_this6.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n _this6._setupFakeWorker();\n }\n });\n\n var sendTest = function sendTest() {\n var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]);\n\n try {\n messageHandler.send('test', testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.info)('Cannot use postMessage transfers');\n testObj[0] = 0;\n messageHandler.send('test', testObj);\n }\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)('The worker has been disabled.');\n }\n }\n\n this._setupFakeWorker();\n },\n _setupFakeWorker: function PDFWorker_setupFakeWorker() {\n var _this7 = this;\n\n if (!isWorkerDisabled) {\n (0, _util.warn)('Setting up fake worker.');\n isWorkerDisabled = true;\n }\n\n setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {\n if (_this7.destroyed) {\n _this7._readyCapability.reject(new Error('Worker was destroyed'));\n\n return;\n }\n\n var port = new LoopbackPort();\n _this7._port = port;\n var id = 'fake' + nextFakeWorkerId++;\n var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);\n _this7._messageHandler = messageHandler;\n\n _this7._readyCapability.resolve();\n }).catch(function (reason) {\n _this7._readyCapability.reject(new Error('Setting up fake worker failed: \"' + reason.message + '\".'));\n });\n },\n destroy: function PDFWorker_destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n };\n\n PDFWorker.fromPort = function (params) {\n if (!params || !params.port) {\n throw new Error('PDFWorker.fromPort - invalid method signature.');\n }\n\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n };\n\n PDFWorker.getWorkerSrc = function () {\n return getWorkerSrc();\n };\n\n return PDFWorker;\n }();\n\n var WorkerTransport = function () {\n function WorkerTransport(messageHandler, loadingTask, networkStream, params) {\n _classCallCheck(this, WorkerTransport);\n\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader(loadingTask.docId);\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n _createClass(WorkerTransport, [{\n key: 'destroy',\n value: function destroy() {\n var _this8 = this;\n\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));\n }\n\n var waitOn = [];\n this.pageCache.forEach(function (page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache = [];\n this.pagePromises = [];\n var terminated = this.messageHandler.sendWithPromise('Terminate', null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(function () {\n _this8.fontLoader.clear();\n\n if (_this8._networkStream) {\n _this8._networkStream.cancelAllRequests();\n }\n\n if (_this8.messageHandler) {\n _this8.messageHandler.destroy();\n\n _this8.messageHandler = null;\n }\n\n _this8.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n }, {\n key: 'setupMessageHandler',\n value: function setupMessageHandler() {\n var messageHandler = this.messageHandler,\n loadingTask = this.loadingTask;\n messageHandler.on('GetReader', function (data, sink) {\n var _this9 = this;\n\n (0, _util.assert)(this._networkStream);\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = function (evt) {\n _this9._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = function () {\n _this9._fullReader.read().then(function (_ref3) {\n var value = _ref3.value,\n done = _ref3.done;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n\n sink.onCancel = function (reason) {\n _this9._fullReader.cancel(reason);\n };\n }, this);\n messageHandler.on('ReaderHeadersReady', function (data) {\n var _this10 = this;\n\n var headersCapability = (0, _util.createPromiseCapability)();\n var fullReader = this._fullReader;\n fullReader.headersReady.then(function () {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (_this10._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(_this10._lastProgress);\n }\n\n fullReader.onProgress = function (evt) {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n }, this);\n messageHandler.on('GetRangeReader', function (data, sink) {\n (0, _util.assert)(this._networkStream);\n\n var rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n sink.onPull = function () {\n rangeReader.read().then(function (_ref4) {\n var value = _ref4.value,\n done = _ref4.done;\n\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n\n sink.onCancel = function (reason) {\n rangeReader.cancel(reason);\n };\n }, this);\n messageHandler.on('GetDoc', function (_ref5) {\n var pdfInfo = _ref5.pdfInfo;\n this.numPages = pdfInfo.numPages;\n this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask);\n\n loadingTask._capability.resolve(this.pdfDocument);\n }, this);\n messageHandler.on('PasswordRequest', function (exception) {\n var _this11 = this;\n\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n var updatePassword = function updatePassword(password) {\n _this11._passwordCapability.resolve({\n password: password\n });\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n }, this);\n messageHandler.on('PasswordException', function (exception) {\n loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code));\n }, this);\n messageHandler.on('InvalidPDF', function (exception) {\n loadingTask._capability.reject(new _util.InvalidPDFException(exception.message));\n }, this);\n messageHandler.on('MissingPDF', function (exception) {\n loadingTask._capability.reject(new _util.MissingPDFException(exception.message));\n }, this);\n messageHandler.on('UnexpectedResponse', function (exception) {\n loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status));\n }, this);\n messageHandler.on('UnknownError', function (exception) {\n loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details));\n }, this);\n messageHandler.on('DataLoaded', function (data) {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n\n this.downloadInfoCapability.resolve(data);\n }, this);\n messageHandler.on('StartRenderPage', function (data) {\n if (this.destroyed) {\n return;\n }\n\n var page = this.pageCache[data.pageIndex];\n\n page._stats.timeEnd('Page Request');\n\n page._startRenderPage(data.transparency, data.intent);\n }, this);\n messageHandler.on('RenderPageChunk', function (data) {\n if (this.destroyed) {\n return;\n }\n\n var page = this.pageCache[data.pageIndex];\n\n page._renderPageChunk(data.operatorList, data.intent);\n }, this);\n messageHandler.on('commonobj', function (data) {\n var _this12 = this;\n\n if (this.destroyed) {\n return;\n }\n\n var _data = _slicedToArray(data, 3),\n id = _data[0],\n type = _data[1],\n exportedData = _data[2];\n\n if (this.commonObjs.hasData(id)) {\n return;\n }\n\n switch (type) {\n case 'Font':\n var params = this._params;\n\n if ('error' in exportedData) {\n var exportedError = exportedData.error;\n (0, _util.warn)('Error during font loading: ' + exportedError);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n var fontRegistry = null;\n\n if (params.pdfBug && _global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled) {\n fontRegistry = {\n registerFont: function registerFont(font, url) {\n _global_scope2.default['FontInspector'].fontAdded(font, url);\n }\n };\n }\n\n var font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry: fontRegistry\n });\n\n var fontReady = function fontReady(fontObjs) {\n _this12.commonObjs.resolve(id, font);\n };\n\n this.fontLoader.bind([font], fontReady);\n break;\n\n case 'FontPath':\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error('Got unknown common object type ' + type);\n }\n }, this);\n messageHandler.on('obj', function (data) {\n if (this.destroyed) {\n return;\n }\n\n var _data2 = _slicedToArray(data, 4),\n id = _data2[0],\n pageIndex = _data2[1],\n type = _data2[2],\n imageData = _data2[3];\n\n var pageProxy = this.pageCache[pageIndex];\n\n if (pageProxy.objs.hasData(id)) {\n return;\n }\n\n switch (type) {\n case 'JpegStream':\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onload = function () {\n resolve(img);\n };\n\n img.onerror = function () {\n reject(new Error('Error during JPEG image loading'));\n };\n\n img.src = imageData;\n }).then(function (img) {\n pageProxy.objs.resolve(id, img);\n });\n\n case 'Image':\n pageProxy.objs.resolve(id, imageData);\n var MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n\n break;\n\n default:\n throw new Error('Got unknown object type ' + type);\n }\n }, this);\n messageHandler.on('DocProgress', function (data) {\n if (this.destroyed) {\n return;\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n }, this);\n messageHandler.on('PageError', function (data) {\n if (this.destroyed) {\n return;\n }\n\n var page = this.pageCache[data.pageNum - 1];\n var intentState = page.intentStates[data.intent];\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(data.error);\n } else {\n throw new Error(data.error);\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (var i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n }\n }, this);\n messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this);\n messageHandler.on('JpegDecode', function (data) {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n if (typeof document === 'undefined') {\n return Promise.reject(new Error('\"document\" is not defined.'));\n }\n\n var _data3 = _slicedToArray(data, 2),\n imageUrl = _data3[0],\n components = _data3[1];\n\n if (components !== 3 && components !== 1) {\n return Promise.reject(new Error('Only 3 components or 1 component can be returned'));\n }\n\n return new Promise(function (resolve, reject) {\n var img = new Image();\n\n img.onload = function () {\n var width = img.width;\n var height = img.height;\n var size = width * height;\n var rgbaLength = size * 4;\n var buf = new Uint8ClampedArray(size * components);\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n var tmpCtx = tmpCanvas.getContext('2d');\n tmpCtx.drawImage(img, 0, 0);\n var data = tmpCtx.getImageData(0, 0, width, height).data;\n\n if (components === 3) {\n for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n buf[j] = data[i];\n buf[j + 1] = data[i + 1];\n buf[j + 2] = data[i + 2];\n }\n } else if (components === 1) {\n for (var _i = 0, _j = 0; _i < rgbaLength; _i += 4, _j++) {\n buf[_j] = data[_i];\n }\n }\n\n resolve({\n data: buf,\n width: width,\n height: height\n });\n };\n\n img.onerror = function () {\n reject(new Error('JpegDecode failed to load image'));\n };\n\n img.src = imageUrl;\n });\n }, this);\n messageHandler.on('FetchBuiltInCMap', function (data) {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n return this.CMapReaderFactory.fetch({\n name: data.name\n });\n }, this);\n }\n }, {\n key: '_onUnsupportedFeature',\n value: function _onUnsupportedFeature(_ref6) {\n var featureId = _ref6.featureId;\n\n if (this.destroyed) {\n return;\n }\n\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n }, {\n key: 'getData',\n value: function getData() {\n return this.messageHandler.sendWithPromise('GetData', null);\n }\n }, {\n key: 'getPage',\n value: function getPage(pageNumber) {\n var _this13 = this;\n\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) {\n return Promise.reject(new Error('Invalid page request'));\n }\n\n var pageIndex = pageNumber - 1;\n\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n\n var promise = this.messageHandler.sendWithPromise('GetPage', {\n pageIndex: pageIndex\n }).then(function (pageInfo) {\n if (_this13.destroyed) {\n throw new Error('Transport destroyed');\n }\n\n var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug);\n _this13.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n }, {\n key: 'getPageIndex',\n value: function getPageIndex(ref) {\n return this.messageHandler.sendWithPromise('GetPageIndex', {\n ref: ref\n }).catch(function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n }, {\n key: 'getAnnotations',\n value: function getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise('GetAnnotations', {\n pageIndex: pageIndex,\n intent: intent\n });\n }\n }, {\n key: 'getDestinations',\n value: function getDestinations() {\n return this.messageHandler.sendWithPromise('GetDestinations', null);\n }\n }, {\n key: 'getDestination',\n value: function getDestination(id) {\n if (typeof id !== 'string') {\n return Promise.reject(new Error('Invalid destination request.'));\n }\n\n return this.messageHandler.sendWithPromise('GetDestination', {\n id: id\n });\n }\n }, {\n key: 'getPageLabels',\n value: function getPageLabels() {\n return this.messageHandler.sendWithPromise('GetPageLabels', null);\n }\n }, {\n key: 'getPageMode',\n value: function getPageMode() {\n return this.messageHandler.sendWithPromise('GetPageMode', null);\n }\n }, {\n key: 'getAttachments',\n value: function getAttachments() {\n return this.messageHandler.sendWithPromise('GetAttachments', null);\n }\n }, {\n key: 'getJavaScript',\n value: function getJavaScript() {\n return this.messageHandler.sendWithPromise('GetJavaScript', null);\n }\n }, {\n key: 'getOutline',\n value: function getOutline() {\n return this.messageHandler.sendWithPromise('GetOutline', null);\n }\n }, {\n key: 'getPermissions',\n value: function getPermissions() {\n return this.messageHandler.sendWithPromise('GetPermissions', null);\n }\n }, {\n key: 'getMetadata',\n value: function getMetadata() {\n var _this14 = this;\n\n return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null\n };\n });\n }\n }, {\n key: 'getStats',\n value: function getStats() {\n return this.messageHandler.sendWithPromise('GetStats', null);\n }\n }, {\n key: 'startCleanup',\n value: function startCleanup() {\n var _this15 = this;\n\n this.messageHandler.sendWithPromise('Cleanup', null).then(function () {\n for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) {\n var page = _this15.pageCache[i];\n\n if (page) {\n page.cleanup();\n }\n }\n\n _this15.commonObjs.clear();\n\n _this15.fontLoader.clear();\n });\n }\n }, {\n key: 'loadingParams',\n get: function get() {\n var params = this._params;\n return (0, _util.shadow)(this, 'loadingParams', {\n disableAutoFetch: params.disableAutoFetch,\n disableCreateObjectURL: params.disableCreateObjectURL,\n disableFontFace: params.disableFontFace,\n nativeImageDecoderSupport: params.nativeImageDecoderSupport\n });\n }\n }]);\n\n return WorkerTransport;\n }();\n\n var PDFObjects = function PDFObjectsClosure() {\n function PDFObjects() {\n this.objs = Object.create(null);\n }\n\n PDFObjects.prototype = {\n ensureObj: function PDFObjects_ensureObj(objId) {\n if (this.objs[objId]) {\n return this.objs[objId];\n }\n\n var obj = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n this.objs[objId] = obj;\n return obj;\n },\n get: function PDFObjects_get(objId, callback) {\n if (callback) {\n this.ensureObj(objId).capability.promise.then(callback);\n return null;\n }\n\n var obj = this.objs[objId];\n\n if (!obj || !obj.resolved) {\n throw new Error('Requesting object that isn\\'t resolved yet ' + objId);\n }\n\n return obj.data;\n },\n resolve: function PDFObjects_resolve(objId, data) {\n var obj = this.ensureObj(objId);\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n },\n isResolved: function PDFObjects_isResolved(objId) {\n var objs = this.objs;\n\n if (!objs[objId]) {\n return false;\n }\n\n return objs[objId].resolved;\n },\n hasData: function PDFObjects_hasData(objId) {\n return this.isResolved(objId);\n },\n getData: function PDFObjects_getData(objId) {\n var objs = this.objs;\n\n if (!objs[objId] || !objs[objId].resolved) {\n return null;\n }\n\n return objs[objId].data;\n },\n clear: function PDFObjects_clear() {\n this.objs = Object.create(null);\n }\n };\n return PDFObjects;\n }();\n\n var RenderTask = function RenderTaskClosure() {\n function RenderTask(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n RenderTask.prototype = {\n get promise() {\n return this._internalRenderTask.capability.promise;\n },\n\n cancel: function RenderTask_cancel() {\n this._internalRenderTask.cancel();\n },\n then: function RenderTask_then(onFulfilled, onRejected) {\n return this.promise.then.apply(this.promise, arguments);\n }\n };\n return RenderTask;\n }();\n\n var InternalRenderTask = function InternalRenderTaskClosure() {\n var canvasInRendering = new WeakMap();\n\n function InternalRenderTask(callback, params, objs, commonObjs, operatorList, pageNumber, canvasFactory, webGLContext) {\n var pdfBug = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this.pageNumber = pageNumber;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this._pdfBug = pdfBug;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this.useRequestAnimationFrame = false;\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n InternalRenderTask.prototype = {\n initializeGraphics: function initializeGraphics(transparency) {\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.');\n }\n\n canvasInRendering.set(this._canvas, this);\n }\n\n if (this._pdfBug && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) {\n this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n var params = this.params;\n this.gfx = new _canvas.CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, params.imageLayer);\n this.gfx.beginDrawing({\n transform: params.transform,\n viewport: params.viewport,\n transparency: transparency,\n background: params.background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n },\n cancel: function InternalRenderTask_cancel() {\n this.running = false;\n this.cancelled = true;\n\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n\n this.callback(new _dom_utils.RenderingCancelledException('Rendering cancelled, page ' + this.pageNumber, 'canvas'));\n },\n operatorListChanged: function InternalRenderTask_operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n },\n _continue: function InternalRenderTask__continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n },\n _scheduleNext: function InternalRenderTask__scheduleNext() {\n var _this16 = this;\n\n if (this.useRequestAnimationFrame && typeof window !== 'undefined') {\n window.requestAnimationFrame(function () {\n _this16._nextBound().catch(_this16.callback);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.callback);\n }\n },\n _next: function InternalRenderTask__next() {\n var _this17 = this;\n\n return new Promise(function () {\n if (_this17.cancelled) {\n return;\n }\n\n _this17.operatorListIdx = _this17.gfx.executeOperatorList(_this17.operatorList, _this17.operatorListIdx, _this17._continueBound, _this17.stepper);\n\n if (_this17.operatorListIdx === _this17.operatorList.argsArray.length) {\n _this17.running = false;\n\n if (_this17.operatorList.lastChunk) {\n _this17.gfx.endDrawing();\n\n if (_this17._canvas) {\n canvasInRendering.delete(_this17._canvas);\n }\n\n _this17.callback();\n }\n }\n });\n }\n };\n return InternalRenderTask;\n }();\n\n var version, build;\n {\n exports.version = version = '2.0.943';\n exports.build = build = 'dc98bf76';\n }\n exports.getDocument = getDocument;\n exports.LoopbackPort = LoopbackPort;\n exports.PDFDataRangeTransport = PDFDataRangeTransport;\n exports.PDFWorker = PDFWorker;\n exports.PDFDocumentProxy = PDFDocumentProxy;\n exports.PDFPageProxy = PDFPageProxy;\n exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\n exports.version = version;\n exports.build = build;\n /***/\n },\n /* 130 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.loadScript = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.getFilenameFromUrl = exports.addLinkAttributes = exports.RenderingCancelledException = exports.PageViewport = undefined;\n\n var _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 var _util = __w_pdfjs_require__(1);\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\n var SVG_NS = 'http://www.w3.org/2000/svg';\n\n var DOMCanvasFactory = function () {\n function DOMCanvasFactory() {\n _classCallCheck(this, DOMCanvasFactory);\n }\n\n _createClass(DOMCanvasFactory, [{\n key: 'create',\n value: function create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error('invalid canvas size');\n }\n\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = width;\n canvas.height = height;\n return {\n canvas: canvas,\n context: context\n };\n }\n }, {\n key: 'reset',\n value: function reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error('canvas is not specified');\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error('invalid canvas size');\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n }, {\n key: 'destroy',\n value: function destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error('canvas is not specified');\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n }]);\n\n return DOMCanvasFactory;\n }();\n\n var DOMCMapReaderFactory = function () {\n function DOMCMapReaderFactory(_ref) {\n var _ref$baseUrl = _ref.baseUrl,\n baseUrl = _ref$baseUrl === undefined ? null : _ref$baseUrl,\n _ref$isCompressed = _ref.isCompressed,\n isCompressed = _ref$isCompressed === undefined ? false : _ref$isCompressed;\n\n _classCallCheck(this, DOMCMapReaderFactory);\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n _createClass(DOMCMapReaderFactory, [{\n key: 'fetch',\n value: function fetch(_ref2) {\n var _this = this;\n\n var name = _ref2.name;\n\n if (!this.baseUrl) {\n return Promise.reject(new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'));\n }\n\n if (!name) {\n return Promise.reject(new Error('CMap name must be specified.'));\n }\n\n return new Promise(function (resolve, reject) {\n var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : '');\n var request = new XMLHttpRequest();\n request.open('GET', url, true);\n\n if (_this.isCompressed) {\n request.responseType = 'arraybuffer';\n }\n\n request.onreadystatechange = function () {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n var data = void 0;\n\n if (_this.isCompressed && request.response) {\n data = new Uint8Array(request.response);\n } else if (!_this.isCompressed && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (data) {\n resolve({\n cMapData: data,\n compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE\n });\n return;\n }\n }\n\n reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url));\n };\n\n request.send(null);\n });\n }\n }]);\n\n return DOMCMapReaderFactory;\n }();\n\n var DOMSVGFactory = function () {\n function DOMSVGFactory() {\n _classCallCheck(this, DOMSVGFactory);\n }\n\n _createClass(DOMSVGFactory, [{\n key: 'create',\n value: function create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions');\n var svg = document.createElementNS(SVG_NS, 'svg:svg');\n svg.setAttribute('version', '1.1');\n svg.setAttribute('width', width + 'px');\n svg.setAttribute('height', height + 'px');\n svg.setAttribute('preserveAspectRatio', 'none');\n svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);\n return svg;\n }\n }, {\n key: 'createElement',\n value: function createElement(type) {\n (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type');\n return document.createElementNS(SVG_NS, type);\n }\n }]);\n\n return DOMSVGFactory;\n }();\n\n var PageViewport = function () {\n function PageViewport(_ref3) {\n var viewBox = _ref3.viewBox,\n scale = _ref3.scale,\n rotation = _ref3.rotation,\n _ref3$offsetX = _ref3.offsetX,\n offsetX = _ref3$offsetX === undefined ? 0 : _ref3$offsetX,\n _ref3$offsetY = _ref3.offsetY,\n offsetY = _ref3$offsetY === undefined ? 0 : _ref3$offsetY,\n _ref3$dontFlip = _ref3.dontFlip,\n dontFlip = _ref3$dontFlip === undefined ? false : _ref3$dontFlip;\n\n _classCallCheck(this, PageViewport);\n\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n var centerX = (viewBox[2] + viewBox[0]) / 2;\n var centerY = (viewBox[3] + viewBox[1]) / 2;\n var rotateA = void 0,\n rotateB = void 0,\n rotateC = void 0,\n rotateD = void 0;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n default:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n var offsetCanvasX = void 0,\n offsetCanvasY = void 0;\n var width = void 0,\n height = void 0;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n _createClass(PageViewport, [{\n key: 'clone',\n value: function clone() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$scale = _ref4.scale,\n scale = _ref4$scale === undefined ? this.scale : _ref4$scale,\n _ref4$rotation = _ref4.rotation,\n rotation = _ref4$rotation === undefined ? this.rotation : _ref4$rotation,\n _ref4$dontFlip = _ref4.dontFlip,\n dontFlip = _ref4$dontFlip === undefined ? false : _ref4$dontFlip;\n\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale: scale,\n rotation: rotation,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n dontFlip: dontFlip\n });\n }\n }, {\n key: 'convertToViewportPoint',\n value: function convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n }, {\n key: 'convertToViewportRectangle',\n value: function convertToViewportRectangle(rect) {\n var tl = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n var br = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [tl[0], tl[1], br[0], br[1]];\n }\n }, {\n key: 'convertToPdfPoint',\n value: function convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n }]);\n\n return PageViewport;\n }();\n\n var RenderingCancelledException = function RenderingCancelledException() {\n function RenderingCancelledException(msg, type) {\n this.message = msg;\n this.type = type;\n }\n\n RenderingCancelledException.prototype = new Error();\n RenderingCancelledException.prototype.name = 'RenderingCancelledException';\n RenderingCancelledException.constructor = RenderingCancelledException;\n return RenderingCancelledException;\n }();\n\n var LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n };\n var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top'];\n\n function addLinkAttributes(link) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n url = _ref5.url,\n target = _ref5.target,\n rel = _ref5.rel;\n\n link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : '';\n\n if (url) {\n var LinkTargetValues = Object.values(LinkTarget);\n var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE;\n link.target = LinkTargetStringMap[targetIndex];\n link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL;\n }\n }\n\n function getFilenameFromUrl(url) {\n var anchor = url.indexOf('#');\n var query = url.indexOf('?');\n var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf('/', end) + 1, end);\n }\n\n var StatTimer = function () {\n function StatTimer() {\n var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _classCallCheck(this, StatTimer);\n\n this.enabled = !!enable;\n this.started = Object.create(null);\n this.times = [];\n }\n\n _createClass(StatTimer, [{\n key: 'time',\n value: function time(name) {\n if (!this.enabled) {\n return;\n }\n\n if (name in this.started) {\n (0, _util.warn)('Timer is already running for ' + name);\n }\n\n this.started[name] = Date.now();\n }\n }, {\n key: 'timeEnd',\n value: function timeEnd(name) {\n if (!this.enabled) {\n return;\n }\n\n if (!(name in this.started)) {\n (0, _util.warn)('Timer has not been started for ' + name);\n }\n\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now()\n });\n delete this.started[name];\n }\n }, {\n key: 'toString',\n value: function toString() {\n var times = this.times;\n var out = '',\n longest = 0;\n\n for (var i = 0, ii = times.length; i < ii; ++i) {\n var name = times[i]['name'];\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n\n for (var _i = 0, _ii = times.length; _i < _ii; ++_i) {\n var span = times[_i];\n var duration = span.end - span.start;\n out += span['name'].padEnd(longest) + ' ' + duration + 'ms\\n';\n }\n\n return out;\n }\n }]);\n\n return StatTimer;\n }();\n\n var DummyStatTimer = function () {\n function DummyStatTimer() {\n _classCallCheck(this, DummyStatTimer);\n\n (0, _util.unreachable)('Cannot initialize DummyStatTimer.');\n }\n\n _createClass(DummyStatTimer, null, [{\n key: 'time',\n value: function time(name) {}\n }, {\n key: 'timeEnd',\n value: function timeEnd(name) {}\n }, {\n key: 'toString',\n value: function toString() {\n return '';\n }\n }]);\n\n return DummyStatTimer;\n }();\n\n function loadScript(src) {\n return new Promise(function (resolve, reject) {\n var script = document.createElement('script');\n script.src = src;\n script.onload = resolve;\n\n script.onerror = function () {\n reject(new Error('Cannot load script at: ' + script.src));\n };\n\n (document.head || document.documentElement).appendChild(script);\n });\n }\n\n exports.PageViewport = PageViewport;\n exports.RenderingCancelledException = RenderingCancelledException;\n exports.addLinkAttributes = addLinkAttributes;\n exports.getFilenameFromUrl = getFilenameFromUrl;\n exports.LinkTarget = LinkTarget;\n exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\n exports.DOMCanvasFactory = DOMCanvasFactory;\n exports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n exports.DOMSVGFactory = DOMSVGFactory;\n exports.StatTimer = StatTimer;\n exports.DummyStatTimer = DummyStatTimer;\n exports.loadScript = loadScript;\n /***/\n },\n /* 131 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.FontLoader = exports.FontFaceObject = undefined;\n\n var _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 var _util = __w_pdfjs_require__(1);\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof3(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof3(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var BaseFontLoader = function () {\n function BaseFontLoader(docId) {\n _classCallCheck(this, BaseFontLoader);\n\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)('Cannot initialize BaseFontLoader.');\n }\n\n this.docId = docId;\n this.nativeFontFaces = [];\n this.styleElement = null;\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n }\n\n _createClass(BaseFontLoader, [{\n key: 'addNativeFontFace',\n value: function addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n document.fonts.add(nativeFontFace);\n }\n }, {\n key: 'insertRule',\n value: function insertRule(rule) {\n var styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = document.createElement('style');\n styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId;\n document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);\n }\n\n var styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.nativeFontFaces.forEach(function (nativeFontFace) {\n document.fonts.delete(nativeFontFace);\n });\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n }, {\n key: 'bind',\n value: function bind(fonts, callback) {\n var rules = [];\n var fontsToLoad = [];\n var fontLoadPromises = [];\n\n var getNativeFontPromise = function getNativeFontPromise(nativeFontFace) {\n return nativeFontFace.loaded.catch(function (reason) {\n (0, _util.warn)('Failed to load font \"' + nativeFontFace.family + '\": ' + reason);\n });\n };\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var font = _step.value;\n\n if (font.attached || font.missingFile) {\n continue;\n }\n\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n var nativeFontFace = font.createNativeFontFace();\n\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n fontLoadPromises.push(getNativeFontPromise(nativeFontFace));\n }\n } else {\n var rule = font.createFontFaceRule();\n\n if (rule) {\n this.insertRule(rule);\n rules.push(rule);\n fontsToLoad.push(font);\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var request = this._queueLoadingCallback(callback);\n\n if (this.isFontLoadingAPISupported) {\n Promise.all(fontLoadPromises).then(request.complete);\n } else if (rules.length > 0 && !this.isSyncFontLoadingSupported) {\n this._prepareFontLoadEvent(rules, fontsToLoad, request);\n } else {\n request.complete();\n }\n }\n }, {\n key: '_queueLoadingCallback',\n value: function _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n var otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n var context = this.loadingContext;\n var request = {\n id: 'pdfjs-font-loading-' + context.nextRequestId++,\n done: false,\n complete: completeRequest,\n callback: callback\n };\n context.requests.push(request);\n return request;\n }\n }, {\n key: '_prepareFontLoadEvent',\n value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');\n }\n }, {\n key: 'isFontLoadingAPISupported',\n get: function get() {\n (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');\n }\n }, {\n key: 'isSyncFontLoadingSupported',\n get: function get() {\n (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');\n }\n }, {\n key: '_loadTestFont',\n get: function get() {\n (0, _util.unreachable)('Abstract method `_loadTestFont`.');\n }\n }]);\n\n return BaseFontLoader;\n }();\n\n var FontLoader = void 0;\n {\n exports.FontLoader = FontLoader = function (_BaseFontLoader) {\n _inherits(GenericFontLoader, _BaseFontLoader);\n\n function GenericFontLoader(docId) {\n _classCallCheck(this, GenericFontLoader);\n\n var _this = _possibleConstructorReturn(this, (GenericFontLoader.__proto__ || Object.getPrototypeOf(GenericFontLoader)).call(this, docId));\n\n _this.loadTestFontId = 0;\n return _this;\n }\n\n _createClass(GenericFontLoader, [{\n key: '_prepareFontLoadEvent',\n value: function _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n var chunk1 = s.substring(0, offset);\n var chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n var i = void 0,\n ii = void 0;\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n var called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)('Load test font never loaded.');\n callback();\n return;\n }\n\n ctx.font = '30px ' + name;\n ctx.fillText('.', 0, 20);\n var imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++;\n var data = this._loadTestFont;\n var COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n var CFF_CHECKSUM_OFFSET = 16;\n var XXXX_VALUE = 0x58585858;\n var checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n var url = 'url(data:font/opentype;base64,' + btoa(data) + ');';\n var rule = '@font-face {font-family:\"' + loadTestFontId + '\";src:' + url + '}';\n this.insertRule(rule);\n var names = [];\n\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n\n names.push(loadTestFontId);\n var div = document.createElement('div');\n div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');\n\n for (i = 0, ii = names.length; i < ii; ++i) {\n var span = document.createElement('span');\n span.textContent = 'Hi';\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n\n document.body.appendChild(div);\n isFontReady(loadTestFontId, function () {\n document.body.removeChild(div);\n request.complete();\n });\n }\n }, {\n key: 'isFontLoadingAPISupported',\n get: function get() {\n var supported = typeof document !== 'undefined' && !!document.fonts;\n\n if (supported && typeof navigator !== 'undefined') {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m && m[1] < 63) {\n supported = false;\n }\n }\n\n return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);\n }\n }, {\n key: 'isSyncFontLoadingSupported',\n get: function get() {\n var supported = false;\n\n if (typeof navigator === 'undefined') {\n supported = true;\n } else {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m && m[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);\n }\n }, {\n key: '_loadTestFont',\n get: function get() {\n var getLoadTestFont = function getLoadTestFont() {\n return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');\n };\n\n return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());\n }\n }]);\n\n return GenericFontLoader;\n }(BaseFontLoader);\n }\n var IsEvalSupportedCached = {\n get value() {\n return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());\n }\n\n };\n\n var FontFaceObject = function () {\n function FontFaceObject(translatedData, _ref) {\n var _ref$isEvalSupported = _ref.isEvalSupported,\n isEvalSupported = _ref$isEvalSupported === undefined ? true : _ref$isEvalSupported,\n _ref$disableFontFace = _ref.disableFontFace,\n disableFontFace = _ref$disableFontFace === undefined ? false : _ref$disableFontFace,\n _ref$ignoreErrors = _ref.ignoreErrors,\n ignoreErrors = _ref$ignoreErrors === undefined ? false : _ref$ignoreErrors,\n _ref$onUnsupportedFea = _ref.onUnsupportedFeature,\n onUnsupportedFeature = _ref$onUnsupportedFea === undefined ? null : _ref$onUnsupportedFea,\n _ref$fontRegistry = _ref.fontRegistry,\n fontRegistry = _ref$fontRegistry === undefined ? null : _ref$fontRegistry;\n\n _classCallCheck(this, FontFaceObject);\n\n this.compiledGlyphs = Object.create(null);\n\n for (var i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n _createClass(FontFaceObject, [{\n key: 'createNativeFontFace',\n value: function createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n var nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n }, {\n key: 'createFontFaceRule',\n value: function createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n var data = (0, _util.bytesToString)(new Uint8Array(this.data));\n var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');';\n var rule = '@font-face {font-family:\"' + this.loadedName + '\";src:' + url + '}';\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n }, {\n key: 'getPathGenerator',\n value: function getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n var cmds = void 0,\n current = void 0;\n\n try {\n cmds = objs.get(this.loadedName + '_path_' + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.font\n });\n }\n\n (0, _util.warn)('getPathGenerator - ignoring character: \"' + ex + '\".');\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && IsEvalSupportedCached.value) {\n var args = void 0,\n js = '';\n\n for (var i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n\n if (current.args !== undefined) {\n args = current.args.join(',');\n } else {\n args = '';\n }\n\n js += 'c.' + current.cmd + '(' + args + ');\\n';\n }\n\n return this.compiledGlyphs[character] = new Function('c', 'size', js);\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {\n current = cmds[_i];\n\n if (current.cmd === 'scale') {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n }]);\n\n return FontFaceObject;\n }();\n\n exports.FontFaceObject = FontFaceObject;\n exports.FontLoader = FontLoader;\n /***/\n },\n /* 132 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var compatibilityParams = Object.create(null);\n {\n var isNodeJS = __w_pdfjs_require__(4);\n\n var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';\n var isIE = /Trident/.test(userAgent);\n var isIOSChrome = /CriOS/.test(userAgent);\n\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n\n (function checkFontFaceAndImage() {\n if (isNodeJS()) {\n compatibilityParams.disableFontFace = true;\n compatibilityParams.nativeImageDecoderSupport = 'none';\n }\n })();\n }\n exports.apiCompatibilityParams = Object.freeze(compatibilityParams);\n /***/\n },\n /* 133 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.CanvasGraphics = undefined;\n\n var _util = __w_pdfjs_require__(1);\n\n var _pattern_helper = __w_pdfjs_require__(134);\n\n var MIN_FONT_SIZE = 16;\n var MAX_FONT_SIZE = 100;\n var MAX_GROUP_SIZE = 4096;\n var MIN_WIDTH_FACTOR = 0.65;\n var COMPILE_TYPE3_GLYPHS = true;\n var MAX_SIZE_TO_COMPILE = 1000;\n var FULL_CHUNK_HEIGHT = 16;\n var IsLittleEndianCached = {\n get value() {\n return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)());\n }\n\n };\n\n function addContextCurrentTransform(ctx) {\n if (!ctx.mozCurrentTransform) {\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n Object.defineProperty(ctx, 'mozCurrentTransform', {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, 'mozCurrentTransformInverse', {\n get: function getCurrentTransformInverse() {\n var m = this._transformMatrix;\n var a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n var m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n var m = this._transformMatrix;\n m[0] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = m[3] * y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.rotate = function ctxRotate(angle) {\n var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n\n this._originalRotate(angle);\n };\n }\n }\n\n var CachedCanvases = function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n },\n clear: function clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n };\n return CachedCanvases;\n }();\n\n function compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n var width = imgData.width,\n height = imgData.height;\n var i,\n j,\n j0,\n width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height),\n pos = 0,\n ii;\n\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n var count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n\n do {\n var step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n coords.push(p % width1);\n coords.push(p / width1 | 0);\n --count;\n } while (p0 !== p);\n\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function drawOutline(c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n\n for (var i = 0, ii = outlines.length; i < ii; i++) {\n var o = outlines[i];\n c.moveTo(o[0], o[1]);\n\n for (var j = 2, jj = o.length; j < jj; j += 2) {\n c.lineTo(o[j], o[j + 1]);\n }\n }\n\n c.fill();\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n }\n\n var CanvasExtraState = function CanvasExtraStateClosure() {\n function CanvasExtraState() {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = '#000000';\n this.strokeColor = '#000000';\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null;\n }\n\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return CanvasExtraState;\n }();\n\n var CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedGetSinglePixelWidth = null;\n }\n\n function putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = width + 7 >> 3;\n var white = 0xFFFFFFFF;\n var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF;\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n var k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error('bad image kind: ' + imgData.kind);\n }\n }\n\n function putBinaryImageMask(ctx, imgData) {\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n\n function copyCtxState(sourceCtx, destCtx) {\n var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font'];\n\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = '#000000';\n ctx.fillStyle = '#000000';\n ctx.fillRule = 'nonzero';\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = 'source-over';\n ctx.font = '10px sans-serif';\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n var alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n }\n\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n }\n\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n var composeFn;\n\n if (subtype === 'Luminosity') {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n var mask = smask.canvas;\n var maskCtx = smask.context;\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n var backdrop = smask.backdrop || null;\n\n if (!smask.transferMap && webGLContext.isEnabled) {\n var composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask: mask,\n properties: {\n subtype: smask.subtype,\n backdrop: backdrop\n }\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n\n var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n var NORMAL_CLIP = {};\n var EO_CLIP = {};\n CanvasGraphics.prototype = {\n beginDrawing: function beginDrawing(_ref) {\n var transform = _ref.transform,\n viewport = _ref.viewport,\n transparency = _ref.transparency,\n _ref$background = _ref.background,\n background = _ref$background === undefined ? null : _ref$background;\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n this.ctx.save();\n this.ctx.fillStyle = background || 'rgb(255, 255, 255)';\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function';\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n var deps = argsArray[i];\n\n for (var n = 0, nn = deps.length; n < nn; n++) {\n var depObjId = deps[n];\n var common = depObjId[0] === 'g' && depObjId[1] === '_';\n var objsPool = common ? commonObjs : objs;\n\n if (!objsPool.isResolved(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n },\n endDrawing: function CanvasGraphics_endDrawing() {\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n\n this.cachedCanvases.clear();\n this.webGLContext.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n },\n setLineWidth: function CanvasGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n },\n setLineCap: function CanvasGraphics_setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function CanvasGraphics_setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n },\n setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n var ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {},\n setFlatness: function CanvasGraphics_setFlatness(flatness) {},\n setGState: function CanvasGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n\n case 'LC':\n this.setLineCap(value);\n break;\n\n case 'LJ':\n this.setLineJoin(value);\n break;\n\n case 'ML':\n this.setMiterLimit(value);\n break;\n\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n\n case 'RI':\n this.setRenderingIntent(value);\n break;\n\n case 'FL':\n this.setFlatness(value);\n break;\n\n case 'Font':\n this.setFont(value[0], value[1]);\n break;\n\n case 'CA':\n this.current.strokeAlpha = state[1];\n break;\n\n case 'ca':\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case 'BM':\n this.ctx.globalCompositeOperation = value;\n break;\n\n case 'SMask':\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n\n this.current.activeSMask = value ? this.tempSMask : null;\n\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n var activeSMask = this.current.activeSMask;\n var drawnWidth = activeSMask.canvas.width;\n var drawnHeight = activeSMask.canvas.height;\n var cacheId = 'smaskGroupAt' + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n },\n resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.current.resumeSMaskCtx;\n var currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = null;\n }\n },\n transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedGetSinglePixelWidth = null;\n },\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n\n if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\n\n var xw = x + width;\n var yh = y + height;\n this.ctx.moveTo(x, y);\n this.ctx.lineTo(xw, y);\n this.ctx.lineTo(xw, yh);\n this.ctx.lineTo(x, yh);\n this.ctx.lineTo(x, y);\n this.ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_stroke(consumePath) {\n consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n },\n closeStroke: function CanvasGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n fill: function CanvasGraphics_fill(consumePath) {\n consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n\n if (this.pendingEOFill) {\n ctx.fill('evenodd');\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n },\n eoFillStroke: function CanvasGraphics_eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n },\n closeFillStroke: function CanvasGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n },\n endPath: function CanvasGraphics_endPath() {\n this.consumePath();\n },\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n endText: function CanvasGraphics_endText() {\n var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n },\n setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n\n if (!fontObj) {\n throw new Error('Can\\'t find font for ' + fontRefName);\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)('Invalid font matrix for font ' + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n var name = fontObj.loadedName || 'sans-serif';\n var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal';\n var italic = fontObj.italic ? 'italic' : 'normal';\n var typeface = '\"' + name + '\", ' + fontObj.fallbackName;\n var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;\n this.current.fontSizeScale = size / browserFontSize;\n var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface;\n this.ctx.font = rule;\n },\n setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n },\n setTextRise: function CanvasGraphics_setTextRise(rise) {\n this.current.textRise = rise;\n },\n moveText: function CanvasGraphics_moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n },\n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n nextLine: function CanvasGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n paintChar: function paintChar(character, x, y, patternTransform) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n var patternFill = current.patternFill && font.data;\n var addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x: x,\n y: y,\n fontSize: fontSize,\n addToPath: addToPath\n });\n }\n },\n\n get isFontSubpixelAAEnabled() {\n var ctx = this.canvasFactory.create(10, 10).context;\n ctx.scale(1.5, 1);\n ctx.fillText('I', 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled);\n },\n\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n var patternTransform = void 0;\n\n if (current.patternFill) {\n ctx.save();\n var pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (glyph.isInFont || font.missingFile) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n },\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)('Type3 character \"' + glyph.operatorListId + '\" is not available.');\n continue;\n }\n\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n\n var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n },\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var _this = this;\n\n var pattern;\n\n if (IR[0] === 'TilingPattern') {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: function createCanvasGraphics(ctx) {\n return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);\n }\n\n return pattern;\n },\n setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n },\n setFillColorN: function CanvasGraphics_setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n },\n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n var ctx = this.ctx;\n this.save();\n var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n var inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = _util.Util.applyTransform([0, 0], inv);\n\n var br = _util.Util.applyTransform([0, height], inv);\n\n var ul = _util.Util.applyTransform([width, 0], inv);\n\n var ur = _util.Util.applyTransform([width, height], inv);\n\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n (0, _util.unreachable)('Should not call beginInlineImage');\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n (0, _util.unreachable)('Should not call beginImageData');\n },\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n },\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n this.save();\n var currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)('TODO: Support non-isolated groups.');\n }\n\n if (group.knockout) {\n (0, _util.warn)('Knockout groups not supported.');\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error('Bounding box is required.');\n }\n\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n var cacheId = 'groupAt' + this.groupLevel;\n\n if (group.smask) {\n cacheId += '_smask_' + this.smaskCounter++ % 2;\n }\n\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX: offsetX,\n offsetY: offsetY,\n scaleX: scaleX,\n scaleY: scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n },\n endGroup: function CanvasGraphics_endGroup(group) {\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n },\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {\n var domImage = this.objs.get(objId);\n\n if (!domImage) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.save();\n var ctx = this.ctx;\n ctx.scale(1 / w, -1 / h);\n ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);\n\n if (this.imageLayer) {\n var currentTransform = ctx.mozCurrentTransformInverse;\n var position = this.getCanvasPosition(0, 0);\n this.imageLayer.appendImage({\n objId: objId,\n left: position[0],\n top: position[1],\n width: w / currentTransform[0],\n height: h / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var glyph = this.processingType3;\n\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({\n data: img.data,\n width: width,\n height: height\n });\n } else {\n glyph.compiled = null;\n }\n }\n\n if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n var ctx = this.ctx;\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n var imgData = this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0],\n b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2],\n d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n var imgToPaint, tmpCanvas;\n\n if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = 'prescale1';\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';\n }\n\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n\n this.restore();\n },\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n },\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n this.ctx.fillRect(0, 0, 1, 1);\n },\n paintXObject: function CanvasGraphics_paintXObject() {\n (0, _util.warn)('Unsupported \\'paintXObject\\' command.');\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},\n endMarkedContent: function CanvasGraphics_endMarkedContent() {},\n beginCompat: function CanvasGraphics_beginCompat() {},\n endCompat: function CanvasGraphics_endCompat() {},\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip('evenodd');\n } else {\n ctx.clip();\n }\n\n this.pendingClip = null;\n }\n\n ctx.beginPath();\n },\n getSinglePixelWidth: function getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n var inverse = this.ctx.mozCurrentTransformInverse;\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));\n }\n\n return this._cachedGetSinglePixelWidth;\n },\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n };\n\n for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n }();\n\n exports.CanvasGraphics = CanvasGraphics;\n /***/\n },\n /* 134 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.TilingPattern = exports.getShadingPatternFromIR = undefined;\n\n var _util = __w_pdfjs_require__(1);\n\n var ShadingIRs = {};\n ShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var colorStops = raw[2];\n var p0 = raw[3];\n var p1 = raw[4];\n var r0 = raw[5];\n var r1 = raw[6];\n return {\n type: 'Pattern',\n getPattern: function RadialAxial_getPattern(ctx) {\n var grad;\n\n if (type === 'axial') {\n grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n } else if (type === 'radial') {\n grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n }\n\n for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n\n return grad;\n }\n };\n }\n };\n\n var createMeshCanvas = function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n var k;\n\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n\n for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n k = k < 0 ? 0 : k > 1 ? 1 : k;\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n }\n\n function drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n\n switch (figure.type) {\n case 'lattice':\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case 'triangles':\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error('illegal figure');\n }\n }\n\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords: coords,\n colors: colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var canvas, tmpCanvas, i, ii;\n\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width: width,\n height: height,\n backgroundColor: backgroundColor,\n figures: figures,\n context: context\n });\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n var bytes = data.data;\n\n for (i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n\n return {\n canvas: canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n return createMeshCanvas;\n }();\n\n ShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n var coords = raw[2];\n var colors = raw[3];\n var figures = raw[4];\n var bounds = raw[5];\n var matrix = raw[6];\n var background = raw[8];\n return {\n type: 'Pattern',\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n var scale;\n\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');\n }\n };\n }\n };\n ShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n type: 'Pattern',\n getPattern: function Dummy_fromIR_getPattern() {\n return 'hotpink';\n }\n };\n }\n };\n\n function getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n\n if (!shadingIR) {\n throw new Error('Unknown IR type: ' + raw[0]);\n }\n\n return shadingIR.fromIR(raw);\n }\n\n var TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\n\n function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.type = 'Pattern';\n this.ctx = ctx;\n }\n\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)('TilingType: ' + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n var topLeft = [x0, y0];\n var botRight = [x0 + xstep, y0 + ystep];\n var width = botRight[0] - topLeft[0];\n var height = botRight[1] - topLeft[1];\n\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE);\n height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE);\n var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n this.setScale(width, height, xstep, ystep);\n this.transformToScale(graphics);\n var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];\n graphics.transform.apply(graphics, tmpTranslate);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n return tmpCanvas.canvas;\n },\n setScale: function TilingPattern_setScale(width, height, xstep, ystep) {\n this.scale = [width / xstep, height / ystep];\n },\n transformToScale: function TilingPattern_transformToScale(graphics) {\n var scale = this.scale;\n var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];\n graphics.transform.apply(graphics, tmpScale);\n },\n scaleToContext: function TilingPattern_scaleToContext() {\n var scale = this.scale;\n this.ctx.scale(1 / scale[0], 1 / scale[1]);\n },\n clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n },\n setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n var context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n var ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError('Unsupported paint type: ' + paintType);\n }\n },\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n this.scaleToContext();\n return ctx.createPattern(temporaryPatternCanvas, 'repeat');\n }\n };\n return TilingPattern;\n }();\n\n exports.getShadingPatternFromIR = getShadingPatternFromIR;\n exports.TilingPattern = TilingPattern;\n /***/\n },\n /* 135 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var GlobalWorkerOptions = Object.create(null);\n GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\n GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc;\n exports.GlobalWorkerOptions = GlobalWorkerOptions;\n /***/\n },\n /* 136 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.MessageHandler = undefined;\n\n var _regenerator = __w_pdfjs_require__(137);\n\n var _regenerator2 = _interopRequireDefault(_regenerator);\n\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n var resolveCall = function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(fn, args) {\n var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (fn) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt('return');\n\n case 2:\n return _context.abrupt('return', fn.apply(thisArg, args));\n\n case 3:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function resolveCall(_x2, _x3) {\n return _ref.apply(this, arguments);\n };\n }();\n\n var _util = __w_pdfjs_require__(1);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _asyncToGenerator(fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n }\n\n function wrapReason(reason) {\n if ((typeof reason === 'undefined' ? 'undefined' : _typeof(reason)) !== 'object') {\n return reason;\n }\n\n switch (reason.name) {\n case 'AbortException':\n return new _util.AbortException(reason.message);\n\n case 'MissingPDFException':\n return new _util.MissingPDFException(reason.message);\n\n case 'UnexpectedResponseException':\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.details);\n }\n }\n\n function makeReasonSerializable(reason) {\n if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {\n return reason;\n }\n\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n\n function resolveOrReject(capability, success, reason) {\n if (success) {\n capability.resolve();\n } else {\n capability.reject(reason);\n }\n }\n\n function finalize(promise) {\n return Promise.resolve(promise).catch(function () {});\n }\n\n function MessageHandler(sourceName, targetName, comObj) {\n var _this = this;\n\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n var ah = this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = function (event) {\n var data = event.data;\n\n if (data.targetName !== _this.sourceName) {\n return;\n }\n\n if (data.stream) {\n _this._processStreamMessage(data);\n } else if (data.isReply) {\n var callbackId = data.callbackId;\n\n if (data.callbackId in callbacksCapabilities) {\n var callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\n\n if ('error' in data) {\n callback.reject(wrapReason(data.error));\n } else {\n callback.resolve(data.data);\n }\n } else {\n throw new Error('Cannot resolve callback ' + callbackId);\n }\n } else if (data.action in ah) {\n var action = ah[data.action];\n\n if (data.callbackId) {\n var _sourceName = _this.sourceName;\n var _targetName = data.sourceName;\n Promise.resolve().then(function () {\n return action[0].call(action[1], data.data);\n }).then(function (result) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n error: makeReasonSerializable(reason)\n });\n });\n } else if (data.streamId) {\n _this._createStreamSink(data);\n } else {\n action[0].call(action[1], data.data);\n }\n } else {\n throw new Error('Unknown action from worker: ' + data.action);\n }\n };\n\n comObj.addEventListener('message', this._onComObjOnMessage);\n }\n\n MessageHandler.prototype = {\n on: function on(actionName, handler, scope) {\n var ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error('There is already an actionName called \"' + actionName + '\"');\n }\n\n ah[actionName] = [handler, scope];\n },\n send: function send(actionName, data, transfers) {\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data\n };\n this.postMessage(message, transfers);\n },\n sendWithPromise: function sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data,\n callbackId: callbackId\n };\n var capability = (0, _util.createPromiseCapability)();\n this.callbacksCapabilities[callbackId] = capability;\n\n try {\n this.postMessage(message, transfers);\n } catch (e) {\n capability.reject(e);\n }\n\n return capability.promise;\n },\n sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n var _this2 = this;\n\n var streamId = this.streamId++;\n var sourceName = this.sourceName;\n var targetName = this.targetName;\n return new _util.ReadableStream({\n start: function start(controller) {\n var startCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId] = {\n controller: controller,\n startCall: startCapability,\n isClosed: false\n };\n\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n action: actionName,\n streamId: streamId,\n data: data,\n desiredSize: controller.desiredSize\n });\n\n return startCapability.promise;\n },\n pull: function pull(controller) {\n var pullCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].pullCall = pullCapability;\n\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'pull',\n streamId: streamId,\n desiredSize: controller.desiredSize\n });\n\n return pullCapability.promise;\n },\n cancel: function cancel(reason) {\n var cancelCapability = (0, _util.createPromiseCapability)();\n _this2.streamControllers[streamId].cancelCall = cancelCapability;\n _this2.streamControllers[streamId].isClosed = true;\n\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'cancel',\n reason: reason,\n streamId: streamId\n });\n\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n },\n _createStreamSink: function _createStreamSink(data) {\n var _this3 = this;\n\n var self = this;\n var action = this.actionHandler[data.action];\n var streamId = data.streamId;\n var desiredSize = data.desiredSize;\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var capability = (0, _util.createPromiseCapability)();\n\n var sendStreamRequest = function sendStreamRequest(_ref2) {\n var stream = _ref2.stream,\n chunk = _ref2.chunk,\n transfers = _ref2.transfers,\n success = _ref2.success,\n reason = _ref2.reason;\n\n _this3.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n streamId: streamId,\n chunk: chunk,\n success: success,\n reason: reason\n }, transfers);\n };\n\n var streamSink = {\n enqueue: function enqueue(chunk) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var transfers = arguments[2];\n\n if (this.isCancelled) {\n return;\n }\n\n var lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n sendStreamRequest({\n stream: 'enqueue',\n chunk: chunk,\n transfers: transfers\n });\n },\n close: function close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'close'\n });\n delete self.streamSinks[streamId];\n },\n error: function error(reason) {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'error',\n reason: reason\n });\n },\n sinkCapability: capability,\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {\n sendStreamRequest({\n stream: 'start_complete',\n success: true\n });\n }, function (reason) {\n sendStreamRequest({\n stream: 'start_complete',\n success: false,\n reason: reason\n });\n });\n },\n _processStreamMessage: function _processStreamMessage(data) {\n var _this4 = this;\n\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var streamId = data.streamId;\n\n var sendStreamResponse = function sendStreamResponse(_ref3) {\n var stream = _ref3.stream,\n success = _ref3.success,\n reason = _ref3.reason;\n\n _this4.comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n success: success,\n streamId: streamId,\n reason: reason\n });\n };\n\n var deleteStreamController = function deleteStreamController() {\n Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {\n return capability && finalize(capability.promise);\n })).then(function () {\n delete _this4.streamControllers[data.streamId];\n });\n };\n\n switch (data.stream) {\n case 'start_complete':\n resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));\n break;\n\n case 'pull_complete':\n resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));\n break;\n\n case 'pull':\n if (!this.streamSinks[data.streamId]) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n break;\n }\n\n if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[data.streamId].sinkCapability.resolve();\n }\n\n this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n resolveCall(this.streamSinks[data.streamId].onPull).then(function () {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: false,\n reason: reason\n });\n });\n break;\n\n case 'enqueue':\n (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');\n\n if (!this.streamControllers[data.streamId].isClosed) {\n this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n }\n\n break;\n\n case 'close':\n (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');\n\n if (this.streamControllers[data.streamId].isClosed) {\n break;\n }\n\n this.streamControllers[data.streamId].isClosed = true;\n this.streamControllers[data.streamId].controller.close();\n deleteStreamController();\n break;\n\n case 'error':\n (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');\n this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));\n deleteStreamController();\n break;\n\n case 'cancel_complete':\n resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));\n deleteStreamController();\n break;\n\n case 'cancel':\n if (!this.streamSinks[data.streamId]) {\n break;\n }\n\n resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: false,\n reason: reason\n });\n });\n this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[data.streamId].isCancelled = true;\n delete this.streamSinks[data.streamId];\n break;\n\n default:\n throw new Error('Unexpected stream case');\n }\n },\n postMessage: function postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n },\n destroy: function destroy() {\n this.comObj.removeEventListener('message', this._onComObjOnMessage);\n }\n };\n exports.MessageHandler = MessageHandler;\n /***/\n },\n /* 137 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = __w_pdfjs_require__(138);\n /***/\n },\n /* 138 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var g = function () {\n return this;\n }() || Function(\"return this\")();\n\n var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n var oldRuntime = hadRuntime && g.regeneratorRuntime;\n g.regeneratorRuntime = undefined;\n module.exports = __w_pdfjs_require__(139);\n\n if (hadRuntime) {\n g.regeneratorRuntime = oldRuntime;\n } else {\n try {\n delete g.regeneratorRuntime;\n } catch (e) {\n g.regeneratorRuntime = undefined;\n }\n }\n /***/\n\n },\n /* 139 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (module) {\n var _typeof = typeof Symbol === \"function\" && _typeof3(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof3(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof3(obj);\n };\n\n !function (global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined;\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n var inModule = (false ? undefined : _typeof(module)) === \"object\";\n var runtime = global.regeneratorRuntime;\n\n if (runtime) {\n if (inModule) {\n module.exports = runtime;\n }\n\n return;\n }\n\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n runtime.wrap = wrap;\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\";\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n runtime.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n runtime.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && (typeof value === \"undefined\" ? \"undefined\" : _typeof(value)) === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n runtime.AsyncIterator = AsyncIterator;\n\n runtime.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n context[delegate.resultName] = info.value;\n context.next = delegate.nextLoc;\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n return info;\n }\n\n context.delegate = null;\n return ContinueSentinel;\n }\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\";\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse();\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n runtime.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n }(function () {\n return this;\n }() || Function(\"return this\")());\n /* WEBPACK VAR INJECTION */\n }).call(this, __w_pdfjs_require__(140)(module));\n /***/\n },\n /* 140 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = [];\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n };\n /***/\n\n },\n /* 141 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Metadata = undefined;\n\n var _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 var _util = __w_pdfjs_require__(1);\n\n var _xml_parser = __w_pdfjs_require__(142);\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Metadata = function () {\n function Metadata(data) {\n _classCallCheck(this, Metadata);\n\n (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string');\n data = this._repair(data);\n var parser = new _xml_parser.SimpleXMLParser();\n var xmlDocument = parser.parseFromString(data);\n this._metadata = Object.create(null);\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _createClass(Metadata, [{\n key: '_repair',\n value: function _repair(data) {\n return data.replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n var bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case 'amp':\n return '&';\n\n case 'apos':\n return '\\'';\n\n case 'gt':\n return '>';\n\n case 'lt':\n return '<';\n\n case 'quot':\n return '\\\"';\n }\n\n throw new Error('_repair: ' + name + ' isn\\'t defined.');\n });\n var chars = '';\n\n for (var i = 0, ii = bytes.length; i < ii; i += 2) {\n var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n chars += String.fromCharCode(code);\n } else {\n chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';';\n }\n }\n\n return '>' + chars;\n });\n }\n }, {\n key: '_parse',\n value: function _parse(xmlDocument) {\n var rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.firstChild;\n\n while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.nextSibling;\n }\n }\n\n var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n\n if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {\n return;\n }\n\n var children = rdf.childNodes;\n\n for (var i = 0, ii = children.length; i < ii; i++) {\n var desc = children[i];\n\n if (desc.nodeName.toLowerCase() !== 'rdf:description') {\n continue;\n }\n\n for (var j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') {\n var entry = desc.childNodes[j];\n var name = entry.nodeName.toLowerCase();\n this._metadata[name] = entry.textContent.trim();\n }\n }\n }\n }\n }, {\n key: 'get',\n value: function get(name) {\n return this._metadata[name] || null;\n }\n }, {\n key: 'getAll',\n value: function getAll() {\n return this._metadata;\n }\n }, {\n key: 'has',\n value: function has(name) {\n return typeof this._metadata[name] !== 'undefined';\n }\n }]);\n\n return Metadata;\n }();\n\n exports.Metadata = Metadata;\n /***/\n },\n /* 142 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _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 function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof3(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof3(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10\n };\n\n function isWhitespace(s, index) {\n var ch = s[index];\n return ch === ' ' || ch === '\\n' || ch === '\\r' || ch === '\\t';\n }\n\n function isWhitespaceString(s) {\n for (var i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n\n return true;\n }\n\n var XMLParserBase = function () {\n function XMLParserBase() {\n _classCallCheck(this, XMLParserBase);\n }\n\n _createClass(XMLParserBase, [{\n key: '_resolveEntities',\n value: function _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, function (all, entity) {\n if (entity.substring(0, 2) === '#x') {\n return String.fromCharCode(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === '#') {\n return String.fromCharCode(parseInt(entity.substring(1), 10));\n }\n\n switch (entity) {\n case 'lt':\n return '<';\n\n case 'gt':\n return '>';\n\n case 'amp':\n return '&';\n\n case 'quot':\n return '\\\"';\n }\n\n return this.onResolveEntity(entity);\n });\n }\n }, {\n key: '_parseContent',\n value: function _parseContent(s, start) {\n var pos = start,\n name = void 0,\n attributes = [];\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n\n name = s.substring(start, pos);\n skipWs();\n\n while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') {\n skipWs();\n var attrName = '',\n attrValue = '';\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {\n attrName += s[pos];\n ++pos;\n }\n\n skipWs();\n\n if (s[pos] !== '=') {\n return null;\n }\n\n ++pos;\n skipWs();\n var attrEndChar = s[pos];\n\n if (attrEndChar !== '\\\"' && attrEndChar !== '\\'') {\n return null;\n }\n\n var attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n if (attrEndIndex < 0) {\n return null;\n }\n\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue)\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n\n return {\n name: name,\n attributes: attributes,\n parsed: pos - start\n };\n }\n }, {\n key: '_parseProcessingInstruction',\n value: function _parseProcessingInstruction(s, start) {\n var pos = start,\n name = void 0,\n value = void 0;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n\n name = s.substring(start, pos);\n skipWs();\n var attrStart = pos;\n\n while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {\n ++pos;\n }\n\n value = s.substring(attrStart, pos);\n return {\n name: name,\n value: value,\n parsed: pos - start\n };\n }\n }, {\n key: 'parseXml',\n value: function parseXml(s) {\n var i = 0;\n\n while (i < s.length) {\n var ch = s[i];\n var j = i;\n\n if (ch === '<') {\n ++j;\n var ch2 = s[j];\n var q = void 0;\n\n switch (ch2) {\n case '/':\n ++j;\n q = s.indexOf('>', j);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n\n case '?':\n ++j;\n\n var pi = this._parseProcessingInstruction(s, j);\n\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n\n case '!':\n if (s.substring(j + 1, j + 3) === '--') {\n q = s.indexOf('-->', j + 3);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === '[CDATA[') {\n q = s.indexOf(']]>', j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {\n var q2 = s.indexOf('[', j + 8);\n var complexDoctype = false;\n q = s.indexOf('>', j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n if (q2 > 0 && q > q2) {\n q = s.indexOf(']>', j + 8);\n\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n\n complexDoctype = true;\n }\n\n var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n break;\n\n default:\n var content = this._parseContent(s, j);\n\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n\n var isClosed = false;\n\n if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') {\n isClosed = true;\n } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== '<') {\n j++;\n }\n\n var text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n\n i = j;\n }\n }\n }, {\n key: 'onResolveEntity',\n value: function onResolveEntity(name) {\n return '&' + name + ';';\n }\n }, {\n key: 'onPi',\n value: function onPi(name, value) {}\n }, {\n key: 'onComment',\n value: function onComment(text) {}\n }, {\n key: 'onCdata',\n value: function onCdata(text) {}\n }, {\n key: 'onDoctype',\n value: function onDoctype(doctypeContent) {}\n }, {\n key: 'onText',\n value: function onText(text) {}\n }, {\n key: 'onBeginElement',\n value: function onBeginElement(name, attributes, isEmpty) {}\n }, {\n key: 'onEndElement',\n value: function onEndElement(name) {}\n }, {\n key: 'onError',\n value: function onError(code) {}\n }]);\n\n return XMLParserBase;\n }();\n\n var SimpleDOMNode = function () {\n function SimpleDOMNode(nodeName, nodeValue) {\n _classCallCheck(this, SimpleDOMNode);\n\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n Object.defineProperty(this, 'parentNode', {\n value: null,\n writable: true\n });\n }\n\n _createClass(SimpleDOMNode, [{\n key: 'hasChildNodes',\n value: function hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n }, {\n key: 'firstChild',\n get: function get() {\n return this.childNodes[0];\n }\n }, {\n key: 'nextSibling',\n get: function get() {\n var index = this.parentNode.childNodes.indexOf(this);\n return this.parentNode.childNodes[index + 1];\n }\n }, {\n key: 'textContent',\n get: function get() {\n if (!this.childNodes) {\n return this.nodeValue || '';\n }\n\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join('');\n }\n }]);\n\n return SimpleDOMNode;\n }();\n\n var SimpleXMLParser = function (_XMLParserBase) {\n _inherits(SimpleXMLParser, _XMLParserBase);\n\n function SimpleXMLParser() {\n _classCallCheck(this, SimpleXMLParser);\n\n var _this = _possibleConstructorReturn(this, (SimpleXMLParser.__proto__ || Object.getPrototypeOf(SimpleXMLParser)).call(this));\n\n _this._currentFragment = null;\n _this._stack = null;\n _this._errorCode = XMLParserErrorCode.NoError;\n return _this;\n }\n\n _createClass(SimpleXMLParser, [{\n key: 'parseFromString',\n value: function parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n var _currentFragment = _slicedToArray(this._currentFragment, 1),\n documentElement = _currentFragment[0];\n\n if (!documentElement) {\n return undefined;\n }\n\n return {\n documentElement: documentElement\n };\n }\n }, {\n key: 'onResolveEntity',\n value: function onResolveEntity(name) {\n switch (name) {\n case 'apos':\n return '\\'';\n }\n\n return _get(SimpleXMLParser.prototype.__proto__ || Object.getPrototypeOf(SimpleXMLParser.prototype), 'onResolveEntity', this).call(this, name);\n }\n }, {\n key: 'onText',\n value: function onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n\n var node = new SimpleDOMNode('#text', text);\n\n this._currentFragment.push(node);\n }\n }, {\n key: 'onCdata',\n value: function onCdata(text) {\n var node = new SimpleDOMNode('#text', text);\n\n this._currentFragment.push(node);\n }\n }, {\n key: 'onBeginElement',\n value: function onBeginElement(name, attributes, isEmpty) {\n var node = new SimpleDOMNode(name);\n node.childNodes = [];\n\n this._currentFragment.push(node);\n\n if (isEmpty) {\n return;\n }\n\n this._stack.push(this._currentFragment);\n\n this._currentFragment = node.childNodes;\n }\n }, {\n key: 'onEndElement',\n value: function onEndElement(name) {\n this._currentFragment = this._stack.pop();\n var lastElement = this._currentFragment[this._currentFragment.length - 1];\n\n for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n }, {\n key: 'onError',\n value: function onError(code) {\n this._errorCode = code;\n }\n }]);\n\n return SimpleXMLParser;\n }(XMLParserBase);\n\n exports.SimpleXMLParser = SimpleXMLParser;\n /***/\n },\n /* 143 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFDataTransportStream = undefined;\n\n var _regenerator = __w_pdfjs_require__(137);\n\n var _regenerator2 = _interopRequireDefault(_regenerator);\n\n var _util = __w_pdfjs_require__(1);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _asyncToGenerator(fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n }\n\n var PDFDataTransportStream = function PDFDataTransportStreamClosure() {\n function PDFDataTransportStream(params, pdfDataRangeTransport) {\n var _this = this;\n\n (0, _util.assert)(pdfDataRangeTransport);\n this._queuedChunks = [];\n var initialData = params.initialData;\n\n if (initialData && initialData.length > 0) {\n var buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {\n _this._onReceiveData({\n begin: begin,\n chunk: chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener(function (loaded) {\n _this._onProgress({\n loaded: loaded\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {\n _this._onReceiveData({\n chunk: chunk\n });\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n PDFDataTransportStream.prototype = {\n _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {\n var buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n var found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found);\n }\n },\n _onProgress: function PDFDataTransportStream_onDataProgress(evt) {\n if (this._rangeReaders.length > 0) {\n var firstReader = this._rangeReaders[0];\n\n if (firstReader.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n }\n },\n _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) {\n var i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n },\n getFullReader: function PDFDataTransportStream_getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n var queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks);\n },\n getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {\n var reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n },\n cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeReaders.slice(0);\n\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n\n this._pdfDataRangeTransport.abort();\n }\n };\n\n function PDFDataTransportStreamReader(stream, queuedChunks) {\n this._stream = stream;\n this._done = false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n PDFDataTransportStreamReader.prototype = {\n _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n return;\n }\n\n this._queuedChunks.push(chunk);\n },\n\n get headersReady() {\n return this._headersReady;\n },\n\n get filename() {\n return this._filename;\n },\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n },\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n },\n\n get contentLength() {\n return this._stream._contentLength;\n },\n\n read: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(this._queuedChunks.length > 0)) {\n _context.next = 3;\n break;\n }\n\n chunk = this._queuedChunks.shift();\n return _context.abrupt('return', {\n value: chunk,\n done: false\n });\n\n case 3:\n if (!this._done) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 5:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context.abrupt('return', requestCapability.promise);\n\n case 8:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _ref.apply(this, arguments);\n }\n\n return read;\n }(),\n cancel: function PDFDataTransportStreamReader_cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n };\n\n function PDFDataTransportStreamRangeReader(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n PDFDataTransportStreamRangeReader.prototype = {\n _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n var requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n },\n\n get isStreamingSupported() {\n return false;\n },\n\n read: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!this._queuedChunk) {\n _context2.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n this._queuedChunk = null;\n return _context2.abrupt('return', {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context2.abrupt('return', requestCapability.promise);\n\n case 9:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _ref2.apply(this, arguments);\n }\n\n return read;\n }(),\n cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._stream._removeRangeReader(this);\n }\n };\n return PDFDataTransportStream;\n }();\n\n exports.PDFDataTransportStream = PDFDataTransportStream;\n /***/\n },\n /* 144 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.WebGLContext = undefined;\n\n var _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 var _util = __w_pdfjs_require__(1);\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var WebGLContext = function () {\n function WebGLContext(_ref) {\n var _ref$enable = _ref.enable,\n enable = _ref$enable === undefined ? false : _ref$enable;\n\n _classCallCheck(this, WebGLContext);\n\n this._enabled = enable === true;\n }\n\n _createClass(WebGLContext, [{\n key: 'composeSMask',\n value: function composeSMask(_ref2) {\n var layer = _ref2.layer,\n mask = _ref2.mask,\n properties = _ref2.properties;\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n }, {\n key: 'drawFigures',\n value: function drawFigures(_ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n backgroundColor = _ref3.backgroundColor,\n figures = _ref3.figures,\n context = _ref3.context;\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);\n }\n }, {\n key: 'clear',\n value: function clear() {\n WebGLUtils.cleanup();\n }\n }, {\n key: 'isEnabled',\n get: function get() {\n var enabled = this._enabled;\n\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n\n return (0, _util.shadow)(this, 'isEnabled', enabled);\n }\n }]);\n\n return WebGLContext;\n }();\n\n var WebGLUtils = function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error('Error during shader compilation: ' + errorMsg);\n }\n\n return shader;\n }\n\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error('Error during program linking: ' + errorMsg);\n }\n\n return program;\n }\n\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n\n var currentGL, currentCanvas;\n\n function generateGL() {\n if (currentGL) {\n return;\n }\n\n currentCanvas = document.createElement('canvas');\n currentGL = currentCanvas.getContext('webgl', {\n premultipliedalpha: false\n });\n }\n\n var smaskVertexShaderCode = '\\\n attribute vec2 a_position; \\\n attribute vec2 a_texCoord; \\\n \\\n uniform vec2 u_resolution; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_texCoord = a_texCoord; \\\n } ';\n var smaskFragmentShaderCode = '\\\n precision mediump float; \\\n \\\n uniform vec4 u_backdrop; \\\n uniform int u_subtype; \\\n uniform sampler2D u_image; \\\n uniform sampler2D u_mask; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec4 imageColor = texture2D(u_image, v_texCoord); \\\n vec4 maskColor = texture2D(u_mask, v_texCoord); \\\n if (u_backdrop.a > 0.0) { \\\n maskColor.rgb = maskColor.rgb * maskColor.a + \\\n u_backdrop.rgb * (1.0 - maskColor.a); \\\n } \\\n float lum; \\\n if (u_subtype == 0) { \\\n lum = maskColor.a; \\\n } else { \\\n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \\\n maskColor.b * 0.11; \\\n } \\\n imageColor.a *= lum; \\\n imageColor.rgb *= imageColor.a; \\\n gl_FragColor = imageColor; \\\n } ';\n var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');\n cache.positionLocation = gl.getAttribLocation(program, 'a_position');\n cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');\n cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');\n var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');\n var texLayerLocation = gl.getUniformLocation(program, 'u_image');\n var texMaskLocation = gl.getUniformLocation(program, 'u_mask');\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n\n var cache = smaskCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n\n if (properties.backdrop) {\n gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n\n gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0);\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n gl.clearColor(0, 0, 0, 0);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n gl.flush();\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n return canvas;\n }\n\n var figuresVertexShaderCode = '\\\n attribute vec2 a_position; \\\n attribute vec3 a_color; \\\n \\\n uniform vec2 u_resolution; \\\n uniform vec2 u_scale; \\\n uniform vec2 u_offset; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n vec2 position = (a_position + u_offset) * u_scale; \\\n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_color = vec4(a_color / 255.0, 1.0); \\\n } ';\n var figuresFragmentShaderCode = '\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } ';\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');\n cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');\n cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');\n cache.positionLocation = gl.getAttribLocation(program, 'a_position');\n cache.colorLocation = gl.getAttribLocation(program, 'a_color');\n figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n\n var cache = figuresCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n var count = 0;\n var i, ii, rows;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case 'lattice':\n rows = figures[i].coords.length / figures[i].verticesPerRow | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n\n case 'triangles':\n count += figures[i].coords.length;\n break;\n }\n }\n\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords,\n colorsMap = context.colors;\n var pIndex = 0,\n cIndex = 0;\n\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n\n switch (figure.type) {\n case 'lattice':\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n\n for (var col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n\n break;\n\n case 'triangles':\n for (var j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n\n break;\n }\n }\n\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n\n gl.clear(gl.COLOR_BUFFER_BIT);\n var coordsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n var colorsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.colorLocation);\n gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n gl.drawArrays(gl.TRIANGLES, 0, count);\n gl.flush();\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n return canvas;\n }\n\n return {\n tryInitGL: function tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n\n return false;\n },\n composeSMask: composeSMask,\n drawFigures: drawFigures,\n cleanup: function cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n\n smaskCache = null;\n figuresCache = null;\n }\n };\n }();\n\n exports.WebGLContext = WebGLContext;\n /***/\n },\n /* 145 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.renderTextLayer = undefined;\n\n var _util = __w_pdfjs_require__(1);\n\n var _global_scope = __w_pdfjs_require__(3);\n\n var _global_scope2 = _interopRequireDefault(_global_scope);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var renderTextLayer = function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';'];\n\n function appendText(task, geom, styles) {\n var textDiv = document.createElement('div');\n var textDivProperties = {\n style: null,\n angle: 0,\n canvasWidth: 0,\n isWhitespace: false,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n };\n\n task._textDivs.push(textDiv);\n\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n return;\n }\n\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n\n var left;\n var top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n styleBuf[1] = left;\n styleBuf[3] = top;\n styleBuf[5] = fontHeight;\n styleBuf[7] = style.fontFamily;\n textDivProperties.style = styleBuf.join('');\n textDiv.setAttribute('style', textDivProperties.style);\n textDiv.textContent = geom.str;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n if (geom.str.length > 1) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m: m\n });\n }\n }\n\n function render(task) {\n if (task._canceled) {\n return;\n }\n\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n }\n\n function expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n\n var divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n points.forEach(function (p, i) {\n var t = _util.Util.applyTransform(p, m);\n\n ts[i + 0] = c && (e.left - t[0]) / c;\n ts[i + 4] = s && (e.top - t[1]) / s;\n ts[i + 8] = c && (e.right - t[0]) / c;\n ts[i + 12] = s && (e.bottom - t[1]) / s;\n ts[i + 16] = s && (e.left - t[0]) / -s;\n ts[i + 20] = c && (e.top - t[1]) / c;\n ts[i + 24] = s && (e.right - t[0]) / -s;\n ts[i + 28] = c && (e.bottom - t[1]) / c;\n ts[i + 32] = c && (e.left - t[0]) / -c;\n ts[i + 36] = s && (e.top - t[1]) / -s;\n ts[i + 40] = c && (e.right - t[0]) / -c;\n ts[i + 44] = s && (e.bottom - t[1]) / -s;\n ts[i + 48] = s && (e.left - t[0]) / s;\n ts[i + 52] = c && (e.top - t[1]) / -c;\n ts[i + 56] = s && (e.right - t[0]) / s;\n ts[i + 60] = c && (e.bottom - t[1]) / -c;\n });\n\n var findPositiveMin = function findPositiveMin(ts, offset, count) {\n var result = 0;\n\n for (var i = 0; i < count; i++) {\n var t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n };\n\n var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n }\n\n function expandBounds(width, height, boxes) {\n var bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n var expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n });\n boxes.map(function (box, i) {\n var e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n });\n return expanded;\n }\n\n function expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n bounds.forEach(function (boundary) {\n var i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n var j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n var changedHorizon = [],\n lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n var used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n function TextLayerRenderTask(_ref) {\n var textContent = _ref.textContent,\n textContentStream = _ref.textContentStream,\n container = _ref.container,\n viewport = _ref.viewport,\n textDivs = _ref.textDivs,\n textContentItemsStr = _ref.textContentItemsStr,\n enhanceTextSelection = _ref.enhanceTextSelection;\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!(_global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled);\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n }\n\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n if (this._reader) {\n this._reader.cancel(new _util.AbortException('text layer task cancelled'));\n\n this._reader = null;\n }\n\n this._canceled = true;\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject('canceled');\n },\n _processItems: function _processItems(items, styleCache) {\n for (var i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache);\n }\n },\n _layoutText: function _layoutText(textDiv) {\n var textLayerFrag = this._container;\n\n var textDivProperties = this._textDivProperties.get(textDiv);\n\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n var fontSize = textDiv.style.fontSize;\n var fontFamily = textDiv.style.fontFamily;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = fontSize + ' ' + fontFamily;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n var width = this._layoutTextCtx.measureText(textDiv.textContent).width;\n\n var transform = '';\n\n if (textDivProperties.canvasWidth !== 0 && width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = 'scaleX(' + textDivProperties.scale + ')';\n }\n\n if (textDivProperties.angle !== 0) {\n transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform;\n }\n\n if (transform !== '') {\n textDivProperties.originalTransform = transform;\n textDiv.style.transform = transform;\n }\n\n this._textDivProperties.set(textDiv, textDivProperties);\n\n textLayerFrag.appendChild(textDiv);\n },\n _render: function TextLayer_render(timeout) {\n var _this = this;\n\n var capability = (0, _util.createPromiseCapability)();\n var styleCache = Object.create(null);\n var canvas = document.createElement('canvas');\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext('2d', {\n alpha: false\n });\n\n if (this._textContent) {\n var textItems = this._textContent.items;\n var textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n var pump = function pump() {\n _this._reader.read().then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n _this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + ' parameters specified.');\n }\n\n capability.promise.then(function () {\n styleCache = null;\n\n if (!timeout) {\n render(_this);\n } else {\n _this._renderTimer = setTimeout(function () {\n render(_this);\n _this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n var div = this._textDivs[i];\n\n var divProperties = this._textDivProperties.get(div);\n\n if (divProperties.isWhitespace) {\n continue;\n }\n\n if (expandDivs) {\n var transform = '',\n padding = '';\n\n if (divProperties.scale !== 1) {\n transform = 'scaleX(' + divProperties.scale + ')';\n }\n\n if (divProperties.angle !== 0) {\n transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;\n }\n\n if (divProperties.paddingLeft !== 0) {\n padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;';\n transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)';\n }\n\n if (divProperties.paddingTop !== 0) {\n padding += ' padding-top: ' + divProperties.paddingTop + 'px;';\n transform += ' translateY(' + -divProperties.paddingTop + 'px)';\n }\n\n if (divProperties.paddingRight !== 0) {\n padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;';\n }\n\n if (divProperties.paddingBottom !== 0) {\n padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;';\n }\n\n if (padding !== '') {\n div.setAttribute('style', divProperties.style + padding);\n }\n\n if (transform !== '') {\n div.style.transform = transform;\n }\n } else {\n div.style.padding = 0;\n div.style.transform = divProperties.originalTransform || '';\n }\n }\n }\n };\n\n function renderTextLayer(renderParameters) {\n var task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n }\n\n return renderTextLayer;\n }();\n\n exports.renderTextLayer = renderTextLayer;\n /***/\n },\n /* 146 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.AnnotationLayer = undefined;\n\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n };\n\n var _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 var _dom_utils = __w_pdfjs_require__(130);\n\n var _util = __w_pdfjs_require__(1);\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof3(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof3(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var AnnotationElementFactory = function () {\n function AnnotationElementFactory() {\n _classCallCheck(this, AnnotationElementFactory);\n }\n\n _createClass(AnnotationElementFactory, null, [{\n key: 'create',\n value: function create(parameters) {\n var subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n var fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotationElement(parameters);\n\n case 'Btn':\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case 'Ch':\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n }]);\n\n return AnnotationElementFactory;\n }();\n\n var AnnotationElement = function () {\n function AnnotationElement(parameters) {\n var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, AnnotationElement);\n\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n }\n\n _createClass(AnnotationElement, [{\n key: '_createContainer',\n value: function _createContainer() {\n var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var data = this.data,\n page = this.page,\n viewport = this.viewport;\n var container = document.createElement('section');\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n container.setAttribute('data-annotation-id', data.id);\n\n var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n container.style.transform = 'matrix(' + viewport.transform.join(',') + ')';\n container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px';\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = data.borderStyle.width + 'px';\n\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n var horizontalRadius = data.borderStyle.horizontalCornerRadius;\n var verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n var radius = horizontalRadius + 'px / ' + verticalRadius + 'px';\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = 'solid';\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = 'dashed';\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)('Unimplemented border style: beveled');\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)('Unimplemented border style: inset');\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = 'solid';\n break;\n\n default:\n break;\n }\n\n if (data.color) {\n container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = rect[0] + 'px';\n container.style.top = rect[1] + 'px';\n container.style.width = width + 'px';\n container.style.height = height + 'px';\n return container;\n }\n }, {\n key: '_createPopup',\n value: function _createPopup(container, trigger, data) {\n if (!trigger) {\n trigger = document.createElement('div');\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n\n var popupElement = new PopupElement({\n container: container,\n trigger: trigger,\n color: data.color,\n title: data.title,\n contents: data.contents,\n hideWrapper: true\n });\n var popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n }, {\n key: 'render',\n value: function render() {\n (0, _util.unreachable)('Abstract method `AnnotationElement.render` called');\n }\n }]);\n\n return AnnotationElement;\n }();\n\n var LinkAnnotationElement = function (_AnnotationElement) {\n _inherits(LinkAnnotationElement, _AnnotationElement);\n\n function LinkAnnotationElement(parameters) {\n _classCallCheck(this, LinkAnnotationElement);\n\n var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);\n return _possibleConstructorReturn(this, (LinkAnnotationElement.__proto__ || Object.getPrototypeOf(LinkAnnotationElement)).call(this, parameters, isRenderable));\n }\n\n _createClass(LinkAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'linkAnnotation';\n var data = this.data,\n linkService = this.linkService;\n var link = document.createElement('a');\n (0, _dom_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel\n });\n\n if (!data.url) {\n if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n }, {\n key: '_bindLink',\n value: function _bindLink(link, destination) {\n var _this2 = this;\n\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = function () {\n if (destination) {\n _this2.linkService.navigateTo(destination);\n }\n\n return false;\n };\n\n if (destination) {\n link.className = 'internalLink';\n }\n }\n }, {\n key: '_bindNamedAction',\n value: function _bindNamedAction(link, action) {\n var _this3 = this;\n\n link.href = this.linkService.getAnchorUrl('');\n\n link.onclick = function () {\n _this3.linkService.executeNamedAction(action);\n\n return false;\n };\n\n link.className = 'internalLink';\n }\n }]);\n\n return LinkAnnotationElement;\n }(AnnotationElement);\n\n var TextAnnotationElement = function (_AnnotationElement2) {\n _inherits(TextAnnotationElement, _AnnotationElement2);\n\n function TextAnnotationElement(parameters) {\n _classCallCheck(this, TextAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (TextAnnotationElement.__proto__ || Object.getPrototypeOf(TextAnnotationElement)).call(this, parameters, isRenderable));\n }\n\n _createClass(TextAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'textAnnotation';\n var image = document.createElement('img');\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg';\n image.alt = '[{{type}} Annotation]';\n image.dataset.l10nId = 'text_annotation_type';\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n\n this.container.appendChild(image);\n return this.container;\n }\n }]);\n\n return TextAnnotationElement;\n }(AnnotationElement);\n\n var WidgetAnnotationElement = function (_AnnotationElement3) {\n _inherits(WidgetAnnotationElement, _AnnotationElement3);\n\n function WidgetAnnotationElement() {\n _classCallCheck(this, WidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (WidgetAnnotationElement.__proto__ || Object.getPrototypeOf(WidgetAnnotationElement)).apply(this, arguments));\n }\n\n _createClass(WidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n return this.container;\n }\n }]);\n\n return WidgetAnnotationElement;\n }(AnnotationElement);\n\n var TextWidgetAnnotationElement = function (_WidgetAnnotationElem) {\n _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);\n\n function TextWidgetAnnotationElement(parameters) {\n _classCallCheck(this, TextWidgetAnnotationElement);\n\n var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n return _possibleConstructorReturn(this, (TextWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(TextWidgetAnnotationElement)).call(this, parameters, isRenderable));\n }\n\n _createClass(TextWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n var TEXT_ALIGNMENT = ['left', 'center', 'right'];\n this.container.className = 'textWidgetAnnotation';\n var element = null;\n\n if (this.renderInteractiveForms) {\n if (this.data.multiLine) {\n element = document.createElement('textarea');\n element.textContent = this.data.fieldValue;\n } else {\n element = document.createElement('input');\n element.type = 'text';\n element.setAttribute('value', this.data.fieldValue);\n }\n\n element.disabled = this.data.readOnly;\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n var fieldWidth = this.data.rect[2] - this.data.rect[0];\n var combWidth = fieldWidth / this.data.maxLen;\n element.classList.add('comb');\n element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)';\n }\n } else {\n element = document.createElement('div');\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = 'middle';\n element.style.display = 'table-cell';\n var font = null;\n\n if (this.data.fontRefName) {\n font = this.page.commonObjs.getData(this.data.fontRefName);\n }\n\n this._setTextStyle(element, font);\n }\n\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n }, {\n key: '_setTextStyle',\n value: function _setTextStyle(element, font) {\n var style = element.style;\n style.fontSize = this.data.fontSize + 'px';\n style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr';\n\n if (!font) {\n return;\n }\n\n style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal';\n style.fontStyle = font.italic ? 'italic' : 'normal';\n var fontFamily = font.loadedName ? '\"' + font.loadedName + '\", ' : '';\n var fallbackName = font.fallbackName || 'Helvetica, sans-serif';\n style.fontFamily = fontFamily + fallbackName;\n }\n }]);\n\n return TextWidgetAnnotationElement;\n }(WidgetAnnotationElement);\n\n var CheckboxWidgetAnnotationElement = function (_WidgetAnnotationElem2) {\n _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);\n\n function CheckboxWidgetAnnotationElement(parameters) {\n _classCallCheck(this, CheckboxWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (CheckboxWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(CheckboxWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(CheckboxWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'buttonWidgetAnnotation checkBox';\n var element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'checkbox';\n\n if (this.data.fieldValue && this.data.fieldValue !== 'Off') {\n element.setAttribute('checked', true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return CheckboxWidgetAnnotationElement;\n }(WidgetAnnotationElement);\n\n var RadioButtonWidgetAnnotationElement = function (_WidgetAnnotationElem3) {\n _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);\n\n function RadioButtonWidgetAnnotationElement(parameters) {\n _classCallCheck(this, RadioButtonWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (RadioButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(RadioButtonWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(RadioButtonWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'buttonWidgetAnnotation radioButton';\n var element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'radio';\n element.name = this.data.fieldName;\n\n if (this.data.fieldValue === this.data.buttonValue) {\n element.setAttribute('checked', true);\n }\n\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return RadioButtonWidgetAnnotationElement;\n }(WidgetAnnotationElement);\n\n var PushButtonWidgetAnnotationElement = function (_LinkAnnotationElemen) {\n _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);\n\n function PushButtonWidgetAnnotationElement() {\n _classCallCheck(this, PushButtonWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (PushButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement)).apply(this, arguments));\n }\n\n _createClass(PushButtonWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n var container = _get(PushButtonWidgetAnnotationElement.prototype.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), 'render', this).call(this);\n\n container.className = 'buttonWidgetAnnotation pushButton';\n return container;\n }\n }]);\n\n return PushButtonWidgetAnnotationElement;\n }(LinkAnnotationElement);\n\n var ChoiceWidgetAnnotationElement = function (_WidgetAnnotationElem4) {\n _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);\n\n function ChoiceWidgetAnnotationElement(parameters) {\n _classCallCheck(this, ChoiceWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (ChoiceWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(ChoiceWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(ChoiceWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'choiceWidgetAnnotation';\n var selectElement = document.createElement('select');\n selectElement.disabled = this.data.readOnly;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n for (var i = 0, ii = this.data.options.length; i < ii; i++) {\n var option = this.data.options[i];\n var optionElement = document.createElement('option');\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (this.data.fieldValue.includes(option.displayValue)) {\n optionElement.setAttribute('selected', true);\n }\n\n selectElement.appendChild(optionElement);\n }\n\n this.container.appendChild(selectElement);\n return this.container;\n }\n }]);\n\n return ChoiceWidgetAnnotationElement;\n }(WidgetAnnotationElement);\n\n var PopupAnnotationElement = function (_AnnotationElement4) {\n _inherits(PopupAnnotationElement, _AnnotationElement4);\n\n function PopupAnnotationElement(parameters) {\n _classCallCheck(this, PopupAnnotationElement);\n\n var isRenderable = !!(parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (PopupAnnotationElement.__proto__ || Object.getPrototypeOf(PopupAnnotationElement)).call(this, parameters, isRenderable));\n }\n\n _createClass(PopupAnnotationElement, [{\n key: 'render',\n value: function render() {\n var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink'];\n this.container.className = 'popupAnnotation';\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n var selector = '[data-annotation-id=\"' + this.data.parentId + '\"]';\n var parentElement = this.layer.querySelector(selector);\n\n if (!parentElement) {\n return this.container;\n }\n\n var popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n contents: this.data.contents\n });\n var parentLeft = parseFloat(parentElement.style.left);\n var parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top;\n this.container.style.left = parentLeft + parentWidth + 'px';\n this.container.appendChild(popup.render());\n return this.container;\n }\n }]);\n\n return PopupAnnotationElement;\n }(AnnotationElement);\n\n var PopupElement = function () {\n function PopupElement(parameters) {\n _classCallCheck(this, PopupElement);\n\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.title = parameters.title;\n this.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n _createClass(PopupElement, [{\n key: 'render',\n value: function render() {\n var BACKGROUND_ENLIGHT = 0.7;\n var wrapper = document.createElement('div');\n wrapper.className = 'popupWrapper';\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.setAttribute('hidden', true);\n var popup = document.createElement('div');\n popup.className = 'popup';\n var color = this.color;\n\n if (color) {\n var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);\n }\n\n var contents = this._formatContents(this.contents);\n\n var title = document.createElement('h1');\n title.textContent = this.title;\n this.trigger.addEventListener('click', this._toggle.bind(this));\n this.trigger.addEventListener('mouseover', this._show.bind(this, false));\n this.trigger.addEventListener('mouseout', this._hide.bind(this, false));\n popup.addEventListener('click', this._hide.bind(this, true));\n popup.appendChild(title);\n popup.appendChild(contents);\n wrapper.appendChild(popup);\n return wrapper;\n }\n }, {\n key: '_formatContents',\n value: function _formatContents(contents) {\n var p = document.createElement('p');\n var lines = contents.split(/(?:\\r\\n?|\\n)/);\n\n for (var i = 0, ii = lines.length; i < ii; ++i) {\n var line = lines[i];\n p.appendChild(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.appendChild(document.createElement('br'));\n }\n }\n\n return p;\n }\n }, {\n key: '_toggle',\n value: function _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n }, {\n key: '_show',\n value: function _show() {\n var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hasAttribute('hidden')) {\n this.hideElement.removeAttribute('hidden');\n this.container.style.zIndex += 1;\n }\n }\n }, {\n key: '_hide',\n value: function _hide() {\n var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hasAttribute('hidden') && !this.pinned) {\n this.hideElement.setAttribute('hidden', true);\n this.container.style.zIndex -= 1;\n }\n }\n }]);\n\n return PopupElement;\n }();\n\n var LineAnnotationElement = function (_AnnotationElement5) {\n _inherits(LineAnnotationElement, _AnnotationElement5);\n\n function LineAnnotationElement(parameters) {\n _classCallCheck(this, LineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (LineAnnotationElement.__proto__ || Object.getPrototypeOf(LineAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(LineAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'lineAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var line = this.svgFactory.createElement('svg:line');\n line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute('stroke-width', data.borderStyle.width);\n line.setAttribute('stroke', 'transparent');\n svg.appendChild(line);\n this.container.append(svg);\n\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n }]);\n\n return LineAnnotationElement;\n }(AnnotationElement);\n\n var SquareAnnotationElement = function (_AnnotationElement6) {\n _inherits(SquareAnnotationElement, _AnnotationElement6);\n\n function SquareAnnotationElement(parameters) {\n _classCallCheck(this, SquareAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (SquareAnnotationElement.__proto__ || Object.getPrototypeOf(SquareAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(SquareAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'squareAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var square = this.svgFactory.createElement('svg:rect');\n square.setAttribute('x', borderWidth / 2);\n square.setAttribute('y', borderWidth / 2);\n square.setAttribute('width', width - borderWidth);\n square.setAttribute('height', height - borderWidth);\n square.setAttribute('stroke-width', borderWidth);\n square.setAttribute('stroke', 'transparent');\n square.setAttribute('fill', 'none');\n svg.appendChild(square);\n this.container.append(svg);\n\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n }]);\n\n return SquareAnnotationElement;\n }(AnnotationElement);\n\n var CircleAnnotationElement = function (_AnnotationElement7) {\n _inherits(CircleAnnotationElement, _AnnotationElement7);\n\n function CircleAnnotationElement(parameters) {\n _classCallCheck(this, CircleAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (CircleAnnotationElement.__proto__ || Object.getPrototypeOf(CircleAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(CircleAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'circleAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var circle = this.svgFactory.createElement('svg:ellipse');\n circle.setAttribute('cx', width / 2);\n circle.setAttribute('cy', height / 2);\n circle.setAttribute('rx', width / 2 - borderWidth / 2);\n circle.setAttribute('ry', height / 2 - borderWidth / 2);\n circle.setAttribute('stroke-width', borderWidth);\n circle.setAttribute('stroke', 'transparent');\n circle.setAttribute('fill', 'none');\n svg.appendChild(circle);\n this.container.append(svg);\n\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n }]);\n\n return CircleAnnotationElement;\n }(AnnotationElement);\n\n var PolylineAnnotationElement = function (_AnnotationElement8) {\n _inherits(PolylineAnnotationElement, _AnnotationElement8);\n\n function PolylineAnnotationElement(parameters) {\n _classCallCheck(this, PolylineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n\n var _this15 = _possibleConstructorReturn(this, (PolylineAnnotationElement.__proto__ || Object.getPrototypeOf(PolylineAnnotationElement)).call(this, parameters, isRenderable, true));\n\n _this15.containerClassName = 'polylineAnnotation';\n _this15.svgElementName = 'svg:polyline';\n return _this15;\n }\n\n _createClass(PolylineAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var vertices = data.vertices;\n var points = [];\n\n for (var i = 0, ii = vertices.length; i < ii; i++) {\n var x = vertices[i].x - data.rect[0];\n var y = data.rect[3] - vertices[i].y;\n points.push(x + ',' + y);\n }\n\n points = points.join(' ');\n var borderWidth = data.borderStyle.width;\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', borderWidth);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n svg.appendChild(polyline);\n this.container.append(svg);\n\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n }]);\n\n return PolylineAnnotationElement;\n }(AnnotationElement);\n\n var PolygonAnnotationElement = function (_PolylineAnnotationEl) {\n _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);\n\n function PolygonAnnotationElement(parameters) {\n _classCallCheck(this, PolygonAnnotationElement);\n\n var _this16 = _possibleConstructorReturn(this, (PolygonAnnotationElement.__proto__ || Object.getPrototypeOf(PolygonAnnotationElement)).call(this, parameters));\n\n _this16.containerClassName = 'polygonAnnotation';\n _this16.svgElementName = 'svg:polygon';\n return _this16;\n }\n\n return PolygonAnnotationElement;\n }(PolylineAnnotationElement);\n\n var InkAnnotationElement = function (_AnnotationElement9) {\n _inherits(InkAnnotationElement, _AnnotationElement9);\n\n function InkAnnotationElement(parameters) {\n _classCallCheck(this, InkAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n\n var _this17 = _possibleConstructorReturn(this, (InkAnnotationElement.__proto__ || Object.getPrototypeOf(InkAnnotationElement)).call(this, parameters, isRenderable, true));\n\n _this17.containerClassName = 'inkAnnotation';\n _this17.svgElementName = 'svg:polyline';\n return _this17;\n }\n\n _createClass(InkAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var inkLists = data.inkLists;\n\n for (var i = 0, ii = inkLists.length; i < ii; i++) {\n var inkList = inkLists[i];\n var points = [];\n\n for (var j = 0, jj = inkList.length; j < jj; j++) {\n var x = inkList[j].x - data.rect[0];\n var y = data.rect[3] - inkList[j].y;\n points.push(x + ',' + y);\n }\n\n points = points.join(' ');\n var borderWidth = data.borderStyle.width;\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', borderWidth);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n\n this._createPopup(this.container, polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n }]);\n\n return InkAnnotationElement;\n }(AnnotationElement);\n\n var HighlightAnnotationElement = function (_AnnotationElement10) {\n _inherits(HighlightAnnotationElement, _AnnotationElement10);\n\n function HighlightAnnotationElement(parameters) {\n _classCallCheck(this, HighlightAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (HighlightAnnotationElement.__proto__ || Object.getPrototypeOf(HighlightAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(HighlightAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'highlightAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return HighlightAnnotationElement;\n }(AnnotationElement);\n\n var UnderlineAnnotationElement = function (_AnnotationElement11) {\n _inherits(UnderlineAnnotationElement, _AnnotationElement11);\n\n function UnderlineAnnotationElement(parameters) {\n _classCallCheck(this, UnderlineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (UnderlineAnnotationElement.__proto__ || Object.getPrototypeOf(UnderlineAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(UnderlineAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'underlineAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return UnderlineAnnotationElement;\n }(AnnotationElement);\n\n var SquigglyAnnotationElement = function (_AnnotationElement12) {\n _inherits(SquigglyAnnotationElement, _AnnotationElement12);\n\n function SquigglyAnnotationElement(parameters) {\n _classCallCheck(this, SquigglyAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (SquigglyAnnotationElement.__proto__ || Object.getPrototypeOf(SquigglyAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(SquigglyAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'squigglyAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return SquigglyAnnotationElement;\n }(AnnotationElement);\n\n var StrikeOutAnnotationElement = function (_AnnotationElement13) {\n _inherits(StrikeOutAnnotationElement, _AnnotationElement13);\n\n function StrikeOutAnnotationElement(parameters) {\n _classCallCheck(this, StrikeOutAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (StrikeOutAnnotationElement.__proto__ || Object.getPrototypeOf(StrikeOutAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(StrikeOutAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'strikeoutAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return StrikeOutAnnotationElement;\n }(AnnotationElement);\n\n var StampAnnotationElement = function (_AnnotationElement14) {\n _inherits(StampAnnotationElement, _AnnotationElement14);\n\n function StampAnnotationElement(parameters) {\n _classCallCheck(this, StampAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (StampAnnotationElement.__proto__ || Object.getPrototypeOf(StampAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(StampAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'stampAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n\n return this.container;\n }\n }]);\n\n return StampAnnotationElement;\n }(AnnotationElement);\n\n var FileAttachmentAnnotationElement = function (_AnnotationElement15) {\n _inherits(FileAttachmentAnnotationElement, _AnnotationElement15);\n\n function FileAttachmentAnnotationElement(parameters) {\n _classCallCheck(this, FileAttachmentAnnotationElement);\n\n var _this23 = _possibleConstructorReturn(this, (FileAttachmentAnnotationElement.__proto__ || Object.getPrototypeOf(FileAttachmentAnnotationElement)).call(this, parameters, true));\n\n var _this23$data$file = _this23.data.file,\n filename = _this23$data$file.filename,\n content = _this23$data$file.content;\n _this23.filename = (0, _dom_utils.getFilenameFromUrl)(filename);\n _this23.content = content;\n\n if (_this23.linkService.eventBus) {\n _this23.linkService.eventBus.dispatch('fileattachmentannotation', {\n source: _this23,\n id: (0, _util.stringToPDFString)(filename),\n filename: filename,\n content: content\n });\n }\n\n return _this23;\n }\n\n _createClass(FileAttachmentAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'fileAttachmentAnnotation';\n var trigger = document.createElement('div');\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener('dblclick', this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(this.container, trigger, this.data);\n }\n\n this.container.appendChild(trigger);\n return this.container;\n }\n }, {\n key: '_download',\n value: function _download() {\n if (!this.downloadManager) {\n (0, _util.warn)('Download cannot be started due to unavailable download manager');\n return;\n }\n\n this.downloadManager.downloadData(this.content, this.filename, '');\n }\n }]);\n\n return FileAttachmentAnnotationElement;\n }(AnnotationElement);\n\n var AnnotationLayer = function () {\n function AnnotationLayer() {\n _classCallCheck(this, AnnotationLayer);\n }\n\n _createClass(AnnotationLayer, null, [{\n key: 'render',\n value: function render(parameters) {\n for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {\n var data = parameters.annotations[i];\n\n if (!data) {\n continue;\n }\n\n var element = AnnotationElementFactory.create({\n data: data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || '',\n renderInteractiveForms: parameters.renderInteractiveForms || false,\n svgFactory: new _dom_utils.DOMSVGFactory()\n });\n\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n }, {\n key: 'update',\n value: function update(parameters) {\n for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {\n var data = parameters.annotations[i];\n var element = parameters.div.querySelector('[data-annotation-id=\"' + data.id + '\"]');\n\n if (element) {\n element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')';\n }\n }\n\n parameters.div.removeAttribute('hidden');\n }\n }]);\n\n return AnnotationLayer;\n }();\n\n exports.AnnotationLayer = AnnotationLayer;\n /***/\n },\n /* 147 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SVGGraphics = undefined;\n\n var _util = __w_pdfjs_require__(1);\n\n var _dom_utils = __w_pdfjs_require__(130);\n\n var _is_node = __w_pdfjs_require__(4);\n\n var _is_node2 = _interopRequireDefault(_is_node);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var SVGGraphics = function SVGGraphics() {\n throw new Error('Not implemented: SVGGraphics');\n };\n\n {\n var SVG_DEFAULTS = {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fillColor: '#000000'\n };\n\n var convertImgDataToPng = function convertImgDataToPngClosure() {\n var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n var CHUNK_WRAPPER_SIZE = 12;\n var crcTable = new Int32Array(256);\n\n for (var i = 0; i < 256; i++) {\n var c = i;\n\n for (var h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedB88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n var crc = -1;\n\n for (var i = start; i < end; i++) {\n var a = (crc ^ data[i]) & 0xff;\n var b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n var p = offset;\n var len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n var crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n var a = 1;\n var b = 0;\n\n for (var i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!(0, _is_node2.default)()) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n var input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = new Buffer(literals);\n }\n\n var output = require('zlib').deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n var len = literals.length;\n var maxBlockLength = 0xFFFF;\n var deflateBlocks = Math.ceil(len / maxBlockLength);\n var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n var pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n var pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n var adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n var width = imgData.width;\n var height = imgData.height;\n var bitDepth, colorType, lineSize;\n var bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error('invalid format');\n }\n\n var literals = new Uint8Array((1 + lineSize) * height);\n var offsetLiterals = 0,\n offsetBytes = 0;\n var y, i;\n\n for (y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xFF;\n }\n }\n }\n\n var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n var idat = deflateSync(literals);\n var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n var data = new Uint8Array(pngLength);\n var offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk('IHDR', ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk('IDATA', idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk('IEND', new Uint8Array(0), data, offset);\n return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n var SVGExtraState = function SVGExtraStateClosure() {\n function SVGExtraState() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = '#000000';\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = '';\n this.lineCap = '';\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = '';\n }\n\n SVGExtraState.prototype = {\n clone: function SVGExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return SVGExtraState;\n }();\n\n exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() {\n function opListToTree(opList) {\n var opTree = [];\n var tmp = [];\n var opListLen = opList.length;\n\n for (var x = 0; x < opListLen; x++) {\n if (opList[x].fn === 'save') {\n opTree.push({\n 'fnId': 92,\n 'fn': 'group',\n 'items': []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opList[x].fn === 'restore') {\n opTree = tmp.pop();\n } else {\n opTree.push(opList[x]);\n }\n }\n\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n var s = value.toFixed(10);\n var i = s.length - 1;\n\n if (s[i] !== '0') {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === '0');\n\n return s.substring(0, s[i] === '.' ? i : i + 1);\n }\n\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return '';\n }\n\n return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')';\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n var a = Math.acos(m[0]) * 180 / Math.PI;\n return 'rotate(' + pf(a) + ')';\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n }\n }\n\n return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n }\n\n function SVGGraphics(commonObjs, objs, forceDataSchema) {\n this.svgFactory = new _dom_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n }\n\n var XML_NS = 'http://www.w3.org/XML/1998/namespace';\n var XLINK_NS = 'http://www.w3.org/1999/xlink';\n var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n var clipCount = 0;\n var maskCount = 0;\n SVGGraphics.prototype = {\n save: function SVGGraphics_save() {\n this.transformStack.push(this.transformMatrix);\n var old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n },\n restore: function SVGGraphics_restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n },\n group: function SVGGraphics_group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n },\n loadDependencies: function SVGGraphics_loadDependencies(operatorList) {\n var _this = this;\n\n var fnArray = operatorList.fnArray;\n var fnArrayLen = fnArray.length;\n var argsArray = operatorList.argsArray;\n\n for (var i = 0; i < fnArrayLen; i++) {\n if (_util.OPS.dependency === fnArray[i]) {\n var deps = argsArray[i];\n\n for (var n = 0, nn = deps.length; n < nn; n++) {\n var obj = deps[n];\n var common = obj.substring(0, 2) === 'g_';\n var promise;\n\n if (common) {\n promise = new Promise(function (resolve) {\n _this.commonObjs.get(obj, resolve);\n });\n } else {\n promise = new Promise(function (resolve) {\n _this.objs.get(obj, resolve);\n });\n }\n\n this.current.dependencies.push(promise);\n }\n }\n }\n\n return Promise.all(this.current.dependencies);\n },\n transform: function SVGGraphics_transform(a, b, c, d, e, f) {\n var transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n },\n getSVG: function SVGGraphics_getSVG(operatorList, viewport) {\n var _this2 = this;\n\n this.viewport = viewport;\n\n var svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(function () {\n _this2.transformMatrix = _util.IDENTITY_MATRIX;\n\n var opTree = _this2.convertOpList(operatorList);\n\n _this2.executeOpTree(opTree);\n\n return svgElement;\n });\n },\n convertOpList: function SVGGraphics_convertOpList(operatorList) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var fnArrayLen = fnArray.length;\n var REVOPS = [];\n var opList = [];\n\n for (var op in _util.OPS) {\n REVOPS[_util.OPS[op]] = op;\n }\n\n for (var x = 0; x < fnArrayLen; x++) {\n var fnId = fnArray[x];\n opList.push({\n 'fnId': fnId,\n 'fn': REVOPS[fnId],\n 'args': argsArray[x]\n });\n }\n\n return opListToTree(opList);\n },\n executeOpTree: function SVGGraphics_executeOpTree(opTree) {\n var opTreeLen = opTree.length;\n\n for (var x = 0; x < opTreeLen; x++) {\n var fn = opTree[x].fn;\n var fnId = opTree[x].fnId;\n var args = opTree[x].args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip('nonzero');\n break;\n\n case _util.OPS.eoClip:\n this.clip('evenodd');\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintJpegXObject:\n this.paintJpegXObject(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTree[x].items);\n break;\n\n default:\n (0, _util.warn)('Unimplemented operator ' + fn);\n break;\n }\n }\n },\n setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n },\n setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n },\n nextLine: function SVGGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) {\n var current = this.current;\n this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f];\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.txtElement = this.svgFactory.createElement('svg:text');\n current.txtElement.appendChild(current.tspan);\n },\n beginText: function SVGGraphics_beginText() {\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.lineMatrix = _util.IDENTITY_MATRIX;\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.txtElement = this.svgFactory.createElement('svg:text');\n this.current.txtgrp = this.svgFactory.createElement('svg:g');\n this.current.xcoords = [];\n },\n moveText: function SVGGraphics_moveText(x, y) {\n var current = this.current;\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n },\n showText: function SVGGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += -glyph * fontSize * 0.001;\n continue;\n }\n\n var width = glyph.width;\n var character = glyph.fontChar;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n\n if (!glyph.isInFont && !font.missingFile) {\n x += charWidth;\n continue;\n }\n\n current.xcoords.push(current.x + x * textHScale);\n current.tspan.textContent += character;\n x += charWidth;\n }\n\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' '));\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);\n }\n\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, 'fill', current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, 'fill', 'transparent');\n } else {\n current.tspan.setAttributeNS(null, 'fill', 'none');\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._setStrokeAttributes(current.tspan);\n }\n\n var textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)');\n current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n\n this._ensureTransformGroup().appendChild(current.txtElement);\n },\n setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n addFontStyle: function SVGGraphics_addFontStyle(fontObj) {\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement('svg:style');\n this.cssStyle.setAttributeNS(null, 'type', 'text/css');\n this.defs.appendChild(this.cssStyle);\n }\n\n var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += '@font-face { font-family: \"' + fontObj.loadedName + '\";' + ' src: url(' + url + '); }\\n';\n },\n setFont: function SVGGraphics_setFont(details) {\n var current = this.current;\n var fontObj = this.commonObjs.get(details[0]);\n var size = details[1];\n this.current.font = fontObj;\n\n if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal';\n var italic = fontObj.italic ? 'italic' : 'normal';\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.xcoords = [];\n },\n endText: function endText() {\n var current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip('nonzero');\n this.endPath();\n }\n },\n setLineWidth: function SVGGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n },\n setLineCap: function SVGGraphics_setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function SVGGraphics_setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function SVGGraphics_setMiterLimit(limit) {\n this.current.miterLimit = limit;\n },\n setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n },\n setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.current.strokeColor = color;\n },\n setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n },\n setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n\n this.current.fillColor = color;\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.xcoords = [];\n },\n setDash: function SVGGraphics_setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n },\n constructPath: function SVGGraphics_constructPath(ops, args) {\n var current = this.current;\n var x = current.x,\n y = current.y;\n current.path = this.svgFactory.createElement('svg:path');\n var d = [];\n var opLength = ops.length;\n\n for (var i = 0, j = 0; i < opLength; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n var xw = x + width;\n var yh = y + height;\n d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z');\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push('M', pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push('L', pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n x = args[j + 2];\n y = args[j + 3];\n d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push('Z');\n break;\n }\n }\n\n current.path.setAttributeNS(null, 'd', d.join(' '));\n current.path.setAttributeNS(null, 'fill', 'none');\n\n this._ensureTransformGroup().appendChild(current.path);\n\n current.element = current.path;\n current.setCurrentPoint(x, y);\n },\n endPath: function SVGGraphics_endPath() {\n if (!this.pendingClip) {\n return;\n }\n\n var current = this.current;\n var clipId = 'clippath' + clipCount;\n clipCount++;\n var clipPath = this.svgFactory.createElement('svg:clipPath');\n clipPath.setAttributeNS(null, 'id', clipId);\n clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n var clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === 'evenodd') {\n clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');\n } else {\n clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');\n }\n\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);\n }\n\n current.activeClipUrl = 'url(#' + clipId + ')';\n this.tgrp = null;\n },\n clip: function SVGGraphics_clip(type) {\n this.pendingClip = type;\n },\n closePath: function SVGGraphics_closePath() {\n var current = this.current;\n\n if (current.path) {\n var d = current.path.getAttributeNS(null, 'd');\n d += 'Z';\n current.path.setAttributeNS(null, 'd', d);\n }\n },\n setLeading: function SVGGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setTextRise: function SVGGraphics_setTextRise(textRise) {\n this.current.textRise = textRise;\n },\n setTextRenderingMode: function setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n },\n setHScale: function SVGGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setGState: function SVGGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n\n switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n\n case 'LC':\n this.setLineCap(value);\n break;\n\n case 'LJ':\n this.setLineJoin(value);\n break;\n\n case 'ML':\n this.setMiterLimit(value);\n break;\n\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n\n case 'Font':\n this.setFont(value);\n break;\n\n case 'CA':\n this.setStrokeAlpha(value);\n break;\n\n case 'ca':\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)('Unimplemented graphic state ' + key);\n break;\n }\n }\n },\n fill: function SVGGraphics_fill() {\n var current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, 'fill', current.fillColor);\n current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n this.endPath();\n }\n },\n stroke: function SVGGraphics_stroke() {\n var current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, 'fill', 'none');\n this.endPath();\n }\n },\n _setStrokeAttributes: function _setStrokeAttributes(element) {\n var current = this.current;\n element.setAttributeNS(null, 'stroke', current.strokeColor);\n element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha);\n element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit));\n element.setAttributeNS(null, 'stroke-linecap', current.lineCap);\n element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin);\n element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px');\n element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' '));\n element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px');\n },\n eoFill: function SVGGraphics_eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n\n this.fill();\n },\n fillStroke: function SVGGraphics_fillStroke() {\n this.stroke();\n this.fill();\n },\n eoFillStroke: function SVGGraphics_eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n\n this.fillStroke();\n },\n closeStroke: function SVGGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n closeFillStroke: function SVGGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n },\n paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() {\n var current = this.current;\n var rect = this.svgFactory.createElement('svg:rect');\n rect.setAttributeNS(null, 'x', '0');\n rect.setAttributeNS(null, 'y', '0');\n rect.setAttributeNS(null, 'width', '1px');\n rect.setAttributeNS(null, 'height', '1px');\n rect.setAttributeNS(null, 'fill', current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n },\n paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) {\n var imgObj = this.objs.get(objId);\n var imgEl = this.svgFactory.createElement('svg:image');\n imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);\n imgEl.setAttributeNS(null, 'width', pf(w));\n imgEl.setAttributeNS(null, 'height', pf(h));\n imgEl.setAttributeNS(null, 'x', '0');\n imgEl.setAttributeNS(null, 'y', pf(-h));\n imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')');\n\n this._ensureTransformGroup().appendChild(imgEl);\n },\n paintImageXObject: function SVGGraphics_paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) {\n var width = imgData.width;\n var height = imgData.height;\n var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n var cliprect = this.svgFactory.createElement('svg:rect');\n cliprect.setAttributeNS(null, 'x', '0');\n cliprect.setAttributeNS(null, 'y', '0');\n cliprect.setAttributeNS(null, 'width', pf(width));\n cliprect.setAttributeNS(null, 'height', pf(height));\n this.current.element = cliprect;\n this.clip('nonzero');\n var imgEl = this.svgFactory.createElement('svg:image');\n imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc);\n imgEl.setAttributeNS(null, 'x', '0');\n imgEl.setAttributeNS(null, 'y', pf(-height));\n imgEl.setAttributeNS(null, 'width', pf(width) + 'px');\n imgEl.setAttributeNS(null, 'height', pf(height) + 'px');\n imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')');\n\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n },\n paintImageMaskXObject: function SVGGraphics_paintImageMaskXObject(imgData) {\n var current = this.current;\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = current.fillColor;\n current.maskId = 'mask' + maskCount++;\n var mask = this.svgFactory.createElement('svg:mask');\n mask.setAttributeNS(null, 'id', current.maskId);\n var rect = this.svgFactory.createElement('svg:rect');\n rect.setAttributeNS(null, 'x', '0');\n rect.setAttributeNS(null, 'y', '0');\n rect.setAttributeNS(null, 'width', pf(width));\n rect.setAttributeNS(null, 'height', pf(height));\n rect.setAttributeNS(null, 'fill', fillColor);\n rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')');\n this.defs.appendChild(mask);\n\n this._ensureTransformGroup().appendChild(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n },\n paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (Array.isArray(bbox) && bbox.length === 4) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n var cliprect = this.svgFactory.createElement('svg:rect');\n cliprect.setAttributeNS(null, 'x', bbox[0]);\n cliprect.setAttributeNS(null, 'y', bbox[1]);\n cliprect.setAttributeNS(null, 'width', pf(width));\n cliprect.setAttributeNS(null, 'height', pf(height));\n this.current.element = cliprect;\n this.clip('nonzero');\n this.endPath();\n }\n },\n paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {},\n _initialize: function _initialize(viewport) {\n var svg = this.svgFactory.create(viewport.width, viewport.height);\n var definitions = this.svgFactory.createElement('svg:defs');\n svg.appendChild(definitions);\n this.defs = definitions;\n var rootGroup = this.svgFactory.createElement('svg:g');\n rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n },\n _ensureClipGroup: function SVGGraphics_ensureClipGroup() {\n if (!this.current.clipGroup) {\n var clipGroup = this.svgFactory.createElement('svg:g');\n clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n },\n _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement('svg:g');\n this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n };\n return SVGGraphics;\n }();\n }\n exports.SVGGraphics = SVGGraphics;\n /***/\n },\n /* 148 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFNodeStream = undefined;\n\n var _regenerator = __w_pdfjs_require__(137);\n\n var _regenerator2 = _interopRequireDefault(_regenerator);\n\n var _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 var _util = __w_pdfjs_require__(1);\n\n var _network_utils = __w_pdfjs_require__(149);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof3(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof3(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n function _asyncToGenerator(fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var fs = require('fs');\n\n var http = require('http');\n\n var https = require('https');\n\n var url = require('url');\n\n var fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\n function parseUrl(sourceUrl) {\n var parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === 'file:' || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse('file:///' + sourceUrl);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = 'file:';\n }\n\n return parsedUrl;\n }\n\n var PDFNodeStream = function () {\n function PDFNodeStream(source) {\n _classCallCheck(this, PDFNodeStream);\n\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:';\n this.isFsUrl = this.url.protocol === 'file:';\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequest = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFNodeStream, [{\n key: 'getFullReader',\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequest);\n this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequest;\n }\n }, {\n key: 'getRangeReader',\n value: function getRangeReader(start, end) {\n var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n }, {\n key: 'cancelAllRequests',\n value: function cancelAllRequests(reason) {\n if (this._fullRequest) {\n this._fullRequest.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFNodeStream;\n }();\n\n var BaseFullReader = function () {\n function BaseFullReader(stream) {\n _classCallCheck(this, BaseFullReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n var source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(BaseFullReader, [{\n key: 'read',\n value: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, buffer;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context.abrupt('return', this.read());\n\n case 10:\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n buffer = new Uint8Array(chunk).buffer;\n return _context.abrupt('return', {\n value: buffer,\n done: false\n });\n\n case 14:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _ref.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: 'cancel',\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n }, {\n key: '_error',\n value: function _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n }, {\n key: '_setReadableStream',\n value: function _setReadableStream(readableStream) {\n var _this = this;\n\n this._readableStream = readableStream;\n readableStream.on('readable', function () {\n _this._readCapability.resolve();\n });\n readableStream.on('end', function () {\n readableStream.destroy();\n _this._done = true;\n\n _this._readCapability.resolve();\n });\n readableStream.on('error', function (reason) {\n _this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException('streaming is disabled'));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }, {\n key: 'headersReady',\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: 'filename',\n get: function get() {\n return this._filename;\n }\n }, {\n key: 'contentLength',\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: 'isRangeSupported',\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: 'isStreamingSupported',\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return BaseFullReader;\n }();\n\n var BaseRangeReader = function () {\n function BaseRangeReader(stream) {\n _classCallCheck(this, BaseRangeReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n var source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n _createClass(BaseRangeReader, [{\n key: 'read',\n value: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, buffer;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context2.next = 4;\n break;\n }\n\n return _context2.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context2.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context2.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context2.abrupt('return', this.read());\n\n case 10:\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n buffer = new Uint8Array(chunk).buffer;\n return _context2.abrupt('return', {\n value: buffer,\n done: false\n });\n\n case 14:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _ref2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: 'cancel',\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n }, {\n key: '_error',\n value: function _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n }, {\n key: '_setReadableStream',\n value: function _setReadableStream(readableStream) {\n var _this2 = this;\n\n this._readableStream = readableStream;\n readableStream.on('readable', function () {\n _this2._readCapability.resolve();\n });\n readableStream.on('end', function () {\n readableStream.destroy();\n _this2._done = true;\n\n _this2._readCapability.resolve();\n });\n readableStream.on('error', function (reason) {\n _this2._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }, {\n key: 'isStreamingSupported',\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return BaseRangeReader;\n }();\n\n function createRequestOptions(url, headers) {\n return {\n protocol: url.protocol,\n auth: url.auth,\n host: url.hostname,\n port: url.port,\n path: url.path,\n method: 'GET',\n headers: headers\n };\n }\n\n var PDFNodeStreamFullReader = function (_BaseFullReader) {\n _inherits(PDFNodeStreamFullReader, _BaseFullReader);\n\n function PDFNodeStreamFullReader(stream) {\n _classCallCheck(this, PDFNodeStreamFullReader);\n\n var _this3 = _possibleConstructorReturn(this, (PDFNodeStreamFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFullReader)).call(this, stream));\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException('Missing PDF \"' + _this3._url + '\".');\n _this3._storedError = error;\n\n _this3._headersCapability.reject(error);\n\n return;\n }\n\n _this3._headersCapability.resolve();\n\n _this3._setReadableStream(response);\n\n var getResponseHeader = function getResponseHeader(name) {\n return _this3._readableStream.headers[name.toLowerCase()];\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: _this3._rangeChunkSize,\n disableRange: _this3._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n _this3._isRangeSupported = allowRangeRequests;\n _this3._contentLength = suggestedLength || _this3._contentLength;\n _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n _this3._request = null;\n\n if (_this3._url.protocol === 'http:') {\n _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);\n } else {\n _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);\n }\n\n _this3._request.on('error', function (reason) {\n _this3._storedError = reason;\n\n _this3._headersCapability.reject(reason);\n });\n\n _this3._request.end();\n\n return _this3;\n }\n\n return PDFNodeStreamFullReader;\n }(BaseFullReader);\n\n var PDFNodeStreamRangeReader = function (_BaseRangeReader) {\n _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);\n\n function PDFNodeStreamRangeReader(stream, start, end) {\n _classCallCheck(this, PDFNodeStreamRangeReader);\n\n var _this4 = _possibleConstructorReturn(this, (PDFNodeStreamRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamRangeReader)).call(this, stream));\n\n _this4._httpHeaders = {};\n\n for (var property in stream.httpHeaders) {\n var value = stream.httpHeaders[property];\n\n if (typeof value === 'undefined') {\n continue;\n }\n\n _this4._httpHeaders[property] = value;\n }\n\n _this4._httpHeaders['Range'] = 'bytes=' + start + '-' + (end - 1);\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException('Missing PDF \"' + _this4._url + '\".');\n _this4._storedError = error;\n return;\n }\n\n _this4._setReadableStream(response);\n };\n\n _this4._request = null;\n\n if (_this4._url.protocol === 'http:') {\n _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);\n } else {\n _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);\n }\n\n _this4._request.on('error', function (reason) {\n _this4._storedError = reason;\n });\n\n _this4._request.end();\n\n return _this4;\n }\n\n return PDFNodeStreamRangeReader;\n }(BaseRangeReader);\n\n var PDFNodeStreamFsFullReader = function (_BaseFullReader2) {\n _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);\n\n function PDFNodeStreamFsFullReader(stream) {\n _classCallCheck(this, PDFNodeStreamFsFullReader);\n\n var _this5 = _possibleConstructorReturn(this, (PDFNodeStreamFsFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsFullReader)).call(this, stream));\n\n var path = decodeURIComponent(_this5._url.path);\n\n if (fileUriRegex.test(_this5._url.href)) {\n path = path.replace(/^\\//, '');\n }\n\n fs.lstat(path, function (error, stat) {\n if (error) {\n if (error.code === 'ENOENT') {\n error = new _util.MissingPDFException('Missing PDF \"' + path + '\".');\n }\n\n _this5._storedError = error;\n\n _this5._headersCapability.reject(error);\n\n return;\n }\n\n _this5._contentLength = stat.size;\n\n _this5._setReadableStream(fs.createReadStream(path));\n\n _this5._headersCapability.resolve();\n });\n return _this5;\n }\n\n return PDFNodeStreamFsFullReader;\n }(BaseFullReader);\n\n var PDFNodeStreamFsRangeReader = function (_BaseRangeReader2) {\n _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);\n\n function PDFNodeStreamFsRangeReader(stream, start, end) {\n _classCallCheck(this, PDFNodeStreamFsRangeReader);\n\n var _this6 = _possibleConstructorReturn(this, (PDFNodeStreamFsRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsRangeReader)).call(this, stream));\n\n var path = decodeURIComponent(_this6._url.path);\n\n if (fileUriRegex.test(_this6._url.href)) {\n path = path.replace(/^\\//, '');\n }\n\n _this6._setReadableStream(fs.createReadStream(path, {\n start: start,\n end: end - 1\n }));\n\n return _this6;\n }\n\n return PDFNodeStreamFsRangeReader;\n }(BaseRangeReader);\n\n exports.PDFNodeStream = PDFNodeStream;\n /***/\n },\n /* 149 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.validateResponseStatus = exports.validateRangeRequestCapabilities = exports.extractFilenameFromHeader = exports.createResponseStatusError = undefined;\n\n var _util = __w_pdfjs_require__(1);\n\n var _content_disposition = __w_pdfjs_require__(150);\n\n function validateRangeRequestCapabilities(_ref) {\n var getResponseHeader = _ref.getResponseHeader,\n isHttp = _ref.isHttp,\n rangeChunkSize = _ref.rangeChunkSize,\n disableRange = _ref.disableRange;\n (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero');\n var returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n var length = parseInt(getResponseHeader('Content-Length'), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader('Accept-Ranges') !== 'bytes') {\n return returnValues;\n }\n\n var contentEncoding = getResponseHeader('Content-Encoding') || 'identity';\n\n if (contentEncoding !== 'identity') {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n }\n\n function extractFilenameFromHeader(getResponseHeader) {\n var contentDisposition = getResponseHeader('Content-Disposition');\n\n if (contentDisposition) {\n var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n\n return null;\n }\n\n function createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && /^file:/.test(url)) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF \"' + url + '\".', status);\n }\n\n function validateResponseStatus(status) {\n return status === 200 || status === 206;\n }\n\n exports.createResponseStatusError = createResponseStatusError;\n exports.extractFilenameFromHeader = extractFilenameFromHeader;\n exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\n exports.validateResponseStatus = validateResponseStatus;\n /***/\n },\n /* 150 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n\n function getFilenameFromContentDispositionHeader(contentDisposition) {\n var needsEncodingFixup = true;\n var tmp = toParamRegExp('filename\\\\*', 'i').exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n var filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n var _filename = rfc2047decode(tmp);\n\n return fixupEncoding(_filename);\n }\n\n tmp = toParamRegExp('filename', 'i').exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n\n var _filename2 = rfc2616unquote(tmp);\n\n _filename2 = rfc2047decode(_filename2);\n return fixupEncoding(_filename2);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp('(?:^|;)\\\\s*' + attributePattern + '\\\\s*=\\\\s*' + '(' + '[^\";\\\\s][^;\\\\s]*' + '|' + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + ')', flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n var decoder = new TextDecoder(encoding, {\n fatal: true\n });\n var bytes = new Array(value.length);\n\n for (var i = 0; i < value.length; ++i) {\n bytes[i] = value.charCodeAt(i);\n }\n\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode('utf-8', value);\n\n if (needsEncodingFixup) {\n value = textdecode('iso-8859-1', value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDisposition) {\n var matches = [],\n match = void 0;\n var iter = toParamRegExp('filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)', 'ig');\n\n while ((match = iter.exec(contentDisposition)) !== null) {\n var _match = match,\n _match2 = _slicedToArray(_match, 4),\n n = _match2[1],\n quot = _match2[2],\n part = _match2[3];\n\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n var parts = [];\n\n for (var _n = 0; _n < matches.length; ++_n) {\n if (!(_n in matches)) {\n break;\n }\n\n var _matches$_n = _slicedToArray(matches[_n], 2),\n _quot = _matches$_n[0],\n _part = _matches$_n[1];\n\n _part = rfc2616unquote(_part);\n\n if (_quot) {\n _part = unescape(_part);\n\n if (_n === 0) {\n _part = rfc5987decode(_part);\n }\n }\n\n parts.push(_part);\n }\n\n return parts.join('');\n }\n\n function rfc2616unquote(value) {\n if (value.charAt(0) === '\"') {\n var parts = value.slice(1).split('\\\\\"');\n\n for (var i = 0; i < parts.length; ++i) {\n var quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, '$1');\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n var encodingend = extvalue.indexOf('\\'');\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n var encoding = extvalue.slice(0, encodingend);\n var langvalue = extvalue.slice(encodingend + 1);\n var value = langvalue.replace(/^[^']*'/, '');\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (value.slice(0, 2) !== '=?' || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (_, charset, encoding, text) {\n if (encoding === 'q' || encoding === 'Q') {\n text = text.replace(/_/g, ' ');\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return '';\n }\n\n exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n /***/\n },\n /* 151 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFFetchStream = undefined;\n\n var _regenerator = __w_pdfjs_require__(137);\n\n var _regenerator2 = _interopRequireDefault(_regenerator);\n\n var _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 var _util = __w_pdfjs_require__(1);\n\n var _network_utils = __w_pdfjs_require__(149);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _asyncToGenerator(fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: 'GET',\n headers: headers,\n signal: abortController && abortController.signal,\n mode: 'cors',\n credentials: withCredentials ? 'include' : 'same-origin',\n redirect: 'follow'\n };\n }\n\n var PDFFetchStream = function () {\n function PDFFetchStream(source) {\n _classCallCheck(this, PDFFetchStream);\n\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFFetchStream, [{\n key: 'getFullReader',\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n }, {\n key: 'getRangeReader',\n value: function getRangeReader(begin, end) {\n var reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n }, {\n key: 'cancelAllRequests',\n value: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFFetchStream;\n }();\n\n var PDFFetchStreamReader = function () {\n function PDFFetchStreamReader(stream) {\n var _this = this;\n\n _classCallCheck(this, PDFFetchStreamReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n var source = stream.source;\n this._withCredentials = source.withCredentials;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = new Headers();\n\n for (var property in this._stream.httpHeaders) {\n var value = this._stream.httpHeaders[property];\n\n if (typeof value === 'undefined') {\n continue;\n }\n\n this._headers.append(property, value);\n }\n\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n _this._reader = response.body.getReader();\n\n _this._headersCapability.resolve();\n\n var getResponseHeader = function getResponseHeader(name) {\n return response.headers.get(name);\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: _this._stream.isHttp,\n rangeChunkSize: _this._rangeChunkSize,\n disableRange: _this._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n _this._isRangeSupported = allowRangeRequests;\n _this._contentLength = suggestedLength || _this._contentLength;\n _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!_this._isStreamingSupported && _this._isRangeSupported) {\n _this.cancel(new _util.AbortException('streaming is disabled'));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamReader, [{\n key: 'read',\n value: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var _ref2, value, done, buffer;\n\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._headersCapability.promise;\n\n case 2:\n _context.next = 4;\n return this._reader.read();\n\n case 4:\n _ref2 = _context.sent;\n value = _ref2.value;\n done = _ref2.done;\n\n if (!done) {\n _context.next = 9;\n break;\n }\n\n return _context.abrupt('return', {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n buffer = new Uint8Array(value).buffer;\n return _context.abrupt('return', {\n value: buffer,\n done: false\n });\n\n case 13:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _ref.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: 'cancel',\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }, {\n key: 'headersReady',\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: 'filename',\n get: function get() {\n return this._filename;\n }\n }, {\n key: 'contentLength',\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: 'isRangeSupported',\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: 'isStreamingSupported',\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return PDFFetchStreamReader;\n }();\n\n var PDFFetchStreamRangeReader = function () {\n function PDFFetchStreamRangeReader(stream, begin, end) {\n var _this2 = this;\n\n _classCallCheck(this, PDFFetchStreamRangeReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n var source = stream.source;\n this._withCredentials = source.withCredentials;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n\n this._headers = new Headers();\n\n for (var property in this._stream.httpHeaders) {\n var value = this._stream.httpHeaders[property];\n\n if (typeof value === 'undefined') {\n continue;\n }\n\n this._headers.append(property, value);\n }\n\n var rangeStr = begin + '-' + (end - 1);\n\n this._headers.append('Range', 'bytes=' + rangeStr);\n\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n _this2._readCapability.resolve();\n\n _this2._reader = response.body.getReader();\n });\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamRangeReader, [{\n key: 'read',\n value: function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var _ref4, value, done, buffer;\n\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._readCapability.promise;\n\n case 2:\n _context2.next = 4;\n return this._reader.read();\n\n case 4:\n _ref4 = _context2.sent;\n value = _ref4.value;\n done = _ref4.done;\n\n if (!done) {\n _context2.next = 9;\n break;\n }\n\n return _context2.abrupt('return', {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n buffer = new Uint8Array(value).buffer;\n return _context2.abrupt('return', {\n value: buffer,\n done: false\n });\n\n case 13:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _ref3.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: 'cancel',\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }, {\n key: 'isStreamingSupported',\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return PDFFetchStreamRangeReader;\n }();\n\n exports.PDFFetchStream = PDFFetchStream;\n /***/\n },\n /* 152 */\n\n /***/\n function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.NetworkManager = exports.PDFNetworkStream = undefined;\n\n var _regenerator = __w_pdfjs_require__(137);\n\n var _regenerator2 = _interopRequireDefault(_regenerator);\n\n var _util = __w_pdfjs_require__(1);\n\n var _network_utils = __w_pdfjs_require__(149);\n\n var _global_scope = __w_pdfjs_require__(3);\n\n var _global_scope2 = _interopRequireDefault(_global_scope);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _asyncToGenerator(fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n }\n\n ;\n var OK_RESPONSE = 200;\n var PARTIAL_CONTENT_RESPONSE = 206;\n\n function NetworkManager(url, args) {\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || {};\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n this.loadedRequests = Object.create(null);\n }\n\n function getArrayBuffer(xhr) {\n var data = xhr.response;\n\n if (typeof data !== 'string') {\n return data;\n }\n\n var array = (0, _util.stringToBytes)(data);\n return array.buffer;\n }\n\n var supportsMozChunked = function supportsMozChunkedClosure() {\n try {\n var x = new XMLHttpRequest();\n x.open('GET', _global_scope2.default.location.href);\n x.responseType = 'moz-chunked-arraybuffer';\n return x.responseType === 'moz-chunked-arraybuffer';\n } catch (e) {\n return false;\n }\n }();\n\n NetworkManager.prototype = {\n requestRange: function NetworkManager_requestRange(begin, end, listeners) {\n var args = {\n begin: begin,\n end: end\n };\n\n for (var prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n },\n requestFull: function NetworkManager_requestFull(listeners) {\n return this.request(listeners);\n },\n request: function NetworkManager_request(args) {\n var xhr = this.getXhr();\n var xhrId = this.currXhrId++;\n var pendingRequest = this.pendingRequests[xhrId] = {\n xhr: xhr\n };\n xhr.open('GET', this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (var property in this.httpHeaders) {\n var value = this.httpHeaders[property];\n\n if (typeof value === 'undefined') {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && 'begin' in args && 'end' in args) {\n var rangeStr = args.begin + '-' + (args.end - 1);\n xhr.setRequestHeader('Range', 'bytes=' + rangeStr);\n pendingRequest.expectedStatus = 206;\n } else {\n pendingRequest.expectedStatus = 200;\n }\n\n var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData;\n\n if (useMozChunkedLoading) {\n xhr.responseType = 'moz-chunked-arraybuffer';\n pendingRequest.onProgressiveData = args.onProgressiveData;\n pendingRequest.mozChunked = true;\n } else {\n xhr.responseType = 'arraybuffer';\n }\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n },\n onProgress: function NetworkManager_onProgress(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n if (pendingRequest.mozChunked) {\n var chunk = getArrayBuffer(pendingRequest.xhr);\n pendingRequest.onProgressiveData(chunk);\n }\n\n var onProgress = pendingRequest.onProgress;\n\n if (onProgress) {\n onProgress(evt);\n }\n },\n onStateChange: function NetworkManager_onStateChange(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n var xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n var xhrStatus = xhr.status || OK_RESPONSE;\n var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n\n return;\n }\n\n this.loadedRequests[xhrId] = true;\n var chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n var rangeHeader = xhr.getResponseHeader('Content-Range');\n var matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n var begin = parseInt(matches[1], 10);\n pendingRequest.onDone({\n begin: begin,\n chunk: chunk\n });\n } else if (pendingRequest.onProgressiveData) {\n pendingRequest.onDone(null);\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk: chunk\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n },\n hasPendingRequests: function NetworkManager_hasPendingRequests() {\n for (var xhrId in this.pendingRequests) {\n return true;\n }\n\n return false;\n },\n getRequestXhr: function NetworkManager_getXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n },\n isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) {\n return !!this.pendingRequests[xhrId].onProgressiveData;\n },\n isPendingRequest: function NetworkManager_isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n },\n isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) {\n return xhrId in this.loadedRequests;\n },\n abortAllRequests: function NetworkManager_abortAllRequests() {\n for (var xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n },\n abortRequest: function NetworkManager_abortRequest(xhrId) {\n var xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n };\n\n function PDFNetworkStream(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n PDFNetworkStream.prototype = {\n _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) {\n var i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n },\n getFullReader: function PDFNetworkStream_getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n },\n getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) {\n var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n },\n cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n var readers = this._rangeRequestReaders.slice(0);\n\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n };\n\n function PDFNetworkStreamFullRequestReader(manager, source) {\n this._manager = manager;\n var args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onProgressiveData: source.disableStream ? null : this._onProgressiveData.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n PDFNetworkStreamFullRequestReader.prototype = {\n _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() {\n var fullRequestXhrId = this._fullRequestId;\n\n var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n var getResponseHeader = function getResponseHeader(name) {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n var networkManager = this._manager;\n\n if (networkManager.isStreamingRequest(fullRequestXhrId)) {\n this._isStreamingSupported = true;\n } else if (this._isRangeSupported) {\n networkManager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n },\n _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) {\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(chunk);\n }\n },\n _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) {\n if (args) {\n this._onProgressiveData(args.chunk);\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n },\n _onError: function PDFNetworkStreamFullRequestReader_onError(status) {\n var url = this._url;\n var exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n\n this._headersReceivedCapability.reject(exception);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n\n this._requests = [];\n this._cachedChunks = [];\n },\n _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength\n });\n }\n },\n\n get filename() {\n return this._filename;\n },\n\n get isRangeSupported() {\n return this._isRangeSupported;\n },\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n },\n\n get contentLength() {\n return this._contentLength;\n },\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n },\n\n read: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this._storedError) {\n _context.next = 2;\n break;\n }\n\n throw this._storedError;\n\n case 2:\n if (!(this._cachedChunks.length > 0)) {\n _context.next = 5;\n break;\n }\n\n chunk = this._cachedChunks.shift();\n return _context.abrupt('return', {\n value: chunk,\n done: false\n });\n\n case 5:\n if (!this._done) {\n _context.next = 7;\n break;\n }\n\n return _context.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 7:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context.abrupt('return', requestCapability.promise);\n\n case 10:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _ref.apply(this, arguments);\n }\n\n return read;\n }(),\n cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n };\n\n function PDFNetworkStreamRangeRequestReader(manager, begin, end) {\n this._manager = manager;\n var args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n PDFNetworkStreamRangeRequestReader.prototype = {\n _close: function PDFNetworkStreamRangeRequestReader_close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n },\n _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) {\n var chunk = data.chunk;\n\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n this._close();\n },\n _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({\n loaded: evt.loaded\n });\n }\n },\n\n get isStreamingSupported() {\n return false;\n },\n\n read: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!(this._queuedChunk !== null)) {\n _context2.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n this._queuedChunk = null;\n return _context2.abrupt('return', {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return _context2.abrupt('return', requestCapability.promise);\n\n case 9:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _ref2.apply(this, arguments);\n }\n\n return read;\n }(),\n cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) {\n this._done = true;\n\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n\n this._requests = [];\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n };\n exports.PDFNetworkStream = PDFNetworkStream;\n exports.NetworkManager = NetworkManager;\n /***/\n }\n /******/\n ])\n );\n});","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","const context = require.context(\".\", true, /\\.js$/);\ncontext.keys().forEach(context);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar t,\n e = require(\"stimulus\"),\n n = (t = require(\"lodash.debounce\")) && \"object\" == _typeof(t) && \"default\" in t ? t.default : t,\n s = function (t) {\n function e() {\n t.apply(this, arguments);\n }\n\n t && (e.__proto__ = t), (e.prototype = Object.create(t && t.prototype)).constructor = e;\n var s = {\n src: {\n configurable: !0\n },\n minLength: {\n configurable: !0\n }\n };\n return e.prototype.connect = function () {\n this.resultsTarget.hidden = !0, this.inputTarget.setAttribute(\"autocomplete\", \"off\"), this.inputTarget.setAttribute(\"spellcheck\", \"false\"), this.mouseDown = !1, this.onInputChange = n(this.onInputChange.bind(this), 300), this.onResultsClick = this.onResultsClick.bind(this), this.onResultsMouseDown = this.onResultsMouseDown.bind(this), this.onInputBlur = this.onInputBlur.bind(this), this.onKeydown = this.onKeydown.bind(this), this.inputTarget.addEventListener(\"keydown\", this.onKeydown), this.inputTarget.addEventListener(\"blur\", this.onInputBlur), this.inputTarget.addEventListener(\"input\", this.onInputChange), this.resultsTarget.addEventListener(\"mousedown\", this.onResultsMouseDown), this.resultsTarget.addEventListener(\"click\", this.onResultsClick);\n }, e.prototype.disconnect = function () {\n this.inputTarget.removeEventListener(\"keydown\", this.onKeydown), this.inputTarget.removeEventListener(\"focus\", this.onInputFocus), this.inputTarget.removeEventListener(\"blur\", this.onInputBlur), this.inputTarget.removeEventListener(\"input\", this.onInputChange), this.resultsTarget.removeEventListener(\"mousedown\", this.onResultsMouseDown), this.resultsTarget.removeEventListener(\"click\", this.onResultsClick);\n }, e.prototype.sibling = function (t) {\n var e = Array.from(this.resultsTarget.querySelectorAll('[role=\"option\"]')),\n n = this.resultsTarget.querySelector('[aria-selected=\"true\"]'),\n s = e.indexOf(n),\n i = t ? e[s + 1] : e[s - 1];\n return i || (t ? e[0] : e[e.length - 1]);\n }, e.prototype.select = function (t) {\n for (var e = 0, n = this.resultsTarget.querySelectorAll('[aria-selected=\"true\"]'); e < n.length; e += 1) {\n var s = n[e];\n s.removeAttribute(\"aria-selected\"), s.classList.remove(\"active\");\n }\n\n t.setAttribute(\"aria-selected\", \"true\"), t.classList.add(\"active\"), this.inputTarget.setAttribute(\"aria-activedescendant\", t.id);\n }, e.prototype.onKeydown = function (t) {\n switch (t.key) {\n case \"Escape\":\n this.resultsTarget.hidden || (this.hideAndRemoveOptions(), t.stopPropagation(), t.preventDefault());\n break;\n\n case \"ArrowDown\":\n var e = this.sibling(!0);\n e && this.select(e), t.preventDefault();\n break;\n\n case \"ArrowUp\":\n var n = this.sibling(!1);\n n && this.select(n), t.preventDefault();\n break;\n\n case \"Tab\":\n var s = this.resultsTarget.querySelector('[aria-selected=\"true\"]');\n s && this.commit(s);\n break;\n\n case \"Enter\":\n var i = this.resultsTarget.querySelector('[aria-selected=\"true\"]');\n i && !this.resultsTarget.hidden && (this.commit(i), t.preventDefault());\n }\n }, e.prototype.onInputBlur = function () {\n this.mouseDown || (this.resultsTarget.hidden = !0);\n }, e.prototype.commit = function (t) {\n if (\"true\" !== t.getAttribute(\"aria-disabled\")) {\n if (t instanceof HTMLAnchorElement) return t.click(), void (this.resultsTarget.hidden = !0);\n var e = t.textContent.trim(),\n n = t.getAttribute(\"data-autocomplete-value\") || e;\n this.inputTarget.value = e, this.hasHiddenTarget ? this.hiddenTarget.value = n : this.inputTarget.value = n, this.inputTarget.focus(), this.hideAndRemoveOptions(), this.element.dispatchEvent(new CustomEvent(\"autocomplete.change\", {\n bubbles: !0,\n detail: {\n value: n,\n textValue: e\n }\n }));\n }\n }, e.prototype.onResultsClick = function (t) {\n if (t.target instanceof Element) {\n var e = t.target.closest('[role=\"option\"]');\n e && this.commit(e);\n }\n }, e.prototype.onResultsMouseDown = function () {\n var t = this;\n this.mouseDown = !0, this.resultsTarget.addEventListener(\"mouseup\", function () {\n return t.mouseDown = !1;\n }, {\n once: !0\n });\n }, e.prototype.onInputChange = function () {\n this.element.removeAttribute(\"value\"), this.fetchResults();\n }, e.prototype.identifyOptions = function () {\n for (var t = 0, e = 0, n = this.resultsTarget.querySelectorAll('[role=\"option\"]:not([id])'); e < n.length; e += 1) {\n n[e].id = this.resultsTarget.id + \"-option-\" + t++;\n }\n }, e.prototype.hideAndRemoveOptions = function () {\n this.resultsTarget.hidden = !0, this.resultsTarget.innerHTML = null;\n }, e.prototype.fetchResults = function () {\n var t = this,\n e = this.inputTarget.value.trim();\n if (!e || e.length < this.minLength) this.hideAndRemoveOptions();else if (this.src) {\n var n = new URL(this.src, window.location.href),\n s = new URLSearchParams(n.search.slice(1));\n s.append(\"q\", e), n.search = s.toString(), this.element.dispatchEvent(new CustomEvent(\"loadstart\")), fetch(n.toString()).then(function (t) {\n return t.text();\n }).then(function (e) {\n t.resultsTarget.innerHTML = e, t.identifyOptions();\n var n = !!t.resultsTarget.querySelector('[role=\"option\"]');\n t.resultsTarget.hidden = !n, t.element.dispatchEvent(new CustomEvent(\"load\")), t.element.dispatchEvent(new CustomEvent(\"loadend\"));\n }).catch(function () {\n t.element.dispatchEvent(new CustomEvent(\"error\")), t.element.dispatchEvent(new CustomEvent(\"loadend\"));\n });\n }\n }, e.prototype.open = function () {\n this.resultsTarget.hidden && (this.resultsTarget.hidden = !1, this.element.setAttribute(\"aria-expanded\", \"true\"), this.element.dispatchEvent(new CustomEvent(\"toggle\", {\n detail: {\n input: this.input,\n results: this.results\n }\n })));\n }, e.prototype.close = function () {\n this.resultsTarget.hidden || (this.resultsTarget.hidden = !0, this.inputTarget.removeAttribute(\"aria-activedescendant\"), this.element.setAttribute(\"aria-expanded\", \"false\"), this.element.dispatchEvent(new CustomEvent(\"toggle\", {\n detail: {\n input: this.input,\n results: this.results\n }\n })));\n }, s.src.get = function () {\n return this.data.get(\"url\");\n }, s.minLength.get = function () {\n var t = this.data.get(\"min-length\");\n return t ? parseInt(t, 10) : 0;\n }, Object.defineProperties(e.prototype, s), e;\n}(e.Controller);\n\ns.targets = [\"input\", \"hidden\", \"results\"], exports.Autocomplete = s;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * @license\n *\n * Push v1.0.9\n * =========\n * A compact, cross-browser solution for the JavaScript Notifications API\n *\n * Credits\n * -------\n * Tsvetan Tsvetkov (ttsvetko)\n * Alex Gibson (alexgibson)\n *\n * License\n * -------\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2017 Tyler Nickerson\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\n * all 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\n * THE SOFTWARE.\n */\n!function (i, t) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(t) : (i = i || self).Push = t();\n}(this, function () {\n \"use strict\";\n\n var i = {\n errors: {\n incompatible: \"\".concat(\"PushError:\", \" Push.js is incompatible with browser.\"),\n invalid_plugin: \"\".concat(\"PushError:\", \" plugin class missing from plugin manifest (invalid plugin). Please check the documentation.\"),\n invalid_title: \"\".concat(\"PushError:\", \" title of notification must be a string\"),\n permission_denied: \"\".concat(\"PushError:\", \" permission request declined\"),\n sw_notification_error: \"\".concat(\"PushError:\", \" could not show a ServiceWorker notification due to the following reason: \"),\n sw_registration_error: \"\".concat(\"PushError:\", \" could not register the ServiceWorker due to the following reason: \"),\n unknown_interface: \"\".concat(\"PushError:\", \" unable to create notification: unknown interface\")\n }\n };\n\n function t(i) {\n return (t = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? function (i) {\n return _typeof(i);\n } : function (i) {\n return i && \"function\" == typeof Symbol && i.constructor === Symbol && i !== Symbol.prototype ? \"symbol\" : _typeof(i);\n })(i);\n }\n\n function n(i, t) {\n if (!(i instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function e(i, t) {\n for (var n = 0; n < t.length; n++) {\n var e = t[n];\n e.enumerable = e.enumerable || !1, e.configurable = !0, \"value\" in e && (e.writable = !0), Object.defineProperty(i, e.key, e);\n }\n }\n\n function o(i, t, n) {\n return t && e(i.prototype, t), n && e(i, n), i;\n }\n\n function r(i, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n i.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: i,\n writable: !0,\n configurable: !0\n }\n }), t && c(i, t);\n }\n\n function s(i) {\n return (s = Object.setPrototypeOf ? Object.getPrototypeOf : function (i) {\n return i.__proto__ || Object.getPrototypeOf(i);\n })(i);\n }\n\n function c(i, t) {\n return (c = Object.setPrototypeOf || function (i, t) {\n return i.__proto__ = t, i;\n })(i, t);\n }\n\n function a(i, t) {\n return !t || \"object\" != _typeof(t) && \"function\" != typeof t ? function (i) {\n if (void 0 === i) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return i;\n }(i) : t;\n }\n\n var u = function () {\n function i(t) {\n n(this, i), this._win = t, this.GRANTED = \"granted\", this.DEFAULT = \"default\", this.DENIED = \"denied\", this._permissions = [this.GRANTED, this.DEFAULT, this.DENIED];\n }\n\n return o(i, [{\n key: \"request\",\n value: function value(i, t) {\n return arguments.length > 0 ? this._requestWithCallback.apply(this, arguments) : this._requestAsPromise();\n }\n }, {\n key: \"_requestWithCallback\",\n value: function value(i, t) {\n var n,\n e = this,\n o = this.get(),\n r = !1,\n s = function s() {\n var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : e._win.Notification.permission;\n r || (r = !0, void 0 === n && e._win.webkitNotifications && (n = e._win.webkitNotifications.checkPermission()), n === e.GRANTED || 0 === n ? i && i() : t && t());\n };\n\n o !== this.DEFAULT ? s(o) : this._win.webkitNotifications && this._win.webkitNotifications.checkPermission ? this._win.webkitNotifications.requestPermission(s) : this._win.Notification && this._win.Notification.requestPermission ? (n = this._win.Notification.requestPermission(s)) && n.then && n.then(s).catch(function () {\n t && t();\n }) : i && i();\n }\n }, {\n key: \"_requestAsPromise\",\n value: function value() {\n var i = this,\n t = this.get(),\n n = t !== this.DEFAULT,\n e = this._win.Notification && this._win.Notification.requestPermission,\n o = this._win.webkitNotifications && this._win.webkitNotifications.checkPermission;\n return new Promise(function (r, s) {\n var c,\n a = !1,\n u = function u(t) {\n a || (a = !0, !function (t) {\n return t === i.GRANTED || 0 === t;\n }(t) ? s() : r());\n };\n\n n ? u(t) : o ? i._win.webkitNotifications.requestPermission(function (i) {\n u(i);\n }) : e ? (c = i._win.Notification.requestPermission(u)) && c.then && c.then(u).catch(s) : r();\n });\n }\n }, {\n key: \"has\",\n value: function value() {\n return this.get() === this.GRANTED;\n }\n }, {\n key: \"get\",\n value: function value() {\n return this._win.Notification && this._win.Notification.permission ? this._win.Notification.permission : this._win.webkitNotifications && this._win.webkitNotifications.checkPermission ? this._permissions[this._win.webkitNotifications.checkPermission()] : navigator.mozNotification ? this.GRANTED : this._win.external && this._win.external.msIsSiteMode ? this._win.external.msIsSiteMode() ? this.GRANTED : this.DEFAULT : this.GRANTED;\n }\n }]), i;\n }(),\n f = function () {\n function i() {\n n(this, i);\n }\n\n return o(i, null, [{\n key: \"isUndefined\",\n value: function value(i) {\n return void 0 === i;\n }\n }, {\n key: \"isNull\",\n value: function value(i) {\n return null === obj;\n }\n }, {\n key: \"isString\",\n value: function value(i) {\n return \"string\" == typeof i;\n }\n }, {\n key: \"isFunction\",\n value: function value(i) {\n return i && \"[object Function]\" === {}.toString.call(i);\n }\n }, {\n key: \"isObject\",\n value: function value(i) {\n return \"object\" === t(i);\n }\n }, {\n key: \"objectMerge\",\n value: function value(i, t) {\n for (var n in t) {\n i.hasOwnProperty(n) && this.isObject(i[n]) && this.isObject(t[n]) ? this.objectMerge(i[n], t[n]) : i[n] = t[n];\n }\n }\n }]), i;\n }(),\n l = function i(t) {\n n(this, i), this._win = t;\n },\n h = function (i) {\n function t() {\n return n(this, t), a(this, s(t).apply(this, arguments));\n }\n\n return r(t, l), o(t, [{\n key: \"isSupported\",\n value: function value() {\n return void 0 !== this._win.Notification;\n }\n }, {\n key: \"create\",\n value: function value(i, t) {\n return new this._win.Notification(i, {\n icon: f.isString(t.icon) || f.isUndefined(t.icon) || f.isNull(t.icon) ? t.icon : t.icon.x32,\n body: t.body,\n tag: t.tag,\n requireInteraction: t.requireInteraction\n });\n }\n }, {\n key: \"close\",\n value: function value(i) {\n i.close();\n }\n }]), t;\n }(),\n _ = function (t) {\n function e() {\n return n(this, e), a(this, s(e).apply(this, arguments));\n }\n\n return r(e, l), o(e, [{\n key: \"isSupported\",\n value: function value() {\n return void 0 !== this._win.navigator && void 0 !== this._win.navigator.serviceWorker;\n }\n }, {\n key: \"getFunctionBody\",\n value: function value(i) {\n var t = i.toString().match(/function[^{]+{([\\s\\S]*)}$/);\n return null != t && t.length > 1 ? t[1] : null;\n }\n }, {\n key: \"create\",\n value: function value(t, n, e, o, r) {\n var s = this;\n this._win.navigator.serviceWorker.register(o), this._win.navigator.serviceWorker.ready.then(function (o) {\n var c = {\n id: t,\n link: e.link,\n origin: document.location.href,\n onClick: f.isFunction(e.onClick) ? s.getFunctionBody(e.onClick) : \"\",\n onClose: f.isFunction(e.onClose) ? s.getFunctionBody(e.onClose) : \"\"\n };\n void 0 !== e.data && null !== e.data && (c = Object.assign(c, e.data)), o.showNotification(n, {\n icon: e.icon,\n body: e.body,\n vibrate: e.vibrate,\n tag: e.tag,\n data: c,\n requireInteraction: e.requireInteraction,\n silent: e.silent\n }).then(function () {\n o.getNotifications().then(function (i) {\n o.active.postMessage(\"\"), r(i);\n });\n }).catch(function (t) {\n throw new Error(i.errors.sw_notification_error + t.message);\n });\n }).catch(function (t) {\n throw new Error(i.errors.sw_registration_error + t.message);\n });\n }\n }, {\n key: \"close\",\n value: function value() {}\n }]), e;\n }(),\n v = function (i) {\n function t() {\n return n(this, t), a(this, s(t).apply(this, arguments));\n }\n\n return r(t, l), o(t, [{\n key: \"isSupported\",\n value: function value() {\n return void 0 !== this._win.navigator.mozNotification;\n }\n }, {\n key: \"create\",\n value: function value(i, t) {\n var n = this._win.navigator.mozNotification.createNotification(i, t.body, t.icon);\n\n return n.show(), n;\n }\n }]), t;\n }(),\n d = function (i) {\n function t() {\n return n(this, t), a(this, s(t).apply(this, arguments));\n }\n\n return r(t, l), o(t, [{\n key: \"isSupported\",\n value: function value() {\n return void 0 !== this._win.external && void 0 !== this._win.external.msIsSiteMode;\n }\n }, {\n key: \"create\",\n value: function value(i, t) {\n return this._win.external.msSiteModeClearIconOverlay(), this._win.external.msSiteModeSetIconOverlay(f.isString(t.icon) || f.isUndefined(t.icon) ? t.icon : t.icon.x16, i), this._win.external.msSiteModeActivate(), null;\n }\n }, {\n key: \"close\",\n value: function value() {\n this._win.external.msSiteModeClearIconOverlay();\n }\n }]), t;\n }(),\n w = function (i) {\n function t() {\n return n(this, t), a(this, s(t).apply(this, arguments));\n }\n\n return r(t, l), o(t, [{\n key: \"isSupported\",\n value: function value() {\n return void 0 !== this._win.webkitNotifications;\n }\n }, {\n key: \"create\",\n value: function value(i, t) {\n var n = this._win.webkitNotifications.createNotification(t.icon, i, t.body);\n\n return n.show(), n;\n }\n }, {\n key: \"close\",\n value: function value(i) {\n i.cancel();\n }\n }]), t;\n }();\n\n return new (function () {\n function t(i) {\n n(this, t), this._currentId = 0, this._notifications = {}, this._win = i, this.Permission = new u(i), this._agents = {\n desktop: new h(i),\n chrome: new _(i),\n firefox: new v(i),\n ms: new d(i),\n webkit: new w(i)\n }, this._configuration = {\n serviceWorker: \"/serviceWorker.min.js\",\n fallback: function fallback(i) {}\n };\n }\n\n return o(t, [{\n key: \"_closeNotification\",\n value: function value(t) {\n var n = !0,\n e = this._notifications[t];\n\n if (void 0 !== e) {\n if (n = this._removeNotification(t), this._agents.desktop.isSupported()) this._agents.desktop.close(e);else if (this._agents.webkit.isSupported()) this._agents.webkit.close(e);else {\n if (!this._agents.ms.isSupported()) throw n = !1, new Error(i.errors.unknown_interface);\n\n this._agents.ms.close();\n }\n return n;\n }\n\n return !1;\n }\n }, {\n key: \"_addNotification\",\n value: function value(i) {\n var t = this._currentId;\n return this._notifications[t] = i, this._currentId++, t;\n }\n }, {\n key: \"_removeNotification\",\n value: function value(i) {\n var t = !1;\n return this._notifications.hasOwnProperty(i) && (delete this._notifications[i], t = !0), t;\n }\n }, {\n key: \"_prepareNotification\",\n value: function value(i, t) {\n var n,\n e = this;\n return n = {\n get: function get() {\n return e._notifications[i];\n },\n close: function close() {\n e._closeNotification(i);\n }\n }, t.timeout && setTimeout(function () {\n n.close();\n }, t.timeout), n;\n }\n }, {\n key: \"_serviceWorkerCallback\",\n value: function value(i, t, n) {\n var e = this,\n o = this._addNotification(i[i.length - 1]);\n\n navigator && navigator.serviceWorker && (navigator.serviceWorker.addEventListener(\"message\", function (i) {\n var t = JSON.parse(i.data);\n \"close\" === t.action && Number.isInteger(t.id) && e._removeNotification(t.id);\n }), n(this._prepareNotification(o, t))), n(null);\n }\n }, {\n key: \"_createCallback\",\n value: function value(i, t, n) {\n var e,\n o = this,\n r = null;\n if (t = t || {}, e = function e(i) {\n o._removeNotification(i), f.isFunction(t.onClose) && t.onClose.call(o, r);\n }, this._agents.desktop.isSupported()) try {\n r = this._agents.desktop.create(i, t);\n } catch (e) {\n var s = this._currentId,\n c = this.config().serviceWorker;\n this._agents.chrome.isSupported() && this._agents.chrome.create(s, i, t, c, function (i) {\n return o._serviceWorkerCallback(i, t, n);\n });\n } else this._agents.webkit.isSupported() ? r = this._agents.webkit.create(i, t) : this._agents.firefox.isSupported() ? this._agents.firefox.create(i, t) : this._agents.ms.isSupported() ? r = this._agents.ms.create(i, t) : (t.title = i, this.config().fallback(t));\n\n if (null !== r) {\n var a = this._addNotification(r),\n u = this._prepareNotification(a, t);\n\n f.isFunction(t.onShow) && r.addEventListener(\"show\", t.onShow), f.isFunction(t.onError) && r.addEventListener(\"error\", t.onError), f.isFunction(t.onClick) && r.addEventListener(\"click\", t.onClick), r.addEventListener(\"close\", function () {\n e(a);\n }), r.addEventListener(\"cancel\", function () {\n e(a);\n }), n(u);\n }\n\n n(null);\n }\n }, {\n key: \"create\",\n value: function value(t, n) {\n var e,\n o = this;\n if (!f.isString(t)) throw new Error(i.errors.invalid_title);\n return e = this.Permission.has() ? function (i, e) {\n try {\n o._createCallback(t, n, i);\n } catch (i) {\n e(i);\n }\n } : function (e, r) {\n o.Permission.request().then(function () {\n o._createCallback(t, n, e);\n }).catch(function () {\n r(i.errors.permission_denied);\n });\n }, new Promise(e);\n }\n }, {\n key: \"count\",\n value: function value() {\n var i,\n t = 0;\n\n for (i in this._notifications) {\n this._notifications.hasOwnProperty(i) && t++;\n }\n\n return t;\n }\n }, {\n key: \"close\",\n value: function value(i) {\n var t;\n\n for (t in this._notifications) {\n if (this._notifications.hasOwnProperty(t) && this._notifications[t].tag === i) return this._closeNotification(t);\n }\n }\n }, {\n key: \"clear\",\n value: function value() {\n var i,\n t = !0;\n\n for (i in this._notifications) {\n this._notifications.hasOwnProperty(i) && (t = t && this._closeNotification(i));\n }\n\n return t;\n }\n }, {\n key: \"supported\",\n value: function value() {\n var i = !1;\n\n for (var t in this._agents) {\n this._agents.hasOwnProperty(t) && (i = i || this._agents[t].isSupported());\n }\n\n return i;\n }\n }, {\n key: \"config\",\n value: function value(i) {\n return (void 0 !== i || null !== i && f.isObject(i)) && f.objectMerge(this._configuration, i), this._configuration;\n }\n }, {\n key: \"extend\",\n value: function value(t) {\n var n,\n e = {}.hasOwnProperty;\n if (!e.call(t, \"plugin\")) throw new Error(i.errors.invalid_plugin);\n\n for (var o in e.call(t, \"config\") && f.isObject(t.config) && null !== t.config && this.config(t.config), n = new (0, t.plugin)(this.config())) {\n e.call(n, o) && f.isFunction(n[o]) && (this[o] = n[o]);\n }\n }\n }]), t;\n }())(\"undefined\" != typeof window ? window : global);\n});","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActionCable = {});\n})(this, function (exports) {\n \"use strict\";\n\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n\n messages.push(Date.now());\n\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [\"[ActionCable]\"].concat(messages));\n }\n }\n };\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var 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 var now = function now() {\n return new Date().getTime();\n };\n\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n\n var ConnectionMonitor = function () {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n\n this.pollTimeout = setTimeout(function () {\n _this.reconnectIfStale();\n\n _this.poll();\n }, this.getPollInterval());\n };\n\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval,\n min = _constructor$pollInte.min,\n max = _constructor$pollInte.max,\n multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n\n if (document.visibilityState === \"visible\") {\n setTimeout(function () {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \" + document.visibilityState);\n\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n\n return ConnectionMonitor;\n }();\n\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n };\n var message_types = INTERNAL.message_types,\n protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n\n var Connection = function () {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n },\n allowReconnect = _ref.allowReconnect;\n\n if (!allowReconnect) {\n this.monitor.stop();\n }\n\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return indexOf.call(states, this.getState()) >= 0;\n };\n\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n\n return null;\n };\n\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function () {};\n }\n };\n\n return Connection;\n }();\n\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n\n var _JSON$parse = JSON.parse(event.data),\n identifier = _JSON$parse.identifier,\n message = _JSON$parse.message,\n reason = _JSON$parse.reason,\n reconnect = _JSON$parse.reconnect,\n type = _JSON$parse.type;\n\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n\n if (this.disconnected) {\n return;\n }\n\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n\n return object;\n };\n\n var Subscription = function () {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n\n return Subscription;\n }();\n\n var Subscriptions = function () {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.subscriptions = [];\n }\n\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.sendCommand(subscription, \"subscribe\");\n return subscription;\n };\n\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n\n return subscription;\n };\n\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n\n return this.findAll(identifier).map(function (subscription) {\n _this.forget(subscription);\n\n _this.notify(subscription, \"rejected\");\n\n return subscription;\n });\n };\n\n Subscriptions.prototype.forget = function forget(subscription) {\n this.subscriptions = this.subscriptions.filter(function (s) {\n return s !== subscription;\n });\n return subscription;\n };\n\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function (s) {\n return s.identifier === identifier;\n });\n };\n\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n\n return this.subscriptions.map(function (subscription) {\n return _this2.sendCommand(subscription, \"subscribe\");\n });\n };\n\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return this.subscriptions.map(function (subscription) {\n return _this3.notify.apply(_this3, [subscription, callbackName].concat(args));\n });\n };\n\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n var subscriptions = void 0;\n\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n\n return subscriptions.map(function (subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n\n return Subscriptions;\n }();\n\n var Consumer = function () {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n\n createClass(Consumer, [{\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n }]);\n return Consumer;\n }();\n\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\n\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\n\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/** Used as references for various `Number` constants. */\n\nvar NAN = 0 / 0;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\n/** Used to match leading and trailing whitespace. */\n\nvar reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\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 */\n\nvar now = function now() {\n return root.Date.now();\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 */\n\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\n wait = toNumber(wait) || 0;\n\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 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; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // 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\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\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 lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\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 */\n\n\nfunction isObject(value) {\n var type = _typeof(value);\n\n return !!value && (type == 'object' || type == 'function');\n}\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 */\n\n\nfunction isObjectLike(value) {\n return !!value && _typeof(value) == 'object';\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 */\n\n\nfunction isSymbol(value) {\n return _typeof(value) == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\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 */\n\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = debounce;","var map = {\n\t\"./after_signup/step_users_controller.js\": 23,\n\t\"./auth/login_controller.js\": 108,\n\t\"./auth/timezone_guess_controller.js\": 24,\n\t\"./better_errors_controller.js\": 25,\n\t\"./chk_autohide_controller.js\": 26,\n\t\"./chk_autosubmit_controller.js\": 27,\n\t\"./color_controller.js\": 28,\n\t\"./customers/form_contacts_controller.js\": 29,\n\t\"./dashboard/overview_item_controller.js\": 30,\n\t\"./drag_controller.js\": 109,\n\t\"./expandable_controller.js\": 31,\n\t\"./filterable_list_controller.js\": 32,\n\t\"./format_money_controller.js\": 33,\n\t\"./loader_controller.js\": 34,\n\t\"./modal_content_controller.js\": 35,\n\t\"./modal_controller.js\": 36,\n\t\"./my/profile_edit_controller.js\": 37,\n\t\"./notes/create_note_controller.js\": 38,\n\t\"./notifications_controller.js\": 39,\n\t\"./page_controller.js\": 40,\n\t\"./products/form_controller.js\": 41,\n\t\"./products/form_items_controller.js\": 42,\n\t\"./products/form_variants_controller.js\": 43,\n\t\"./proposals/change_status_controller.js\": 44,\n\t\"./proposals/dates_controller.js\": 45,\n\t\"./quotations/change_status_controller.js\": 46,\n\t\"./quotations/dates_controller.js\": 47,\n\t\"./quotations/form_items_controller.js\": 48,\n\t\"./quotations/form_items_new_controller.js\": 49,\n\t\"./quotations/form_terms_controller.js\": 50,\n\t\"./quotations/preview_controller.js\": 51,\n\t\"./readmoreless_controller.js\": 110,\n\t\"./remote_controller.js\": 52,\n\t\"./select_autosubmit_controller.js\": 53,\n\t\"./select_listener_controller.js\": 54,\n\t\"./select_tree_controller.js\": 55,\n\t\"./select_wrapper_controller.js\": 56,\n\t\"./table_sum_controller.js\": 57,\n\t\"./tablerow_sum_controller.js\": 58,\n\t\"./term_groups/form_terms_controller.js\": 59,\n\t\"./themes/cover_options_controller.js\": 60,\n\t\"./themes/creator_carousel_controller.js\": 61,\n\t\"./themes/form_controller.js\": 62,\n\t\"./themes/margin_setting_controller.js\": 63,\n\t\"./time_ago_controller.js\": 64,\n\t\"./timezone_controller.js\": 65,\n\t\"./tiny_controller.js\": 66,\n\t\"./tooltip_controller.js\": 67,\n\t\"./workspaces/form_controller.js\": 68,\n\t\"./workspaces/select_emails_controller.js\": 69\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 22;","import ApplicationController from \"application_controller\";\n\n/*\n * after-signup--step-users\n */\nexport default class extends ApplicationController {\n static targets = [\n \"selUsers\",\n \"selAccessLevel\",\n \"tbody\",\n \"count\",\n \"hiddenMembers\",\n ];\n\n static values = {\n levels: Array,\n members: String,\n };\n\n initialize() {\n this._members = [];\n this._levelNames = {};\n }\n\n connect() {\n this.levelsValue.forEach((x) => {\n const [title, value] = x;\n this._levelNames[value] = title;\n });\n\n const members = (this.membersValue || \"\")\n .split(\",\")\n .map((x) => x.split(\":\"))\n .filter((x) => x.length === 2);\n\n if (members.length) {\n this._members = members;\n this.renderMembers();\n }\n }\n\n // events -------------------------------------------------------------------\n\n onAdd = () => {\n const users = $(this.selUsersTarget)\n .val()\n .map((x) => x.split(\":\")[1]);\n const accessLevel = $(this.selAccessLevelTarget).val();\n\n users.forEach((x) => {\n const email = x.trim();\n if (!this._members.some((m) => m[0] === email))\n this._members.push([x, accessLevel]);\n });\n\n this.saveToHiddenField();\n $(this.selUsersTarget).val(null).trigger(\"change\");\n };\n\n onRemove = (e) => {\n const idx = parseInt(e.srcElement.closest(\"button\").dataset.id, 10) - 1;\n this._members.splice(idx, 1);\n\n this.saveToHiddenField();\n };\n\n // methods: private ..........................................................\n\n saveToHiddenField = () => {\n this.hiddenMembersTarget.value = this._members\n .map((x) => {\n return `${x[0]}:${x[1]}`;\n })\n .join(\",\");\n\n this.renderMembers();\n };\n\n renderMembers = () => {\n this.countTarget.innerHTML = this._members.length + 1;\n\n this.tbodyTarget.querySelectorAll(\"tr.js-new-member\").forEach((x) => {\n this.tbodyTarget.removeChild(x);\n });\n\n let i = 0;\n this._members.forEach((x) => {\n i += 1;\n this.renderMember(i, x[0], this._levelNames[x[1]]);\n });\n };\n\n renderMember = (id, email, accessLevel) => {\n const tr = document.createElement(\"tr\");\n tr.className = \"js-new-member\";\n tr.innerHTML = `\n \n
\n
\n ${email}\n
\n
\n \n\n \n \n\n
\n \n ${accessLevel}\n \n
\n\n \n `;\n\n this.tbodyTarget.appendChild(tr);\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n this._guessTimeZone();\n }\n\n // methods - private --------------------------------------------------------\n\n _guessTimeZone() {\n this.element.value = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n show() {\n Turbolinks.visit(\"/__better_errors\"); // eslint-disable-line no-undef\n }\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static values = {\n target: String,\n };\n\n connect() {\n this._target = document.querySelector(this.targetValue);\n this._target.classList.toggle(\"d-none\", !this.element.checked);\n this.element.addEventListener(\"change\", this.onChange);\n }\n\n disconnect() {\n this.element.removeEventListener(\"ajax:before\", this.onChange);\n }\n\n // events ...................................................................\n\n onChange = () => {\n const { checked } = this.element;\n\n this.highlightToggle(this._target, checked);\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n this._submitter = document.getElementById(this.data.get(\"submitter\"));\n\n this._submitter.addEventListener(\"ajax:before\", this.onBefore);\n this._submitter.addEventListener(\"ajax:complete\", this.onComplete);\n }\n\n disconnect() {\n this._submitter.removeEventListener(\"ajax:before\", this.onBefore);\n this._submitter.removeEventListener(\"ajax:complete\", this.onComplete);\n }\n\n // events ...................................................................\n\n onChange = (e) => {\n const { checked } = e.target;\n this._submitter.dataset.params = `no_redirect=true&${e.target.name}=${checked}`;\n this._submitter.click();\n };\n\n onBefore = () => {\n this.uiLoading(true);\n };\n\n onComplete = () => {\n this.uiLoading(false);\n };\n\n uiLoading = (loading) => {\n this.element.disabled = loading;\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"field\", \"suggest\"];\n\n connect() {\n this.suggestTargets.forEach((x) => {\n x.addEventListener(\"click\", this.onSuggest);\n });\n }\n\n disconnect() {\n this.suggestTargets.forEach((x) =>\n x.removeEventListener(\"click\", this.onSuggest)\n );\n }\n\n // events ...................................................................\n\n onSuggest = (e) => {\n e.preventDefault();\n const { color } = e.target.dataset;\n this.fieldTarget.value = color;\n this.fieldTarget.select();\n };\n}\n","import ApplicationController from \"application_controller\";\nimport Swal from \"sweetalert2\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\"btnAddContact\", \"template\", \"wrapper\", \"editButton\"];\n\n initialize() {\n this.showMode = this.data.get(\"showMode\") === \"true\";\n this.showSubmit = this.data.get(\"submit\") === \"true\";\n this._originalForms = {};\n }\n\n connect() {\n if (!this.showMode) this.initEditMode();\n }\n\n // events -------------------------------------------------------------------\n\n onAddContact(e) {\n e.preventDefault();\n\n const content = this.templateTarget.innerHTML.replace(\n /TEMPLATE_RECORD/g,\n new Date().valueOf()\n );\n this.btnAddContactTarget.insertAdjacentHTML(\"beforebegin\", content);\n\n if (this.showMode) this.element.classList.add(\"js-editing\");\n\n this.highlightLast(\n this.wrapperTarget.querySelectorAll(\".customer-contact--editing\")\n );\n }\n\n onCancel(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".customer-contact\");\n if (this.showMode) this.element.classList.remove(\"js-editing\");\n\n if (this.newRecord(item)) {\n this.highlightRemoval(item, () => item.remove());\n return;\n }\n\n item.classList.remove(\"customer-contact--editing\");\n this.highlight(item);\n\n const id = this._contactId(item);\n\n if (!this._originalForms[id]) {\n console.warn(\"onCancel -- _originalForms missing\", { id });\n return;\n }\n\n item.querySelector(\n \".customer-contact-form\"\n ).innerHTML = this._originalForms[id];\n }\n\n onEditContact(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".customer-contact\");\n item.classList.add(\"customer-contact--editing\");\n\n this._saveOriginalForm(item);\n e.target.display = \"none\";\n\n if (this.showMode) this.element.classList.add(\"js-editing\");\n this.highlight(item);\n }\n\n onRemoveContact(e) {\n e.preventDefault();\n\n const swalOptions = {\n title: I18n.t(\"delete_confirm\"),\n html: e.target.dataset.title,\n showCancelButton: true,\n confirmButtonText: I18n.t(\"data_confirm.commit\"),\n cancelButtonText: I18n.t(\"data_confirm.cancel\"),\n focusCancel: true,\n customClass: {\n container: `DataConfirmModal DataConfirmModal--danger`,\n title: `card-header bg-danger text-white my-0 w-100`,\n confirmButton: `btn btn-danger waves-effect waves-light`,\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n };\n\n Swal.fire(swalOptions).then((result) => {\n if (!result.value) return;\n const item = e.target.closest(\".customer-contact\");\n const id = this._contactId(item);\n\n this.highlightRemoval(item, () => {\n if (id) {\n // ajax remove\n item.querySelector(\"input[name*='_destroy']\").value = 1;\n item.style.display = \"none\";\n if (this.showMode) this._submitForm(item);\n } else {\n // remove from dom only\n item.parentNode.removeChild(item);\n }\n });\n });\n }\n\n // methods: private ..........................................................\n\n _saveOriginalForm(item) {\n const id = item.getAttribute(\"data-contact-id\");\n\n if (this._originalForms[id]) return;\n\n this._originalForms[id] = item.querySelector(\n \".customer-contact-form\"\n ).innerHTML;\n }\n\n _submitForm(item) {\n item.closest(\".customer-form\").submit();\n }\n\n _contactId(item) {\n return item.getAttribute(\"data-contact-id\");\n }\n\n newRecord(item) {\n return item.hasAttribute(\"data-contact-new\");\n }\n\n initEditMode() {\n this.editButtonTargets.forEach((x) => {\n const item = x.closest(\".customer-contact\");\n item.classList.add(\"customer-contact--editing\");\n });\n }\n}\n","import { Controller } from \"stimulus\";\nimport ApexCharts from \"apexcharts\";\n\nexport default class extends Controller {\n static targets = [\"chart\"];\n\n static values = { value: Number, total: Number, color: String };\n\n connect() {\n const options = {\n chart: {\n height: 120,\n type: \"radialBar\",\n toolbar: {\n show: false,\n },\n },\n series: [(100 * this.valueValue) / (this.totalValue || 1)],\n colors: [this.colorValue],\n plotOptions: {\n radialBar: {\n hollow: {\n margin: 0,\n size: \"40%\",\n },\n dataLabels: {\n show: false,\n },\n },\n },\n stroke: {\n lineCap: \"round\",\n },\n labels: [\"Label\"],\n };\n\n this._chart = new ApexCharts(this.chartTarget, options);\n this._chart.render();\n }\n\n disconnect() {\n if (this._chart) this._chart.destroy();\n }\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static targets = [\"title\", \"content\", \"indicator\"];\n\n connect() {\n this._hasContent =\n this.hasContentTarget && !this.isBlank(this.contentTarget.innerText);\n this._expanded = false;\n\n if (this._hasContent) {\n this.element.classList.add(\"q-expandable-wrapper\");\n this.titleTarget.addEventListener(\"click\", this.onToggleContent);\n this.titleTarget.classList.add(\"q-expandable\");\n } else if (this.hasExpandedIndicatorTarget)\n this.indicatorTarget.classList.add(\"d-none\");\n }\n\n disconnect() {\n if (this.hasContent)\n this.titleTarget.removeEventListener(\"click\", this.onToggleContent);\n }\n\n onToggleContent = () => {\n this._expanded = !this._expanded;\n this.element.classList.toggle(\n \"q-expandable-wrapper--expanded\",\n this._expanded\n );\n this.contentTarget.classList.toggle(\"d-none\", !this._expanded);\n this.indicatorTarget.classList.toggle(\"fa-rotate-180\", this._expanded);\n };\n}\n","import Rails from \"@rails/ujs\";\nimport { Controller } from \"stimulus\";\n\nexport default class FilterableList extends Controller {\n static targets = [\"submitOnClick\", \"withUpdateLink\"];\n\n connect() {\n this.url = this.element.getAttribute(\"action\");\n this.listHolderEl = document.getElementById(this.data.get(\"holder\"));\n\n this.timer = null;\n this.element.addEventListener(\"qoteit:search:resubmit\", this.onSubmit);\n this.element.addEventListener(\n \"qoteit:search:refresh-listeners\",\n this.onRefreshListeners\n );\n this.onRefreshListeners();\n }\n\n onRefreshListeners = () => {\n this.removeListeners();\n\n this.inputs = Array.prototype.slice\n .call(this.element.elements)\n .filter((x) => [\"search\", \"text\", \"checkbox\"].indexOf(x.type) >= 0)\n .filter((x) => !x.hasAttribute(\"data-no-auto-search\"));\n\n this.inputs.forEach((x) => {\n x.addEventListener(\"input\", this.onSubmit);\n });\n\n this.submitOnClickTargets.forEach((x) => {\n x.addEventListener(\"click\", this.onSubmit);\n });\n };\n\n disconnect() {\n this.removeListeners();\n }\n\n removeListeners = () => {\n if (this.inputs)\n this.inputs.forEach((x) => x.removeEventListener(\"input\", this.onSubmit));\n\n this.submitOnClickTargets.forEach((x) =>\n x.removeEventListener(\"click\", this.onSubmit)\n );\n };\n\n // methods: private .........................................................\n\n onSubmit = () => {\n clearTimeout(this.timer);\n this.timer = setTimeout(this.callApi, 500);\n $(\".alert\").alert(\"close\");\n };\n\n updateLinkHref = (formSerialized) => {\n this.withUpdateLinkTargets.forEach((link) => {\n const params = new URLSearchParams(formSerialized).toString();\n link.href = `${link.href.split(\"?\")[0]}?${params.toString()}`;\n });\n };\n\n callApi = () => {\n $(this.listHolderEl).fadeTo(250, 0.5);\n\n let formSerialized = Rails.serializeElement(this.element);\n const formSerializedParams = new URLSearchParams(formSerialized);\n formSerializedParams.forEach((v, k) => {\n if (v === \"\") formSerializedParams.delete(k);\n });\n formSerialized = formSerializedParams.toString();\n\n const formData = `${formSerialized.split(\"?\")[0]}&partial=true`;\n const newUrl = `${this.url.split(\"?\")[0]}?${formSerialized}`;\n\n this.updateLinkHref(formSerialized);\n\n Rails.ajax({\n type: \"GET\",\n url: this.url,\n data: formData,\n dataType: \"script\",\n complete: () => {\n $(this.listHolderEl).fadeTo(250, 1);\n },\n success: () => {\n // Change url so if user reload a page - search results are saved\n window.history.replaceState({ page: newUrl }, document.title, newUrl);\n },\n });\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n this.element.innerHTML = window.formatMoney(this.element.dataset.value);\n }\n}\n","import ApplicationController from \"application_controller\";\nimport debounced from \"debounced\";\n\nexport default class extends ApplicationController {\n static targets = [\"field\", \"suggest\"];\n\n static values = {\n url: String,\n object: Object,\n };\n\n initialize() {\n this._debouncedUpdate = debounced.debounce(this.onUpdate, { wait: 200 });\n this._objectId = this.objectVal;\n }\n\n connect() {}\n\n disconnect() {}\n\n get objectVal() {\n return this.objectValue?.id ? this.objectValue.id.toString() : \"\";\n }\n\n // events ...................................................................\n\n onUpdate = () => {\n const parsedUrl = this.urlValue.replace(\"LOADER_OBJECT_ID\", this._objectId);\n\n const html = `\n
\n
\n
Loading...
\n
\n
\n `;\n\n this.element.innerHTML = html;\n };\n\n objectValueChanged = () => {\n const newId = this.objectVal;\n if (newId === this._objectId) return;\n\n this._objectId = newId;\n this._debouncedUpdate();\n };\n}\n","import { Controller } from \"stimulus\";\nimport Swal from \"sweetalert2\";\n\nexport default class extends Controller {\n onCancel = () => {\n Swal.close();\n };\n}\n","import ApplicationController from \"application_controller\";\nimport Swal from \"sweetalert2\";\n\nexport default class extends ApplicationController {\n connect() {\n if (this.isTurbolinksPreview) return;\n this.show();\n }\n\n disconnect() {\n this.element.remove();\n }\n\n show() {\n const options = {\n showConfirmButton: false,\n html: this.element.innerHTML,\n customClass: {\n container: \"modal-container\",\n },\n didOpen: this.onDidOpen,\n didDestroy: this.onDidDestroy,\n willClose: this.onWillClose,\n allowOutsideClick: false,\n allowEscapeKey: false,\n allowEnterKey: false,\n };\n\n Swal.fire(options);\n }\n\n onDidOpen = (el) => {\n this.scrollTo(el);\n };\n\n onDidDestroy = () => {\n this.element.remove();\n };\n\n onWillClose = (el) => {\n this.removeTinyMceEditors(el);\n };\n\n // helpers ..................................................................\n\n removeTinyMceEditors = (el) => {\n const editors = el.querySelectorAll(\"[data-controller=tiny]\");\n editors.forEach((x) => {\n window.tinymce.remove(`#${x.id}`);\n });\n };\n}\n","import { Controller } from \"stimulus\";\n\n/*\n * my--profile-edit\n */\nexport default class extends Controller {\n static targets = [\"destroy\", \"timezoneGuess\", \"timezoneSelect\"];\n\n connect() {\n this._dropifyMount();\n this._guessTimeZone();\n }\n\n disconnect() {\n this._dropifyUnMount();\n }\n\n // methods - private --------------------------------------------------------\n\n _dropifyMount() {\n this._dropify = $(\".dropify\").dropify();\n\n this._dropify.on(\"dropify.afterClear\", () => {\n this.destroyTarget.value = \"true\";\n });\n\n this._dropify.on(\"dropify.fileReady\", (event, success) => {\n if (!success) return;\n\n this.destroyTarget.value = \"false\";\n });\n }\n\n _dropifyUnMount() {\n this._dropify.each(() => {\n const instance = $(this).data(\"dropify\");\n if (instance) instance.destroy();\n });\n }\n\n _guessTimeZone() {\n if (!this.hasTimezoneGuessTarget || this.timezoneGuessTarget.value) return;\n\n const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;\n this.timezoneGuessTarget.value = tz;\n }\n}\n","import ApplicationController from \"application_controller\";\nimport Swal from \"sweetalert2\";\nimport I18n from \"lib/i18n\";\nimport Rails from \"@rails/ujs\";\n\nexport default class extends ApplicationController {\n static values = { id: Number, url: String, title: String };\n\n connect() {\n this.element.addEventListener(\"click\", this.onShow);\n }\n\n initialize() {\n this._id = this.idValue;\n this._url = this.urlValue;\n }\n\n onShow = (e) => {\n e.preventDefault();\n const _title = this.titleValue;\n Rails.ajax({\n type: \"GET\",\n url: this._url,\n data: \"\",\n error: (er) => {\n console.warn(\"notes::create -- error\", { er });\n this.uiLoading(I18n.t(\"error_api\"));\n },\n success(doc) {\n const html = doc.getElementById(\"tplCreateNote\").innerHTML;\n const swalOptions = {\n title: I18n.t(\"create_note.title\", { title: _title }),\n html,\n showCancelButton: false,\n showConfirmButton: false,\n customClass: {\n container: \"DataConfirmModal DataConfirmModal--create-note\",\n title: \"card-header bg-dark text-white my-0 w-100\",\n confirmButton: \"btn btn-primary waves-effect waves-light\",\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n };\n Swal.fire(swalOptions).then(() => {\n window.tinymce.remove();\n });\n },\n });\n };\n}\n","import { Controller } from \"stimulus\";\nimport Push from \"push.js\";\nimport Swal from \"sweetalert2\";\n\nexport default class extends Controller {\n static targets = [\"count\"];\n\n connect() {\n this.refreshCountTarget(this.unopenedCount);\n this.listenDispatchEvent();\n }\n\n disconnect() {\n this.element.removeEventListener(\"event_occurred\", this.onEventOccurred);\n }\n\n listenDispatchEvent() {\n this.element.addEventListener(\n \"event_occurred\",\n this.onEventOccurred,\n false\n );\n }\n\n onEventOccurred = (e) => {\n const notification = e.detail;\n\n if (notification.unopenedCount)\n this.unopenedCount = notification.unopenedCount;\n\n this.showToast(notification);\n this.showPush(notification);\n };\n\n showToast(notification) {\n const options = {\n position: \"bottom-end\",\n showConfirmButton: false,\n html: notification.body,\n timer: 8000,\n timerProgressBar: true,\n toast: true,\n };\n\n if (notification.icon)\n options.iconHtml = ``;\n\n Swal.fire(options);\n }\n\n showPush(notification) {\n const title = $(notification.body)\n .find(\".notification-title-value\")\n .first()\n .text();\n Push.create(`QoteIt: ${title}`, { timeout: 5000 });\n }\n\n refreshCountTarget(count) {\n if (count > 0)\n $(this.countTarget).html(\n `${count}`\n );\n else $(this.countTarget).html(\"\");\n }\n\n get unopenedCount() {\n return parseInt(this.data.get(\"unopenedCount\"), 10);\n }\n\n set unopenedCount(value) {\n this.data.set(\"unopenedCount\", value);\n this.refreshCountTarget(value);\n }\n}\n","/* eslint-disable */\nimport ApplicationController from \"application_controller\";\nimport debounced from \"debounced\";\n\nexport default class extends ApplicationController {\n connect() {\n this.init();\n\n this.element.addEventListener(\"PaddleCallbackResult\", this.onPaddleResult);\n }\n\n init() {\n this.initTheme();\n this.initLocales();\n this.select2Mount();\n // this._toastMount();\n }\n\n disconnect() {\n this.select2UnMount();\n // this._toastUnMount();\n }\n\n onPaddleResult = ({ detail }) => {\n // console.info(\"onPaddleResult\", detail.event, detail.eventData);\n };\n\n // methods - private --------------------------------------------------------\n\n select2Mount() {\n this.select2 = $(\".select2\").select2({\n width: \"resolve\",\n dropdownAutoWidth: true,\n });\n }\n\n select2UnMount() {\n this.select2.select2(\"destroy\");\n }\n\n initTheme() {\n this.initMainIconMenu();\n this.initTopbarMenu();\n this.initNavbarMenu();\n Waves.init();\n }\n\n initLocales() {\n let locale = window.App.config.locale || \"en\";\n $.timeago.settings.strings = jQuery.timeago.translations[locale];\n }\n\n // theme -----------------------------------------------------------------{{{\n\n initMainIconMenu() {\n const pageUrl = window.location.href.split(/[?#]/)[0];\n $(\".navigation-menu a\").each(function () {\n if (this.href === pageUrl) {\n $(this).parent().addClass(\"active\"); // add active to li of the current link\n $(this).parent().parent().parent().parent().addClass(\"show\");\n $(this).parent().parent().addClass(\"show\");\n $(this).parent().parent().parent().addClass(\"active\"); // add active class to an anchor\n $(this).parent().parent().parent().parent().addClass(\"active\");\n $(this).parent().parent().parent().parent().parent().addClass(\"in\");\n $(this).parent().parent().parent().parent().parent().addClass(\"active\"); // add active class to an anchor\n }\n });\n }\n\n initTopbarMenu() {\n $(\".navbar-toggle\").on(\"click\", function (event) {\n $(this).toggleClass(\"open\");\n $(\"#navigation\").toggleClass(\"open\");\n });\n\n $(\".navigation-menu>li\").slice(-2).addClass(\"last-elements\");\n\n $('.navigation-menu li.has-submenu a[href=\"#\"]').on(\"click\", function (e) {\n if ($(window).width() < 992) {\n e.preventDefault();\n $(this)\n .parent(\"li\")\n .toggleClass(\"open\")\n .find(\".submenu:first\")\n .toggleClass(\"open\");\n }\n });\n }\n\n initNavbarMenu() {\n $(\".has-submenu\").on(\"click\", function (e) {\n e.preventDefault();\n $(this).addClass(\"active\");\n $(this).siblings().removeClass(\"active\");\n $(\".submenu-tab\").addClass(\"show\");\n const targ = $(this).attr(\"href\");\n $(targ).addClass(\"active\");\n $(targ).siblings().removeClass(\"active\");\n });\n $(\".submenu li\").on(\"click\", function (e) {\n // e.preventDefault();\n $(this).addClass(\"active\");\n $(this).siblings().removeClass(\"active\");\n window.location.href = e.target.href;\n });\n }\n\n // theme -----------------------------------------------------------------}}}\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"type\",\n \"paneAddon\",\n \"paneTypeStandalone\",\n \"paneTypeVariable\",\n \"paneTypeGrouped\",\n ];\n\n connect() {\n this.initTypeRadio();\n this.updateUi();\n }\n\n initTypeRadio() {\n this.typeTargets.forEach((x) => {\n if (x.checked) this.selectedType = x.value;\n\n x.closest(\"label\").addEventListener(\"click\", () =>\n this.onProductTypeChange(x.value)\n );\n });\n }\n\n onChkAddonChange() {\n this.updatePaneAddon(true);\n }\n\n onProductTypeChange = (val) => {\n if (this.selectedType === val) return;\n\n this.selectedType = val;\n this.updatePaneTypes();\n };\n\n updatePaneAddon(inversed = false) {\n const { checked } = this.element.querySelector(\"input#product_is_addon\");\n this.paneAddonTarget.classList.toggle(\n \"d-none\",\n inversed ? checked : !checked\n );\n }\n\n updatePaneTypes() {\n this.paneTypeStandaloneTarget.classList.toggle(\n \"d-none\",\n this.selectedType !== \"standalone\" && this.selectedType !== \"grouped\"\n );\n this.paneTypeVariableTarget.classList.toggle(\n \"d-none\",\n this.selectedType !== \"variable\"\n );\n this.paneTypeGroupedTarget.classList.toggle(\n \"d-none\",\n this.selectedType !== \"grouped\"\n );\n }\n\n updateUi() {\n this.updatePaneAddon();\n this.updatePaneTypes();\n }\n}\n","import ApplicationController from \"application_controller\";\nimport Swal from \"sweetalert2\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\"btnAddProductItem\", \"template\", \"wrapper\", \"editButton\"];\n\n initialize() {\n this.showMode = this.data.get(\"showMode\") === \"true\";\n this.showSubmit = this.data.get(\"submit\") === \"true\";\n this._originalForms = {};\n }\n\n connect() {\n if (!this.showMode) this.initEditMode();\n }\n\n // events -------------------------------------------------------------------\n\n onAddItem(e) {\n e.preventDefault();\n\n const content = this.templateTarget.innerHTML.replace(\n /TEMPLATE_RECORD/g,\n new Date().valueOf()\n );\n this.btnAddProductItemTarget.insertAdjacentHTML(\"beforebegin\", content);\n\n if (this.showMode) this.element.classList.add(\"js-editing\");\n\n this.highlightLast(\n this.wrapperTarget.querySelectorAll(\".product-item--editing\")\n );\n }\n\n onCancel(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".product-item\");\n if (this.showMode) this.element.classList.remove(\"js-editing\");\n\n if (this.newRecord(item)) {\n this.highlightRemoval(item, () => item.remove());\n return;\n }\n\n item.classList.remove(\"product-item--editing\");\n this.highlight(item);\n\n const id = this._itemId(item);\n\n if (!this._originalForms[id]) {\n console.warn(\"onCancel -- _originalForms missing\", { id });\n return;\n }\n\n this._restoreOriginalForm(item);\n }\n\n onEditItem(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".product-item\");\n item.classList.add(\"product-item--editing\");\n\n this._saveOriginalForm(item);\n this._restoreOriginalForm(item); // to reinitialize select2\n e.target.display = \"none\";\n\n if (this.showMode) this.element.classList.add(\"js-editing\");\n this.highlight(item);\n }\n\n onRemoveItem(e) {\n e.preventDefault();\n\n const swalOptions = {\n title: I18n.t(\"delete_confirm\"),\n html: e.target.dataset.title,\n showCancelButton: true,\n confirmButtonText: I18n.t(\"data_confirm.commit\"),\n cancelButtonText: I18n.t(\"data_confirm.cancel\"),\n focusCancel: true,\n customClass: {\n container: `DataConfirmModal DataConfirmModal--danger`,\n title: `card-header bg-danger text-white my-0 w-100`,\n confirmButton: `btn btn-danger waves-effect waves-light`,\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n };\n\n Swal.fire(swalOptions).then((result) => {\n if (!result.value) return;\n const item = e.target.closest(\".product-item\");\n const id = this._itemId(item);\n\n this.highlightRemoval(item, () => {\n if (id) {\n // ajax remove\n item.querySelector(\"input[name*='_destroy']\").value = 1;\n item.style.display = \"none\";\n if (this.showMode) this._submitForm(item);\n } else {\n // remove from dom only\n item.parentNode.removeChild(item);\n }\n });\n });\n }\n\n // methods: private ..........................................................\n\n _saveOriginalForm(item) {\n const id = this._itemId(item);\n\n if (this._originalForms[id]) return;\n\n const form = item.querySelector(\".product-item-form\");\n\n const controller = this.application.getControllerForElementAndIdentifier(\n form.querySelector(\"select\"),\n \"select-tree\"\n );\n\n if (controller) controller.disconnect();\n\n this._originalForms[id] = form.innerHTML;\n }\n\n _restoreOriginalForm(item) {\n const id = this._itemId(item);\n item.querySelector(\".product-item-form\").innerHTML = this._originalForms[\n id\n ];\n }\n\n _submitForm(item) {\n item.closest(\".product-form\").submit();\n }\n\n _itemId(item) {\n return item.getAttribute(\"data-item-id\");\n }\n\n newRecord(item) {\n return item.hasAttribute(\"data-item-new\");\n }\n\n initEditMode() {\n this.editButtonTargets.forEach((x) => {\n const item = x.closest(\".product-item\");\n item.classList.add(\"product-item--editing\");\n });\n }\n}\n","import ApplicationController from \"application_controller\";\nimport Swal from \"sweetalert2\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"btnAddVariant\",\n \"template\",\n \"wrapper\",\n \"isMaster\",\n \"editButton\",\n ];\n\n initialize() {\n this.showMode = this.data.get(\"showMode\") === \"true\";\n this.showSubmit = this.data.get(\"submit\") === \"true\";\n this._originalForms = {};\n }\n\n connect() {\n if (!this.showMode) this.initEditMode();\n }\n\n // events -------------------------------------------------------------------\n\n onAddVariant(e) {\n e.preventDefault();\n\n const content = this.templateTarget.innerHTML.replace(\n /TEMPLATE_RECORD/g,\n new Date().valueOf()\n );\n this.btnAddVariantTarget.insertAdjacentHTML(\"beforebegin\", content);\n\n if (this.showMode) this.element.classList.add(\"js-editing\");\n\n this.highlightLast(\n this.wrapperTarget.querySelectorAll(\".product-variant--editing\")\n );\n }\n\n onCancel(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".product-variant\");\n\n if (this.showMode) this.element.classList.remove(\"js-editing\");\n\n if (this.newRecord(item)) {\n this.highlightRemoval(item, () => item.remove());\n return;\n }\n\n item.classList.remove(\"product-variant--editing\");\n this.highlight(item);\n\n const id = this._variantId(item);\n\n if (!this._originalForms[id]) {\n console.warn(\"onCancel -- _originalForms missing\", { id });\n return;\n }\n\n item.querySelector(\".product-variant-form\").innerHTML = this._originalForms[\n id\n ];\n }\n\n onEditVariant(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".product-variant\");\n item.classList.add(\"product-variant--editing\");\n\n this._saveOriginalForm(item);\n e.target.display = \"none\";\n\n if (this.showMode) this.element.classList.add(\"js-editing\");\n this.highlight(item);\n }\n\n onRemoveVariant(e) {\n e.preventDefault();\n\n const swalOptions = {\n title: I18n.t(\"delete_confirm\"),\n html: e.target.dataset.title,\n showCancelButton: true,\n confirmButtonText: I18n.t(\"data_confirm.commit\"),\n cancelButtonText: I18n.t(\"data_confirm.cancel\"),\n focusCancel: true,\n customClass: {\n container: `DataConfirmModal DataConfirmModal--danger`,\n title: `card-header bg-danger text-white my-0 w-100`,\n confirmButton: `btn btn-danger waves-effect waves-light`,\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n };\n\n Swal.fire(swalOptions).then((result) => {\n if (!result.value) return;\n const item = e.target.closest(\".product-variant\");\n const id = this._variantId(item);\n\n this.highlightRemoval(item, () => {\n if (id) {\n // ajax remove\n item.querySelector(\"input[name*='_destroy']\").value = 1;\n item.style.display = \"none\";\n\n if (this.showMode) this._submitForm(item);\n } else {\n // remove from dom only\n item.parentNode.removeChild(item);\n }\n });\n });\n }\n\n onChkMasterChange(e) {\n const input = e.target\n .closest(\".custom-switch\")\n .querySelector(\".custom-control-input\");\n\n if (!input.checked)\n // negation because the event didn't set the `checked` value yet\n this.isMasterTargets\n .filter((x) => x !== input)\n .forEach((x) => {\n if (x.checked) {\n x.checked = false;\n\n const wrapper = x.closest(\".product-variant\");\n if (wrapper)\n wrapper.classList.toggle(\"product-variant--master\", false);\n }\n });\n }\n\n // methods: private ..........................................................\n\n _saveOriginalForm(item) {\n const id = item.getAttribute(\"data-variant-id\");\n\n if (this._originalForms[id]) return;\n\n this._originalForms[id] = item.querySelector(\n \".product-variant-form\"\n ).innerHTML;\n }\n\n _submitForm(item) {\n item.closest(\".product-form\").submit();\n }\n\n _variantId(item) {\n return item.getAttribute(\"data-variant-id\");\n }\n\n newRecord(item) {\n return item.hasAttribute(\"data-variant-new\");\n }\n\n initEditMode() {\n this.editButtonTargets.forEach((x) => {\n const item = x.closest(\".product-variant\");\n item.classList.add(\"product-variant--editing\");\n });\n }\n}\n","import ApplicationController from \"application_controller\";\nimport Swal from \"sweetalert2\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n initialize() {\n this._template = document.getElementById(\"tplStatus\");\n this._url = this._template.dataset.url;\n }\n\n connect() {\n this._oldStatusId = this.element.dataset.statusId;\n this._id = this.element.dataset.id;\n this.element.addEventListener(\"click\", this.onShow);\n }\n\n onShow = (e) => {\n e.preventDefault();\n\n const html = this._template.innerHTML;\n const oldStatusId = this._oldStatusId;\n const { _id, _url } = this;\n\n const swalOptions = {\n title: I18n.t(\"change_status.title\", { title: e.target.dataset.title }),\n html,\n showCancelButton: true,\n focusCancel: true,\n showLoaderOnConfirm: true,\n confirmButtonText: I18n.t(\"data_confirm.commit\"),\n cancelButtonText: I18n.t(\"data_confirm.cancel\"),\n customClass: {\n container: \"DataConfirmModal\",\n title: \"card-header bg-dark text-white my-0 w-100\",\n confirmButton: \"btn btn-primary waves-effect waves-light\",\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n allowOutsideClick: () => !Swal.isLoading(),\n preConfirm: () => {\n return document.getElementById(\"new_status_id\").value;\n },\n onBeforeOpen: (modal) => {\n const $select = $(modal.querySelector(\"#new_status_id\"));\n $select.val(oldStatusId).trigger(\"change\");\n },\n };\n\n Swal.fire(swalOptions).then((result) => {\n if (!result.value || result.value === this._oldStatusId) return;\n\n const link = document.getElementById(\"hiddenBtnChangeStatus\");\n link.href = `${_url}/${_id}`;\n link.dataset.params = `proposal[status_id]=${result.value}&return_to_index`;\n\n link.click();\n });\n };\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static targets = [\"date\"];\n\n // events -------------------------------------------------------------------\n\n autoFillDate() {\n const now = new Date().toISOString().substring(0, 10);\n this.dateTarget.value = now;\n }\n}\n","import ApplicationController from \"application_controller\";\nimport Swal from \"sweetalert2\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n initialize() {\n this._template = document.getElementById(\"tplStatus\");\n this._url = this._template.dataset.url;\n }\n\n connect() {\n this._oldStatusId = this.element.dataset.statusId;\n this._id = this.element.dataset.id;\n this.element.addEventListener(\"click\", this.onShow);\n }\n\n onDidOpen = (el) => {\n this.scrollTo(el);\n };\n\n onShow = (e) => {\n e.preventDefault();\n\n const html = this._template.innerHTML;\n const oldStatusId = this._oldStatusId;\n const { _id, _url } = this;\n\n const swalOptions = {\n title: I18n.t(\"change_status.title\", { title: e.target.dataset.title }),\n html,\n showCancelButton: true,\n focusCancel: true,\n showLoaderOnConfirm: true,\n confirmButtonText: I18n.t(\"data_confirm.commit\"),\n cancelButtonText: I18n.t(\"data_confirm.cancel\"),\n customClass: {\n container: \"DataConfirmModal\",\n title: \"card-header bg-dark text-white my-0 w-100\",\n confirmButton: \"btn btn-primary waves-effect waves-light\",\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n allowOutsideClick: () => !Swal.isLoading(),\n preConfirm: () => {\n return document.getElementById(\"new_status_id\").value;\n },\n willOpen: (modal) => {\n const $select = $(modal.querySelector(\"#new_status_id\"));\n $select.val(oldStatusId).trigger(\"change\");\n },\n didOpen: this.onDidOpen,\n };\n\n Swal.fire(swalOptions).then((result) => {\n if (!result.value || result.value === this._oldStatusId) return;\n\n const link = document.getElementById(\"hiddenBtnChangeStatus\");\n link.href = `${_url}/${_id}`;\n link.dataset.params = `quotation[status_id]=${result.value}&return_to_index`;\n\n link.click();\n });\n };\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static targets = [\"validUntil\", \"date\"];\n\n // events -------------------------------------------------------------------\n\n autoFillValidUntil(e) {\n const numTime = parseInt(e.target.dataset.number, 10);\n if (!numTime) return;\n const now = new Date();\n if (e.target.dataset.week) now.setDate(now.getDate() + numTime * 7);\n else now.setMonth(now.getMonth() + numTime);\n this.validUntilTarget.value = now.toISOString().substring(0, 10);\n }\n\n autoFillDate() {\n const now = new Date().toISOString().substring(0, 10);\n this.dateTarget.value = now;\n }\n}\n","import Swal from \"sweetalert2\";\nimport ApplicationController from \"application_controller\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"newItemBtnWrapper\",\n \"newItemFormWrapper\",\n \"newItemForm\",\n \"items\",\n ];\n\n connect() {\n $(this.newItemFormWrapperTarget).on(\"item:added\", this.onNewItemCreated);\n }\n\n onAddItem = (e) => {\n e.preventDefault();\n this.toggleNewItemForm(true);\n };\n\n onBtnCancel = (e) => {\n e.preventDefault();\n this.toggleNewItemForm(false);\n };\n\n onNewItemCreated = () => {\n this.recomputePositions();\n };\n\n onRemoveItem = (e) => {\n e.preventDefault();\n\n const item = e.target.closest(\".quotation-items-row\");\n const title = item.querySelector(\".quotation-items-name\").value;\n\n const swalOptions = {\n title: I18n.t(\"delete_confirm\"),\n html: title,\n showCancelButton: true,\n confirmButtonText: I18n.t(\"data_confirm.commit\"),\n cancelButtonText: I18n.t(\"data_confirm.cancel\"),\n focusCancel: true,\n customClass: {\n container: `DataConfirmModal DataConfirmModal--danger`,\n title: `card-header bg-danger text-white my-0 w-100`,\n confirmButton: `btn btn-danger waves-effect waves-light`,\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n };\n\n Swal.fire(swalOptions).then((result) => {\n if (!result.value) return;\n const id = item.dataset.itemId;\n\n this.highlightRemoval(item, () => {\n if (id) {\n // ajax remove\n item.querySelector(\"input[name*='_destroy']\").value = 1;\n item\n .querySelectorAll(\"input:not([type='hidden'])\")\n .forEach((x) => x.parentNode.removeChild(x));\n item.style.display = \"none\";\n } else {\n // remove from dom only\n item.parentNode.removeChild(item);\n }\n\n e.target.dispatchEvent(new Event(\"total:changed\", { bubbles: true }));\n });\n });\n };\n\n // methods: private .........................................................\n\n toggleNewItemForm(show = false) {\n this.newItemBtnWrapperTarget.classList.toggle(\"d-none\", show);\n this.newItemFormWrapperTarget.classList.toggle(\"d-none\", !show);\n\n if (show)\n this.highlight(this.newItemFormWrapperTarget.querySelector(\".card\"));\n }\n\n recomputePositions() {\n const rows = this.itemsTarget.querySelectorAll(\"tr\");\n\n let i = 1;\n rows.forEach((row) => {\n this.recomputePosition(row, i);\n i += 1;\n });\n }\n\n recomputePosition(row, idx) {\n const field = this.data.has(\"optional\")\n ? \"items_optional_attributes\"\n : \"items_required_attributes\";\n\n this.updateRailsFieldsNames(row, `quotation[${field}][`, idx);\n }\n}\n","import ApplicationController from \"application_controller\";\nimport Rails from \"@rails/ujs\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"panLoading\",\n \"panForm\",\n \"btnImport\",\n \"btnCreateBlank\",\n \"btnCancel\",\n \"selectProduct\",\n \"panChkDesc\",\n \"panVariant\",\n \"panVariantLoading\",\n \"panVariantSelect\",\n \"selectVariant\",\n \"panGrouped\",\n ];\n\n initialize() {\n this._productsUrl = this.element.dataset.productsUrl;\n\n this.includeDesc = true;\n this.resetForm();\n }\n\n resetForm() {\n this.selectedProductId = null;\n this.selectedVariantId = null;\n this.isVariable = false;\n this._selectedSplitGroup = false;\n this._isGrouped = false;\n }\n\n connect() {\n $(this.selectProductTarget).on(\"select2:select\", this.onSelectProduct);\n $(this.selectVariantTarget).on(\"select2:select\", this.onSelectVariant);\n\n $(this.element).on(\"ajax:before\", this.onAjaxStart);\n $(this.element).on(\"ajax:complete\", this.onAjaxEnd);\n $(this.element).on(\"ajax:success\", this.onNewItemCreated);\n\n this.updateUI();\n }\n\n onAjaxStart = () => {\n this.element.disabled = true;\n this.panLoadingTarget.classList.remove(\"d-none\");\n this.panFormTarget.classList.add(\"d-none\");\n this.highlight(this.panLoadingTarget);\n };\n\n onAjaxEnd = () => {\n this.element.disabled = false;\n this.panLoadingTarget.classList.add(\"d-none\");\n this.panFormTarget.classList.remove(\"d-none\");\n this.btnCancelTarget.click();\n };\n\n onNewItemCreated = () => {\n this.element.dispatchEvent(new Event(\"item:added\", { bubbles: true }));\n this.element.dispatchEvent(new Event(\"total:changed\", { bubbles: true }));\n if (this._isGrouped) {\n this.reloadPanGrouped();\n }\n };\n\n onSelectProduct = (e) => {\n const { id, element } = e.params.data;\n const productType = element.dataset.t;\n this.selectedProductId = id;\n this.isVariable = id && productType === \"variable\";\n this._isGrouped = id && productType === \"grouped\";\n\n this.panChkDescTarget.classList.toggle(\"d-none\", !id);\n this.updateProductVariants();\n this.updateGroupedProduct();\n this.updateUI();\n };\n\n onSelectVariant = (e) => {\n const { id } = e.params.data;\n this.selectedVariantId = id;\n\n this.updateUI();\n };\n\n onSelectGrouped(e) {\n this._selectedSplitGroup = e.target.value === \"splitGroup\";\n this.updateImportParams();\n }\n\n onIncludeDescChange = (e) => {\n this.includeDesc = e.target.checked;\n };\n\n onVariantsLoaded = (variants) => {\n const $select = $(this.selectVariantTarget);\n $.each(variants, (index, item) => {\n $select.append(``);\n });\n\n if (variants.length) this.selectedVariantId = variants[0].id;\n else this.selectedVariantId = null;\n\n this.updateUI();\n };\n\n onBtnCancel = () => {\n $(this.selectProductTarget).val(null).trigger(\"change\");\n\n const $select = $(this.selectVariantTarget);\n $select.val(null).trigger(\"change\");\n $select.empty();\n\n this.resetForm();\n\n this.panVariantTarget.classList.add(\"d-none\");\n this.panGroupedTarget.classList.add(\"d-none\");\n this.updateUI();\n };\n\n // methods: ui update .......................................................\n\n updateProductVariants() {\n const $select = $(this.selectVariantTarget);\n $select.val(null).trigger(\"change\");\n $select.empty();\n\n this.panVariantTarget.classList.toggle(\"d-none\", !this.isVariable);\n this.highlight(this.panVariantTarget);\n\n if (!this.isVariable) return;\n\n this.updateUIVariantLoading(true);\n\n Rails.ajax({\n type: \"GET\",\n url: `${this._productsUrl}/${this.selectedProductId}/ui/variants`,\n complete: () => {\n this.updateUIVariantLoading(false);\n },\n success: (data) => {\n this.onVariantsLoaded(data);\n },\n dataType: \"json\",\n });\n }\n\n updateGroupedProduct() {\n this.panGroupedTarget.classList.toggle(\"d-none\", !this._isGrouped);\n if (!this._isGrouped) return;\n\n this.highlight(this.panGroupedTarget);\n }\n\n updateBtnImportState() {\n this.btnImportTarget.disabled =\n !this.selectedProductId || (this.isVariable && !this.selectedVariantId);\n\n this.btnImportTarget.classList.toggle(\n \"disabled\",\n this.btnImportTarget.disabled\n );\n }\n\n updateUIVariantLoading(loading = false) {\n this.panVariantLoadingTarget.classList.toggle(\"d-none\", !loading);\n this.panVariantSelectTarget.classList.toggle(\"d-none\", loading);\n }\n\n updateUI() {\n this.updateBtnImportState();\n }\n\n // methods: private .........................................................\n\n get selectedProductId() {\n return this._selectedProductId;\n }\n\n set selectedProductId(value) {\n this._selectedProductId = value;\n this.updateImportParams();\n }\n\n get isVariable() {\n return this._isVariable;\n }\n\n set isVariable(value) {\n this._isVariable = value;\n }\n\n get includeDesc() {\n return this._includeDesc;\n }\n\n set includeDesc(value) {\n this._includeDesc = value;\n this.updateImportParams();\n }\n\n get selectedVariantId() {\n return this._selectedVariantId;\n }\n\n set selectedVariantId(value) {\n this._selectedVariantId = value;\n this.updateImportParams();\n }\n\n reloadPanGrouped() {\n const content = this.panGroupedTarget.innerHTML;\n this.panGroupedTarget.innerHTML = content;\n if (this._selectedSplitGroup) {\n this._selectedSplitGroup = false;\n this.updateImportParams();\n }\n }\n\n updateImportParams = () => {\n this.btnImportTarget.dataset.params = new URLSearchParams({\n product_id: this.selectedProductId || \"\",\n variant_id: this.selectedVariantId || \"\",\n split_group: this._selectedSplitGroup || false,\n include_desc: this.includeDesc,\n }).toString();\n };\n}\n","import Swal from \"sweetalert2\";\nimport ApplicationController from \"application_controller\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"loadTermsWrapper\",\n \"selectTermGroup\",\n \"loading\",\n \"btnLoad\",\n \"wrapper\",\n \"template\",\n ];\n\n connect() {\n $(this.selectTermGroupTarget).on(\"select2:select\", this.onLoadFromGroup);\n this.btnLoadTarget.addEventListener(\"ajax:before\", this.onAjaxStart);\n this.btnLoadTarget.addEventListener(\"ajax:complete\", this.onAjaxEnd);\n }\n\n // events ...................................................................\n\n onLoadFromGroup = (e) => {\n const { id } = e.params.data;\n const tplUrl = this.btnLoadTarget.attributes.href.value;\n const btn = this.btnLoadTarget;\n\n btn.attributes.href.value = tplUrl.replace(\"::term_group_id::\", id);\n btn.click();\n\n btn.attributes.href.value = tplUrl;\n\n // remove selected value from select\n\n const $select = $(this.selectTermGroupTarget);\n e.params.data.element.remove();\n $select.val(null);\n $select.trigger(\"change.select2\");\n };\n\n onAjaxStart = () => {\n this.loadingTarget.classList.remove(\"d-none\");\n this.highlight(this.loadingTarget);\n\n $(this.loadTermsWrapperTarget.querySelector(\".select2\")).velocity(\n { opacity: 0.5 },\n { duration: 200 }\n );\n };\n\n onAjaxEnd = () => {\n this.highlight(this.loadingTarget, () => {\n this.loadingTarget.classList.add(\"d-none\");\n\n $(this.loadTermsWrapperTarget.querySelector(\".select2\")).velocity(\n { opacity: 1 },\n { duration: 200 }\n );\n\n const $select = $(this.selectTermGroupTarget);\n if ($select.find(\"option\").length - 1 < 1) {\n const wrapper = this.loadTermsWrapperTarget;\n this.highlightRemoval(wrapper, () => {\n wrapper.remove();\n });\n }\n });\n\n this.recomputePositions();\n };\n\n recomputePositions() {\n const fields = this.wrapperTarget.querySelectorAll(\".dragPositionField\");\n\n let i = 1;\n fields.forEach((f) => {\n f.value = i.toString();\n i += 1;\n });\n\n i = 1;\n const rows = this.wrapperTarget.querySelectorAll(\".termgroup-term\");\n rows.forEach((row) => {\n this.updateRailsFieldsNames(row, `quotation[terms_attributes][`, i);\n i += 1;\n });\n }\n\n onAddTerm = (e) => {\n e.preventDefault();\n\n const content = this.templateTarget.innerHTML.replace(\n /TEMPLATE_RECORD/g,\n new Date().valueOf()\n );\n this.wrapperTarget.insertAdjacentHTML(\"beforeend\", content);\n\n this.highlight(this.wrapperTarget.lastElementChild);\n };\n\n onCancel(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".termgroup-term\");\n\n this.highlightRemoval(item, () => {\n item.remove();\n });\n }\n\n onRemoveTerm(e) {\n e.preventDefault();\n\n const swalOptions = {\n title: I18n.t(\"delete_confirm\"),\n html: e.target.dataset.title,\n showCancelButton: true,\n confirmButtonText: I18n.t(\"data_confirm.commit\"),\n cancelButtonText: I18n.t(\"data_confirm.cancel\"),\n focusCancel: true,\n customClass: {\n container: `DataConfirmModal DataConfirmModal--danger`,\n title: `card-header bg-danger text-white my-0 w-100`,\n confirmButton: `btn btn-danger waves-effect waves-light`,\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n };\n\n Swal.fire(swalOptions).then((result) => {\n if (!result.value) return;\n const item = e.target.closest(\".termgroup-term\");\n const id = this._termId(item);\n\n this.highlightRemoval(item, () => {\n if (id) {\n // ajax remove\n item.querySelector(\"input[name*='_destroy']\").value = 1;\n item.style.display = \"none\";\n } else {\n // remove from dom only\n item.parentNode.removeChild(item);\n }\n });\n });\n }\n\n // methods: private ..........................................................\n\n _termId(item) {\n return item.getAttribute(\"data-term-id\");\n }\n\n newRecord(item) {\n return item.hasAttribute(\"data-term-new\");\n }\n}\n","import ApplicationController from \"application_controller\";\nimport Rails from \"@rails/ujs\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"panPreview\",\n \"selTheme\",\n \"btnExportPdf\",\n \"btnShareByEmail\",\n ];\n\n initialize() {\n this._baseUrl = this.data.get(\"url\");\n this._previousTheme = null;\n }\n\n connect() {\n if (this.isTurbolinksPreview) return;\n\n $(this.selThemeTarget).on(\"select2:select\", this.onThemeChange);\n\n this.initButtons();\n if (this.selThemeTarget.value) this.callPreview(this.selThemeTarget.value);\n }\n\n // events ...................................................................\n\n onThemeChange = (e) => {\n const { id } = e.params.data;\n\n this.callPreview(id);\n };\n\n onPreviewLoaded = (html) => {\n this.panPreviewTarget.innerHTML = \"\";\n this.panPreviewTarget.appendChild(\n html.querySelector(\".themes_form__preview\")\n );\n };\n\n // methods: ui update .......................................................\n\n callPreview = (themeId) => {\n if (!themeId || `${themeId}` === this._previousTheme) return;\n\n this._previousTheme = `${themeId}`;\n this.uiLoading();\n this.uiUpdateButtons(themeId);\n\n Rails.ajax({\n type: \"GET\",\n url: `${this._baseUrl}/${themeId}`,\n error: (e) => {\n console.warn(\"themes::callPreview -- error\", { e });\n this.uiLoading(I18n.t(\"error_while_previewing\"));\n },\n success: (html) => {\n this.onPreviewLoaded(html);\n },\n });\n };\n\n get buttons() {\n return [this.btnExportPdfTarget, this.btnShareByEmailTarget];\n }\n\n initButtons = () => {\n this.buttons.forEach((x) => {\n x.dataset.tplUrl = x.href;\n });\n };\n\n uiUpdateButtons = (themeId) => {\n this.buttons.forEach((x) => {\n x.href = x.dataset.tplUrl.replace(\"__THEME__\", themeId);\n x.classList.toggle(\"d-none\", !themeId);\n });\n };\n\n uiLoading = (error) => {\n this.panPreviewTarget.innerHTML = `\n
\n ${\n error ||\n `
${I18n.t(\n \"loading\"\n )}
`\n }\n
\n`;\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n this.element.addEventListener(\"ajax:before\", this.onBefore);\n this.element.addEventListener(\"ajax:complete\", this.onComplete);\n }\n\n disconnect() {}\n\n onBefore = () => {\n this.element.disabled = true;\n this.element.classList.toggle(\"disable\", true);\n this.element.classList.toggle(\"loading\", true);\n\n this.element.appendChild(this.loadingEl);\n };\n\n onComplete = () => {\n this.element.disabled = false;\n this.element.classList.toggle(\"disable\", false);\n this.element.classList.toggle(\"loading\", false);\n\n this.element.removeChild(this.loadingEl);\n };\n\n get loadingEl() {\n if (this._loadingEl) return this._loadingEl;\n\n this._loadingEl = document.createElement(\"i\");\n this._loadingEl.className = \"fa fa-spinner fa-spin ml-1\";\n return this._loadingEl;\n }\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n this._submitter = document.getElementById(this.data.get(\"submitter\"));\n\n this._submitter.addEventListener(\"ajax:before\", this.onBefore);\n this._submitter.addEventListener(\"ajax:complete\", this.onComplete);\n\n $(this.element).on(\"select2:select\", this.onSelect);\n }\n\n disconnect() {\n this._submitter.removeEventListener(\"ajax:before\", this.onBefore);\n this._submitter.removeEventListener(\"ajax:complete\", this.onComplete);\n }\n\n // events ...................................................................\n\n onSelect = (e) => {\n const { id } = e.params.data;\n this._submitter.dataset.params = `access_level=${id}`;\n this._submitter.click();\n };\n\n onBefore = () => {\n this.uiLoading(true);\n };\n\n onComplete = () => {\n this.uiLoading(false);\n };\n\n uiLoading = (loading) => {\n this.element.disabled = loading;\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static values = {\n targetId: String,\n targetAttribute: String,\n thenFetch: String,\n };\n\n connect() {\n $(this.element).on(\"select2:select\", this.onSelect);\n $(this.element).on(\"select2:clear\", this.onClear);\n }\n\n disconnect() {}\n\n // events ...................................................................\n\n onSelect = (e) => {\n if (this.hasThenFetchValue) {\n this.callThenFetch(e.params.data);\n } else {\n const { id, text, element } = e.params.data;\n const data = JSON.stringify({\n id,\n text,\n dataset: element && element.dataset,\n });\n\n this.target.setAttribute(this.targetAttributeValue, data);\n }\n };\n\n onClear = () => {\n this.target.setAttribute(this.targetAttributeValue, \"{}\");\n };\n\n get target() {\n if (this._target) return this._target;\n\n this._target = document.getElementById(this.targetIdValue);\n return this._target;\n }\n\n // events ...................................................................\n\n callThenFetch = (selectedData) => {\n const url =\n selectedData[this.thenFetchValue] ||\n (selectedData.element &&\n selectedData.element.getAttribute(this.thenFetchValue));\n\n if (!url) {\n this.target.setAttribute(this.targetAttributeValue, \"{}\");\n return;\n }\n\n window.Rails.ajax({\n type: \"GET\",\n url,\n complete: () => {},\n success: ({ data }) => {\n this.target.setAttribute(\n this.targetAttributeValue,\n JSON.stringify(data)\n );\n },\n dataType: \"json\",\n });\n };\n}\n","import { Controller } from \"stimulus\";\nimport Swal from \"sweetalert2\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends Controller {\n static values = {\n url: String,\n };\n\n initialize() {\n this.element.controller = this;\n }\n\n connect() {\n this.optionUniqueBy = this.data.get(\"uniqueBy\");\n this.optionFormatResult = this.data.get(\"formatResult\");\n\n const options = {\n width: \"resolve\",\n dropdownAutoWidth: true,\n templateSelection: this.formatSelection,\n templateResult: this.formatSelection,\n };\n\n this.setAjaxOptions(options);\n\n this.select2 = $(this.element).select2(options);\n\n if (this.optionUniqueBy)\n this.select2.on(\"select2:selecting\", this.onValidateUniqueBy);\n }\n\n disconnect() {\n if (!this.select2) return;\n if (!this.select2.hasClass(\"select2-hidden-accessible\")) {\n this.select2 = null;\n return;\n }\n\n this.select2.select2(\"destroy\");\n this.select2 = null;\n }\n\n setAjaxOptions = (options) => {\n if (!this.hasUrlValue) return;\n\n const ajax = {\n url: this.urlValue,\n delay: 250,\n data(params) {\n const query = {\n \"q[search_cont]\": params.term,\n page: params.page || 1,\n };\n return query;\n },\n processResults(data) {\n return {\n results: data.data,\n pagination: data.meta.pagination,\n };\n },\n };\n\n options.ajax = ajax;\n };\n\n itemData = (item) => {\n if (!item || !item.id) return null;\n\n if (item.element) {\n const data = item.element.dataset;\n return {\n id: item.id,\n text: item.text || item.title || item.text,\n img: item.img || data.img,\n color: item.color || data.color,\n textColor: item.textColor || data.textColor,\n };\n }\n\n return item;\n };\n\n formatSelection = (item) => {\n const data = this.itemData(item);\n if (!data) return this.element.dataset.placeholder;\n\n if (data.color) return this.formatWithColor(data);\n if (data.img) return this.formatWithImage(data);\n\n return $(\"\").text(data.text);\n };\n\n formatWithColor = (data) => {\n const { textColor, color, text } = data;\n return $(\n ``\n ).text(text);\n };\n\n formatWithImage = (data) => {\n const { img, text } = data;\n return $(`${text}`);\n };\n\n onValidateUniqueBy = (e) => {\n if (!this.optionUniqueBy) return;\n\n const selected = e.params.args.data.id;\n let alreadySelected = false;\n\n const selectedValues = [];\n\n document.querySelectorAll(this.optionUniqueBy).forEach((node) => {\n if (this.element === node) return;\n if (node.value === selected) alreadySelected = true;\n selectedValues.push(node.value);\n });\n\n if (!alreadySelected) return;\n\n e.preventDefault();\n\n const options = {\n html: `
${I18n.t(\n \"can_not_be_selected_twice\"\n )}
`,\n showConfirmButton: false,\n timer: 1500,\n timerProgressBar: true,\n };\n\n Swal.fire(options);\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"select\"];\n\n static values = {\n options: String,\n };\n\n initialize() {\n this._options = null;\n }\n\n connect() {}\n\n disconnect() {}\n\n get selectController() {\n return this.selectTarget.controller;\n }\n\n // events ...................................................................\n\n onAddValue = (e) => {\n const { value } = e.target.dataset;\n\n const newOption = new Option(value.split(\":\")[1], value, true, true);\n $(this.selectTarget).append(newOption).trigger(\"change\");\n };\n\n optionsValueChanged(newVal) {\n if (this._options == null) {\n this._options = newVal;\n return;\n }\n\n this._options = JSON.parse(newVal || \"[]\");\n if (!Array.isArray(this._options)) this._options = [];\n const options = this._options.map((x) => new Option(x.text, x.id));\n\n if (options.length) options[0].selected = true;\n\n const $el = $(this.selectTarget);\n $el.empty().val(\"\").trigger(\"change\");\n options.forEach((x) => $el.append(x));\n $el.trigger(\"change\");\n }\n}\n","import ApplicationController from \"application_controller\";\nimport debounced from \"debounced\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"total\",\n \"totals\",\n \"taxRow\",\n \"taxTitle\",\n \"taxAmount\",\n \"totalGrossRow\",\n \"totalGrossAmount\",\n ];\n\n static values = {\n plusTax: Object,\n disableTax: Boolean,\n };\n\n initialize() {\n this._connected = false;\n this._debouncedUpdate = debounced.debounce(this.onUpdate, { wait: 200 });\n this._oldTax = null;\n }\n\n connect() {\n this.taxRate = 0;\n this.taxTotal = 0;\n this.grossTotal = 0;\n\n this._connected = true;\n this.updateTax();\n this.element.addEventListener(\"total:changed\", this._debouncedUpdate);\n }\n\n disconnect() {\n this.element.removeEventListener(\"total:changed\", this._debouncedUpdate);\n }\n\n plusTaxValueChanged() {\n if (!this._connected) return;\n this.updateTax();\n }\n\n updateTax = () => {\n if (this.disableTaxValue) return;\n\n if (this._oldTax === JSON.stringify(this.plusTaxValue)) return;\n this._oldTax = JSON.stringify(this.plusTaxValue);\n\n const hasVal = !$.isEmptyObject(this.plusTaxValue);\n\n if (hasVal)\n this.taxRate =\n this.plusTaxValue.amount || this.plusTaxValue.dataset.amount || 0;\n else this.taxRate = 0;\n\n this._debouncedUpdate();\n };\n\n onUpdate = () => {\n this.recompute();\n };\n\n recompute = () => {\n this.grossTotal = 0;\n this.taxTotal = 0;\n\n this.totalsTargets.forEach((x) => {\n const destroyNode = x\n .closest(\"tr\")\n .querySelector(\"input[name*='_destroy']\");\n if (!destroyNode || destroyNode.value !== \"1\")\n this.grossTotal += parseFloat(x.dataset.value || \"0\");\n });\n\n if (this.taxRate > 0)\n this.taxTotal = (this.grossTotal * this.taxRate) / 100.0;\n\n this.updateUI();\n };\n\n updateUI = () => {\n const hasTax = this.taxRate > 0;\n const grossTotalStr = this.m(this.grossTotal);\n\n this.totalGrossRowTarget.classList.toggle(\"d-none\", !hasTax);\n this.taxRowTarget.classList.toggle(\"d-none\", !hasTax);\n\n if (hasTax) {\n this.totalGrossAmountTarget.textContent = grossTotalStr;\n this.taxAmountTarget.textContent = this.m(this.taxTotal);\n this.taxTitleTarget.textContent = this.plusTaxValue.text;\n this.totalTarget.textContent = this.m(this.grossTotal + this.taxTotal);\n } else {\n this.totalTarget.textContent = grossTotalStr;\n }\n\n this.highlightText(this.totalTarget);\n };\n\n m = (amount) => {\n return this.formatMoney(amount / 100);\n };\n}\n","import ApplicationController from \"application_controller\";\nimport debounced from \"debounced\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"price\",\n \"quantity\",\n \"discount\",\n \"discountValue\",\n \"discountPercentWrapper\",\n \"total\",\n \"title\",\n \"description\",\n \"expandedIndicator\",\n ];\n\n initialize() {\n this._debouncedRecompute = debounced.debounce(this.recompute, {\n wait: 200,\n });\n }\n\n connect() {\n this._hasDescription =\n this.hasDescriptionTarget &&\n !this.isBlank(this.descriptionTarget.innerText);\n this._expanded = false;\n\n this.onUpdate();\n this.priceTarget.addEventListener(\"input\", this.onUpdate);\n this.quantityTarget.addEventListener(\"input\", this.onUpdate);\n\n if (this.hasDiscountValueTarget) {\n this.discountValueTarget.addEventListener(\"input\", this.onUpdate);\n this.discountPercentWrapperTarget.addEventListener(\n \"click\",\n this.onUpdate\n );\n }\n\n if (this._hasDescription) {\n this.titleTarget.addEventListener(\"click\", this.onToggleDescription);\n this.titleTarget.classList.add(\"q-expandable\");\n } else if (this.hasExpandedIndicatorTarget)\n this.expandedIndicatorTarget.classList.add(\"d-none\");\n }\n\n disconnect() {\n this.priceTarget.removeEventListener(\"input\", this.onUpdate);\n this.quantityTarget.removeEventListener(\"input\", this.onUpdate);\n if (this.hasDescription)\n this.titleTarget.removeEventListener(\"click\", this.onToggleDescription);\n\n if (this.hasDiscountValueTarget) {\n this.discountValueTarget.removeEventListener(\"input\", this.onUpdate);\n this.discountPercentWrapperTarget.removeEventListener(\n \"click\",\n this.onUpdate\n );\n }\n }\n\n onToggleDescription = () => {\n this._expanded = !this._expanded;\n this.descriptionTarget.classList.toggle(\"d-none\", !this._expanded);\n this.expandedIndicatorTarget.classList.toggle(\n \"fa-rotate-180\",\n this._expanded\n );\n };\n\n onUpdate = () => {\n this._debouncedRecompute();\n };\n\n get discountPercentEls() {\n if (this._discountPercentEl) return this._discountPercentEl;\n\n this._discountPercentEl = Array.from(\n this.discountPercentWrapperTarget.querySelectorAll(\"input[type=radio]\")\n );\n return this._discountPercentEl;\n }\n\n getDiscount = (price) => {\n let discount = 0;\n if (this.hasDiscountTarget)\n discount = parseFloat(this.discountTarget.value || \"0\");\n else if (this.hasDiscountValueTarget) {\n const percent =\n this.discountPercentEls.filter((x) => x.checked)[0].value === \"true\";\n discount = parseFloat(this.discountValueTarget.value || \"0\");\n discount = percent ? (price * discount) / 100 : discount;\n }\n\n return discount;\n };\n\n recompute = () => {\n const price = parseFloat(this.priceTarget.value || \"0\");\n const quantity = parseFloat(this.quantityTarget.value || \"0\");\n let total = price * quantity;\n total -= this.getDiscount(total);\n\n this.totalTarget.dataset.value = total * 100;\n this.totalTarget.textContent = this.formatMoney(total);\n\n this.highlightText(this.totalTarget, () => {\n this.totalTarget.dispatchEvent(\n new Event(\"total:changed\", {\n bubbles: true,\n })\n );\n });\n };\n}\n","import Swal from \"sweetalert2\";\nimport ApplicationController from \"application_controller\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\"btnAddTerm\", \"template\", \"wrapper\", \"editButton\"];\n\n initialize() {\n this.showMode = this.data.get(\"showMode\") === \"true\";\n this._originalForms = {};\n }\n\n connect() {\n if (!this.showMode) this.initEditMode();\n }\n\n // events -------------------------------------------------------------------\n\n onAddTerm(e) {\n e.preventDefault();\n\n const content = this.templateTarget.innerHTML.replace(\n /TEMPLATE_RECORD/g,\n new Date().valueOf()\n );\n this.wrapperTarget.insertAdjacentHTML(\"beforeend\", content);\n if (this.showMode) this.element.classList.add(\"js-editing\");\n\n this.highlight(this.wrapperTarget.lastElementChild);\n }\n\n onCancel(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".termgroup-term\");\n\n item.classList.remove(\"termgroup-term--editing\");\n if (this.showMode) this.element.classList.remove(\"js-editing\");\n\n if (this.newRecord(item)) {\n this.highlightRemoval(item, () => {\n item.remove();\n });\n return;\n }\n\n const id = this._termId(item);\n\n if (!this._originalForms[id]) {\n console.warn(\"onCancel -- _originalForms missing\", { id });\n return;\n }\n\n item.querySelector(\".termgroup-term-form\").innerHTML = this._originalForms[\n id\n ];\n }\n\n onEditTerm(e) {\n e.preventDefault();\n\n const item = e.target.closest(\".termgroup-term\");\n item.classList.add(\"termgroup-term--editing\");\n\n this._saveOriginalForm(item);\n e.target.display = \"none\";\n if (this.showMode) this.element.classList.add(\"js-editing\");\n\n this.highlight(item);\n }\n\n onRemoveTerm(e) {\n e.preventDefault();\n\n const swalOptions = {\n title: e.target.dataset.confirmTitle,\n html: e.target.dataset.title,\n showCancelButton: true,\n confirmButtonText: I18n.t(\"data_confirm.commit\"),\n cancelButtonText: I18n.t(\"data_confirm.cancel\"),\n focusCancel: true,\n customClass: {\n container: `DataConfirmModal DataConfirmModal--danger`,\n title: `card-header bg-danger text-white my-0 w-100`,\n confirmButton: `btn btn-danger waves-effect waves-light`,\n cancelButton: \"btn btn-light waves-effect waves-light\",\n actions: \"card-footer bg-light m-0\",\n },\n };\n\n Swal.fire(swalOptions).then((result) => {\n if (!result.value) return;\n const item = e.target.closest(\".termgroup-term\");\n const id = this._termId(item);\n\n this.highlightRemoval(item, () => {\n if (id) {\n // ajax remove\n item.querySelector(\"input[name*='_destroy']\").value = 1;\n item.style.display = \"none\";\n if (this.showMode) this._submitForm(item);\n } else {\n // remove from dom only\n item.parentNode.removeChild(item);\n }\n });\n });\n }\n\n // methods: private ..........................................................\n\n _saveOriginalForm(item) {\n const id = item.getAttribute(\"data-term-id\");\n\n if (this._originalForms[id]) return;\n\n this._originalForms[id] = item.querySelector(\n \".termgroup-term-form\"\n ).innerHTML;\n }\n\n _submitForm(item) {\n item.closest(\".termgroup-form\").submit();\n }\n\n _termId(item) {\n return item.getAttribute(\"data-term-id\");\n }\n\n newRecord(item) {\n return item.hasAttribute(\"data-term-new\");\n }\n\n initEditMode() {\n this.editButtonTargets.forEach((x) => {\n const item = x.closest(\".termgroup-term\");\n item.classList.add(\"termgroup-term--editing\");\n });\n }\n}\n","import ApplicationController from \"application_controller\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"ddUpload\",\n \"hiddenBlobId\",\n \"hiddenBlobUrl\",\n \"fileInput\",\n \"selCoverPosition\",\n \"selCoverRepeat\",\n \"panCoverSize\",\n \"txtCoverSize\",\n \"txtCoverColor\",\n ];\n\n connect() {\n this._hasFile = !!this.hiddenBlobIdTarget.value;\n this._uploadUrl = this.data.get(\"uploadUrl\");\n this.initRangeSlider();\n this.render();\n this.dispatch();\n }\n\n disconnect() {\n this.destroyRangeSlider();\n }\n\n initRangeSlider = () => {\n let val = parseInt(this.txtCoverSizeTarget.value || \"100\", 10);\n if (val > 100) val = 100;\n\n this._uiRangeSliders = $(this.txtCoverSizeTarget).ionRangeSlider({\n grid: true,\n skin: \"flat\",\n min: 5,\n max: 100,\n from: val,\n prefix: I18n.t(\"range_slider.prefix\"),\n postfix: I18n.t(\"range_slider.postfix\"),\n onFinish: this.onChange,\n });\n };\n\n destroyRangeSlider = () => {\n if (this._uiRangeSliders) this._uiRangeSliders.destroy();\n };\n\n // events ...................................................................\n\n onPositionChange = () => {\n this.render();\n this.dispatch();\n };\n\n onRepeatChange = () => {\n this.render();\n this.dispatch();\n };\n\n onChange = () => {\n this.dispatch();\n };\n\n onUpload = () => {\n this.fileInputTarget.click();\n };\n\n onImageSelected = () => {\n const input = this.fileInputTarget;\n this._hasFile = !!(input.files && input.files[0]);\n\n if (this._hasFile) this.sendFile(input.files[0]);\n else this.render();\n };\n\n onRemoveImage = () => {\n this._hasFile = false;\n this.fileInputTarget.value = \"\";\n this.hiddenBlobIdTarget.value = \"\";\n this.hiddenBlobUrlTarget.value = \"\";\n this.dispatch();\n\n this.render();\n };\n\n onUploaded = (success, response = null) => {\n if (success) {\n const rv = JSON.parse(response);\n\n this.hiddenBlobIdTarget.value = rv.id;\n this.hiddenBlobUrlTarget.value = rv.location;\n this.selCoverPositionTarget.value = \"cover\";\n\n this.dispatch();\n }\n\n this.setLoading(false);\n };\n\n // methods: ui update .......................................................\n\n render = () => {\n this.renderColor();\n this.renderPosition();\n this.renderRepeat();\n this.renderSize();\n };\n\n renderColor = () => {\n // this.txtCoverColorTarget.classList.toggle(\"d-none\", !this.showPosition);\n };\n\n renderPosition = () => {\n this.selCoverPositionTarget.classList.toggle(\"d-none\", !this.showPosition);\n };\n\n renderRepeat = () => {\n this.selCoverRepeatTarget.classList.toggle(\"d-none\", !this.showRepeat);\n };\n\n renderSize = () => {\n this.panCoverSizeTarget.classList.toggle(\"d-none\", !this.showSize);\n };\n\n dispatch = () => {\n const e = new CustomEvent(\"qote:theme:cover:changed\", {\n bubbles: true,\n detail: {\n url: this.hiddenBlobUrlTarget.value,\n blob_id: this.hiddenBlobIdTarget.value,\n position: this.selCoverPositionTarget.value,\n repeat: this.selCoverRepeatTarget.value,\n size: this.showSize && this.txtCoverSizeTarget.value,\n color: this.txtCoverColorTarget.value,\n },\n });\n\n this.element.dispatchEvent(e);\n };\n\n // getters ..................................................................\n\n get showPosition() {\n return !!this._hasFile;\n }\n\n get showRepeat() {\n return (\n this.showPosition &&\n this.selCoverPositionTarget.value &&\n this.selCoverPositionTarget.value !== \"cover\"\n );\n }\n\n get showSize() {\n return (\n this.showRepeat &&\n this.selCoverRepeatTarget.value &&\n this.selCoverRepeatTarget.value !== \"no-repeat\"\n );\n }\n\n // methods: private .........................................................\n\n sendFile = (file) => {\n this.setLoading(true);\n\n const uri = this._uploadUrl;\n const xhr = new XMLHttpRequest();\n const fd = new FormData();\n\n xhr.open(\"POST\", uri, true);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status === 200) {\n this.onUploaded(true, xhr.responseText);\n } else {\n this.onUploaded(false);\n }\n };\n\n fd.append(\"file\", file);\n xhr.send(fd);\n };\n\n setLoading = (loading) => {\n if (loading) this.element.style.opacity = \"0.4\";\n else this.element.style.opacity = \"1\";\n\n this.render();\n };\n}\n","import Carousel from \"stimulus-carousel\";\n\nexport default class extends Carousel {\n static targets = [\"field\"];\n\n static values = {\n initial: Number,\n };\n\n connect() {\n super.connect();\n\n this.swiper.on(\"slideChange\", this.onSlideChange);\n this.swiper.on(\"click\", this.onSlideClick);\n this.refreshSelectedSlide();\n }\n\n get defaultOptions() {\n const initialSlide = this.hasInitialValue\n ? this.getSlideById(this.initialValue)\n : 0;\n\n return {\n slidesPerView: \"auto\",\n centeredSlides: true,\n spaceBetween: 10,\n grabCursor: true,\n initialSlide,\n pagination: {\n el: \".swiper-pagination\",\n clickable: true,\n },\n };\n }\n\n // events ...................................................................\n\n onSlideClick = (swiper) => {\n swiper.slideTo(swiper.clickedIndex);\n };\n\n onSlideChange = () => {\n this.refreshSelectedSlide();\n };\n\n // ui .......................................................................\n\n refreshSelectedSlide = () => {\n this._selectedSlide = this.swiper.slides[this.swiper.realIndex];\n if (!this._selectedSlide) return;\n\n const { id } = this._selectedSlide.dataset;\n\n if (this.hasFieldTarget) {\n this.fieldTarget.value = id;\n }\n };\n\n // helpers ..................................................................\n\n getSlideById = (id) => {\n const idS = id.toString();\n let rv = -1;\n\n const list = this.element.querySelectorAll(\".swiper-slide\");\n\n for (let i = 0; i < list.length; i += 1) {\n if (list[i].dataset.id === idS) {\n rv = i;\n break;\n }\n }\n\n return rv;\n };\n}\n","import ApplicationController from \"application_controller\";\nimport Rails from \"@rails/ujs\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"form\",\n \"panEditor\",\n \"panPreview\",\n \"panCoverOptions\",\n // Content\n \"btnShowContent\",\n \"tabThemeContent\",\n \"content\",\n // ContentSettings\n \"btnShowContentSettings\",\n \"tabThemeContentSettings\",\n \"contentSettings\",\n // Cover\n \"btnShowCover\",\n \"tabThemeCoverPage\",\n \"coverContent\",\n ];\n\n static values = {\n template: String,\n };\n\n initialize() {\n this._previewing = false;\n this._activeEditorIndex = null;\n this._previewUrl = this.data.get(\"previewUrl\");\n this._coverData = null;\n }\n\n connect() {\n this._isTemplate = this.hasTemplateValue;\n this._isTemplateCover =\n this.hasTemplateValue && this.templateValue.toLowerCase() === \"cover\";\n this._isTemplateContent = this.hasTemplateValue && !this._isTemplateCover;\n\n this.EDITOR_IDX_CONTENT = 0;\n this.EDITOR_IDX_COVER_CONTENT = 1;\n\n this.element.addEventListener(\n \"qote:theme:cover:changed\",\n this.onCoverImageChange\n );\n\n if (this._isTemplateCover) {\n this.EDITOR_IDX_COVER_CONTENT = 0;\n this.EDITOR_IDX_CONTENT = 1;\n this.setActiveTab(this.btnShowCoverTarget);\n }\n }\n\n // events ...................................................................\n\n onTogglePreview = (e) => {\n const { checked } = e.target;\n\n this.panPreviewTarget.innerHTML = \"\";\n\n this.panEditorTarget.classList.toggle(\"d-none\", checked);\n this.panPreviewTarget.classList.toggle(\"d-none\", !checked);\n\n this.previewing = checked;\n\n if (checked) this.callPreview();\n };\n\n onPreviewLoaded = (html) => {\n this.panPreviewTarget.innerHTML = \"\";\n this.panPreviewTarget.appendChild(\n html.querySelector(\".themes_form__preview\")\n );\n };\n\n onToggleHasCover = (e) => {\n const { checked } = e.target;\n\n this.btnShowCoverTarget.classList.remove(\"d-none\");\n this.highlightToggle(this.btnShowCoverTarget, checked);\n\n this.setActiveTab(\n checked ? this.btnShowCoverTarget : this.btnShowContentTarget\n );\n };\n\n onShowContent = (e) => this.refreshActiveTab(e);\n\n onShowContentSettings = (e) => this.refreshActiveTab(e);\n\n onShowCover = (e) => this.refreshActiveTab(e);\n\n onCoverImageChange = ({ detail }) => {\n this._coverData = detail;\n this.tryLoadCover();\n };\n\n // methods: ui update .......................................................\n\n refreshActiveTab = (e) => {\n e.preventDefault();\n this.setActiveTab(e.target);\n };\n\n setActiveTab = (tabButton) => {\n this.tabs.forEach((x) => {\n if (tabButton === x.button) {\n x.button.classList.add(\"active\");\n x.content.classList.remove(\"d-none\");\n\n if (x.editorIdx != null) {\n this.activeEditor = x.editorIdx;\n if (x.content) {\n const editor = x.content.querySelector(\".tox-tinymce\");\n if (editor) editor.style.height = \"34cm\";\n }\n } else this.activeEditor = null;\n } else {\n x.button.classList.remove(\"active\");\n x.content.classList.add(\"d-none\");\n }\n });\n\n // cover options ?\n if (tabButton === this.btnShowCoverTarget && !this.previewing) {\n this.panCoverOptionsTarget.classList.remove(\"d-none\");\n } else {\n this.panCoverOptionsTarget.classList.add(\"d-none\");\n }\n\n // preview ?\n if (this.previewing) this.callPreview();\n };\n\n tryLoadCover = () => {\n if (!this._tryLoadCover) this._tryLoadCover = 1;\n\n if (this._tryLoadCover > 15) {\n // retry for 30sec. max\n this._tryLoadCover = 1;\n console.warn(\"tryLoadCover: tinymce is not ready after 5 retries.\");\n return;\n }\n\n if (!this.coverEditor || !this.coverEditor.getDoc()) {\n this._tryLoadCover += 1;\n if (this._tryLoadCover > 3)\n console.warn(\"tryLoadCover: retrying in 2 secs...\", this._tryLoadCover);\n setTimeout(this.tryLoadCover, 2000);\n return;\n }\n\n this._tryLoadCover = 1;\n this.loadCover();\n };\n\n loadCover = () => {\n const detail = this._coverData;\n const body = this.coverEditor.getDoc().querySelector(\"body\");\n\n if (!detail.url) {\n body.style.background = detail.color;\n return;\n }\n\n if (!detail.position || detail.position === \"cover\") {\n body.style.background = `url(${detail.url}) no-repeat center center`;\n body.style.backgroundColor = detail.color;\n body.style.backgroundSize = \"21cm 29.7cm\";\n return;\n }\n\n body.style.background = `url(${detail.url})`;\n body.style.backgroundColor = detail.color;\n body.style.backgroundPosition = detail.position;\n body.style.backgroundRepeat = detail.repeat || \"no-repeat\";\n\n if (detail.size) body.style.backgroundSize = `${detail.size}%`;\n };\n\n callPreview = () => {\n if (this.tabFieldName === null) {\n console.warn(\"callPreview:tabFieldName_nil\");\n return;\n }\n\n this.uiLoading();\n\n const content = this.activeEditor.getContent();\n const formData = new FormData();\n formData.append(\"content\", content);\n formData.append(\"field_name\", this.tabFieldName);\n\n if (this.isCoverEditor && this._coverData) {\n formData.append(\"cover_options[url]\", this._coverData.url);\n formData.append(\"cover_options[blob_id]\", this._coverData.blob_id);\n formData.append(\"cover_options[position]\", this._coverData.position);\n formData.append(\"cover_options[repeat]\", this._coverData.repeat);\n formData.append(\"cover_options[size]\", this._coverData.size);\n formData.append(\"cover_options[color]\", this._coverData.color);\n } else {\n // # Add theme content settings to params\n const formSerialized = Rails.serializeElement(this.formTarget);\n const formParams = new URLSearchParams(formSerialized);\n formParams.forEach((v, k) => {\n if (k.startsWith(\"theme[content_\")) formData.append(k, v);\n if (k === \"theme[_destroy_watermark]\") formData.append(k, v);\n if (k === \"theme[existing_id]\") formData.append(k, v);\n\n if (k === \"theme[watermark]\") {\n const { files } = document.getElementsByName(\"theme[watermark]\")[0];\n if (files && files[0]) formData.append(k, files[0]);\n } else if (k.startsWith(\"theme[watermark\")) formData.append(k, v);\n });\n }\n\n Rails.ajax({\n type: \"POST\",\n url: this._previewUrl,\n data: formData,\n error: (e) => {\n console.warn(\"themes::callPreview -- error\", { e });\n this.uiLoading(I18n.t(\"error_while_previewing\"));\n },\n success: (html) => {\n this.onPreviewLoaded(html);\n },\n });\n };\n\n uiLoading = (error) => {\n this.panPreviewTarget.innerHTML = `\n
\n ${\n error ||\n `
${I18n.t(\n \"loading\"\n )}
`\n }\n
\n`;\n };\n\n // methods: private .........................................................\n\n get activeEditor() {\n if (this._activeEditorIndex == null)\n this._activeEditorIndex = this.EDITOR_IDX_CONTENT;\n return window.tinymce.get(this._activeEditorIndex);\n }\n\n set activeEditor(idx) {\n this._activeEditorIndex = idx;\n if (idx !== null) window.tinymce.setActive(window.tinymce.get(idx));\n }\n\n get coverEditor() {\n return window.tinymce.get(this.EDITOR_IDX_COVER_CONTENT);\n }\n\n get isCoverEditor() {\n return this._activeEditorIndex === this.EDITOR_IDX_COVER_CONTENT;\n }\n\n get previewing() {\n return this._previewing;\n }\n\n get tabs() {\n if (this._tabs) return this._tabs;\n this._tabs = [\n {\n button: this.btnShowContentTarget,\n content: this.tabThemeContentTarget,\n editorIdx: this.EDITOR_IDX_CONTENT,\n editorFieldName: \"content\",\n },\n {\n button: this.btnShowContentSettingsTarget,\n content: this.tabThemeContentSettingsTarget,\n editorIdx: null,\n editorFieldName: \"content\",\n },\n {\n button: this.btnShowCoverTarget,\n content: this.tabThemeCoverPageTarget,\n editorIdx: this.EDITOR_IDX_COVER_CONTENT,\n editorFieldName: \"cover_content\",\n },\n ];\n\n return this._tabs;\n }\n\n get tabFieldName() {\n const rv = this.tabs.filter(\n (x) => x.editorIdx === this._activeEditorIndex\n )[0];\n\n return rv ? rv.editorFieldName : null;\n }\n\n set previewing(value) {\n this._previewing = value;\n\n if (this._previewing) {\n this.panCoverOptionsTarget.classList.add(\"d-none\");\n } else {\n this.panCoverOptionsTarget.classList.toggle(\n \"d-none\",\n this._activeEditorIndex !== this.EDITOR_IDX_COVER_CONTENT\n );\n }\n }\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static targets = [\"selArea\", \"panFontOptions\", \"panCustomText\", \"panLogo\"];\n\n connect() {\n const opt = this.selAreaTarget.selectedOptions[0];\n this.render(opt);\n }\n\n // events ...................................................................\n\n onSelAreaChange = (e) => {\n const opt = e.target.selectedOptions[0];\n this.render(opt);\n };\n\n // methods: ui update .......................................................\n\n render = (opt) => {\n this.renderFontOptions(opt);\n this.renderLogoOptions(opt);\n };\n\n renderFontOptions = (opt) => {\n this.panCustomTextTarget.classList.toggle(\n \"d-none\",\n !opt || opt.value !== \"custom_text\"\n );\n\n this.panFontOptionsTarget.classList.toggle(\n \"d-none\",\n !opt || opt.dataset.font !== \"1\"\n );\n };\n\n renderLogoOptions = (opt) => {\n this.panLogoTarget.classList.toggle(\"d-none\", !opt || opt.value !== \"logo\");\n };\n\n // getters ..................................................................\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n $(this.element).timeago();\n $(this.element).tooltip();\n }\n\n disconnect() {\n $(this.element).tooltip(\"dispose\");\n }\n}\n","import { Controller } from \"stimulus\";\nimport Rails from \"@rails/ujs\";\n\nexport default class extends Controller {\n static targets = [\"country\", \"timezone\"];\n\n connect() {\n this._url = this.data.get(\"url\");\n this._guessTimeZone();\n }\n\n // methods - private --------------------------------------------------------\n\n _guessTimeZone() {\n const val = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n fetch(\"https://extreme-ip-lookup.com/json/\")\n .then((res) => res.json())\n .then((response) => {\n return response.country;\n })\n .catch(() => {\n return null;\n })\n .then((country) => {\n Rails.ajax({\n type: \"GET\",\n url: this._url,\n data: new URLSearchParams({\n value: val,\n country: country || \"\",\n }).toString(),\n success: (data) => {\n this._setSelectVal(data.result);\n },\n });\n });\n }\n\n _setSelectVal = (val) => {\n if (!val) return;\n\n // timezone\n let $el = $(this.timezoneTarget);\n $el.val(val.timezone);\n $el.trigger(\"change\");\n\n // country\n $el = $(this.countryTarget);\n $el.val(val.country);\n $el.trigger(\"change\");\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static values = {\n parentEl: String,\n };\n\n initialize() {\n this._images_upload_url = window.App.config.images_upload_url;\n }\n\n connect() {\n this._selector = this.data.get(\"selector\") || `#${this.element.id}`;\n\n let lang = window.App.config.locale;\n if (lang === \"fr\") lang = \"fr_FR\";\n this._direction = window.App.config.locale_rtl ? \"rtl\" : \"ltr\";\n\n const options = {\n selector: this._selector,\n language: lang,\n directionality: this._direction,\n images_upload_url: this._images_upload_url,\n init_instance_callback: this.onInit,\n ...this.tinyOptions,\n };\n\n window.TinyMCERails.initialize(this.data.get(\"kind\") || \"\", options);\n }\n\n disconnect() {\n if (this._selector) window.tinymce.remove(this._selector);\n }\n\n // events ...................................................................\n\n onInit = (editor) => {\n this.editor = editor;\n if (this.parentElCtrl?.onEditorInit) this.parentElCtrl.onEditorInit(this);\n\n let el = document.querySelector(this._selector);\n\n if (this.stripHtml(el.value).replace(/\\s/g, \"\").trim().length > 0) return;\n\n // [BUG268] needed to restore focus done in the background by tinymce\n // when calling `execCommand` or `fire`\n window.tinymceFocusStack = window.tinymceFocusStack || [];\n window.tinymceFocusStack.push(document.activeElement);\n\n editor.execCommand(\n this._direction === \"rtl\" ? \"mceDirectionRTL\" : \"mceDirectionLTR\"\n );\n\n setTimeout(() => {\n editor.fire(\"contexttoolbar-hide\");\n }, 100);\n\n el = window.tinymceFocusStack.pop();\n if (el) el.focus();\n };\n\n stripHtml = (html) => {\n const tmp = document.createElement(\"DIV\");\n tmp.innerHTML = html;\n return tmp.textContent || tmp.innerText || \"\";\n };\n\n // methods - private ........................................................\n\n get parentElCtrl() {\n if (!this.hasParentElValue) return null;\n if (this._parentElCtrl) return this._parentElCtrl;\n\n const parentEl = document.getElementById(this.parentElValue);\n if (!parentEl) {\n console.error(\n \"tiny::parentElCtrl >> parentEl::not_found\",\n this.parentElValue\n );\n return null;\n }\n if (!parentEl.controller) {\n console.error(\"tiny::parentElCtrl >> no_controller\");\n return null;\n }\n\n this._parentElCtrl = parentEl.controller;\n\n return this._parentElCtrl;\n }\n\n get tinyOptions() {\n const rv = {};\n\n if (this.data.has(\"inline\")) rv.inline = true;\n\n if (this.data.has(\"toolbarMode\"))\n rv.toolbar_mode = this.data.get(\"toolbarMode\");\n\n if (this.data.has(\"noImage\")) rv.images_upload_url = null;\n if (this.data.has(\"noImage\")) rv.images_upload_url = null;\n if (this.data.has(\"minHeight\")) rv.min_height = this.data.get(\"minHeight\");\n if (this.data.has(\"mentionUrl\"))\n rv.mention_url = this.data.get(\"mentionUrl\");\n\n return rv;\n }\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n this._tooltips = $(this.element).tooltip({ html: true });\n }\n\n disconnect() {\n this._tooltips.tooltip(\"dispose\");\n }\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"slug\"];\n\n connect() {\n this._generateSlug = !this.slugTarget.value;\n }\n\n disconnect() {}\n\n // events -------------------------------------------------------------------\n\n onNameChange(e) {\n if (!this.slugTarget.value) this._generateSlug = true;\n if (!this._generateSlug || !e.target.value) return;\n\n this.slugTarget.value = this.slugify(e.target.value);\n }\n\n onSlugChange() {\n this._generateSlug = !this.slugTarget.value;\n }\n\n onSubmit() {\n this.slugTarget.value = this.slugify(this.slugTarget.value);\n }\n\n // methods - private --------------------------------------------------------\n\n slugify(str) {\n const string = str || \"\";\n const a =\n \"àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;\";\n const b =\n \"aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------\";\n const p = new RegExp(a.split(\"\").join(\"|\"), \"g\");\n\n return string\n .toString()\n .toLowerCase()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(p, (c) => b.charAt(a.indexOf(c))) // Replace special characters\n .replace(/&/g, \"-and-\") // Replace & with 'and'\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word characters\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\"); // Trim - from end of text\n }\n}\n","import { Controller } from \"stimulus\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends Controller {\n connect() {\n this._isGeneric = this.data.has(\"generic\");\n this.select2 = $(this.element).select2(this.buildOptions());\n this.element.controller = this;\n }\n\n disconnect() {\n this.select2UnMount();\n this.element.controller = null;\n }\n\n // events ...................................................................\n\n // methods - private ........................................................\n\n buildOptions = () => {\n const url = this.data.get(\"url\");\n const showAll = this.data.has(\"all\") && this.data.get(\"all\") !== \"0\";\n const { dropdownCssClass, selectionCssClass } = this.element.dataset;\n\n const options = {\n width: \"100%\",\n multiple: true,\n tags: true,\n createTag: this.createTag.bind(this),\n ajax: {\n url,\n dataType: \"json\",\n delay: 250,\n data(params) {\n const query = { q: params.term };\n if (showAll) query.all = \"true\";\n return query;\n },\n processResults: (data) => {\n return {\n results: data.data.map((x) => ({\n id: `id:${x.id}`,\n confirmed: x.confirmed,\n avatar_url: x.avatar_url,\n full_name: x.full_name,\n })),\n };\n },\n },\n templateResult: this.templateResult,\n templateSelection: this.templateSelection,\n };\n\n if (!url) delete options.ajax;\n\n if (dropdownCssClass) options.dropdownCssClass = dropdownCssClass;\n if (selectionCssClass) options.selectionCssClass = selectionCssClass;\n\n const isGeneric = this._isGeneric;\n options.language = {\n noResults() {\n return isGeneric\n ? I18n.t(\"select_emails.no_results.generic\")\n : I18n.t(\"select_emails.no_results.no_generic\");\n },\n };\n\n return options;\n };\n\n createTag(params) {\n const term = $.trim(params.term);\n\n if (!this.emailIsValid(term)) return null;\n\n return {\n id: `email:${term}`,\n newEmail: term,\n full_name: this._isGeneric\n ? I18n.t(\"select_emails.full_name.generic\", { term })\n : I18n.t(\"select_emails.full_name.no_generic\", { term }),\n newTag: true,\n };\n }\n\n emailIsValid(email) {\n if (!email) return false;\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\n }\n\n templateResult(user) {\n if (user.loading) return null;\n\n let markup = \"
\";\n\n if (user.avatar_url)\n markup += ``;\n\n markup +=\n \"
\" +\n `
${user.full_name}
`;\n\n if (!user.confirmed && !user.newTag)\n markup += `
${I18n.t(\n \"select_emails.no_recent_log_in\"\n )}
`;\n\n markup += \"
\";\n\n return $(markup);\n }\n\n templateSelection(user) {\n return user.newTag ? user.newEmail : user.full_name || user.text;\n }\n\n select2UnMount() {\n this.select2.select2(\"destroy\");\n }\n}\n","var map = {\n\t\"./billing/activate_component/activate_controller.js\": 71,\n\t\"./billing/billing_controller.js\": 72,\n\t\"./billing/checkout_controller.js\": 73,\n\t\"./chart_controller.js\": 74,\n\t\"./file_field_controller.js\": 75,\n\t\"./notes/edit_controller.js\": 76,\n\t\"./notes/new_controller.js\": 77,\n\t\"./notes/single_controller.js\": 78,\n\t\"./pdf_controller.js\": 111,\n\t\"./quick_filter_checkbox_controller.js\": 92,\n\t\"./quick_filter_conditions_controller.js\": 93,\n\t\"./quick_filter_search_controller.js\": 94,\n\t\"./table_controller.js\": 95\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 70;","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static targets = [\"btnCheckoutClose\", \"panSuccess\"];\n\n connect() {\n document.body.addEventListener(\"PaddleCallbackResult\", this.onPaddleResult);\n }\n\n // events ...................................................................\n\n onPaddleResult = (e) => {\n const data = e.detail;\n\n switch (data.event) {\n case \"Checkout.Close\":\n this.onCheckoutClose(data);\n break;\n case \"Checkout.Complete\":\n // Google Tag Manager\n window.dataLayer.push({ event: \"Checkout.Complete\" });\n\n this.panSuccessTarget.classList.toggle(\"d-none\", false);\n this.btnCheckoutCloseTarget.parentNode.removeChild(\n this.btnCheckoutCloseTarget\n );\n break;\n default:\n }\n };\n\n onCheckoutClose = () => {\n if (!this.hasBtnCheckoutCloseTarget) return;\n\n this.btnCheckoutCloseTarget.click();\n };\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static values = {\n vendorId: Number,\n refreshUrl: String,\n };\n\n connect() {\n this.initPaddle();\n\n window.addEventListener(\"event_occurred\", this.onEventOccurred);\n }\n\n disconnect() {\n window.removeEventListener(\"event_occurred\", this.onEventOccurred);\n }\n\n initPaddle() {\n window.Paddle.Setup({\n vendor: this.vendorIdValue,\n eventCallback: this.onPaddleEvent,\n });\n }\n\n // events ...................................................................\n\n onPaddleEvent = (data) => {\n document.body.dispatchEvent(\n new CustomEvent(\"PaddleCallbackResult\", {\n bubbles: true,\n detail: data,\n })\n );\n };\n\n onEventOccurred = (e) => {\n const { event } = e.detail;\n\n if (!event || !event.startsWith(\"Subscriptions::\")) return;\n\n window.location.href = this.refreshUrlValue;\n };\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static values = {\n args: Object,\n };\n\n connect() {}\n\n // events ...................................................................\n\n onOpen = () => {\n const args = this.argsValue || {};\n args.locale = window.App.config.locale;\n window.Paddle.Checkout.open(args);\n };\n}\n","import { Controller } from \"stimulus\";\nimport ApexCharts from \"apexcharts\";\n\nexport default class extends Controller {\n static targets = [\"chart\"];\n\n static values = {\n type: String,\n options: Object,\n };\n\n connect() {\n const element = this.hasChartTarget ? this.chartTarget : this.element;\n\n if (!this.optionsValue) {\n console.warn(\"[chart] options is required\");\n return;\n }\n\n this._chart = new ApexCharts(element, this.optionsValue);\n this._chart.render();\n }\n\n disconnect() {\n if (this._chart) this._chart.destroy();\n }\n\n // events ...................................................................\n\n // render ...................................................................\n\n // methods - private ........................................................\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"input\", \"label\", \"destroy\", \"btnRemove\"];\n\n static values = {\n title: String,\n titleBlank: String,\n exists: Boolean,\n };\n\n connect() {}\n\n disconnect() {}\n\n // events ...................................................................\n\n onRemove = () => {\n this.inputTarget.value = \"\";\n this.onFileChange();\n };\n\n onFileChange = () => {\n const file = this.inputTarget.files[0];\n\n this.destroyTarget.value = file ? \"false\" : \"true\";\n\n const filename = !!file && file.name;\n\n if (filename) {\n this.labelTarget.innerText = filename;\n } else {\n this.labelTarget.innerText = this.hasFile\n ? this.titleValue\n : this.titleBlankValue;\n }\n\n this.render();\n };\n\n // render ...................................................................\n\n render = () => {\n this.btnRemoveTarget.disabled = !this.hasFile;\n };\n\n // methods - private ........................................................\n\n get hasFile() {\n return (\n (!!this.inputTarget.files && this.inputTarget.files.length > 0) ||\n (this.destroyTarget.value === \"false\" && this.existsValue)\n );\n }\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static values = {\n targetDivId: String,\n };\n\n connect() {\n this._containerEl = document.getElementById(this.targetDivIdValue);\n this._contentEl = this._containerEl.querySelector(\".note-content\");\n }\n\n get formEl() {\n return this._containerEl.querySelector(\".note-form\");\n }\n\n // events ..................................................................\n\n onCancel = () => {\n this._contentEl.classList.remove(\"d-none\");\n this.formEl.innerHTML = \"\";\n };\n}\n","import ApplicationController from \"application_controller\";\nimport Swal from \"sweetalert2\";\n\nexport default class extends ApplicationController {\n static targets = [\"panClosed\", \"panOpened\", \"panActions\", \"btnSubmit\"];\n\n static values = {\n expanded: Boolean,\n };\n\n initialize() {\n this.bindElementController();\n this._hasInput = false;\n this._inputListenersAdded = false;\n\n this._expandedPreviously = false;\n this._expandedManually = false;\n }\n\n connect() {\n this.panActionsTarget.classList.add(\"d-none\");\n\n if (this.expanded) this.onOpen();\n }\n\n disconnect() {\n this.removeInputListeners();\n }\n\n addInputListeners = () => {\n if (!this.editor) return;\n if (this._expandedManually) setTimeout(() => this.editor.focus(), 300);\n\n if (this._inputListenersAdded) return;\n\n this.editor.on(\"input\", this.onInput);\n this.editor.on(\"Change\", this.onInput);\n this._inputListenersAdded = true;\n };\n\n removeInputListeners = () => {\n this._inputListenersAdded = false;\n if (!this.editor) return;\n\n this.editor.off(\"input\", this.onInput);\n this.editor.off(\"Change\", this.onInput);\n };\n\n // events ..................................................................\n\n onOpen = () => {\n this._expandedManually = true;\n this.toggleOpened(true);\n };\n\n onEditorInit = (tinyCtrl) => {\n this._editor = tinyCtrl.editor;\n this.addInputListeners();\n };\n\n onCancel = () => {\n this.toggleOpened(false);\n };\n\n onCancelModal = () => {\n Swal.close();\n };\n\n onInput = (e) => {\n const editor = this.editor || e.target;\n\n this._hasInput = editor.getContent({ format: \"text\" }).trim().length > 0;\n if (this._expandedPreviously) this.toggleActions(true);\n };\n\n onFocusAndEdit = (fn) => {\n this.scrollTo(this.element);\n\n fn(this.editor);\n };\n\n // methods: private ..........................................................\n\n get expanded() {\n return this.hasExpandedValue && this.expandedValue;\n }\n\n get editor() {\n return this._editor;\n }\n\n // render ..................................................................\n\n toggleOpened = (active) => {\n this.setVisibility(active);\n\n if (active) {\n this._expandedPreviously = true;\n this.addInputListeners();\n } else {\n this.removeInputListeners();\n }\n\n this.toggleActions(active);\n };\n\n setVisibility = (visible) => {\n if (this.hasPanClosedTarget)\n this.panClosedTarget.classList.toggle(\"d-none\", visible);\n\n if (!this.hasPanOpenedTarget) return;\n\n if (visible) {\n if (this.expanded) this.panOpenedTarget.classList.remove(\"d-none\");\n else this.highlightToggle(this.panOpenedTarget, true);\n } else {\n this.panOpenedTarget.classList.add(\"d-none\");\n }\n };\n\n toggleActions = (opened) => {\n const active = opened && this._hasInput;\n const shown = this.hasBtnSubmitTarget ? opened : active;\n\n if (this.hasBtnSubmitTarget) this.btnSubmitTarget.disabled = !active;\n\n this.panActionsTarget.classList.toggle(\"d-none\", !shown);\n this.panActionsTarget.classList.toggle(\"d-flex\", shown);\n };\n}\n","import ApplicationController from \"application_controller\";\n\nexport default class extends ApplicationController {\n static targets = [\"panCommentNew\"];\n\n static values = {\n userId: String,\n userName: String,\n };\n\n initialize() {\n this.bindElementController();\n }\n\n disconnect() {}\n\n // events ..................................................................\n\n onToggleNewComment = () => {\n const show = this.panCommentNewTarget.classList.contains(\"d-none\");\n this.panCommentNewTarget.classList.toggle(\"d-none\", !show);\n\n if (show) this.newNoteCtrl.onOpen();\n else this.newNoteCtrl.onCancel();\n };\n\n onReplyToComment = () => {\n const parentNote = this.element.parentElement.closest(\n \"[data-controller=notes--single]\"\n );\n\n if (parentNote.controller)\n parentNote.controller.onCallEditor((ed) => {\n ed.insertMention({\n id: this.userIdValue,\n text: this.userNameValue,\n });\n\n ed.insertContent(\" \");\n ed.focus();\n });\n };\n\n onCallEditor = (fn) => {\n this.newNoteCtrl.onFocusAndEdit(fn);\n };\n\n // methods: private ..........................................................\n\n get editor() {\n return this.newNoteCtrl.editor;\n }\n\n get newNoteCtrl() {\n if (this._newNoteCtrl) return this._newNoteCtrl;\n this._newNoteCtrl = this.panCommentNewTarget.querySelector(\n \"form[data-controller=notes--new]\"\n ).controller;\n return this._newNoteCtrl;\n }\n}\n","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr;\n}\n\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar punycode = require('punycode');\n\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n} // Reference: RFC 3986, RFC 1808, RFC 2396\n// define these here so at least they only have to be\n// compiled once on the first module load.\n\n\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n // Special case for a simple path URL\nsimplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n // RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\ndelims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n // RFC 2396: characters not allowed for various reasons.\nunwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\nautoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n// Note that any invalid chars are also handled, but these\n// are the ones that are *expected* to be seen, so we fast-path\n// them.\nnonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\nunsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that never have a hostname.\nhostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that always contain a // bit.\nslashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n},\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + _typeof(url));\n } // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n\n\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n var rest = url; // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n\n if (simplePath[2]) {\n this.search = simplePath[2];\n\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n } // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n\n\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) {\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\n } // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n\n\n var auth, atSign;\n\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n } // Now we have a portion which is definitely the auth.\n // Pull that off.\n\n\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n } // the host is the remaining to the left of the first non-host char\n\n\n hostEnd = -1;\n\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\n } // if we still have not hit it, then the entire thing is a host.\n\n\n if (hostEnd === -1) hostEnd = rest.length;\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd); // pull out port.\n\n this.parseHost(); // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n\n this.hostname = this.hostname || ''; // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']'; // validate a little.\n\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n } // we test again with ASCII char only\n\n\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host; // strip [ and ] from the hostname\n // the host field still retains them, though\n\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n } // now rest is set to the post-host stuff.\n // chop off any delim chars.\n\n\n if (!unsafeProtocol[lowerProto]) {\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) continue;\n var esc = encodeURIComponent(ae);\n\n if (esc === ae) {\n esc = escape(ae);\n }\n\n rest = rest.split(ae).join(esc);\n }\n } // chop off from the tail first.\n\n\n var hash = rest.indexOf('#');\n\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n\n var qm = rest.indexOf('?');\n\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n\n if (rest) this.pathname = rest;\n\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n } //to support http.request\n\n\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n } // finally, reconstruct the href based on what has been validated.\n\n\n this.href = this.format();\n return this;\n}; // format a parsed object into a url string\n\n\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && util.isObject(this.query) && Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || query && '?' + query || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':'; // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n } // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n\n\n result.hash = relative.hash; // if the relative url is empty, then there's nothing left to do here.\n\n if (relative.href === '') {\n result.href = result.format();\n return result;\n } // hrefs like //foo/bar always cut to the protocol.\n\n\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') result[rkey] = relative[rkey];\n } //urlParse appends trailing / to urls like http://www.example.com\n\n\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n\n while (relPath.length && !(relative.host = relPath.shift())) {\n ;\n }\n\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port; // to support http.request\n\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || result.host && relative.pathname,\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol]; // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;else srcPath.unshift(result.host);\n }\n\n result.host = '';\n\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;else relPath.unshift(relative.host);\n }\n\n relative.host = null;\n }\n\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath; // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift(); //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n result.search = relative.search;\n result.query = relative.query; //to support http.request\n\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null; //to support http.request\n\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n\n result.href = result.format();\n return result;\n } // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n\n\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === ''; // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n\n var up = 0;\n\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && srcPath.join('/').substr(-1) !== '/') {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || srcPath[0] && srcPath[0].charAt(0) === '/'; // put the host back\n\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' : srcPath.length ? srcPath.shift() : ''; //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || result.host && srcPath.length;\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n } //to support request.http\n\n\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n\n if (port) {\n port = port[0];\n\n if (port !== ':') {\n this.port = port.substr(1);\n }\n\n host = host.substr(0, host.length - port.length);\n }\n\n if (host) this.hostname = host;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! https://mths.be/punycode v1.4.1 by @mathias */\n;\n\n(function (root) {\n /** Detect free variables */\n var freeExports = (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;\n var freeModule = (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) == 'object' && module && !module.nodeType && module;\n var freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw new RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (;\n /* no initialization */\n delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;)\n /* no final expression */\n {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;;\n /* no condition */\n k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;;\n /* no condition */\n k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.4.1',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (typeof define == 'function' && _typeof(define.amd) == 'object' && define.amd) {\n define('punycode', function () {\n return punycode;\n });\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n})(this);","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = {\n isString: function isString(arg) {\n return typeof arg === 'string';\n },\n isObject: function isObject(arg) {\n return _typeof(arg) === 'object' && arg !== null;\n },\n isNull: function isNull(arg) {\n return arg === null;\n },\n isNullOrUndefined: function isNullOrUndefined(arg) {\n return arg == null;\n }\n};","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict'; // If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function (qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n var maxKeys = 1000;\n\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length; // maxKeys <= 0 means that we should not limit keys count\n\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr,\n vstr,\n k,\n v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar stringifyPrimitive = function stringifyPrimitive(v) {\n switch (_typeof(v)) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function (obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n\n if (obj === null) {\n obj = undefined;\n }\n\n if (_typeof(obj) === 'object') {\n return map(objectKeys(obj), function (k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n\n if (isArray(obj[k])) {\n return map(obj[k], function (v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq + encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map(xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n\n return res;\n};","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static values = {\n multiple: Boolean,\n };\n\n connect() {\n this.element.addEventListener(\"click\", this.onClick);\n this.setActive(this.element.querySelector(\"[type=checkbox]\").checked);\n }\n\n disconnect() {\n this.element.removeEventListener(\"click\", this.onClick);\n }\n\n // events ...................................................................\n\n onChange = (e) => {\n e.stopPropagation();\n this.setActive(e.target.checked || !this.multipleValue);\n };\n\n onClick = (e) => {\n e.stopPropagation();\n };\n\n // private ..................................................................\n\n setActive = (active) => {\n this.element.classList.toggle(\"active\", active);\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"checkbox\", \"definedCount\"];\n\n static values = {\n multiple: Boolean,\n defined: Number,\n };\n\n connect() {\n this.initDropdownAnimations();\n }\n\n onCheck = (e) => {\n e.stopPropagation();\n\n if (this.multipleValue) {\n this.setActive(e.target, e.target.checked);\n this.refreshDefined();\n return;\n }\n\n this.checkboxTargets.forEach((x) => {\n const checked = x === e.target;\n x.checked = checked;\n this.setActive(x, checked);\n });\n this.refreshDefined();\n };\n\n onClear = (e) => {\n e.stopPropagation();\n\n this.checkboxTargets.forEach((x) => {\n x.checked = false;\n this.setActive(x, false);\n });\n\n this.refreshDefined();\n\n this.element.dispatchEvent(\n new Event(\"qoteit:search:resubmit\", { bubbles: true })\n );\n };\n\n // private ..................................................................\n\n refreshDefined = () => {\n const count = this.checkboxTargets.filter((x) => x.checked).length;\n this.definedValue = count;\n if (count) this.definedCountTarget.innerHTML = `(${count})`;\n };\n\n setActive = (chk, active) => {\n chk.closest(\"li\").classList.toggle(\"active\", active);\n };\n\n initDropdownAnimations = () => {\n // Add slideDown animation to Bootstrap dropdown when expanding.\n $(this.element).on(\"show.bs.dropdown\", () => {\n $(this.element)\n .find(\".dropdown-menu\")\n .first()\n .stop(true, true)\n .slideDown(250);\n });\n\n // Add slideUp animation to Bootstrap dropdown when collapsing.\n $(this.element).on(\"hide.bs.dropdown\", () => {\n $(this.element)\n .find(\".dropdown-menu\")\n .first()\n .stop(true, true)\n .slideUp(100);\n });\n };\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n const wrapper = this.element.parentNode.parentNode;\n this._items = wrapper.querySelectorAll(\".quick-filter-item\");\n this.element.addEventListener(\"input\", this.onChange);\n this.element.focus();\n }\n\n disconnect() {\n this.element.removeEventListener(\"input\", this.onClick);\n }\n\n // events ...................................................................\n\n onChange = (e) => {\n e.stopPropagation();\n\n const term = this.element.value.toLowerCase();\n\n this._items.forEach((x) => {\n x.classList.toggle(\n \"d-none\",\n !(x.attributes[\"data-text\"].value || \"\").includes(term)\n );\n });\n };\n\n // private ..................................................................\n}\n","import ApplicationController from \"application_controller\";\nimport I18n from \"lib/i18n\";\n\nexport default class extends ApplicationController {\n static targets = [\n \"form\",\n \"table\",\n \"action\",\n \"actionsContainer\",\n \"columns\",\n // selection\n \"chkOverall\",\n \"selected\",\n \"selectedCount\",\n \"prompt\",\n \"selectAll\",\n ];\n\n reset() {\n this.disconnect();\n this.connect();\n }\n\n connect() {\n // -- initialization\n\n this.uiContainer = this.element;\n this.uiSelectAcross = null;\n\n this.multiSelect = this.parseBool(this.data.get(\"multiSelect\"));\n this.checkedIds = [];\n this.totalCount = parseInt(this.data.get(\"totalCount\"), 10);\n this.pageCount = this.selectedTargets.length;\n this.names = this.data.get(\"names\").split(\",\");\n\n this.initActionEvents();\n\n // -- first render\n\n this.selectedTargets.forEach((el) => {\n this.updateCheckboxStatus(el);\n });\n\n this.updateUi();\n }\n\n initActionEvents() {\n this.actionTargets.forEach((x) => {\n x.addEventListener(\"click\", this.setAction);\n });\n }\n\n // events ...................................................................\n\n onCheckChange = (e) => {\n this.setSelectAcross(false);\n this.updateCheckboxStatus(e.target);\n this.updateUi();\n };\n\n onTogglePage = () => {\n this.setSelectPage(this.allStatus() < 2);\n };\n\n onSelectAll = (e) => {\n e.preventDefault();\n\n this.setSelectPage(true, true);\n };\n\n // methods - private ........................................................\n\n setSelectPage(selected, selectAcross = false) {\n this.checkedIds = [];\n this.selectedTargets.forEach((x) => {\n x.checked = selected;\n this.updateCheckboxStatus(x);\n });\n\n this.setSelectAcross(selectAcross);\n this.updateUi();\n }\n\n setAction = (e) => {\n const actionName = e.target.getAttribute(\"data-action\");\n const actionUrl = e.target.getAttribute(\"data-path\");\n\n if (actionUrl) this.formTarget.action = actionUrl;\n\n if (!this.uiHiddenAction) {\n this.uiHiddenAction = document.createElement(\"input\");\n this.uiHiddenAction.type = \"hidden\";\n this.uiHiddenAction.name = \"_action\";\n this.uiHiddenAction.value = actionName;\n this.tableTarget.insertAdjacentElement(\"afterbegin\", this.uiHiddenAction);\n } else this.uiHiddenAction.value = actionName;\n };\n\n setSelectAcross(active) {\n if (!this.uiSelectAcross) {\n this.uiSelectAcross = document.createElement(\"input\");\n this.uiSelectAcross.type = \"hidden\";\n this.uiSelectAcross.name = \"_action_select_across\";\n this.uiSelectAcross.value = \"0\";\n this.tableTarget.insertAdjacentElement(\"afterbegin\", this.uiSelectAcross);\n }\n\n if (\n (active && this.uiSelectAcross.value === \"1\") ||\n (!active && this.uiSelectAcross.value === \"0\")\n )\n return; // no change\n\n this.uiSelectAcross.value = active ? \"1\" : \"0\";\n }\n\n updateCheckboxStatus(chkEl) {\n if (chkEl.checked) this.checkedIds.push(chkEl.value);\n else this.checkedIds = this.checkedIds.filter((x) => x !== chkEl.value);\n\n chkEl.closest(\".table-row\").classList.toggle(\"selected\", chkEl.checked);\n }\n\n updateActions(count) {\n this.actionTargets.forEach((el) => {\n // -- update enabled status\n\n let disabled = true;\n switch (el.getAttribute(\"data-enabled\")) {\n case \"one-to-many\":\n disabled = count < 1;\n break;\n default:\n }\n\n el.style.display = disabled ? \"none\" : \"\";\n if (disabled) return;\n\n // -- set confirmation data\n\n if (el.hasAttribute(\"data-confirm\")) {\n const action = el.getAttribute(\"data-action\");\n const actionTitle =\n el.getAttribute(\"data-action-label\") ||\n I18n.t(`table.action_titles.${action}`);\n const actionIcon = el.getAttribute(\"data-icon\");\n const title = ` ${actionTitle} ${count} ${\n count > 1 ? this.names[1] : this.names[0]\n }${I18n.t(\"common.qmark\")}`;\n const verify = count.toString();\n const verifyText = I18n.t(\"table.verify_text\", {\n name: this.names[1],\n action: actionTitle.toLowerCase(),\n });\n const confirm = I18n.t(\"table.verify_confirm\", {\n action: actionTitle.toLowerCase(),\n count,\n name: count > 1 ? this.names[1] : this.names[0],\n });\n\n el.setAttribute(\"data-title\", title);\n el.setAttribute(\"data-confirm\", confirm);\n el.setAttribute(\"data-commit\", actionTitle);\n el.setAttribute(\"data-verify\", verify);\n el.setAttribute(\"data-verify-text\", verifyText);\n }\n });\n }\n\n allStatus() {\n const count = this.checkedIds.length;\n let rv = 0;\n if (count === this.totalCount || this.isSelectAcross) rv = 3;\n else if (count >= this.pageCount) rv = 2;\n else if (count > 0) rv = 1;\n return rv;\n }\n\n get isSelectAcross() {\n return this.uiSelectAcross && this.uiSelectAcross.value === \"1\";\n }\n\n updateUi() {\n if (!this.multiSelect) return;\n\n const count = this.checkedIds.length;\n let realCount = count;\n\n // overall count\n\n const status = this.allStatus();\n\n this.chkOverallTarget.indeterminate = false;\n this.chkOverallTarget.checked = false;\n\n switch (status) {\n case 1:\n this.chkOverallTarget.indeterminate = true;\n break;\n case 2:\n this.chkOverallTarget.checked = true;\n break;\n case 3:\n this.chkOverallTarget.checked = true;\n realCount = this.totalCount;\n break;\n default:\n }\n\n // selectedCount\n\n const allSelected = this.isSelectAcross;\n const selectedCountMsg = allSelected\n ? I18n.t(\"table.selected.all\", {\n count: this.totalCount,\n name: this.names[1],\n })\n : I18n.t(\"table.selected.other\", { count });\n this.selectedCountTarget.innerHTML = selectedCountMsg;\n\n // selectAll Prompt\n\n const showPrompt = status === 2 && !allSelected;\n this.promptTarget.classList.toggle(\"d-none\", !showPrompt);\n if (showPrompt)\n this.selectAllTarget.innerHTML = I18n.t(\"table.selected_all\", {\n count: this.totalCount,\n name: this.names[1],\n });\n\n // actions\n\n const showActions = realCount > 0;\n\n if (showActions) this.updateActions(realCount);\n\n this.actionsContainerTarget.classList.toggle(\"d-none\", !showActions);\n this.columnsTarget.classList.toggle(\"d-none\", showActions);\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function visit(t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function clearCache() {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function setProgressBarDelay(t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) {\n n = t[e], r[e] = n;\n }\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) {\n r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n }\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function r(t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function e(t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function o(t, e) {\n return t.slice(0, e.length) === e;\n }, n = function n(t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t, e) {\n return function () {\n return _t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t2, e) {\n return function () {\n return _t2.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function t(_t3, e) {\n return function () {\n return _t3.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t4, e) {\n return function () {\n return _t4.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) {\n u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) {\n e = r[t].tracked, e && n.push(t);\n }\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) {\n i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n }\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) {\n o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n }\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) {\n n = i[o].elements, e(n[0], t) && (r = n[0]);\n }\n\n return r;\n }, i = function i(t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function o(t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function r(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function n(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function e(t, _e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === _e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) {\n e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n }\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function r(t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) {\n s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n }\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function n(t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) {\n o.call(e, n) && (t[n] = e[n]);\n }\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n }\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.removeChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) {\n i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n }\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) {\n a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n }\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) {\n n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n }\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function t(_t5) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", _t5.id), {\n element: e,\n permanentElement: _t5\n };\n }, r = function r(t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function t(_t6, e) {\n function n() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n r.call(e, o) && (_t6[o] = e[o]);\n }\n\n return n.prototype = e.prototype, _t6.prototype = new n(), _t6.__super__ = e.prototype, _t6;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) {\n o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n }\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t7, e) {\n return function () {\n return _t7.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) {\n e = n[t], o.push(delete this.snapshots[e]);\n }\n\n return o;\n }, r = function r(t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t8, e) {\n return function () {\n return _t8.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function n(t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t9, e) {\n return function () {\n return _t9.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) {\n if (t === document.body) return console.warn(\"You are loading Turbolinks from a