{"version":3,"mappings":"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","names":["buildAppInsightsMessage","err","errorMessage","stackTrace","logToAppInsights","name","message","url","_error","_warn","warning","window","factory","lazySizes","module","document","Date","lazysizes","lazySizesCfg","prop","lazySizesDefaults","docElem","supportPicture","_addEventListener","_getAttribute","addEventListener","setTimeout","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","forEach","hasClass","ele","cls","addClass","removeClass","reg","addRemoveLoadEvents","dom","fn","add","action","evt","triggerEvent","elem","detail","noBubbles","noCancelable","event","updatePolyfill","el","full","polyfill","getCSS","style","getWidth","parent","width","rAF","running","waiting","firstFns","secondFns","fns","run","runFns","rafBatch","queue","rAFIt","simple","that","args","throttle","lastTime","gDelay","rICTimeout","idleCallback","isPriority","delay","debounce","func","timeout","timestamp","wait","later","last","loader","preloadElems","isCompleted","resetPreloadingTimer","loadMode","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","regImg","regIframe","supportScroll","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","e","isVisible","isNestedVisible","elemExpand","outerRect","visible","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","hFac","lazyloadElems","unveilElement","throttledCheckElements","switchLoadingClass","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","src","handleSources","source","customMedia","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","isLoaded","autoSizer","afterScroll","altLoadmodeScrollListner","onload","loadingElements","img","autosizesElems","sizeElement","sources","i","len","getSizeElement","dataAttr","updateElementsSizes","debouncedUpdateElementsSizes","init","globalInstall","require$$0","bgLoad","regBgUrlEscape","uniqueUrls","cb","tmp","load","bg","poster","target","addStyleScript","insertElem","nav","mediaQueryList","attach","button","subMenu","subMenuContainer","openMenuButton","openSubMenuContainer","submenu","entry","entries","isOverflown","entryInlineSize","headerSize","activeItem","_a","subMenuButton","subMenuItems","firstSubMenuItem","siblingElem","isTab","forwardTab","backwardTab","isArrowDown","isArrowUp","links","currentIndex","logoLink","isOpen","hamburgerButton","ariaLabel","navOpened","scrollY","scrollDifference","element","menuElem","headerElem","props","__props","_sfc_main","DsText","result","newValue","$options","_createBlock","_component_DsText","_createElementBlock","_ctx","_createElementVNode","$props","show","urlToCompare","domain","_hoisted_4","$data","_b","_toDisplayString","_c","_d","_hoisted_5","emits","__emit","setFormatAriaLabel","str","modalRole","MODAL_ACTION_DISCONTINUE","emit","modalState","modalChoice","consentOptions","redirectionHint","hcpOnBehalfRedirectionHint","trackLoginChoice","consentTrackingRole","close","hcpOption","consumerOption","hcpOnBehalfOfPatient","params","SampleConsentType","Language","Code","axios","data","showModal","vm","consentsState","prescriptionModalData","showPrescriptionModal","customerModel","store","language","setVmModelForModal","toggleModal","openFlyOutBasket","openFlyoutBasket","Events","modalType","setUpperCaseFirstLetter","getPresciptionConsentState","key","cancelPrescriptionModal","addItemToBasket","updateConsent","updateConsentsState","payload","response","getConsentsState","handleConsumer","isRedirectionConfirmed","handleEventComplete","handleHcp","isProductCardOnCampaignPage","description","modalData","toggle","_hoisted_2","_openBlock","_hoisted_1","_hoisted_3","indexOf","list","isWindow","obj","isArraylike","length","ltype","isValidElement","DependencyLib","events","handler","eventRegistry","addEvent","ev","namespace","_events","endx","nsEvent","removeEvent","nmsp","resolveNamespace","evts","hndx","hndL","evNdx","offEvents","offEventsL","evnt","arr","options","copy","copyIsArray","clone","deep","callback","value","owner","require$$1","$","undefined","ua","ie","mobile","isInputEventSupported","iemobile","iphone","Inputmask","alias","internal","resolveAlias","pastedValue","opts","elems","importAttributeOptions","npt","userOptions","dataAttribute","attrOptions","option","dataoptions","optionData","p","importOption","ndx","scopedOpts","maskset","generateMaskSet","maskScope","noremask","metadata","mask","regexMask","tokenizer","regexTokenizer","escaped","currentToken","MaskToken","match","m","openenings","maskTokens","openingToken","currentOpeningToken","alternator","lastMatch","groupToken","isGroup","isOptional","isQuantifier","isAlternator","insertTestDefinition","mtoken","position","prevMatch","lmnt","maskdef","verifyGroupMarker","maskToken","token","nextToken","defaultCase","mndx","reverseTokens","reverseStatic","st","intMatch","qt","groupify","matches","quantifier","mqj","mq","mq0","mq1","tmpMatch","groupQuantifier","subToken","alternatorGroup","input","template","definition","specials","aliasStr","aliasDefinition","nocache","generateMask","repeatStart","masksetDefinition","maskdefKey","ms","altMask","msk","eventName","evName","isSupported","actionObj","inputmask","isRTL","undoValue","$el","skipKeyPressEvent","skipInputEvent","ignorable","maxLength","mouseEnter","colorMask","originalPlaceholder","getMaskTemplate","baseOnInput","minimalPos","includeMode","noJit","clearOptionalTail","greedy","maskTemplate","ndxIntlzr","pos","test","testPos","getLastValidPosition","getMaskSet","determineTestTemplate","getTests","getPlaceholder","getTestTemplate","jitMasking","resetMaskSet","soft","closestTo","strict","validPositions","before","after","valids","posNdx","psNdx","getDecisionTaker","tst","decisionTaker","getLocator","align","locator","tests","altTest","getTest","targetLocator","tstLocator","closest","bestMatch","distance","tstPs","positionCanMatchDefinition","def","valid","tndx","ndxInitializer","insertStop","latestMatch","cacheDependency","resolveTestFromToken","loopNdx","quantifierRecurse","handleMatch","isFirstMatch","tokenGroup","firstMatch","resolveNdxInitializer","alternateNdx","targetAlternation","indexPos","alternation","ndxPos","bestMatchAltIndex","isSubsetOf","expand","pattern","expanded","start","end","l","staticCanMatchDefinition","sloc","tloc","canMatch","setMergeLocators","targetMatch","altMatch","locNdx","optionalToken","mtch","alternateToken","malternateMatches","maltMatches","currentMatches","loopNdxCnt","altIndex","currentPos","ndxInitializerClone","altIndexArr","amndx","altIndexArrClone","unMatchedAlternation","ndx1","dropMatch","ndx2","altMatch2","qndx","mergeLocators","previousPos","mtndx","getBufferTemplate","getBuffer","noCache","refreshFromBuffer","buffer","valResult","isValid","casing","posBefore","checkAlternationMatch","altArr1","altArr2","na","altArrC","isMatch","naArr","naNdx","alndx","alternate","c","fromSetValid","rAltPos","validPsClone","lastAlt","isValidRslt","altPos","prevAltPos","validPos","decisionPos","lAltPos","validInputsClone","staticInputsBeforePos","posOffset","validInputs","targetLvp","fromAlternate","validateOnly","isSelection","posObj","maskPos","_isValid","rslt","validatedPos","a","b","revalidateMask","positionsClone","trackbackPositions","currentPosValid","seekNext","isMask","nPos","snPos","isComplete","postResult","refresh","originalPos","newPos","fillOnly","ps","vp","cvpInput","validTest","IsEnclosedStatic","selection","posMatch","nextMatch","begin","lvp","j","needsValidation","t","newBlock","seekPrevious","writeBuffer","caretPos","triggerEvents","caret","renderColorMask","$input","nptVal","returnPL","staticAlternations","prevTest","HandleNativePlaceholder","nptValue","EventRuler","eventHandler","imOpts","returnVal","evArr","EventHandlers","k","handleRemove","checkVal","checkval","writeOut","forwardPosition","offset","inputValue","tempValue","valueBeforeCaret","valueAfterCaret","pasteValue","radixPointHandler","ieMobileHandler","inputChar","iv","frontPart","backPart","frontBufferPart","backBufferPart","isEntry","fpl","keypress","keydown","tabbed","doRadixFocus","clickPos","vps","radixPos","selectedCaret","clickPosition","lvclickPosition","lastPosition","tt","placeholder","clipboardData","clipData","nptvl","initiatingEvent","charCodes","initialNdx","isTemplateMatch","charCodeNdx","staticInput","charCode","unmaskedvalue","umValue","pndx","unmaskedValue","bufferValue","notranslate","translatePosition","range","scrollCalc","textNode","sel","determineLastRequiredPosition","returnDefinition","bl","positions","lvTest","lvTestAlt","complete","lrp","aml","fromIsValid","pend","initializeColorMask","computedStyle","findCaretPos","clientx","inputText","previousWidth","itl","offset1","offset2","clear","isStatic","setEntry","mtl","setCaret","isElementTypeSupported","patchValueProperty","valueGet","valueSet","patchValhook","type","valhookGet","valhookSet","$elem","getter","setter","installNativeValueSetFallback","object","valueProperty","overruleRTL","elementType","initialValue","valueBuffer","rl","lmib","maskTarget","mtdt","chrs","maskedValue","formatCode","pad","formatAlias","getTokenizer","tokens","isValidDate","dateParts","currentResult","isDateInRange","rawYear","minYear","parse","format","dateObjValue","raw","getFn","val","analyseMask","maskString","dateObj","targetProp","dateOperation","extendProperty","correctedValue","enteredPart","min","max","setValue","today","date","autoEscape","txt","escapedTxt","alignDigits","digits","radixPosition","seps","mod","radixDef","dq","buildPostMask","postMask","radixSplit","suffix","prefix","charAtPos","processValue","rpb","addRadix","newCaretPos","parseMinMaxOptions","unmasked","emptyCheck","pvRadixSplit","bufferTemplate","radix","radixPoint","valueParts","integerPart","decimalPart","digitsFactor","require$$3","self","maskObj","completed","hint","maskList","defs","ia","ib","cha","chb","maskOpts","validator","text","mtxt","ch","mid","pass","it","im","chm","cht","determined","newtext","oldMask","newMask","oldPos","startPos","endPos","chr","insert","_Fragment","newVal","_createVNode","_component_PhoneMask","$event","breadcrumbItems","breadcrumbItem","genericModal","_component_generic_modal","searchParameters","btn","userStatus","DsIcon","_resolveDynamicComponent","_component_DsIcon","_component_mini_basket_count","scrollPosStr","scrollPosObj","selector","elm","rootElement","showClass","hideClass","selected","accepted","choice","root","userTypeOption","activator","consentOption","apiUrl","error","dialog","boundingBox","trigger","closeBtn","_e","eventParameter","_g","_f","_i","_h","_l","_k","_j","_this","BREAKPOINT","css","head","tabs","content","toggleContent","item","currentTab","tabContent","pageId","windowWidth","isStickyHeader","isMagazineNavigation","isMagazineSidebar","isMagazineAnchors","headerHeight","magazineNavigationHeight","setScrollBarWidth","setSidebarOffset","setNavigationOffset","setAnchorOffset","windowScroll","height","scrolled","observerOptions","intersectionCallback","observer","buttons","blockId","menu","clientRect","activationTarget","videoId","initExternalLinksClickEvent","initter","detectIE","windowObj","msie","trident","rv","cleanBannerHeights","setBannerHeights","banner","bannerHeight","setBannerPositions","acc","setBanners","handleClick","node","isIe11class","Cookies","getAccess","sessionDate","cookieAllow","sessionHasStarted","form","fieldNames","variable","vars","toReturn","pair","areImagesLoaded","imageGalleryElement","isDisplayManufacturerLogo","isGalleryMounted","imageGallerySkeleton","app","ImageGallerySkeleton","globalSettingsContainer","GlobalSettings","menuSampleContainer","productWrapper","hcpProductWrapper","miniBasketMount","dateTimes","dateTimeEl","imageGalleryMount","addToBasketMount","n","productDescriptionMount","hcpModalDialog","hcpMainProfilePageMount","marketingPermissionsReminderMounts","marketingPermissionsReminderEl","actionButtonWithCtas","actionButtonWithCtaEl","WhatNextMount","setPasswordMount","renewActivationLinkMount","renewActivationLinkSuccessMount","HCPSignUpBlockMount","HCPLoginBlockMount","HCPLoginBlockMountEl","HCPCompleteSignUpPageMount","HCPAccountSubscriptionsBlockMountArray","subscription","coursesBlockMount","videoPosterMountArray","miniBasketCountMount","globalUtilityMount","ModalDialog","basketFormMount","basketInteractionTrackerMount","sampleFormProductsMount","sampleProductFormMountArray","consumerSignupModalMount","consumerSignupInfoModalMount","globalSearchNav","globalSearchPopup","globalSearchPage","globalSearchArticlesResultPage","globalSearchProductsResultPage","hcpMedicalSpecialityGatePage","contentLibrary","carouselLibraries","multiLevelMenu","podcastPlayers","productCateogryCarousels","ctaHeroBanner","contentGate","contentGateButtons","contentRecommended","contentInfoCard","contentAlternativeDate","utiRiskFactorModel","breadcrumbMount","heyloCheckout","heyloTool","mediaBannerMount","healthCheckTool","ctaBlocks","subNavigationBlock","documentSearchComponent","factsBoxBlock","videoCarouselBlocks","videoCarouselBlock","relatedContentBlock","productHighlightsBlock","highlightedMultimediaBlocks","practitionersGuideOverview","ctaButtomWithFormKits","zoomInModalButtons","uploadCuttingProfile","simpleCardsWithCta","simpleCardsWithCtaEl","globalModal","referencesList","appContainer","index","formEl","elements"],"ignoreList":[1,2,19,20,21,22,23,24,25],"sources":["../../../../Coloplast.UI/src/shared/vanilla/console.js","../../../../Coloplast.UI/node_modules/lazysizes/lazysizes.js","../../../../Coloplast.UI/node_modules/lazysizes/plugins/unveilhooks/ls.unveilhooks.js","../../../../Coloplast.UI/src/shared/vanilla/inlineStackingMenu.js","../../../../Coloplast.UI/src/shared/vanilla/stickyMenu.js","../../../../Coloplast.UI/src/shared/vanilla/nav.js","../../../../Coloplast.UI/src/multisite/components/globalSettings.vue","../../../../Coloplast.UI/src/shared/components/product/miniBasketCount.vue","../../../../Coloplast.UI/src/shared/components/product/sampleButton.vue","../../../../Coloplast.UI/src/shared/components/externalLinksPopup.vue","../../../../Coloplast.UI/src/shared/components/product/prescriptionModal.vue","../../../../Coloplast.UI/src/shared/components/product/sampleConsentModal.vue","../../../../Coloplast.UI/src/shared/services/consentConfirmation.service.js","../../../../Coloplast.UI/src/shared/components/modalDialogWithCta.vue","../../../../Coloplast.UI/src/shared/components/modalDialog.vue","../../../../Coloplast.UI/src/shared/components/trackers/basketNavTracker.vue","../../../../Coloplast.UI/src/shared/components/trackers/formPostTracker.vue","../../../../Coloplast.UI/src/shared/components/spinner.vue","../../../../Coloplast.UI/src/shared/components/globalSpinner.vue","../../../../Coloplast.UI/node_modules/inputmask/dist/inputmask/global/window.js","../../../../Coloplast.UI/node_modules/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js","../../../../Coloplast.UI/node_modules/inputmask/dist/inputmask/inputmask.js","../../../../Coloplast.UI/node_modules/inputmask/dist/inputmask/inputmask.extensions.js","../../../../Coloplast.UI/node_modules/inputmask/dist/inputmask/inputmask.date.extensions.js","../../../../Coloplast.UI/node_modules/inputmask/dist/inputmask/inputmask.numeric.extensions.js","../../../../Coloplast.UI/node_modules/inputmask/index.js","../../../../Coloplast.UI/src/shared/components/PhoneMask.vue","../../../../Coloplast.UI/src/shared/components/phoneField.vue","../../../../Coloplast.UI/src/shared/components/BreadcrumbElements/Breadcrumb.vue","../../../../Coloplast.UI/src/shared/components/loginExpiredModal/loginExpiredModal.vue","../../../../Coloplast.UI/src/shared/components/trackers/loginTracker.vue","../../../../Coloplast.UI/src/shared/components/trackers/quickSampleTracker.vue","../../../../Coloplast.UI/src/shared/components/basket/flyOutBasketActivator.vue","../../../../Coloplast.UI/src/shared/tools/postbackscrollpos.js","../../../../Coloplast.UI/src/shared/vanilla/multisitebasket.js","../../../../Coloplast.UI/src/shared/vanilla/modalDialog.js","../../../../Coloplast.UI/src/shared/vanilla/customEventEmitter.js","../../../../Coloplast.UI/src/shared/vanilla/externalLinksClickEvent.js","../../../../Coloplast.UI/src/shared/vanilla/removeOutline.js","../../../../Coloplast.UI/src/shared/vanilla/initHideBodyScrollBar.js","../../../../Coloplast.UI/src/shared/vanilla/linkOverride.js","../../../../Coloplast.UI/src/shared/vanilla/initHideChat.js","../../../../Coloplast.UI/src/shared/vanilla/tabbingCarousel.js","../../../../Coloplast.UI/src/shared/vanilla/initDownloadPdfUrl.js","../../../../Coloplast.UI/src/shared/vanilla/initMagazineNavigation.js","../../../../Coloplast.UI/src/shared/vanilla/blocks/stepByStep.js","../../../../Coloplast.UI/src/shared/vanilla/boot.js","../../../../Coloplast.UI/src/shared/tools/ieNotification.js","../../../../Coloplast.UI/src/shared/vanilla/initHeylo.js","../../../../Coloplast.UI/src/shared/components/dateTime.vue","../../../../Coloplast.UI/src/shared/components/product/skeletons/imageGallerySkeleton.vue","../../../../Coloplast.UI/src/shared/tools/initGlobalAxios.js","../../../../Coloplast.UI/src/multisite/main.js"],"sourcesContent":["(function initializeConsole() {\r\n\tif (!window.hasOwnProperty('appInsights') || !window.hasOwnProperty('console')) {\r\n\t\t// if appInsights doesn't exist we will not do anything\r\n\t\treturn;\r\n\t}\r\n\t\r\n\tfunction buildAppInsightsMessage(err) {\r\n\t\tlet errorMessage = typeof err === 'string' ? err : '';\r\n\t\t// if this is called by an exception in the code err will be an object with a message property\r\n\t\tif (err.hasOwnProperty('message')) {\r\n\t\t\terrorMessage += err.message;\r\n\t\t}\r\n\t\t// if err also has a stack property (which it will if it's triggered by an exception) report that true\r\n\t\tif (err.hasOwnProperty('stack')) {\r\n\t\t\terrorMessage += '\\n\\n' + err.stack;\r\n\t\t}\r\n\t\t// else see if accessing the stack trace is supported in the browser; if it is then use that\r\n\t\telse if (Error.hasOwnProperty('captureStackTrace')) {\r\n\t\t\tlet stackTrace = {};\r\n\t\t\tError.captureStackTrace(stackTrace, console.error);\r\n\t\t\terrorMessage += '\\n\\n' + stackTrace.stack;\r\n\t\t}\r\n\t\terrorMessage += '\\n\\nUser agent: ' + navigator.userAgent;\r\n\t\t\r\n\t\treturn errorMessage\r\n\t}\r\n\r\n\tfunction logToAppInsights(name, message, url) {\r\n\t\t// if ApplicationInsights are enabled then track the error\r\n\t\tif (appInsights.hasOwnProperty('trackEvent') && typeof appInsights.trackEvent === 'function') {\r\n\t\t\tappInsights.trackEvent({\r\n\t\t\t\tname: name,\r\n\t\t\t\tproperties: {\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\terrorMessage: message,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tappInsights.flush();\r\n\t\t}\r\n\t}\r\n\r\n\t// save a reference to the original console.error method in a closure\r\n\tconst _error = console.error;\r\n\tconsole.error = (err) => {\r\n\t\tlet errorMessage = buildAppInsightsMessage(err);\r\n\t\tlogToAppInsights('MS_FE_GENERAL_ERROR', errorMessage, window.location.href);\r\n\r\n\t\t// call the original console.error method\r\n\t\tif (typeof _error === 'function') {\r\n\t\t\t_error(err);\r\n\t\t}\r\n\t}\r\n\r\n\t// save a reference to the original console.warn method in a closure\r\n\tconst _warn = console.warn;\r\n\tconsole.warn = (warning) => {\r\n\t\tlet errorMessage = buildAppInsightsMessage(warning);\r\n\r\n\t\t// check if this is a Vue warning. If not then call the original console.warn method and return\r\n\t\tif (errorMessage.indexOf('[Vue warn]') !== -1) {\r\n\t\t\tlogToAppInsights('MS_FE_VUE_WARNING', errorMessage, window.location.href);\r\n\t\t}\r\n\r\n\t\t// call the original console.warn method\r\n\t\tif (typeof _warn === 'function') {\r\n\t\t\t_warn(warning);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n})();\r\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","/*\nThis plugin extends lazySizes to lazyLoad:\nbackground images, videos/posters and scripts\n\nBackground-Image:\nFor background images, use data-bg attribute:\n
\n\n Video:\n For video/audio use data-poster and preload=\"none\":\n \n\n For video that plays automatically if in view:\n \n\n\n Scripts:\n For scripts use data-script:\n
\n\n\n Script modules using require:\n For modules using require use data-require:\n
\n*/\n\n(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(window, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\tvar bgLoad, regBgUrlEscape;\n\tvar uniqueUrls = {};\n\n\tif(document.addEventListener){\n\t\tregBgUrlEscape = /\\(|\\)|\\s|'/;\n\n\t\tbgLoad = function (url, cb){\n\t\t\tvar img = document.createElement('img');\n\t\t\timg.onload = function(){\n\t\t\t\timg.onload = null;\n\t\t\t\timg.onerror = null;\n\t\t\t\timg = null;\n\t\t\t\tcb();\n\t\t\t};\n\t\t\timg.onerror = img.onload;\n\n\t\t\timg.src = url;\n\n\t\t\tif(img && img.complete && img.onload){\n\t\t\t\timg.onload();\n\t\t\t}\n\t\t};\n\n\t\taddEventListener('lazybeforeunveil', function(e){\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\t\tvar tmp, load, bg, poster;\n\t\t\tif(!e.defaultPrevented) {\n\n\t\t\t\tvar target = e.target;\n\n\t\t\t\tif(target.preload == 'none'){\n\t\t\t\t\ttarget.preload = target.getAttribute('data-preload') || 'auto';\n\t\t\t\t}\n\n\t\t\t\tif (target.getAttribute('data-autoplay') != null) {\n\t\t\t\t\tif (target.getAttribute('data-expand') && !target.autoplay) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttarget.play();\n\t\t\t\t\t\t} catch (er) {}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\ttarget.setAttribute('data-expand', '-10');\n\t\t\t\t\t\t\tlazySizes.aC(target, lazySizes.cfg.lazyClass);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttmp = target.getAttribute('data-link');\n\t\t\t\tif(tmp){\n\t\t\t\t\taddStyleScript(tmp, true);\n\t\t\t\t}\n\n\t\t\t\t// handle data-script\n\t\t\t\ttmp = target.getAttribute('data-script');\n\t\t\t\tif(tmp){\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\t\t\t\t\taddStyleScript(tmp, null, load);\n\t\t\t\t}\n\n\t\t\t\t// handle data-require\n\t\t\t\ttmp = target.getAttribute('data-require');\n\t\t\t\tif(tmp){\n\t\t\t\t\tif(lazySizes.cfg.requireJs){\n\t\t\t\t\t\tlazySizes.cfg.requireJs([tmp]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddStyleScript(tmp);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// handle data-bg\n\t\t\t\tbg = target.getAttribute('data-bg');\n\t\t\t\tif (bg) {\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\ttarget.style.backgroundImage = 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')';\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\n\t\t\t\t\tbgLoad(bg, load);\n\t\t\t\t}\n\n\t\t\t\t// handle data-poster\n\t\t\t\tposter = target.getAttribute('data-poster');\n\t\t\t\tif(poster){\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\ttarget.poster = poster;\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\n\t\t\t\t\tbgLoad(poster, load);\n\n\t\t\t\t}\n\t\t\t}\n\t\t}, false);\n\n\t}\n\n\tfunction addStyleScript(src, style, cb){\n\t\tif(uniqueUrls[src]){\n\t\t\treturn;\n\t\t}\n\t\tvar elem = document.createElement(style ? 'link' : 'script');\n\t\tvar insertElem = document.getElementsByTagName('script')[0];\n\n\t\tif(style){\n\t\t\telem.rel = 'stylesheet';\n\t\t\telem.href = src;\n\t\t} else {\n\t\t\telem.onload = function(){\n\t\t\t\telem.onerror = null;\n\t\t\t\telem.onload = null;\n\t\t\t\tcb();\n\t\t\t};\n\t\t\telem.onerror = elem.onload;\n\n\t\t\telem.src = src;\n\t\t}\n\t\tuniqueUrls[src] = true;\n\t\tuniqueUrls[elem.src || elem.href] = true;\n\t\tinsertElem.parentNode.insertBefore(elem, insertElem);\n\t}\n}));\n","let /** @type {HTMLHeadElement} header.c-nav */ header = null;\r\nlet /** @type {HTMLDivElement} .c-nav__section-main-navigation */ nav = null;\r\nlet /** @type {HTMLElement} .c-nav-menu */ navElem = null;\r\nlet /** @type {HTMLAnchorElement} :scope > .c-nav-item */ navItems = null;\r\nlet /** @type {HTMLAnchorElement} */ firstNavItem = null;\r\nlet /** @type {HTMLAnchorElement} */ lastNavItem = null;\r\nlet /** @type {HTMLDivElement} .c-nav-placeholder */ placeholder = null;\r\nlet /** @type {HTMLElement} #multi-level-menu */ multiLevelMenu = null;\r\nlet /** @type {HTMLElement} */ headerFirstFocusableEl = null;\r\nlet /** @type {HTMLElement} */ headerLastFocusableEl = null;\r\nlet /** @type {HTMLElement[]} */ allHeaderFocusableEls = null;\r\n\r\nlet resizeObserverInline = null;\r\nlet resizeObserverStacked = null;\r\nlet resizeObserverHeader = null;\r\nlet timeout = null;\r\nlet isTouch = false;\r\n\r\nconst getMediaQueryList = () => {\r\n\tconst mediaQuery = '(min-width: 768px)';\r\n\treturn window.matchMedia(mediaQuery);\r\n}\r\n\r\n/**\r\n * Listens for media query change (at 768px), and appropriately attaches/detaches desktop/mobile\r\n * event listeners\r\n * @listens var:{@link mediaQueryList}~e:change - media-query change at 768px\r\n * @triggered f:{@link attachObservers}\r\n */\r\nexport const attachResponsiveBehaviour = () => {\r\n\tconst mediaQueryList = getMediaQueryList();\r\n\r\n\tif (mediaQueryList.matches) {\r\n\t\tattachDesktopEvents();\r\n\t} else {\r\n\t\tattachMobileEvents();\r\n\t}\r\n\r\n\tmediaQueryList.addEventListener('change', event => {\r\n\t\tif (event.matches) {\r\n\t\t\tattachDesktopEvents();\r\n\t\t\tdetachMobileEvents();\r\n\t\t} else {\r\n\t\t\tattachMobileEvents();\r\n\t\t\tdetachDesktopEvents();\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Adds/removes mobile events. Is triggered in appropriate remove/add mode when the mediaQueryList\r\n * emits 'change' event, which happens at 768px\r\n * @triggered var:${@link mediaQueryList}~e:change\r\n * @triggered f:{@link attachResponsiveBehaviour}\r\n */\r\nexport const attachMobileEvents = (attach = true) => {\r\n\tconst buttons = document.querySelectorAll(\".c-nav-item__button\");\r\n\r\n\tbuttons.forEach(button => {\r\n\t\tif (attach) {\r\n\t\t\tbutton.addEventListener(\"click\", toggleAriaExpanded);\r\n\t\t} else {\r\n\t\t\tbutton.removeEventListener(\"click\", toggleAriaExpanded);\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const detachMobileEvents = () => {\r\n\tattachMobileEvents(false);\r\n};\r\n\r\n/**\r\n * Adds/removes desktop events. Is triggered in appropriate remove/add mode when the mediaQueryList\r\n * emits 'change' event, which happens at 768px\r\n * @triggered var:{@link mediaQueryList}~e:change\r\n * @triggered f:{@link attachResponsiveBehaviour}\r\n */\r\nexport const attachDesktopEvents = (attach = true) => {\r\n\tdocument.documentElement.classList.remove(\"nav-open\", \"nav-search\", \"nav-search-popup\");\r\n\tconst subMenus = document.querySelectorAll(\".c-nav-item--has-sub-menu > .c-nav__submenu-container\");\r\n\tsubMenus.forEach(subMenu => {\r\n\t\t// Set aria attribute for sub-menu\r\n\t\tconst subMenuContainer = subMenu.parentNode;\r\n\t\tsubMenu.setAttribute(\"aria-hidden\", \"true\");\r\n\t\tconst button = subMenuContainer.querySelector(\".c-nav-item__button\");\r\n\t\tbutton.setAttribute(\"aria-expanded\", \"false\");\r\n\r\n\t\tif (attach) {\r\n\t\t\tsubMenuContainer.addEventListener(\"focusin\", openSubMenu);\r\n\t\t\tsubMenuContainer.addEventListener(\"focusout\", closeSubMenu);\r\n\t\t\tsubMenuContainer.addEventListener(\"keydown\", handleKeyEventsInSubMenu);\r\n\t\t\tsubMenuContainer.addEventListener(\"mouseenter\", removeFocusFromOtherNavSections);\r\n\t\t\tsubMenuContainer.addEventListener(\"touchend\", forceTabletFocus);\r\n\t\t\tdocument.addEventListener(\"touchend\", closeOnTouchOutside);\r\n\t\t} else {\r\n\t\t\tsubMenuContainer.removeEventListener(\"focusin\", openSubMenu);\r\n\t\t\tsubMenuContainer.removeEventListener(\"focusout\", closeSubMenu);\r\n\t\t\tsubMenuContainer.removeEventListener(\"keydown\", handleKeyEventsInSubMenu);\r\n\t\t\tsubMenuContainer.removeEventListener(\"mouseenter\", removeFocusFromOtherNavSections);\r\n\t\t\tsubMenuContainer.removeEventListener(\"touchend\", forceTabletFocus);\r\n\t\t\tdocument.removeEventListener(\"touchend\", closeOnTouchOutside);\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const detachDesktopEvents = () => {\r\n\tattachDesktopEvents(false);\r\n};\r\n\r\n/**\r\n * Removes the focus from other nav sections (eg. prevents from two submenus being open, when\r\n * one is focused with Tab, and the the other is hovered with mouse)\r\n * @triggered .c-nav-item__button~e:mouseenter\r\n */\r\nexport const removeFocusFromOtherNavSections = e => {\r\n\tif (!e.target.contains(document.activeElement)) {\r\n\t\tdocument.activeElement.blur();\r\n\t}\r\n};\r\n\r\nexport const forceTabletFocus = e => {\r\n\te.stopPropagation();\r\n\tisTouch = true;\r\n\theader.classList.add(\"--touch\");\r\n\tif (e.target.classList.contains(\"c-nav-item__button\")) {\r\n\t\tcloseOpenSubMenu();\r\n\t\te.target.focus();\r\n\t}\r\n};\r\n\r\nexport const closeOnTouchOutside = e => {\r\n\tconst openMenuButton = document.querySelector(\".c-nav-item__button[aria-expanded='true']\");\r\n\tconst openSubMenuContainer = openMenuButton ? openMenuButton.closest(\".c-nav-item--has-sub-menu\") : null;\r\n\tif (openSubMenuContainer && !openSubMenuContainer.contains(e.target)) {\r\n\t\tcloseSubMenuByElem(openSubMenuContainer);\r\n\t}\r\n};\r\n\r\n/**\r\n * Dynamically change aria-labels, which are also used by the CSS to show/hide sub-menu\r\n * @triggered f:attachMobileEvents -> button.c-nav-item__button::click\r\n */\r\nexport const toggleAriaExpanded = e => {\r\n\tconst button = e.currentTarget;\r\n\tconst submenu = button.nextElementSibling;\r\n\tif (button.getAttribute(\"aria-expanded\") === \"true\") {\r\n\t\tbutton.setAttribute(\"aria-expanded\", \"false\");\r\n\t\tsubmenu.setAttribute(\"aria-hidden\", \"true\");\r\n\t} else {\r\n\t\tbutton.setAttribute(\"aria-expanded\", \"true\");\r\n\t\tsubmenu.setAttribute(\"aria-hidden\", \"false\");\r\n\t}\r\n};\r\n\r\nexport const getInlineSize = (entry) => {\r\n\tconst hasBorderBoxSize = typeof entry.borderBoxSize !== \"undefined\";\r\n\tif (hasBorderBoxSize) {\r\n\t\treturn Array.isArray(entry.borderBoxSize) ? entry.borderBoxSize[0].inlineSize : entry.borderBoxSize.inlineSize;\r\n\t}\r\n\treturn entry.contentRect.width;\r\n}\r\n\r\nexport const getBlockSize = (entry) => {\r\n\tconst hasBorderBoxSize = typeof entry.borderBoxSize !== \"undefined\";\r\n\tif (hasBorderBoxSize) {\r\n\t\treturn Array.isArray(entry.borderBoxSize) ? entry.borderBoxSize[0].blockSize : entry.borderBoxSize.blockSize;\r\n\t}\r\n\treturn entry.contentRect.height;\r\n}\r\n\r\nexport const stackedObserver = (entries) => {\r\n\tif (header.classList.contains(\"header--nav-stacked\")) {\r\n\t\tfor (let entry of entries) {\r\n\t\t\t// Ensure we won't thrash between layout modes by checking overflow state here too\r\n\t\t\tconst isOverflown = lastNavItem.offsetTop > firstNavItem.offsetTop + firstNavItem.clientHeight;\r\n\r\n\t\t\tconst entryInlineSize = getInlineSize(entry);\r\n\t\t\tif (!isOverflown && Math.ceil(navElem.offsetWidth) < Math.ceil(entryInlineSize)) {\r\n\t\t\t\tresizeObserverStacked.unobserve(placeholder);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\theader.classList.remove(\"header--nav-stacked\");\r\n\t\t\t\t\tresizeObserverInline.observe(nav, { box: \"border-box\" });\r\n\t\t\t\t}, 10);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport const inlineObserver = (entries) => {\r\n\tif (!header.classList.contains(\"header--nav-stacked\")) {\r\n\t\tentries.forEach(() => {\r\n\t\t\tconst isOverflown = lastNavItem.offsetTop > firstNavItem.offsetTop + firstNavItem.clientHeight;\r\n\t\t\tif (isOverflown) {\r\n\t\t\t\t\tresizeObserverInline.unobserve(nav);\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\theader.classList.add(\"header--nav-stacked\");\r\n\t\t\t\t\t\tresizeObserverStacked.observe(placeholder, { box: \"border-box\" });\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n\r\n// Allow css to pick up the header height\r\nexport const headerObserver = (entries) => {\r\n\tconst headerSize = getBlockSize(entries[0]);\r\n\theader.setAttribute(\"style\", `--header-height: ${headerSize}px`);\r\n};\r\n\r\n/**\r\n * @triggered f:{@link initInlineStacking}\r\n */\r\nexport const attachObservers = () => {\r\n\tresizeObserverInline = new ResizeObserver(inlineObserver);\r\n\tresizeObserverStacked = new ResizeObserver(stackedObserver);\r\n\tresizeObserverHeader = new ResizeObserver(headerObserver);\r\n\tresizeObserverInline.observe(nav, { box: \"border-box\" });\r\n\tresizeObserverHeader.observe(header, { box: \"border-box\" });\r\n\r\n\tattachAriaAttributes();\r\n\tattachResponsiveBehaviour();\r\n};\r\n\r\nexport const attachObserversForMultiLevel = () => {\r\n\tmultiLevelMenu = document.getElementById(\"multi-level-menu\");\r\n\tclearTimeout(timeout);\r\n\tif (multiLevelMenu.__vue__) {\r\n\t\tnavItems = document.querySelectorAll(\".c-multi-level-menu__subitem-primary\");\r\n\t\tfirstNavItem = navItems[0];\r\n\t\tlastNavItem = navItems[navItems.length - 1];\r\n\t\tattachObservers();\r\n\t} else {\r\n\t\ttimeout = setTimeout(attachObserversForMultiLevel, 500);\r\n\t}\r\n};\r\n\r\nexport const expandActiveMenuItems = () => {\r\n\tconst menuContainer = document.querySelector(\".c-nav-menu\");\r\n\tconst activeItem = menuContainer.querySelector('.-active');\r\n\tif (!activeItem) {\r\n\t\treturn;\r\n\t}\r\n\tconst button = activeItem.closest('.c-nav-item')?.querySelector('button');\r\n\tif (button) {\r\n\t\topenSubMenu({\r\n\t\t\ttarget: button,\r\n\t\t\tcurrentTarget: button.parentElement,\r\n\t\t});\r\n\t}\r\n};\r\n\r\n/**\r\n * Attaches menu observers, attaches mobile-toggle behavior\r\n * @triggered file:nav.js~f:initNavDomReady\r\n */\r\nexport const initInlineStacking = () => {\r\n header = document.querySelector(\"header.c-nav\");\r\n nav = document.querySelector(\".c-nav__section-main-navigation\");\r\n navElem = nav.querySelector(\".c-nav-menu\");\r\n\tnavItems = navElem.querySelectorAll(\":scope > .c-nav-item\");\r\n\tfirstNavItem = navItems[0]?.classList.contains(\"visible-mobile-only\") ? navItems[1] : navItems[0];\r\n\tlastNavItem = navItems[navItems.length - 1];\r\n placeholder = document.querySelector(\".c-nav-placeholder\");\r\n\tmultiLevelMenu = document.getElementById(\"multi-level-menu\");\r\n\r\n\t// Only attach behaviours if we have nav items\r\n\tif (firstNavItem && lastNavItem) {\r\n\t\tattachObservers();\r\n\t} else if (multiLevelMenu) {\r\n\t\t// Multi-level menu may not have mounted\r\n\t\tattachObserversForMultiLevel();\r\n\t}\r\n\r\n\tattachMobileToggleBehaviour();\r\n\r\n\t// if on mobile, expand the active top menu item\r\n\tconst mediaQueryList = getMediaQueryList();\r\n\tif (!mediaQueryList.matches) {\r\n\t\texpandActiveMenuItems();\r\n\t}\r\n}\r\n\r\n/**\r\n * Opens the _sub-menu_ by setting appropriate aria-labels & focuses the first element inside\r\n * in such exists\r\n * @param {FocusEvent} e\r\n * @triggered div.c-nav-item~e:focusin\r\n */\r\nexport const openSubMenu = (e) => {\r\n\tconst subMenuContainer = e.currentTarget;\r\n\tconst subMenuButton = subMenuContainer.querySelector(\".c-nav-item__button\");\r\n\tconst subMenu = subMenuContainer.querySelector(\".c-nav__submenu-container\");\r\n\tsubMenuButton.setAttribute(\"aria-expanded\", \"true\");\r\n\tsubMenu.setAttribute(\"aria-hidden\", \"false\");\r\n\r\n\tconst subMenuItems = subMenu.querySelectorAll(\".c-nav__submenu-item > a\");\r\n\tconst firstSubMenuItem = subMenuItems.length ? subMenuItems[0] : null;\r\n\r\n\tconst targetIsButton = e.target === subMenuButton;\r\n\r\n\tif (targetIsButton && firstSubMenuItem) {\r\n\t\tfirstSubMenuItem.focus();\r\n\t}\r\n};\r\n\r\n/**\r\n * Closes the _sub-menu_ if navigating to the other _sub-menu_\r\n * @param {FocusEvent} e\r\n * @triggered div.c-nav-item~e:focusout\r\n */\r\nexport const closeSubMenu = (e) => {\r\n\tconst subMenuContainer = e.currentTarget;\r\n\t// Only close the menu if the element about to be focused is not inside the submenu\r\n\tif (!isTouch) {\r\n\t\tconst relatedTargetIsInsideSubMenu =\r\n\t\t\te.relatedTarget !== null ? subMenuContainer.contains(e.relatedTarget) : false;\r\n\t\tif (!relatedTargetIsInsideSubMenu || e.relatedTarget === null) {\r\n\t\t\tcloseSubMenuByElem(subMenuContainer);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n/**\r\n * Finds the opened _sub-menu_ and closes it\r\n */\r\nexport const closeOpenSubMenu = () => {\r\n\tconst openMenuButton = document.querySelector(\".c-nav-item__button[aria-expanded='true']\");\r\n\tconst openSubMenuContainer = openMenuButton ? openMenuButton.closest(\".c-nav-item--has-sub-menu\") : null;\r\n\tif (openSubMenuContainer) {\r\n\t\tcloseSubMenuByElem(openSubMenuContainer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Closes the _sub-menu_ contained within _subMenuContainer_ via setting the appropriate aria-labels.\r\n * The aria labels affect the CSS and thus the sub-menu closes\r\n * @param {HTMLDivElement} subMenuContainer `div.c-nav-item`, which contains the _button_ (`.c-nav-item__button`)\r\n * and the _sub-menu container_ with its elements (`.c-nav__submenu-container`)\r\n */\r\nexport const closeSubMenuByElem = (subMenuContainer) => {\r\n\tconst subMenuButton = subMenuContainer.querySelector(\".c-nav-item__button\");\r\n\tconst subMenu = subMenuContainer.querySelector(\".c-nav__submenu-container\");\r\n\tsubMenuButton.setAttribute(\"aria-expanded\", \"false\");\r\n\tsubMenu.setAttribute(\"aria-hidden\", \"true\");\r\n}\r\n\r\n/**\r\n * Finds first focusable element inside the _siblingElem_ (`div.c-nav-item`) and focuses it\r\n * @param {KeyboardEvent} e keyboard event coming from the {@link handleKeyEventsInSubMenu} function\r\n * @param {HTMLDivElement} siblingElem `div.c-nav-item`, which contains the _button_ (`.c-nav-item__button`)\r\n * and the _sub-menu container_ with its elements (`.c-nav__submenu-container`)\r\n */\r\nexport const navigateToSibling = (siblingElem, e) => {\r\n\tif (siblingElem) {\r\n\t\te.preventDefault();\r\n\t\tconst siblingFocalElem = siblingElem.querySelector(\".c-nav-item__button, .c-nav-item__link\");\r\n\t\tsiblingFocalElem.focus();\r\n\t\treturn true;\r\n\t}\r\n\treturn false;\r\n};\r\n\r\n/**\r\n * Handles closing/opening the sub-menus when navigating with 'Tab' and 'arrow keys'\r\n * @param {KeyboardEvent} e\r\n * @triggered div.c-nav-item~e:keydown\r\n */\r\nexport const handleKeyEventsInSubMenu = (e) => {\r\n\tconst subMenuContainer = e.currentTarget;\r\n\tconst isTab = e.key === \"Tab\";\r\n\tconst forwardTab = isTab && !e.shiftKey;\r\n\tconst backwardTab = isTab && e.shiftKey;\r\n\r\n\tconst isArrowDown = e.key === \"ArrowDown\";\r\n\tconst isArrowUp = e.key === \"ArrowUp\";\r\n\r\n\tif (isArrowDown || isArrowUp) {\r\n\t\tconst links = Array.from(subMenuContainer.querySelectorAll(\".c-nav__submenu a\"));\r\n\t\tconst currentIndex = links.indexOf(e.target);\r\n\r\n\t\tif (isArrowDown) {\r\n\t\t\te.preventDefault();\r\n\t\t\tlinks[(currentIndex + 1) % links.length].focus();\r\n\t\t}\r\n\r\n\t\tif (isArrowUp) {\r\n\t\t\tlinks[(currentIndex + links.length - 1) % links.length].focus();\r\n\t\t}\r\n\t}\r\n\r\n\tif (forwardTab) {\r\n\t\tnavigateToSibling(subMenuContainer.nextElementSibling, e);\r\n\t}\r\n\r\n\tif (backwardTab) {\r\n\t\tconst tabbed = navigateToSibling(subMenuContainer.previousElementSibling, e);\r\n\t\tif (!tabbed) {\r\n\t\t\t// Can't navigate back, must be at the start of the menu\r\n\t\t\te.preventDefault();\r\n\t\t\tconst logoLink = document.querySelector(\".c-nav-logo__link\");\r\n\t\t\tif (logoLink) {\r\n\t\t\t\tlogoLink.focus();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n/**\r\n * Dynamically sets proper aria-labels values for mobile navigation hamburger button\r\n * @triggered f:attachMobileToggleBehaviour -> button.c-nav-mobile~e:click\r\n */\r\nconst adjustHamburgerButtonAriaLabel = (isOpen = true) => {\r\n\tconst hamburgerButton = document.querySelector('button.c-nav-mobile');\r\n\tif (!hamburgerButton) return;\r\n\r\n\tconst ariaLabel = isOpen ? hamburgerButton.dataset['ariaCloseLabel'] : hamburgerButton.dataset['ariaOpenLabel'];\r\n\r\n\thamburgerButton.setAttribute('aria-label', ariaLabel);\r\n\thamburgerButton.setAttribute('aria-expanded', isOpen ? 'true' : 'false');\r\n};\r\n\r\n/**\r\n * Attaches toggle main-nav behavior to hamburger button\r\n * @listens button.c-nav-mobile~e:click\r\n * @triggered {@link initInlineStacking}\r\n */\r\nexport const attachMobileToggleBehaviour = () => {\r\n\tconst toggle = document.querySelector(\".c-nav-mobile\");\r\n\r\n\ttoggle.addEventListener('click', toggleNavMobile);\r\n};\r\n\r\n/**\r\n * Toggles main-nav via toggling the .nav-open class on the documents' root elem\r\n * @fires {@link adjustHamburgerButtonAriaLabel}\r\n * @triggered f:{@link attachMobileToggleBehaviour} -> .c-nav-mobile~e:click\r\n */\r\nfunction toggleNavMobile() {\r\n\tconst navOpened = document.documentElement.classList.toggle('nav-open');\r\n\tadjustHamburgerButtonAriaLabel(navOpened);\r\n\r\n\tif (navOpened) {\r\n\t\t// It should happen only once, on initial open\r\n\t\tif (allHeaderFocusableEls == null) {\r\n\t\t\tallHeaderFocusableEls = Array.from(\r\n\t\t\t\theader.querySelectorAll(\r\n\t\t\t\t\t`button:not([tabindex=\"-1\"]):not([aria-hidden]),\r\n\t\t\t\t\tinput:not([tabindex=\"-1\"]):not([aria-hidden]),\r\n\t\t\t\t\ta:not([tabindex=\"-1\"]):not([aria-hidden]),\r\n\t\t\t\t\t[tabindex=\"0\"]`\r\n\t\t\t\t)\r\n\t\t\t).filter((el) => el.offsetParent != null);\r\n\r\n\t\t\theaderFirstFocusableEl = allHeaderFocusableEls[0];\r\n\t\t\theaderLastFocusableEl = allHeaderFocusableEls.at(-1);\r\n\t\t}\r\n\r\n\t\theader?.addEventListener('keydown', handleHeaderKeydown);\r\n\t\theaderFirstFocusableEl?.addEventListener('keydown', preventFocusGoingOutsideBackward);\r\n\t} else {\r\n\t\theader?.removeEventListener('keydown', handleHeaderKeydown);\r\n\t\theaderFirstFocusableEl?.removeEventListener('keydown', preventFocusGoingOutsideBackward);\r\n\t}\r\n}\r\n\r\n/**\r\n * Adds aria-labels for the main-menu dropdown-buttons & corresponding sub-menu containers\r\n * @triggered f:{@link attachObservers}\r\n */\r\nexport const attachAriaAttributes = () => {\r\n\tconst subMenus = document.querySelectorAll(\".c-nav-item--has-sub-menu > .c-nav__submenu-container\");\r\n\tsubMenus.forEach(subMenu => {\r\n\t\t// Set aria attribute for sub-menu\r\n\t\tsubMenu.setAttribute(\"aria-hidden\", \"true\");\r\n\t});\r\n\tconst dropdownButtons = document.querySelectorAll(\".c-nav-item__button\");\r\n\tdropdownButtons.forEach(button => {\r\n\t\t// Set aria attributes for sub-menu button\r\n\t\tbutton.setAttribute(\"aria-haspopup\", \"true\");\r\n\t\tbutton.setAttribute(\"aria-expanded\", \"false\");\r\n\t});\r\n};\r\n\r\n/**\r\n * Checks if the \"next active element\" is inside the header, and in case it isn't,\r\n * it brings it back to the first focusable element of the header\r\n * @triggered f:{@link toggleNavMobile} -> header.c-nav~e:keydown\r\n */\r\nfunction trapFocusInsideHeader() {\r\n\tsetTimeout(() => {\r\n\t\tif (!header.contains(document.activeElement)) {\r\n\t\t\theaderFirstFocusableEl.focus();\r\n\t\t}\r\n\t}, 0);\r\n}\r\n\r\n/**\r\n * If pressed key is \"Escape\", it closes the main nav\r\n * @triggered f:{@link handleHeaderKeydown} - handler for the keydown event, which is attached to the opened header\r\n */\r\nfunction attachEscClose(e) {\r\n\tif (e.key == 'Escape') {\r\n\t\ttoggleNavMobile();\r\n\t}\r\n}\r\n\r\n/**\r\n * When \"navigating backwards\" with Tab + Shift key, prevent focus to go outside the header\r\n * @triggered f:{@link toggleNavMobile} -> header ~e:keydown\r\n */\r\nfunction preventFocusGoingOutsideBackward(e) {\r\n\tif (e.key == 'Tab' && e.shiftKey) {\r\n\t\te.preventDefault();\r\n\t\theaderLastFocusableEl.focus();\r\n\t}\r\n}\r\n\r\nfunction handleHeaderKeydown(e) {\r\n\ttrapFocusInsideHeader();\r\n\tattachEscClose(e);\r\n}\r\n\r\nexport default initInlineStacking;\r\n","import { throttle } from \"lodash\";\r\n\r\nconst THRESHOLD = 30;\r\nconst SCROLL_DIFFERENCE_THRESHOLD = 2;\r\nconst MEDIA_QUERY = '(min-width: 768px)';\r\nconst HEADER_CLASS_SELECTOR = 'header.c-nav';\r\nconst HEADER_FIXED_CLASS = 'header--fixed-stack';\r\nconst FIXED_NAV_CLASS = 'fixed-nav';\r\n\r\nlet headerElement = null;\r\nlet lastScrollPosition = 0;\r\nlet mediaQueryList = null;\r\n\r\n// apply the `fixed-nav` class when the nav is in sticky mode\r\nexport const stickyObserverFunction = ([entry]) => entry.target.classList.toggle(FIXED_NAV_CLASS, entry.intersectionRatio < 1)\r\n\r\nfunction updateHeaderOnScroll() {\r\n const scrollY = window.scrollY;\r\n\r\n const scrollDifference = scrollY - lastScrollPosition;\r\n\r\n if (scrollDifference > SCROLL_DIFFERENCE_THRESHOLD) {\r\n requestAnimationFrame(() => headerElement.classList.remove(HEADER_FIXED_CLASS));\r\n } else if (scrollDifference < -THRESHOLD) {\r\n requestAnimationFrame(() => headerElement.classList.add(HEADER_FIXED_CLASS));\r\n }\r\n\r\n lastScrollPosition = scrollY;\r\n}\r\n\r\nexport const detectShowHideNavItems = () => {\r\n if (mediaQueryList.matches) {\r\n updateHeaderOnScroll();\r\n }\r\n}\r\n\r\nexport const initStickyMenu = (element) => {\r\n if (!element) {\r\n console.error('initStickyMenu requires a valid element');\r\n return;\r\n }\r\n\r\n mediaQueryList = window.matchMedia(MEDIA_QUERY);\r\n headerElement = document.querySelector(HEADER_CLASS_SELECTOR);\r\n\r\n if (!headerElement) {\r\n console.error(`Header element not found with selector: ${HEADER_CLASS_SELECTOR}`);\r\n return;\r\n }\r\n\r\n window.addEventListener(\"scroll\", throttle(detectShowHideNavItems, 100));\r\n\r\n const stickyObserver = new IntersectionObserver(\r\n stickyObserverFunction,\r\n { threshold: [1] }\r\n );\r\n\r\n stickyObserver.observe(headerElement);\r\n};\r\n\r\nexport default initStickyMenu;\r\n","import { initInlineStacking } from \"./inlineStackingMenu\";\r\nimport { initStickyMenu } from \"./stickyMenu\";\r\n\r\nexport const initNavDomReady = (menuElem) => {\r\n\tif (menuElem) {\r\n\t\tif (menuElem.dataset.sticky === \"true\") {\r\n\t\t\tinitStickyMenu(menuElem);\r\n\t\t}\r\n\t\tinitInlineStacking();\r\n\t}\r\n};\r\n\r\nexport const initNav = (fn = initNavDomReady) => {\r\n\t// If the header is already present then execute the code immediately, else we'll wait until the DOM is fully loaded\r\n\tconst headerElem = document.querySelector(\"header.c-nav\");\r\n\tconst menuElem = document.querySelector(\".c-nav-menu\");\r\n\tif (headerElem && menuElem) {\r\n\t\tfn(menuElem);\r\n\t} else {\r\n\t\twindow.addEventListener(\"DOMContentLoaded\", () => fn(menuElem));\r\n\t}\r\n};\r\n\r\nexport default initNav;\r\n","\r\n\r\n\r\n","\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","import axios from 'shared/tools/axiosMultisite';\r\n\r\nconst GET_CONSENT_CONFIRMATION_API = '/api/sample-consent/consent';\r\nconst POST_CONSENT_CONFIRMATION_API = '/api/sample-consent/add-consent';\r\n\r\nexport const checkConsentConfirmation = async function checkConsentConfirmation(params) {\r\n\tconst {SampleConsentType, Language, Code} = params;\r\n\ttry {\r\n\t\treturn await axios.get(GET_CONSENT_CONFIRMATION_API, {\r\n\t\t\tparams: {\r\n\t\t\t\tSampleConsentType,\r\n\t\t\t\tLanguage,\r\n\t\t\t\tCode\r\n\t\t\t}\r\n\t\t})\r\n\t} catch (err) {\r\n\t\tconsole.error(err);\r\n\t}\r\n}\r\n\r\nexport const updateConsentConfirmation = async function updateConsentConfirmation(data) {\r\n\ttry {\r\n\t\treturn await axios.post(POST_CONSENT_CONFIRMATION_API, data)\r\n\t} catch (err) {\r\n\t\tconsole.error(err);\r\n\t}\r\n}\r\n\r\nconst ConsentConfirmationService = {\r\n\tupdateConsentConfirmation,\r\n\tcheckConsentConfirmation,\r\n};\r\n\r\nexport default ConsentConfirmationService;\r\n","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","/*!\n* global/window.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\nif (typeof define === \"function\" && define.amd) define(function() {\n return typeof window !== \"undefined\" ? window : new (eval(\"require('jsdom').JSDOM\"))(\"\").window;\n}); else if (typeof exports === \"object\") module.exports = typeof window !== \"undefined\" ? window : new (eval(\"require('jsdom').JSDOM\"))(\"\").window;","/*!\n* dependencyLibs/inputmask.dependencyLib.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (typeof define === \"function\" && define.amd) {\n define([ \"../global/window\" ], factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory(require(\"../global/window\"));\n } else {\n window.dependencyLib = factory(window);\n }\n})(function(window) {\n var document = window.document;\n function indexOf(list, elem) {\n var i = 0, len = list.length;\n for (;i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n return -1;\n }\n function isWindow(obj) {\n return obj != null && obj === obj.window;\n }\n function isArraylike(obj) {\n var length = \"length\" in obj && obj.length, ltype = typeof obj;\n if (ltype === \"function\" || isWindow(obj)) {\n return false;\n }\n if (obj.nodeType === 1 && length) {\n return true;\n }\n return ltype === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n function isValidElement(elem) {\n return elem instanceof Element;\n }\n function DependencyLib(elem) {\n if (elem instanceof DependencyLib) {\n return elem;\n }\n if (!(this instanceof DependencyLib)) {\n return new DependencyLib(elem);\n }\n if (elem !== undefined && elem !== null && elem !== window) {\n this[0] = elem.nodeName ? elem : elem[0] !== undefined && elem[0].nodeName ? elem[0] : document.querySelector(elem);\n if (this[0] !== undefined && this[0] !== null) {\n this[0].eventRegistry = this[0].eventRegistry || {};\n }\n }\n }\n function getWindow(elem) {\n return isWindow(elem) ? elem : elem.nodeType === 9 ? elem.defaultView || elem.parentWindow : false;\n }\n DependencyLib.prototype = {\n on: function(events, handler) {\n if (isValidElement(this[0])) {\n var eventRegistry = this[0].eventRegistry, elem = this[0];\n var addEvent = function(ev, namespace) {\n if (elem.addEventListener) {\n elem.addEventListener(ev, handler, false);\n } else if (elem.attachEvent) {\n elem.attachEvent(\"on\" + ev, handler);\n }\n eventRegistry[ev] = eventRegistry[ev] || {};\n eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [];\n eventRegistry[ev][namespace].push(handler);\n };\n var _events = events.split(\" \");\n for (var endx = 0; endx < _events.length; endx++) {\n var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n addEvent(ev, namespace);\n }\n }\n return this;\n },\n off: function(events, handler) {\n if (isValidElement(this[0])) {\n var eventRegistry = this[0].eventRegistry, elem = this[0];\n var removeEvent = function(ev, namespace, handler) {\n if (ev in eventRegistry === true) {\n if (elem.removeEventListener) {\n elem.removeEventListener(ev, handler, false);\n } else if (elem.detachEvent) {\n elem.detachEvent(\"on\" + ev, handler);\n }\n if (namespace === \"global\") {\n for (var nmsp in eventRegistry[ev]) {\n eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1);\n }\n } else {\n eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);\n }\n }\n };\n var resolveNamespace = function(ev, namespace) {\n var evts = [], hndx, hndL;\n if (ev.length > 0) {\n if (handler === undefined) {\n for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) {\n evts.push({\n ev: ev,\n namespace: namespace && namespace.length > 0 ? namespace : \"global\",\n handler: eventRegistry[ev][namespace][hndx]\n });\n }\n } else {\n evts.push({\n ev: ev,\n namespace: namespace && namespace.length > 0 ? namespace : \"global\",\n handler: handler\n });\n }\n } else if (namespace.length > 0) {\n for (var evNdx in eventRegistry) {\n for (var nmsp in eventRegistry[evNdx]) {\n if (nmsp === namespace) {\n if (handler === undefined) {\n for (hndx = 0, hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) {\n evts.push({\n ev: evNdx,\n namespace: nmsp,\n handler: eventRegistry[evNdx][nmsp][hndx]\n });\n }\n } else {\n evts.push({\n ev: evNdx,\n namespace: nmsp,\n handler: handler\n });\n }\n }\n }\n }\n }\n return evts;\n };\n var _events = events.split(\" \");\n for (var endx = 0; endx < _events.length; endx++) {\n var nsEvent = _events[endx].split(\".\"), offEvents = resolveNamespace(nsEvent[0], nsEvent[1]);\n for (var i = 0, offEventsL = offEvents.length; i < offEventsL; i++) {\n removeEvent(offEvents[i].ev, offEvents[i].namespace, offEvents[i].handler);\n }\n }\n }\n return this;\n },\n trigger: function(events) {\n if (isValidElement(this[0])) {\n var eventRegistry = this[0].eventRegistry, elem = this[0];\n var _events = typeof events === \"string\" ? events.split(\" \") : [ events.type ];\n for (var endx = 0; endx < _events.length; endx++) {\n var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n if (document !== undefined && namespace === \"global\") {\n var evnt, i, params = {\n bubbles: true,\n cancelable: true,\n detail: arguments[1]\n };\n if (document.createEvent) {\n try {\n evnt = new CustomEvent(ev, params);\n } catch (e) {\n evnt = document.createEvent(\"CustomEvent\");\n evnt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail);\n }\n if (events.type) DependencyLib.extend(evnt, events);\n elem.dispatchEvent(evnt);\n } else {\n evnt = document.createEventObject();\n evnt.eventType = ev;\n evnt.detail = arguments[1];\n if (events.type) DependencyLib.extend(evnt, events);\n elem.fireEvent(\"on\" + evnt.eventType, evnt);\n }\n } else if (eventRegistry[ev] !== undefined) {\n arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]);\n if (namespace === \"global\") {\n for (var nmsp in eventRegistry[ev]) {\n for (i = 0; i < eventRegistry[ev][nmsp].length; i++) {\n eventRegistry[ev][nmsp][i].apply(elem, arguments);\n }\n }\n } else {\n for (i = 0; i < eventRegistry[ev][namespace].length; i++) {\n eventRegistry[ev][namespace][i].apply(elem, arguments);\n }\n }\n }\n }\n }\n return this;\n }\n };\n DependencyLib.isFunction = function(obj) {\n return typeof obj === \"function\";\n };\n DependencyLib.noop = function() {};\n DependencyLib.isArray = Array.isArray;\n DependencyLib.inArray = function(elem, arr, i) {\n return arr == null ? -1 : indexOf(arr, elem, i);\n };\n DependencyLib.valHooks = undefined;\n DependencyLib.isPlainObject = function(obj) {\n if (typeof obj !== \"object\" || obj.nodeType || isWindow(obj)) {\n return false;\n }\n if (obj.constructor && !Object.hasOwnProperty.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n return true;\n };\n DependencyLib.extend = function() {\n var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;\n if (typeof target === \"boolean\") {\n deep = target;\n target = arguments[i] || {};\n i++;\n }\n if (typeof target !== \"object\" && !DependencyLib.isFunction(target)) {\n target = {};\n }\n if (i === length) {\n target = this;\n i--;\n }\n for (;i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n if (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && DependencyLib.isArray(src) ? src : [];\n } else {\n clone = src && DependencyLib.isPlainObject(src) ? src : {};\n }\n target[name] = DependencyLib.extend(deep, clone, copy);\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n };\n DependencyLib.each = function(obj, callback) {\n var value, i = 0;\n if (isArraylike(obj)) {\n for (var length = obj.length; i < length; i++) {\n value = callback.call(obj[i], i, obj[i]);\n if (value === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n value = callback.call(obj[i], i, obj[i]);\n if (value === false) {\n break;\n }\n }\n }\n return obj;\n };\n DependencyLib.data = function(owner, key, value) {\n if (value === undefined) {\n return owner.__data ? owner.__data[key] : null;\n } else {\n owner.__data = owner.__data || {};\n owner.__data[key] = value;\n }\n };\n if (typeof window.CustomEvent === \"function\") {\n DependencyLib.Event = window.CustomEvent;\n } else {\n DependencyLib.Event = function(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n DependencyLib.Event.prototype = window.Event.prototype;\n }\n return DependencyLib;\n});","/*!\n* inputmask.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (typeof define === \"function\" && define.amd) {\n define([ \"./dependencyLibs/inputmask.dependencyLib\", \"./global/window\" ], factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory(require(\"./dependencyLibs/inputmask.dependencyLib\"), require(\"./global/window\"));\n } else {\n window.Inputmask = factory(window.dependencyLib || jQuery, window);\n }\n})(function($, window, undefined) {\n var document = window.document, ua = navigator.userAgent, ie = ua.indexOf(\"MSIE \") > 0 || ua.indexOf(\"Trident/\") > 0, mobile = isInputEventSupported(\"touchstart\"), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;\n function Inputmask(alias, options, internal) {\n if (!(this instanceof Inputmask)) {\n return new Inputmask(alias, options, internal);\n }\n this.el = undefined;\n this.events = {};\n this.maskset = undefined;\n this.refreshValue = false;\n if (internal !== true) {\n if ($.isPlainObject(alias)) {\n options = alias;\n } else {\n options = options || {};\n if (alias) options.alias = alias;\n }\n this.opts = $.extend(true, {}, this.defaults, options);\n this.noMasksCache = options && options.definitions !== undefined;\n this.userOptions = options || {};\n this.isRTL = this.opts.numericInput;\n resolveAlias(this.opts.alias, options, this.opts);\n }\n }\n Inputmask.prototype = {\n dataAttribute: \"data-inputmask\",\n defaults: {\n placeholder: \"_\",\n optionalmarker: [ \"[\", \"]\" ],\n quantifiermarker: [ \"{\", \"}\" ],\n groupmarker: [ \"(\", \")\" ],\n alternatormarker: \"|\",\n escapeChar: \"\\\\\",\n mask: null,\n regex: null,\n oncomplete: $.noop,\n onincomplete: $.noop,\n oncleared: $.noop,\n repeat: 0,\n greedy: false,\n autoUnmask: false,\n removeMaskOnSubmit: false,\n clearMaskOnLostFocus: true,\n insertMode: true,\n clearIncomplete: false,\n alias: null,\n onKeyDown: $.noop,\n onBeforeMask: null,\n onBeforePaste: function(pastedValue, opts) {\n return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue;\n },\n onBeforeWrite: null,\n onUnMask: null,\n showMaskOnFocus: true,\n showMaskOnHover: true,\n onKeyValidation: $.noop,\n skipOptionalPartCharacter: \" \",\n numericInput: false,\n rightAlign: false,\n undoOnEscape: true,\n radixPoint: \"\",\n _radixDance: false,\n groupSeparator: \"\",\n keepStatic: null,\n positionCaretOnTab: true,\n tabThrough: false,\n supportsInputType: [ \"text\", \"tel\", \"url\", \"password\", \"search\" ],\n ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],\n isComplete: null,\n preValidation: null,\n postValidation: null,\n staticDefinitionSymbol: undefined,\n jitMasking: false,\n nullable: true,\n inputEventOnly: false,\n noValuePatching: false,\n positionCaretOnClick: \"lvp\",\n casing: null,\n inputmode: \"verbatim\",\n colorMask: false,\n disablePredictiveText: false,\n importDataAttributes: true,\n shiftPositions: true\n },\n definitions: {\n 9: {\n validator: \"[0-9\\uff11-\\uff19]\",\n definitionSymbol: \"*\"\n },\n a: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n definitionSymbol: \"*\"\n },\n \"*\": {\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\n }\n },\n aliases: {},\n masksCache: {},\n mask: function(elems) {\n var that = this;\n function importAttributeOptions(npt, opts, userOptions, dataAttribute) {\n if (opts.importDataAttributes === true) {\n var attrOptions = npt.getAttribute(dataAttribute), option, dataoptions, optionData, p;\n var importOption = function(option, optionData) {\n optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + \"-\" + option);\n if (optionData !== null) {\n if (typeof optionData === \"string\") {\n if (option.indexOf(\"on\") === 0) optionData = window[optionData]; else if (optionData === \"false\") optionData = false; else if (optionData === \"true\") optionData = true;\n }\n userOptions[option] = optionData;\n }\n };\n if (attrOptions && attrOptions !== \"\") {\n attrOptions = attrOptions.replace(/'/g, '\"');\n dataoptions = JSON.parse(\"{\" + attrOptions + \"}\");\n }\n if (dataoptions) {\n optionData = undefined;\n for (p in dataoptions) {\n if (p.toLowerCase() === \"alias\") {\n optionData = dataoptions[p];\n break;\n }\n }\n }\n importOption(\"alias\", optionData);\n if (userOptions.alias) {\n resolveAlias(userOptions.alias, userOptions, opts);\n }\n for (option in opts) {\n if (dataoptions) {\n optionData = undefined;\n for (p in dataoptions) {\n if (p.toLowerCase() === option.toLowerCase()) {\n optionData = dataoptions[p];\n break;\n }\n }\n }\n importOption(option, optionData);\n }\n }\n $.extend(true, opts, userOptions);\n if (npt.dir === \"rtl\" || opts.rightAlign) {\n npt.style.textAlign = \"right\";\n }\n if (npt.dir === \"rtl\" || opts.numericInput) {\n npt.dir = \"ltr\";\n npt.removeAttribute(\"dir\");\n opts.isRTL = true;\n }\n return Object.keys(userOptions).length;\n }\n if (typeof elems === \"string\") {\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\n }\n elems = elems.nodeName ? [ elems ] : elems;\n $.each(elems, function(ndx, el) {\n var scopedOpts = $.extend(true, {}, that.opts);\n if (importAttributeOptions(el, scopedOpts, $.extend(true, {}, that.userOptions), that.dataAttribute)) {\n var maskset = generateMaskSet(scopedOpts, that.noMasksCache);\n if (maskset !== undefined) {\n if (el.inputmask !== undefined) {\n el.inputmask.opts.autoUnmask = true;\n el.inputmask.remove();\n }\n el.inputmask = new Inputmask(undefined, undefined, true);\n el.inputmask.opts = scopedOpts;\n el.inputmask.noMasksCache = that.noMasksCache;\n el.inputmask.userOptions = $.extend(true, {}, that.userOptions);\n el.inputmask.isRTL = scopedOpts.isRTL || scopedOpts.numericInput;\n el.inputmask.el = el;\n el.inputmask.maskset = maskset;\n $.data(el, \"_inputmask_opts\", scopedOpts);\n maskScope.call(el.inputmask, {\n action: \"mask\"\n });\n }\n }\n });\n return elems && elems[0] ? elems[0].inputmask || this : this;\n },\n option: function(options, noremask) {\n if (typeof options === \"string\") {\n return this.opts[options];\n } else if (typeof options === \"object\") {\n $.extend(this.userOptions, options);\n if (this.el && noremask !== true) {\n this.mask(this.el);\n }\n return this;\n }\n },\n unmaskedvalue: function(value) {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"unmaskedvalue\",\n value: value\n });\n },\n remove: function() {\n return maskScope.call(this, {\n action: \"remove\"\n });\n },\n getemptymask: function() {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"getemptymask\"\n });\n },\n hasMaskedValue: function() {\n return !this.opts.autoUnmask;\n },\n isComplete: function() {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"isComplete\"\n });\n },\n getmetadata: function() {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"getmetadata\"\n });\n },\n isValid: function(value) {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"isValid\",\n value: value\n });\n },\n format: function(value, metadata) {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"format\",\n value: value,\n metadata: metadata\n });\n },\n setValue: function(value) {\n if (this.el) {\n $(this.el).trigger(\"setvalue\", [ value ]);\n }\n },\n analyseMask: function(mask, regexMask, opts) {\n var tokenizer = /(?:[?*+]|\\{[0-9\\+\\*]+(?:,[0-9\\+\\*]*)?(?:\\|[0-9\\+\\*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, regexTokenizer = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, escaped = false, currentToken = new MaskToken(), match, m, openenings = [], maskTokens = [], openingToken, currentOpeningToken, alternator, lastMatch, groupToken;\n function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {\n this.matches = [];\n this.openGroup = isGroup || false;\n this.alternatorGroup = false;\n this.isGroup = isGroup || false;\n this.isOptional = isOptional || false;\n this.isQuantifier = isQuantifier || false;\n this.isAlternator = isAlternator || false;\n this.quantifier = {\n min: 1,\n max: 1\n };\n }\n function insertTestDefinition(mtoken, element, position) {\n position = position !== undefined ? position : mtoken.matches.length;\n var prevMatch = mtoken.matches[position - 1];\n if (regexMask) {\n if (element.indexOf(\"[\") === 0 || escaped && /\\\\d|\\\\s|\\\\w]/i.test(element) || element === \".\") {\n mtoken.matches.splice(position++, 0, {\n fn: new RegExp(element, opts.casing ? \"i\" : \"\"),\n optionality: false,\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== element,\n casing: null,\n def: element,\n placeholder: undefined,\n nativeDef: element\n });\n } else {\n if (escaped) element = element[element.length - 1];\n $.each(element.split(\"\"), function(ndx, lmnt) {\n prevMatch = mtoken.matches[position - 1];\n mtoken.matches.splice(position++, 0, {\n fn: null,\n optionality: false,\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== lmnt && prevMatch.fn !== null,\n casing: null,\n def: opts.staticDefinitionSymbol || lmnt,\n placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined,\n nativeDef: (escaped ? \"'\" : \"\") + lmnt\n });\n });\n }\n escaped = false;\n } else {\n var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element];\n if (maskdef && !escaped) {\n mtoken.matches.splice(position++, 0, {\n fn: maskdef.validator ? typeof maskdef.validator == \"string\" ? new RegExp(maskdef.validator, opts.casing ? \"i\" : \"\") : new function() {\n this.test = maskdef.validator;\n }() : new RegExp(\".\"),\n optionality: false,\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== (maskdef.definitionSymbol || element),\n casing: maskdef.casing,\n def: maskdef.definitionSymbol || element,\n placeholder: maskdef.placeholder,\n nativeDef: element\n });\n } else {\n mtoken.matches.splice(position++, 0, {\n fn: null,\n optionality: false,\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== element && prevMatch.fn !== null,\n casing: null,\n def: opts.staticDefinitionSymbol || element,\n placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined,\n nativeDef: (escaped ? \"'\" : \"\") + element\n });\n escaped = false;\n }\n }\n }\n function verifyGroupMarker(maskToken) {\n if (maskToken && maskToken.matches) {\n $.each(maskToken.matches, function(ndx, token) {\n var nextToken = maskToken.matches[ndx + 1];\n if ((nextToken === undefined || (nextToken.matches === undefined || nextToken.isQuantifier === false)) && token && token.isGroup) {\n token.isGroup = false;\n if (!regexMask) {\n insertTestDefinition(token, opts.groupmarker[0], 0);\n if (token.openGroup !== true) {\n insertTestDefinition(token, opts.groupmarker[1]);\n }\n }\n }\n verifyGroupMarker(token);\n });\n }\n }\n function defaultCase() {\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n insertTestDefinition(currentOpeningToken, m);\n if (currentOpeningToken.isAlternator) {\n alternator = openenings.pop();\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) {\n if (alternator.matches[mndx].isGroup) alternator.matches[mndx].isGroup = false;\n }\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n currentOpeningToken.matches.push(alternator);\n } else {\n currentToken.matches.push(alternator);\n }\n }\n } else {\n insertTestDefinition(currentToken, m);\n }\n }\n function reverseTokens(maskToken) {\n function reverseStatic(st) {\n if (st === opts.optionalmarker[0]) st = opts.optionalmarker[1]; else if (st === opts.optionalmarker[1]) st = opts.optionalmarker[0]; else if (st === opts.groupmarker[0]) st = opts.groupmarker[1]; else if (st === opts.groupmarker[1]) st = opts.groupmarker[0];\n return st;\n }\n maskToken.matches = maskToken.matches.reverse();\n for (var match in maskToken.matches) {\n if (maskToken.matches.hasOwnProperty(match)) {\n var intMatch = parseInt(match);\n if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {\n var qt = maskToken.matches[match];\n maskToken.matches.splice(match, 1);\n maskToken.matches.splice(intMatch + 1, 0, qt);\n }\n if (maskToken.matches[match].matches !== undefined) {\n maskToken.matches[match] = reverseTokens(maskToken.matches[match]);\n } else {\n maskToken.matches[match] = reverseStatic(maskToken.matches[match]);\n }\n }\n }\n return maskToken;\n }\n function groupify(matches) {\n var groupToken = new MaskToken(true);\n groupToken.openGroup = false;\n groupToken.matches = matches;\n return groupToken;\n }\n if (regexMask) {\n opts.optionalmarker[0] = undefined;\n opts.optionalmarker[1] = undefined;\n }\n while (match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask)) {\n m = match[0];\n if (regexMask) {\n switch (m.charAt(0)) {\n case \"?\":\n m = \"{0,1}\";\n break;\n\n case \"+\":\n case \"*\":\n m = \"{\" + m + \"}\";\n break;\n }\n }\n if (escaped) {\n defaultCase();\n continue;\n }\n switch (m.charAt(0)) {\n case \"(?=\":\n break;\n\n case \"(?!\":\n break;\n\n case \"(?<=\":\n break;\n\n case \"(? 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n currentOpeningToken.matches.push(openingToken);\n if (currentOpeningToken.isAlternator) {\n alternator = openenings.pop();\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) {\n alternator.matches[mndx].isGroup = false;\n alternator.matches[mndx].alternatorGroup = false;\n }\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n currentOpeningToken.matches.push(alternator);\n } else {\n currentToken.matches.push(alternator);\n }\n }\n } else {\n currentToken.matches.push(openingToken);\n }\n } else defaultCase();\n break;\n\n case opts.optionalmarker[0]:\n openenings.push(new MaskToken(false, true));\n break;\n\n case opts.groupmarker[0]:\n openenings.push(new MaskToken(true));\n break;\n\n case opts.quantifiermarker[0]:\n var quantifier = new MaskToken(false, false, true);\n m = m.replace(/[{}]/g, \"\");\n var mqj = m.split(\"|\"), mq = mqj[0].split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = mq.length === 1 ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\n if (mq0 === \"*\" || mq0 === \"+\") {\n mq0 = mq1 === \"*\" ? 0 : 1;\n }\n quantifier.quantifier = {\n min: mq0,\n max: mq1,\n jit: mqj[1]\n };\n var matches = openenings.length > 0 ? openenings[openenings.length - 1].matches : currentToken.matches;\n match = matches.pop();\n if (match.isAlternator) {\n matches.push(match);\n matches = match.matches;\n var groupToken = new MaskToken(true);\n var tmpMatch = matches.pop();\n matches.push(groupToken);\n matches = groupToken.matches;\n match = tmpMatch;\n }\n if (!match.isGroup) {\n match = groupify([ match ]);\n }\n matches.push(match);\n matches.push(quantifier);\n break;\n\n case opts.alternatormarker:\n var groupQuantifier = function(matches) {\n var lastMatch = matches.pop();\n if (lastMatch.isQuantifier) {\n lastMatch = groupify([ matches.pop(), lastMatch ]);\n }\n return lastMatch;\n };\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1];\n if (currentOpeningToken.openGroup && (subToken.matches === undefined || subToken.isGroup === false && subToken.isAlternator === false)) {\n lastMatch = openenings.pop();\n } else {\n lastMatch = groupQuantifier(currentOpeningToken.matches);\n }\n } else {\n lastMatch = groupQuantifier(currentToken.matches);\n }\n if (lastMatch.isAlternator) {\n openenings.push(lastMatch);\n } else {\n if (lastMatch.alternatorGroup) {\n alternator = openenings.pop();\n lastMatch.alternatorGroup = false;\n } else {\n alternator = new MaskToken(false, false, false, true);\n }\n alternator.matches.push(lastMatch);\n openenings.push(alternator);\n if (lastMatch.openGroup) {\n lastMatch.openGroup = false;\n var alternatorGroup = new MaskToken(true);\n alternatorGroup.alternatorGroup = true;\n openenings.push(alternatorGroup);\n }\n }\n break;\n\n default:\n defaultCase();\n }\n }\n while (openenings.length > 0) {\n openingToken = openenings.pop();\n currentToken.matches.push(openingToken);\n }\n if (currentToken.matches.length > 0) {\n verifyGroupMarker(currentToken);\n maskTokens.push(currentToken);\n }\n if (opts.numericInput || opts.isRTL) {\n reverseTokens(maskTokens[0]);\n }\n return maskTokens;\n },\n positionColorMask: function(input, template) {\n input.style.left = template.offsetLeft + \"px\";\n }\n };\n Inputmask.extendDefaults = function(options) {\n $.extend(true, Inputmask.prototype.defaults, options);\n };\n Inputmask.extendDefinitions = function(definition) {\n $.extend(true, Inputmask.prototype.definitions, definition);\n };\n Inputmask.extendAliases = function(alias) {\n $.extend(true, Inputmask.prototype.aliases, alias);\n };\n Inputmask.format = function(value, options, metadata) {\n return Inputmask(options).format(value, metadata);\n };\n Inputmask.unmask = function(value, options) {\n return Inputmask(options).unmaskedvalue(value);\n };\n Inputmask.isValid = function(value, options) {\n return Inputmask(options).isValid(value);\n };\n Inputmask.remove = function(elems) {\n if (typeof elems === \"string\") {\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\n }\n elems = elems.nodeName ? [ elems ] : elems;\n $.each(elems, function(ndx, el) {\n if (el.inputmask) el.inputmask.remove();\n });\n };\n Inputmask.setValue = function(elems, value) {\n if (typeof elems === \"string\") {\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\n }\n elems = elems.nodeName ? [ elems ] : elems;\n $.each(elems, function(ndx, el) {\n if (el.inputmask) el.inputmask.setValue(value); else $(el).trigger(\"setvalue\", [ value ]);\n });\n };\n Inputmask.escapeRegex = function(str) {\n var specials = [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ];\n return str.replace(new RegExp(\"(\\\\\" + specials.join(\"|\\\\\") + \")\", \"gim\"), \"\\\\$1\");\n };\n Inputmask.keyCode = {\n BACKSPACE: 8,\n BACKSPACE_SAFARI: 127,\n DELETE: 46,\n DOWN: 40,\n END: 35,\n ENTER: 13,\n ESCAPE: 27,\n HOME: 36,\n INSERT: 45,\n LEFT: 37,\n PAGE_DOWN: 34,\n PAGE_UP: 33,\n RIGHT: 39,\n SPACE: 32,\n TAB: 9,\n UP: 38,\n X: 88,\n CONTROL: 17\n };\n Inputmask.dependencyLib = $;\n function resolveAlias(aliasStr, options, opts) {\n var aliasDefinition = Inputmask.prototype.aliases[aliasStr];\n if (aliasDefinition) {\n if (aliasDefinition.alias) resolveAlias(aliasDefinition.alias, undefined, opts);\n $.extend(true, opts, aliasDefinition);\n $.extend(true, opts, options);\n return true;\n } else if (opts.mask === null) {\n opts.mask = aliasStr;\n }\n return false;\n }\n function generateMaskSet(opts, nocache) {\n function generateMask(mask, metadata, opts) {\n var regexMask = false;\n if (mask === null || mask === \"\") {\n regexMask = opts.regex !== null;\n if (regexMask) {\n mask = opts.regex;\n mask = mask.replace(/^(\\^)(.*)(\\$)$/, \"$2\");\n } else {\n regexMask = true;\n mask = \".*\";\n }\n }\n if (mask.length === 1 && opts.greedy === false && opts.repeat !== 0) {\n opts.placeholder = \"\";\n }\n if (opts.repeat > 0 || opts.repeat === \"*\" || opts.repeat === \"+\") {\n var repeatStart = opts.repeat === \"*\" ? 0 : opts.repeat === \"+\" ? 1 : opts.repeat;\n mask = opts.groupmarker[0] + mask + opts.groupmarker[1] + opts.quantifiermarker[0] + repeatStart + \",\" + opts.repeat + opts.quantifiermarker[1];\n }\n var masksetDefinition, maskdefKey = regexMask ? \"regex_\" + opts.regex : opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask;\n if (Inputmask.prototype.masksCache[maskdefKey] === undefined || nocache === true) {\n masksetDefinition = {\n mask: mask,\n maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),\n validPositions: {},\n _buffer: undefined,\n buffer: undefined,\n tests: {},\n excludes: {},\n metadata: metadata,\n maskLength: undefined,\n jitOffset: {}\n };\n if (nocache !== true) {\n Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition;\n masksetDefinition = $.extend(true, {}, Inputmask.prototype.masksCache[maskdefKey]);\n }\n } else masksetDefinition = $.extend(true, {}, Inputmask.prototype.masksCache[maskdefKey]);\n return masksetDefinition;\n }\n var ms;\n if ($.isFunction(opts.mask)) {\n opts.mask = opts.mask(opts);\n }\n if ($.isArray(opts.mask)) {\n if (opts.mask.length > 1) {\n if (opts.keepStatic === null) {\n opts.keepStatic = \"auto\";\n for (var i = 0; i < opts.mask.length; i++) {\n if (opts.mask[i].charAt(0) !== opts.mask[0].charAt(0)) {\n opts.keepStatic = true;\n break;\n }\n }\n }\n var altMask = opts.groupmarker[0];\n $.each(opts.isRTL ? opts.mask.reverse() : opts.mask, function(ndx, msk) {\n if (altMask.length > 1) {\n altMask += opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0];\n }\n if (msk.mask !== undefined && !$.isFunction(msk.mask)) {\n altMask += msk.mask;\n } else {\n altMask += msk;\n }\n });\n altMask += opts.groupmarker[1];\n return generateMask(altMask, opts.mask, opts);\n } else opts.mask = opts.mask.pop();\n }\n if (opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask)) {\n ms = generateMask(opts.mask.mask, opts.mask, opts);\n } else {\n ms = generateMask(opts.mask, opts.mask, opts);\n }\n return ms;\n }\n function isInputEventSupported(eventName) {\n var el = document.createElement(\"input\"), evName = \"on\" + eventName, isSupported = evName in el;\n if (!isSupported) {\n el.setAttribute(evName, \"return;\");\n isSupported = typeof el[evName] === \"function\";\n }\n el = null;\n return isSupported;\n }\n function maskScope(actionObj, maskset, opts) {\n maskset = maskset || this.maskset;\n opts = opts || this.opts;\n var inputmask = this, el = this.el, isRTL = this.isRTL, undoValue, $el, skipKeyPressEvent = false, skipInputEvent = false, ignorable = false, maxLength, mouseEnter = false, colorMask, originalPlaceholder;\n var getMaskTemplate = function(baseOnInput, minimalPos, includeMode, noJit, clearOptionalTail) {\n var greedy = opts.greedy;\n if (clearOptionalTail) opts.greedy = false;\n minimalPos = minimalPos || 0;\n var maskTemplate = [], ndxIntlzr, pos = 0, test, testPos, lvp = getLastValidPosition();\n do {\n if (baseOnInput === true && getMaskSet().validPositions[pos]) {\n testPos = clearOptionalTail && getMaskSet().validPositions[pos].match.optionality === true && getMaskSet().validPositions[pos + 1] === undefined && (getMaskSet().validPositions[pos].generatedInput === true || getMaskSet().validPositions[pos].input == opts.skipOptionalPartCharacter && pos > 0) ? determineTestTemplate(pos, getTests(pos, ndxIntlzr, pos - 1)) : getMaskSet().validPositions[pos];\n test = testPos.match;\n ndxIntlzr = testPos.locator.slice();\n maskTemplate.push(includeMode === true ? testPos.input : includeMode === false ? test.nativeDef : getPlaceholder(pos, test));\n } else {\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\n test = testPos.match;\n ndxIntlzr = testPos.locator.slice();\n var jitMasking = noJit === true ? false : opts.jitMasking !== false ? opts.jitMasking : test.jit;\n if (jitMasking === false || jitMasking === undefined || typeof jitMasking === \"number\" && isFinite(jitMasking) && jitMasking > pos) {\n maskTemplate.push(includeMode === false ? test.nativeDef : getPlaceholder(pos, test));\n }\n }\n if (opts.keepStatic === \"auto\") {\n if (test.newBlockMarker && test.fn !== null) {\n opts.keepStatic = pos - 1;\n }\n }\n pos++;\n } while ((maxLength === undefined || pos < maxLength) && (test.fn !== null || test.def !== \"\") || minimalPos > pos);\n if (maskTemplate[maskTemplate.length - 1] === \"\") {\n maskTemplate.pop();\n }\n if (includeMode !== false || getMaskSet().maskLength === undefined) getMaskSet().maskLength = pos - 1;\n opts.greedy = greedy;\n return maskTemplate;\n };\n function getMaskSet() {\n return maskset;\n }\n function resetMaskSet(soft) {\n var maskset = getMaskSet();\n maskset.buffer = undefined;\n if (soft !== true) {\n maskset.validPositions = {};\n maskset.p = 0;\n }\n }\n function getLastValidPosition(closestTo, strict, validPositions) {\n var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions;\n if (closestTo === undefined) closestTo = -1;\n for (var posNdx in valids) {\n var psNdx = parseInt(posNdx);\n if (valids[psNdx] && (strict || valids[psNdx].generatedInput !== true)) {\n if (psNdx <= closestTo) before = psNdx;\n if (psNdx >= closestTo) after = psNdx;\n }\n }\n return before === -1 || before == closestTo ? after : after == -1 ? before : closestTo - before < after - closestTo ? before : after;\n }\n function getDecisionTaker(tst) {\n var decisionTaker = tst.locator[tst.alternation];\n if (typeof decisionTaker == \"string\" && decisionTaker.length > 0) {\n decisionTaker = decisionTaker.split(\",\")[0];\n }\n return decisionTaker !== undefined ? decisionTaker.toString() : \"\";\n }\n function getLocator(tst, align) {\n var locator = (tst.alternation != undefined ? tst.mloc[getDecisionTaker(tst)] : tst.locator).join(\"\");\n if (locator !== \"\") while (locator.length < align) locator += \"0\";\n return locator;\n }\n function determineTestTemplate(pos, tests) {\n pos = pos > 0 ? pos - 1 : 0;\n var altTest = getTest(pos), targetLocator = getLocator(altTest), tstLocator, closest, bestMatch;\n for (var ndx = 0; ndx < tests.length; ndx++) {\n var tst = tests[ndx];\n tstLocator = getLocator(tst, targetLocator.length);\n var distance = Math.abs(tstLocator - targetLocator);\n if (closest === undefined || tstLocator !== \"\" && distance < closest || bestMatch && !opts.greedy && bestMatch.match.optionality && bestMatch.match.newBlockMarker === \"master\" && (!tst.match.optionality || !tst.match.newBlockMarker) || bestMatch && bestMatch.match.optionalQuantifier && !tst.match.optionalQuantifier) {\n closest = distance;\n bestMatch = tst;\n }\n }\n return bestMatch;\n }\n function getTestTemplate(pos, ndxIntlzr, tstPs) {\n return getMaskSet().validPositions[pos] || determineTestTemplate(pos, getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));\n }\n function getTest(pos, tests) {\n if (getMaskSet().validPositions[pos]) {\n return getMaskSet().validPositions[pos];\n }\n return (tests || getTests(pos))[0];\n }\n function positionCanMatchDefinition(pos, def) {\n var valid = false, tests = getTests(pos);\n for (var tndx = 0; tndx < tests.length; tndx++) {\n if (tests[tndx].match && tests[tndx].match.def === def) {\n valid = true;\n break;\n }\n }\n return valid;\n }\n function getTests(pos, ndxIntlzr, tstPs) {\n var maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = false, latestMatch, cacheDependency = ndxIntlzr ? ndxIntlzr.join(\"\") : \"\";\n function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {\n function handleMatch(match, loopNdx, quantifierRecurse) {\n function isFirstMatch(latestMatch, tokenGroup) {\n var firstMatch = $.inArray(latestMatch, tokenGroup.matches) === 0;\n if (!firstMatch) {\n $.each(tokenGroup.matches, function(ndx, match) {\n if (match.isQuantifier === true) firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]); else if (match.hasOwnProperty(\"matches\")) firstMatch = isFirstMatch(latestMatch, match);\n if (firstMatch) return false;\n });\n }\n return firstMatch;\n }\n function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {\n var bestMatch, indexPos;\n if (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) {\n $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) {\n if (lmnt.mloc[alternateNdx]) {\n bestMatch = lmnt;\n return false;\n }\n var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;\n if ((indexPos === undefined || ndxPos < indexPos) && ndxPos !== -1) {\n bestMatch = lmnt;\n indexPos = ndxPos;\n }\n });\n }\n if (bestMatch) {\n var bestMatchAltIndex = bestMatch.locator[bestMatch.alternation];\n var locator = bestMatch.mloc[alternateNdx] || bestMatch.mloc[bestMatchAltIndex] || bestMatch.locator;\n return locator.slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1);\n } else {\n return targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined;\n }\n }\n function isSubsetOf(source, target) {\n function expand(pattern) {\n var expanded = [], start, end;\n for (var i = 0, l = pattern.length; i < l; i++) {\n if (pattern.charAt(i) === \"-\") {\n end = pattern.charCodeAt(i + 1);\n while (++start < end) expanded.push(String.fromCharCode(start));\n } else {\n start = pattern.charCodeAt(i);\n expanded.push(pattern.charAt(i));\n }\n }\n return expanded.join(\"\");\n }\n if (opts.regex && source.match.fn !== null && target.match.fn !== null) {\n return expand(target.match.def.replace(/[\\[\\]]/g, \"\")).indexOf(expand(source.match.def.replace(/[\\[\\]]/g, \"\"))) !== -1;\n }\n return source.match.def === target.match.nativeDef;\n }\n function staticCanMatchDefinition(source, target) {\n var sloc = source.locator.slice(source.alternation).join(\"\"), tloc = target.locator.slice(target.alternation).join(\"\"), canMatch = sloc == tloc;\n canMatch = canMatch && source.match.fn === null && target.match.fn !== null ? target.match.fn.test(source.match.def, getMaskSet(), pos, false, opts, false) : false;\n return canMatch;\n }\n function setMergeLocators(targetMatch, altMatch) {\n if (altMatch === undefined || targetMatch.alternation === altMatch.alternation && targetMatch.locator[targetMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) === -1) {\n targetMatch.mloc = targetMatch.mloc || {};\n var locNdx = targetMatch.locator[targetMatch.alternation];\n if (locNdx === undefined) targetMatch.alternation = undefined; else {\n if (typeof locNdx === \"string\") locNdx = locNdx.split(\",\")[0];\n if (targetMatch.mloc[locNdx] === undefined) targetMatch.mloc[locNdx] = targetMatch.locator.slice();\n if (altMatch !== undefined) {\n for (var ndx in altMatch.mloc) {\n if (typeof ndx === \"string\") ndx = ndx.split(\",\")[0];\n if (targetMatch.mloc[ndx] === undefined) targetMatch.mloc[ndx] = altMatch.mloc[ndx];\n }\n targetMatch.locator[targetMatch.alternation] = Object.keys(targetMatch.mloc).join(\",\");\n }\n return true;\n }\n }\n return false;\n }\n if (testPos > 500 && quantifierRecurse !== undefined) {\n throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + getMaskSet().mask;\n }\n if (testPos === pos && match.matches === undefined) {\n matches.push({\n match: match,\n locator: loopNdx.reverse(),\n cd: cacheDependency,\n mloc: {}\n });\n return true;\n } else if (match.matches !== undefined) {\n if (match.isGroup && quantifierRecurse !== match) {\n match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx, quantifierRecurse);\n if (match) return true;\n } else if (match.isOptional) {\n var optionalToken = match;\n match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse);\n if (match) {\n $.each(matches, function(ndx, mtch) {\n mtch.match.optionality = true;\n });\n latestMatch = matches[matches.length - 1].match;\n if (quantifierRecurse === undefined && isFirstMatch(latestMatch, optionalToken)) {\n insertStop = true;\n testPos = pos;\n } else return true;\n }\n } else if (match.isAlternator) {\n var alternateToken = match, malternateMatches = [], maltMatches, currentMatches = matches.slice(), loopNdxCnt = loopNdx.length;\n var altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;\n if (altIndex === -1 || typeof altIndex === \"string\") {\n var currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [], amndx;\n if (typeof altIndex == \"string\") {\n altIndexArr = altIndex.split(\",\");\n } else {\n for (amndx = 0; amndx < alternateToken.matches.length; amndx++) {\n altIndexArr.push(amndx.toString());\n }\n }\n if (getMaskSet().excludes[pos]) {\n var altIndexArrClone = altIndexArr.slice();\n for (var i = 0, el = getMaskSet().excludes[pos].length; i < el; i++) {\n altIndexArr.splice(altIndexArr.indexOf(getMaskSet().excludes[pos][i].toString()), 1);\n }\n if (altIndexArr.length === 0) {\n getMaskSet().excludes[pos] = undefined;\n altIndexArr = altIndexArrClone;\n }\n }\n if (opts.keepStatic === true || isFinite(parseInt(opts.keepStatic)) && currentPos >= opts.keepStatic) altIndexArr = altIndexArr.slice(0, 1);\n var unMatchedAlternation = false;\n for (var ndx = 0; ndx < altIndexArr.length; ndx++) {\n amndx = parseInt(altIndexArr[ndx]);\n matches = [];\n ndxInitializer = typeof altIndex === \"string\" ? resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice() : ndxInitializerClone.slice();\n if (alternateToken.matches[amndx] && handleMatch(alternateToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse)) match = true; else if (ndx === 0) {\n unMatchedAlternation = true;\n }\n maltMatches = matches.slice();\n testPos = currentPos;\n matches = [];\n for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {\n var altMatch = maltMatches[ndx1], dropMatch = false;\n altMatch.match.jit = altMatch.match.jit || unMatchedAlternation;\n altMatch.alternation = altMatch.alternation || loopNdxCnt;\n setMergeLocators(altMatch);\n for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {\n var altMatch2 = malternateMatches[ndx2];\n if (typeof altIndex !== \"string\" || altMatch.alternation !== undefined && $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr) !== -1) {\n if (altMatch.match.nativeDef === altMatch2.match.nativeDef) {\n dropMatch = true;\n setMergeLocators(altMatch2, altMatch);\n break;\n } else if (isSubsetOf(altMatch, altMatch2)) {\n if (setMergeLocators(altMatch, altMatch2)) {\n dropMatch = true;\n malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch);\n }\n break;\n } else if (isSubsetOf(altMatch2, altMatch)) {\n setMergeLocators(altMatch2, altMatch);\n break;\n } else if (staticCanMatchDefinition(altMatch, altMatch2)) {\n if (setMergeLocators(altMatch, altMatch2)) {\n dropMatch = true;\n malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch);\n }\n break;\n }\n }\n }\n if (!dropMatch) {\n malternateMatches.push(altMatch);\n }\n }\n }\n matches = currentMatches.concat(malternateMatches);\n testPos = pos;\n insertStop = matches.length > 0;\n match = malternateMatches.length > 0;\n ndxInitializer = ndxInitializerClone.slice();\n } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);\n if (match) return true;\n } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) {\n var qt = match;\n for (var qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {\n var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];\n match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup);\n if (match) {\n latestMatch = matches[matches.length - 1].match;\n latestMatch.optionalQuantifier = qndx >= qt.quantifier.min;\n latestMatch.jit = (qndx || 1) * tokenGroup.matches.indexOf(latestMatch) >= qt.quantifier.jit;\n if (latestMatch.optionalQuantifier && isFirstMatch(latestMatch, tokenGroup)) {\n insertStop = true;\n testPos = pos;\n break;\n }\n if (latestMatch.jit) {\n getMaskSet().jitOffset[pos] = tokenGroup.matches.indexOf(latestMatch);\n }\n return true;\n }\n }\n } else {\n match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse);\n if (match) return true;\n }\n } else {\n testPos++;\n }\n }\n for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) {\n if (maskToken.matches[tndx].isQuantifier !== true) {\n var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);\n if (match && testPos === pos) {\n return match;\n } else if (testPos > pos) {\n break;\n }\n }\n }\n }\n function mergeLocators(pos, tests) {\n var locator = [];\n if (!$.isArray(tests)) tests = [ tests ];\n if (tests.length > 0) {\n if (tests[0].alternation === undefined) {\n locator = determineTestTemplate(pos, tests.slice()).locator.slice();\n if (locator.length === 0) locator = tests[0].locator.slice();\n } else {\n $.each(tests, function(ndx, tst) {\n if (tst.def !== \"\") {\n if (locator.length === 0) locator = tst.locator.slice(); else {\n for (var i = 0; i < locator.length; i++) {\n if (tst.locator[i] && locator[i].toString().indexOf(tst.locator[i]) === -1) {\n locator[i] += \",\" + tst.locator[i];\n }\n }\n }\n }\n });\n }\n }\n return locator;\n }\n if (pos > -1) {\n if (ndxIntlzr === undefined) {\n var previousPos = pos - 1, test;\n while ((test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) === undefined && previousPos > -1) {\n previousPos--;\n }\n if (test !== undefined && previousPos > -1) {\n ndxInitializer = mergeLocators(previousPos, test);\n cacheDependency = ndxInitializer.join(\"\");\n testPos = previousPos;\n }\n }\n if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) {\n return getMaskSet().tests[pos];\n }\n for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {\n var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]);\n if (match && testPos === pos || testPos > pos) {\n break;\n }\n }\n }\n if (matches.length === 0 || insertStop) {\n matches.push({\n match: {\n fn: null,\n optionality: false,\n casing: null,\n def: \"\",\n placeholder: \"\"\n },\n locator: [],\n mloc: {},\n cd: cacheDependency\n });\n }\n if (ndxIntlzr !== undefined && getMaskSet().tests[pos]) {\n return $.extend(true, [], matches);\n }\n getMaskSet().tests[pos] = $.extend(true, [], matches);\n return getMaskSet().tests[pos];\n }\n function getBufferTemplate() {\n if (getMaskSet()._buffer === undefined) {\n getMaskSet()._buffer = getMaskTemplate(false, 1);\n if (getMaskSet().buffer === undefined) getMaskSet().buffer = getMaskSet()._buffer.slice();\n }\n return getMaskSet()._buffer;\n }\n function getBuffer(noCache) {\n if (getMaskSet().buffer === undefined || noCache === true) {\n getMaskSet().buffer = getMaskTemplate(true, getLastValidPosition(), true);\n if (getMaskSet()._buffer === undefined) getMaskSet()._buffer = getMaskSet().buffer.slice();\n }\n return getMaskSet().buffer;\n }\n function refreshFromBuffer(start, end, buffer) {\n var i, p;\n if (start === true) {\n resetMaskSet();\n start = 0;\n end = buffer.length;\n } else {\n for (i = start; i < end; i++) {\n delete getMaskSet().validPositions[i];\n }\n }\n p = start;\n for (i = start; i < end; i++) {\n resetMaskSet(true);\n if (buffer[i] !== opts.skipOptionalPartCharacter) {\n var valResult = isValid(p, buffer[i], true, true);\n if (valResult !== false) {\n resetMaskSet(true);\n p = valResult.caret !== undefined ? valResult.caret : valResult.pos + 1;\n }\n }\n }\n }\n function casing(elem, test, pos) {\n switch (opts.casing || test.casing) {\n case \"upper\":\n elem = elem.toUpperCase();\n break;\n\n case \"lower\":\n elem = elem.toLowerCase();\n break;\n\n case \"title\":\n var posBefore = getMaskSet().validPositions[pos - 1];\n if (pos === 0 || posBefore && posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE)) {\n elem = elem.toUpperCase();\n } else {\n elem = elem.toLowerCase();\n }\n break;\n\n default:\n if ($.isFunction(opts.casing)) {\n var args = Array.prototype.slice.call(arguments);\n args.push(getMaskSet().validPositions);\n elem = opts.casing.apply(this, args);\n }\n }\n return elem;\n }\n function checkAlternationMatch(altArr1, altArr2, na) {\n var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = false, naArr = na !== undefined ? na.split(\",\") : [], naNdx;\n for (var i = 0; i < naArr.length; i++) {\n if ((naNdx = altArr1.indexOf(naArr[i])) !== -1) {\n altArr1.splice(naNdx, 1);\n }\n }\n for (var alndx = 0; alndx < altArr1.length; alndx++) {\n if ($.inArray(altArr1[alndx], altArrC) !== -1) {\n isMatch = true;\n break;\n }\n }\n return isMatch;\n }\n function alternate(pos, c, strict, fromSetValid, rAltPos) {\n var validPsClone = $.extend(true, {}, getMaskSet().validPositions), lastAlt, alternation, isValidRslt = false, altPos, prevAltPos, i, validPos, decisionPos, lAltPos = rAltPos !== undefined ? rAltPos : getLastValidPosition();\n if (lAltPos === -1 && rAltPos === undefined) {\n lastAlt = 0;\n prevAltPos = getTest(lastAlt);\n alternation = prevAltPos.alternation;\n } else {\n for (;lAltPos >= 0; lAltPos--) {\n altPos = getMaskSet().validPositions[lAltPos];\n if (altPos && altPos.alternation !== undefined) {\n if (prevAltPos && prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) {\n break;\n }\n lastAlt = lAltPos;\n alternation = getMaskSet().validPositions[lastAlt].alternation;\n prevAltPos = altPos;\n }\n }\n }\n if (alternation !== undefined) {\n decisionPos = parseInt(lastAlt);\n getMaskSet().excludes[decisionPos] = getMaskSet().excludes[decisionPos] || [];\n if (pos !== true) {\n getMaskSet().excludes[decisionPos].push(getDecisionTaker(prevAltPos));\n }\n var validInputsClone = [], staticInputsBeforePos = 0;\n for (i = decisionPos; i < getLastValidPosition(undefined, true) + 1; i++) {\n validPos = getMaskSet().validPositions[i];\n if (validPos && validPos.generatedInput !== true) {\n validInputsClone.push(validPos.input);\n } else if (i < pos) staticInputsBeforePos++;\n delete getMaskSet().validPositions[i];\n }\n while (getMaskSet().excludes[decisionPos] && getMaskSet().excludes[decisionPos].length < 10) {\n var posOffset = staticInputsBeforePos * -1, validInputs = validInputsClone.slice();\n getMaskSet().tests[decisionPos] = undefined;\n resetMaskSet(true);\n isValidRslt = true;\n while (validInputs.length > 0) {\n var input = validInputs.shift();\n if (!(isValidRslt = isValid(getLastValidPosition(undefined, true) + 1, input, false, fromSetValid, true))) {\n break;\n }\n }\n if (isValidRslt && c !== undefined) {\n var targetLvp = getLastValidPosition(pos) + 1;\n for (i = decisionPos; i < getLastValidPosition() + 1; i++) {\n validPos = getMaskSet().validPositions[i];\n if ((validPos === undefined || validPos.match.fn == null) && i < pos + posOffset) {\n posOffset++;\n }\n }\n pos = pos + posOffset;\n isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid, true);\n }\n if (!isValidRslt) {\n resetMaskSet();\n prevAltPos = getTest(decisionPos);\n getMaskSet().validPositions = $.extend(true, {}, validPsClone);\n if (getMaskSet().excludes[decisionPos]) {\n var decisionTaker = getDecisionTaker(prevAltPos);\n if (getMaskSet().excludes[decisionPos].indexOf(decisionTaker) !== -1) {\n isValidRslt = alternate(pos, c, strict, fromSetValid, decisionPos - 1);\n break;\n }\n getMaskSet().excludes[decisionPos].push(decisionTaker);\n for (i = decisionPos; i < getLastValidPosition(undefined, true) + 1; i++) delete getMaskSet().validPositions[i];\n } else {\n isValidRslt = alternate(pos, c, strict, fromSetValid, decisionPos - 1);\n break;\n }\n } else break;\n }\n }\n getMaskSet().excludes[decisionPos] = undefined;\n return isValidRslt;\n }\n function isValid(pos, c, strict, fromSetValid, fromAlternate, validateOnly) {\n function isSelection(posObj) {\n return isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end === 1 : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin === 1;\n }\n strict = strict === true;\n var maskPos = pos;\n if (pos.begin !== undefined) {\n maskPos = isRTL ? pos.end : pos.begin;\n }\n function _isValid(position, c, strict) {\n var rslt = false;\n $.each(getTests(position), function(ndx, tst) {\n var test = tst.match;\n getBuffer(true);\n rslt = test.fn != null ? test.fn.test(c, getMaskSet(), position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && test.def !== \"\" ? {\n c: getPlaceholder(position, test, true) || test.def,\n pos: position\n } : false;\n if (rslt !== false) {\n var elem = rslt.c !== undefined ? rslt.c : c, validatedPos = position;\n elem = elem === opts.skipOptionalPartCharacter && test.fn === null ? getPlaceholder(position, test, true) || test.def : elem;\n if (rslt.remove !== undefined) {\n if (!$.isArray(rslt.remove)) rslt.remove = [ rslt.remove ];\n $.each(rslt.remove.sort(function(a, b) {\n return b - a;\n }), function(ndx, lmnt) {\n revalidateMask({\n begin: lmnt,\n end: lmnt + 1\n });\n });\n }\n if (rslt.insert !== undefined) {\n if (!$.isArray(rslt.insert)) rslt.insert = [ rslt.insert ];\n $.each(rslt.insert.sort(function(a, b) {\n return a - b;\n }), function(ndx, lmnt) {\n isValid(lmnt.pos, lmnt.c, true, fromSetValid);\n });\n }\n if (rslt !== true && rslt.pos !== undefined && rslt.pos !== position) {\n validatedPos = rslt.pos;\n }\n if (rslt !== true && rslt.pos === undefined && rslt.c === undefined) {\n return false;\n }\n if (!revalidateMask(pos, $.extend({}, tst, {\n input: casing(elem, test, validatedPos)\n }), fromSetValid, validatedPos)) {\n rslt = false;\n }\n return false;\n }\n });\n return rslt;\n }\n var result = true, positionsClone = $.extend(true, {}, getMaskSet().validPositions);\n if ($.isFunction(opts.preValidation) && !strict && fromSetValid !== true && validateOnly !== true) {\n result = opts.preValidation(getBuffer(), maskPos, c, isSelection(pos), opts, getMaskSet());\n }\n if (result === true) {\n trackbackPositions(undefined, maskPos, true);\n if (maxLength === undefined || maskPos < maxLength) {\n result = _isValid(maskPos, c, strict);\n if ((!strict || fromSetValid === true) && result === false && validateOnly !== true) {\n var currentPosValid = getMaskSet().validPositions[maskPos];\n if (currentPosValid && currentPosValid.match.fn === null && (currentPosValid.match.def === c || c === opts.skipOptionalPartCharacter)) {\n result = {\n caret: seekNext(maskPos)\n };\n } else {\n if ((opts.insertMode || getMaskSet().validPositions[seekNext(maskPos)] === undefined) && (!isMask(maskPos, true) || getMaskSet().jitOffset[maskPos])) {\n if (getMaskSet().jitOffset[maskPos] && getMaskSet().validPositions[seekNext(maskPos)] === undefined) {\n result = isValid(maskPos + getMaskSet().jitOffset[maskPos], c, strict);\n if (result !== false) result.caret = maskPos;\n } else for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) {\n result = _isValid(nPos, c, strict);\n if (result !== false) {\n result = trackbackPositions(maskPos, result.pos !== undefined ? result.pos : nPos) || result;\n maskPos = nPos;\n break;\n }\n }\n }\n }\n }\n }\n if (result === false && opts.keepStatic !== false && (opts.regex == null || isComplete(getBuffer())) && !strict && fromAlternate !== true) {\n result = alternate(maskPos, c, strict, fromSetValid);\n }\n if (result === true) {\n result = {\n pos: maskPos\n };\n }\n }\n if ($.isFunction(opts.postValidation) && result !== false && !strict && fromSetValid !== true && validateOnly !== true) {\n var postResult = opts.postValidation(getBuffer(true), pos.begin !== undefined ? isRTL ? pos.end : pos.begin : pos, result, opts);\n if (postResult !== undefined) {\n if (postResult.refreshFromBuffer && postResult.buffer) {\n var refresh = postResult.refreshFromBuffer;\n refreshFromBuffer(refresh === true ? refresh : refresh.start, refresh.end, postResult.buffer);\n }\n result = postResult === true ? result : postResult;\n }\n }\n if (result && result.pos === undefined) {\n result.pos = maskPos;\n }\n if (result === false || validateOnly === true) {\n resetMaskSet(true);\n getMaskSet().validPositions = $.extend(true, {}, positionsClone);\n }\n return result;\n }\n function trackbackPositions(originalPos, newPos, fillOnly) {\n var result;\n if (originalPos === undefined) {\n for (originalPos = newPos - 1; originalPos > 0; originalPos--) {\n if (getMaskSet().validPositions[originalPos]) break;\n }\n }\n for (var ps = originalPos; ps < newPos; ps++) {\n if (getMaskSet().validPositions[ps] === undefined && !isMask(ps, true)) {\n var vp = ps == 0 ? getTest(ps) : getMaskSet().validPositions[ps - 1];\n if (vp) {\n var tests = getTests(ps).slice();\n if (tests[tests.length - 1].match.def === \"\") tests.pop();\n var bestMatch = determineTestTemplate(ps, tests);\n bestMatch = $.extend({}, bestMatch, {\n input: getPlaceholder(ps, bestMatch.match, true) || bestMatch.match.def\n });\n bestMatch.generatedInput = true;\n revalidateMask(ps, bestMatch, true);\n if (fillOnly !== true) {\n var cvpInput = getMaskSet().validPositions[newPos].input;\n getMaskSet().validPositions[newPos] = undefined;\n result = isValid(newPos, cvpInput, true, true);\n }\n }\n }\n }\n return result;\n }\n function revalidateMask(pos, validTest, fromSetValid, validatedPos) {\n function IsEnclosedStatic(pos, valids, selection) {\n var posMatch = valids[pos];\n if (posMatch !== undefined && (posMatch.match.fn === null && posMatch.match.optionality !== true || posMatch.input === opts.radixPoint)) {\n var prevMatch = selection.begin <= pos - 1 ? valids[pos - 1] && valids[pos - 1].match.fn === null && valids[pos - 1] : valids[pos - 1], nextMatch = selection.end > pos + 1 ? valids[pos + 1] && valids[pos + 1].match.fn === null && valids[pos + 1] : valids[pos + 1];\n return prevMatch && nextMatch;\n }\n return false;\n }\n var begin = pos.begin !== undefined ? pos.begin : pos, end = pos.end !== undefined ? pos.end : pos;\n if (pos.begin > pos.end) {\n begin = pos.end;\n end = pos.begin;\n }\n validatedPos = validatedPos !== undefined ? validatedPos : begin;\n if (begin !== end || opts.insertMode && getMaskSet().validPositions[validatedPos] !== undefined && fromSetValid === undefined) {\n var positionsClone = $.extend(true, {}, getMaskSet().validPositions), lvp = getLastValidPosition(undefined, true), i;\n getMaskSet().p = begin;\n for (i = lvp; i >= begin; i--) {\n if (getMaskSet().validPositions[i] && getMaskSet().validPositions[i].match.nativeDef === \"+\") {\n opts.isNegative = false;\n }\n delete getMaskSet().validPositions[i];\n }\n var valid = true, j = validatedPos, vps = getMaskSet().validPositions, needsValidation = false, posMatch = j, i = j;\n if (validTest) {\n getMaskSet().validPositions[validatedPos] = $.extend(true, {}, validTest);\n posMatch++;\n j++;\n if (begin < end) i++;\n }\n for (;i <= lvp; i++) {\n var t = positionsClone[i];\n if (t !== undefined && (i >= end || i >= begin && t.generatedInput !== true && IsEnclosedStatic(i, positionsClone, {\n begin: begin,\n end: end\n }))) {\n while (getTest(posMatch).match.def !== \"\") {\n if (needsValidation === false && positionsClone[posMatch] && positionsClone[posMatch].match.nativeDef === t.match.nativeDef) {\n getMaskSet().validPositions[posMatch] = $.extend(true, {}, positionsClone[posMatch]);\n getMaskSet().validPositions[posMatch].input = t.input;\n trackbackPositions(undefined, posMatch, true);\n j = posMatch + 1;\n valid = true;\n } else if (opts.shiftPositions && positionCanMatchDefinition(posMatch, t.match.def)) {\n var result = isValid(posMatch, t.input, true, true);\n valid = result !== false;\n j = result.caret || result.insert ? getLastValidPosition() : posMatch + 1;\n needsValidation = true;\n } else {\n valid = t.generatedInput === true || t.input === opts.radixPoint && opts.numericInput === true;\n }\n if (valid) break;\n if (!valid && posMatch > end && isMask(posMatch, true) && (t.match.fn !== null || posMatch > getMaskSet().maskLength)) {\n break;\n }\n posMatch++;\n }\n if (getTest(posMatch).match.def == \"\") valid = false;\n posMatch = j;\n }\n if (!valid) break;\n }\n if (!valid) {\n getMaskSet().validPositions = $.extend(true, {}, positionsClone);\n resetMaskSet(true);\n return false;\n }\n } else if (validTest) {\n getMaskSet().validPositions[validatedPos] = $.extend(true, {}, validTest);\n }\n resetMaskSet(true);\n return true;\n }\n function isMask(pos, strict) {\n var test = getTestTemplate(pos).match;\n if (test.def === \"\") test = getTest(pos).match;\n if (test.fn != null) {\n return test.fn;\n }\n if (strict !== true && pos > -1) {\n var tests = getTests(pos);\n return tests.length > 1 + (tests[tests.length - 1].match.def === \"\" ? 1 : 0);\n }\n return false;\n }\n function seekNext(pos, newBlock) {\n var position = pos + 1;\n while (getTest(position).match.def !== \"\" && (newBlock === true && (getTest(position).match.newBlockMarker !== true || !isMask(position)) || newBlock !== true && !isMask(position))) {\n position++;\n }\n return position;\n }\n function seekPrevious(pos, newBlock) {\n var position = pos, tests;\n if (position <= 0) return 0;\n while (--position > 0 && (newBlock === true && getTest(position).match.newBlockMarker !== true || newBlock !== true && !isMask(position) && (tests = getTests(position), \n tests.length < 2 || tests.length === 2 && tests[1].match.def === \"\"))) {}\n return position;\n }\n function writeBuffer(input, buffer, caretPos, event, triggerEvents) {\n if (event && $.isFunction(opts.onBeforeWrite)) {\n var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts);\n if (result) {\n if (result.refreshFromBuffer) {\n var refresh = result.refreshFromBuffer;\n refreshFromBuffer(refresh === true ? refresh : refresh.start, refresh.end, result.buffer || buffer);\n buffer = getBuffer(true);\n }\n if (caretPos !== undefined) caretPos = result.caret !== undefined ? result.caret : caretPos;\n }\n }\n if (input !== undefined) {\n input.inputmask._valueSet(buffer.join(\"\"));\n if (caretPos !== undefined && (event === undefined || event.type !== \"blur\")) {\n caret(input, caretPos);\n } else renderColorMask(input, caretPos, buffer.length === 0);\n if (triggerEvents === true) {\n var $input = $(input), nptVal = input.inputmask._valueGet();\n skipInputEvent = true;\n $input.trigger(\"input\");\n setTimeout(function() {\n if (nptVal === getBufferTemplate().join(\"\")) {\n $input.trigger(\"cleared\");\n } else if (isComplete(buffer) === true) {\n $input.trigger(\"complete\");\n }\n }, 0);\n }\n }\n }\n function getPlaceholder(pos, test, returnPL) {\n test = test || getTest(pos).match;\n if (test.placeholder !== undefined || returnPL === true) {\n return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder;\n } else if (test.fn === null) {\n if (pos > -1 && getMaskSet().validPositions[pos] === undefined) {\n var tests = getTests(pos), staticAlternations = [], prevTest;\n if (tests.length > 1 + (tests[tests.length - 1].match.def === \"\" ? 1 : 0)) {\n for (var i = 0; i < tests.length; i++) {\n if (tests[i].match.optionality !== true && tests[i].match.optionalQuantifier !== true && (tests[i].match.fn === null || (prevTest === undefined || tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, true, opts) !== false))) {\n staticAlternations.push(tests[i]);\n if (tests[i].match.fn === null) prevTest = tests[i];\n if (staticAlternations.length > 1) {\n if (/[0-9a-bA-Z]/.test(staticAlternations[0].match.def)) {\n return opts.placeholder.charAt(pos % opts.placeholder.length);\n }\n }\n }\n }\n }\n }\n return test.def;\n }\n return opts.placeholder.charAt(pos % opts.placeholder.length);\n }\n function HandleNativePlaceholder(npt, value) {\n if (ie) {\n if (npt.inputmask._valueGet() !== value && (npt.placeholder !== value || npt.placeholder === \"\")) {\n var buffer = getBuffer().slice(), nptValue = npt.inputmask._valueGet();\n if (nptValue !== value) {\n var lvp = getLastValidPosition();\n if (lvp === -1 && nptValue === getBufferTemplate().join(\"\")) {\n buffer = [];\n } else if (lvp !== -1) {\n clearOptionalTail(buffer);\n }\n writeBuffer(npt, buffer);\n }\n }\n } else if (npt.placeholder !== value) {\n npt.placeholder = value;\n if (npt.placeholder === \"\") npt.removeAttribute(\"placeholder\");\n }\n }\n var EventRuler = {\n on: function(input, eventName, eventHandler) {\n var ev = function(e) {\n var that = this;\n if (that.inputmask === undefined && this.nodeName !== \"FORM\") {\n var imOpts = $.data(that, \"_inputmask_opts\");\n if (imOpts) new Inputmask(imOpts).mask(that); else EventRuler.off(that);\n } else if (e.type !== \"setvalue\" && this.nodeName !== \"FORM\" && (that.disabled || that.readOnly && !(e.type === \"keydown\" && (e.ctrlKey && e.keyCode === 67) || opts.tabThrough === false && e.keyCode === Inputmask.keyCode.TAB))) {\n e.preventDefault();\n } else {\n switch (e.type) {\n case \"input\":\n if (skipInputEvent === true) {\n skipInputEvent = false;\n return e.preventDefault();\n }\n if (mobile) {\n var args = arguments;\n setTimeout(function() {\n eventHandler.apply(that, args);\n caret(that, that.inputmask.caretPos, undefined, true);\n }, 0);\n return false;\n }\n break;\n\n case \"keydown\":\n skipKeyPressEvent = false;\n skipInputEvent = false;\n break;\n\n case \"keypress\":\n if (skipKeyPressEvent === true) {\n return e.preventDefault();\n }\n skipKeyPressEvent = true;\n break;\n\n case \"click\":\n if (iemobile || iphone) {\n var args = arguments;\n setTimeout(function() {\n eventHandler.apply(that, args);\n }, 0);\n return false;\n }\n break;\n }\n var returnVal = eventHandler.apply(that, arguments);\n if (returnVal === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n return returnVal;\n }\n };\n input.inputmask.events[eventName] = input.inputmask.events[eventName] || [];\n input.inputmask.events[eventName].push(ev);\n if ($.inArray(eventName, [ \"submit\", \"reset\" ]) !== -1) {\n if (input.form !== null) $(input.form).on(eventName, ev);\n } else {\n $(input).on(eventName, ev);\n }\n },\n off: function(input, event) {\n if (input.inputmask && input.inputmask.events) {\n var events;\n if (event) {\n events = [];\n events[event] = input.inputmask.events[event];\n } else {\n events = input.inputmask.events;\n }\n $.each(events, function(eventName, evArr) {\n while (evArr.length > 0) {\n var ev = evArr.pop();\n if ($.inArray(eventName, [ \"submit\", \"reset\" ]) !== -1) {\n if (input.form !== null) $(input.form).off(eventName, ev);\n } else {\n $(input).off(eventName, ev);\n }\n }\n delete input.inputmask.events[eventName];\n });\n }\n }\n };\n var EventHandlers = {\n keydownEvent: function(e) {\n var input = this, $input = $(input), k = e.keyCode, pos = caret(input);\n if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !isInputEventSupported(\"cut\")) {\n e.preventDefault();\n handleRemove(input, k, pos);\n writeBuffer(input, getBuffer(true), getMaskSet().p, e, input.inputmask._valueGet() !== getBuffer().join(\"\"));\n } else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) {\n e.preventDefault();\n var caretPos = seekNext(getLastValidPosition());\n caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, true);\n } else if (k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP) {\n e.preventDefault();\n caret(input, 0, e.shiftKey ? pos.begin : 0, true);\n } else if ((opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || k === 90 && e.ctrlKey) && e.altKey !== true) {\n checkVal(input, true, false, undoValue.split(\"\"));\n $input.trigger(\"click\");\n } else if (k === Inputmask.keyCode.INSERT && !(e.shiftKey || e.ctrlKey)) {\n opts.insertMode = !opts.insertMode;\n input.setAttribute(\"im-insert\", opts.insertMode);\n } else if (opts.tabThrough === true && k === Inputmask.keyCode.TAB) {\n if (e.shiftKey === true) {\n if (getTest(pos.begin).match.fn === null) {\n pos.begin = seekNext(pos.begin);\n }\n pos.end = seekPrevious(pos.begin, true);\n pos.begin = seekPrevious(pos.end, true);\n } else {\n pos.begin = seekNext(pos.begin, true);\n pos.end = seekNext(pos.begin, true);\n if (pos.end < getMaskSet().maskLength) pos.end--;\n }\n if (pos.begin < getMaskSet().maskLength) {\n e.preventDefault();\n caret(input, pos.begin, pos.end);\n }\n }\n opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts);\n ignorable = $.inArray(k, opts.ignorables) !== -1;\n },\n keypressEvent: function(e, checkval, writeOut, strict, ndx) {\n var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;\n if (checkval !== true && (!(e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable))) {\n if (k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join(\"\")) {\n undoValue = getBuffer().join(\"\");\n setTimeout(function() {\n $input.trigger(\"change\");\n }, 0);\n }\n return true;\n } else {\n if (k) {\n if (k === 46 && e.shiftKey === false && opts.radixPoint !== \"\") k = opts.radixPoint.charCodeAt(0);\n var pos = checkval ? {\n begin: ndx,\n end: ndx\n } : caret(input), forwardPosition, c = String.fromCharCode(k), offset = 0;\n if (opts._radixDance && opts.numericInput) {\n var caretPos = getBuffer().indexOf(opts.radixPoint.charAt(0)) + 1;\n if (pos.begin <= caretPos) {\n if (k === opts.radixPoint.charCodeAt(0)) offset = 1;\n pos.begin -= 1;\n pos.end -= 1;\n }\n }\n getMaskSet().writeOutBuffer = true;\n var valResult = isValid(pos, c, strict);\n if (valResult !== false) {\n resetMaskSet(true);\n forwardPosition = valResult.caret !== undefined ? valResult.caret : seekNext(valResult.pos.begin ? valResult.pos.begin : valResult.pos);\n getMaskSet().p = forwardPosition;\n }\n forwardPosition = (opts.numericInput && valResult.caret === undefined ? seekPrevious(forwardPosition) : forwardPosition) + offset;\n if (writeOut !== false) {\n setTimeout(function() {\n opts.onKeyValidation.call(input, k, valResult, opts);\n }, 0);\n if (getMaskSet().writeOutBuffer && valResult !== false) {\n var buffer = getBuffer();\n writeBuffer(input, buffer, forwardPosition, e, checkval !== true);\n }\n }\n e.preventDefault();\n if (checkval) {\n if (valResult !== false) valResult.forwardPosition = forwardPosition;\n return valResult;\n }\n }\n }\n },\n pasteEvent: function(e) {\n var input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(true), caretPos = caret(input), tempValue;\n if (isRTL) {\n tempValue = caretPos.end;\n caretPos.end = caretPos.begin;\n caretPos.begin = tempValue;\n }\n var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);\n if (valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join(\"\")) valueBeforeCaret = \"\";\n if (valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join(\"\")) valueAfterCaret = \"\";\n if (window.clipboardData && window.clipboardData.getData) {\n inputValue = valueBeforeCaret + window.clipboardData.getData(\"Text\") + valueAfterCaret;\n } else if (ev.clipboardData && ev.clipboardData.getData) {\n inputValue = valueBeforeCaret + ev.clipboardData.getData(\"text/plain\") + valueAfterCaret;\n } else return true;\n var pasteValue = inputValue;\n if ($.isFunction(opts.onBeforePaste)) {\n pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts);\n if (pasteValue === false) {\n return e.preventDefault();\n }\n if (!pasteValue) {\n pasteValue = inputValue;\n }\n }\n checkVal(input, false, false, pasteValue.toString().split(\"\"));\n writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()), e, undoValue !== getBuffer().join(\"\"));\n return e.preventDefault();\n },\n inputFallBackEvent: function(e) {\n function radixPointHandler(input, inputValue, caretPos) {\n if (inputValue.charAt(caretPos.begin - 1) === \".\" && opts.radixPoint !== \"\") {\n inputValue = inputValue.split(\"\");\n inputValue[caretPos.begin - 1] = opts.radixPoint.charAt(0);\n inputValue = inputValue.join(\"\");\n }\n return inputValue;\n }\n function ieMobileHandler(input, inputValue, caretPos) {\n if (iemobile) {\n var inputChar = inputValue.replace(getBuffer().join(\"\"), \"\");\n if (inputChar.length === 1) {\n var iv = inputValue.split(\"\");\n iv.splice(caretPos.begin, 0, inputChar);\n inputValue = iv.join(\"\");\n }\n }\n return inputValue;\n }\n var input = this, inputValue = input.inputmask._valueGet();\n if (getBuffer().join(\"\") !== inputValue) {\n var caretPos = caret(input);\n inputValue = radixPointHandler(input, inputValue, caretPos);\n inputValue = ieMobileHandler(input, inputValue, caretPos);\n if (getBuffer().join(\"\") !== inputValue) {\n var buffer = getBuffer().join(\"\"), offset = !opts.numericInput && inputValue.length > buffer.length ? -1 : 0, frontPart = inputValue.substr(0, caretPos.begin), backPart = inputValue.substr(caretPos.begin), frontBufferPart = buffer.substr(0, caretPos.begin + offset), backBufferPart = buffer.substr(caretPos.begin + offset);\n var selection = caretPos, entries = \"\", isEntry = false;\n if (frontPart !== frontBufferPart) {\n var fpl = (isEntry = frontPart.length >= frontBufferPart.length) ? frontPart.length : frontBufferPart.length, i;\n for (i = 0; frontPart.charAt(i) === frontBufferPart.charAt(i) && i < fpl; i++) ;\n if (isEntry) {\n selection.begin = i - offset;\n entries += frontPart.slice(i, selection.end);\n }\n }\n if (backPart !== backBufferPart) {\n if (backPart.length > backBufferPart.length) {\n entries += backPart.slice(0, 1);\n } else {\n if (backPart.length < backBufferPart.length) {\n selection.end += backBufferPart.length - backPart.length;\n if (!isEntry && opts.radixPoint !== \"\" && backPart === \"\" && frontPart.charAt(selection.begin + offset - 1) === opts.radixPoint) {\n selection.begin--;\n entries = opts.radixPoint;\n }\n }\n }\n }\n writeBuffer(input, getBuffer(), {\n begin: selection.begin + offset,\n end: selection.end + offset\n });\n if (entries.length > 0) {\n $.each(entries.split(\"\"), function(ndx, entry) {\n var keypress = new $.Event(\"keypress\");\n keypress.which = entry.charCodeAt(0);\n ignorable = false;\n EventHandlers.keypressEvent.call(input, keypress);\n });\n } else {\n if (selection.begin === selection.end - 1) {\n selection.begin = seekPrevious(selection.begin + 1);\n if (selection.begin === selection.end - 1) {\n caret(input, selection.begin);\n } else {\n caret(input, selection.begin, selection.end);\n }\n }\n var keydown = new $.Event(\"keydown\");\n keydown.keyCode = opts.numericInput ? Inputmask.keyCode.BACKSPACE : Inputmask.keyCode.DELETE;\n EventHandlers.keydownEvent.call(input, keydown);\n }\n e.preventDefault();\n }\n }\n },\n beforeInputEvent: function(e) {\n if (e.cancelable) {\n var input = this;\n switch (e.inputType) {\n case \"insertText\":\n $.each(e.data.split(\"\"), function(ndx, entry) {\n var keypress = new $.Event(\"keypress\");\n keypress.which = entry.charCodeAt(0);\n ignorable = false;\n EventHandlers.keypressEvent.call(input, keypress);\n });\n return e.preventDefault();\n\n case \"deleteContentBackward\":\n var keydown = new $.Event(\"keydown\");\n keydown.keyCode = Inputmask.keyCode.BACKSPACE;\n EventHandlers.keydownEvent.call(input, keydown);\n return e.preventDefault();\n\n case \"deleteContentForward\":\n var keydown = new $.Event(\"keydown\");\n keydown.keyCode = Inputmask.keyCode.DELETE;\n EventHandlers.keydownEvent.call(input, keydown);\n return e.preventDefault();\n }\n }\n },\n setValueEvent: function(e) {\n this.inputmask.refreshValue = false;\n var input = this, value = e && e.detail ? e.detail[0] : arguments[1], value = value || input.inputmask._valueGet(true);\n if ($.isFunction(opts.onBeforeMask)) value = opts.onBeforeMask.call(inputmask, value, opts) || value;\n value = value.toString().split(\"\");\n checkVal(input, true, false, value);\n undoValue = getBuffer().join(\"\");\n if ((opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join(\"\")) {\n input.inputmask._valueSet(\"\");\n }\n },\n focusEvent: function(e) {\n var input = this, nptValue = input.inputmask._valueGet();\n if (opts.showMaskOnFocus) {\n if (nptValue !== getBuffer().join(\"\")) {\n writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()));\n } else if (mouseEnter === false) {\n caret(input, seekNext(getLastValidPosition()));\n }\n }\n if (opts.positionCaretOnTab === true && mouseEnter === false) {\n EventHandlers.clickEvent.apply(input, [ e, true ]);\n }\n undoValue = getBuffer().join(\"\");\n },\n mouseleaveEvent: function(e) {\n var input = this;\n mouseEnter = false;\n if (opts.clearMaskOnLostFocus && document.activeElement !== input) {\n HandleNativePlaceholder(input, originalPlaceholder);\n }\n },\n clickEvent: function(e, tabbed) {\n function doRadixFocus(clickPos) {\n if (opts.radixPoint !== \"\") {\n var vps = getMaskSet().validPositions;\n if (vps[clickPos] === undefined || vps[clickPos].input === getPlaceholder(clickPos)) {\n if (clickPos < seekNext(-1)) return true;\n var radixPos = $.inArray(opts.radixPoint, getBuffer());\n if (radixPos !== -1) {\n for (var vp in vps) {\n if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) {\n return false;\n }\n }\n return true;\n }\n }\n }\n return false;\n }\n var input = this;\n setTimeout(function() {\n if (document.activeElement === input) {\n var selectedCaret = caret(input);\n if (tabbed) {\n if (isRTL) {\n selectedCaret.end = selectedCaret.begin;\n } else {\n selectedCaret.begin = selectedCaret.end;\n }\n }\n if (selectedCaret.begin === selectedCaret.end) {\n switch (opts.positionCaretOnClick) {\n case \"none\":\n break;\n\n case \"select\":\n caret(input, 0, getBuffer().length);\n break;\n\n case \"ignore\":\n caret(input, seekNext(getLastValidPosition()));\n break;\n\n case \"radixFocus\":\n if (doRadixFocus(selectedCaret.begin)) {\n var radixPos = getBuffer().join(\"\").indexOf(opts.radixPoint);\n caret(input, opts.numericInput ? seekNext(radixPos) : radixPos);\n break;\n }\n\n default:\n var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, true), lastPosition = seekNext(lvclickPosition);\n if (clickPosition < lastPosition) {\n caret(input, !isMask(clickPosition, true) && !isMask(clickPosition - 1, true) ? seekNext(clickPosition) : clickPosition);\n } else {\n var lvp = getMaskSet().validPositions[lvclickPosition], tt = getTestTemplate(lastPosition, lvp ? lvp.match.locator : undefined, lvp), placeholder = getPlaceholder(lastPosition, tt.match);\n if (placeholder !== \"\" && getBuffer()[lastPosition] !== placeholder && tt.match.optionalQuantifier !== true && tt.match.newBlockMarker !== true || !isMask(lastPosition, opts.keepStatic) && tt.match.def === placeholder) {\n var newPos = seekNext(lastPosition);\n if (clickPosition >= newPos || clickPosition === lastPosition) {\n lastPosition = newPos;\n }\n }\n caret(input, lastPosition);\n }\n break;\n }\n }\n }\n }, 0);\n },\n cutEvent: function(e) {\n var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e;\n var clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);\n clipboardData.setData(\"text\", isRTL ? clipData.reverse().join(\"\") : clipData.join(\"\"));\n if (document.execCommand) document.execCommand(\"copy\");\n handleRemove(input, Inputmask.keyCode.DELETE, pos);\n writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(\"\"));\n },\n blurEvent: function(e) {\n var $input = $(this), input = this;\n if (input.inputmask) {\n HandleNativePlaceholder(input, originalPlaceholder);\n var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice();\n if (nptValue !== \"\" || colorMask !== undefined) {\n if (opts.clearMaskOnLostFocus) {\n if (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join(\"\")) {\n buffer = [];\n } else {\n clearOptionalTail(buffer);\n }\n }\n if (isComplete(buffer) === false) {\n setTimeout(function() {\n $input.trigger(\"incomplete\");\n }, 0);\n if (opts.clearIncomplete) {\n resetMaskSet();\n if (opts.clearMaskOnLostFocus) {\n buffer = [];\n } else {\n buffer = getBufferTemplate().slice();\n }\n }\n }\n writeBuffer(input, buffer, undefined, e);\n }\n if (undoValue !== getBuffer().join(\"\")) {\n undoValue = buffer.join(\"\");\n $input.trigger(\"change\");\n }\n }\n },\n mouseenterEvent: function(e) {\n var input = this;\n mouseEnter = true;\n if (document.activeElement !== input && opts.showMaskOnHover) {\n HandleNativePlaceholder(input, (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\"));\n }\n },\n submitEvent: function(e) {\n if (undoValue !== getBuffer().join(\"\")) {\n $el.trigger(\"change\");\n }\n if (opts.clearMaskOnLostFocus && getLastValidPosition() === -1 && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join(\"\")) {\n el.inputmask._valueSet(\"\");\n }\n if (opts.clearIncomplete && isComplete(getBuffer()) === false) {\n el.inputmask._valueSet(\"\");\n }\n if (opts.removeMaskOnSubmit) {\n el.inputmask._valueSet(el.inputmask.unmaskedvalue(), true);\n setTimeout(function() {\n writeBuffer(el, getBuffer());\n }, 0);\n }\n },\n resetEvent: function(e) {\n el.inputmask.refreshValue = true;\n setTimeout(function() {\n $el.trigger(\"setvalue\");\n }, 0);\n }\n };\n function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {\n var inputmask = this || input.inputmask, inputValue = nptvl.slice(), charCodes = \"\", initialNdx = -1, result = undefined;\n function isTemplateMatch(ndx, charCodes) {\n var charCodeNdx = getMaskTemplate(true, 0, false).slice(ndx, seekNext(ndx)).join(\"\").replace(/'/g, \"\").indexOf(charCodes);\n return charCodeNdx !== -1 && !isMask(ndx) && (getTest(ndx).match.nativeDef === charCodes.charAt(0) || getTest(ndx).match.fn === null && getTest(ndx).match.nativeDef === \"'\" + charCodes.charAt(0) || getTest(ndx).match.nativeDef === \" \" && (getTest(ndx + 1).match.nativeDef === charCodes.charAt(0) || getTest(ndx + 1).match.fn === null && getTest(ndx + 1).match.nativeDef === \"'\" + charCodes.charAt(0)));\n }\n resetMaskSet();\n if (!strict && opts.autoUnmask !== true) {\n var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(\"\"), matches = inputValue.join(\"\").match(new RegExp(\"^\" + Inputmask.escapeRegex(staticInput), \"g\"));\n if (matches && matches.length > 0) {\n inputValue.splice(0, matches.length * staticInput.length);\n initialNdx = seekNext(initialNdx);\n }\n } else {\n initialNdx = seekNext(initialNdx);\n }\n if (initialNdx === -1) {\n getMaskSet().p = seekNext(initialNdx);\n initialNdx = 0;\n } else getMaskSet().p = initialNdx;\n inputmask.caretPos = {\n begin: initialNdx\n };\n $.each(inputValue, function(ndx, charCode) {\n if (charCode !== undefined) {\n if (getMaskSet().validPositions[ndx] === undefined && inputValue[ndx] === getPlaceholder(ndx) && isMask(ndx, true) && isValid(ndx, inputValue[ndx], true, undefined, undefined, true) === false) {\n getMaskSet().p++;\n } else {\n var keypress = new $.Event(\"_checkval\");\n keypress.which = charCode.charCodeAt(0);\n charCodes += charCode;\n var lvp = getLastValidPosition(undefined, true);\n if (!isTemplateMatch(initialNdx, charCodes)) {\n result = EventHandlers.keypressEvent.call(input, keypress, true, false, strict, inputmask.caretPos.begin);\n if (result) {\n initialNdx = inputmask.caretPos.begin + 1;\n charCodes = \"\";\n }\n } else {\n result = EventHandlers.keypressEvent.call(input, keypress, true, false, strict, lvp + 1);\n }\n if (result) {\n writeBuffer(undefined, getBuffer(), result.forwardPosition, keypress, false);\n inputmask.caretPos = {\n begin: result.forwardPosition,\n end: result.forwardPosition\n };\n }\n }\n }\n });\n if (writeOut) writeBuffer(input, getBuffer(), result ? result.forwardPosition : undefined, initiatingEvent || new $.Event(\"checkval\"), initiatingEvent && initiatingEvent.type === \"input\");\n }\n function unmaskedvalue(input) {\n if (input) {\n if (input.inputmask === undefined) {\n return input.value;\n }\n if (input.inputmask && input.inputmask.refreshValue) {\n EventHandlers.setValueEvent.call(input);\n }\n }\n var umValue = [], vps = getMaskSet().validPositions;\n for (var pndx in vps) {\n if (vps[pndx].match && vps[pndx].match.fn != null) {\n umValue.push(vps[pndx].input);\n }\n }\n var unmaskedValue = umValue.length === 0 ? \"\" : (isRTL ? umValue.reverse() : umValue).join(\"\");\n if ($.isFunction(opts.onUnMask)) {\n var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\");\n unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts);\n }\n return unmaskedValue;\n }\n function caret(input, begin, end, notranslate) {\n function translatePosition(pos) {\n if (isRTL && typeof pos === \"number\" && (!opts.greedy || opts.placeholder !== \"\") && el) {\n pos = el.inputmask._valueGet().length - pos;\n }\n return pos;\n }\n var range;\n if (begin !== undefined) {\n if ($.isArray(begin)) {\n end = isRTL ? begin[0] : begin[1];\n begin = isRTL ? begin[1] : begin[0];\n }\n if (begin.begin !== undefined) {\n end = isRTL ? begin.begin : begin.end;\n begin = isRTL ? begin.end : begin.begin;\n }\n if (typeof begin === \"number\") {\n begin = notranslate ? begin : translatePosition(begin);\n end = notranslate ? end : translatePosition(end);\n end = typeof end == \"number\" ? end : begin;\n var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;\n input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0;\n input.inputmask.caretPos = {\n begin: begin,\n end: end\n };\n if (input === document.activeElement) {\n if (\"selectionStart\" in input) {\n input.selectionStart = begin;\n input.selectionEnd = end;\n } else if (window.getSelection) {\n range = document.createRange();\n if (input.firstChild === undefined || input.firstChild === null) {\n var textNode = document.createTextNode(\"\");\n input.appendChild(textNode);\n }\n range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length);\n range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length);\n range.collapse(true);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (input.createTextRange) {\n range = input.createTextRange();\n range.collapse(true);\n range.moveEnd(\"character\", end);\n range.moveStart(\"character\", begin);\n range.select();\n }\n renderColorMask(input, {\n begin: begin,\n end: end\n });\n }\n }\n } else {\n if (\"selectionStart\" in input) {\n begin = input.selectionStart;\n end = input.selectionEnd;\n } else if (window.getSelection) {\n range = window.getSelection().getRangeAt(0);\n if (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) {\n begin = range.startOffset;\n end = range.endOffset;\n }\n } else if (document.selection && document.selection.createRange) {\n range = document.selection.createRange();\n begin = 0 - range.duplicate().moveStart(\"character\", -input.inputmask._valueGet().length);\n end = begin + range.text.length;\n }\n return {\n begin: notranslate ? begin : translatePosition(begin),\n end: notranslate ? end : translatePosition(end)\n };\n }\n }\n function determineLastRequiredPosition(returnDefinition) {\n var buffer = getMaskTemplate(true, getLastValidPosition(), true, true), bl = buffer.length, pos, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined, testPos;\n for (pos = lvp + 1; pos < buffer.length; pos++) {\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\n ndxIntlzr = testPos.locator.slice();\n positions[pos] = $.extend(true, {}, testPos);\n }\n var lvTestAlt = lvTest && lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation] : undefined;\n for (pos = bl - 1; pos > lvp; pos--) {\n testPos = positions[pos];\n if ((testPos.match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && testPos.match.fn != null || testPos.match.fn === null && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAlt.toString().split(\",\")) && getTests(pos)[0].def !== \"\")) && buffer[pos] === getPlaceholder(pos, testPos.match)) {\n bl--;\n } else break;\n }\n return returnDefinition ? {\n l: bl,\n def: positions[bl] ? positions[bl].match : undefined\n } : bl;\n }\n function clearOptionalTail(buffer) {\n buffer.length = 0;\n var template = getMaskTemplate(true, 0, true, undefined, true), lmnt, validPos;\n while (lmnt = template.shift(), lmnt !== undefined) buffer.push(lmnt);\n return buffer;\n }\n function isComplete(buffer) {\n if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);\n if (opts.repeat === \"*\") return undefined;\n var complete = false, lrp = determineLastRequiredPosition(true), aml = seekPrevious(lrp.l);\n if (lrp.def === undefined || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {\n complete = true;\n for (var i = 0; i <= aml; i++) {\n var test = getTestTemplate(i).match;\n if (test.fn !== null && getMaskSet().validPositions[i] === undefined && test.optionality !== true && test.optionalQuantifier !== true || test.fn === null && buffer[i] !== getPlaceholder(i, test)) {\n complete = false;\n break;\n }\n }\n }\n return complete;\n }\n function handleRemove(input, k, pos, strict, fromIsValid) {\n if (opts.numericInput || isRTL) {\n if (k === Inputmask.keyCode.BACKSPACE) {\n k = Inputmask.keyCode.DELETE;\n } else if (k === Inputmask.keyCode.DELETE) {\n k = Inputmask.keyCode.BACKSPACE;\n }\n if (isRTL) {\n var pend = pos.end;\n pos.end = pos.begin;\n pos.begin = pend;\n }\n }\n if (k === Inputmask.keyCode.BACKSPACE && pos.end - pos.begin < 1) {\n pos.begin = seekPrevious(pos.begin);\n if (getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator) {\n pos.begin--;\n }\n } else if (k === Inputmask.keyCode.DELETE && pos.begin === pos.end) {\n pos.end = isMask(pos.end, true) && (getMaskSet().validPositions[pos.end] && getMaskSet().validPositions[pos.end].input !== opts.radixPoint) ? pos.end + 1 : seekNext(pos.end) + 1;\n if (getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator) {\n pos.end++;\n }\n }\n revalidateMask(pos);\n if (strict !== true && opts.keepStatic !== false || opts.regex !== null) {\n var result = alternate(true);\n if (result) {\n var newPos = result.caret !== undefined ? result.caret : result.pos ? seekNext(result.pos.begin ? result.pos.begin : result.pos) : getLastValidPosition(-1, true);\n if (k !== Inputmask.keyCode.DELETE || pos.begin > newPos) {\n pos.begin == newPos;\n }\n }\n }\n var lvp = getLastValidPosition(pos.begin, true);\n if (lvp < pos.begin || pos.begin === -1) {\n getMaskSet().p = seekNext(lvp);\n } else if (strict !== true) {\n getMaskSet().p = pos.begin;\n if (fromIsValid !== true) {\n while (getMaskSet().p < lvp && getMaskSet().validPositions[getMaskSet().p] === undefined) {\n getMaskSet().p++;\n }\n }\n }\n }\n function initializeColorMask(input) {\n var computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null);\n function findCaretPos(clientx) {\n var e = document.createElement(\"span\"), caretPos;\n for (var style in computedStyle) {\n if (isNaN(style) && style.indexOf(\"font\") !== -1) {\n e.style[style] = computedStyle[style];\n }\n }\n e.style.textTransform = computedStyle.textTransform;\n e.style.letterSpacing = computedStyle.letterSpacing;\n e.style.position = \"absolute\";\n e.style.height = \"auto\";\n e.style.width = \"auto\";\n e.style.visibility = \"hidden\";\n e.style.whiteSpace = \"nowrap\";\n document.body.appendChild(e);\n var inputText = input.inputmask._valueGet(), previousWidth = 0, itl;\n for (caretPos = 0, itl = inputText.length; caretPos <= itl; caretPos++) {\n e.innerHTML += inputText.charAt(caretPos) || \"_\";\n if (e.offsetWidth >= clientx) {\n var offset1 = clientx - previousWidth;\n var offset2 = e.offsetWidth - clientx;\n e.innerHTML = inputText.charAt(caretPos);\n offset1 -= e.offsetWidth / 3;\n caretPos = offset1 < offset2 ? caretPos - 1 : caretPos;\n break;\n }\n previousWidth = e.offsetWidth;\n }\n document.body.removeChild(e);\n return caretPos;\n }\n var template = document.createElement(\"div\");\n template.style.width = computedStyle.width;\n template.style.textAlign = computedStyle.textAlign;\n colorMask = document.createElement(\"div\");\n input.inputmask.colorMask = colorMask;\n colorMask.className = \"im-colormask\";\n input.parentNode.insertBefore(colorMask, input);\n input.parentNode.removeChild(input);\n colorMask.appendChild(input);\n colorMask.appendChild(template);\n input.style.left = template.offsetLeft + \"px\";\n $(colorMask).on(\"mouseleave\", function(e) {\n return EventHandlers.mouseleaveEvent.call(input, [ e ]);\n });\n $(colorMask).on(\"mouseenter\", function(e) {\n return EventHandlers.mouseenterEvent.call(input, [ e ]);\n });\n $(colorMask).on(\"click\", function(e) {\n caret(input, findCaretPos(e.clientX));\n return EventHandlers.clickEvent.call(input, [ e ]);\n });\n }\n function renderColorMask(input, caretPos, clear) {\n var maskTemplate = [], isStatic = false, test, testPos, ndxIntlzr, pos = 0;\n function setEntry(entry) {\n if (entry === undefined) entry = \"\";\n if (!isStatic && (test.fn === null || testPos.input === undefined)) {\n isStatic = true;\n maskTemplate.push(\"\" + entry);\n } else if (isStatic && (test.fn !== null && testPos.input !== undefined || test.def === \"\")) {\n isStatic = false;\n var mtl = maskTemplate.length;\n maskTemplate[mtl - 1] = maskTemplate[mtl - 1] + \"\";\n maskTemplate.push(entry);\n } else maskTemplate.push(entry);\n }\n function setCaret() {\n if (document.activeElement === input) {\n maskTemplate.splice(caretPos.begin, 0, caretPos.begin === caretPos.end || caretPos.end > getMaskSet().maskLength ? '' : '');\n maskTemplate.splice(caretPos.end + 1, 0, \"\");\n }\n }\n if (colorMask !== undefined) {\n var buffer = getBuffer();\n if (caretPos === undefined) {\n caretPos = caret(input);\n } else if (caretPos.begin === undefined) {\n caretPos = {\n begin: caretPos,\n end: caretPos\n };\n }\n if (clear !== true) {\n var lvp = getLastValidPosition();\n do {\n if (getMaskSet().validPositions[pos]) {\n testPos = getMaskSet().validPositions[pos];\n test = testPos.match;\n ndxIntlzr = testPos.locator.slice();\n setEntry(buffer[pos]);\n } else {\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\n test = testPos.match;\n ndxIntlzr = testPos.locator.slice();\n if (opts.jitMasking === false || pos < lvp || typeof opts.jitMasking === \"number\" && isFinite(opts.jitMasking) && opts.jitMasking > pos) {\n setEntry(getPlaceholder(pos, test));\n } else isStatic = false;\n }\n pos++;\n } while ((maxLength === undefined || pos < maxLength) && (test.fn !== null || test.def !== \"\") || lvp > pos || isStatic);\n if (isStatic) setEntry();\n setCaret();\n }\n var template = colorMask.getElementsByTagName(\"div\")[0];\n template.innerHTML = maskTemplate.join(\"\");\n input.inputmask.positionColorMask(input, template);\n }\n }\n function mask(elem) {\n function isElementTypeSupported(input, opts) {\n function patchValueProperty(npt) {\n var valueGet;\n var valueSet;\n function patchValhook(type) {\n if ($.valHooks && ($.valHooks[type] === undefined || $.valHooks[type].inputmaskpatch !== true)) {\n var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {\n return elem.value;\n };\n var valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {\n elem.value = value;\n return elem;\n };\n $.valHooks[type] = {\n get: function(elem) {\n if (elem.inputmask) {\n if (elem.inputmask.opts.autoUnmask) {\n return elem.inputmask.unmaskedvalue();\n } else {\n var result = valhookGet(elem);\n return getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== true ? result : \"\";\n }\n } else return valhookGet(elem);\n },\n set: function(elem, value) {\n var $elem = $(elem), result;\n result = valhookSet(elem, value);\n if (elem.inputmask) {\n $elem.trigger(\"setvalue\", [ value ]);\n }\n return result;\n },\n inputmaskpatch: true\n };\n }\n }\n function getter() {\n if (this.inputmask) {\n return this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : getLastValidPosition() !== -1 || opts.nullable !== true ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join(\"\") : valueGet.call(this) : \"\";\n } else return valueGet.call(this);\n }\n function setter(value) {\n valueSet.call(this, value);\n if (this.inputmask) {\n $(this).trigger(\"setvalue\", [ value ]);\n }\n }\n function installNativeValueSetFallback(npt) {\n EventRuler.on(npt, \"mouseenter\", function(event) {\n var $input = $(this), input = this, value = input.inputmask._valueGet();\n if (value !== getBuffer().join(\"\")) {\n $input.trigger(\"setvalue\");\n }\n });\n }\n if (!npt.inputmask.__valueGet) {\n if (opts.noValuePatching !== true) {\n if (Object.getOwnPropertyDescriptor) {\n if (typeof Object.getPrototypeOf !== \"function\") {\n Object.getPrototypeOf = typeof \"test\".__proto__ === \"object\" ? function(object) {\n return object.__proto__;\n } : function(object) {\n return object.constructor.prototype;\n };\n }\n var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), \"value\") : undefined;\n if (valueProperty && valueProperty.get && valueProperty.set) {\n valueGet = valueProperty.get;\n valueSet = valueProperty.set;\n Object.defineProperty(npt, \"value\", {\n get: getter,\n set: setter,\n configurable: true\n });\n } else if (npt.tagName !== \"INPUT\") {\n valueGet = function() {\n return this.textContent;\n };\n valueSet = function(value) {\n this.textContent = value;\n };\n Object.defineProperty(npt, \"value\", {\n get: getter,\n set: setter,\n configurable: true\n });\n }\n } else if (document.__lookupGetter__ && npt.__lookupGetter__(\"value\")) {\n valueGet = npt.__lookupGetter__(\"value\");\n valueSet = npt.__lookupSetter__(\"value\");\n npt.__defineGetter__(\"value\", getter);\n npt.__defineSetter__(\"value\", setter);\n }\n npt.inputmask.__valueGet = valueGet;\n npt.inputmask.__valueSet = valueSet;\n }\n npt.inputmask._valueGet = function(overruleRTL) {\n return isRTL && overruleRTL !== true ? valueGet.call(this.el).split(\"\").reverse().join(\"\") : valueGet.call(this.el);\n };\n npt.inputmask._valueSet = function(value, overruleRTL) {\n valueSet.call(this.el, value === null || value === undefined ? \"\" : overruleRTL !== true && isRTL ? value.split(\"\").reverse().join(\"\") : value);\n };\n if (valueGet === undefined) {\n valueGet = function() {\n return this.value;\n };\n valueSet = function(value) {\n this.value = value;\n };\n patchValhook(npt.type);\n installNativeValueSetFallback(npt);\n }\n }\n }\n var elementType = input.getAttribute(\"type\");\n var isSupported = input.tagName === \"INPUT\" && $.inArray(elementType, opts.supportsInputType) !== -1 || input.isContentEditable || input.tagName === \"TEXTAREA\";\n if (!isSupported) {\n if (input.tagName === \"INPUT\") {\n var el = document.createElement(\"input\");\n el.setAttribute(\"type\", elementType);\n isSupported = el.type === \"text\";\n el = null;\n } else isSupported = \"partial\";\n }\n if (isSupported !== false) {\n patchValueProperty(input);\n } else input.inputmask = undefined;\n return isSupported;\n }\n EventRuler.off(elem);\n var isSupported = isElementTypeSupported(elem, opts);\n if (isSupported !== false) {\n el = elem;\n $el = $(el);\n originalPlaceholder = el.placeholder;\n maxLength = el !== undefined ? el.maxLength : undefined;\n if (maxLength === -1) maxLength = undefined;\n if (opts.colorMask === true) {\n initializeColorMask(el);\n }\n if (mobile) {\n if (\"inputMode\" in el) {\n el.inputmode = opts.inputmode;\n el.setAttribute(\"inputmode\", opts.inputmode);\n }\n if (opts.disablePredictiveText === true) {\n if (\"autocorrect\" in el) {\n el.autocorrect = false;\n } else {\n if (opts.colorMask !== true) {\n initializeColorMask(el);\n }\n el.type = \"password\";\n }\n }\n }\n if (isSupported === true) {\n el.setAttribute(\"im-insert\", opts.insertMode);\n EventRuler.on(el, \"submit\", EventHandlers.submitEvent);\n EventRuler.on(el, \"reset\", EventHandlers.resetEvent);\n EventRuler.on(el, \"blur\", EventHandlers.blurEvent);\n EventRuler.on(el, \"focus\", EventHandlers.focusEvent);\n if (opts.colorMask !== true) {\n EventRuler.on(el, \"click\", EventHandlers.clickEvent);\n EventRuler.on(el, \"mouseleave\", EventHandlers.mouseleaveEvent);\n EventRuler.on(el, \"mouseenter\", EventHandlers.mouseenterEvent);\n }\n EventRuler.on(el, \"paste\", EventHandlers.pasteEvent);\n EventRuler.on(el, \"cut\", EventHandlers.cutEvent);\n EventRuler.on(el, \"complete\", opts.oncomplete);\n EventRuler.on(el, \"incomplete\", opts.onincomplete);\n EventRuler.on(el, \"cleared\", opts.oncleared);\n if (!mobile && opts.inputEventOnly !== true) {\n EventRuler.on(el, \"keydown\", EventHandlers.keydownEvent);\n EventRuler.on(el, \"keypress\", EventHandlers.keypressEvent);\n } else {\n el.removeAttribute(\"maxLength\");\n }\n EventRuler.on(el, \"input\", EventHandlers.inputFallBackEvent);\n EventRuler.on(el, \"beforeinput\", EventHandlers.beforeInputEvent);\n }\n EventRuler.on(el, \"setvalue\", EventHandlers.setValueEvent);\n undoValue = getBufferTemplate().join(\"\");\n if (el.inputmask._valueGet(true) !== \"\" || opts.clearMaskOnLostFocus === false || document.activeElement === el) {\n var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, el.inputmask._valueGet(true), opts) || el.inputmask._valueGet(true) : el.inputmask._valueGet(true);\n if (initialValue !== \"\") checkVal(el, true, false, initialValue.split(\"\"));\n var buffer = getBuffer().slice();\n undoValue = buffer.join(\"\");\n if (isComplete(buffer) === false) {\n if (opts.clearIncomplete) {\n resetMaskSet();\n }\n }\n if (opts.clearMaskOnLostFocus && document.activeElement !== el) {\n if (getLastValidPosition() === -1) {\n buffer = [];\n } else {\n clearOptionalTail(buffer);\n }\n }\n if (opts.clearMaskOnLostFocus === false || opts.showMaskOnFocus && document.activeElement === el || el.inputmask._valueGet(true) !== \"\") writeBuffer(el, buffer);\n if (document.activeElement === el) {\n caret(el, seekNext(getLastValidPosition()));\n }\n }\n }\n }\n var valueBuffer;\n if (actionObj !== undefined) {\n switch (actionObj.action) {\n case \"isComplete\":\n el = actionObj.el;\n return isComplete(getBuffer());\n\n case \"unmaskedvalue\":\n if (el === undefined || actionObj.value !== undefined) {\n valueBuffer = actionObj.value;\n valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, valueBuffer, opts) || valueBuffer : valueBuffer).split(\"\");\n checkVal.call(this, undefined, false, false, valueBuffer);\n if ($.isFunction(opts.onBeforeWrite)) opts.onBeforeWrite.call(inputmask, undefined, getBuffer(), 0, opts);\n }\n return unmaskedvalue(el);\n\n case \"mask\":\n mask(el);\n break;\n\n case \"format\":\n valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, actionObj.value, opts) || actionObj.value : actionObj.value).split(\"\");\n checkVal.call(this, undefined, true, false, valueBuffer);\n if (actionObj.metadata) {\n return {\n value: isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\"),\n metadata: maskScope.call(this, {\n action: \"getmetadata\"\n }, maskset, opts)\n };\n }\n return isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\");\n\n case \"isValid\":\n if (actionObj.value) {\n valueBuffer = actionObj.value.split(\"\");\n checkVal.call(this, undefined, true, true, valueBuffer);\n } else {\n actionObj.value = getBuffer().join(\"\");\n }\n var buffer = getBuffer();\n var rl = determineLastRequiredPosition(), lmib = buffer.length - 1;\n for (;lmib > rl; lmib--) {\n if (isMask(lmib)) break;\n }\n buffer.splice(rl, lmib + 1 - rl);\n return isComplete(buffer) && actionObj.value === getBuffer().join(\"\");\n\n case \"getemptymask\":\n return getBufferTemplate().join(\"\");\n\n case \"remove\":\n if (el && el.inputmask) {\n $.data(el, \"_inputmask_opts\", null);\n $el = $(el);\n el.inputmask._valueSet(opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(true));\n EventRuler.off(el);\n if (el.inputmask.colorMask) {\n colorMask = el.inputmask.colorMask;\n colorMask.removeChild(el);\n colorMask.parentNode.insertBefore(el, colorMask);\n colorMask.parentNode.removeChild(colorMask);\n }\n var valueProperty;\n if (Object.getOwnPropertyDescriptor && Object.getPrototypeOf) {\n valueProperty = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), \"value\");\n if (valueProperty) {\n if (el.inputmask.__valueGet) {\n Object.defineProperty(el, \"value\", {\n get: el.inputmask.__valueGet,\n set: el.inputmask.__valueSet,\n configurable: true\n });\n }\n }\n } else if (document.__lookupGetter__ && el.__lookupGetter__(\"value\")) {\n if (el.inputmask.__valueGet) {\n el.__defineGetter__(\"value\", el.inputmask.__valueGet);\n el.__defineSetter__(\"value\", el.inputmask.__valueSet);\n }\n }\n el.inputmask = undefined;\n }\n return el;\n break;\n\n case \"getmetadata\":\n if ($.isArray(maskset.metadata)) {\n var maskTarget = getMaskTemplate(true, 0, false).join(\"\");\n $.each(maskset.metadata, function(ndx, mtdt) {\n if (mtdt.mask === maskTarget) {\n maskTarget = mtdt;\n return false;\n }\n });\n return maskTarget;\n }\n return maskset.metadata;\n }\n }\n }\n return Inputmask;\n});","/*!\n* inputmask.extensions.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (typeof define === \"function\" && define.amd) {\n define([ \"./inputmask\" ], factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory(require(\"./inputmask\"));\n } else {\n factory(window.Inputmask);\n }\n})(function(Inputmask) {\n Inputmask.extendDefinitions({\n A: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"&\": {\n validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"#\": {\n validator: \"[0-9A-Fa-f]\",\n casing: \"upper\"\n }\n });\n Inputmask.extendAliases({\n cssunit: {\n regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\n },\n url: {\n regex: \"(https?|ftp)//.*\",\n autoUnmask: false\n },\n ip: {\n mask: \"i[i[i]].i[i[i]].i[i[i]].i[i[i]]\",\n definitions: {\n i: {\n validator: function(chrs, maskset, pos, strict, opts) {\n if (pos - 1 > -1 && maskset.buffer[pos - 1] !== \".\") {\n chrs = maskset.buffer[pos - 1] + chrs;\n if (pos - 2 > -1 && maskset.buffer[pos - 2] !== \".\") {\n chrs = maskset.buffer[pos - 2] + chrs;\n } else chrs = \"0\" + chrs;\n } else chrs = \"00\" + chrs;\n return new RegExp(\"25[0-5]|2[0-4][0-9]|[01][0-9][0-9]\").test(chrs);\n }\n }\n },\n onUnMask: function(maskedValue, unmaskedValue, opts) {\n return maskedValue;\n },\n inputmode: \"numeric\"\n },\n email: {\n mask: \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\",\n greedy: false,\n casing: \"lower\",\n onBeforePaste: function(pastedValue, opts) {\n pastedValue = pastedValue.toLowerCase();\n return pastedValue.replace(\"mailto:\", \"\");\n },\n definitions: {\n \"*\": {\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\n },\n \"-\": {\n validator: \"[0-9A-Za-z-]\"\n }\n },\n onUnMask: function(maskedValue, unmaskedValue, opts) {\n return maskedValue;\n },\n inputmode: \"email\"\n },\n mac: {\n mask: \"##:##:##:##:##:##\"\n },\n vin: {\n mask: \"V{13}9{4}\",\n definitions: {\n V: {\n validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\n casing: \"upper\"\n }\n },\n clearIncomplete: true,\n autoUnmask: true\n }\n });\n return Inputmask;\n});","/*!\n* inputmask.date.extensions.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (typeof define === \"function\" && define.amd) {\n define([ \"./inputmask\" ], factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory(require(\"./inputmask\"));\n } else {\n factory(window.Inputmask);\n }\n})(function(Inputmask) {\n var $ = Inputmask.dependencyLib;\n var formatCode = {\n d: [ \"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate ],\n dd: [ \"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function() {\n return pad(Date.prototype.getDate.call(this), 2);\n } ],\n ddd: [ \"\" ],\n dddd: [ \"\" ],\n m: [ \"[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function() {\n return Date.prototype.getMonth.call(this) + 1;\n } ],\n mm: [ \"0[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function() {\n return pad(Date.prototype.getMonth.call(this) + 1, 2);\n } ],\n mmm: [ \"\" ],\n mmmm: [ \"\" ],\n yy: [ \"[0-9]{2}\", Date.prototype.setFullYear, \"year\", function() {\n return pad(Date.prototype.getFullYear.call(this), 2);\n } ],\n yyyy: [ \"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function() {\n return pad(Date.prototype.getFullYear.call(this), 4);\n } ],\n h: [ \"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n hh: [ \"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function() {\n return pad(Date.prototype.getHours.call(this), 2);\n } ],\n hhh: [ \"[0-9]+\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n H: [ \"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n HH: [ \"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function() {\n return pad(Date.prototype.getHours.call(this), 2);\n } ],\n HHH: [ \"[0-9]+\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n M: [ \"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes ],\n MM: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function() {\n return pad(Date.prototype.getMinutes.call(this), 2);\n } ],\n ss: [ \"[0-5][0-9]\", Date.prototype.setSeconds, \"seconds\", function() {\n return pad(Date.prototype.getSeconds.call(this), 2);\n } ],\n l: [ \"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n return pad(Date.prototype.getMilliseconds.call(this), 3);\n } ],\n L: [ \"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n return pad(Date.prototype.getMilliseconds.call(this), 2);\n } ],\n t: [ \"[ap]\" ],\n tt: [ \"[ap]m\" ],\n T: [ \"[AP]\" ],\n TT: [ \"[AP]M\" ],\n Z: [ \"\" ],\n o: [ \"\" ],\n S: [ \"\" ]\n }, formatAlias = {\n isoDate: \"yyyy-mm-dd\",\n isoTime: \"HH:MM:ss\",\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\n };\n function getTokenizer(opts) {\n if (!opts.tokenizer) {\n var tokens = [];\n for (var ndx in formatCode) {\n if (tokens.indexOf(ndx[0]) === -1) tokens.push(ndx[0]);\n }\n opts.tokenizer = \"(\" + tokens.join(\"+|\") + \")+?|.\";\n opts.tokenizer = new RegExp(opts.tokenizer, \"g\");\n }\n return opts.tokenizer;\n }\n function isValidDate(dateParts, currentResult) {\n return !isFinite(dateParts.rawday) || dateParts.day == \"29\" && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.rawmonth) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day ? currentResult : false;\n }\n function isDateInRange(dateParts, opts) {\n var result = true;\n if (opts.min) {\n if (dateParts[\"rawyear\"]) {\n var rawYear = dateParts[\"rawyear\"].replace(/[^0-9]/g, \"\"), minYear = opts.min.year.substr(0, rawYear.length);\n result = minYear <= rawYear;\n }\n if (dateParts[\"year\"] === dateParts[\"rawyear\"]) {\n if (opts.min.date.getTime() === opts.min.date.getTime()) {\n result = opts.min.date.getTime() <= dateParts.date.getTime();\n }\n }\n }\n if (result && opts.max && opts.max.date.getTime() === opts.max.date.getTime()) {\n result = opts.max.date.getTime() >= dateParts.date.getTime();\n }\n return result;\n }\n function parse(format, dateObjValue, opts, raw) {\n var mask = \"\", match;\n while (match = getTokenizer(opts).exec(format)) {\n if (dateObjValue === undefined) {\n if (formatCode[match[0]]) {\n mask += \"(\" + formatCode[match[0]][0] + \")\";\n } else {\n switch (match[0]) {\n case \"[\":\n mask += \"(\";\n break;\n\n case \"]\":\n mask += \")?\";\n break;\n\n default:\n mask += Inputmask.escapeRegex(match[0]);\n }\n }\n } else {\n if (formatCode[match[0]]) {\n if (raw !== true && formatCode[match[0]][3]) {\n var getFn = formatCode[match[0]][3];\n mask += getFn.call(dateObjValue.date);\n } else if (formatCode[match[0]][2]) mask += dateObjValue[\"raw\" + formatCode[match[0]][2]]; else mask += match[0];\n } else mask += match[0];\n }\n }\n return mask;\n }\n function pad(val, len) {\n val = String(val);\n len = len || 2;\n while (val.length < len) val = \"0\" + val;\n return val;\n }\n function analyseMask(maskString, format, opts) {\n var dateObj = {\n date: new Date(1, 0, 1)\n }, targetProp, mask = maskString, match, dateOperation, targetValidator;\n function extendProperty(value) {\n var correctedValue = value.replace(/[^0-9]/g, \"0\");\n if (correctedValue != value) {\n var enteredPart = value.replace(/[^0-9]/g, \"\"), min = (opts.min && opts.min[targetProp] || value).toString(), max = (opts.max && opts.max[targetProp] || value).toString();\n correctedValue = enteredPart + (enteredPart < min.slice(0, enteredPart.length) ? min.slice(enteredPart.length) : enteredPart > max.slice(0, enteredPart.length) ? max.slice(enteredPart.length) : correctedValue.toString().slice(enteredPart.length));\n }\n return correctedValue;\n }\n function setValue(dateObj, value, opts) {\n dateObj[targetProp] = extendProperty(value);\n dateObj[\"raw\" + targetProp] = value;\n if (dateOperation !== undefined) dateOperation.call(dateObj.date, targetProp == \"month\" ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]);\n }\n if (typeof mask === \"string\") {\n while (match = getTokenizer(opts).exec(format)) {\n var value = mask.slice(0, match[0].length);\n if (formatCode.hasOwnProperty(match[0])) {\n targetValidator = formatCode[match[0]][0];\n targetProp = formatCode[match[0]][2];\n dateOperation = formatCode[match[0]][1];\n setValue(dateObj, value, opts);\n }\n mask = mask.slice(value.length);\n }\n return dateObj;\n } else if (mask && typeof mask === \"object\" && mask.hasOwnProperty(\"date\")) {\n return mask;\n }\n return undefined;\n }\n Inputmask.extendAliases({\n datetime: {\n mask: function(opts) {\n formatCode.S = opts.i18n.ordinalSuffix.join(\"|\");\n opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat;\n opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat;\n opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat;\n opts.placeholder = opts.placeholder !== \"\" ? opts.placeholder : opts.inputFormat.replace(/[\\[\\]]/, \"\");\n opts.regex = parse(opts.inputFormat, undefined, opts);\n return null;\n },\n placeholder: \"\",\n inputFormat: \"isoDateTime\",\n displayFormat: undefined,\n outputFormat: undefined,\n min: null,\n max: null,\n i18n: {\n dayNames: [ \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\" ],\n monthNames: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n ordinalSuffix: [ \"st\", \"nd\", \"rd\", \"th\" ]\n },\n postValidation: function(buffer, pos, currentResult, opts) {\n opts.min = analyseMask(opts.min, opts.inputFormat, opts);\n opts.max = analyseMask(opts.max, opts.inputFormat, opts);\n var result = currentResult, dateParts = analyseMask(buffer.join(\"\"), opts.inputFormat, opts);\n if (result && dateParts.date.getTime() === dateParts.date.getTime()) {\n result = isValidDate(dateParts, result);\n result = result && isDateInRange(dateParts, opts);\n }\n if (pos && result && currentResult.pos !== pos) {\n return {\n buffer: parse(opts.inputFormat, dateParts, opts),\n refreshFromBuffer: {\n start: pos,\n end: currentResult.pos\n }\n };\n }\n return result;\n },\n onKeyDown: function(e, buffer, caretPos, opts) {\n var input = this;\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n var today = new Date(), match, date = \"\";\n while (match = getTokenizer(opts).exec(opts.inputFormat)) {\n if (match[0].charAt(0) === \"d\") {\n date += pad(today.getDate(), match[0].length);\n } else if (match[0].charAt(0) === \"m\") {\n date += pad(today.getMonth() + 1, match[0].length);\n } else if (match[0] === \"yyyy\") {\n date += today.getFullYear().toString();\n } else if (match[0].charAt(0) === \"y\") {\n date += pad(today.getYear(), match[0].length);\n }\n }\n input.inputmask._valueSet(date);\n $(input).trigger(\"setvalue\");\n }\n },\n onUnMask: function(maskedValue, unmaskedValue, opts) {\n return parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts, true);\n },\n casing: function(elem, test, pos, validPositions) {\n if (test.nativeDef.indexOf(\"[ap]\") == 0) return elem.toLowerCase();\n if (test.nativeDef.indexOf(\"[AP]\") == 0) return elem.toUpperCase();\n return elem;\n },\n insertMode: false,\n shiftPositions: false\n }\n });\n return Inputmask;\n});","/*!\n* inputmask.numeric.extensions.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (typeof define === \"function\" && define.amd) {\n define([ \"./inputmask\" ], factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory(require(\"./inputmask\"));\n } else {\n factory(window.Inputmask);\n }\n})(function(Inputmask) {\n var $ = Inputmask.dependencyLib;\n function autoEscape(txt, opts) {\n var escapedTxt = \"\";\n for (var i = 0; i < txt.length; i++) {\n if (Inputmask.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker.start === txt.charAt(i) || opts.optionalmarker.end === txt.charAt(i) || opts.quantifiermarker.start === txt.charAt(i) || opts.quantifiermarker.end === txt.charAt(i) || opts.groupmarker.start === txt.charAt(i) || opts.groupmarker.end === txt.charAt(i) || opts.alternatormarker === txt.charAt(i)) {\n escapedTxt += \"\\\\\" + txt.charAt(i);\n } else escapedTxt += txt.charAt(i);\n }\n return escapedTxt;\n }\n function alignDigits(buffer, digits, opts) {\n if (digits > 0) {\n var radixPosition = $.inArray(opts.radixPoint, buffer);\n if (radixPosition === -1) {\n buffer.push(opts.radixPoint);\n radixPosition = buffer.length - 1;\n }\n for (var i = 1; i <= digits; i++) {\n buffer[radixPosition + i] = buffer[radixPosition + i] || \"0\";\n }\n }\n return buffer;\n }\n Inputmask.extendAliases({\n numeric: {\n mask: function(opts) {\n if (opts.repeat !== 0 && isNaN(opts.integerDigits)) {\n opts.integerDigits = opts.repeat;\n }\n opts.repeat = 0;\n if (opts.groupSeparator === opts.radixPoint && opts.digits && opts.digits !== \"0\") {\n if (opts.radixPoint === \".\") {\n opts.groupSeparator = \",\";\n } else if (opts.radixPoint === \",\") {\n opts.groupSeparator = \".\";\n } else opts.groupSeparator = \"\";\n }\n if (opts.groupSeparator === \" \") {\n opts.skipOptionalPartCharacter = undefined;\n }\n opts.autoGroup = opts.autoGroup && opts.groupSeparator !== \"\";\n if (opts.autoGroup) {\n if (typeof opts.groupSize == \"string\" && isFinite(opts.groupSize)) opts.groupSize = parseInt(opts.groupSize);\n if (isFinite(opts.integerDigits)) {\n var seps = Math.floor(opts.integerDigits / opts.groupSize);\n var mod = opts.integerDigits % opts.groupSize;\n opts.integerDigits = parseInt(opts.integerDigits) + (mod === 0 ? seps - 1 : seps);\n if (opts.integerDigits < 1) {\n opts.integerDigits = \"*\";\n }\n }\n }\n if (opts.placeholder.length > 1) {\n opts.placeholder = opts.placeholder.charAt(0);\n }\n if (opts.positionCaretOnClick === \"radixFocus\" && (opts.placeholder === \"\" && opts.integerOptional === false)) {\n opts.positionCaretOnClick = \"lvp\";\n }\n opts.definitions[\";\"] = opts.definitions[\"~\"];\n opts.definitions[\";\"].definitionSymbol = \"~\";\n if (opts.numericInput === true) {\n opts.positionCaretOnClick = opts.positionCaretOnClick === \"radixFocus\" ? \"lvp\" : opts.positionCaretOnClick;\n opts.digitsOptional = false;\n if (isNaN(opts.digits)) opts.digits = 2;\n opts.decimalProtect = false;\n }\n var mask = \"[+]\";\n mask += autoEscape(opts.prefix, opts);\n if (opts.integerOptional === true) {\n mask += \"~{1,\" + opts.integerDigits + \"}\";\n } else mask += \"~{\" + opts.integerDigits + \"}\";\n if (opts.digits !== undefined) {\n var radixDef = opts.decimalProtect ? \":\" : opts.radixPoint;\n var dq = opts.digits.toString().split(\",\");\n if (isFinite(dq[0]) && dq[1] && isFinite(dq[1])) {\n mask += radixDef + \";{\" + opts.digits + \"}\";\n } else if (isNaN(opts.digits) || parseInt(opts.digits) > 0) {\n if (opts.digitsOptional) {\n mask += \"[\" + radixDef + \";{1,\" + opts.digits + \"}]\";\n } else mask += radixDef + \";{\" + opts.digits + \"}\";\n }\n }\n mask += autoEscape(opts.suffix, opts);\n mask += \"[-]\";\n opts.greedy = false;\n return mask;\n },\n placeholder: \"\",\n greedy: false,\n digits: \"*\",\n digitsOptional: true,\n enforceDigitsOnBlur: false,\n radixPoint: \".\",\n positionCaretOnClick: \"radixFocus\",\n groupSize: 3,\n groupSeparator: \"\",\n autoGroup: false,\n allowMinus: true,\n negationSymbol: {\n front: \"-\",\n back: \"\"\n },\n integerDigits: \"+\",\n integerOptional: true,\n prefix: \"\",\n suffix: \"\",\n rightAlign: true,\n decimalProtect: true,\n min: null,\n max: null,\n step: 1,\n insertMode: true,\n autoUnmask: false,\n unmaskAsNumber: false,\n inputType: \"text\",\n inputmode: \"numeric\",\n preValidation: function(buffer, pos, c, isSelection, opts, maskset) {\n if (c === \"-\" || c === opts.negationSymbol.front) {\n if (opts.allowMinus !== true) return false;\n opts.isNegative = opts.isNegative === undefined ? true : !opts.isNegative;\n if (buffer.join(\"\") === \"\") return true;\n return {\n caret: maskset.validPositions[pos] ? pos : undefined,\n dopost: true\n };\n }\n if (isSelection === false && c === opts.radixPoint && (opts.digits !== undefined && (isNaN(opts.digits) || parseInt(opts.digits) > 0))) {\n var radixPos = $.inArray(opts.radixPoint, buffer);\n if (radixPos !== -1 && maskset.validPositions[radixPos] !== undefined) {\n if (opts.numericInput === true) {\n return pos === radixPos;\n }\n return {\n caret: radixPos + 1\n };\n }\n }\n return true;\n },\n postValidation: function(buffer, pos, currentResult, opts) {\n function buildPostMask(buffer, opts) {\n var postMask = \"\";\n postMask += \"(\" + opts.groupSeparator + \"*{\" + opts.groupSize + \"}){*}\";\n if (opts.radixPoint !== \"\") {\n var radixSplit = buffer.join(\"\").split(opts.radixPoint);\n if (radixSplit[1]) {\n postMask += opts.radixPoint + \"*{\" + radixSplit[1].match(/^\\d*\\??\\d*/)[0].length + \"}\";\n }\n }\n return postMask;\n }\n var suffix = opts.suffix.split(\"\"), prefix = opts.prefix.split(\"\");\n if (currentResult.pos === undefined && currentResult.caret !== undefined && currentResult.dopost !== true) return currentResult;\n var caretPos = currentResult.caret !== undefined ? currentResult.caret : currentResult.pos;\n var maskedValue = buffer.slice();\n if (opts.numericInput) {\n caretPos = maskedValue.length - caretPos - 1;\n maskedValue = maskedValue.reverse();\n }\n var charAtPos = maskedValue[caretPos];\n if (charAtPos === opts.groupSeparator) {\n caretPos += 1;\n charAtPos = maskedValue[caretPos];\n }\n if (caretPos === maskedValue.length - opts.suffix.length - 1 && charAtPos === opts.radixPoint) return currentResult;\n if (charAtPos !== undefined) {\n if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) {\n maskedValue[caretPos] = \"?\";\n if (opts.prefix.length > 0 && caretPos >= (opts.isNegative === false ? 1 : 0) && caretPos < opts.prefix.length - 1 + (opts.isNegative === false ? 1 : 0)) {\n prefix[caretPos - (opts.isNegative === false ? 1 : 0)] = \"?\";\n } else if (opts.suffix.length > 0 && caretPos >= maskedValue.length - opts.suffix.length - (opts.isNegative === false ? 1 : 0)) {\n suffix[caretPos - (maskedValue.length - opts.suffix.length - (opts.isNegative === false ? 1 : 0))] = \"?\";\n }\n }\n }\n prefix = prefix.join(\"\");\n suffix = suffix.join(\"\");\n var processValue = maskedValue.join(\"\").replace(prefix, \"\");\n processValue = processValue.replace(suffix, \"\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\n processValue = processValue.replace(new RegExp(\"[-\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"]\", \"g\"), \"\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\n if (isNaN(opts.placeholder)) {\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.placeholder), \"g\"), \"\");\n }\n if (processValue.length > 1 && processValue.indexOf(opts.radixPoint) !== 1) {\n if (charAtPos === \"0\") {\n processValue = processValue.replace(/^\\?/g, \"\");\n }\n processValue = processValue.replace(/^0/g, \"\");\n }\n if (processValue.charAt(0) === opts.radixPoint && opts.radixPoint !== \"\" && opts.numericInput !== true) {\n processValue = \"0\" + processValue;\n }\n if (processValue !== \"\") {\n processValue = processValue.split(\"\");\n if ((!opts.digitsOptional || opts.enforceDigitsOnBlur && currentResult.event === \"blur\") && isFinite(opts.digits)) {\n var radixPosition = $.inArray(opts.radixPoint, processValue);\n var rpb = $.inArray(opts.radixPoint, maskedValue);\n if (radixPosition === -1) {\n processValue.push(opts.radixPoint);\n radixPosition = processValue.length - 1;\n }\n for (var i = 1; i <= opts.digits; i++) {\n if ((!opts.digitsOptional || opts.enforceDigitsOnBlur && currentResult.event === \"blur\") && (processValue[radixPosition + i] === undefined || processValue[radixPosition + i] === opts.placeholder.charAt(0))) {\n processValue[radixPosition + i] = currentResult.placeholder || opts.placeholder.charAt(0);\n } else if (rpb !== -1 && maskedValue[rpb + i] !== undefined) {\n processValue[radixPosition + i] = processValue[radixPosition + i] || maskedValue[rpb + i];\n }\n }\n }\n if (opts.autoGroup === true && opts.groupSeparator !== \"\" && (charAtPos !== opts.radixPoint || currentResult.pos !== undefined || currentResult.dopost)) {\n var addRadix = processValue[processValue.length - 1] === opts.radixPoint && currentResult.c === opts.radixPoint;\n processValue = Inputmask(buildPostMask(processValue, opts), {\n numericInput: true,\n jitMasking: true,\n definitions: {\n \"*\": {\n validator: \"[0-9?]\",\n cardinality: 1\n }\n }\n }).format(processValue.join(\"\"));\n if (addRadix) processValue += opts.radixPoint;\n if (processValue.charAt(0) === opts.groupSeparator) {\n processValue.substr(1);\n }\n } else processValue = processValue.join(\"\");\n }\n if (opts.isNegative && currentResult.event === \"blur\") {\n opts.isNegative = processValue !== \"0\";\n }\n processValue = prefix + processValue;\n processValue += suffix;\n if (opts.isNegative) {\n processValue = opts.negationSymbol.front + processValue;\n processValue += opts.negationSymbol.back;\n }\n processValue = processValue.split(\"\");\n if (charAtPos !== undefined) {\n if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) {\n caretPos = $.inArray(\"?\", processValue);\n if (caretPos > -1) {\n processValue[caretPos] = charAtPos;\n } else caretPos = currentResult.caret || 0;\n } else if (charAtPos === opts.radixPoint || charAtPos === opts.negationSymbol.front || charAtPos === opts.negationSymbol.back) {\n var newCaretPos = $.inArray(charAtPos, processValue);\n if (newCaretPos !== -1) caretPos = newCaretPos;\n }\n }\n if (opts.numericInput) {\n caretPos = processValue.length - caretPos - 1;\n processValue = processValue.reverse();\n }\n var rslt = {\n caret: (charAtPos === undefined || currentResult.pos !== undefined) && caretPos !== undefined ? caretPos + (opts.numericInput ? -1 : 1) : caretPos,\n buffer: processValue,\n refreshFromBuffer: currentResult.dopost || buffer.join(\"\") !== processValue.join(\"\")\n };\n return rslt.refreshFromBuffer ? rslt : currentResult;\n },\n onBeforeWrite: function(e, buffer, caretPos, opts) {\n function parseMinMaxOptions(opts) {\n if (opts.parseMinMaxOptions === undefined) {\n if (opts.min !== null) {\n opts.min = opts.min.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\n if (opts.radixPoint === \",\") opts.min = opts.min.replace(opts.radixPoint, \".\");\n opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN;\n if (isNaN(opts.min)) opts.min = Number.MIN_VALUE;\n }\n if (opts.max !== null) {\n opts.max = opts.max.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\n if (opts.radixPoint === \",\") opts.max = opts.max.replace(opts.radixPoint, \".\");\n opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN;\n if (isNaN(opts.max)) opts.max = Number.MAX_VALUE;\n }\n opts.parseMinMaxOptions = \"done\";\n }\n }\n if (e) {\n switch (e.type) {\n case \"keydown\":\n return opts.postValidation(buffer, caretPos, {\n caret: caretPos,\n dopost: true\n }, opts);\n\n case \"blur\":\n case \"checkval\":\n var unmasked;\n parseMinMaxOptions(opts);\n if (opts.min !== null || opts.max !== null) {\n unmasked = opts.onUnMask(buffer.join(\"\"), undefined, $.extend({}, opts, {\n unmaskAsNumber: true\n }));\n if (opts.min !== null && unmasked < opts.min) {\n opts.isNegative = opts.min < 0;\n return opts.postValidation(opts.min.toString().replace(\".\", opts.radixPoint).split(\"\"), caretPos, {\n caret: caretPos,\n dopost: true,\n placeholder: \"0\"\n }, opts);\n } else if (opts.max !== null && unmasked > opts.max) {\n opts.isNegative = opts.max < 0;\n return opts.postValidation(opts.max.toString().replace(\".\", opts.radixPoint).split(\"\"), caretPos, {\n caret: caretPos,\n dopost: true,\n placeholder: \"0\"\n }, opts);\n }\n }\n return opts.postValidation(buffer, caretPos, {\n caret: caretPos,\n placeholder: \"0\",\n event: \"blur\"\n }, opts);\n\n case \"_checkval\":\n return {\n caret: caretPos\n };\n\n default:\n break;\n }\n }\n },\n regex: {\n integerPart: function(opts, emptyCheck) {\n return emptyCheck ? new RegExp(\"[\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"+]?\") : new RegExp(\"[\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"+]?\\\\d+\");\n },\n integerNPart: function(opts) {\n return new RegExp(\"[\\\\d\" + Inputmask.escapeRegex(opts.groupSeparator) + Inputmask.escapeRegex(opts.placeholder.charAt(0)) + \"]+\");\n }\n },\n definitions: {\n \"~\": {\n validator: function(chrs, maskset, pos, strict, opts, isSelection) {\n var isValid, l;\n if (chrs === \"k\" || chrs === \"m\") {\n isValid = {\n insert: [],\n c: 0\n };\n for (var i = 0, l = chrs === \"k\" ? 2 : 5; i < l; i++) {\n isValid.insert.push({\n pos: pos + i,\n c: 0\n });\n }\n isValid.pos = pos + l;\n return isValid;\n }\n isValid = strict ? new RegExp(\"[0-9\" + Inputmask.escapeRegex(opts.groupSeparator) + \"]\").test(chrs) : new RegExp(\"[0-9]\").test(chrs);\n if (isValid === true) {\n if (opts.numericInput !== true && maskset.validPositions[pos] !== undefined && maskset.validPositions[pos].match.def === \"~\" && !isSelection) {\n var processValue = maskset.buffer.join(\"\");\n processValue = processValue.replace(new RegExp(\"[-\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"]\", \"g\"), \"\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\n var pvRadixSplit = processValue.split(opts.radixPoint);\n if (pvRadixSplit.length > 1) {\n pvRadixSplit[1] = pvRadixSplit[1].replace(/0/g, opts.placeholder.charAt(0));\n }\n if (pvRadixSplit[0] === \"0\") {\n pvRadixSplit[0] = pvRadixSplit[0].replace(/0/g, opts.placeholder.charAt(0));\n }\n processValue = pvRadixSplit[0] + opts.radixPoint + pvRadixSplit[1] || \"\";\n var bufferTemplate = maskset._buffer.join(\"\");\n if (processValue === opts.radixPoint) {\n processValue = bufferTemplate;\n }\n while (processValue.match(Inputmask.escapeRegex(bufferTemplate) + \"$\") === null) {\n bufferTemplate = bufferTemplate.slice(1);\n }\n processValue = processValue.replace(bufferTemplate, \"\");\n processValue = processValue.split(\"\");\n if (processValue[pos] === undefined) {\n isValid = {\n pos: pos,\n remove: pos\n };\n } else {\n isValid = {\n pos: pos\n };\n }\n }\n } else if (!strict && chrs === opts.radixPoint && maskset.validPositions[pos - 1] === undefined) {\n isValid = {\n insert: {\n pos: pos,\n c: 0\n },\n pos: pos + 1\n };\n }\n return isValid;\n },\n cardinality: 1\n },\n \"+\": {\n validator: function(chrs, maskset, pos, strict, opts) {\n return opts.allowMinus && (chrs === \"-\" || chrs === opts.negationSymbol.front);\n },\n cardinality: 1,\n placeholder: \"\"\n },\n \"-\": {\n validator: function(chrs, maskset, pos, strict, opts) {\n return opts.allowMinus && chrs === opts.negationSymbol.back;\n },\n cardinality: 1,\n placeholder: \"\"\n },\n \":\": {\n validator: function(chrs, maskset, pos, strict, opts) {\n var radix = \"[\" + Inputmask.escapeRegex(opts.radixPoint) + \"]\";\n var isValid = new RegExp(radix).test(chrs);\n if (isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint) {\n isValid = {\n caret: pos + 1\n };\n }\n return isValid;\n },\n cardinality: 1,\n placeholder: function(opts) {\n return opts.radixPoint;\n }\n }\n },\n onUnMask: function(maskedValue, unmaskedValue, opts) {\n if (unmaskedValue === \"\" && opts.nullable === true) {\n return unmaskedValue;\n }\n var processValue = maskedValue.replace(opts.prefix, \"\");\n processValue = processValue.replace(opts.suffix, \"\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\n if (opts.placeholder.charAt(0) !== \"\") {\n processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), \"g\"), \"0\");\n }\n if (opts.unmaskAsNumber) {\n if (opts.radixPoint !== \"\" && processValue.indexOf(opts.radixPoint) !== -1) processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), \".\");\n processValue = processValue.replace(new RegExp(\"^\" + Inputmask.escapeRegex(opts.negationSymbol.front)), \"-\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\n return Number(processValue);\n }\n return processValue;\n },\n isComplete: function(buffer, opts) {\n var maskedValue = (opts.numericInput ? buffer.slice().reverse() : buffer).join(\"\");\n maskedValue = maskedValue.replace(new RegExp(\"^\" + Inputmask.escapeRegex(opts.negationSymbol.front)), \"-\");\n maskedValue = maskedValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\n maskedValue = maskedValue.replace(opts.prefix, \"\");\n maskedValue = maskedValue.replace(opts.suffix, \"\");\n maskedValue = maskedValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\");\n if (opts.radixPoint === \",\") maskedValue = maskedValue.replace(Inputmask.escapeRegex(opts.radixPoint), \".\");\n return isFinite(maskedValue);\n },\n onBeforeMask: function(initialValue, opts) {\n opts.isNegative = undefined;\n var radixPoint = opts.radixPoint || \",\";\n if ((typeof initialValue == \"number\" || opts.inputType === \"number\") && radixPoint !== \"\") {\n initialValue = initialValue.toString().replace(\".\", radixPoint);\n }\n var valueParts = initialValue.split(radixPoint), integerPart = valueParts[0].replace(/[^\\-0-9]/g, \"\"), decimalPart = valueParts.length > 1 ? valueParts[1].replace(/[^0-9]/g, \"\") : \"\";\n initialValue = integerPart + (decimalPart !== \"\" ? radixPoint + decimalPart : decimalPart);\n var digits = 0;\n if (radixPoint !== \"\") {\n digits = decimalPart.length;\n if (decimalPart !== \"\") {\n var digitsFactor = Math.pow(10, digits || 1);\n if (isFinite(opts.digits)) {\n digits = parseInt(opts.digits);\n digitsFactor = Math.pow(10, digits);\n }\n initialValue = initialValue.replace(Inputmask.escapeRegex(radixPoint), \".\");\n if (isFinite(initialValue)) initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor;\n initialValue = initialValue.toString().replace(\".\", radixPoint);\n }\n }\n if (opts.digits === 0 && initialValue.indexOf(Inputmask.escapeRegex(radixPoint)) !== -1) {\n initialValue = initialValue.substring(0, initialValue.indexOf(Inputmask.escapeRegex(radixPoint)));\n }\n return alignDigits(initialValue.toString().split(\"\"), digits, opts).join(\"\");\n },\n onKeyDown: function(e, buffer, caretPos, opts) {\n var $input = $(this);\n if (e.ctrlKey) {\n switch (e.keyCode) {\n case Inputmask.keyCode.UP:\n $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step));\n $input.trigger(\"setvalue\");\n break;\n\n case Inputmask.keyCode.DOWN:\n $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step));\n $input.trigger(\"setvalue\");\n break;\n }\n }\n }\n },\n currency: {\n prefix: \"$ \",\n groupSeparator: \",\",\n alias: \"numeric\",\n placeholder: \"0\",\n autoGroup: true,\n digits: 2,\n digitsOptional: false,\n clearMaskOnLostFocus: false\n },\n decimal: {\n alias: \"numeric\"\n },\n integer: {\n alias: \"numeric\",\n digits: 0,\n radixPoint: \"\"\n },\n percentage: {\n alias: \"numeric\",\n digits: 2,\n digitsOptional: true,\n radixPoint: \".\",\n placeholder: \"0\",\n autoGroup: false,\n min: 0,\n max: 100,\n suffix: \" %\",\n allowMinus: false\n }\n });\n return Inputmask;\n});","require(\"./dist/inputmask/inputmask.extensions\");\r\nrequire(\"./dist/inputmask/inputmask.date.extensions\");\r\nrequire(\"./dist/inputmask/inputmask.numeric.extensions\");\r\n\r\nmodule.exports = require(\"./dist/inputmask/inputmask.js\");\r\n","\r\n\r\n\r\n\r\n","\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","import Cookie from 'js-cookie';\r\n\r\nconst COOKIE_NAME = 'scrollpos';\r\n\r\nexport function initPostbackScrollPosition() {\r\n const scrollPosStr = Cookie.get(COOKIE_NAME);\r\n let scrollPosObj = null;\r\n if (scrollPosStr) {\r\n try {\r\n scrollPosObj = JSON.parse(scrollPosStr);\r\n }\r\n catch (e) {}\r\n }\r\n\r\n // now remove the cookie as we don't need it again\r\n Cookie.remove(COOKIE_NAME);\r\n\r\n // and make sure that the event handler is attached so the cookie will be set on activation\r\n const activators = [...document.querySelectorAll('.js-maintain-scroll')];\r\n activators.forEach(a => {\r\n a.addEventListener('click', onClick);\r\n });\r\n\r\n if (!scrollPosObj || !scrollPosObj.pos || !scrollPosObj.key) {\r\n return;\r\n }\r\n \r\n const selector = `[data-scroll-key=\"${scrollPosObj.key}\"].js-maintain-scroll`;\r\n const activator = document.querySelector(selector);\r\n if (!activator) {\r\n // there is no activator matching the one for which the scroll position was saved. That means we are on a different page and we should not restore the scroll position\r\n return;\r\n }\r\n \r\n // now scroll the page\r\n window.scrollTo(0, scrollPosObj.pos);\r\n}\r\n\r\nfunction onClick(e) {\r\n let pos = window.scrollY;\r\n if (e.target.dataset.scrollTarget) {\r\n const elm = document.getElementById(e.target.dataset.scrollTarget);\r\n if (elm) {\r\n pos += elm.getBoundingClientRect().top;\r\n }\r\n }\r\n const obj = {\r\n key: e.target.dataset.scrollKey,\r\n pos: pos\r\n };\r\n Cookie.set(COOKIE_NAME, JSON.stringify(obj));\r\n}\r\n\r\n\r\n\r\n","let rootElement = null;\r\n\r\nfunction show(element) {\r\n element.classList.remove('js-hide');\r\n}\r\n\r\nfunction hide(element) {\r\n element.classList.add('js-hide');\r\n}\r\n\r\nfunction onChange(element) {\r\n const showClass = element.target.dataset.showClass;\r\n const hideClass = element.target.dataset.hideClass;\r\n const elementsToShow = [...rootElement.querySelectorAll(`.${showClass}`)];\r\n elementsToShow.forEach((elm) => {\r\n\tshow(elm);\r\n });\r\n const elementsToHide = [...rootElement.querySelectorAll(`.${hideClass}`)];\r\n elementsToHide.forEach((elm) => {\r\n\thide(elm);\r\n });\r\n}\r\n\r\nfunction onConsentChange(element) {\r\n const selected = document.querySelector('[name=ConsentChoiceId]:checked');\r\n const accepted = document.getElementById('consent-given');\r\n if (!accepted) {\r\n\treturn;\r\n }\r\n if (selected && selected.value) {\r\n\taccepted.value = 'True';\r\n } else {\r\n\taccepted.value = 'False';\r\n }\r\n}\r\n\r\nfunction resetConsent() {\r\n\tvar choice = document.querySelector('[name=ConsentChoiceId]:checked');\r\n\tif (choice) {\r\n\t\tchoice.checked = false;\r\n\t}\r\n\tvar accepted = document.getElementById('consent-given');\r\n\tif (accepted) {\r\n\t\taccepted.value = 'False'\r\n\t}\r\n}\r\n\r\nexport default function (root) {\r\n\trootElement = root || document.documentElement;\r\n\r\n\tconst userTypeOptions = [...document.querySelectorAll('.usertype-selector')];\r\n\tuserTypeOptions.forEach((userTypeOption) => {\r\n\t\tuserTypeOption.addEventListener('change', resetConsent);\r\n\t})\r\n\r\n\tconst activators = [...root.querySelectorAll('.js-showhide-activator')];\r\n\tactivators.forEach((activator) => {\r\n\t\tactivator.addEventListener('change', onChange);\r\n\t\tif (activator.checked) {\r\n\t\t\tonChange({ target: activator });\r\n\t\t}\r\n\t});\r\n\r\n\t// setup multiple consent handlers\r\n\tconst consentOptions = [...document.querySelectorAll('[name=ConsentChoiceId]')];\r\n\tconsentOptions.forEach((consentOption) => {\r\n\t\tconsentOption.addEventListener('change', onConsentChange);\r\n\t})\r\n\r\n\t// setup the remove from basket click handlers\r\n\tconst buttons = [...document.querySelectorAll('[data-js*=\"removeFromBasket\"]')];\r\n\tbuttons.forEach(button => {\r\n\t\tbutton.addEventListener('click', async (event) => {\r\n\t\t\tconst apiUrl = '/api/global-basket/';\r\n\r\n\t\t\ttry {\r\n\t\t\t\tawait axios.get(`${apiUrl}basket?language=${window.data.Culture}`);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t}\r\n\t\t});\r\n\t})\r\n\r\n}\r\n","let rootElement = null;\r\nlet bodyElement = null;\r\nconst HIDE_CLASS = 'js-hide';\r\nconst IOS_MODAL_MODIFIER = '-ios';\r\nconst IOS_MODAL_BODY_MODIFIER = '-ios-modal';\r\n\r\nconst iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\r\n\r\nfunction show() {\r\n rootElement.classList.remove(HIDE_CLASS);\r\n if (iOS) {\r\n rootElement.classList.add(IOS_MODAL_MODIFIER);\r\n bodyElement.classList.add(IOS_MODAL_BODY_MODIFIER);\r\n }\r\n else {\r\n const dialog = rootElement.querySelector('[data-elm=\"dialog\"]');\r\n const boundingBox = dialog.getBoundingClientRect();\r\n dialog.style['min-width'] = `${boundingBox.width}px`; \r\n }\r\n}\r\n\r\nfunction close(e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n rootElement.classList.add(HIDE_CLASS);\r\n if (iOS) {\r\n rootElement.classList.remove(IOS_MODAL_MODIFIER);\r\n bodyElement.classList.remove(IOS_MODAL_BODY_MODIFIER);\r\n }\r\n}\r\n\r\nexport default function initModalDialog(element) {\r\n rootElement = element;\r\n bodyElement = document.body;\r\n const trigger = rootElement.dataset.trigger;\r\n if (!trigger) {\r\n return;\r\n }\r\n document.addEventListener(trigger, show);\r\n\r\n const closeBtn = rootElement.querySelector('[data-js=\"close\"]')\r\n if (closeBtn) {\r\n closeBtn.addEventListener('click', close);\r\n }\r\n}","const eventNames = [];\r\n\r\nfunction emitEvent(e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\tconst eventName = (typeof e.target.dataset?.event !== 'undefined') ? e.target.dataset?.event : e.target?.parentElement?.dataset?.event;\r\n\tconst eventParameter = (typeof e.target?.dataset?.eventParameter !== 'undefined') ? e.target?.dataset?.eventParameter : e.target?.parentElement?.dataset?.eventParameter\r\n\r\n\tif(eventNames.includes(eventName)) {\r\n\t\tconst event = new CustomEvent(eventName, {\r\n\t\t\tdetail: eventParameter,\r\n\t\t});\r\n\t\tdocument.dispatchEvent(event);\r\n\t}\r\n}\r\n\r\nexport default function initCustomEventEmitter(element) {\r\n\teventNames.push(element.dataset.event);\r\n if (!eventNames.length) {\r\n return;\r\n }\r\n\telement.addEventListener('click', emitEvent);\r\n}\r\n","import events from 'shared/settings/events';\r\nimport { isExternalDomain } from 'shared/services/urlTypeService';\r\n\r\nfunction fireExternalLinksEvent(url) {\r\n\tlet event = new CustomEvent(events.EXTERNAL_LINK_CLICK, { detail: url });\r\n\tdocument.dispatchEvent(event);\r\n}\r\n\r\nexport function isExternalClickableLink(a) {\r\n\treturn a.classList.contains('clickable-link');\r\n}\r\n\r\nexport default function initExternalLinksEvent() {\r\n\tdocument.body.addEventListener('click', (e) => {\r\n\t\tif (!e.target.tagName || !e.target?.closest('a')) return;\r\n\r\n\t\tlet a = e.target.closest('a');\r\n\t\tif (isExternalDomain(a.href)) {\r\n\t\t\tconst externalLinkPopup = document.getElementById('external-link-popup');\r\n\t\t\tif (externalLinkPopup != null && !isExternalClickableLink(a)) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tfireExternalLinksEvent(a.href);\r\n\t\t\t}\r\n\t\t}\r\n\t}, true)\r\n}\r\n","export default class RemoveOutline {\r\n\r\n constructor() {\r\n const _this = this;\r\n document.body.addEventListener(\"mousedown\", (event) => {_this.mouseEvent(event);});\r\n document.body.addEventListener(\"touchstart\", (event) => {_this.mouseEvent(event);});\r\n document.body.addEventListener(\"keydown\", () => { _this.clearOnKeyDown();});\r\n }\r\n\r\n mouseEvent() {\r\n document.body.classList.add(\"remove-outline\");\r\n }\r\n\r\n clearOnKeyDown() {\r\n document.body.classList.remove(\"remove-outline\");\r\n }\r\n}","export default function initHideBodyScrollBar(element) {\r\n\tif (element == null) {\r\n\t\treturn;\r\n\t}\r\n\tconst BREAKPOINT = 768;\r\n\telement.addEventListener('change', () => {\r\n\t\tif (element.checked && window.innerWidth < BREAKPOINT) {\r\n\t\t\tdocument.body.style.overflowY = 'hidden';\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdocument.body.removeAttribute('style');\r\n\t\t}\r\n\t});\r\n\t//in case orientation was changed and we get desktop nav view\r\n\twindow.addEventListener('resize', function () {\r\n\t\tif (window.innerWidth >= BREAKPOINT && document.body.getAttribute('style') != null) {\r\n\t\t\tdocument.body.removeAttribute('style');\r\n\t\t}\r\n\t});\r\n}\r\n","import axios from 'axios';\r\nexport default function initLinkOverride(element) {\r\n\tif (element.dataset.param) {\r\n\t\telement.addEventListener('click', async () => {\r\n\t\t\tawait axios.get(element.dataset.param);\r\n\t\t});\r\n\r\n\t}\r\n}\r\n","function addStyleTag() {\r\n\tconst css = '.embeddedServiceHelpButton, .embeddedServiceSidebar { display: none !important; }';\r\n\r\n\tconst head = document.head || document.getElementsByTagName('head')[0];\r\n\tconst style = document.createElement('style');\r\n\r\n\thead.appendChild(style);\r\n\tstyle.appendChild(document.createTextNode(css));\r\n}\r\n\r\nexport default function initHideChat() {\r\n\tif (document.querySelector(\"[data-checkout-item]\")) {\r\n\t\taddStyleTag();\r\n\t}\r\n}\r\n","export default function initTabbingCarousel(element) {\r\n\r\n\tconst tabs = element.querySelectorAll('[data-tab]');\r\n\tconst content = element.getElementsByClassName('active');\r\n\r\n\tconst toggleContent = function() {\r\n\t\tif (!this.classList.contains(\"active\")) {\r\n\r\n\t\t\tArray.from(content).forEach( item => {\r\n\t\t\t\titem.classList.remove('active');\r\n\t\t\t\titem.setAttribute('aria-hidden', 'true');\r\n\t\t\t});\r\n\r\n\t\t\tthis.classList.add('active');\r\n\r\n\t\t\tlet currentTab = this.getAttribute('data-tab'),\r\n\t\t\t\ttabContent = element.querySelector(`#${currentTab}`);\r\n\r\n\t\t\ttabContent.classList.add('active');\r\n\t\t\ttabContent.removeAttribute('aria-hidden');\r\n\t\t}\r\n\t};\r\n\r\n\tArray.from(tabs).forEach( item => {\r\n\t\titem.addEventListener('click', toggleContent);\r\n\t});\r\n}\r\n","export default function initDownloadPdfUrl(element) {\r\n\tconst language = document.documentElement.getAttribute('data-lang') || document.documentElement.getAttribute('lang') || 'en-US';\r\n\tconst pageId = element.getAttribute([\"data-page-reference\"]);\r\n\r\n\tconst url = `https://${window.location.hostname}/api/healthcheck/GetSummaryPdf/${pageId}/${language}`;\r\n\r\n\tdocument.querySelector('[data-fn=\"initDownloadPdfUrl\"]').setAttribute('href', url);\r\n}\r\n","export default function initMagazineNavigation() {\r\n\tconst windowWidth = window.innerWidth;\r\n\tconst isStickyHeader = !document.querySelector('header').classList.contains('sticky-disabled');\r\n\tconst isMagazineNavigation = !!document.querySelector('[data-magazine-navigation]');\r\n\tconst isMagazineSidebar = !!document.querySelector('[data-magazine-sidebar]');\r\n\tconst isMagazineAnchors = !!document.querySelectorAll('[data-magazine-anchor]').length;\r\n\tconst headerHeight = document.querySelector('header').clientHeight || 105;\r\n\tconst magazineNavigationHeight = document.querySelector('[data-magazine-navigation]').clientHeight;\r\n\r\n\twindow.addEventListener('load', function () {\r\n\t\tsetScrollBarWidth();\r\n\t\tsetSidebarOffset();\r\n\t\tsetNavigationOffset();\r\n\t\tsetAnchorOffset();\r\n\t});\r\n\r\n\twindow.addEventListener('scroll', function () {\r\n\t\tsetScrollBarWidth();\r\n\t});\r\n\r\n\twindow.addEventListener('resize', function () {\r\n\t\tsetSidebarOffset();\r\n\t\tsetNavigationOffset();\r\n\t\tsetAnchorOffset();\r\n\t});\r\n\r\n\tconst setScrollBarWidth = () => {\r\n\t\tlet windowScroll = document.body.scrollTop || document.documentElement.scrollTop;\r\n\t\tlet height = document.documentElement.scrollHeight - document.documentElement.clientHeight;\r\n\t\tlet scrolled = (windowScroll / height) * 100 || 0;\r\n\t\tdocument.querySelector('#progress-bar-dynamic').style.width = scrolled + '%';\r\n\t};\r\n\r\n\tconst setSidebarOffset = () => {\r\n\t\tif (isMagazineNavigation && isMagazineSidebar && isStickyHeader) {\r\n\t\t\tdocument.querySelectorAll('[data-magazine-sidebar]').forEach((element) => {\r\n\t\t\t\telement.setAttribute('style', `top:${magazineNavigationHeight + headerHeight}px;`);\r\n\t\t\t});\r\n\t\t} else if (isMagazineNavigation && isMagazineSidebar && !isStickyHeader) {\r\n\t\t\tdocument.querySelectorAll('[data-magazine-sidebar]').forEach((element) => {\r\n\t\t\t\telement.setAttribute('style', `top:${magazineNavigationHeight}px;`);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst setNavigationOffset = () => {\r\n\t\tif (isMagazineNavigation && isStickyHeader) {\r\n\t\t\tdocument.querySelector('[data-magazine-navigation]').setAttribute('style', `top:${headerHeight - 2}px;`);\r\n\t\t} else if (isMagazineNavigation && !isStickyHeader) {\r\n\t\t\tdocument.querySelector('[data-magazine-navigation]').setAttribute('style', `top:-1px;`);\r\n\t\t}\r\n\t};\r\n\r\n\tconst setAnchorOffset = () => {\r\n\t\tif (isMagazineAnchors && isStickyHeader) {\r\n\t\t\tdocument.querySelectorAll('[data-magazine-anchor]').forEach((element) => {\r\n\t\t\t\telement.setAttribute('style', `scroll-margin-top:${windowWidth < 767 ? magazineNavigationHeight + headerHeight - 24 : magazineNavigationHeight + headerHeight - 64}px;`);\r\n\t\t\t});\r\n\t\t} else if (isMagazineAnchors && !isStickyHeader) {\r\n\t\t\tdocument.querySelectorAll('[data-magazine-anchor]').forEach((element) => {\r\n\t\t\t\telement.setAttribute('style', `scroll-margin-top:${windowWidth < 767 ? magazineNavigationHeight - 24 : magazineNavigationHeight - 64}px;`);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst observerOptions = {\r\n\t\troot: null,\r\n\t\trootMargin: '0px',\r\n\t\tthreshold: 0.5,\r\n\t};\r\n\r\n\tdocument.querySelectorAll('[data-observe-block]').forEach((element) => {\r\n\t\tif (element) {\r\n\t\t\tlet observer = new IntersectionObserver(intersectionCallback, observerOptions);\r\n\t\t\tobserver.observe(element);\r\n\t\t}\r\n\t});\r\n\r\n\tfunction intersectionCallback(entries, observer) {\r\n\t\tconst buttons = document.querySelectorAll('[data-magazine-navigation-button]');\r\n\r\n\t\tentries.forEach(entry => {\r\n\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\tbuttons.forEach(function(button) {\r\n\t\t\t\t\tif (button.getAttribute('href') === `#${entry.target.id}`) {\r\n\t\t\t\t\t\tbutton.setAttribute('style', 'color:#00788A;');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tbuttons.forEach(function(button) {\r\n\t\t\t\t\tif (button.hasAttribute('style')) {\r\n\t\t\t\t\t\tbutton.removeAttribute('style');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import Events from \"shared/settings/events\";\r\n\r\nlet activators;\r\nlet menuHeight;\r\nconst SCROLL_PADDING = 24;\r\n\r\nexport function initStepByStep(root) {\r\n\tconst blockId = root.dataset.param;\r\n\tactivators = root.querySelectorAll('[data-step-by-step-activator]');\r\n\tactivators.forEach(activator => {\r\n\t\tactivator.activationTarget = activator.parentElement.querySelector('[data-step-by-step-content]');\r\n\t\tactivator.addEventListener('click', onActivatorClicked);\r\n\t\tactivator.activationTarget.addEventListener('transitionend', onTransitionEnd);\r\n\t\tactivator.blockId = blockId;\r\n\t});\r\n\r\n\tdocument.addEventListener(Events.VIDEO_PLAYING, (event) => {\r\n\t\tactivators.forEach(activator => {\r\n\t\t\tif (activator.activationTarget.getAttribute('aria-expanded') == 'true') {\r\n\t\t\t\tanimateToClientHeight(activator.activationTarget);\r\n\t\t\t}\r\n\t\t})\r\n\t});\r\n\r\n\tconst menu = document.querySelector('[data-main-navigation]');\r\n\tif (menu) {\r\n\t\tmenuHeight = menu.clientHeight;\r\n\t}\r\n\r\n\tlet observer = new IntersectionObserver(intersectionObserverCallback, {\r\n\t\tthreshold: 0.6,\r\n\t});\r\n\tobserver.observe(root);\r\n}\r\n\r\nexport function intersectionObserverCallback (entries, observer) {\r\n\tentries.forEach(entry => {\r\n\t\tif (entry.isIntersecting) {\r\n\t\t\tentry.target.classList.add('-in-view');\r\n\t\t\tobserver.disconnect();\r\n\t\t}\r\n\t});\r\n};\r\n\r\n\r\nfunction onActivatorClicked(event) {\r\n\tconst target = event.target.tagName == 'BUTTON' ? event.target : event.target.closest('button');\r\n\tactivators.forEach(activator => {\r\n\t\tif (activator.blockId != target.blockId) {\r\n\t\t\t// only manipulate activators and activation targets within the same block as the one in which the button was clicked\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (activator == target) {\r\n\t\t\tactivateContent(activator.activationTarget, activator.dataset.videoId);\r\n\t\t\tactivator.setAttribute('data-active', 'true');\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdeactivateContent(activator.activationTarget, activator.dataset.videoId);\r\n\t\t\tactivator.setAttribute('data-active', 'false');\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction onTransitionEnd(event) {\r\n\tif (event.target.getAttribute('aria-expanded') == 'true') {\r\n\t\tconst clientRect = event.target.parentElement.getBoundingClientRect();\r\n\t\tif (clientRect.top - menuHeight - SCROLL_PADDING < 0) {\r\n\t\t\twindow.scrollBy(0, clientRect.top - menuHeight - SCROLL_PADDING);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction activateContent(activationTarget, videoId) {\r\n\tactivationTarget.setAttribute('aria-expanded', 'true');\r\n\tconst event = new CustomEvent(Events.PLAY, {\r\n\t\tdetail: {\r\n\t\t\tid: videoId,\r\n\t\t},\r\n\t});\r\n\tdocument.dispatchEvent(event);\r\n\tanimateToClientHeight(activationTarget);\r\n}\r\n\r\nfunction deactivateContent(activationTarget, videoId) {\r\n\tactivationTarget.setAttribute('aria-expanded', 'false');\r\n\tconst event = new CustomEvent(Events.PAUSE, {\r\n\t\tdetail: {\r\n\t\t\tid: videoId,\r\n\t\t},\r\n\t});\r\n\tdocument.dispatchEvent(event);\r\n\tanimateToZeroHeight(activationTarget);\r\n}\r\n\r\nfunction animateToClientHeight(activationTarget) {\r\n\tconst content = activationTarget.querySelector('[data-item-content-wrapper]');\r\n\tactivationTarget.style.height = `${content.clientHeight}px`;\r\n}\r\n\r\nfunction animateToZeroHeight(activationTarget) {\r\n\tactivationTarget.style.height = '0';\r\n}\r\n","import initMultisiteBasket from 'shared/vanilla/multisitebasket.js';\r\nimport initModalDialog from 'shared/vanilla/modalDialog.js';\r\nimport initCustomEventEmitter from 'shared/vanilla/customEventEmitter.js';\r\nimport initExternalLinksClickEvent from 'shared/vanilla/externalLinksClickEvent';\r\nimport RemoveOutline from \"shared/vanilla/removeOutline\";\r\nimport initHideBodyScrollBar from 'shared/vanilla/initHideBodyScrollBar';\r\nimport initLinkOverride from 'shared/vanilla/linkOverride';\r\nimport initHideChat from 'shared/vanilla/initHideChat';\r\nimport initTabbingCarousel from 'shared/vanilla/tabbingCarousel';\r\nimport initDownloadPdfUrl from 'shared/vanilla/initDownloadPdfUrl';\r\nimport initMagazineNavigation from 'shared/vanilla/initMagazineNavigation';\r\n\r\nimport { initStepByStep } from './blocks/stepByStep';\r\n\r\nconst functions = {\r\n initMultisiteBasket,\r\n initModalDialog,\r\n\tinitCustomEventEmitter,\r\n\tinitExternalLinksClickEvent,\r\n\tinitHideBodyScrollBar,\r\n\tinitLinkOverride,\r\n\tinitStepByStep,\r\n\tinitTabbingCarousel,\r\n\tinitDownloadPdfUrl,\r\n\tinitMagazineNavigation,\r\n}\r\n\r\nexport default function () {\r\n const initters = [...document.querySelectorAll('[data-fn]')].map((elm) => {\r\n return {\r\n name: elm.dataset.fn,\r\n element: elm\r\n };\r\n });\r\n\r\n initters.forEach((initter) => {\r\n if (functions[initter.name] && typeof functions[initter.name] === 'function') {\r\n functions[initter.name](initter.element);\r\n }\r\n });\r\n\r\n\tconst links = [...document.querySelectorAll('a')];\r\n\tinitExternalLinksClickEvent(links);\r\n\r\n new RemoveOutline();\r\n\tinitHideChat();\r\n}\r\n","import Cookies from 'js-cookie';\r\n\r\nlet bannerHeights = [];\r\nconst banners = document.querySelectorAll('.c-banner--footer-sticky-banner');\r\nconst activeClass = 'initted';\r\nconst bannerDummyClass = 'c-banner--footer-sticky-banner-dummy';\r\nconst closeBannerClass = 'c-banner--footer-sticky-banner-close';\r\nconst ie11BannerClass = 'c-banner--ie11-banner';\r\nlet ie11BannerAllowed = false;\r\nlet totalHeight = 0;\r\nlet dummy;\r\nconst date = new Date();\r\nconst interval = 43200000; // 12 hours in milliseconds are 43200000\r\n\r\nconst detectIE = function detectIE(windowObj) {\r\n\tconst ua = windowObj.navigator.userAgent;\r\n\tconst msie = ua.indexOf('MSIE ');\r\n\tconst trident = ua.indexOf('Trident/');\r\n\tif (msie > 0) { // IE 10 or older => return version number\r\n\t\treturn !!(parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10));\r\n\t}\r\n\tif (trident > 0) { // IE 11 => return version number\r\n\t\tconst rv = ua.indexOf('rv:');\r\n\t\treturn !!(parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10));\r\n\t}\r\n\treturn false;\r\n};\r\n\r\nconst cleanBannerHeights = function cleanBannerHeights() {\r\n\tieNotification.bannerHeights = [];\r\n};\r\n\r\nconst setBannerHeights = function setBannerHeights() {\r\n\tieNotification.totalHeight = 0;\r\n\tieNotification.banners.forEach(banner => {\r\n\t\tconst bannerHeight = banner.getBoundingClientRect().height;\r\n\t\tieNotification.bannerHeights.push(bannerHeight);\r\n\t\tieNotification.totalHeight += bannerHeight;\r\n\t});\r\n\tieNotification.totalHeight = ieNotification.totalHeight === 0 ? ieNotification.totalHeight : ieNotification.totalHeight - 1;\r\n};\r\n\r\nconst setBannerPositions = function setBannerPositions() {\r\n\tieNotification.banners.forEach((banner, i) => {\r\n\t\tconst offset = ieNotification.bannerHeights.slice(0, i).reduce((acc, val) => acc + val, 0);\r\n\t\tbanner.style.bottom = `${offset}px`;\r\n\t});\r\n};\r\n\r\nconst setBanners = function setBanners() {\r\n\tieNotification.cleanBannerHeights();\r\n\tieNotification.setBannerHeights();\r\n\tieNotification.setBannerPositions();\r\n\tif (ieNotification.dummy) {\r\n\t\tieNotification.dummy.style.height = `${ieNotification.totalHeight}px`;\r\n\t}\r\n};\r\n\r\nconst handleClick = function handleClick(event) {\r\n\tif (event.target.classList[0] === ieNotification.closeBannerClass) {\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\r\n\t\tconst node = event.target.parentNode.parentNode;\r\n\t\tconst isIe11class = ([...event.target.parentNode.classList]).some(item => item === ieNotification.ie11BannerClass);\r\n\t\tif (node.parentNode) {\r\n\t\t\tnode.parentNode.removeChild(node);\r\n\t\t}\r\n\t\tieNotification.setBanners();\r\n\r\n\t\tif (isIe11class) {\r\n\t\t\tCookies.set(ieNotification.ie11BannerClass, (new Date()).getTime());\r\n\t\t\tsessionStorage.setItem(ieNotification.ie11BannerClass, true);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst getAccess = function getAccess() {\r\n\tconst sessionDate = ieNotification.date.getTime();\r\n\tconst cookieValue = Number(Cookies.get(ieNotification.ie11BannerClass)) || 0;\r\n\tconst cookieAllow = cookieValue + ieNotification.interval < sessionDate;\r\n\tconst sessionHasStarted = sessionStorage.getItem(ieNotification.ie11BannerClass) === 'true';\r\n\tieNotification.ie11BannerAllowed = cookieAllow && !sessionHasStarted;\r\n\treturn ieNotification.detectIE(window) && ieNotification.ie11BannerAllowed;\r\n};\r\n\r\nconst init = function init() {\r\n\tif (ieNotification.getAccess()) {\r\n\t\tieNotification.dummy = document.querySelector(`.${ieNotification.bannerDummyClass}`);\r\n\t\tif (!ieNotification.dummy) {\r\n\t\t\tieNotification.dummy = document.createElement('div');\r\n\t\t\tieNotification.dummy.classList.add(`.${ieNotification.bannerDummyClass}`);\r\n\t\t\tdocument.body.appendChild(ieNotification.dummy);\r\n\t\t}\r\n\r\n\t\tieNotification.cleanBannerHeights();\r\n\t\tieNotification.banners.forEach(banner => {\r\n\t\t\tbanner.classList.add(ieNotification.activeClass);\r\n\t\t});\r\n\t\tieNotification.setBannerHeights();\r\n\t\tieNotification.setBannerPositions();\r\n\t\tif (ieNotification.dummy) {\r\n\t\t\tieNotification.dummy.style.height = `${ieNotification.totalHeight}px`;\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('resize', function (event) {\r\n\t\t\tieNotification.setBanners();\r\n\t\t});\r\n\r\n\t\twindow.addEventListener('click', function (event) {\r\n\t\t\tieNotification.handleClick(event);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nconst ieNotification = {\r\n\tbanners,\r\n\tactiveClass,\r\n\tbannerHeights,\r\n\tbannerDummyClass,\r\n\tcloseBannerClass,\r\n\tie11BannerClass,\r\n\tie11BannerAllowed,\r\n\ttotalHeight,\r\n\tdummy,\r\n\tdate,\r\n\tinterval,\r\n\tdetectIE,\r\n\tcleanBannerHeights,\r\n\tsetBannerHeights,\r\n\tsetBannerPositions,\r\n\tsetBanners,\r\n\tinit,\r\n\tgetAccess,\r\n\thandleClick\r\n};\r\n\r\nexport default ieNotification;\r\n","export default function initHeylo() {\r\n const form = document.querySelector('.ch__form');\r\n const fieldNames = ['no', 'cd', 'accd', 'acc'];\r\n\r\n if (form) {\r\n if (window.location.search.length > 4) {\r\n fieldNames.forEach(el => {\r\n const value = getQueryVar(el);\r\n if (value) {\r\n const element = form.querySelector(`[name=\"${el}\"]`);\r\n if (!element) {\r\n return\r\n }\r\n if (element.type == 'checkbox' && value == 'true') {\r\n element.click();\r\n } else { \r\n form.querySelector(`[name=\"${el}\"]`).value = value;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction getQueryVar(variable) {\r\n const query = window.location.search.substring(1);\r\n const vars = query.split('&');\r\n let toReturn = null;\r\n \r\n vars.forEach((el, i) => {\r\n const pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n toReturn = decodeURIComponent(pair[1]);\r\n }\r\n });\r\n return toReturn;\r\n}","\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","import axios from \"axios\";\r\nimport { initGlobalAxiosSettings } from \"./initGlobalAxiosSettings\";\r\n\r\nexport function initGlobalAxios() {\r\n\tinitGlobalAxiosSettings(axios);\r\n}\r\n","import(/* webpackChunkName: \"nav\" */ \"shared/vanilla/nav.js\");\r\nimport { plugin, defaultConfig } from \"@formkit/vue\";\r\nimport { storageFactory } from 'shared/tools/localStorageFactory';\r\n/* Design system icons */\r\nimport { iconCheckmark } from \"@coloplast/design-system/dist/exports/icons\";\r\n/* Design system styles - These could be imported via global script, component script, or at a global level */\r\nimport \"@coloplast/design-system/dist/components/formkit/formkit.css\";\r\n\r\nimport 'shared/vanilla/console';\r\n\r\n\r\nimport { createApp, defineAsyncComponent } from 'vue';\r\n\r\nimport 'lazysizes';\r\nimport 'lazysizes/plugins/unveilhooks/ls.unveilhooks';\r\n\r\nimport initNav from \"shared/vanilla/nav\";\r\nimport { createEventBus } from 'shared/tools/eventBus';\r\n// replacement for the $eventBus\r\nconst eventBus = createEventBus();\r\n\r\ninitNav();\r\n\r\nimport GlobalSettings from 'multisite/components/globalSettings.vue';\r\nimport MiniBasketCount from 'shared/components/product/miniBasketCount.vue';\r\nimport SampleButton from 'shared/components/product/sampleButton.vue';\r\nimport ExternalLinksPopup from 'shared/components/externalLinksPopup.vue';\r\nimport ModalDialog from 'shared/components/modalDialog.vue';\r\nimport BasketNavTracker from 'shared/components/trackers/basketNavTracker.vue';\r\nimport FormPostTracker from 'shared/components/trackers/formPostTracker.vue';\r\nimport Spinner from 'shared/components/spinner.vue';\r\nimport GlobalSpinner from 'shared/components/globalSpinner.vue';\r\nimport PhoneField from 'shared/components/phoneField.vue';\r\nimport Breadcrumb from 'shared/components/BreadcrumbElements/Breadcrumb.vue';\r\nimport LoginExpiredModal from 'shared/components/loginExpiredModal/loginExpiredModal.vue';\r\n\r\nimport LoginTracker from 'shared/components/trackers/loginTracker.vue';\r\nimport QuickSampleTracker from 'shared/components/trackers/quickSampleTracker.vue';\r\n\r\n// // Starship - Basket\r\nimport FlyOutBasketActivator from 'shared/components/basket/flyOutBasketActivator.vue';\r\n\r\nimport store from 'shared/store';\r\nimport { initPostbackScrollPosition } from 'shared/tools/postbackscrollpos.js';\r\nimport boot from 'shared/vanilla/boot.js';\r\nimport ieNotification from 'shared/tools/ieNotification.js';\r\nimport initHeylo from 'shared/vanilla/initHeylo.js';\r\nimport dateTime from \"shared/components/dateTime.vue\";\r\n\r\n// above the fold imports\r\nimport ImageGallerySkeleton from 'shared/components/product/skeletons/imageGallerySkeleton.vue';\r\n\r\nimport { initFormKitSchema } from 'shared/utils/initFormKitSchema';\r\nimport { initGlobalAxios } from \"shared/tools/initGlobalAxios\";\r\n\r\nimport './main.scss';\r\n\r\nexport function initSkeleton() {\r\n\tconst imageGallerySkeleton = document.querySelectorAll('[data-image-gallery-skeleton]');\r\n\tif (imageGallerySkeleton) {\r\n\t\timageGallerySkeleton.forEach(e => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'image gallery skeleton',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('image-gallery-skeleton', ImageGallerySkeleton);\r\n\t\t\tapp.mount(e);\r\n\t\t});\r\n\t}\r\n}\r\ninitSkeleton();\r\n\r\nwindow.onpageshow = function(event) {\r\n if (event.persisted) {\r\n window.location.reload()\r\n }\r\n};\r\n\r\nfunction initGlobalSettingsApp() {\r\n\tconst globalSettingsContainer = document.getElementById('global-settings-container');\r\n\tif (globalSettingsContainer) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'GlobalSettingsApp',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('global-settings', GlobalSettings);\r\n\t\tapp.mount(globalSettingsContainer);\r\n\t}\r\n}\r\n\r\nexport function initVueApps() {\r\n\tconst menuSampleContainer = document.getElementById('menu-sample-btn');\r\n\tif (menuSampleContainer) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'menu sampler',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('sample-button', SampleButton);\r\n\t\tapp.mount(menuSampleContainer);\r\n\t}\r\n\r\n\tconst productWrapper = document.getElementById('product-wrapper');\r\n\tif (productWrapper) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'product list'\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('product-wrapper', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"product-list\" */ 'shared/components/product/productList.vue')\r\n\t\t));\r\n\t\tconst productFinderMount = document.querySelector('#product-finder[data-standalone]');\r\n\t\tif (productFinderMount) {\r\n\t\t\tapp.component('product-finder', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"product-finder\" */ 'shared/components/product/productFinder.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tapp.mount(productWrapper);\r\n\t}\r\n\r\n\tconst hcpProductWrapper = document.getElementById('hcp-product-wrapper');\r\n\tif (hcpProductWrapper) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'hcp product list'\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('hcp-product-wrapper', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"hcp-product-list\" */ 'shared/components/product/hcpProduct/HcpProductList.vue')\r\n\t\t));\r\n\t\tapp.mount(hcpProductWrapper);\r\n\t}\r\n\r\n\tconst miniBasketMount = document.getElementById('mini-basket');\r\n\tif (miniBasketMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'mini basket',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.config.globalProperties.$eventBus = eventBus;\r\n\t\tapp.component('mini-basket', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"mini-basket\" */ 'shared/components/product/miniBasket.vue')\r\n\t\t));\r\n\t\tapp.mount(miniBasketMount);\r\n\t}\r\n\r\n\tconst dateTimes = document.querySelectorAll('.date-time');\r\n\tif (dateTimes) {\r\n\t\tdateTimes.forEach(dateTimeEl => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'dateTime',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('date-time', dateTime);\r\n\t\t\tapp.mount(dateTimeEl);\r\n\t\t});\r\n\t}\r\n\r\n\tconst imageGalleryMount = document.querySelectorAll('[data-image-gallery]');\r\n\tif (imageGalleryMount) {\r\n\t\timageGalleryMount.forEach(e => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'image gallery',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('image-gallery', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"multisite-image-gallery\" */ 'shared/components/product/imageGallery.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(e);\r\n\t\t});\r\n\t}\r\n\r\n\tconst addToBasketMount = document.getElementById('add-to-basket');\r\n\tif (addToBasketMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'AddToBasketApp',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.config.globalProperties.$eventBus = eventBus;\r\n\t\tinitFormKitSchema(app);\r\n\t\tapp.component('variant-selector', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"variant-selector\" */ 'shared/components/product/variantSelector.vue')\r\n\t\t));\r\n\t\tapp.component('sample-consent-modal', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"sample-consent-modal\" */ 'shared/components/product/sampleConsentModal.vue')\r\n\t\t));\r\n\t\tapp.component('variant-add-to-basket', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"variant-add-to-basket\" */ 'shared/components/product/variantAddToBasket.vue')\r\n\t\t));\r\n\t\tapp.component('variant-datasheet', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"variant-datasheet\" */ 'shared/components/product/variantDatasheet.vue')\r\n\t\t));\r\n\t\tapp.component('variant-hcp-datasheet', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"variant-hcp/datasheet\" */ 'shared/components/product/hcpProduct/variantHcpDatasheet.vue')\r\n\t\t));\r\n\t\tapp.component('read-only-description', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"variant-datasheet\" */ 'shared/components/product/detailViewComponents/readOnlyDescription.vue')\r\n\t\t));\r\n\t\tapp.component('add-sample-to-basket', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"add-sample-to-basket\" */ 'shared/components/product/addSampleToBasket.vue')\r\n\t\t));\r\n\t\tapp.component('hcp-popup', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"hcp-popup\" */ 'shared/components/product/hcpPopup.vue')\r\n\t\t));\r\n\t\tapp.component('add-to-basket-legacy', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"add-to-basket-legacy\" */ 'shared/components/product/addToBasket.vue')\r\n\t\t));\r\n\t\tapp.component('checkout-modal-login', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"checkout-modal-login\" */ 'multisite/components/checkout/checkoutModalLogin.vue')\r\n\t\t));\r\n\r\n\t\tapp.mount(addToBasketMount);\r\n\t}\r\n\r\n\tconst productDescriptionMounts = [...document.querySelectorAll('[data-product-description]')];\r\n\tproductDescriptionMounts.forEach(productDescriptionMount => {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'product description',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('line-clamp', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"line-clamp\" */ 'shared/components/lineClamp.vue')\r\n\t\t));\r\n\t\tapp.mount(productDescriptionMount);\r\n\t});\r\n\r\n\tconst hcpModalDialog = document.getElementById('hcp-modal-dialog');\r\n\tif (hcpModalDialog) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'hcp modal dialog',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('hcp-modal-dialog', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"hcp-modal-dialog\" */ 'shared/components/HcpProfileBlocks/hcpModalDialog.vue')\r\n\t\t));\r\n\t\tapp.mount(hcpModalDialog);\r\n\t}\r\n\r\n\tconst hcpMainProfilePageMount = document.getElementById('hcp-main-profile-page');\r\n\tif (hcpMainProfilePageMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'new hcp profile page',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('profile-nav', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/HcpProfilePage/profileNav.vue')\r\n\t\t));\r\n\t\tconst consumerShortcutsContainers = document.querySelectorAll('[data-shortcut-container]');\r\n\t\tif (consumerShortcutsContainers) {\r\n\t\t\tapp.component('consumer-shortcut-container', defineAsyncComponent(\r\n\t\t\t\t() => import('multisite/components/myAccount/blocks/consumerShortcutContainer.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tconst coursesBlock = document.querySelectorAll('[data-courses-block]');\r\n\t\tif (coursesBlock) {\r\n\t\t\tapp.component('hcp-certificates-block', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/HcpProfilePage/hcpСertificatesBlock.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tconst bookmarksBlock = document.querySelectorAll('[data-bookmarks-block]');\r\n\t\tif (bookmarksBlock) {\r\n\t\t\tapp.component('hcp-bookmarks-block', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/HcpProfilePage/HcpBookmarksBlock.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tif (document.getElementById('hcp-current-order')) {\r\n\t\t\tapp.component('consumer-current-order', defineAsyncComponent(\r\n\t\t\t\t() => import('multisite/components/myAccount/blocks/consumerCurrentOrder.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tif (document.getElementById('hcp-order-history-page')) {\r\n\t\t\tapp.component('consumer-order-history-page', defineAsyncComponent(\r\n\t\t\t\t() => import('multisite/components/myAccount/pages/consumerOrderHistoryPage.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tif (document.getElementById('hcp-personal-info')) {\r\n\t\t\tapp.component('hcp-personal-info', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/HcpProfilePage/Pages/hcpPersonalInformation.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tif (document.getElementById('hcp-elearning-access')) {\r\n\t\t\tapp.component('hcp-elearning-access', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/HcpProfilePage/Pages/hcpProfileElearningAccess.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tif (document.getElementById('hcp-profile-notifications')) {\r\n\t\t\tapp.component('hcp-profile-notifications', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/HcpProfilePage/Pages/hcpProfileNotifications.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tif (document.getElementById('hcp-profile-elearningcode')) {\r\n\t\t\tapp.component('hcp-profile-elearningcode', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/HcpProfilePage/Pages/hcpProfileElearningCode.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tif (document.getElementById('customized-experience-alert')) {\r\n\t\t\tapp.component('customized-experience-alert', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/HcpProfileBlocks/CustomizedExperienceAlert.vue')\r\n\t\t\t));\r\n\t\t}\r\n\t\tapp.mount(hcpMainProfilePageMount);\r\n\t}\r\n\r\n\tconst marketingPermissionsReminderMounts = document.querySelectorAll('.marketing-permission-reminder-block');\r\n\tif (marketingPermissionsReminderMounts.length) {\r\n\t\tmarketingPermissionsReminderMounts.forEach(marketingPermissionsReminderEl => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'marketing permission reminder block',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('marketing-permission-reminder-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"marketing-permission-reminder-block\" */ 'shared/components/HcpProfileBlocks/marketingPermissionReminderBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(marketingPermissionsReminderEl);\r\n\t\t});\r\n\t}\r\n\r\n\tconst actionButtonWithCtas = document.querySelectorAll('.action-button-with-cta');\r\n\tif (actionButtonWithCtas) {\r\n\t\tactionButtonWithCtas.forEach(actionButtonWithCtaEl => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'action button with cta',\r\n\t\t\t});\r\n\t\t\tapp.component('action-button-with-cta', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"action-button-with-cta\" */ 'shared/components/actionButtonWithCTA/ActionButtonWithCTA.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(actionButtonWithCtaEl);\r\n\t\t});\r\n\t}\r\n\r\n\tconst WhatNextMount = document.getElementById('what-next-block');\r\n\tif (WhatNextMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'what next block',\r\n\t\t});\r\n\t\tapp.component('what-next-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"what-next-block\" */ 'shared/components/whatNextBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(WhatNextMount);\r\n\t}\r\n\r\n\tconst setPasswordMount = document.getElementById('set-password-block');\r\n\tif (setPasswordMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'set password block',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.config.globalProperties.$eventBus = eventBus;\r\n\t\tapp.component('set-password-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"set-password-block\" */ 'shared/components/HcpProfileBlocks/setPasswordBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(setPasswordMount);\r\n\t}\r\n\r\n\tconst renewActivationLinkMount = document.getElementById('renew-activation-link-block');\r\n\tif (renewActivationLinkMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'renew activation link block',\r\n\t\t})\r\n\t\tapp.use(store);\r\n\t\tapp.component('renew-activation-link-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"renew-activation-link-block\" */ 'shared/components/HcpProfileBlocks/renewActivationLinkBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(renewActivationLinkMount);\r\n\t}\r\n\r\n\tconst renewActivationLinkSuccessMount = document.getElementById('renew-activation-link-success-block');\r\n\tif (renewActivationLinkSuccessMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'renew activation link success block',\r\n\t\t})\r\n\t\tapp.use(store);\r\n\t\tapp.component('renew-activation-link-success-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"renew-activation-link-success-block\" */ 'shared/components/HcpProfileBlocks/renewActivationLinkSuccessBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(renewActivationLinkSuccessMount);\r\n\t}\r\n\r\n\tconst HCPSignUpBlockMount = document.getElementById('hcp-signup-block');\r\n\tif (HCPSignUpBlockMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'hcp signup block',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.config.globalProperties.$eventBus = eventBus;\r\n\t\tapp.component('hcp-signup-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"hcp-signup-block\" */ 'shared/components/HcpProfileBlocks/hcpSignUpBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(HCPSignUpBlockMount);\r\n\t}\r\n\r\n\tconst HCPLoginBlockMount = document.querySelectorAll('.hcp-login-block');\r\n\tif (HCPLoginBlockMount) {\r\n\t\tHCPLoginBlockMount.forEach(HCPLoginBlockMountEl => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'hcp login block',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('hcp-login-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"hcp-login-block\" */ 'shared/components/HcpProfileBlocks/hcpLoginBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(HCPLoginBlockMountEl);\r\n\t\t});\r\n\t}\r\n\r\n\tconst HCPCompleteSignUpPageMount = document.getElementById('hcp-complete-signup-page');\r\n\tif (HCPCompleteSignUpPageMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'hcp complete sign up page mount',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('hcp-complete-signup-page', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"hcp-complete-signup-page\" */ 'shared/components/HcpProfileBlocks/hcpCompleteSignUpPage.vue')\r\n\t\t));\r\n\t\tapp.mount(HCPCompleteSignUpPageMount);\r\n\t}\r\n\r\n\tconst HCPAccountSubscriptionsBlockMountArray = [...document.querySelectorAll('.hcp-account-subscription-block')];\r\n\tif (HCPAccountSubscriptionsBlockMountArray.length) {\r\n\t\tHCPAccountSubscriptionsBlockMountArray.forEach((subscription) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'hcp account subscription block',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('hcp-account-subscription-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"hcp-account-subscription-block\" */ 'shared/components/HcpProfilePage/hcpAccountSubscriptionsBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(subscription);\r\n\t\t});\r\n\t}\r\n\r\n\tconst coursesBlockMount = document.getElementById('courses-block');\r\n\tif (coursesBlockMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: ' elearning courses block',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('elearning-courses-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"elearning-courses-block\" */ 'shared/components/ElearningBlock/coursesBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(coursesBlockMount)\r\n\t}\r\n\r\n\tconst videoPosterMountArray = [...document.querySelectorAll('[data-video-poster]')];\r\n\tif (videoPosterMountArray.length) {\r\n\t\tvideoPosterMountArray.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'video poster',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('video-poster', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"video-poster\" */ 'shared/components/VideoElements/videoPoster.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst miniBasketCountMounts = document.querySelectorAll(\".c-nav-basket\");\r\n\tminiBasketCountMounts.forEach(miniBasketCountMount => {\r\n\t\tif (miniBasketCountMount) {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'mini basket'\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.config.globalProperties.$eventBus = eventBus;\r\n\t\t\tapp.component('fly-out-basket-activator', FlyOutBasketActivator);\r\n\t\t\tapp.component('mini-basket-count', MiniBasketCount);\r\n\t\t\tapp.mount(miniBasketCountMount);\r\n\t\t}\r\n\t});\r\n\r\n\tconst globalUtilityMount = document.getElementById('global-utility-mount');\r\n\tif (globalUtilityMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'global utility'\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.use(plugin, defaultConfig({\r\n\t\t\ticons: {\r\n\t\t\t\tcheckboxDecorator: iconCheckmark,\r\n\t\t\t},\r\n\t\t}));\r\n\t\tapp.component('external-links-popup', ExternalLinksPopup);\r\n\t\tapp.component('modal-dialog', ModalDialog);\r\n\t\tapp.component('basket-nav-tracker', BasketNavTracker);\r\n\t\tapp.component('form-post-tracker', FormPostTracker);\r\n\t\tapp.component('login-tracker', LoginTracker);\r\n\t\tapp.component('quick-sample-tracker', QuickSampleTracker);\r\n\t\tapp.component('spinner', Spinner);\r\n\t\tapp.component('phone-field', PhoneField);\r\n\t\tapp.component('global-spinner', GlobalSpinner);\r\n\t\tapp.component('login-expired-modal', LoginExpiredModal);\r\n\t\tapp.component('navigate-to-gated-sub-site-modal', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/navigateToGatedSubSiteModal/navigateToGatedSubSiteModal.vue')\r\n\t\t));\r\n\t\tapp.mount(globalUtilityMount);\r\n\t}\r\n\r\n\tconst basketFormMount = document.getElementById('basket-form');\r\n\tif (basketFormMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'sample checkout form',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('phone-field', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/phoneField.vue')\r\n\t\t));\r\n\t\tapp.component('country-selector-expando', defineAsyncComponent(\r\n\t\t\t() => import('multisite/components/countrySelectorExpando.vue')\r\n\t\t))\r\n\t\tapp.mount(basketFormMount);\r\n\t}\r\n\r\n\tconst basketInteractionTrackerMount = document.getElementById('basket-interaction-tracker-mount');\r\n\tif (basketInteractionTrackerMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'basket interaction tracker',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('basket-interaction-tracker', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/trackers/basketInteractionTracker.vue')\r\n\t\t));\r\n\t\tapp.mount(basketInteractionTrackerMount);\r\n\t}\r\n\r\n\tconst sampleFormProductsMount = document.getElementById('sample-form-products');\r\n\tif (sampleFormProductsMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'sample from products',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('sample-form-products', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"sample-form-products\" */ 'shared/components/sampleFormProducts.vue')\r\n\t\t));\r\n\t\tapp.component('remove-from-cart-tracker', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/trackers/removeFromCartTracker.vue')\r\n\t\t));\r\n\t\tapp.mount(sampleFormProductsMount)\r\n\t}\r\n\r\n\tconst sampleProductFormMountArray = [...document.querySelectorAll('.js-order-sample-block')];\r\n\tif (sampleProductFormMountArray.length) {\r\n\t\tsampleProductFormMountArray.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'sample product form',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('sample-product-form', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"sample-product-form\" */ 'shared/components/sampleProductForm.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst consumerSignupModalMount = document.getElementById('consumer-signup-modal-mount');\r\n\tif (consumerSignupModalMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'consumer sign up modal',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('consumer-signup-modal', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"consumer-signup-modal\" */ 'shared/components/consumerSignup/consumerSignupModal.vue')\r\n\t\t));\r\n\t\tapp.mount(consumerSignupModalMount);\r\n\t}\r\n\r\n\tconst consumerSignupInfoModalMount = document.getElementById('info-message-modal-mount');\r\n\tif (consumerSignupInfoModalMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'info message modal',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('info-message-modal', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"info-message-modal\" */ 'shared/components/infoMessageModal.vue')\r\n\t\t));\r\n\t\tapp.mount(consumerSignupInfoModalMount);\r\n\t}\r\n\r\n\tconst globalSearchNav = document.getElementById('global-search-nav');\r\n\tif (globalSearchNav) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'global search nav',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('global-search-nav', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"global-search-nav\" */ 'shared/components/globalSearch/globalSearchNav.vue')\r\n\t\t));\r\n\t\tapp.mount(globalSearchNav);\r\n\t}\r\n\r\n\tconst globalSearchPopup = document.getElementById('global-search-popup');\r\n\tif (globalSearchPopup) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'global search popup',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\r\n\t\tapp.component('global-search-popup', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"global-search-popup\" */ 'shared/components/globalSearch/globalSearchPopup.vue')\r\n\t\t));\r\n\t\tapp.mount(globalSearchPopup);\r\n\t}\r\n\r\n\tconst globalSearchPage = document.getElementById('global-search-page');\r\n\tif (globalSearchPage) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'global search page',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('global-search-page', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"global-search-page\" */ 'shared/components/globalSearch/globalSearchPage.vue')\r\n\t\t));\r\n\t\tapp.mount(globalSearchPage);\r\n\t}\r\n\r\n\tconst globalSearchArticlesResultPage = document.getElementById('global-search-article-page');\r\n\tif (globalSearchArticlesResultPage) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'global search article page',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('global-search-article-page', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"global-search-article-page\" */ 'shared/components/globalSearch/globalSearchArticlesResultPage.vue')\r\n\t\t));\r\n\t\tapp.mount(globalSearchArticlesResultPage);\r\n\t}\r\n\r\n\tconst globalSearchProductsResultPage = document.getElementById('global-search-product-page');\r\n\tif (globalSearchProductsResultPage) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'global search product page',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('global-search-product-page', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"global-search-product-page\" */ 'shared/components/globalSearch/globalSearchProductsResultPage.vue')\r\n\t\t));\r\n\t\tapp.mount(globalSearchProductsResultPage);\r\n\t}\r\n\r\n\tconst hcpMedicalSpecialityGatePage = document.getElementById('speciality-gate-page');\r\n\tif (hcpMedicalSpecialityGatePage) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'medical speciality gate page',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('medical-speciality-gate-page', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/HcpMedicalSpecialityGatePage.vue')\r\n\t\t));\r\n\t\tapp.mount(hcpMedicalSpecialityGatePage);\r\n\t}\r\n\r\n\tconst contentLibrary = document.getElementById('content-library');\r\n\tif (contentLibrary) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'content library',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('content-library', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"content-library\" */ 'shared/components/contentLibrary/contentLibrary.vue')\r\n\t\t));\r\n\t\tapp.mount(contentLibrary);\r\n\t}\r\n\r\n\tconst carouselLibraries = document.querySelectorAll('.carousel-library');\r\n\tif (carouselLibraries) {\r\n\t\tcarouselLibraries.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'carousel libraries'\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('carousel-library', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"carousel-library\" */ 'shared/components/contentLibrary/carouselLibraryBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t})\r\n\t}\r\n\r\n\tconst multiLevelMenu = document.getElementById('multi-level-menu');\r\n\tif (multiLevelMenu) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'multi level menu',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('multi-level-menu', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"multi-level-menu\" */ 'shared/components/MultiLevelMenu/multiLevelMenu.vue')\r\n\t\t));\r\n\t\tapp.mount(multiLevelMenu);\r\n\t}\r\n\r\n\tconst podcastPlayers = [...document.querySelectorAll('[data-podcast-player]')];\r\n\tif (podcastPlayers) {\r\n\t\tpodcastPlayers.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'podcast player block',\r\n\t\t\t});\r\n\t\t\tapp.component('podcast-player-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"podcast-player-block\" */ 'shared/components/podcastPlayerBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst productCateogryCarousels = document.querySelectorAll('.product-category-carousel-mount');\r\n\tif (productCateogryCarousels) {\r\n\t\tproductCateogryCarousels.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'product category carousel',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('product-category-carousel', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"multisite-product-category-carousel\" */ 'multisite/components/minishop/productCategoryCarousel.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t})\r\n\t}\r\n\r\n\tconst ctaHeroBanner = document.getElementById('cta-hero-banner');\r\n\tif (ctaHeroBanner) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'cta hero banner',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('cta-hero-banner', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"cta-hero-banner\" */ 'shared/components/ctaHeroBanner.vue')\r\n\t\t));\r\n\t\tapp.component('send-campaign-id-cta-button', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/actionButtonWithCTA/SendCampaignIdCtaButton.vue')\r\n\t\t));\r\n\t\tapp.component('cta-button-with-popup-form', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/actionButtonWithCTA/CtaButtonWithPopupForm.vue')\r\n\t\t));\r\n\t\tapp.component('form-kit-builder-container', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/FormKitBuilderContainer/FormKitBuilderContainer.vue')\r\n\t\t));\r\n\t\tinitFormKitSchema(app);\r\n\t\tapp.mount(ctaHeroBanner);\r\n\t}\r\n\r\n\tconst contentGate = document.getElementById('content-gate');\r\n\tif (contentGate) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'content gate',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('content-gate', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"content-gate\" */ 'shared/components/contentLibrary/contentGate.vue')\r\n\t\t));\r\n\t\tapp.component('hcp-login-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"hcp-login-block\" */ 'shared/components/HcpProfileBlocks/hcpLoginBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(contentGate);\r\n\t}\r\n\r\n\tconst contentGateButtons = [...document.querySelectorAll('[data-content-gate-button]')];\r\n\tif (contentGateButtons) {\r\n\t\tcontentGateButtons.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'content gate button',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('content-gate-button', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"content-gate-button\" */ 'shared/components/contentLibrary/contentGateButton.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst contentRecommended = [...document.querySelectorAll('[data-content-recommended]')];\r\n\tif (contentRecommended) {\r\n\t\tcontentRecommended.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'content recommended block',\r\n\t\t\t});\r\n\t\t\tapp.component('content-recommended-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"content-recommended-block\" */ 'shared/components/contentLibrary/contentRecommendedBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst contentInfoCard = document.getElementById('content-info-card');\r\n\tif (contentInfoCard) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'content info card',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('content-info-card', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"content-info-card\" */ 'shared/components/contentLibrary/contentInfoCard.vue')\r\n\t\t));\r\n\t\tapp.component('send-campaign-id-cta-button', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/actionButtonWithCTA/SendCampaignIdCtaButton.vue')\r\n\t\t));\r\n\t\tapp.component('cta-button-with-popup-form', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/actionButtonWithCTA/CtaButtonWithPopupForm.vue')\r\n\t\t));\r\n\t\tapp.component('form-kit-builder-container', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/FormKitBuilderContainer/FormKitBuilderContainer.vue')\r\n\t\t));\r\n\t\tinitFormKitSchema(app);\r\n\t\tapp.mount(contentInfoCard);\r\n\t}\r\n\r\n\tconst contentAlternativeDate = document.getElementById('content-alternative-date');\r\n\tif (contentAlternativeDate) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'content alternative date',\r\n\t\t});\r\n\t\tapp.component('content-alternative-date', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"content-alternative-date\" */ 'shared/components/contentLibrary/contentAlternativeDate.vue')\r\n\t\t));\r\n\t\tapp.mount(contentAlternativeDate);\r\n\t}\r\n\r\n\tconst utiRiskFactorModel = document.getElementById('uti-risk-factor-model');\r\n\tif (utiRiskFactorModel) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'uti risk factor model',\r\n\t\t});\r\n\t\tapp.component('uti-risk-factor-model', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"uti-risk-factor-model\" */ 'shared/components/UTIRiskFactorModel/utiRiskFactorModel.vue')\r\n\t\t));\r\n\t\tapp.mount(utiRiskFactorModel);\r\n\t}\r\n\r\n\r\n\tconst breadcrumbMount = document.getElementById('breadcrumb');\r\n\tif (breadcrumbMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'breadcrumb mount', // if the app is called breadcrumb like the component the app will crash with a call stack exceeded error\r\n\t\t});\r\n\t\tapp.component('breadcrumb', Breadcrumb);\r\n\t\tapp.mount(breadcrumbMount);\r\n\t}\r\n\r\n\tconst heyloCheckout = document.getElementById('heylo-checkout');\r\n\tif (heyloCheckout) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'heylo checkout',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('heylo-checkout', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"heylo-checkout\" */ 'multisite/components/heylo/checkout/checkout.vue')\r\n\t\t));\r\n\t\tapp.mount(heyloCheckout);\r\n\t}\r\n\r\n\tconst heyloTool = document.getElementById('heylo-tool');\r\n\tif (heyloTool) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'heylo tool',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('heylo-tool', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"heylo-tool\" */ 'shared/components/heyloTool/heyloTool.vue')\r\n\t\t));\r\n\t\tapp.mount(heyloTool);\r\n\t}\r\n\r\n\tconst mediaBannerMount = document.getElementById('media-banner');\r\n\tif (mediaBannerMount) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'media banner',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('media-banner', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"media-banner\" */ 'shared/components/mediaBannerBlock/mediaBannerBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(mediaBannerMount);\r\n\t}\r\n\r\n\tconst healthCheckTool = document.getElementById('health-check-tool');\r\n\tif (healthCheckTool) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'health check tool',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('health-check-tool', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"health-check-tool\" */ 'shared/components/healthCheckTool/healthCheckTool.vue')\r\n\t\t));\r\n\t\tapp.component('checkout-modal-login', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"checkout-modal-login\" */ 'multisite/components/checkout/checkoutModalLogin.vue')\r\n\t\t));\r\n\t\tapp.component('references-list', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"references-list\" */ 'shared/components/ReferencesList.vue')\r\n\t\t));\r\n\t\tapp.component(\r\n\t\t\t'form-kit-builder-container',\r\n\t\t\tdefineAsyncComponent(() => import('shared/components/FormKitBuilderContainer/FormKitBuilderContainer.vue'))\r\n\t\t);\r\n\t\tinitFormKitSchema(app);\r\n\t\tapp.mount(healthCheckTool);\r\n\t}\r\n\r\n\tconst ctaBlocks = [...document.querySelectorAll('[data-cta-block]')];\r\n\tif (ctaBlocks) {\r\n\t\tctaBlocks.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'cta block',\r\n\t\t\t});\r\n\t\t\tapp.component('cta-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"cta-block\" */ 'shared/components/articleElements/ctaBlock.vue')\r\n\t\t\t));\r\n\r\n\t\t\tapp.component('cta-button-with-popup-form', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/actionButtonWithCTA/CtaButtonWithPopupForm.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('form-kit-builder-container', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/FormKitBuilderContainer/FormKitBuilderContainer.vue')\r\n\t\t\t));\r\n\t\t\tinitFormKitSchema(app);\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst subNavigationBlock = [...document.querySelectorAll('[data-sub-navigation]')];\r\n\tif (subNavigationBlock) {\r\n\t\tsubNavigationBlock.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'sub navigation block',\r\n\t\t\t});\r\n\t\t\tapp.component('sub-navigation-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"sub-navigation-block\" */ 'shared/components/articleElements/subNavigationBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst documentSearchComponent = document.getElementById(\"document-search\");\r\n\tif (documentSearchComponent) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'document search',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('document-search', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"document-search\" */ 'shared/components/documentSearch/documentSearch.vue')\r\n\t\t));\r\n\t\tapp.mount(documentSearchComponent);\r\n\t}\r\n\r\n\tconst factsBoxBlock = [...document.querySelectorAll('[data-fact-block]')];\r\n\tif (factsBoxBlock) {\r\n\t\tfactsBoxBlock.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'fact box block',\r\n\t\t\t});\r\n\t\t\tapp.component('fact-box-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"fact-box-block\" */ 'shared/components/articleElements/factBoxBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst videoCarouselBlocks = [...document.querySelectorAll('[data-video-carousel-block]')];\r\n\tif (videoCarouselBlocks) {\r\n\t\tvideoCarouselBlocks.forEach(videoCarouselBlock => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'video carousel block',\r\n\t\t\t});\r\n\t\t\tapp.component('video-carousel-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"video-carousel-block\" */ 'shared/components/VideoCarouselBlock/VideoCarouselBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('video-button-play', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/VideoCarouselBlock/VideoButtonPlay.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(videoCarouselBlock);\r\n\t\t});\r\n\t}\r\n\r\n\tconst relatedContentBlock = [...document.querySelectorAll('[data-related-content]')];\r\n\tif (relatedContentBlock) {\r\n\t\trelatedContentBlock.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'related content block',\r\n\t\t\t});\r\n\t\t\tapp.component('related-content-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"related-content-block\" */ 'shared/components/contentLibrary/relatedContentBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst productHighlightsBlock = document.getElementById('product-highlights-block');\r\n\tif (productHighlightsBlock) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'product highlights block',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('product-highlights-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"product-highlights-block\" */ 'shared/components/ProductHighlights/ProductHighlightsBlock.vue')\r\n\t\t));\r\n\t\tapp.mount(productHighlightsBlock);\r\n\t}\r\n\r\n\tconst highlightedMultimediaBlocks = [...document.querySelectorAll('[data-highlighted-multimedia]')];\r\n\tif (highlightedMultimediaBlocks) {\r\n\t\thighlightedMultimediaBlocks.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'highlighted multimedia block',\r\n\t\t\t});\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.component('highlighted-multimedia-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"highlighted-multimedia-block\" */ 'shared/components/mediaItems/HighlightedMultimediaBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('video-poster', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"video-poster\" */ 'shared/components/VideoElements/videoPoster.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst practitionersGuideOverview = document.getElementById('practitioners-guide-overview');\r\n\tif (practitionersGuideOverview) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'practitioners guide overview',\r\n\t\t});\r\n\t\tapp.component('practitioners-guide-overview', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"practitioners-guide-overview\" */ 'shared/components/PractitionersGuide/PractitionersGuideOverview.vue')\r\n\t\t));\r\n\t\tapp.mount(practitionersGuideOverview);\r\n\t}\r\n\r\n\tconst ctaButtomWithFormKits = [...document.querySelectorAll('[data-cta-button-formkit]')];\r\n\tif (ctaButtomWithFormKits) {\r\n\t\tctaButtomWithFormKits.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'cta button with formkit form',\r\n\t\t\t});\r\n\t\t\tapp.component('cta-button-with-popup-form', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/actionButtonWithCTA/CtaButtonWithPopupForm.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('form-kit-builder-container', defineAsyncComponent(\r\n\t\t\t\t() => import('shared/components/FormKitBuilderContainer/FormKitBuilderContainer.vue')\r\n\t\t\t));\r\n\t\t\tinitFormKitSchema(app);\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst zoomInModalButtons = [...document.querySelectorAll('[data-zoom-in-modal-button]')];\r\n\tif (zoomInModalButtons) {\r\n\t\tzoomInModalButtons.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'zoom in modal button',\r\n\t\t\t});\r\n\t\t\tapp.component('zoom-in-modal-button', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"zoom-in-modal-button\" */ 'shared/components/mediaItems/ZoomInModalButton.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst uploadCuttingProfile = [...document.querySelectorAll('[data-upload-cutting-template-mount]')];\r\n\tif (uploadCuttingProfile) {\r\n\t\tuploadCuttingProfile.forEach((item) => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'upload cutting profile',\r\n\t\t\t});\r\n\t\t\tapp.component('upload-cutting-template', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"upload-cutting-template\" */ 'shared/components/cuttingTemplates/uploadCuttingTemplate.vue')\r\n\t\t\t));\r\n\t\t\tapp.use(plugin, defaultConfig);\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.mount(item);\r\n\t\t});\r\n\t}\r\n\r\n\tconst simpleCardsWithCta = document.querySelectorAll('.simple-cards-with-cta');\r\n\tif (simpleCardsWithCta) {\r\n\t\tsimpleCardsWithCta.forEach(simpleCardsWithCtaEl => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: 'simple cards with cta',\r\n\t\t\t});\r\n\t\t\tapp.component('simple-cards-with-cta', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"simple-cards-with-cta\" */ 'shared/components/simpleCardsWithCta/simpleCardsWithCta.vue')\r\n\t\t\t));\r\n\t\t\tapp.mount(simpleCardsWithCtaEl);\r\n\t\t});\r\n\t}\r\n\r\n\tconst globalModal = document.getElementById('modal-mount');\r\n\tif (globalModal) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'global modal app'\r\n\t\t});\r\n\t\tapp.component('modal', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"modal\" */ 'shared/components/modal/modal.vue')\r\n\t\t));\r\n\t\tapp.use(store);\r\n\t\tapp.mount(globalModal)\r\n\t}\r\n\r\n\tconst referencesList = document.getElementById('references-list');\r\n\tif (referencesList) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'references list'\r\n\t\t});\r\n\t\tapp.component('references-list', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"references-list\" */ 'shared/components/ReferencesList.vue')\r\n\t\t));\r\n\t\tapp.mount(referencesList);\r\n\t}\r\n\r\n\tconst formkitBuilderContainerApps = [...document.querySelectorAll('[data-form-builder-block]')];\r\n\tformkitBuilderContainerApps.forEach((appContainer, index) => {\r\n\t\tconst app = createApp({\r\n\t\t\tname: `form-builder-block-${index}`,\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('form-builder-block', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/formBuilderBlock/FormBuilderBlock.vue')\r\n\t\t));\r\n\t\tapp.component('form-kit-builder-container', defineAsyncComponent(\r\n\t\t\t() => import('shared/components/FormKitBuilderContainer/FormKitBuilderContainer.vue')\r\n\t\t));\r\n\t\tinitFormKitSchema(app);\r\n\t\tapp.mount(appContainer);\r\n\t});\r\n}\r\n\r\nexport function initCheckoutFlow() {\r\n\tconst formEl = document.querySelector(\"[data-checkout-item]\");\r\n\tif (formEl) {\r\n\t\tconst app = createApp({\r\n\t\t\tname: 'checkout item',\r\n\t\t});\r\n\t\tapp.use(store);\r\n\t\tapp.component('prescription-upload-block', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"prescription-upload-block\" */ 'multisite/components/formElements/checkoutPrescriptionBlocks/checkoutPrescriptionUploadBlock.vue')\r\n\t\t));\r\n\t\tapp.component('checkout-modal-login', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"checkout-modal-login\" */ 'multisite/components/checkout/checkoutModalLogin.vue')\r\n\t\t));\r\n\t\tapp.component('checkout-submitted-summary', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"checkout-submitted-summary\" */ 'multisite/components/checkout/checkoutSubmittedSummary.vue')\r\n\t\t));\r\n\t\tapp.component('order-quote-confirm', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"order-quote-confirm\" */ 'multisite/components/checkout/orderQuoteConfirm.vue')\r\n\t\t));\r\n\t\tapp.component('progress-bar', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"progress-bar\" */ 'shared/components/progressBar/progressBar.vue')\r\n\t\t));\r\n\t\tapp.component('delivery-cart', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"delivery-cart\" */ '/Features/GlobalCheckout/SharedComponents/deliveryCart.vue')\r\n\t\t));\r\n\t\tapp.component('hcp-checkout-summary', defineAsyncComponent(\r\n\t\t\t() => import(/* webpackChunkName: \"hcp-checkout-summary\" */ 'multisite/components/checkout/HcpCheckoutSummary.vue')\r\n\t\t));\r\n\t\tinitFormKitSchema(app);\r\n\t\tapp.mount(formEl);\r\n\t}\r\n}\r\n\r\nfunction initCmsContentBlocks() {\r\n\tconst elements = document.querySelectorAll(\"[data-cms-content-block]\");\r\n\tif (elements.length) {\r\n\t\telements.forEach(element => {\r\n\t\t\tconst app = createApp({\r\n\t\t\t\tname: element.dataset.blockName,\r\n\t\t\t});\r\n\t\t\tapp.component('hyperlink-navigation-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"hyperlink-navigation-block\" */ 'multisite/components/cmsContentBlocks/hyperlinkNavigationBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('sticky-cta-button-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"sticky-cta-button-block\" */ 'multisite/components/cmsContentBlocks/stickyCtaButtonBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('card-slider-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"card-slider-block\" */ 'multisite/components/cmsContentBlocks/cardSlider/cardSliderBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('icon-text-list-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"icon-text-list-block\" */ 'multisite/components/cmsContentBlocks/iconTextListBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('campaign-cta-button-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"campaign-cta-button-block\" */ 'multisite/components/cmsContentBlocks/campaignCtaButtonBlock.vue')\r\n\t\t\t));\r\n\t\t\tapp.component('general-link-block', defineAsyncComponent(\r\n\t\t\t\t() => import(/* webpackChunkName: \"general-link-block\" */ 'multisite/components/cmsContentBlocks/generalLink.vue')\r\n\t\t\t));\r\n\t\t\tapp.use(store);\r\n\t\t\tapp.mount(element);\r\n\t\t});\r\n\t}\r\n}\r\n\r\ninitGlobalAxios();\r\ninitGlobalSettingsApp();\r\ninitVueApps();\r\ninitCheckoutFlow();\r\ninitCmsContentBlocks();\r\n\r\nboot();\r\ninitPostbackScrollPosition();\r\nieNotification.init();\r\ninitHeylo();\r\n\r\n\r\n/**\r\n *\r\n * @deprecated is to be deprecated in the future due to the updated version of the navigation (Feature 81078)\r\n * However, to preserve the correct working of the \"preserving the selected items state\" for the \"onboarding reordering module\",\r\n * the similar functionality should be implemented in the new navigation.\r\n * Without that, the selection would not be \"reset\" after the user logs out and the initial state of the selection\r\n * won't be visible after repeated log-in\r\n *\r\n * Please refer to \"productsBlock.vue\" and \"productsBlock.utils.ts\" for more details.\r\n *\r\n * When removed, please remove the references from the \"_HeaderMultisite.cshtml\"\r\n */\r\nwindow.onLogout = (e) => {\r\n\te.preventDefault()\r\n\r\n\t/**\r\n\t * Removal of the selected items state\r\n\t * @ref productsBlock.utils.ts\r\n\t */\r\n\tconst storage = storageFactory(window.sessionStorage);\r\n\tstorage.removeItem('cp-customer-products-selection');\r\n\r\n\tlocation.assign(e.currentTarget.href)\r\n}\r\n"],"file":"main-CGIMBvJY.js"}