{"version":3,"mappings":"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","names":["isExperienceEditor","e","i","n","a","l","t","o","s","r","c","d","u","m","b","A","f","p","x","g","k","I","E","_","h","v","y","M","j","N","O","S","$","z","B","C","D","L","onScroll","element","callback","forEach","collection","iterator","allowNullValues","index","item","key","filter","predicateFunction","filteredObject","value","functionReferences","readyState","readyEventBound","runAutomatically","runFunctionArray","funcArray","funcRef","emptyCallbackArrays","tempArray","bindReadyEvent","onReady","functionReference","priority","isObject","type","freeGlobal","freeSelf","root","now","reWhitespace","trimmedEndIndex","string","reTrimStart","baseTrim","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","throttle","functionQueue","currentWindowWidth","currentWindowHeight","screensizes","breakpointIndex","resizeThrottleTimeout","screenSizes","size","sizeName","currentBreakpoint","currentBreakpointName","getWindowSizes","lastFoundWidth","targetScreenWidth","associatedBreakpointName","performCalculationCallback","throttledCalculationCallback","onWindowResize","breakpointMin","breakpointName","isElement","elementInViewport","expandMargin","rect","getElementPosition","relativeTo","useElement","useRelativeTo","getElementScroll","getElementSize","elementStyle","getElementWidth","getElementHeight","style","width","height","setAttribute","elementCollection","attributeName","attributeValue","setAttributes","attributes","attribute","removeAttributes","elements","splitter","input","inputArray","inputEntry","addClass","classNames","className","add","hasClass","contains","removeClass","remove","toggleClass","condition","classShouldBeIncluded","classIsIncludedAlready","callbackIsSet","defaultMargin","defaultType","defaultClass","inViewElementsArray","toggleInViewState","total","inViewElement","createInViewElement","inViewClass","inViewType","inViewMargin","setupInView","inViewElements","len","global","factory","module","this","EvEmitter","proto","eventName","listener","events","listeners","onceEvents","onceListeners","window","getStyleSize","num","measurements","getZeroSize","measurement","getSize","elem","isBorderBox","paddingWidth","paddingHeight","marginWidth","marginHeight","borderWidth","borderHeight","styleWidth","styleHeight","utils","div","obj","ary","selector","event","method","elems","ffElems","childElems","_class","methodName","threshold","timeoutName","onDocReady","str","match","$1","$2","console","WidgetClass","namespace","dataAttr","dataAttrElems","jQuery","attr","error","instance","require$$0","cellClassName","Cell","Slide","beginMargin","endMargin","cellAlign","cell","lastCell","lastMargin","slideWidth","previousX","is3d","translateX","firstSlide","positionX","progress","position","beforeGap","afterGap","cells","gap","shift","cellShift","force","dragForce","require$$1","require$$2","require$$3","require$$4","require$$5","_Flickity","animatePrototype","getComputedStyle","GUID","instances","Flickity","queryElement","resize","watchCSS","rightToLeft","id","opts","cellElems","slider","cellElem","cellX","startCell","sideOffset","renderX","positionValue","slide","canCellFit","groupCells","number","percent","percentMatch","groupWidth","cellAlignShorthands","shorthand","beforeGapX","lastIndex","afterGapX","wrapAround","gapWidth","gapX","cellIndex","increment","contentWidth","beginBound","endBound","emitArgs","$event","jQEvent","unidraggerEvents","_emitEvent","clickedCell","isWrap","isInstant","prevIndex","selectedIndex","slideableWidth","length","wrapIndex","delta","backWrapDelta","forewardWrapDelta","initialIndex","cellSlide","closest","adjCount","slideIndex","selectedElement","activeElement","handler","leftMethod","rightMethod","jQueryBridget","jq","Unidragger","startEvent","activeEvents","bindMethod","touchAction","handle","touch","changedTouch","cursorNodes","clickTypes","pointer","isCursorNode","isClickType","isOkayElement","moveVector","isMouseup","isTouchStart","isTouchPointer","isFocusNode","getScrollPosition","direction","dragX","originBound","freeScroll","restingX","distance","positiveResting","negativeResting","minDistance","dist","minDist","isWrapAround","wrap","scroll","scrollMoveX","scrollMoveY","svgURI","PrevNextButton","arrowShape","label","svg","title","path","pathMovements","getArrowMovements","shape","x0","x1","x2","x3","y1","y2","prevDirection","nextDirection","button","disabledIndex","isEnabled","PageDots","slidesLength","count","newDots","dot","Player","autoPlay","onTick","isPageHidden","getCellsFragment","fragment","isAppend","insertCellElement","endCells","minCellIndex","changedCellIndex","prevSelectedElem","lazyAttr","lazySrcAttr","lazySrcsetAttr","imgSelector","lazyLoad","getCellLazyImages","img","LazyLoader","cellAttr","cellSrcAttr","cellSrcsetAttr","onComplete","src","srcset","makeArray","ImagesLoaded","onAlways","queryElem","elementNodeTypes","nodeType","childImgs","children","child","reURL","matches","url","loadingImage","LoadingImage","background","Background","onProgress","image","message","jqMethod","isLoaded","parentNode","imagesLoaded","onImagesLoadedProgress","require$$6","require$$7","Carousel","domReference","__publicField","carouselFlickity","knownDOMObjects","setStyles","styles","currentElement","resetStyles","saveStylesAsDefault","overwriteExisting","originalInlineStyles","hardReset","setStylesTo","parseHTML","createElement","deleteElement","appendElement","container","prependElement","lastInsertedElement","node","insertElementAfter","insertElementBefore","newElement","existingElement","parent","_a","replaceElement","oldElement","emptyElement","tagName","optionKey","optionValue","handleEvent","elementHandlers","eventType","callbackList","removeEvent","eventTypes","eventHandlerToRemove","callbackObject","removeAllEvents","addEvent","eventHandler","useCapture","once","addEventOnce","delegateEvent","elementScope","listeningTarget","triggerCustomEvent","target","eventData","scrollTop","currentState","enableScrollLock","scrollPosition","htmlTag","disableScrollLock","closeIcon","zoomIcon","plusIcon","minusIcon","rotationIcon","ImageZoom","imgSrc","lightbox","zoomValue","zoomImgMobile","zoomImgWrapper","zoomImg","imgElement","buttonResize","refValue","rangeInput","stepVal","updatedVal","rangeResize","rotateView","heightVal","widthVal","canvasZoomImg","ctx","rotationAngle","closeZoomButtonElement","closeSvg","controlPanel","controlPanelRangeWrapper","zoomButtonMinus","rangeElement","zoomButtonPlus","rotationButton","zoomButtonElement","zoomLightbox","imgslider","requiredArgs","required","toDate","argument","argStr","isValid","dirtyDate","date","formatDistanceLocale","formatDistance","token","buildFormatLongFn","dirtyOptions","format","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","context","valuesArray","defaultWidth","_defaultWidth","_width","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_dirtyOptions","rem100","localize","quarter","buildMatchPatternFn","dirtyString","matchResult","matchedString","parseResult","buildMatchFn","matchPattern","parsePatterns","findIndex","pattern","findKey","object","predicate","array","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","locale","toInteger","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","addLeadingZeros","targetLength","sign","output","formatters","signedYear","year","month","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","MILLISECONDS_IN_DAY","getUTCDayOfYear","startOfYearTimestamp","difference","startOfUTCISOWeek","weekStartsOn","day","diff","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","dayPeriodEnum","era","lightFormatters","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","_localize","originalDate","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","offset","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","MILLISECONDS_IN_MINUTE","getDateMillisecondsPart","getTimezoneOffsetInMilliseconds","baseTimezoneOffset","hasNegativeUTCOffset","millisecondsPartOfTimezoneOffset","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","defaultLocale","utcDate","formatterOptions","substring","firstCharacter","longFormatter","cleanEscapedString","formatter","tzTokenizeDate","timeZone","dtf","getDateTimeFormat","partsOffset","hackyOffset","typeToPos","formatted","filled","pos","parsed","dtfCache","testDateFormatted","hourCycleSupported","MILLISECONDS_IN_HOUR","patterns","tzParseTimezone","timezoneString","isUtcDate","absoluteOffset","validateTimezone","toUtcDate","calcOffset","fixedOffset","fixOffset","tokens","asUTC","asTS","over","localTS","utcGuess","o2","o3","DEFAULT_ADDITIONAL_DIGITS","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","restDateString","parseDate","parseTime","dateString","timeString","patternYYY","patternYYYYY","yearString","centuryString","validateDate","validateDayOfYearDate","validateWeekDate","dayOfISOWeekYear","validateTime","seconds","fourthOfJanuaryDay","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","isLeapYear","utcToZonedTime","offsetMilliseconds","zonedTime","differenceInMilliseconds","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","differenceInHours","dateRegex","timeRegex","timezoneRegex","parseISO","parseTimezone","regex","captures","century","isWeekDate","parseDateUnit","parseTimeUnit","daysInMonths","_year","_hours","DATETIMEFORMAT","DATEFORMAT","TIMEFORMAT","EVENTDATETIMEFORMAT","getLocalTimeZone","isRtl","LocalDatetime","endDateFormat","startDate","endDate","arSA","changeDirection","headerLogo","htmlElement","closeMarkup","checkmarkIcon","selectLanguageMarkup","labels","headerTitle","signupTitle","languages","continueLabel","logInLabel","languagesString","language","checkmark","SelectLanguageScreen","config","selectLanguageHtml","loginButton","enterNameMarkup","firstNameLabel","lastNameLabel","showError","errorMessageContainer","removeError","removeErrors","errorMessages","EnterName","enterNameHtml","enterEmailMarkup","emailLabel","emailHelpText","validateEmail","email","fetcher","data","appkey","aramcolife","headers","fetchConfig","response","http","meta","endpoint","fetchObj","finalUrl","param","queryStrings","queryStringKey","queryStringValue","status","ok","jsonResponse","defaultInstanceSettings","defaultTweenSettings","validTransforms","cache","minMax","val","min","max","stringContains","text","applyArguments","is","parseEasingParameters","spring","duration","params","mass","stiffness","damping","velocity","w0","zeta","wd","solver","getDuration","cached","frame","elapsed","rest","steps","bezier","kSplineTableSize","kSampleStepSize","aA1","aA2","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","mY1","mY2","sampleValues","getTForX","intervalStart","currentSample","lastSample","guessForT","initialSlope","penner","eases","functionEasings","pow2","amplitude","period","baseEasings","name","easeIn","parseEasings","easing","ease","selectString","nodes","filterArray","arr","flattenArray","toArray","arrayContains","cloneObject","clone","replaceObjectProps","o1","mergeObjects","rgbToRgba","rgbValue","rgb","hexToRgba","hexValue","rgx","hex","hslToRgba","hslValue","hsl","hue2rgb","q","colorToRgb","getUnit","split","getTransformUnit","propName","getFunctionValue","animatable","getAttribute","el","prop","convertPxToUnit","unit","valueUnit","baseline","tempEl","parentEl","factor","convertedUnit","getCSSValue","uppercasePropName","getAnimationType","getElementTransforms","reg","transforms","getTransformValue","defaultVal","getOriginalTargetValue","getRelativeValue","to","from","operator","validateValue","originalUnit","unitLess","getDistance","p1","p2","getCircleLength","getRectLength","getLineLength","getPolylineLength","points","totalLength","previousPos","currentPos","getPolygonLength","getTotalLength","setDashoffset","pathLength","getParentSvgEl","getParentSvg","pathEl","svgData","parentSvgEl","viewBoxAttr","viewBox","getPath","property","getPathProgress","point","p0","decomposeValue","parseTargets","targets","targetsArray","self","getAnimatables","normalizePropertyTweens","tweenSettings","settings","isFromTo","propArray","flattenKeyframes","keyframes","propertyNames","properties","loop","newKey","getProperties","normalizeTweenValues","tween","normalizeTweens","previousTween","tweenValue","toUnit","originalValue","previousValue","fromUnit","setProgressValue","manual","setTargetsValue","animatables","animType","createAnimation","tweens","lastTween","getAnimations","getInstanceTimings","animations","animLength","getTlOffset","anim","timings","instanceID","createNewInstance","instanceSettings","activeInstances","pausedInstances","raf","engine","play","step","activeInstancesLength","activeInstance","instanceIndex","handleVisibilityChange","ins","anime","startTime","lastTime","childrenLength","resolve","makePromise","promise","_resolve","toggleInstanceDirection","adjustTime","resetTime","seekChild","syncInstanceChildren","i$1","setAnimationsProgress","insTime","animationsLength","tweenLength","eased","strings","round","numbers","toNumbersLength","fromNumber","stringsLength","n$1","setCallback","cb","countIteration","setInstanceProgress","engineTime","insDuration","insDelay","insEndDelay","removeTargetsFromAnimations","removeTargets","childAnimations","stagger","grid","axis","fromIndex","fromFirst","fromCenter","fromLast","isRange","val1","val2","start","values","maxValue","fromX","fromY","toX","toY","distanceX","distanceY","spacing","timeline","tl","instanceParams","timelineOffset","tlIndex","passThrough","insParams","tlDuration","makeButtonLoad","loadingLabel","successCheckmark","targetText","loadingProgress","animateProgress","repeatedLoading","EnterEmail","buttonLoader","membershipElement","Membership","membershipStartPages","enterEmailHtml","injectGoogleApi","scriptEl","ToggleVisiblePassword","typeIsPassword","viewPassword","passwordMarkup","passwordLabel","passwordHelpText","termsText","subscribeText","termsAndConditionUrl","viewPasswordSvg","Password","reject","expired","checkbox","password","passwordHtml","passwordToggleButton","captchaElement","selectTopicsMarkup","confirmationText","confirmationResponseText","skipLabel","topics","topicsString","STANDARDCUBICBEZIER","LIFE","VERYSLOW","SLOW","MEDIUM","SelectTopics","selectedButtons","ids","confirmationResponse","success","pageTransition","confirmationReponseTextElem","isSelected","selectTopicsConfirmationText","animateBackwards","bellyContinueButton","bellyContinueButtonLabel","ishHeightofOrigBelly","ishWidthOfOrigBelly","origHeightOfBellySvg","origWidthOfBellySvg","offCenterPartRatio","bellyRatio","bellyWidthRatio","lastPartAfterBellyRatio","heightOfBelly","widthOfBelly","centerBellyRatio","centerOfBelly","buttonBottomPosition","selectTopicsHtml","skipLink","aramcoLifePale","aramcoLogo","splashMarkup","aramcoLifeLogo","Splash","splashHtml","splashDurationElem","confirmationMarkup","resendEmailText","resendLabel","Confirmation","confirmationHtml","API_VERSION","MEMBERSHIP_SIGNUP_START","MEMBERSHIP_SELECTTOPICS_START","MEMBERSHIP_PASSWORD_START","MEMBERSHIP_PROFILE_START","MEMBERSHIP_DEPENDENT_START","MEMBERSHIP_LOGIN","CHECK_USER","searchParams","init","baseUrl","getDatatype","getParameter","currentUrl","setParamsObj","results","realResults","setCookie","optionsWithDefaults","expires","getCookie","parts","loginMarkup","loginText","forgotPasswordLabel","createAccountHeader","createAccountLabel","infoNotificationMarkup","errorNotificationMarkup","dataObject","oldLoaderMarkup","addOldLoader","parentElement","wrapperElement","replace","loaderElement","loaderMarkup","loaderMarkupAbsolute","responsiveLoaderMarkup","addLoader","responsive","isAbsolute","Login","notificationHtml","loginHtml","createAccountButton","forgotPasswordButton","forgotPasswordMarkup","forgotPasswordText","sendLinkLabel","goBackLabel","ForgotPassword","forgotPasswordHtml","forgotPasswordConfirmationMarkup","ForgotPasswordConfirmation","resetPasswordMarkup","emailParam","linkExpiredTitle","linkExpiredText","startOverLabel","ResetPassword","newsletterMarkup","subscriptionLists","acceptSubscribe","subscriptionLabel","termsAndConditionsLabel","checked","subscriptionListID","subscriptionListName","isSubscribed","peopleIcon","dependentMarkup","user","dependentsLists","manageHostDependencyButtonLabel","managedependentsButtonLabel","manageDependentsActiveLabel","lockIconLocked","profileMarkup","editNameLabel","changePasswordLabel","deleteAccountLabel","logoutLabel","firstName","lastName","emailAddress","isInternal","showManageHostDependency","Newsletter","checkboxes","consent","Snackbar","autoClose","autoCloseDuration","snackbarConfig","confirmOrCancelElement","snackBarElementSize","elementSize","snackBarElementTopPosition","snackBarElementLeftPosition","animeTranslate","Profile","profileHtml","overviewMarkup","introTitle","introText","myDependentsLabel","addNewDependentLinkText","noDependentsText","cancelButtonLabel","listItemMarkup","dependent","removeDependentButtonLabel","OverviewScreen","list","listItem","overviewHtml","addDependentMarkup","addDependentIntroTitle","addDependentIntroText","addDependentButtonLabel","AddDependentScreen","confirmAddMarkup","confirmAddDependentIntroTitle","confirmAddDependentIntroText","confirmAddDependentButtonLabel","ConfirmAddScreen","hostOverviewMarkup","dependencyIntroTitle","dependencyIntroText","myDependencyLabel","confirmDisconnectButtonLabel","myDependencyDisconnectInfoText","hostMarkup","host","myDependencyDisconnectLabel","hostName","hostEmail","HostOverviewScreen","markup","Dependent","directionForward","editNameMarkup","editNameButtonLabel","firstNameWatermark","lastNameWatermark","saveButtonLabel","EditName","editNameHtml","changePasswordMarkup","changePasswordButtonLabel","oldPasswordWatermark","newPasswordWatermark","repeatNewPasswordWatermark","ChangePassword","passwordToggleButtons","closeMembershipCookie","closeMembershipCookieValue","customMembershipTriggers","startPage","languageCode","errors","paramUrl","redirectUrl","trigger","paginationItems","currentPaginationItemId","paginationitemId","transitionIn","screenName","animateTranslate","animateFade","animateScale","firstInput","translateForwards","translateBackwards","movePagination","lazyLoadClass","lazyloadConfig","LazyLoad","SignupRibbon","OnetrustToggle","buildTextInput","field","classes","errorMessageTargetClass","stepThreeTemplate","model","sections","stepText","errorMessageStepThree","stepFourTemplate","createMarkup","option","buildTextareaInput","bindTextareaEvents","currentTextAreaContainer","currentTextarea","showTextarea","errorMessage","buildRadioInput","stepTwoTemplate","errorMessageTarget","texts","useSvgBackground","alignment","bottomSvgIcon","textBackgroundColorHex","backgroundHex","fillRect","fillValue","imageTagElement","buildRadioIconInput","iconRadioButtonOptions","iconOptions","stepOneTemplate","defaultDuration","doScroll","elementIsWindow","scrollTo","targetElement","interruptible","onlyVertical","useDuration","useTargetElement","scrollCount","oldTimestamp","detectedScrollPosition","scrollPos","useTarget","elementPosition","cosParameters","scrollDone","interruptScrollFlag","interruptScroll","newTimestamp","timeDifference","moveStep","emailRegex","letters","specialCharacters","passwordRegex","passwordOptions","hasMaxLength","hasMaxDigits","hasMaxLowercase","hasMaxUppercase","hasMaxSpecial","lowercaseLetters","uppercaseLetters","specialChars","setInputPattern","inputElement","getValidityState","isNum","valid","group","checkValidity","check","FormValidate","formElement","confirmField","confirmFieldElement","extendedValidation","fieldGroup","validity","extendedValidations","ignoreTypeValidation","isValidExceptType","requirementsMessage","elementGroup","errorContainer","fields","entry","prevHash","currVal","hasErrors","scrollToError","searchingForVisibleParent","emailField","passwordField","formFieldsArray","formFieldsString","extendStatics","__extends","__","__assign","__awaiter","_arguments","P","generator","adopt","fulfilled","rejected","__generator","body","verb","op","__spreadArray","pack","ar","Bounds","left","top","w","clientRect","domRectList","domRect","parseBounds","parseDocumentSize","document","documentElement","toCodePoints$1","codePoints","extra","fromCodePoint$1","_i","codeUnits","codePoint","chars$2","lookup$2","i$2","chars$1$1","lookup$1$1","i$1$1","decode$1","base64","bufferLength","encoded1","encoded2","encoded3","encoded4","buffer","bytes","polyUint16Array$1","polyUint32Array$1","UTRIE2_SHIFT_2$1","UTRIE2_SHIFT_1$1","UTRIE2_INDEX_SHIFT$1","UTRIE2_SHIFT_1_2$1","UTRIE2_LSCP_INDEX_2_OFFSET$1","UTRIE2_DATA_BLOCK_LENGTH$1","UTRIE2_DATA_MASK$1","UTRIE2_LSCP_INDEX_2_LENGTH$1","UTRIE2_INDEX_2_BMP_LENGTH$1","UTRIE2_UTF8_2B_INDEX_2_OFFSET$1","UTRIE2_UTF8_2B_INDEX_2_LENGTH$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1","UTRIE2_INDEX_2_BLOCK_LENGTH$1","UTRIE2_INDEX_2_MASK$1","slice16$1","view","end","slice32$1","createTrieFromBase64$1","_byteLength","view32","view16","headerLength","Trie$1","Trie","initialValue","errorValue","highStart","highValueIndex","ix","chars$3","lookup$3","i$3","base64$1","LETTER_NUMBER_MODIFIER","BK","CR$1","LF$1","CM","NL","WJ","ZW","GL","SP","ZWJ$1","B2","BA","BB","HY","CB","CL","CP","EX","IN","NS","OP","QU","IS","NU","PO","PR","SY","AI","AL","CJ","EB","EM","H2","H3","HL","ID","JL","JV","JT","RI$1","SA","XX","ea_OP","BREAK_MANDATORY","BREAK_NOT_ALLOWED$1","BREAK_ALLOWED$1","UnicodeTrie$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","codePointsToCharacterClasses","lineBreak","types","indices","categories","classType","prev","isAdjacentWithSpaceIgnored","currentIndex","classTypes","current","next","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","before","cssFormattedClasses","isLetterNumber","forbiddenBreakpoints","letterNumber","Break","LineBreaker","lastEnd","nextIndex","FLAG_UNRESTRICTED","FLAG_ID","FLAG_INTEGER","FLAG_NUMBER","LINE_FEED","SOLIDUS","REVERSE_SOLIDUS","CHARACTER_TABULATION","SPACE","QUOTATION_MARK","EQUALS_SIGN","NUMBER_SIGN","DOLLAR_SIGN","PERCENTAGE_SIGN","APOSTROPHE","LEFT_PARENTHESIS","RIGHT_PARENTHESIS","LOW_LINE","HYPHEN_MINUS","EXCLAMATION_MARK","LESS_THAN_SIGN","GREATER_THAN_SIGN","COMMERCIAL_AT","LEFT_SQUARE_BRACKET","RIGHT_SQUARE_BRACKET","CIRCUMFLEX_ACCENT","LEFT_CURLY_BRACKET","QUESTION_MARK","RIGHT_CURLY_BRACKET","VERTICAL_LINE","TILDE","CONTROL","REPLACEMENT_CHARACTER","ASTERISK","PLUS_SIGN","COMMA","COLON","SEMICOLON","FULL_STOP","NULL","BACKSPACE","LINE_TABULATION","SHIFT_OUT","INFORMATION_SEPARATOR_ONE","DELETE","EOF","ZERO","F","U","Z","isDigit","isSurrogateCodePoint","isHex","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isWhiteSpace","isNameStartCodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","integers","int","fraction","fracd","frac","expsign","exponent","exp","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","chunk","flags","e1","e2","e3","a1","a2","a3","u1","u2","digits","questionMarks","start_1","digit","endDigits","stringToken","SLICE_STACK_SIZE","endingCodePoint","repr","hexCodePoint","Parser","tokenizer","block","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","arg","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","DEG","GRAD","RAD","TURN","angle","_context","isAngle","parseNamedSide","sideOrCorner","ident","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","COLORS","isTransparent","color","asString","alpha","blue","green","red","getTokenColorValue","_b","t1","t2","hue","saturation","lightness","parseColor","backgroundClip","backgroundColor","parseColorStop","stop","processColorStops","stops","lineLength","first","last","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","gapValue","getAngleFromCorner","corner","centerX","centerY","calculateGradientDirection","radian","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","findCorner","corners","stat","cx","cy","calculateRadius","gradient","rx","ry","linearGradient","angle$1","firstToken","colorStop","prefixLinearGradient","webkitGradient","CLOSEST_SIDE","FARTHEST_SIDE","CLOSEST_CORNER","FARTHEST_CORNER","CIRCLE","ELLIPSE","COVER","CONTAIN","radialGradient","isColorStop","isAtPosition_1","acc","prefixRadialGradient","isLinearGradient","isRadialGradient","image_1","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isSupportedImage","backgroundImage","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","BACKGROUND_SIZE","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","display","bit","parseDisplayValue","float","letterSpacing","LINE_BREAK","lineHeight","computeLineHeight","fontSize","listStyleImage","listStylePosition","listStyleType","marginForSide","marginTop","marginRight","marginBottom","marginLeft","overflow","overflowWrap","paddingForSide","paddingTop","paddingRight","paddingBottom","paddingLeft","textAlign","textShadow","shadow","textTransform","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","DEFAULT","transformOrigin","origins","visibility","WORD_BREAK","wordBreak","zIndex","opacity","textDecorationColor","textDecorationLine","line","fontFamily","accumulator","fontWeight","fontVariant","fontStyle","content","counterIncrement","increments","filtered","counter","counterReset","resets","reset","quotes","open_1","close_1","getQuote","depth","open","quote","boxShadow","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","declaration","parse","overflowTuple","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","descriptor","parser","length_1","value_1","elementDebuggerAttribute","getElementDebugType","isDebugging","elementType","ElementContainer","isHTMLElementNode","chars$1","lookup$1","decode","polyUint16Array","polyUint32Array","UTRIE2_SHIFT_2","UTRIE2_SHIFT_1","UTRIE2_INDEX_SHIFT","UTRIE2_SHIFT_1_2","UTRIE2_LSCP_INDEX_2_OFFSET","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_DATA_MASK","UTRIE2_LSCP_INDEX_2_LENGTH","UTRIE2_INDEX_2_BMP_LENGTH","UTRIE2_UTF8_2B_INDEX_2_OFFSET","UTRIE2_UTF8_2B_INDEX_2_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH","UTRIE2_INDEX_2_BLOCK_LENGTH","UTRIE2_INDEX_2_MASK","slice16","slice32","createTrieFromBase64","chars","lookup","Prepend","CR","LF","Control","Extend","SpacingMark","V","T","LV","LVT","ZWJ","Extended_Pictographic","RI","toCodePoints","fromCodePoint","UnicodeTrie","BREAK_NOT_ALLOWED","BREAK_ALLOWED","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","graphemeBreak","splitGraphemes","breaker","graphemes","bk","testRangeBounds","TEST_HEIGHT","range","testElement","rangeBounds","rangeHeight","testIOSLineBreak","textList","supports","boundAhead","testCORS","testResponseType","testSVG","canvas","isGreenPixel","testForeignObject","greenImageSrc","createForeignObjectSVG","loadSerializedSVG$1","xmlns","foreignObject","FEATURES","TextBounds","bounds","parseTextBounds","breakText","textBounds","clientRects","createRange","subSegments","segmentGraphemes","subOffset_1","subSegment","replacementNode","getWrapperBounds","ownerDocument","wrapper","segmenter","segment","segmentWords","breakWords","wordSeparators","words","_loop_1","word_1","TextContainer","transform","CAPITALIZE","capitalize","ImageElementContainer","_super","_this","CanvasElementContainer","SVGElementContainer","LIElementContainer","OLElementContainer","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","reformatInputBounds","getInputValue","PASSWORD","CHECKBOX","RADIO","INPUT_COLOR","InputElementContainer","SelectElementContainer","TextareaElementContainer","IFrameElementContainer","iframe","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","childNode","nextNode","isTextNode","isElementNode","isSlotElement","createContainer","createsRealStackingContext","createsStackingContext","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","isSVGElementNode","isHTMLElement","isVideoElement","isStyleElement","isScriptElement","isCustomElement","CounterState","counters","canReset","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","symbols","fallback","suffix","createCounterText","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","CJK_ZEROS","CJK_TEN_COEFFICIENTS","CJK_TEN_HIGH_COEFFICIENTS","CJK_HUNDRED_COEFFICIENTS","createCJKCounter","multipliers","negativeSign","tmp","coefficient","CHINESE_INFORMAL_MULTIPLIERS","CHINESE_FORMAL_MULTIPLIERS","JAPANESE_NEGATIVE","KOREAN_NEGATIVE","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","IGNORE_ATTRIBUTE","DocumentCloner","windowSize","createIFrameContainer","scrollX","scrollY","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","referenceElement","restoreNodeScroll","imagesReady","serializeDoctype","restoreOwnerScroll","copyCSSStyles","sheet","css","rule","clonedCanvas","clonedCtx","gl","attribs","video","blankCanvas","copyStyles","assignedNodes","assignedNode","styleBefore","styleAfter","createPseudoHideStyles","PseudoElementType","after","pseudoElt","anonymousReplacedElement","counterStyle","counterState","counterType","delim","counterStates","counterType_1","separator","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","cloneIframeContainer","imageReady","interval","ignoredStyleProperties","doctype","PSEUDO_BEFORE","PSEUDO_AFTER","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CacheStorage","link","Cache","isBlobImage","isRenderable","isSameOrigin","useCORS","useProxy","isInlineImage","isInlineBase64Image","proxy","responseType","xhr","reader_1","queryString","timeout_1","INLINE_SVG","INLINE_BASE64","INLINE_IMG","isSVG","Vector","deltaX","deltaY","lerp","BezierCurve","startControl","endControl","firstHalf","ab","bc","cd","abbc","bccd","dest","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","_c","brh","brv","_d","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","getCurvePoints","CORNER","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculateContentBoxPath","calculatePaddingBoxPath","TransformEffect","offsetX","offsetY","ClipEffect","OpacityEffect","isTransformEffect","effect","isClipEffect","isOpacityEffect","equalPath","transformPath","deltaW","deltaH","StackingContext","ElementPaint","borderBox","paddingBox","inFlow","effects","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","stack","order_1","index_1","index_2","processListItems","owner","numbering","reversed","parseStackingContexts","parsePathForBorder","borderSide","createPathFromCurves","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","parsePathForBorderStroke","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundPositioningArea","calculateBackgroundPaintingArea","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","hasIntrinsicValue","intrinsicWidth","intrinsicHeight","intrinsicProportion","second","hasIntrinsicProportion","targetRatio","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_1","height_1","width_2","height_2","width_3","height_3","repeat","SMALL_IMAGE","SAMPLE_TEXT","FontMetrics","span","middle","Renderer","MASK_OFFSET","CanvasRenderer","paint","letter","variant","fixIOSSystemFonts","font","paintOrderLayer","textShadows","box","iframeRenderer","isTextInputElement","canvasTextAlign","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","paths","this_1","y0","gradient_1","top_1","radialGradient_1","midX","midY","invF","curvePoints","outerPaths","innerPaths","hasBackground","borders","borders_1","border","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","strokePaths","boxPaths","startX","startY","endX","endY","dashLength","spaceLength","useLineDash","multiplier","numberOfDashes","minSpace","maxSpace","path1","path2","clip","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","Logger","enabled","Context","windowBounds","html2canvas","renderElement","defaultView","resourceOptions","contextOptions","windowOptions","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","renderOptions","renderer","_q","_r","_s","_t","_u","parseBackgroundColor","backgroundColorOverride","defaultBackgroundColor","Greeting","entries","subValue","continueButtons","backButtons","currentStep","footerContainer","footerBackButton","stepThreeContinueButton","stepNumber","MAX_STEPS","stepContent","stepTemplateId","totalSteps","stepTextDictionary","stepThreeContainer","stepThreeBackButton","stepFourBackButton","stepToMoveTo","currentStepInput","invalidField","checkboxValues","inputField","currentPreviewContainer","radialGradientId","clipPathId","linearGradientId","previewContainer","newRadialGradientId","newLinearGradientId","clipPathElements","clipPathElement","newClipPathId","clipPathTargets","clipPathTarget","radialGradientElement","logoRect","linearGradientElement","linearElement","greetingMessage","greetingMessageContainer","nodeToConvert","dataURL","pressReleaseItemMarkup","description","publishDate","largeImageUrl","imageAlt","imageMarkup","PressReleaseList","parentAppendingTo","pressReleaseListContainerHtml","pressReleaseDate","dateItem","pauseIcon","playIcon","crossIcon","headPhonesIcon","audioBar","currentTime","audioFileUrl","isPlaying","playerIcon","progressWidth","remainingTime","AudioPlayer","audioUrl","playPauseButton","progressElement","remainingTimeElement","progressBarElement","percentage","remainingSeconds","startButton","addHoverClass","removeHoverClass","bootstrappedInstances","counts","isClass","isAsyncFunction","isFunction","bootstrapConstructorOnElement","moduleName","props","importedModule","bootstrapper","modernModules","legacyModules","modules","isApp","Navigation$1","header","state","expand","contract","toggleHeaderVisibility","eventsMap","onClickOutside","clickElement","onlyOnce","eventListener","thisElementHandlers","handleElement","tempCallbackList","removeOnClickOutside","tempThisElementHandlers","SectionSubNavigation","linkButton","linkList","toggle","close","feedbackServiceMeta","feedbackService","feedback","restart","containerSuccess","containerError","formButtonSubmit","textArea","toogleFormVisibility","handleFormSubmit","form","formData","plainFormData","feedbackData","successCloseBtn","errorCloseBtn","errorBtn","isFormVisible","startTitle","formTitle","formcontent","animHeight","svgBg","animHeightBase","closeBtn","extend","ssrDocument","getDocument","doc","ssrWindow","getWindow","win","classesToTokens","deleteProps","nextTick","delay","getTranslate","curTransform","transformMatrix","curStyle","isNode","noExtend","nextSource","keysArray","nextKey","desc","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","swiper","targetPosition","startPosition","dir","isOutOfBound","animate","easeProgress","currentPosition","getSlideTransformEl","slideEl","elementChildren","elementIsChildOf","isChild","showWarning","elementPrevAll","prevEls","elementNextAll","nextEls","elementIndex","elementParents","parents","elementTransitionEnd","fireCallBack","elementOuterSize","includeMargins","makeElementsArray","getRotateFix","support","calcSupport","getSupport","deviceCached","calcDevice","_temp","userAgent","platform","ua","device","screenWidth","screenHeight","android","ipad","ipod","iphone","windows","macos","iPadScreens","getDevice","overrides","browser","calcBrowser","needPerspectiveFix","isSafari","major","minor","isWebView","isSafariBrowser","need3dFix","getBrowser","Resize","on","emit","observer","animationFrame","resizeHandler","createObserver","newWidth","newHeight","_ref2","contentBoxSize","contentRect","removeObserver","orientationChangeHandler","Observer","extendParams","observers","attach","ObserverFunc","mutations","observerUpdate","containerParents","destroy","eventsEmitter","onceHandler","_len","_key","_len2","_key2","updateSize","updateSlides","getDirectionPropertyValue","wrapperEl","slidesEl","swiperSize","rtl","wrongRTL","isVirtual","previousSlidesLength","slides","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","gridEnabled","slideSize","shouldResetSlideSize","slideStyles","currentTransform","currentWebKitTransform","boxSizing","clientWidth","offsetWidth","newSlidesGrid","slidesGridItem","groups","groupSize","allSlidesSize","slideSizeValue","maxSnap","snap","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","speed","activeSlides","getSlideByIndex","updateSlidesOffset","minusOffset","toggleSlideClasses$1","updateSlidesProgress","translate","offsetCenter","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","updateProgress","translatesDiff","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","toggleSlideClasses","updateSlidesClasses","activeIndex","getFilteredSlide","activeSlide","prevSlide","nextSlide","processLazyPreloader","imageEl","slideSelector","lazyEl","unlazy","preload","slidesPerView","activeColumn","preloadColumns","slideIndexLastInView","realIndex","getActiveIndexByTranslate","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","firstSlideInColumn","activeSlideIndex","updateClickedSlide","slideFound","update","getSwiperTranslate","currentTranslate","setTranslate","byController","newProgress","minTranslate","maxTranslate","translateTo","runCallbacks","translateBounds","internal","newTranslate","isH","setTransition","transitionEmit","transitionStart","transitionEnd","transition","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","slideToLoop","newIndex","targetSlideIndex","cols","centeredSlides","needLoopFix","slideNext","animating","perGroup","slidePrev","rtlTranslate","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToClickedSlide","slideToIndex","loopCreate","slideRealIndex","initSlides","slidesPerGroup","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slidesToAdd","loopFix","byMousewheel","allowSlidePrev","allowSlideNext","loopedSlides","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","currentSlideTranslate","loopParams","loopDestroy","newSlidesOrder","setGrabCursor","moving","unsetGrabCursor","grabCursor","closestElement","base","__closestFrom","found","preventEdgeSwipe","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","touches","targetEl","swipingClassHasValue","eventPath","noSwipingSelector","isTargetShadow","preventDefault","shouldPreventDefault","onTouchMove","targetTouch","pageX","pageY","diffX","diffY","touchAngle","touchesDiff","prevTouchesDirection","isLoop","allowLoopFix","evt","loopFixed","disableParentSwiper","resistanceRatio","onTouchEnd","touchEndTime","timeDiff","pathTree","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","onResize","isVirtualLoop","onClick","onLoad","onDocumentTouchStart","capture","domMethod","swiperMethod","attachEvents","detachEvents","events$1","isGridEnabled","setBreakpoint","initialized","breakpoints","breakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","hasLoop","getBreakpoint","containerEl","currentHeight","minRatio","prepareClasses","prefix","resultClasses","addClasses","suffixes","removeClasses","checkOverflow","wasLocked","slidesOffsetBefore","lastSlideRightEdge","checkOverflow$1","defaults","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","extendedDefaults","Swiper","swipers","newParams","mod","swiperParams","cls","updates","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","getWrapperSelector","lazyElements","deleteInstance","cleanStyles","newDefaults","prototypeGroup","protoMethod","createElementIfNotDefined","originalParams","checkProps","Navigation","getEl","res","toggleEl","disabled","subEl","nextEl","prevEl","onPrevClick","onNextClick","initButton","destroyButton","disable","targetIsButton","isHidden","enable","classesToSelector","Pagination","pfx","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","bulletActiveClass","getMoveDirection","onBulletClick","moveDirection","bullets","firstIndex","midIndex","classesToRemove","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","Autoplay","timeout","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","wasPaused","isTouched","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","onTransitionEnd","resume","calcTimeLeft","timeLeft","getSlideDelay","activeSlideEl","run","delayForce","currentSlideDelay","proceed","pause","onVisibilityChange","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","shadowEl","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","effectVirtualTransitionEnd","transformElements","allSlides","getSlide","eventTriggered","transitionEndTarget","createShadow","shadowClass","shadowContainer","EffectCreative","getTranslateValue","isCenteredSlides","rotateFix","margin","originalProgress","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","isMobile","THEME_REGEX","topStorySlider","swiperContainer","pagination","nextButton","getTheme","theme","removeTheme","setTheme","themeClassPrimary","dictionaryString","globalDictionary","dialogElement","dialogContentElement","useDialog","closeButton","html","themeClassOverride","focusBefore","binIcon","bookmarkIcon","imgPlaceholder","bookmarkServiceMeta","bookmarkService","bookmarkId","pageItemId","useBookmarkCount","headerBookmarkCountElement","bookmarkCount","useToggleBookmark","dialog","bookmarksDialogTemplate","bookmarks","isPageBookmarked","bookmarkSvg","bookmark","binSvg","renderBookmarks","itemId","buttonElement","bookmarkPageItemId","openBookmarks","socialBarWrapper","focusElement","buildPersonalDetails","eventApplicationModel","buildApplicationDetails","motivation","applicantOverviewMarkup","eventTitle","isVolunteer","api","setScrollLock","removeScrollLock","filterMarkup","translations","filters","buildFilterGroup","OwnerEventTabs","bulkCheck","userId","showUserId","applicantMarkup","applicant","dataRows","nextPage","volunteerMarkup","checkmarkMarkup","volunteer","includeFilters","resetApplicantSettings","resetVolunteerSettings","filterQuerystring","valueArray","sortingQuerystring","dataList","userEmail","loaderTarget","fromApplicantOverview","reloadAllLists","userArray","bulkIsChecked","filterCount","filterCountNode","filterContainer","shouldOpen","checkedItems","tabName","bccList","stepOneContentTemplate","buildRadioButtonInput","stepTwoContentTemplate","sectionAge","sectionGender","errorMessageSectionAge","errorMessageSectionGender","stepThreeContentTemplate","hasHelpText","stepFourContentTemplate","sectionLanguageEN","sectionLanguageAR","errorMessageSectionLanguageEN","errorMessageSectionLanguageAR","buildCheckboxInput","textAreaOpen","currentTextArea","stepFiveContentTemplate","errorMessageStepFive","stepSixContentTemplate","errorMessageStepSix","stepSevenContentTemplate","sectionAnythingToAdd","sectionUsername","stepEightContentTemplate","VolunteerSignup","eventId","loader","submitTheme","tempErrorElement","Survey","CertificateDownload","membershipSignupPromptServiceMeta","restrictedContentDialogTemplate","targetHref","renderRestrictedContent","openRestrictedContent","returnUrl","loadAdobePDFScript","viewerConfig","PdfViewer","adobeClientId","adobeDCView","pdfModalWrapperId","scope","queryPDFNum","pdfUrl","pdfFileName","pdfButton","articleServiceMeta","articleService","articleId","share","copyLink","copyIcon","shareFB","shareTwitter","shareLinkedIn","currentItemId","service","addEventListeners","facebookShare","twitterShare","linkedinShare","copyLinkButton","copyLinkUrl","toggleShareDialog","shareDialog","shareDialogHTML","socialBar","actionBar","menu","headerSearch","searchUrl","redirectSearch","searchInput","searchValue","AnnouncementSlider","StickyBadge","badgeImg","scrollAmount","borderRadius","crop","initialPadding","clipPath","hoverClipPath","lastScrollY","ticking","handleScroll","openRestrictContent","sectionSubNavigation","__vitePreload","audioplayer","lazyClass","vw","intervalCount","oneTrustInterval"],"ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,123,124,125,126,127,128,142,213,227,228,229,230,231,232,233,234,235,236,237,238,239],"sources":["../../src/foundation/Helpers/isExperienceEditor.ts","../../node_modules/vanilla-lazyload/dist/esm/environment.js","../../node_modules/vanilla-lazyload/dist/esm/defaults.js","../../node_modules/vanilla-lazyload/dist/esm/autoInitialize.js","../../node_modules/vanilla-lazyload/dist/esm/constants.js","../../node_modules/vanilla-lazyload/dist/esm/elementStatus.js","../../node_modules/vanilla-lazyload/dist/esm/data.js","../../node_modules/vanilla-lazyload/dist/esm/callback.js","../../node_modules/vanilla-lazyload/dist/esm/class.js","../../node_modules/vanilla-lazyload/dist/esm/tempImage.js","../../node_modules/vanilla-lazyload/dist/esm/unobserve.js","../../node_modules/vanilla-lazyload/dist/esm/counters.js","../../node_modules/vanilla-lazyload/dist/esm/forEachSource.js","../../node_modules/vanilla-lazyload/dist/esm/originalAttributes.js","../../node_modules/vanilla-lazyload/dist/esm/set.js","../../node_modules/vanilla-lazyload/dist/esm/event.js","../../node_modules/vanilla-lazyload/dist/esm/load.js","../../node_modules/vanilla-lazyload/dist/esm/reset.js","../../node_modules/vanilla-lazyload/dist/esm/restore.js","../../node_modules/vanilla-lazyload/dist/esm/cancelOnExit.js","../../node_modules/vanilla-lazyload/dist/esm/intersectionHandlers.js","../../node_modules/vanilla-lazyload/dist/esm/native.js","../../node_modules/vanilla-lazyload/dist/esm/intersectionObserver.js","../../node_modules/vanilla-lazyload/dist/esm/dom.js","../../node_modules/vanilla-lazyload/dist/esm/online.js","../../node_modules/vanilla-lazyload/dist/esm/lazyload.js","../../src/foundation/Events/onScroll.ts","../../src/foundation/Helpers/forEach.ts","../../src/foundation/Helpers/filter.ts","../../src/foundation/Events/onReady.ts","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/now.js","../../node_modules/lodash-es/_trimmedEndIndex.js","../../node_modules/lodash-es/_baseTrim.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/toNumber.js","../../node_modules/lodash-es/debounce.js","../../node_modules/lodash-es/throttle.js","../../src/foundation/Events/onWindowResize.ts","../../src/foundation/Helpers/typeCheckers.ts","../../src/foundation/Dom/elementProperties.ts","../../src/foundation/Helpers/splitter.ts","../../src/foundation/Dom/classList.ts","../../src/foundation/Dom/inView.js","../../node_modules/ev-emitter/ev-emitter.js","../../node_modules/get-size/get-size.js","../../node_modules/fizzy-ui-utils/utils.js","../../node_modules/flickity/js/cell.js","../../node_modules/flickity/js/slide.js","../../node_modules/flickity/js/animate.js","../../node_modules/flickity/js/core.js","../../node_modules/unidragger/unidragger.js","../../node_modules/flickity/js/drag.js","../../node_modules/flickity/js/prev-next-button.js","../../node_modules/flickity/js/page-dots.js","../../node_modules/flickity/js/player.js","../../node_modules/flickity/js/add-remove-cell.js","../../node_modules/flickity/js/lazyload.js","../../node_modules/imagesloaded/imagesloaded.js","../../node_modules/flickity/js/imagesloaded.js","../../node_modules/flickity/js/index.js","../../src/feature/Article/carousel/carousel.js","../../src/foundation/Dom/setStyles.ts","../../src/foundation/Dom/elementManipulation.ts","../../src/foundation/Dom/createElement.ts","../../src/foundation/Events/events.ts","../../src/foundation/Events/triggerCustomEvent.ts","../../src/foundation/Dom/scrollLock.ts","../../src/foundation/Icons/close.ts","../../src/project/AramcoLife/lifeMedia/image-zoom/zoomIcon.js","../../src/project/AramcoLife/lifeMedia/image-zoom/plusIcon.js","../../src/project/AramcoLife/lifeMedia/image-zoom/minusIcon.js","../../src/project/AramcoLife/lifeMedia/image-zoom/rotationIcon.js","../../src/project/AramcoLife/lifeMedia/image-zoom/image-zoom.js","../../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../../node_modules/date-fns/esm/toDate/index.js","../../node_modules/date-fns/esm/isValid/index.js","../../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../../node_modules/date-fns/esm/locale/en-US/index.js","../../node_modules/date-fns/esm/_lib/toInteger/index.js","../../node_modules/date-fns/esm/addMilliseconds/index.js","../../node_modules/date-fns/esm/subMilliseconds/index.js","../../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../../node_modules/date-fns/esm/_lib/format/formatters/index.js","../../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../../node_modules/date-fns/esm/format/index.js","../../node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js","../../node_modules/date-fns-tz/esm/_lib/tzParseTimezone/index.js","../../node_modules/date-fns-tz/esm/toDate/index.js","../../node_modules/date-fns-tz/esm/utcToZonedTime/index.js","../../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../../node_modules/date-fns/esm/differenceInHours/index.js","../../node_modules/date-fns/esm/parseISO/index.js","../../src/foundation/LocalDatetime/date-format.ts","../../src/foundation/Helpers/getLocalTimeZone.ts","../../src/foundation/Helpers/isRtl.ts","../../node_modules/date-fns/esm/locale/ar-SA/_lib/formatDistance/index.js","../../node_modules/date-fns/esm/locale/ar-SA/_lib/formatLong/index.js","../../node_modules/date-fns/esm/locale/ar-SA/_lib/formatRelative/index.js","../../node_modules/date-fns/esm/locale/ar-SA/_lib/localize/index.js","../../node_modules/date-fns/esm/locale/ar-SA/_lib/match/index.js","../../node_modules/date-fns/esm/locale/ar-SA/index.js","../../src/foundation/LocalDatetime/local-datetime.js","../../src/foundation/Helpers/changeDirection.ts","../../src/feature/Membership/close.js","../../src/foundation/Icons/checkmark.ts","../../src/feature/Membership/signup/screens/select-language/markup.js","../../src/feature/Membership/signup/screens/select-language/select-language.js","../../src/feature/Membership/signup/screens/enter-name/markup.js","../../src/foundation/Form/input/input-errors.js","../../src/feature/Membership/signup/screens/enter-name/enter-name.js","../../src/feature/Membership/signup/screens/enter-email/markup.js","../../src/foundation/Helpers/validate.ts","../../src/foundation/Api/fetcher.ts","../../src/foundation/Api/http.ts","../../node_modules/animejs/lib/anime.es.js","../../src/foundation/Components/button/make-button-load.js","../../src/feature/Membership/signup/screens/enter-email/enter-email.js","../../src/feature/Membership/helpers/reCaptcha.js","../../src/foundation/Form/input/toggle-visible-password.js","../../src/foundation/Icons/view-password.ts","../../src/feature/Membership/signup/screens/password/markup.js","../../src/feature/Membership/signup/screens/password/password.js","../../src/feature/Membership/signup/screens/select-topics/markup.js","../../src/foundation/Styles/easings.ts","../../src/foundation/Styles/durations.ts","../../src/feature/Membership/signup/screens/select-topics/select-topics.js","../../src/foundation/Icons/aramco-life-pale.ts","../../src/foundation/Icons/aramco-logo.ts","../../src/feature/Membership/signup/screens/splash/markup.js","../../src/feature/Membership/signup/screens/splash/splash.js","../../src/feature/Membership/signup/screens/confirmation/markup.js","../../src/feature/Membership/signup/screens/confirmation/confirmation.js","../../src/feature/Membership/constants.ts","../../src/foundation/Helpers/queryString.ts","../../src/foundation/Helpers/cookie.ts","../../src/feature/Membership/login/screens/login/markup.js","../../src/feature/Membership/notification/notificationMarkup.js","../../src/foundation/Loaders/loader.ts","../../src/feature/Membership/login/screens/login/login.js","../../src/feature/Membership/login/screens/forgot-password/markup.js","../../src/feature/Membership/login/screens/forgot-password/forgot-password.js","../../src/feature/Membership/login/screens/forgot-password-confirmation/markup.js","../../src/feature/Membership/login/screens/forgot-password-confirmation/forgot-password-confirmation.js","../../src/feature/Membership/login/screens/reset-password/markup.js","../../src/feature/Membership/login/screens/reset-password/reset-password.js","../../src/feature/Membership/profile/newsletter/markup.js","../../src/foundation/Icons/people.ts","../../src/feature/Membership/profile/dependent/markup.js","../../src/foundation/Icons/lock.ts","../../src/feature/Membership/profile/markup.js","../../src/feature/Membership/profile/newsletter/newsletter.js","../../src/foundation/Components/snackbar/snackbar.js","../../src/feature/Membership/profile/profile.js","../../src/foundation/Icons/plus.ts","../../src/feature/Membership/profile/dependent/screens/overview/list-markup.js","../../src/feature/Membership/profile/dependent/screens/overview/list-item-markup.js","../../src/feature/Membership/profile/dependent/screens/overview/overview.js","../../src/feature/Membership/profile/dependent/screens/add-dependent/markup.js","../../src/feature/Membership/profile/dependent/screens/add-dependent/add-dependent.js","../../src/feature/Membership/profile/dependent/screens/confirm-add/markup.js","../../src/feature/Membership/profile/dependent/screens/confirm-add/confirm-add.js","../../src/feature/Membership/profile/dependent/screens/host-overview/markup.js","../../src/feature/Membership/profile/dependent/screens/host-overview/host-markup.js","../../src/feature/Membership/profile/dependent/screens/host-overview/host-overview.js","../../src/feature/Membership/profile/dependent/dependent.js","../../src/feature/Membership/profile/edit-name/markup.js","../../src/feature/Membership/profile/edit-name/edit-name.js","../../src/feature/Membership/profile/change-password/markup.js","../../src/feature/Membership/profile/change-password/change-password.js","../../src/feature/Membership/membership.js","../../src/feature/Membership/signup-ribbon/signup-ribbon.js","../../src/foundation/Components/onetrust-toggle/onetrust-toggle.js","../../src/feature/GreetingCard/greeting/inputs/buildTextInput.js","../../src/feature/GreetingCard/greeting/templates/step-three.js","../../src/feature/GreetingCard/greeting/templates/step-four.js","../../src/feature/GreetingCard/greeting/inputs/buildTextareaInput.js","../../src/feature/GreetingCard/greeting/inputs/buildRadioInput.js","../../src/feature/GreetingCard/greeting/templates/step-two.js","../../src/feature/GreetingCard/greeting/inputs/buildRadioIconInput.js","../../src/feature/GreetingCard/greeting/templates/step-one.js","../../src/foundation/Dom/scrollTo.ts","../../src/foundation/PatternMatching/email.js","../../src/foundation/PatternMatching/password.js","../../src/foundation/Dom/setInputPattern.ts","../../src/foundation/FormValidate/index.js","../../node_modules/html2canvas/dist/html2canvas.esm.js","../../src/feature/GreetingCard/greeting/greeting.js","../../src/project/AramcoLife/press-release-list/markup/pressReleaseItemMarkup.js","../../src/project/AramcoLife/press-release-list/press-release-list.js","../../src/feature/Article/audioplayer/icons/icons.js","../../src/feature/Article/audioplayer/markup/audioBar.js","../../src/feature/Article/audioplayer/audioplayer.js","../../src/foundation/Bootstrapper/index.ts","../../src/feature/Navigation/navigation.js","../../src/project/AramcoLife/header/header.ts","../../src/foundation/Events/onClickOutside.ts","../../src/feature/Navigation/section-sub/section-sub-navigation.ts","../../src/project/AramcoLife/services/feedbackService.ts","../../src/project/AramcoLife/feedback/feedback.ts","../../node_modules/swiper/shared/ssr-window.esm.mjs","../../node_modules/swiper/shared/utils.mjs","../../node_modules/swiper/shared/swiper-core.mjs","../../node_modules/swiper/shared/create-element-if-not-defined.mjs","../../node_modules/swiper/modules/navigation.mjs","../../node_modules/swiper/shared/classes-to-selector.mjs","../../node_modules/swiper/modules/pagination.mjs","../../node_modules/swiper/modules/autoplay.mjs","../../node_modules/swiper/shared/effect-init.mjs","../../node_modules/swiper/shared/effect-target.mjs","../../node_modules/swiper/shared/effect-virtual-transition-end.mjs","../../node_modules/swiper/shared/create-shadow.mjs","../../node_modules/swiper/modules/effect-creative.mjs","../../src/foundation/Helpers/isMobile.ts","../../src/project/AramcoLife/top-story-slider/top-story-slider.ts","../../src/foundation/Theme/theme-context.ts","../../src/foundation/Dictionary/index.ts","../../src/foundation/Components/dialog/useDialog.ts","../../src/foundation/Icons/bin.ts","../../src/foundation/Icons/bookmark.ts","../../src/foundation/Icons/img-placeholder.ts","../../src/project/AramcoLife/services/bookmarkService.ts","../../src/project/AramcoLife/bookmarks/useBookmarkCount.ts","../../src/project/AramcoLife/bookmarks/useToogleBookmark.ts","../../src/project/AramcoLife/bookmarks/open-bookmarks.ts","../../src/project/AramcoLife/volunteer/owner-event/owner-event-tabs/markup/applicantOverviewMarkup.js","../../src/foundation/Helpers/extendedScrollLock.ts","../../src/project/AramcoLife/volunteer/owner-event/owner-event-tabs/markup/filterMarkup.js","../../src/project/AramcoLife/volunteer/owner-event/owner-event-tabs/owner-event-tabs.js","../../src/project/AramcoLife/volunteer/signup/inputs/buildTextInput.js","../../src/project/AramcoLife/volunteer/signup/templates/step-one.js","../../src/project/AramcoLife/volunteer/signup/inputs/buildRadioButtonInput.js","../../src/project/AramcoLife/volunteer/signup/inputs/buildRadioIconInput.js","../../src/project/AramcoLife/volunteer/signup/templates/step-two.js","../../src/project/AramcoLife/volunteer/signup/templates/step-three.js","../../src/project/AramcoLife/volunteer/signup/inputs/buildRadioInput.js","../../src/project/AramcoLife/volunteer/signup/templates/step-four.js","../../src/project/AramcoLife/volunteer/signup/inputs/buildTextareaInput.js","../../src/project/AramcoLife/volunteer/signup/inputs/buildCheckboxInput.js","../../src/project/AramcoLife/volunteer/signup/templates/step-five.js","../../src/project/AramcoLife/volunteer/signup/templates/step-six.js","../../src/project/AramcoLife/volunteer/signup/templates/step-seven.js","../../src/project/AramcoLife/volunteer/signup/templates/step-eight.js","../../src/project/AramcoLife/volunteer/signup/volunteer-signup.js","../../src/project/AramcoLife/volunteer/survey/survey.js","../../src/project/AramcoLife/volunteer/certificate/certificate-download.js","../../src/feature/Membership/services/membershipSignupPromptService.ts","../../src/project/AramcoLife/restricted-content/open-restrict-content.ts","../../src/project/AramcoLife/article/pdf-viewer/loadAdobePDFScript.js","../../src/project/AramcoLife/article/pdf-viewer/pdf-viewer.js","../../src/feature/Article/services/articleService.ts","../../src/feature/Article/action-bar/share/share.ts","../../src/project/AramcoLife/header-search/header-search.ts","../../src/project/AramcoLife/announcement/announcement-slider.ts","../../src/project/AramcoLife/sticky-badge/sticky-badge.ts","../../src/project/AramcoLife/index.ts"],"sourcesContent":["export const isExperienceEditor =\r\n\tdocument.body.classList.contains(\"pagemode-edit\");\r\n","const e=\"undefined\"!=typeof window,i=e&&!(\"onscroll\"in window)||\"undefined\"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),n=e&&window.devicePixelRatio>1;export{i as isBot,n as isHiDpi,e as runningOnBrowser};\n","import{isBot as l,runningOnBrowser as e}from\"./environment.js\";const a={elements_selector:\".lazy\",container:l||e?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_bg_set:\"bg-set\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"loading\",class_loaded:\"loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},t=l=>Object.assign({},a,l);export{t as getExtendedSettings};\n","const t=function(t,e){let n;const i=\"LazyLoad::Initialized\",o=new t(e);try{n=new CustomEvent(i,{detail:{instance:o}})}catch(t){n=document.createEvent(\"CustomEvent\"),n.initCustomEvent(i,!1,!1,{instance:o})}window.dispatchEvent(n)},e=(e,n)=>{if(n)if(n.length)for(let i,o=0;i=n[o];o+=1)t(e,i);else t(e,n)};export{e as autoInitialize};\n","const s=\"src\",t=\"srcset\",r=\"sizes\",e=\"poster\",a=\"llOriginalAttrs\",c=\"data\";export{c as DATA,a as ORIGINALS,e as POSTER,r as SIZES,s as SRC,t as SRCSET};\n","const e=\"loading\",d=\"loaded\",o=\"applied\",r=\"entered\",a=\"error\",n=\"native\";export{o as statusApplied,r as statusEntered,a as statusError,d as statusLoaded,e as statusLoading,n as statusNative};\n","import{statusNative as t,statusLoading as e,statusError as l,statusLoaded as u,statusApplied as n}from\"./elementStatus.js\";const r=\"data-\",s=\"ll-status\",o=(t,e)=>t.getAttribute(r+e),i=(t,e,l)=>{const u=r+e;null!==l?t.setAttribute(u,l):t.removeAttribute(u)},a=t=>o(t,s),m=(t,e)=>i(t,s,e),b=t=>m(t,null),A=t=>null===a(t),c=t=>a(t)===e,d=t=>a(t)===l,f=e=>a(e)===t,p=[e,u,n,l],x=t=>p.indexOf(a(t))>=0;export{o as getData,a as getStatus,x as hadStartedLoading,A as hasEmptyStatus,d as hasStatusError,c as hasStatusLoading,f as hasStatusNative,b as resetStatus,i as setData,m as setStatus};\n","const o=(o,t,i,n)=>{o&&\"function\"==typeof o&&(void 0===n?void 0===i?o(t):o(t,i):o(t,i,n))};export{o as safeCallback};\n","import{runningOnBrowser as s}from\"./environment.js\";const o=(o,t)=>{s&&\"\"!==t&&o.classList.add(t)},t=(o,t)=>{s&&\"\"!==t&&o.classList.remove(t)};export{o as addClass,t as removeClass};\n","const e=e=>{e.llTempImage=document.createElement(\"IMG\")},l=e=>{delete e.llTempImage},m=e=>e.llTempImage;export{e as addTempImage,l as deleteTempImage,m as getTempImage};\n","const e=(e,n)=>{if(!n)return;const r=n._observer;r&&r.unobserve(e)},n=e=>{e.disconnect()},r=(n,r,o)=>{r.unobserve_entered&&e(n,o)};export{n as resetObserver,e as unobserve,r as unobserveEntered};\n","const o=(o,t)=>{o&&(o.loadingCount+=t)},t=o=>{o&&(o.toLoadCount-=1)},n=(o,t)=>{o&&(o.toLoadCount=t)},a=o=>o.loadingCount>0,d=o=>o.toLoadCount>0;export{t as decreaseToLoadCount,d as haveElementsToLoad,a as isSomethingLoading,n as setToLoadCount,o as updateLoadingCount};\n","const e=e=>{let t=[];for(let r,a=0;r=e.children[a];a+=1)\"SOURCE\"===r.tagName&&t.push(r);return t},t=(t,r)=>{const a=t.parentNode;a&&\"PICTURE\"===a.tagName&&e(a).forEach(r)},r=(t,r)=>{e(t).forEach(r)};export{t as forEachPictureSource,r as forEachVideoSource};\n","import{ORIGINALS as t,SRC as e,POSTER as r,SRCSET as o,SIZES as n,DATA as a}from\"./constants.js\";const c=[e],s=[e,r],u=[e,o,n],g=[a],b=e=>!!e[t],i=e=>e[t],m=e=>delete e[t],f=(e,r)=>{if(b(e))return;const o={};r.forEach((t=>{o[t]=e.getAttribute(t)})),e[t]=o},d=e=>{b(e)||(e[t]={backgroundImage:e.style.backgroundImage})},k=(t,e)=>{if(!b(t))return;const r=i(t);e.forEach((e=>{((t,e,r)=>{r?t.setAttribute(e,r):t.removeAttribute(e)})(t,e,r[e])}))},I=t=>{if(!b(t))return;const e=i(t);t.style.backgroundImage=e.backgroundImage};export{g as attrsData,c as attrsSrc,s as attrsSrcPoster,u as attrsSrcSrcsetSizes,m as deleteOriginalAttrs,i as getOriginalAttrs,b as hasOriginalAttrs,k as restoreOriginalAttrs,I as restoreOriginalBgImage,d as saveOriginalBackgroundStyle,f as setOriginalsObject};\n","import{SRC as t,POSTER as a,DATA as s,SIZES as o,SRCSET as r}from\"./constants.js\";import{getData as e,setStatus as m}from\"./data.js\";import{statusApplied as i,statusLoading as c}from\"./elementStatus.js\";import{safeCallback as d}from\"./callback.js\";import{addClass as l}from\"./class.js\";import{getTempImage as n}from\"./tempImage.js\";import{isHiDpi as p}from\"./environment.js\";import{unobserve as _}from\"./unobserve.js\";import{updateLoadingCount as g}from\"./counters.js\";import{forEachPictureSource as b,forEachVideoSource as u}from\"./forEachSource.js\";import{setOriginalsObject as f,attrsSrcSrcsetSizes as j,attrsSrc as I,attrsSrcPoster as k,attrsData as A}from\"./originalAttributes.js\";const E=(t,a,s)=>{l(t,a.class_applied),m(t,i),s&&(a.unobserve_completed&&_(t,a),d(a.callback_applied,t,s))},h=(t,a,s)=>{l(t,a.class_loading),m(t,c),s&&(g(s,1),d(a.callback_loading,t,s))},v=(t,a,s)=>{s&&t.setAttribute(a,s)},y=(a,s)=>{v(a,o,e(a,s.data_sizes)),v(a,r,e(a,s.data_srcset)),v(a,t,e(a,s.data_src))},M=(t,a)=>{b(t,(t=>{f(t,j),y(t,a)})),f(t,j),y(t,a)},N=(a,s)=>{f(a,I),v(a,t,e(a,s.data_src))},O=(s,o)=>{u(s,(a=>{f(a,I),v(a,t,e(a,o.data_src))})),f(s,k),v(s,a,e(s,o.data_poster)),v(s,t,e(s,o.data_src)),s.load()},S=(t,a)=>{f(t,A),v(t,s,e(t,a.data_src))},$=(a,s,o)=>{const r=e(a,s.data_bg),m=e(a,s.data_bg_hidpi),i=p&&m?m:r;i&&(a.style.backgroundImage=`url(\"${i}\")`,n(a).setAttribute(t,i),h(a,s,o))},x=(t,a,s)=>{const o=e(t,a.data_bg_multi),r=e(t,a.data_bg_multi_hidpi),m=p&&r?r:o;m&&(t.style.backgroundImage=m,E(t,a,s))},z=(t,a,s)=>{const o=e(t,a.data_bg_set);if(!o)return;let r=o.split(\"|\").map((t=>`image-set(${t})`));t.style.backgroundImage=r.join(),E(t,a,s)},B={IMG:M,IFRAME:N,VIDEO:O,OBJECT:S},C=(t,a)=>{const s=B[t.tagName];s&&s(t,a)},D=(t,a,s)=>{const o=B[t.tagName];o&&(o(t,a),h(t,a,s))};export{E as manageApplied,h as manageLoading,v as setAttributeIfValue,$ as setBackground,y as setImageAttributes,z as setImgsetBackground,x as setMultiBackground,D as setSources,N as setSourcesIframe,M as setSourcesImg,C as setSourcesNative,S as setSourcesObject,O as setSourcesVideo};\n","import{addClass as r,removeClass as o}from\"./class.js\";import{safeCallback as s}from\"./callback.js\";import{hasStatusNative as e,setStatus as t}from\"./data.js\";import{statusLoaded as l,statusError as a}from\"./elementStatus.js\";import{getTempImage as n,deleteTempImage as i}from\"./tempImage.js\";import{unobserve as m}from\"./unobserve.js\";import{isSomethingLoading as c,haveElementsToLoad as d,updateLoadingCount as f,decreaseToLoadCount as p}from\"./counters.js\";import{restoreOriginalAttrs as E,attrsSrcSrcsetSizes as v}from\"./originalAttributes.js\";const _=[\"IMG\",\"IFRAME\",\"VIDEO\",\"OBJECT\"],j=r=>_.indexOf(r.tagName)>-1,b=(r,o)=>{!o||c(o)||d(o)||s(r.callback_finish,o)},L=(r,o,s)=>{r.addEventListener(o,s),r.llEvLisnrs[o]=s},u=(r,o,s)=>{r.removeEventListener(o,s)},g=r=>!!r.llEvLisnrs,I=(r,o,s)=>{g(r)||(r.llEvLisnrs={});const e=\"VIDEO\"===r.tagName?\"loadeddata\":\"load\";L(r,e,o),L(r,\"error\",s)},k=r=>{if(!g(r))return;const o=r.llEvLisnrs;for(let s in o){const e=o[s];u(r,s,e)}delete r.llEvLisnrs},O=(r,s,e)=>{i(r),f(e,-1),p(e),o(r,s.class_loading),s.unobserve_completed&&m(r,e)},x=(o,a,n,i)=>{const m=e(a);O(a,n,i),r(a,n.class_loaded),t(a,l),s(n.callback_loaded,a,i),m||b(n,i)},A=(o,l,n,i)=>{const m=e(l);O(l,n,i),r(l,n.class_error),t(l,a),s(n.callback_error,l,i),n.restore_on_error&&E(l,v),m||b(n,i)},D=(r,o,s)=>{const e=n(r)||r;g(e)||I(e,(t=>{x(0,r,o,s),k(e)}),(t=>{A(0,r,o,s),k(e)}))};export{L as addEventListener,I as addEventListeners,D as addOneShotEventListeners,b as checkFinish,O as doneHandler,A as errorHandler,g as hasEventListeners,j as hasLoadEvent,x as loadHandler,u as removeEventListener,k as removeEventListeners};\n","import{setBackground as t,setMultiBackground as o,setImgsetBackground as r,setSources as m,setSourcesNative as e}from\"./set.js\";import{setStatus as i}from\"./data.js\";import{hasLoadEvent as s,addOneShotEventListeners as p}from\"./event.js\";import{statusNative as a}from\"./elementStatus.js\";import{addTempImage as f}from\"./tempImage.js\";import{saveOriginalBackgroundStyle as j}from\"./originalAttributes.js\";const n=(e,i,a)=>{s(e)?((t,o,r)=>{p(t,o,r),m(t,o,r)})(e,i,a):((m,e,i)=>{f(m),p(m,e,i),j(m),t(m,e,i),o(m,e,i),r(m,e,i)})(e,i,a)},l=(t,o,r)=>{t.setAttribute(\"loading\",\"lazy\"),p(t,o,r),e(t,o),i(t,a)};export{n as load,l as loadNative};\n","import{SRC as t,SRCSET as r,SIZES as o}from\"./constants.js\";import{forEachPictureSource as e}from\"./forEachSource.js\";const m=e=>{e.removeAttribute(t),e.removeAttribute(r),e.removeAttribute(o)},i=t=>{e(t,(t=>{m(t)})),m(t)};export{i as resetSourcesImg};\n","import{removeClass as s}from\"./class.js\";import{resetStatus as o,hasEmptyStatus as a,hasStatusNative as r}from\"./data.js\";import{forEachPictureSource as t,forEachVideoSource as e}from\"./forEachSource.js\";import{deleteOriginalAttrs as l,restoreOriginalBgImage as c,restoreOriginalAttrs as i,attrsSrcSrcsetSizes as m,attrsSrc as d,attrsSrcPoster as p,attrsData as _}from\"./originalAttributes.js\";const f=s=>{t(s,(s=>{i(s,m)})),i(s,m)},n=s=>{e(s,(s=>{i(s,d)})),i(s,p),s.load()},j=s=>{i(s,d)},E=s=>{i(s,_)},g={IMG:f,IFRAME:j,VIDEO:n,OBJECT:E},I=(t,e)=>{(s=>{const o=g[s.tagName];o?o(s):c(s)})(t),((o,t)=>{a(o)||r(o)||(s(o,t.class_entered),s(o,t.class_exited),s(o,t.class_applied),s(o,t.class_loading),s(o,t.class_loaded),s(o,t.class_error))})(t,e),o(t),l(t)};export{I as restore,j as restoreIframe,f as restoreImg,E as restoreObject,n as restoreVideo};\n","import{removeEventListeners as o}from\"./event.js\";import{resetSourcesImg as r}from\"./reset.js\";import{restoreImg as t}from\"./restore.js\";import{safeCallback as m}from\"./callback.js\";import{removeClass as s}from\"./class.js\";import{updateLoadingCount as a}from\"./counters.js\";import{hasStatusLoading as c,resetStatus as e}from\"./data.js\";const i=(i,l,p,f)=>{p.cancel_on_exit&&c(i)&&\"IMG\"===i.tagName&&(o(i),r(i),t(i),s(i,p.class_loading),a(f,-1),e(i),m(p.callback_cancel,i,l,f))};export{i as cancelLoading};\n","import{safeCallback as t}from\"./callback.js\";import{load as o}from\"./load.js\";import{hadStartedLoading as s,setStatus as r,hasEmptyStatus as e}from\"./data.js\";import{cancelLoading as a}from\"./cancelOnExit.js\";import{unobserveEntered as m}from\"./unobserve.js\";import{statusEntered as c}from\"./elementStatus.js\";import{addClass as l,removeClass as i}from\"./class.js\";const n=(e,a,n,p)=>{const f=s(e);r(e,c),l(e,n.class_entered),i(e,n.class_exited),m(e,n,p),t(n.callback_enter,e,a,p),f||o(e,n,p)},p=(o,s,r,m)=>{e(o)||(l(o,r.class_exited),a(o,s,r,m),t(r.callback_exit,o,s,m))};export{n as onEnter,p as onExit};\n","import{loadNative as o}from\"./load.js\";import{setToLoadCount as e}from\"./counters.js\";const t=[\"IMG\",\"IFRAME\",\"VIDEO\"],r=o=>o.use_native&&\"loading\"in HTMLImageElement.prototype,a=(r,a,m)=>{r.forEach((e=>{-1!==t.indexOf(e.tagName)&&o(e,a,m)})),e(m,0)};export{a as loadAllNative,r as shouldUseNative};\n","import{onEnter as r,onExit as e}from\"./intersectionHandlers.js\";import{shouldUseNative as o}from\"./native.js\";import{resetObserver as t}from\"./unobserve.js\";const n=r=>r.isIntersecting||r.intersectionRatio>0,s=(r,e)=>{e.forEach((e=>{r.observe(e)}))},i=(r,e)=>{t(r),s(r,e)},a=(t,s)=>{o(t)||(s._observer=new IntersectionObserver((o=>{((o,t,s)=>{o.forEach((o=>n(o)?r(o.target,o,t,s):e(o.target,o,t,s)))})(o,t,s)}),(r=>({root:r.container===document?null:r.container,rootMargin:r.thresholds||r.threshold+\"px\"}))(t)))};export{n as isIntersecting,s as observeElements,a as setObserver,i as updateObserver};\n","import{hasEmptyStatus as e,hasStatusError as r}from\"./data.js\";const t=e=>Array.prototype.slice.call(e),l=e=>e.container.querySelectorAll(e.elements_selector),o=r=>t(r).filter(e),c=e=>r(e),a=e=>t(e).filter(c),i=(e,r)=>o(e||l(r));export{o as excludeManagedElements,a as filterErrorElements,i as getElementsToLoad,c as hasError,l as queryElements,t as toArray};\n","import{runningOnBrowser as n}from\"./environment.js\";import{resetStatus as o}from\"./data.js\";import{removeClass as e}from\"./class.js\";import{filterErrorElements as r,queryElements as i}from\"./dom.js\";const t=(n,t)=>{r(i(n)).forEach((r=>{e(r,n.class_error),o(r)})),t.update()},m=(o,e)=>{n&&(e._onlineHandler=()=>{t(o,e)},window.addEventListener(\"online\",e._onlineHandler))},s=o=>{n&&window.removeEventListener(\"online\",o._onlineHandler)};export{s as resetOnlineCheck,t as retryLazyLoad,m as setOnlineCheck};\n","import{getExtendedSettings as t}from\"./defaults.js\";import{autoInitialize as o}from\"./autoInitialize.js\";import{load as s}from\"./load.js\";import{setObserver as i,updateObserver as e}from\"./intersectionObserver.js\";import{runningOnBrowser as r,isBot as n}from\"./environment.js\";import{shouldUseNative as m,loadAllNative as h}from\"./native.js\";import{setOnlineCheck as l,resetOnlineCheck as a}from\"./online.js\";import{getElementsToLoad as d,queryElements as f}from\"./dom.js\";import{resetStatus as p}from\"./data.js\";import{setToLoadCount as c}from\"./counters.js\";import{unobserve as u}from\"./unobserve.js\";import{restore as j}from\"./restore.js\";import{deleteOriginalAttrs as _}from\"./originalAttributes.js\";const g=function(o,s){const e=t(o);this._settings=e,this.loadingCount=0,i(e,this),l(e,this),this.update(s)};g.prototype={update:function(t){const o=this._settings,s=d(t,o);c(this,s.length),n?this.loadAll(s):m(o)?h(s,o,this):e(this._observer,s)},destroy:function(){this._observer&&this._observer.disconnect(),a(this),f(this._settings).forEach((t=>{_(t)})),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){const o=this._settings;d(t,o).forEach((t=>{u(t,this),s(t,o,this)}))},restoreAll:function(){const t=this._settings;f(t).forEach((o=>{j(o,t)}))}},g.load=(o,i)=>{const e=t(i);s(o,e)},g.resetStatus=t=>{p(t)},r&&o(g,window.lazyLoadOptions);export{g as default};\n","export function onScroll(element: Element, callback: EventListenerOrEventListenerObject) {\r\n\telement.addEventListener(\"scroll\", callback)\r\n}\r\n\r\nexport function removeScrollCallback(element: Element, callbackListToRemove: EventListenerOrEventListenerObject) {\r\n\telement.removeEventListener(\"scroll\", callbackListToRemove);\r\n}\r\n","/**\r\n *\r\n * @param {Node|NodeList|Window|Document|Array|object|*} collection - Collection to iterate over. Can be a single element, too.\r\n * @param {function} iterator - Callback function for iterator. Will be called with (value, key) as arguments.\r\n * @param {boolean} [allowNullValues=false] Whether or not to allow the iterator to run if null/undefined is given as a collection.\r\n * @deprecated do not use this\r\n */\r\nexport function forEach(collection: any, iterator: (item: any, index: number) => void, allowNullValues = false) { // eslint-disable-line\r\n\t// ** NODE LISTS\r\n\t// If we're dealing with a node list (see document.querySelectorAll()), we'll iterate through\r\n\t// it the old fashioned way.\r\n\tif (collection instanceof NodeList) {\r\n\t\tfor (let i = 0; i < collection.length; i += 1) {\r\n\t\t\titerator(collection.item(i), i);\r\n\t\t}\r\n\t} else if (Array.isArray(collection)) {\r\n\t\t// ** ARRAYS\r\n\t\t// Regular arrays are, you know, completely easy.\r\n\t\t// Why not use `Array.prototype.forEach()`? Because for all the optimizations behind\r\n\t\t// the scenes, it's still much slower than a simple for-loop.\r\n\t\tfor (let i = 0; i < collection.length; i += 1) {\r\n\t\t\titerator(collection[i], i);\r\n\t\t}\r\n\t} else if (collection && collection.constructor.name === \"Iterator\") {\r\n\t\t// ** ITERATORS\r\n\t\t// If we have an iterator object we'll use the \"for ... of\" method of iterating through it.\r\n\t\tlet index = 0;\r\n\t\tfor (const item of collection) {\r\n\t\t\titerator(item, index);\r\n\t\t\tindex += 1;\r\n\t\t}\r\n\t} else if (collection && typeof collection === \"object\" &&\r\n\t\t!(\r\n\t\t\tcollection instanceof Node ||\r\n\t\t\tcollection instanceof Window ||\r\n\t\t\tcollection instanceof Document\r\n\t\t)\r\n\t) {\r\n\t\t// ** REGULAR OBJECTS\r\n\t\t// Objects that are *NOT* HTML-elements of some kind get special treatment.\r\n\t\tforEach(Object.keys(collection), key => {\r\n\t\t\t// We only want to deal with properties that exist on the object itself,\r\n\t\t\t// not some prototyped stuff.\r\n\t\t\t// eslint-disable-next-line no-prototype-builtins\r\n\t\t\tif (collection.hasOwnProperty(key)) {\r\n\t\t\t\titerator(collection[key], key);\r\n\t\t\t}\r\n\t\t});\r\n\t} else {\r\n\t\t// ** SINGLE NODES OR ELEMENTS\r\n\t\t// Anything that doesn't fit in the cases above will be handled here. We'll just fire the iterator once with the\r\n\t\t// given collection argument, and 0 as the key, and hope that is enough for the use case.\r\n\t\tif (collection || allowNullValues) {\r\n\t\t\titerator(collection, 0);\r\n\t\t}\r\n\t}\r\n}\r\n","import { forEach } from \"./forEach\";\r\n\r\n/**\r\n *\r\n * @param {Array|object|NodeList} collection - Collection to filter. Can be an array, an object or a NodeList.\r\n * @param {function} predicateFunction - Predicate function. Must return a truthy value for filter to include option.\r\n * @returns {Array|Object} An object of the same type as the input collection, containing all entries that pass the predicate function. However, if you pass a NodeList, it will come back as an array instead.\r\n * @deprecated Do not use this!\r\n */\r\nexport function filter(collection: any, predicateFunction: any) { // eslint-disable-line\r\n\tif (Array.isArray(collection)) {\r\n\t\treturn collection.filter(predicateFunction);\r\n\t} else if (typeof collection === \"object\") {\r\n\t\tconst filteredObject: any = {}; // eslint-disable-line\r\n\t\tforEach(collection, (value, key) => {\r\n\t\t\tif (Boolean(predicateFunction(value, key)) === true) {\r\n\t\t\t\tfilteredObject[key] = value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// If a NodeList was passed, return as an array. If not, just throw an object back instead.\r\n\t\treturn collection.constructor === NodeList\r\n\t\t\t? Object.values(filteredObject)\r\n\t\t\t: filteredObject;\r\n\t}\r\n\r\n\treturn collection;\r\n}\r\n","/**\r\n * Handler to trigger callbacks once the browser is ready for them.\r\n *\r\n * The onReady() function is one of the cornerstones of Frontline. You basically feed it a function, or a lot\r\n * of functions, and they will be executed automatically once the browser's readystate changes to something\r\n * close to \"ready\". You can add a priority to move your scripts up in the queue, but the default should suit\r\n * most use cases perfectly.\r\n *\r\n * You can keep adding references using onReady() even after the page is loaded. In that case they will be\r\n * run at once.\r\n *\r\n *\r\n * @module utils/events/onReady\r\n * @author Anders Gissel \r\n *\r\n * @example\r\n * import { onReady } from './utils/events/onReady';\r\n *\r\n * onReady(yourFunctionHere);\r\n *\r\n *\r\n * @example To set a task to high priority:\r\n * onReady(yourFunctionHere, 50);\r\n *\r\n *\r\n * @example To disable automatic execution so you can trigger the ready-state yourself, do this:\r\n * import { documentIsReady, setRunAutomatically, onReady } from './utils/events/onReady';\r\n *\r\n * setRunAutomatically(false); // This must happen BEFORE the first use of onReady()!\r\n * onReady(yourCallbackHere);\r\n * window.setTimeout(documentIsReady, 5000);\r\n *\r\n */\r\n\r\ntype OnReadyFunc = () => void;\r\n\r\ntype FunctionReference = {\r\n\tfunc: OnReadyFunc,\r\n\tpriority: number;\r\n}\r\n\r\n\r\nlet functionReferences: FunctionReference[] = [];\r\n\r\n// Set the initial readyState based on the browser's current state. If the script has been loaded\r\n// asynchronously, the DOM might be ready for us already, in which case there's no reason to delay\r\n// any further processing. The following will evaluate as true if the DOM is ready, or the page is\r\n// complete.\r\nlet readyState = document.readyState === \"interactive\" || document.readyState === \"complete\";\r\n\r\n// Defines whether or not the window.onReady event has been bound, so we won't do it twice. That\r\n// would just be stupid.\r\nlet readyEventBound = false;\r\n\r\n/**\r\n * Whether or not the callbacks are run automatically\r\n *\r\n * @type {boolean}\r\n */\r\nexport let runAutomatically = true;\r\n\r\n/**\r\n * Sort and run the given array of callback functions.\r\n *\r\n * @private\r\n * @param {Array} funcArray\r\n */\r\nfunction runFunctionArray(funcArray: FunctionReference[]) {\r\n\tfuncArray.sort((a, b) => a.priority - b.priority);\r\n\tfuncArray.forEach(funcRef => funcRef.func());\r\n}\r\n\r\n/**\r\n * Empty the callback arrays\r\n *\r\n * @private\r\n */\r\nfunction emptyCallbackArrays() {\r\n\t// Keep iterating through the function references until there are none left.\r\n\twhile (functionReferences.length) {\r\n\t\t// Set up a temporary array that mirrors the list of callbacks, and empty the real one.\r\n\t\tconst tempArray = functionReferences.slice(0);\r\n\t\tfunctionReferences = [];\r\n\r\n\t\t// Run the callbacks. The callbacks themselves may set up more callbacks, which\r\n\t\t// is why we keep looping the array until we're done.\r\n\t\trunFunctionArray(tempArray);\r\n\t}\r\n\r\n\t// At this point we'll assume we're ready for anything!\r\n\treadyState = true;\r\n}\r\n\r\n/**\r\n * Make sure the \"ready\"-event is set.\r\n *\r\n * @private\r\n */\r\nfunction bindReadyEvent() {\r\n\tif (!readyEventBound) {\r\n\t\t// Set up our own document-ready-function to run when the DOM is ready, or whatever.\r\n\t\twindow.addEventListener(\"load\", emptyCallbackArrays, false);\r\n\t\treadyEventBound = true;\r\n\t}\r\n}\r\n\r\n/**\r\n * External function to mark the code as being ready. Must be used if runAutomatically is set to false.\r\n */\r\nexport function documentIsReady() {\r\n\t// Continue at once if the DOM is ready; otherwise wait for the browser to catch up by\r\n\t// attaching an event listener.\r\n\tif (readyState) {\r\n\t\temptyCallbackArrays();\r\n\t} else {\r\n\t\tbindReadyEvent();\r\n\t}\r\n}\r\n\r\n/**\r\n * Set whether or not the tasks should be run automatically when the page is ready or not.\r\n *\r\n * @param {boolean} state - Whether or not to run the tasks automatically.\r\n */\r\nexport function setRunAutomatically(state = true) {\r\n\trunAutomatically = state;\r\n}\r\n\r\n/**\r\n * Register a function to run when the page is ready.\r\n *\r\n * @param {Function} functionReference - The function you want to run.\r\n * @param {Number} [priority=100] - Priority of your callback. Default should be 100, anything under 25 is very-high priority and should be avoided unless you know what you're doing!\r\n * @deprecated do not use this\r\n */\r\nexport function onReady(functionReference: FunctionReference | OnReadyFunc, priority = 100) {\r\n\tif (typeof functionReference === \"function\") {\r\n\t\tif (readyState && runAutomatically) {\r\n\t\t\tfunctionReference();\r\n\t\t} else {\r\n\t\t\tif (runAutomatically) {\r\n\t\t\t\tbindReadyEvent();\r\n\t\t\t}\r\n\r\n\t\t\tfunctionReferences.push({\r\n\t\t\t\tfunc: functionReference,\r\n\t\t\t\tpriority\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","/**\r\n * Responsive window handler to detect **window resizing**, **orientation changes** and **active breakpoints**.\r\n *\r\n * This module exposes a set of tools to detect when the window has been resized or the orientation has\r\n * changed. It also figures out which breakpoint is currently active, and provides a set of tools to compare\r\n * breakpoint sizes programmatically.\r\n *\r\n * All callbacks are throttled to avoid using too many CPU cycles.\r\n *\r\n * Breakpoints are imported from `src/site-settings.json` automatically. Please remember to add them in order.\r\n *\r\n *\r\n * @module utils/events/onWindowResize\r\n * @author Anders Gissel \r\n *\r\n * @example Basic usage\r\n * import { onWindowResize } from './utils/events/onWindowResize';\r\n *\r\n * function resizeHasHappened() {}\r\n * onWindowResize(resizeHasHappened);\r\n *\r\n *\r\n * @example To figure out the active breakpoint, as well as some other stuff:\r\n * import { currentWindowWidth,\r\n * currentWindowHeight,\r\n * currentBreakpoint,\r\n * breakpointIndex,\r\n * onWindowResize\r\n * } from './utils/events/onWindowResize';\r\n *\r\n * function resizeHasHappened() {\r\n * window.console.log(currentWindowWidth, currentWindowHeight);\r\n *\r\n * if (currentBreakpoint >= breakpointIndex.md) {\r\n * window.console.info(\"Breakpoint is at least 'md'.\");\r\n * }\r\n * }\r\n *\r\n * onWindowResize(resizeHasHappened);\r\n *\r\n */\r\n\r\nimport { forEach } from \"~/foundation/Helpers/forEach\";\r\nimport { filter } from \"~/foundation/Helpers/filter\";\r\nimport { onReady } from \"./onReady\";\r\nimport throttle from \"lodash-es/throttle\";\r\n\r\n// This will be replaced with the actual site settings during compilation by Webpack.\r\n//const siteSettings = \"##INJECT_SITE_SETTINGS##\";\r\n\r\ntype WindowResizeFunc = (data?: {\r\n\tcurrentWindowWidth?: number,\r\n\tcurrentWindowHeight?: number,\r\n\tcurrentBreakpoint?: number,\r\n\tcurrentBreakpointName?: Breakpoint\r\n}) => void;\r\n\r\nlet functionQueue: WindowResizeFunc[] = [];\r\n\r\n/**\r\n * The current width of the window.\r\n *\r\n * @type {number}\r\n */\r\nexport let currentWindowWidth = 0;\r\n\r\n/**\r\n * The current height of the window.\r\n *\r\n * @type {number}\r\n */\r\nexport let currentWindowHeight = 0;\r\n\r\nexport const screensizes = {\r\n\t\"unknown\": \"0\",\r\n\t\"xxs\": \"1px\",\r\n\t\"xs-i5\": \"320px\",\r\n\t\"xs-i5-h\": \"569px\",\r\n\t\"xs-i6\": \"375px\",\r\n\t\"xs-i6-h\": \"700px\",\r\n\t\"xs\": \"480px\",\r\n\t\"sm\": \"768px\",\r\n\t\"md\": \"992px\",\r\n\t\"lg\": \"1366px\",\r\n\t\"xl\": \"1920px\"\r\n}\r\n\r\ntype Breakpoint = keyof typeof screensizes;\r\n\r\n/**\r\n * An array of screen sizes, in order to easily being able to identify the current breakpoint corresponding\r\n * to the active media query. Will be populated automatically from screen sizes set in \"site-settings.json\".\r\n */\r\n// eslint-disable-next-line\r\n// @ts-ignore\r\nexport const breakpointIndex: Record = {};\r\n\r\n/**\r\n * The timeout for the resize throttle. Set to \"0\" to disable (!) throttling.\r\n *\r\n * @type {number}\r\n * @private\r\n */\r\nconst resizeThrottleTimeout = 500;\r\n\r\n/**\r\n * An object containing pre-parsed target screen sizes for our breakpoints. Will also be populated\r\n * automatically. Used internally only.\r\n */\r\n// eslint-disable-next-line\r\n// @ts-ignore\r\nconst screenSizes: Record = {};\r\n\r\n// Run through the screen sizes in \"site-settings.json\", and populate our \"size objects\" with them.\r\nforEach(screensizes, (size: string, sizeName: any) => { // eslint-disable-line\r\n\t// This index allows us to perform simple size comparisons on the breakpoints.\r\n\r\n\t// This parses the breakpoint size as raw pixels for use in screen width detections later.\r\n\tscreenSizes[sizeName as Breakpoint] = Number(size.replace(/[^0-9]/g, \"\"));\r\n\r\n\t// TODO fix - should be size not sizeCounter?\r\n\t// breakpointIndex[sizeName] = sizeCounter;\r\n\tbreakpointIndex[sizeName as Breakpoint] = screenSizes[sizeName as Breakpoint];\r\n});\r\n\r\n/**\r\n * The current break point. This will correspond to one of the predefined breakpoints, as seen above, so you can\r\n * use it to compare breakpoints directly:\r\n *\r\n * if (currentBreakpoint >= breakpointIndex.md) { ... }\r\n *\r\n * @type {number}\r\n */\r\nexport let currentBreakpoint = 0;\r\n\r\n/**\r\n * The name of the current break point, in case you need it.\r\n *\r\n * @type {string}\r\n */\r\nexport let currentBreakpointName: Breakpoint = \"unknown\";\r\n\r\n/**\r\n * Get various window sizes - width, height etc.\r\n * This function is fired automatically upon page load. and throttled each time the window changes size.\r\n *\r\n * @private\r\n */\r\nfunction getWindowSizes() {\r\n\tcurrentWindowWidth = window.innerWidth;\r\n\tcurrentWindowHeight = window.innerHeight;\r\n\r\n\t// Calculate which breakpoint is currently active, based on the screen width compared to the pre-parsed\r\n\t// breakpoint definitions.\r\n\tlet lastFoundWidth = 0;\r\n\tforEach(screenSizes, (targetScreenWidth: number, associatedBreakpointName: any) => { // eslint-disable-line\r\n\t\tif (currentWindowWidth >= targetScreenWidth && targetScreenWidth > lastFoundWidth) {\r\n\t\t\tlastFoundWidth = targetScreenWidth;\r\n\t\t\tcurrentBreakpoint = breakpointIndex[associatedBreakpointName as Breakpoint];\r\n\t\t\tcurrentBreakpointName = associatedBreakpointName;\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * This function is run every time the window is resized. It's on a throttle, though, so it won't be fired too\r\n * often.\r\n *\r\n * @private\r\n */\r\nfunction performCalculationCallback() {\r\n\t// Get our current window size(s)\r\n\tgetWindowSizes();\r\n\r\n\t// Fire all queued functions that other scripts may have registered.\r\n\tfunctionQueue.forEach(funcRef => {\r\n\t\tfuncRef({\r\n\t\t\tcurrentWindowWidth,\r\n\t\t\tcurrentWindowHeight,\r\n\t\t\tcurrentBreakpoint,\r\n\t\t\tcurrentBreakpointName\r\n\t\t});\r\n\t});\r\n}\r\n\r\n// Set up a throttle, so our callback function isn't fired too often.\r\nconst throttledCalculationCallback = resizeThrottleTimeout\r\n\t? throttle(performCalculationCallback, resizeThrottleTimeout)\r\n\t: performCalculationCallback;\r\n\r\n// Utilize our own \"onready\"-function to bind an event for handling window resizes and orientation changes.\r\nonReady(\r\n\t() => {\r\n\t\twindow.addEventListener(\"resize\", throttledCalculationCallback);\r\n\t\twindow.addEventListener(\r\n\t\t\t\"orientationchange\",\r\n\t\t\tthrottledCalculationCallback\r\n\t\t);\r\n\r\n\t\t// Get our current window size, because we might need the data at once.\r\n\t\tgetWindowSizes();\r\n\t},\r\n\t// Set to priority \"25\", which will put it behind the DOM initiator, but still before all default functions.\r\n\t25\r\n);\r\n\r\n/**\r\n * Schedule a callback to fire each time the window changes shape (on a throttle, so don't worry).\r\n * Your function will be called every time the window is resized, or the window orientation changes.\r\n *\r\n * @param {Function} callback - The callback to fire when the window changes shape.\r\n */\r\nexport function onWindowResize(callback: WindowResizeFunc) {\r\n\tif (typeof callback === \"function\") {\r\n\t\tfunctionQueue.push(callback);\r\n\t}\r\n}\r\n\r\n/**\r\n * Check if the current breakpoint is less than or equal to a specified breakpoint name\r\n * Similar to CSS's `@media (max-width: ...px)`\r\n *\r\n * @param {string} breakpointName - The breakpoint name to check for, ie. `md`.\r\n * @returns {boolean} `true` if the current breakpoint is less or equal to the given breakpoint name.\r\n */\r\nexport function breakpointMax(breakpointName: keyof typeof screensizes) {\r\n\t// eslint-disable-next-line no-prototype-builtins\r\n\tif (breakpointIndex.hasOwnProperty(breakpointName)) {\r\n\t\t// eslint-disable-line\r\n\t\treturn breakpointIndex[breakpointName] >= currentBreakpoint;\r\n\t}\r\n}\r\n\r\n/**\r\n * Check if the current breakpoint is greater than or equal to a specified breakpoint name\r\n * Similar to CSS's `@media (min-width: ...px)`\r\n *\r\n * @param {string} breakpointName - The breakpoint name to check for, ie. `md`.\r\n * @returns {boolean} `true` if the current breakpoint is above or equal to the given breakpoint name.\r\n */\r\nexport function breakpointMin(breakpointName: Breakpoint) {\r\n\t// eslint-disable-next-line no-prototype-builtins\r\n\tif (breakpointIndex.hasOwnProperty(breakpointName)) {\r\n\t\t// eslint-disable-line\r\n\t\treturn breakpointIndex[breakpointName] <= currentBreakpoint;\r\n\t}\r\n}\r\n\r\n/**\r\n * Remove callback function from callback stack.\r\n *\r\n * @param {function} callback - The callback to remove.\r\n */\r\nexport function removeCallback(callback: WindowResizeFunc) {\r\n\tif (typeof callback === \"function\") {\r\n\t\tfunctionQueue = filter(functionQueue, (functionReference: WindowResizeFunc) => functionReference !== callback) as WindowResizeFunc[];\r\n\t}\r\n}\r\n","/**\r\n * @deprecated Do not use this!\r\n */\r\nexport function isElement(element: any) { // eslint-disable-line\r\n\treturn element instanceof Element || element instanceof Document || element instanceof Window;\r\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { currentWindowHeight } from \"~/foundation/Events/onWindowResize\";\r\nimport { isElement } from \"~/foundation/Helpers/typeCheckers\";\r\nimport { forEach } from \"~/foundation/Helpers/forEach\";\r\n\r\n/**\r\n * Check if an element is empty.\r\n */\r\nexport function elementIsEmpty(element: Element, strict = true) {\r\n\treturn strict\r\n\t\t? !element.childNodes.length\r\n\t\t: !element.innerHTML.trim().length;\r\n}\r\n\r\n/**\r\n * Check if an element is hidden in the DOM with `display: none;`\r\n */\r\nexport function elementIsHidden(element: HTMLElement) {\r\n\treturn element.offsetParent === null;\r\n}\r\n\r\n/**\r\n * Check if a given element is within the client viewport\r\n */\r\nexport function elementInViewport(element: HTMLElement, expandMargin = 0) {\r\n\tconst rect = element.getBoundingClientRect();\r\n\tconst span = rect.top + rect.height + expandMargin;\r\n\r\n\treturn (\r\n\t\tspan >= Math.min(0, expandMargin) &&\r\n\t\trect.top <= currentWindowHeight + expandMargin\r\n\t);\r\n}\r\n\r\n/**\r\n * Return the position of an element\r\n */\r\nexport function getElementPosition(element: string | HTMLElement, relativeTo: Window | HTMLElement | string = window) {\r\n\tconst useElement = typeof element === \"string\"\r\n\t\t? document.getElementById(element)\r\n\t\t: element;\r\n\r\n\t// Throw error if element wasn't found\r\n\tif (!useElement) {\r\n\t\tthrow \"getElementPosition did not find an element.\";\r\n\t}\r\n\r\n\tconst useRelativeTo = typeof relativeTo === \"string\"\r\n\t\t? document.getElementById(relativeTo)\r\n\t\t: relativeTo;\r\n\r\n\tif (!useRelativeTo) {\r\n\t\tthrow \"getElementPosition did not find an element to show the position relative to.\";\r\n\t}\r\n\r\n\tif (relativeTo === window) {\r\n\t\tconst rect = useElement.getBoundingClientRect();\r\n\t\treturn {\r\n\t\t\ttop: rect.top + (window.pageYOffset || document.documentElement.scrollTop),\r\n\t\t\tleft: rect.left + (window.pageXOffset || document.documentElement.scrollLeft)\r\n\t\t};\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: useElement.offsetTop - (useRelativeTo as HTMLElement).offsetTop,\r\n\t\tleft: useElement.offsetLeft - (useRelativeTo as HTMLElement).offsetLeft\r\n\t};\r\n}\r\n\r\n/**\r\n * Get the current scroll values of the given element (or window). Will return an object containing\r\n * \"left\" and \"top\" properties, which are set to the scroll values, or false if no compatible element\r\n * was given.\r\n */\r\nexport function getElementScroll(element: HTMLElement | Window = window) {\r\n\tif (!isElement(element)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (element instanceof Window) {\r\n\t\treturn {\r\n\t\t\tleft: element.scrollX || document.documentElement.scrollLeft,\r\n\t\t\ttop: element.scrollY || document.documentElement.scrollTop\r\n\t\t};\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: element.scrollLeft,\r\n\t\ttop: element.scrollTop\r\n\t};\r\n}\r\n\r\n\r\ntype GetElementSizeOptions = {\r\n\tincludeMargin?: boolean;\r\n\tincludeBorder?: boolean;\r\n\tincludePadding?: boolean;\r\n\tpseudoElement?: \":after\" | \":before\";\r\n}\r\n\r\n/**\r\n * Get both width and height of element\r\n */\r\nexport function getElementSize(element: HTMLElement, options: GetElementSizeOptions = {}) {\r\n\t// Get styles\r\n\tconst elementStyle = window.getComputedStyle(\r\n\t\telement,\r\n\t\toptions.pseudoElement\r\n\t);\r\n\r\n\treturn {\r\n\t\twidth: getElementWidth(element, options, elementStyle),\r\n\t\theight: getElementHeight(element, options, elementStyle)\r\n\t};\r\n}\r\n\r\nexport function getElementWidth(element: HTMLElement, options: GetElementSizeOptions = {}, elementStyle: CSSStyleDeclaration | null = null) {\r\n\t// Keep supplied values or set to defaults\r\n\toptions.includeMargin = options.includeMargin === true;\r\n\toptions.includeBorder = options.includeBorder !== false;\r\n\toptions.includePadding = options.includePadding !== false;\r\n\r\n\t// Get styles\r\n\tconst style =\r\n\t\telementStyle || window.getComputedStyle(element, options.pseudoElement);\r\n\r\n\t// Get width including border and padding\r\n\tlet width = element.offsetWidth;\r\n\r\n\t// Calculate width with margin\r\n\tif (options.includeMargin) {\r\n\t\twidth += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\r\n\t}\r\n\r\n\t// Calculate width without border\r\n\tif (!options.includeBorder) {\r\n\t\twidth -=\r\n\t\t\tparseFloat(style.borderLeftWidth) +\r\n\t\t\tparseFloat(style.borderRightWidth);\r\n\t}\r\n\r\n\t// Calculate width without padding\r\n\tif (!options.includePadding) {\r\n\t\twidth -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\r\n\t}\r\n\r\n\treturn width;\r\n}\r\n\r\nexport function getElementHeight(element: HTMLElement, options: GetElementSizeOptions = {}, elementStyle: CSSStyleDeclaration | null = null) {\r\n\t// Keep supplied values or set to defaults\r\n\toptions.includeMargin = options.includeMargin === true;\r\n\toptions.includeBorder = options.includeBorder !== false;\r\n\toptions.includePadding = options.includePadding !== false;\r\n\r\n\t// Get styles\r\n\tconst style =\r\n\t\telementStyle || window.getComputedStyle(element, options.pseudoElement);\r\n\r\n\t// Get height including border and padding\r\n\tlet height = element.offsetHeight;\r\n\r\n\t// Calculate height with margin\r\n\tif (options.includeMargin) {\r\n\t\theight += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\r\n\t}\r\n\r\n\t// Calculate height without border\r\n\tif (!options.includeBorder) {\r\n\t\theight -=\r\n\t\t\tparseFloat(style.borderTopWidth) +\r\n\t\t\tparseFloat(style.borderBottomWidth);\r\n\t}\r\n\r\n\t// Calculate height without padding\r\n\tif (!options.includePadding) {\r\n\t\theight -=\r\n\t\t\tparseFloat(style.paddingTop) + parseFloat(style.paddingBottom);\r\n\t}\r\n\r\n\treturn height;\r\n}\r\n\r\nconst setAttribute = (elementCollection: HTMLElement | HTMLElement[], attributeName: string, attributeValue: string | boolean) =>\r\n\tforEach(elementCollection, (element: HTMLElement) => {\r\n\t\tif (isElement(element)) {\r\n\t\t\t// If the option value is a boolean, we'll check the value of the element's property. If that's a\r\n\t\t\t// boolean as well, we'll set the property \"directly\". This will get rid of those pesky use-cases\r\n\t\t\t// with `disabled=\"true\"` instead of just `disabled`.\r\n\t\t\tif (typeof attributeValue === \"boolean\" && typeof (element as any)?.[attributeName] === \"boolean\") {\r\n\t\t\t\t(element as any)[attributeName] = attributeValue;\r\n\t\t\t} else {\r\n\t\t\t\telement.setAttribute(attributeName, attributeValue as string);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function setAttributes(element: HTMLElement, attributes: string | Record, attributeValue: string | boolean | null = null) {\r\n\tif (typeof attributes === \"object\") {\r\n\t\tforEach(attributes, (value: any, attribute: any) =>\r\n\t\t\tsetAttribute(element, attribute, value)\r\n\t\t);\r\n\t} else {\r\n\t\tif (attributeValue) {\r\n\t\t\tsetAttribute(element, attributes, attributeValue);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function removeAttributes(elements: HTMLElement | HTMLElement[], attributes: string | string[]) {\r\n\tforEach(elements, (element: HTMLElement) => {\r\n\t\tif (isElement(element)) {\r\n\t\t\tforEach(attributes, attribute =>\r\n\t\t\t\telement.removeAttribute(attribute)\r\n\t\t\t);\r\n\t\t}\r\n\t});\r\n}\r\n","/**\r\n * Split a string into an array.\r\n * @deprecated Do not use this!\r\n */\r\nexport function splitter(input: string | string[], callback: (input: string) => void) {\r\n\tconst inputArray =\r\n\t\ttypeof input === \"string\"\r\n\t\t\t? input\r\n\t\t\t\t.replace(/,/gm, \" \") // First, replace commas with spaces\r\n\t\t\t\t.replace(/[\\s]{2,}/gm, \" \") // Then, replace two or more spaces with just one.\r\n\t\t\t\t.trim() // Remove leading/trailing whitespace and similar crap\r\n\t\t\t\t.split(\" \")\r\n\t\t\t: Array.isArray(input)\r\n\t\t\t\t? input\r\n\t\t\t\t: [];\r\n\r\n\tif (typeof callback === \"function\") {\r\n\t\tinputArray.forEach(inputEntry => {\r\n\t\t\tif (inputEntry !== undefined) {\r\n\t\t\t\tcallback(inputEntry);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\treturn inputArray;\r\n}\r\n","import { forEach } from \"~/foundation/Helpers/forEach\";\r\nimport { splitter } from \"~/foundation/Helpers/splitter\";\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function addClass(input: Element | Element[] | NodeList, classNames: string | string[]) {\r\n\tforEach(input, element => {\r\n\t\tsplitter(classNames, className => {\r\n\t\t\tif (element.classList) {\r\n\t\t\t\telement.classList.add(className);\r\n\t\t\t} else {\r\n\t\t\t\telement.className += ` ${className}`;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * @type {function}\r\n * @ignore\r\n * @deprecated\r\n */\r\nexport const add = addClass;\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function hasClass(element: Element, className: string) {\r\n\tif (element && (element.classList || element.className)) {\r\n\t\tif (element.classList) {\r\n\t\t\treturn element.classList.contains(className);\r\n\t\t} else {\r\n\t\t\treturn new RegExp(`(^| ) ${className}( |$)`, \"gi\").test(\r\n\t\t\t\telement.className\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\n/**\r\n * @type {function}\r\n * @ignore\r\n * @deprecated\r\n */\r\nexport const contains = hasClass;\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function removeClass(input: Element | Element[] | NodeListOf, classNames: string | string[]) {\r\n\tforEach(input, element => {\r\n\t\tsplitter(classNames, className => {\r\n\t\t\tif (element.classList) {\r\n\t\t\t\telement.classList.remove(className);\r\n\t\t\t} else {\r\n\t\t\t\telement.className = element.className.replace(\r\n\t\t\t\t\tnew RegExp(\r\n\t\t\t\t\t\t`(^|\\\\b)${className.split(\" \").join(\"|\")}(\\\\b|$)`,\r\n\t\t\t\t\t\t\"gi\"\r\n\t\t\t\t\t),\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\r\n/**\r\n * @type {function}\r\n * @ignore\r\n * @deprecated\r\n */\r\nexport const remove = removeClass;\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function toggleClass(input: Element | Element[] | NodeList, classNames: string | string[], condition?: boolean) {\r\n\tforEach(input, element => {\r\n\t\tsplitter(classNames, className => {\r\n\t\t\tlet classShouldBeIncluded;\r\n\t\t\tconst classIsIncludedAlready = contains(element, className);\r\n\r\n\t\t\t// If a condition is given, we'll use that to figure out if the class should be added or not.\r\n\t\t\tif (condition !== undefined) {\r\n\t\t\t\t// We'll only continue if the condition doesn't match the current state. So we'll only remove the\r\n\t\t\t\t// class if it added already and the condition is \"false\", and vice versa.\r\n\t\t\t\tif (condition !== classIsIncludedAlready) {\r\n\t\t\t\t\tclassShouldBeIncluded = condition;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// No condition was given, so we'll just toggle the class.\r\n\t\t\t\tclassShouldBeIncluded = !classIsIncludedAlready;\r\n\t\t\t}\r\n\r\n\t\t\t// Only continue if a new mode is defined. Otherwise there's no point.\r\n\t\t\tif (classShouldBeIncluded !== undefined) {\r\n\t\t\t\tif (classShouldBeIncluded) {\r\n\t\t\t\t\tadd(element, className);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tremove(element, className);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n","/**\r\n * @module utils/dom/inView\r\n */\r\n\r\nimport { onScroll } from \"~/foundation/Events/onScroll\";\r\nimport { elementInViewport } from \"./elementProperties\";\r\nimport { addClass, removeClass, hasClass } from \"./classList\";\r\n\r\n/**\r\n * @typedef {object} InViewElement - Element for internal use and better insights.\r\n * @private\r\n * @property {HTMLElement} container\r\n * @property {number} [inViewMargin=0]\r\n * @property {string} inViewType\r\n * @property {string} inViewClass\r\n */\r\n\r\n/**\r\n * Prevents additional callbacks if instantiated multiple times\r\n * @private\r\n * @type {boolean}\r\n */\r\nlet callbackIsSet = false;\r\n\r\n/**\r\n * The default margin for inview activation\r\n * @private\r\n * @type {Number}\r\n */\r\nconst defaultMargin = 0;\r\n\r\n/**\r\n * The default type the element will be given\r\n * @private\r\n * @type {string}\r\n */\r\nconst defaultType = \"show\";\r\n\r\n/**\r\n * The default class that'll be added to the element if not other option is given\r\n * @private\r\n * @type {string}\r\n */\r\nconst defaultClass = \"inview\";\r\n\r\n/**\r\n * Array of inViewElements\r\n * @private\r\n * @type {InViewElement[]}\r\n */\r\nconst inViewElementsArray = [];\r\n\r\n/**\r\n * Toggles element based on \"inViewType\" and scroll position\r\n * @private\r\n */\r\nfunction toggleInViewState() {\r\n\t// Gets number of inview-items from setup\r\n\tconst total = inViewElementsArray.length;\r\n\tif (total) {\r\n\t\tfor (let i = 0; i < total; i += 1) {\r\n\t\t\tconst inViewElement = inViewElementsArray[i];\r\n\t\t\tif (inViewElement.inViewType === \"show\") {\r\n\t\t\t\t// Makes sure elementInViewport check is only run once with showonly elements\r\n\t\t\t\tif (\r\n\t\t\t\t\t!hasClass(\r\n\t\t\t\t\t\tinViewElement.container,\r\n\t\t\t\t\t\tinViewElement.inViewClass\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\t// This is for \"show\" elements - parseInt to make sure elementInViewport calculates correctly\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\telementInViewport(\r\n\t\t\t\t\t\t\tinViewElement.container,\r\n\t\t\t\t\t\t\tparseInt(inViewElement.inViewMargin)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\taddClass(\r\n\t\t\t\t\t\t\tinViewElement.container,\r\n\t\t\t\t\t\t\tinViewElement.inViewClass\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// This is for \"showhide\" elements - parseInt to make sure elementInViewport calculates correctly\r\n\t\t\t\tif (\r\n\t\t\t\t\telementInViewport(\r\n\t\t\t\t\t\tinViewElement.container,\r\n\t\t\t\t\t\tparseInt(inViewElement.inViewMargin)\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\taddClass(\r\n\t\t\t\t\t\tinViewElement.container,\r\n\t\t\t\t\t\tinViewElement.inViewClass\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tremoveClass(\r\n\t\t\t\t\t\tinViewElement.container,\r\n\t\t\t\t\t\tinViewElement.inViewClass\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\r\n/**\r\n * Create a new internal element for ourselves.\r\n * @type {InViewElement}\r\n */\r\nfunction createInViewElement(\r\n\tinViewElement,\r\n\tinViewClass,\r\n\tinViewType,\r\n\tinViewMargin\r\n) {\r\n\treturn {\r\n\t\tcontainer: inViewElement,\r\n\t\tinViewMargin:\r\n\t\t\tinViewElement.getAttribute(\"data-inview-margin\") ||\r\n\t\t\tinViewMargin ||\r\n\t\t\tdefaultMargin,\r\n\t\tinViewType:\r\n\t\t\tinViewElement.getAttribute(\"data-inview-type\") ||\r\n\t\t\tinViewType ||\r\n\t\t\tdefaultType,\r\n\t\tinViewClass:\r\n\t\t\tinViewElement.getAttribute(\"data-inview-class\") ||\r\n\t\t\tinViewClass ||\r\n\t\t\tdefaultClass\r\n\t};\r\n}\r\n\r\n/**\r\n * Detect all inView elements on the page and setup eventlisteners\r\n *\r\n * @param {string|NodeList} elements - Selector for inview-elements\r\n * @param {string} inViewClass - Class added to the element when in view\r\n * @param {string} inViewType - Element show / hide config (\"show\" or \"showhide\")\r\n * @param {Number} inViewMargin - Number of pixel after viewport to load element\r\n */\r\nexport function setupInView(elements, inViewClass, inViewType, inViewMargin) {\r\n\tlet inViewElements;\r\n\r\n\tif (typeof elements === \"string\") {\r\n\t\tinViewElements = document.querySelectorAll(elements);\r\n\t} else if (typeof elements === \"object\" && elements.length) {\r\n\t\tinViewElements = elements;\r\n\t} else {\r\n\t\t// eslint-disable-next-line no-throw-literal\r\n\t\tthrow \"inView elements not given as string or nodeList\";\r\n\t}\r\n\r\n\tfor (let i = 0, len = inViewElements.length; i < len; i += 1) {\r\n\t\tinViewElementsArray.push(\r\n\t\t\tcreateInViewElement(\r\n\t\t\t\tinViewElements[i],\r\n\t\t\t\tinViewClass,\r\n\t\t\t\tinViewType,\r\n\t\t\t\tinViewMargin\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\ttoggleInViewState();\r\n\r\n\tif (!callbackIsSet) {\r\n\t\tonScroll(window, toggleInViewState);\r\n\t\tcallbackIsSet = true;\r\n\t}\r\n}\r\n\r\nexport function updateInViewElements(\r\n\telements,\r\n\tinViewClass,\r\n\tinViewType,\r\n\tinViewMargin\r\n) {\r\n\tlet inViewElements;\r\n\r\n\tif (typeof elements === \"string\") {\r\n\t\tinViewElements = document.querySelectorAll(elements);\r\n\t} else if (typeof elements === \"object\" && elements.length) {\r\n\t\tinViewElements = elements;\r\n\t} else {\r\n\t\tthrow \"inView elements not given as string or nodeList\";\r\n\t}\r\n\r\n\tfor (let i = 0, len = inViewElements.length; i < len; i += 1) {\r\n\t\tinViewElementsArray.push(\r\n\t\t\tcreateInViewElement(\r\n\t\t\t\tinViewElements[i],\r\n\t\t\t\tinViewClass,\r\n\t\t\t\tinViewType,\r\n\t\t\t\tinViewMargin\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\ttoggleInViewState();\r\n}\r\n","/**\n * EvEmitter v2.1.1\n * Lil' event emitter\n * MIT License\n */\n\n( function( global, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\nfunction EvEmitter() {}\n\nlet proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) return this;\n\n // set events hash\n let events = this._events = this._events || {};\n // set listeners array\n let listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( !listeners.includes( listener ) ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) return this;\n\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n let onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n let onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n let listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) return this;\n\n let index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n let listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) return this;\n\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice( 0 );\n args = args || [];\n // once stuff\n let onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( let listener of listeners ) {\n let isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n return this;\n};\n\nreturn EvEmitter;\n\n} ) );\n","/*!\n * Infinite Scroll v2.0.4\n * measure size of elements\n * MIT license\n */\n\n( function( window, factory ) {\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n} )( window, function factory() {\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n let num = parseFloat( value );\n // not a percent like '100%', and a number\n let isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\n// -------------------------- measurements -------------------------- //\n\nlet measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth',\n];\n\nlet measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n let size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0,\n };\n measurements.forEach( ( measurement ) => {\n size[ measurement ] = 0;\n } );\n return size;\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) elem = document.querySelector( elem );\n\n // do not proceed on non-objects\n let isElement = elem && typeof elem == 'object' && elem.nodeType;\n if ( !isElement ) return;\n\n let style = getComputedStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) return getZeroSize();\n\n let size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n let isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n measurements.forEach( ( measurement ) => {\n let value = style[ measurement ];\n let num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n } );\n\n let paddingWidth = size.paddingLeft + size.paddingRight;\n let paddingHeight = size.paddingTop + size.paddingBottom;\n let marginWidth = size.marginLeft + size.marginRight;\n let marginHeight = size.marginTop + size.marginBottom;\n let borderWidth = size.borderLeftWidth + size.borderRightWidth;\n let borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n // overwrite width and height if we can get it from style\n let styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBox ? 0 : paddingWidth + borderWidth );\n }\n\n let styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBox ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n} );\n","/**\n * Fizzy UI utils v3.0.0\n * MIT license\n */\n\n( function( global, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory( global );\n } else {\n // browser global\n global.fizzyUIUtils = factory( global );\n }\n\n}( this, function factory( global ) {\n\nlet utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n return Object.assign( a, b );\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n // use object if already an array\n if ( Array.isArray( obj ) ) return obj;\n\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) return [];\n\n let isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n // convert nodeList to array\n if ( isArrayLike ) return [ ...obj ];\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n let index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( elem.matches( selector ) ) return elem;\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n let method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n\n return elems\n // check that elem is an actual element\n .filter( ( elem ) => elem instanceof HTMLElement )\n .reduce( ( ffElems, elem ) => {\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return ffElems;\n }\n // filter & find items if we have a selector\n // filter\n if ( elem.matches( selector ) ) {\n ffElems.push( elem );\n }\n // find children\n let childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n ffElems = ffElems.concat( ...childElems );\n return ffElems;\n }, [] );\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n let method = _class.prototype[ methodName ];\n let timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n clearTimeout( this[ timeoutName ] );\n\n let args = arguments;\n this[ timeoutName ] = setTimeout( () => {\n method.apply( this, args );\n delete this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( onDocReady ) {\n let readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( onDocReady );\n } else {\n document.addEventListener( 'DOMContentLoaded', onDocReady );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://bit.ly/3oYLusc\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n } ).toLowerCase();\n};\n\nlet console = global.console;\n\n// allow user to initialize classes via [data-namespace] or .js-namespace class\n// htmlInit( Widget, 'widgetName' )\n// options are parsed from data-namespace-options\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n let dashedNamespace = utils.toDashed( namespace );\n let dataAttr = 'data-' + dashedNamespace;\n let dataAttrElems = document.querySelectorAll( `[${dataAttr}]` );\n let jQuery = global.jQuery;\n\n [ ...dataAttrElems ].forEach( ( elem ) => {\n let attr = elem.getAttribute( dataAttr );\n let options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( `Error parsing ${dataAttr} on ${elem.className}: ${error}` );\n }\n return;\n }\n // initialize\n let instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n } );\n\n } );\n};\n\n// ----- ----- //\n\nreturn utils;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory( require('get-size') );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory( window.getSize );\n }\n\n}( typeof window != 'undefined' ? window : this, function factory( getSize ) {\n\nconst cellClassName = 'flickity-cell';\n\nfunction Cell( elem ) {\n this.element = elem;\n this.element.classList.add( cellClassName );\n\n this.x = 0;\n this.unselect();\n}\n\nlet proto = Cell.prototype;\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.classList.remove( cellClassName );\n this.element.style.transform = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\nproto.remove = function() {\n this.element.remove();\n};\n\nreturn Cell;\n\n} ) );\n","// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function factory() {\n\nfunction Slide( beginMargin, endMargin, cellAlign ) {\n this.beginMargin = beginMargin;\n this.endMargin = endMargin;\n this.cellAlign = cellAlign;\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nlet proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length === 1 ) {\n this.x = cell.x; // x comes from first cell\n this.firstMargin = cell.size[ this.beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n let lastCell = this.getLastCell();\n let lastMargin = lastCell ? lastCell.size[ this.endMargin ] : 0;\n let slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( ( cell ) => cell.select() );\n};\n\nproto.unselect = function() {\n this.cells.forEach( ( cell ) => cell.unselect() );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( ( cell ) => cell.element );\n};\n\nreturn Slide;\n\n} ) );\n","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory( require('fizzy-ui-utils') );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory( window.fizzyUIUtils );\n }\n\n}( typeof window != 'undefined' ? window : this, function factory( utils ) {\n\n// -------------------------- animate -------------------------- //\n\nlet proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) return;\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n let previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) requestAnimationFrame( () => this.animate() );\n};\n\nproto.positionSlider = function() {\n let x = this.x;\n // wrap position around\n if ( this.isWrapping ) {\n x = utils.modulo( x, this.slideableWidth ) - this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n if ( this.options.rightToLeft ) x = -x;\n let translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n `translate3d(${translateX},0,0)` : `translateX(${translateX})`;\n};\n\nproto.dispatchScrollEvent = function() {\n let firstSlide = this.slides[0];\n if ( !firstSlide ) return;\n\n let positionX = -this.x - firstSlide.target;\n let progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) return;\n\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n let isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) === Math.round( previousX * 100 );\n if ( isResting ) this.restingFrames++;\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n let beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n let afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n cells.forEach( ( cell ) => {\n let cellShift = gap > 0 ? shift : 0;\n this._wrapShiftCell( cell, cellShift );\n gap -= cell.size.outerWidth;\n } );\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) return;\n\n cells.forEach( ( cell ) => this._wrapShiftCell( cell, 0 ) );\n};\n\n// @param {Integer} shift - 0, 1, or -1\nproto._wrapShiftCell = function( cell, shift ) {\n this._renderCellPosition( cell, cell.x + this.slideableWidth * shift );\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) return;\n\n // change the position to drag position by applying force\n let dragVelocity = this.dragX - this.x;\n let dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n let dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) return;\n\n let distance = this.selectedSlide.target * -1 - this.x;\n let force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate'),\n );\n } else {\n // browser global\n let _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype,\n );\n }\n\n}( typeof window != 'undefined' ? window : this,\n function factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n/* eslint-enable max-params */\n\n// vars\nconst { getComputedStyle, console } = window;\nlet { jQuery } = window;\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nlet GUID = 0;\n// internal store of all Flickity intances\nlet instances = {};\n\nfunction Flickity( element, options ) {\n let queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) console.error(`Bad element for Flickity: ${queryElement || element}`);\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n let instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = { ...this.constructor.defaults };\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.create = {};\n\nlet proto = Flickity.prototype;\n// inherit EventEmitter\nObject.assign( proto, EvEmitter.prototype );\n\nproto._create = function() {\n let { resize, watchCSS, rightToLeft } = this.options;\n // add id for Flickity.data\n let id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.beginMargin = rightToLeft ? 'marginRight' : 'marginLeft';\n this.endMargin = rightToLeft ? 'marginLeft' : 'marginRight';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n // used for keyboard navigation\n this.focusableElems = [ this.element ];\n\n if ( resize || watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( let eventName in this.options.on ) {\n let listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n for ( let method in Flickity.create ) {\n Flickity.create[ method ].call( this );\n }\n\n if ( watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n Object.assign( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) return;\n\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n let cellElems = this._filterFindCellElements( this.element.children );\n this.slider.append( ...cellElems );\n this.viewport.append( this.slider );\n this.element.append( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n let slider = document.createElement('div');\n slider.className = 'flickity-slider';\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._updateWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n let cellElems = this._filterFindCellElements( elems );\n\n // create new Cells for collection\n return cellElems.map( ( cellElem ) => new Cell( cellElem ) );\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n let cellX = 0;\n // get cellX\n if ( index > 0 ) {\n let startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n\n this.cells.slice( index ).forEach( ( cell ) => {\n cell.x = cellX;\n this._renderCellPosition( cell, cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n } );\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = this.cells.length ?\n this.getLastSlide().target - this.slides[0].target : 0;\n};\n\nproto._renderCellPosition = function( cell, x ) {\n // render position of cell with in slider\n let sideOffset = this.options.rightToLeft ? -1 : 1;\n let renderX = x * sideOffset;\n if ( this.options.percentPosition ) renderX *= this.size.innerWidth / cell.size.width;\n let positionValue = this.getPositionValue( renderX );\n cell.element.style.transform = `translateX( ${positionValue} )`;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( ( cell ) => cell.getSize() );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) return;\n\n let { beginMargin, endMargin } = this;\n let slide = new Slide( beginMargin, endMargin, this.cellAlign );\n this.slides.push( slide );\n\n let canCellFit = this._getCanCellFit();\n\n this.cells.forEach( ( cell, i ) => {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n let slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ endMargin ] );\n\n if ( canCellFit( i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( beginMargin, endMargin, this.cellAlign );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n } );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n let { groupCells } = this.options;\n if ( !groupCells ) return () => false;\n\n if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n let number = parseInt( groupCells, 10 );\n return ( i ) => ( i % number ) !== 0;\n }\n // default, group by width of slide\n let percent = 1;\n // parse '75%\n let percentMatch = typeof groupCells == 'string' && groupCells.match( /^(\\d+)%$/ );\n if ( percentMatch ) percent = parseInt( percentMatch[1], 10 ) / 100;\n let groupWidth = ( this.size.innerWidth + 1 ) * percent;\n return ( i, slideWidth ) => slideWidth <= groupWidth;\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nlet cellAlignShorthands = {\n left: 0,\n center: 0.5,\n right: 1,\n};\n\nproto.setCellAlign = function() {\n let { cellAlign, rightToLeft } = this.options;\n let shorthand = cellAlignShorthands[ cellAlign ];\n this.cellAlign = shorthand !== undefined ? shorthand : cellAlign;\n if ( rightToLeft ) this.cellAlign = 1 - this.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( !this.options.setGallerySize ) return;\n\n let height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = `${height}px`;\n};\n\nproto._updateWrapShiftCells = function() {\n // update isWrapping\n this.isWrapping = this.getIsWrapping();\n // only for wrap-around\n if ( !this.isWrapping ) return;\n\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n let beforeGapX = this.cursorPosition;\n let lastIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( beforeGapX, lastIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n let afterGapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( afterGapX, 0, 1 );\n};\n\nproto.getIsWrapping = function() {\n let { wrapAround } = this.options;\n if ( !wrapAround || this.slides.length < 2 ) return false;\n\n if ( wrapAround !== 'fill' ) return true;\n // check that slides can fit\n\n let gapWidth = this.slideableWidth - this.size.innerWidth;\n if ( gapWidth > this.size.innerWidth ) return true; // gap * 2x big, all good\n // check that content width - shifting cell is bigger than viewport width\n for ( let cell of this.cells ) {\n if ( cell.size.outerWidth > gapWidth ) return false;\n }\n return true;\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n let cells = [];\n while ( gapX > 0 ) {\n let cell = this.cells[ cellIndex ];\n if ( !cell ) break;\n\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain & wrap ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n let isContaining = this.options.contain && !this.isWrapping &&\n this.cells.length;\n if ( !isContaining ) return;\n\n let contentWidth = this.slideableWidth - this.getLastCell().size[ this.endMargin ];\n // content is less than gallery size\n let isContentSmaller = contentWidth < this.size.innerWidth;\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n this.slides.forEach( ( slide ) => {\n slide.target = contentWidth * this.cellAlign;\n } );\n } else {\n // contain to bounds\n let beginBound = this.cursorPosition + this.cells[0].size[ this.beginMargin ];\n let endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n this.slides.forEach( ( slide ) => {\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n } );\n }\n};\n\n// ----- events ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n let emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n let $event = type;\n if ( event ) {\n // create jQuery event\n let jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\nconst unidraggerEvents = [\n 'dragStart',\n 'dragMove',\n 'dragEnd',\n 'pointerDown',\n 'pointerMove',\n 'pointerEnd',\n 'staticClick',\n];\n\nlet _emitEvent = proto.emitEvent;\nproto.emitEvent = function( eventName, args ) {\n if ( eventName === 'staticClick' ) {\n // add cellElem and cellIndex args to staticClick\n let clickedCell = this.getParentCell( args[0].target );\n let cellElem = clickedCell && clickedCell.element;\n let cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n args = args.concat( cellElem, cellIndex );\n }\n // do regular thing\n _emitEvent.call( this, eventName, args );\n // duck-punch in jQuery events for Unidragger events\n let isUnidraggerEvent = unidraggerEvents.includes( eventName );\n if ( !isUnidraggerEvent || !jQuery || !this.$element ) return;\n\n eventName += this.options.namespaceJQueryEvents ? '.flickity' : '';\n let event = args.shift( 0 );\n let jQEvent = new jQuery.Event( event );\n jQEvent.type = eventName;\n this.$element.trigger( jQEvent, args );\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) return;\n\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.isWrapping || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) return;\n\n let prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index !== prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n if ( !this.isWrapping ) return;\n\n const { selectedIndex, slideableWidth, slides: { length } } = this;\n // shift index for wrap, do not wrap dragSelect\n if ( !this.isDragSelect ) {\n let wrapIndex = utils.modulo( index, length );\n // go to shortest\n let delta = Math.abs( wrapIndex - selectedIndex );\n let backWrapDelta = Math.abs( ( wrapIndex + length ) - selectedIndex );\n let forewardWrapDelta = Math.abs( ( wrapIndex - length ) - selectedIndex );\n if ( backWrapDelta < delta ) {\n index += length;\n } else if ( forewardWrapDelta < delta ) {\n index -= length;\n }\n }\n\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= slideableWidth;\n } else if ( index >= length ) {\n this.x += slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n let slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) return;\n\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) this.selectedSlide.unselect();\n};\n\nproto.selectInitialIndex = function() {\n let initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n let cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n let index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n let cell = this.queryCell( value );\n if ( !cell ) return;\n\n let index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slide that has cell\n let cellSlide = this.slides.find( ( slide ) => slide.cells.includes( cell ) );\n return this.slides.indexOf( cellSlide );\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( let cell of this.cells ) {\n if ( cell.element === elem ) return cell;\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n return elems.map( ( elem ) => this.getCell( elem ) ).filter( Boolean );\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( ( cell ) => cell.element );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n let cell = this.getCell( elem );\n if ( cell ) return cell;\n\n // try to get parent cell elem\n let closest = elem.closest('.flickity-slider > *');\n return this.getCell( closest );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) return this.selectedSlide.getCellElements();\n\n index = index === undefined ? this.selectedIndex : index;\n\n let len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements(); // get all\n }\n\n let cellElems = [];\n for ( let i = index - adjCount; i <= index + adjCount; i++ ) {\n let slideIndex = this.isWrapping ? utils.modulo( i, len ) : i;\n let slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n // do not select invalid selectors from hash: #123, #/. #791\n let isSelectorString = typeof selector == 'string' && !selector.match( /^[#.]?[\\d/]/ );\n if ( isSelectorString ) {\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n // #1177 disable resize behavior when animating or dragging for iOS 15\n if ( !this.isActive || this.isAnimating || this.isDragging ) return;\n this.getSize();\n // wrap values\n if ( this.isWrapping ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._updateWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n let selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n if ( !this.options.watchCSS ) return;\n\n let afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.includes('flickity') ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n let { activeElement } = document;\n let handler = Flickity.keyboardHandlers[ event.key ];\n // only work if element is in focus\n if ( !this.options.accessibility || !activeElement || !handler ) return;\n\n let isFocused = this.focusableElems.some( ( elem ) => activeElement === elem );\n if ( isFocused ) handler.call( this );\n};\n\nFlickity.keyboardHandlers = {\n ArrowLeft: function() {\n this.uiChange();\n let leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this[ leftMethod ]();\n },\n ArrowRight: function() {\n this.uiChange();\n let rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n this.element.focus({ preventScroll: true });\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) return;\n\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( ( cell ) => cell.destroy() );\n this.viewport.remove();\n // move child elements back into element\n this.element.append( ...this.slider.children );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nObject.assign( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n if ( elem ) return instances[ elem.flickityGUID ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nlet { jQueryBridget } = window;\nif ( jQuery && jQueryBridget ) {\n jQueryBridget( 'flickity', Flickity, jQuery );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Unidragger v3.0.1\n * Draggable base class\n * MIT license\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.EvEmitter,\n );\n }\n\n}( typeof window != 'undefined' ? window : this, function factory( window, EvEmitter ) {\n\nfunction Unidragger() {}\n\n// inherit EvEmitter\nlet proto = Unidragger.prototype = Object.create( EvEmitter.prototype );\n\n// ----- bind start ----- //\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n let method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nlet startEvent, activeEvents;\nif ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n activeEvents = [ 'touchmove', 'touchend', 'touchcancel' ];\n} else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n activeEvents = [ 'pointermove', 'pointerup', 'pointercancel' ];\n} else {\n // mouse events\n startEvent = 'mousedown';\n activeEvents = [ 'mousemove', 'mouseup' ];\n}\n\n// prototype so it can be overwriteable by Flickity\nproto.touchActionValue = 'none';\n\nproto.bindHandles = function() {\n this._bindHandles( 'addEventListener', this.touchActionValue );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( 'removeEventListener', '' );\n};\n\n/**\n * Add or remove start event\n * @param {String} bindMethod - addEventListener or removeEventListener\n * @param {String} touchAction - value for touch-action CSS property\n */\nproto._bindHandles = function( bindMethod, touchAction ) {\n this.handles.forEach( ( handle ) => {\n handle[ bindMethod ]( startEvent, this );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) handle.style.touchAction = touchAction;\n } );\n};\n\nproto.bindActivePointerEvents = function() {\n activeEvents.forEach( ( eventName ) => {\n window.addEventListener( eventName, this );\n } );\n};\n\nproto.unbindActivePointerEvents = function() {\n activeEvents.forEach( ( eventName ) => {\n window.removeEventListener( eventName, this );\n } );\n};\n\n// ----- event handler helpers ----- //\n\n// trigger method with matching pointer\nproto.withPointer = function( methodName, event ) {\n if ( event.pointerId === this.pointerIdentifier ) {\n this[ methodName ]( event, event );\n }\n};\n\n// trigger method with matching touch\nproto.withTouch = function( methodName, event ) {\n let touch;\n for ( let changedTouch of event.changedTouches ) {\n if ( changedTouch.identifier === this.pointerIdentifier ) {\n touch = changedTouch;\n }\n }\n if ( touch ) this[ methodName ]( event, touch );\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n this.pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this.pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this.pointerDown( event, event );\n};\n\n// nodes that have text fields\nconst cursorNodes = [ 'TEXTAREA', 'INPUT', 'SELECT', 'OPTION' ];\n// input types that do not have text fields\nconst clickTypes = [ 'radio', 'checkbox', 'button', 'submit', 'image', 'file' ];\n\n/**\n * any time you set `event, pointer` it refers to:\n * @param {Event} event\n * @param {Event | Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n // dismiss multi-touch taps, right clicks, and clicks on text fields\n let isCursorNode = cursorNodes.includes( event.target.nodeName );\n let isClickType = clickTypes.includes( event.target.type );\n let isOkayElement = !isCursorNode || isClickType;\n let isOkay = !this.isPointerDown && !event.button && isOkayElement;\n if ( !isOkay ) return;\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n // track position for move\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n this.bindActivePointerEvents();\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// ----- move ----- //\n\nproto.onmousemove = function( event ) {\n this.pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n this.withPointer( 'pointerMove', event );\n};\n\nproto.ontouchmove = function( event ) {\n this.withTouch( 'pointerMove', event );\n};\n\nproto.pointerMove = function( event, pointer ) {\n let moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY,\n };\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n // start drag if pointer has moved far enough to start drag\n let isDragStarting = !this.isDragging && this.hasDragStarted( moveVector );\n if ( isDragStarting ) this.dragStart( event, pointer );\n if ( this.isDragging ) this.dragMove( event, pointer, moveVector );\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- drag ----- //\n\nproto.dragStart = function( event, pointer ) {\n this.isDragging = true;\n this.isPreventingClicks = true; // set flag to prevent clicks\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// ----- end ----- //\n\nproto.onmouseup = function( event ) {\n this.pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n this.withPointer( 'pointerUp', event );\n};\n\nproto.ontouchend = function( event ) {\n this.withTouch( 'pointerUp', event );\n};\n\nproto.pointerUp = function( event, pointer ) {\n this.pointerDone();\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n\n if ( this.isDragging ) {\n this.dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this.staticClick( event, pointer );\n }\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.isDragging = false; // reset flag\n // re-enable clicking async\n setTimeout( () => delete this.isPreventingClicks );\n\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// triggered on pointer up & pointer cancel\nproto.pointerDone = function() {\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n this.unbindActivePointerEvents();\n this.emitEvent('pointerDone');\n};\n\n// ----- cancel ----- //\n\nproto.onpointercancel = function( event ) {\n this.withPointer( 'pointerCancel', event );\n};\n\nproto.ontouchcancel = function( event ) {\n this.withTouch( 'pointerCancel', event );\n};\n\nproto.pointerCancel = function( event, pointer ) {\n this.pointerDone();\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- click ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) event.preventDefault();\n};\n\n// triggered after pointer down & up with no/tiny movement\nproto.staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n let isMouseup = event.type === 'mouseup';\n if ( isMouseup && this.isIgnoringMouseUp ) return;\n\n this.emitEvent( 'staticClick', [ event, pointer ] );\n\n // set flag for emulated clicks 300ms after touchend\n if ( isMouseup ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 400ms\n setTimeout( () => {\n delete this.isIgnoringMouseUp;\n }, 400 );\n }\n};\n\n// ----- ----- //\n\nreturn Unidragger;\n\n} ) );\n","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./core'),\n require('unidragger'),\n require('fizzy-ui-utils'),\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils,\n );\n }\n\n}( typeof window != 'undefined' ? window : this,\n function factory( window, Flickity, Unidragger, utils ) {\n\n// ----- defaults ----- //\n\nObject.assign( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// -------------------------- drag prototype -------------------------- //\n\nlet proto = Flickity.prototype;\nObject.assign( proto, Unidragger.prototype ); // inherit Unidragger\nproto.touchActionValue = '';\n\n// -------------------------- -------------------------- //\n\nFlickity.create.drag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n this.on( 'pointerDown', this.handlePointerDown );\n this.on( 'pointerUp', this.handlePointerUp );\n this.on( 'pointerDown', this.handlePointerDone );\n this.on( 'dragStart', this.handleDragStart );\n this.on( 'dragMove', this.handleDragMove );\n this.on( 'dragEnd', this.handleDragEnd );\n this.on( 'staticClick', this.handleStaticClick );\n // TODO updateDraggable on resize? if groupCells & slides change\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable === '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n this.element.classList.toggle( 'is-draggable', this.isDraggable );\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.handlePointerDown = function( event ) {\n if ( !this.isDraggable ) {\n // proceed for staticClick\n this.bindActivePointerEvents( event );\n return;\n }\n\n let isTouchStart = event.type === 'touchstart';\n let isTouchPointer = event.pointerType === 'touch';\n let isFocusNode = event.target.matches('input, textarea, select');\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) event.preventDefault();\n if ( !isFocusNode ) this.focus();\n // blur\n if ( document.activeElement !== this.element ) document.activeElement.blur();\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n this.bindActivePointerEvents( event );\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.handlePointerUp = function() {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n};\n\nproto.handlePointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.handleDragStart = function() {\n if ( !this.isDraggable ) return;\n\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n};\n\nproto.handleDragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) return;\n\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n let direction = this.options.rightToLeft ? -1 : 1;\n // wrap around move. #589\n if ( this.isWrapping ) moveVector.x %= this.slideableWidth;\n let dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.isWrapping ) {\n // slow drag\n let originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n let endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n this.dragMoveTime = new Date();\n};\n\nproto.handleDragEnd = function() {\n if ( !this.isDraggable ) return;\n\n let { freeScroll } = this.options;\n if ( freeScroll ) this.isFreeScrolling = true;\n // set selectedIndex based on where flick will end up\n let index = this.dragEndRestingSelect();\n\n if ( freeScroll && !this.isWrapping ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n let restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !freeScroll && index === this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.isWrapping;\n this.select( index );\n delete this.isDragSelect;\n};\n\nproto.dragEndRestingSelect = function() {\n let restingX = this.getRestingPosition();\n // how far away from selected slide\n let distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n let positiveResting = this._getClosestResting( restingX, distance, 1 );\n let negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n return positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n let index = this.selectedIndex;\n let minDistance = Infinity;\n let condition = this.options.contain && !this.isWrapping ?\n // if containing, keep going if distance is equal to minDistance\n ( dist, minDist ) => dist <= minDist :\n ( dist, minDist ) => dist < minDist;\n\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) break;\n\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n let len = this.slides.length;\n // wrap around if at least 2 slides\n let isWrapAround = this.options.wrapAround && len > 1;\n let slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n let slide = this.slides[ slideIndex ];\n if ( !slide ) return null;\n\n // add distance for wrap-around slides\n let wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n let distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n let delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n let scroll = getScrollPosition();\n let scrollMoveX = this.pointerDownScroll.x - scroll.x;\n let scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this.pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory( require('./core') );\n } else {\n // browser global\n factory( window.Flickity );\n }\n\n}( typeof window != 'undefined' ? window : this, function factory( Flickity ) {\n\nconst svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( increment, direction, arrowShape ) {\n this.increment = increment;\n this.direction = direction;\n this.isPrevious = increment === 'previous';\n this.isLeft = direction === 'left';\n this._create( arrowShape );\n}\n\nPrevNextButton.prototype._create = function( arrowShape ) {\n // properties\n let element = this.element = document.createElement('button');\n element.className = `flickity-button flickity-prev-next-button ${this.increment}`;\n let label = this.isPrevious ? 'Previous' : 'Next';\n // prevent button from submitting form https://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n element.setAttribute( 'aria-label', label );\n // init as disabled\n this.disable();\n // create arrow\n let svg = this.createSVG( label, arrowShape );\n element.append( svg );\n};\n\nPrevNextButton.prototype.createSVG = function( label, arrowShape ) {\n let svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n // add title #1189\n let title = document.createElementNS( svgURI, 'title' );\n title.append( label );\n // add path\n let path = document.createElementNS( svgURI, 'path' );\n let pathMovements = getArrowMovements( arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180)' );\n }\n svg.append( title, path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) return shape;\n\n let { x0, x1, x2, x3, y1, y2 } = shape;\n\n // create movement string\n return `M ${x0}, 50\n L ${x1}, ${y1 + 50}\n L ${x2}, ${y2 + 50}\n L ${x3}, 50\n L ${x2}, ${50 - y2}\n L ${x1}, ${50 - y1}\n Z`;\n}\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n this.element.removeAttribute('disabled');\n};\n\nPrevNextButton.prototype.disable = function() {\n this.element.setAttribute( 'disabled', true );\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nObject.assign( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.create.prevNextButtons = function() {\n if ( !this.options.prevNextButtons ) return;\n\n let { rightToLeft, arrowShape } = this.options;\n let prevDirection = rightToLeft ? 'right' : 'left';\n let nextDirection = rightToLeft ? 'left' : 'right';\n this.prevButton = new PrevNextButton( 'previous', prevDirection, arrowShape );\n this.nextButton = new PrevNextButton( 'next', nextDirection, arrowShape );\n this.focusableElems.push( this.prevButton.element );\n this.focusableElems.push( this.nextButton.element );\n\n this.handlePrevButtonClick = () => {\n this.uiChange();\n this.previous();\n };\n\n this.handleNextButtonClick = () => {\n this.uiChange();\n this.next();\n };\n\n this.on( 'activate', this.activatePrevNextButtons );\n this.on( 'select', this.updatePrevNextButtons );\n};\n\nlet proto = Flickity.prototype;\n\nproto.updatePrevNextButtons = function() {\n let lastIndex = this.slides.length ? this.slides.length - 1 : 0;\n this.updatePrevNextButton( this.prevButton, 0 );\n this.updatePrevNextButton( this.nextButton, lastIndex );\n};\n\nproto.updatePrevNextButton = function( button, disabledIndex ) {\n // enable is wrapAround and at least 2 slides\n if ( this.isWrapping && this.slides.length > 1 ) {\n button.enable();\n return;\n }\n\n let isEnabled = this.selectedIndex !== disabledIndex;\n button[ isEnabled ? 'enable' : 'disable' ]();\n // if disabling button that is focused,\n // shift focus to element to maintain keyboard accessibility\n let isDisabledFocused = !isEnabled && document.activeElement === button.element;\n if ( isDisabledFocused ) this.focus();\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.element.addEventListener( 'click', this.handlePrevButtonClick );\n this.nextButton.element.addEventListener( 'click', this.handleNextButtonClick );\n this.element.append( this.prevButton.element, this.nextButton.element );\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.element.remove();\n this.nextButton.element.remove();\n this.prevButton.element.removeEventListener( 'click', this.handlePrevButtonClick );\n this.nextButton.element.removeEventListener( 'click', this.handleNextButtonClick );\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./core'),\n require('fizzy-ui-utils'),\n );\n } else {\n // browser global\n factory(\n window.Flickity,\n window.fizzyUIUtils,\n );\n }\n\n}( typeof window != 'undefined' ? window : this, function factory( Flickity, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\nfunction PageDots() {\n // create holder element\n this.holder = document.createElement('div');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n}\n\nPageDots.prototype.setDots = function( slidesLength ) {\n // get difference between number of slides and number of dots\n let delta = slidesLength - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n let newDots = new Array( count ).fill()\n .map( ( item, i ) => {\n let dot = document.createElement('button');\n dot.setAttribute( 'type', 'button' );\n let num = i + 1 + this.dots.length;\n dot.className = 'flickity-page-dot';\n dot.textContent = `View slide ${num}`;\n return dot;\n } );\n\n this.holder.append( ...newDots );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n let removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( ( dot ) => dot.remove() );\n};\n\nPageDots.prototype.updateSelected = function( index ) {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.classList.remove('is-selected');\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) return;\n\n this.selectedDot = this.dots[ index ];\n this.selectedDot.classList.add('is-selected');\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nObject.assign( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.create.pageDots = function() {\n if ( !this.options.pageDots ) return;\n\n this.pageDots = new PageDots();\n this.handlePageDotsClick = this.onPageDotsClick.bind( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nlet proto = Flickity.prototype;\n\nproto.activatePageDots = function() {\n this.pageDots.setDots( this.slides.length );\n this.focusableElems.push( ...this.pageDots.dots );\n this.pageDots.holder.addEventListener( 'click', this.handlePageDotsClick );\n this.element.append( this.pageDots.holder );\n};\n\nproto.onPageDotsClick = function( event ) {\n let index = this.pageDots.dots.indexOf( event.target );\n if ( index === -1 ) return; // only dot clicks\n\n this.uiChange();\n this.select( index );\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected( this.selectedIndex );\n};\n\nproto.updatePageDots = function() {\n this.pageDots.dots.forEach( ( dot ) => {\n utils.removeFrom( this.focusableElems, dot );\n } );\n this.pageDots.setDots( this.slides.length );\n this.focusableElems.push( ...this.pageDots.dots );\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.holder.remove();\n this.pageDots.holder.removeEventListener( 'click', this.handlePageDotsClick );\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory( require('./core') );\n } else {\n // browser global\n factory( window.Flickity );\n }\n\n}( typeof window != 'undefined' ? window : this, function factory( Flickity ) {\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( autoPlay, onTick ) {\n this.autoPlay = autoPlay;\n this.onTick = onTick;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state === 'playing' ) return;\n\n // do not play if page is hidden, start playing when page is visible\n let isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state !== 'playing' ) return;\n\n // default to 3 seconds\n let time = typeof this.autoPlay == 'number' ? this.autoPlay : 3000;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( () => {\n this.onTick();\n this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state === 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state === 'paused' ) this.play();\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n let isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nObject.assign( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.create.player = function() {\n this.player = new Player( this.options.autoPlay, () => {\n this.next( true );\n } );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nlet proto = Flickity.prototype;\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) return;\n\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) return;\n\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./core'),\n require('fizzy-ui-utils'),\n );\n } else {\n // browser global\n factory(\n window.Flickity,\n window.fizzyUIUtils,\n );\n }\n\n}( typeof window != 'undefined' ? window : this, function factory( Flickity, utils ) {\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n let fragment = document.createDocumentFragment();\n cells.forEach( ( cell ) => fragment.appendChild( cell.element ) );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nlet proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n let cells = this._makeCells( elems );\n if ( !cells || !cells.length ) return;\n\n let len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n let fragment = getCellsFragment( cells );\n // append to slider\n let isAppend = index === len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n let insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n let endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index );\n this.positionSliderAtSelected();\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n let cells = this.getCells( elems );\n if ( !cells || !cells.length ) return;\n\n let minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( ( cell ) => {\n cell.remove();\n let index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n } );\n\n this.cellChange( minCellIndex );\n this.positionSliderAtSelected();\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n let cell = this.getCell( elem );\n if ( !cell ) return;\n\n cell.getSize();\n\n let index = this.cells.indexOf( cell );\n this.cellChange( index );\n // do not position slider after lazy load\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n */\nproto.cellChange = function( changedCellIndex ) {\n let prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._updateWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex, try to maintain position & select previous selected element\n let cell = this.getCell( prevSelectedElem );\n if ( cell ) this.selectedIndex = this.getCellSlideIndex( cell );\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./core'),\n require('fizzy-ui-utils'),\n );\n } else {\n // browser global\n factory(\n window.Flickity,\n window.fizzyUIUtils,\n );\n }\n\n}( typeof window != 'undefined' ? window : this, function factory( Flickity, utils ) {\n\nconst lazyAttr = 'data-flickity-lazyload';\nconst lazySrcAttr = `${lazyAttr}-src`;\nconst lazySrcsetAttr = `${lazyAttr}-srcset`;\nconst imgSelector = `img[${lazyAttr}], img[${lazySrcAttr}], ` +\n `img[${lazySrcsetAttr}], source[${lazySrcsetAttr}]`;\n\nFlickity.create.lazyLoad = function() {\n this.on( 'select', this.lazyLoad );\n\n this.handleLazyLoadComplete = this.onLazyLoadComplete.bind( this );\n};\n\nlet proto = Flickity.prototype;\n\nproto.lazyLoad = function() {\n let { lazyLoad } = this.options;\n if ( !lazyLoad ) return;\n\n // get adjacent cells, use lazyLoad option for adjacent count\n let adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n // lazy load images\n this.getAdjacentCellElements( adjCount )\n .map( getCellLazyImages )\n .flat()\n .forEach( ( img ) => new LazyLoader( img, this.handleLazyLoadComplete ) );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.matches('img') ) {\n let cellAttr = cellElem.getAttribute( lazyAttr );\n let cellSrcAttr = cellElem.getAttribute( lazySrcAttr );\n let cellSrcsetAttr = cellElem.getAttribute( lazySrcsetAttr );\n if ( cellAttr || cellSrcAttr || cellSrcsetAttr ) {\n return cellElem;\n }\n }\n // select lazy images in cell\n return [ ...cellElem.querySelectorAll( imgSelector ) ];\n}\n\nproto.onLazyLoadComplete = function( img, event ) {\n let cell = this.getParentCell( img );\n let cellElem = cell && cell.element;\n this.cellSizeChange( cellElem );\n\n this.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Function} onComplete - callback function\n */\nfunction LazyLoader( img, onComplete ) {\n this.img = img;\n this.onComplete = onComplete;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n let src = this.img.getAttribute( lazyAttr ) ||\n this.img.getAttribute( lazySrcAttr );\n let srcset = this.img.getAttribute( lazySrcsetAttr );\n // set src & serset\n this.img.src = src;\n if ( srcset ) this.img.setAttribute( 'srcset', srcset );\n // remove attr\n this.img.removeAttribute( lazyAttr );\n this.img.removeAttribute( lazySrcAttr );\n this.img.removeAttribute( lazySrcsetAttr );\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n let mediaElem = this.img.parentNode.matches('picture') ? this.img.parentNode : this.img;\n mediaElem.classList.add( className );\n\n this.onComplete( this.img, event );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * imagesLoaded v5.0.0\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory( window, require('ev-emitter') );\n } else {\n // browser global\n window.imagesLoaded = factory( window, window.EvEmitter );\n }\n\n} )( typeof window !== 'undefined' ? window : this,\n function factory( window, EvEmitter ) {\n\nlet $ = window.jQuery;\nlet console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n // use object if already an array\n if ( Array.isArray( obj ) ) return obj;\n\n let isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n // convert nodeList to array\n if ( isArrayLike ) return [ ...obj ];\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {[Array, Element, NodeList, String]} elem\n * @param {[Object, Function]} options - if function, use as callback\n * @param {Function} onAlways - callback function\n * @returns {ImagesLoaded}\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n let queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error(`Bad element for imagesLoaded ${queryElem || elem}`);\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = {};\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n Object.assign( this.options, options );\n }\n\n if ( onAlways ) this.on( 'always', onAlways );\n\n this.getImages();\n // add jQuery Deferred object\n if ( $ ) this.jqDeferred = new $.Deferred();\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\nconst elementNodeTypes = [ 1, 9, 11 ];\n\n/**\n * @param {Node} elem\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName === 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n let { nodeType } = elem;\n if ( !nodeType || !elementNodeTypes.includes( nodeType ) ) return;\n\n let childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( let img of childImgs ) {\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n let children = elem.querySelectorAll( this.options.background );\n for ( let child of children ) {\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nconst reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n let style = getComputedStyle( elem );\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n if ( !style ) return;\n\n // get url inside url(\"...\")\n let matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n let url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n let loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n let background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n /* eslint-disable-next-line func-style */\n let onProgress = ( image, elem, message ) => {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( () => {\n this.progress( image, elem, message );\n } );\n };\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n } );\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount === this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( `progress: ${message}`, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n let eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n let jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n let isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n // add crossOrigin attribute. #204\n if ( this.img.crossOrigin ) {\n this.proxyImage.crossOrigin = this.img.crossOrigin;\n }\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.currentSrc || this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n let { parentNode } = this.img;\n // emit progress with parent or self \n let elem = parentNode.nodeName === 'PICTURE' ? parentNode : this.img;\n this.emitEvent( 'progress', [ this, elem, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n let method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n let isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) return;\n\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, onAlways ) {\n let instance = new ImagesLoaded( this, options, onAlways );\n return instance.jqDeferred.promise( $( this ) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n} );\n","// imagesloaded\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./core'),\n require('imagesloaded'),\n );\n } else {\n // browser global\n factory(\n window.Flickity,\n window.imagesLoaded,\n );\n }\n\n}( typeof window != 'undefined' ? window : this,\n function factory( Flickity, imagesLoaded ) {\n\nFlickity.create.imagesLoaded = function() {\n this.on( 'activate', this.imagesLoaded );\n};\n\nFlickity.prototype.imagesLoaded = function() {\n if ( !this.options.imagesLoaded ) return;\n\n let onImagesLoadedProgress = ( instance, image ) => {\n let cell = this.getParentCell( image.img );\n this.cellSizeChange( cell && cell.element );\n if ( !this.options.freeScroll ) this.positionSliderAtSelected();\n };\n imagesLoaded( this.slider ).on( 'progress', onImagesLoadedProgress );\n};\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v3.0.0\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2022 Metafizzy\n */\n\nif ( typeof module == 'object' && module.exports ) {\n const Flickity = require('./core');\n require('./drag');\n require('./prev-next-button');\n require('./page-dots');\n require('./player');\n require('./add-remove-cell');\n require('./lazyload');\n require('./imagesloaded');\n\n module.exports = Flickity;\n}\n","import { onReady } from \"~/foundation/Events/onReady\";\r\nimport Flickity from \"flickity\";\r\n\r\nexport class Carousel {\r\n\tdom = {\r\n\t\tcontainer: undefined\r\n\t};\r\n\r\n\tconstructor(domReference) {\r\n\t\tthis.dom.container = domReference;\r\n\t\tthis.dom.carousel = this.dom.container.querySelector(\".imgslider_slider\");\r\n\t\tonReady(() => this.initialize());\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tconst carouselFlickity = {\r\n\t\t\tpageDots: true,\r\n\t\t\t//freeScroll: true,\r\n\t\t\twrapAround: true,\r\n\t\t\tcellAlign: \"center\",\r\n\t\t\tprevNextButtons: false,\r\n\t\t\tlazyLoad: true\r\n\t\t};\r\n\r\n\t\t// eslint-disable-next-line no-unused-vars\r\n\t\tconst carouselSlider = new Flickity(\r\n\t\t\tthis.dom.carousel,\r\n\t\t\tcarouselFlickity\r\n\t\t);\r\n\t}\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Set (or reset) an object of styles on multiple elements at the same time.\r\n * @example Basic usage:\r\n * import { setStyles, resetStyles } from \"./utils/dom/setStyles\";\r\n *\r\n * const uglyElements = document.querySelectorAll(\"figure, aside, article .box\");\r\n * setStyles(uglyElements, {\r\n * color: \"#FFF\",\r\n * boxShadow: \"0 1px 10px #000\"\r\n * });\r\n *\r\n * // And reset styles like this:\r\n * resetStyles(uglyElements);\r\n *\r\n *\r\n * @example If you don't speak camelCase, use kebab-case like this:\r\n * setStyles(document.getElementById(\"anotherUglyElement\"), {\r\n * \"background-color\": \"#FFF\",\r\n * \"border-radius\": \"50%\",\r\n * \"padding-top\": 0\r\n * });\r\n *\r\n *\r\n * @example\r\n * You can set your own styles as the default:\r\n * import {\r\n * setStyles,\r\n * resetStyles,\r\n * saveStylesAsDefault\r\n * } from \"./utils/dom/setStyles\";\r\n *\r\n * const element = document.getElementById(\"uglyElement\");\r\n *\r\n * // Set the background color to white\r\n * setStyles(element, {\r\n * \"background-color\": \"#FFF\"\r\n * });\r\n *\r\n * // Save the current inline styling as the default\r\n * saveStylesAsDefault(element);\r\n *\r\n * // Change styling again\r\n * setStyles(element, {\r\n * \"background-color\": \"#000\"\r\n * });\r\n *\r\n * // Now reset - this will set the background-color to white again\r\n * resetStyles(element);\r\n */\r\n\r\nimport { forEach } from \"~/foundation/Helpers/forEach\";\r\n\r\n// We'll be using Map and not a regular object, since Map supports using objects as keys.\r\n// This requires you to include the required polyfill. \"default-3.6\" from polyfill.io is fine.\r\nconst knownDOMObjects = new Map();\r\n\r\n/**\r\n * Set multiple styles on one or more elements.\r\n *\r\n * @param {HTMLElement|HTMLElement[]|NodeList} element - One or more elements that need some stylin'.\r\n * @param {Object} styles - An object with styles. Properties can be in both camelCase and kebab-case.\r\n */\r\nexport function setStyles(element: HTMLElement | HTMLElement[], styles: Partial) {\r\n\tforEach(element, currentElement => {\r\n\t\t// Reset styles\r\n\t\tif (styles === null) {\r\n\t\t\tresetStyles(currentElement);\r\n\t\t} else {\r\n\t\t\t// Save original styling in case the element needs to be reset to its default state later\r\n\t\t\tsaveStylesAsDefault(currentElement, false);\r\n\r\n\t\t\t// Do the changes!\r\n\t\t\tforEach(styles, (value: string, key: keyof CSSStyleDeclaration) => (currentElement.style[key.toString().replace(/-([a-z])/g, (match: any) => match[1].toUpperCase())] = value));\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Save the current inline styling of one or more elements as the default.\r\n */\r\nexport function saveStylesAsDefault(element: HTMLElement | HTMLElement[], overwriteExisting = true) {\r\n\tforEach(element, currentElement => {\r\n\t\tconst originalInlineStyles = knownDOMObjects.get(currentElement);\r\n\t\tif (\r\n\t\t\toverwriteExisting ||\r\n\t\t\t!(originalInlineStyles && typeof originalInlineStyles === \"string\")\r\n\t\t) {\r\n\t\t\tknownDOMObjects.set(\r\n\t\t\t\tcurrentElement,\r\n\t\t\t\tcurrentElement.getAttribute(\"style\") || \"\"\r\n\t\t\t);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Reset the styling of one or more elements.\r\n *\r\n * If an element had inline styling before you used `setStyles()` on it, we'll reset to that.\r\n * If you want to remove inline styles completely, set the second argument `hardReset` to *true*.\r\n */\r\nexport function resetStyles(element: HTMLElement | HTMLElement[] | NodeListOf, hardReset = false) {\r\n\tforEach(element, currentElement => {\r\n\t\tlet setStylesTo = \"\";\r\n\r\n\t\tif (!hardReset) {\r\n\t\t\t// If the element's original inline styling has been saved, reset to that\r\n\t\t\tconst originalInlineStyles = knownDOMObjects.get(currentElement);\r\n\t\t\tif (\r\n\t\t\t\toriginalInlineStyles &&\r\n\t\t\t\ttypeof originalInlineStyles === \"string\"\r\n\t\t\t) {\r\n\t\t\t\tsetStylesTo = originalInlineStyles || \"\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcurrentElement.style.cssText = setStylesTo;\r\n\t});\r\n}\r\n","/**\r\n * Helper-utilities for inserting, moving and emptying DOM-elements.\r\n *\r\n * When inserting elements, they are first added to a document fragment, keeping the repainting and\r\n * recalculating of the DOM to a minimum.\r\n *\r\n * These have also been tested to be way faster than solutions using `innerHTML` and `insertAdjecentHTML`.\r\n *\r\n * @module utils/dom/elementManipulation\r\n * @since 3.6.0\r\n * @author Lars Munkholm \r\n */\r\n\r\nimport { forEach } from \"~/foundation/Helpers/forEach\";\r\nimport { siblings } from \"./siblings\";\r\nimport { createElement } from \"./createElement\";\r\n\r\n/**\r\n * Parse a string into an array of DOM nodes.\r\n *\r\n * @since 3.6.5\r\n * @param {Node|string} input - String to parse. If input is already a node or an element, nothing will be done to it.\r\n * @returns {Node[]} An array of DOM nodes.\r\n *\r\n * @example\r\n * import { parseHTML } from \"./utils/dom/elementManipulation\";\r\n *\r\n * const HTMLString = \"An example with text and HTML...\";\r\n * const nodes = parseHTML(HTMLString);\r\n *\r\n * const nodeNames = nodes.map(node => node.nodeName);\r\n * // Outputs [\"#text\", \"B\", \"#text\", \"I\", \"#text\"]\r\n *\r\n * const textOnly = nodes.map(node => node.nodeName === \"#text\" ? node.textContent : \"\").join(\"\");\r\n * // Outputs \"An example with and ...\"\r\n *\r\n * const htmlOnly = nodes.map(node => node.nodeName !== \"#text\" ? node.outerHTML : \"\").join(\"\");\r\n * // Outputs \"HTMLstuff\"\r\n */\r\nexport const parseHTML = (input: string | Element) =>\r\n\ttypeof input === \"string\"\r\n\t\t? [...createElement(\"div\", { html: input }).children]\r\n\t\t: [input];\r\n\r\n/**\r\n * Delete an element from the DOM.\r\n *\r\n * @param {Node|Node[]|NodeList} element - Element(s) to delete.\r\n */\r\nexport function deleteElement(element: Element | Element[]) {\r\n\tforEach(element, currentElement =>\r\n\t\tcurrentElement.parentNode\r\n\t\t\t? currentElement.parentNode.removeChild(currentElement)\r\n\t\t\t: null\r\n\t);\r\n}\r\n\r\n/**\r\n * **Append an element** (or multiple) inside another element, which means it will be placed as the last child.\r\n */\r\nexport function appendElement(element: Element | Element[] | DocumentFragment, container: Element) {\r\n\tconst fragment = document.createDocumentFragment();\r\n\r\n\t// Use createTextNode() before appending text to fragment\r\n\tforEach(element, currentElement =>\r\n\t\tfragment.appendChild(\r\n\t\t\ttypeof currentElement === \"string\"\r\n\t\t\t\t? document.createTextNode(currentElement)\r\n\t\t\t\t: currentElement\r\n\t\t)\r\n\t);\r\n\r\n\tcontainer.appendChild(fragment);\r\n}\r\n\r\n/**\r\n * **Prepend an element** (or multiple) inside another element, which means it will be placed as the first child.\r\n */\r\nexport function prependElement(element: Element | Element[], container: Element) {\r\n\tconst fragment = document.createDocumentFragment();\r\n\tlet lastInsertedElement: Text | Element;\r\n\r\n\tforEach(element, currentElement => {\r\n\t\t// Make sure strings are converted to text nodes before moving on\r\n\t\tconst node = typeof currentElement === \"string\"\r\n\t\t\t? document.createTextNode(currentElement)\r\n\t\t\t: currentElement;\r\n\r\n\t\tif (lastInsertedElement) {\r\n\t\t\tinsertElementAfter(node, lastInsertedElement);\r\n\t\t} else if (fragment.firstChild) {\r\n\t\t\tinsertElementBefore(node, fragment.firstChild);\r\n\t\t} else {\r\n\t\t\tfragment.appendChild(node);\r\n\t\t}\r\n\r\n\t\tlastInsertedElement = node;\r\n\t});\r\n\r\n\tif (container.firstChild) {\r\n\t\tinsertElementBefore(fragment, container.firstChild);\r\n\t} else {\r\n\t\tappendElement(fragment, container);\r\n\t}\r\n}\r\n\r\n/**\r\n * Insert one or more elements **after** another element.\r\n *\r\n * @param {Node|NodeList|string|Array.<(Node|string)>} newElement - The element(s) to insert after another.\r\n * @param {Node} existingElement - The existing element to insert after.\r\n */\r\nexport function insertElementAfter(newElement: Element | Element[], existingElement: Element | Text) {\r\n\tconst parent = existingElement.parentNode;\r\n\r\n\tif (parent) {\r\n\t\tconst fragment = document.createDocumentFragment();\r\n\t\tlet lastInsertedElement: Text;\r\n\r\n\t\tforEach(newElement, currentElement => {\r\n\t\t\t// Make sure strings are converted to text nodes before moving on\r\n\t\t\tconst node =\r\n\t\t\t\ttypeof currentElement === \"string\"\r\n\t\t\t\t\t? document.createTextNode(currentElement)\r\n\t\t\t\t\t: currentElement;\r\n\r\n\t\t\tif (lastInsertedElement) {\r\n\t\t\t\tfragment.insertBefore(node, lastInsertedElement.nextSibling);\r\n\t\t\t} else {\r\n\t\t\t\tfragment.appendChild(node);\r\n\t\t\t}\r\n\r\n\t\t\tlastInsertedElement = node;\r\n\t\t});\r\n\r\n\t\tparent.insertBefore(fragment, existingElement.nextSibling);\r\n\t}\r\n}\r\n\r\n/**\r\n * Insert one or more elements **before** another element.\r\n */\r\nexport function insertElementBefore(newElement: Node | Node[], existingElement: Node) {\r\n\tconst fragment = document.createDocumentFragment();\r\n\r\n\t// Use createTextNode() before inserting text into fragment\r\n\tforEach(newElement, currentElement =>\r\n\t\tfragment.appendChild(\r\n\t\t\ttypeof currentElement === \"string\"\r\n\t\t\t\t? document.createTextNode(currentElement)\r\n\t\t\t\t: currentElement\r\n\t\t)\r\n\t);\r\n\r\n\texistingElement.parentNode?.insertBefore(fragment, existingElement);\r\n}\r\n\r\n/**\r\n * **Swap two elements** with each other.\r\n *\r\n * @param {Node} element1 - This will be replaced with `element2`\r\n * @param {Node} element2 - This will be replaced with `element1`\r\n */\r\nexport function swapElements(element1: Element, element2: Element) {\r\n\t// Remember the location of element2\r\n\tconst parent2 = element2.parentNode;\r\n\tconst next2 = element2.nextSibling;\r\n\r\n\t// If element1 is the next sibling of element2\r\n\tif (next2 === element1) {\r\n\t\tparent2?.insertBefore(element1, element2);\r\n\t} else { // Otherwise, insert element2 right before element1\r\n\t\telement1.parentNode?.insertBefore(element2, element1);\r\n\r\n\t\t// And now insert element1 where element2 was\r\n\t\tif (next2) {\r\n\t\t\t// If there was an element after element2, then insert element1 right before that\r\n\t\t\tparent2?.insertBefore(element1, next2);\r\n\t\t} else {\r\n\t\t\t// Otherwise, just append as last child\r\n\t\t\tparent2?.appendChild(element1);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * **Replace an element** with another one.\r\n */\r\nexport function replaceElement(oldElement: Element, newElement: (Element | Element[])) {\r\n\tinsertElementAfter(newElement, oldElement);\r\n\toldElement.parentElement?.removeChild(oldElement);\r\n}\r\n\r\n/**\r\n * **Wrap an element** in a new element.\r\n */\r\nexport function wrapElement(existingElement: Element, newWrapper: Element) {\r\n\texistingElement.parentNode?.insertBefore(newWrapper, existingElement);\r\n\tnewWrapper.appendChild(existingElement);\r\n}\r\n\r\n/**\r\n * **Inner wrap an element** in a new element.\r\n *\r\n * Actually, the children are what will be wrapped.\r\n */\r\nexport function wrapInnerElement(existingElement: Element, newWrapper: Element) {\r\n\twhile (existingElement.childNodes.length > 0) {\r\n\t\tnewWrapper.appendChild(existingElement.childNodes[0]);\r\n\t}\r\n\r\n\tappendElement(newWrapper, existingElement);\r\n}\r\n\r\n/**\r\n * **Unwrap an element** by moving said element out on its parent and deleting the parent.\r\n */\r\nexport function unwrapElement(element: HTMLElement, keepSiblings = true) {\r\n\tconst parent = element.parentElement;\r\n\r\n\tif (parent) {\r\n\t\tif (keepSiblings) {\r\n\t\t\tconst allSiblings = siblings(element, true);\r\n\t\t\tforEach(allSiblings, sibling => insertElementBefore(sibling, parent));\r\n\t\t\tdeleteElement(parent);\r\n\t\t} else {\r\n\t\t\treplaceElement(parent, element);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Empty one or more elements by removing all children.\r\n *\r\n * This is more than 75% faster than `innerHTML = \"\"` according to performance tests on jsPerf.com.\r\n *\r\n * @param {Node|Node[]|NodeList} element - The element(s) to be emptied.\r\n * @deprecated\r\n */\r\nexport function emptyElement(element: Element) {\r\n\tforEach(element, currentElement => {\r\n\t\twhile (currentElement.firstChild) {\r\n\t\t\tcurrentElement.removeChild(currentElement.firstChild);\r\n\t\t}\r\n\t});\r\n}\r\n","import { addClass } from \"./classList\";\r\nimport { setStyles } from \"./setStyles\";\r\nimport { appendElement } from \"./elementManipulation\";\r\nimport { setAttributes } from \"./elementProperties\";\r\n\r\ntype CreateElementOptions = {\r\n\tclassName?: string | string[];\r\n\ttext?: string;\r\n\thtml?: string | Element | Element[];\r\n\tstyle?: string | CSSStyleDeclaration;\r\n\tattributes?: Record;\r\n}\r\n\r\nexport function createElement(tagName: string, options: CreateElementOptions = {}) {\r\n\tconst newElement = document.createElement(tagName);\r\n\r\n\tObject.keys(options).forEach(optionKey => {\r\n\t\tconst optionValue = options[optionKey as keyof CreateElementOptions];\r\n\r\n\t\tswitch (optionKey) {\r\n\t\t\tcase \"className\":\r\n\t\t\t\taddClass(newElement, (optionValue as string) || \"\");\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"attributes\":\r\n\t\t\t\tsetAttributes(newElement, optionValue as Record);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"html\":\r\n\t\t\t\t// We'll only set the HTML contents if the \"text\" property hasn't ALSO been set.\r\n\t\t\t\tif (!options.text && typeof optionValue !== \"undefined\") {\r\n\t\t\t\t\tif (typeof optionValue === \"string\") {\r\n\t\t\t\t\t\tnewElement.innerHTML = optionValue;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tappendElement(optionValue as Element, newElement);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"text\":\r\n\t\t\t\tif (options.text) {\r\n\t\t\t\t\tnewElement.innerText = options.text;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"style\":\r\n\t\t\t\tif (typeof options.style === \"object\") {\r\n\t\t\t\t\tsetStyles(newElement, optionValue as CSSStyleDeclaration);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsetAttributes(newElement, optionKey, optionValue as string);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\t// Any unknown option key will be treated as a raw attribute.\r\n\t\t\t\tsetAttributes(newElement, optionKey, optionValue as string);\r\n\t\t}\r\n\t})\r\n\r\n\treturn newElement;\r\n}\r\n","import { forEach } from \"~/foundation/Helpers/forEach\";\r\nimport { filter } from \"~/foundation/Helpers/filter\";\r\nimport { splitter } from \"~/foundation/Helpers/splitter\";\r\n\r\n// We'll be using Map and not a regular object, since Map supports using objects as keys.\r\n// This requires you to include the required polyfill. \"default-3.6\" from polyfill.io is fine.\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst knownDOMObjects = new Map();\r\n\r\nfunction handleEvent(e: Event) { // eslint-disable-line\r\n\t// eslint-disable-next-line\r\n\t// @ts-ignore\r\n\tconst element = this as any; // eslint-disable-line\r\n\tconst elementHandlers = knownDOMObjects.get(element);\r\n\tconst eventType = e.type;\r\n\r\n\tif (elementHandlers && typeof elementHandlers === \"object\") {\r\n\t\tconst callbackList = elementHandlers[eventType];\r\n\r\n\t\t// Fire all associated event handlers!\r\n\t\tif (Array.isArray(callbackList) && callbackList.length) {\r\n\t\t\tforEach(callbackList, callback => {\r\n\t\t\t\tcallback.eventHandler(e);\r\n\r\n\t\t\t\t// Remove event if it is only to be fired once\r\n\t\t\t\tif (callback.once) {\r\n\t\t\t\t\tremoveEvent(element, eventType, callback.eventHandler);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * @deprecated do not use this\r\n */\r\nexport function removeEvent(elements: Element | NodeListOf, eventTypes: string | string[], eventHandlerToRemove?: any) { // eslint-disable-line\r\n\tforEach(elements, element => {\r\n\t\tconst elementHandlers = knownDOMObjects.get(element);\r\n\r\n\t\tif (elementHandlers) {\r\n\t\t\tsplitter(eventTypes, event => {\r\n\t\t\t\tif (event) {\r\n\t\t\t\t\tif (eventHandlerToRemove !== undefined) {\r\n\t\t\t\t\t\tlet callbackList = elementHandlers[event];\r\n\r\n\t\t\t\t\t\t// If there's a list of callbacks for the event type, filter it so it doesn't contain the given \"target callback\".\r\n\t\t\t\t\t\tif (Array.isArray(callbackList) && callbackList.length > 0) {\r\n\t\t\t\t\t\t\tcallbackList = filter(callbackList, (callbackObject: any) => callbackObject.eventHandler !== eventHandlerToRemove); //eslint-disable-line\r\n\r\n\t\t\t\t\t\t\t// If there are any callbacks left, store them now, and then return to avoid hitting\r\n\t\t\t\t\t\t\t// the final \"remove everything\"-block.\r\n\t\t\t\t\t\t\tif (callbackList.length > 0) {\r\n\t\t\t\t\t\t\t\telementHandlers[event] = callbackList;\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// If we're here, no usable event handlers are left, or we should just kill anything anyway (if no\r\n\t\t\t\t\t// eventHandlerToRemove was provided). Destroy the entire event handler to clean up memory.\r\n\t\t\t\t\telement.removeEventListener(event, handleEvent);\r\n\t\t\t\t\tdelete elementHandlers[event];\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Update the event handler cache.\r\n\t\t\tknownDOMObjects.set(element, elementHandlers);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Remove ALL event handlers set on the given DOM element(s).\r\n *\r\n * @param {Node|Node[]|NodeList|Window|Document} elements - The element(s) to clean up.\r\n * @deprecated do not use this\r\n */\r\nexport function removeAllEvents(elements: Element | NodeListOf) {\r\n\tforEach(elements, element => {\r\n\t\tconst elementHandlers = knownDOMObjects.get(element);\r\n\r\n\t\tif (elementHandlers) {\r\n\t\t\t// Remove all the event handlers we can possibly find.\r\n\t\t\tforEach(Object.keys(elementHandlers), eventType => {\r\n\t\t\t\tremoveEvent(element, eventType);\r\n\r\n\t\t\t\t// Remove event listeners and clean up memory.\r\n\t\t\t\telement.removeEventListener(eventType, handleEvent);\r\n\t\t\t});\r\n\r\n\t\t\tknownDOMObjects.delete(element);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Add an event to the given element(s).\r\n *\r\n * @param {Node|Node[]|NodeList|Window|Document} elements - The element(s) we'll be working on.\r\n * @param {string|string[]} eventTypes - A string containing one or more events to add (ie. \"click\", \"mouseenter\" etc.), separated by comma/space, or given as an array.\r\n * @param {function} eventHandler - The event handler function that'll handle the event.\r\n * @param {boolean} [useCapture=false] - Whether or not to use event capturing. See JS-docs for more.\r\n * @param {boolean} [once=false] - Whether or not to only run the event once and then remove it.\r\n * @deprecated do not use this\r\n */\r\nexport function addEvent(\r\n\telements: Element | NodeListOf,\r\n\teventTypes: string | string[],\r\n\teventHandler: (e: any) => void, // eslint-disable-line\r\n\tuseCapture = false,\r\n\tonce = false\r\n) {\r\n\tforEach(elements, element => {\r\n\t\tconst elementHandlers = knownDOMObjects.get(element) || {};\r\n\r\n\t\tsplitter(eventTypes, event => {\r\n\t\t\tif (!Array.isArray(elementHandlers[event])) {\r\n\t\t\t\telementHandlers[event] = [];\r\n\t\t\t\telement.addEventListener(event, handleEvent, useCapture);\r\n\t\t\t}\r\n\r\n\t\t\telementHandlers[event].push({ once, eventHandler });\r\n\t\t});\r\n\r\n\t\tknownDOMObjects.set(element, elementHandlers);\r\n\t});\r\n}\r\n\r\n/**\r\n * Add an event to the given element(s) and remove it after its first run\r\n *\r\n * @param {Node|Node[]|NodeList|Window|Document} elements - The element(s) we'll be working on.\r\n * @param {string|string[]} eventTypes - A string containing one or more events to add (ie. \"click\", \"mouseenter\" etc.), separated by space.\r\n * @param {function} eventHandler - The event handler function that'll handle the event.\r\n * @param {boolean} [useCapture=false] - Whether or not to use event capturing. See JS-docs for more.\r\n * @deprecated do not use this\r\n */\r\nexport function addEventOnce(\r\n\telements: Element | NodeListOf,\r\n\teventTypes: string | string[],\r\n\teventHandler: (e: any) => void, // eslint-disable-line\r\n\tuseCapture = false\r\n) {\r\n\taddEvent(elements, eventTypes, eventHandler, useCapture, true);\r\n}\r\n\r\n/**\r\n * Create an eventListener on a parent DOMElement to handle events triggered on multiple elements\r\n * elements triggering the eventHandler is determined by selector given.\r\n * Bonus: Works even on elements created after the event listener was added.\r\n * Depends on experimental code `Element.prototype.closest`, which isn't supported in IE, so a polyfill is required.\r\n *\r\n * @param {string} selector - Selector-string of element to trigger eventHandler on\r\n * @param {string|string[]} eventTypes - A string containing one or more events to add (ie. \"click\", \"mouseenter\" etc.), separated by comma/space, or given as an array.\r\n * @param {function} eventHandler - The event handler function that'll be triggered once event is fired inside selected element. Will be called with object as single parameter, containing event and event target (to avoid scope trouble).\r\n * @param {Node|Node[]|NodeList|HTMLDocument|Window|Document} elementScope - Parent DOM-element to set eventListener on (optional, defaults to document).\r\n * @deprecated do not use this\r\n */\r\nexport function delegateEvent(\r\n\tselector: string,\r\n\teventTypes: string | string[],\r\n\teventHandler: (e: any) => void, // eslint-disable-line\r\n\telementScope: Element | NodeListOf | Document = document\r\n) {\r\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n\taddEvent(elementScope as any, eventTypes, event => {\r\n\t\tconst listeningTarget = event.target.closest(selector);\r\n\t\tif (listeningTarget) {\r\n\t\t\teventHandler({\r\n\t\t\t\tevent,\r\n\t\t\t\ttarget: listeningTarget\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { forEach } from \"~/foundation/Helpers/forEach\";\r\n\r\nexport function triggerCustomEvent(target: HTMLElement | HTMLElement[], eventName: string, eventData: any = {}) {\r\n\tforEach(target, element => {\r\n\t\tlet event;\r\n\r\n\t\tif (window.CustomEvent) {\r\n\t\t\tevent = new CustomEvent(eventName, {\r\n\t\t\t\tdetail: eventData,\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcancelable: true\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tevent = document.createEvent(\"CustomEvent\");\r\n\t\t\tevent.initCustomEvent(eventName, true, true, eventData);\r\n\t\t}\r\n\r\n\t\telement.dispatchEvent(event);\r\n\t});\r\n}\r\n","import { triggerCustomEvent } from \"~/foundation/Events/triggerCustomEvent\";\r\nimport { getElementScroll } from \"./elementProperties\";\r\nimport { addClass, removeClass } from \"./classList\";\r\n\r\nconst className = \"dis-scroll-lock\";\r\nlet scrollTop = 0;\r\n\r\nexport let currentState = false;\r\n\r\n/**\r\n * Enable the scroll lock.\r\n */\r\nexport function enableScrollLock() {\r\n\tif (!currentState) {\r\n\t\tconst scrollPosition = getElementScroll();\r\n\r\n\t\tif (scrollPosition) {\r\n\t\t\twindow.scrollTo(scrollPosition.left, 0);\r\n\r\n\t\t\tconst htmlTag = document.documentElement;\r\n\t\t\taddClass(htmlTag, className);\r\n\t\t\thtmlTag.style.marginTop = `${-scrollPosition.top}px`;\r\n\t\t\thtmlTag.style.position = \"fixed\";\r\n\t\t\thtmlTag.style.overflow = \"hidden\";\r\n\t\t\thtmlTag.style.width = \"100%\";\r\n\r\n\t\t\t// Trigger event on target. You can listen for it using document.body.addEventListener(\"dis.scrolllock:enable\", callbackHere)\r\n\t\t\ttriggerCustomEvent(document.body, \"dis.scrolllock:enable\");\r\n\r\n\t\t\t// Remember state\r\n\t\t\tcurrentState = true;\r\n\t\t\tscrollTop = scrollPosition.top;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const enable = enableScrollLock;\r\n\r\n/**\r\n * Disable the scroll lock\r\n */\r\nexport function disableScrollLock() {\r\n\r\n\tif (currentState) {\r\n\t\tconst scrollPosition = getElementScroll();\r\n\r\n\t\tif (scrollPosition) {\r\n\t\t\tconst htmlTag = document.documentElement;\r\n\t\t\tremoveClass(htmlTag, className);\r\n\t\t\thtmlTag.style.marginTop = \"\";\r\n\t\t\thtmlTag.style.position = \"\";\r\n\t\t\thtmlTag.style.overflow = \"\";\r\n\t\t\thtmlTag.style.width = \"\";\r\n\r\n\t\t\t// Set the scroll position to what it was before\r\n\t\t\twindow.scrollTo(scrollPosition.left, scrollTop);\r\n\r\n\t\t\t// Trigger event on target. You can listen for it using document.body.addEventListener(\"dis.scrolllock:disable\", callbackHere)\r\n\t\t\ttriggerCustomEvent(document.body, \"dis.scrolllock:disable\");\r\n\r\n\t\t\t// Remember state\r\n\t\t\tcurrentState = false;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport const disable = disableScrollLock;\r\n\r\nexport function toggleScrollLock() {\r\n\tif (currentState) {\r\n\t\tdisableScrollLock();\r\n\t} else {\r\n\t\tenableScrollLock();\r\n\t}\r\n}\r\n","const closeIcon = `\r\n\r\n\t\r\n \t\r\n \r\n \r\n\r\n`;\r\n\r\nexport default closeIcon;\r\n","const zoomIcon = `\r\n\r\n\r\n`;\r\n\r\nexport default zoomIcon;\r\n","const plusIcon = `\r\n\r\n\r\n\r\n`;\r\n\r\nexport default plusIcon;\r\n","const minusIcon = `\r\n\r\n \r\n`;\r\n\r\nexport default minusIcon;\r\n","const rotationIcon = `\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n`;\r\n\r\nexport default rotationIcon;\r\n","import { onReady } from \"~/foundation/Events/onReady\";\r\nimport { createElement } from \"~/foundation/Dom/createElement\";\r\nimport { addEvent } from \"~/foundation/Events/events\";\r\nimport { enableScrollLock, disableScrollLock } from \"~/foundation/Dom/scrollLock\";\r\nimport {\r\n\tappendElement,\r\n\tinsertElementBefore\r\n} from \"~/foundation/Dom/elementManipulation\";\r\nimport closeSvg from \"~/foundation/Icons/close\";\r\nimport zoomIcon from \"./zoomIcon\";\r\nimport plusIcon from \"./plusIcon\";\r\nimport minusIcon from \"./minusIcon\";\r\nimport rotationIcon from \"./rotationIcon\";\r\n\r\nexport class ImageZoom {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {\r\n\t\tcontainer: undefined\r\n\t};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from.\r\n */\r\n\r\n\tconstructor(domReference) {\r\n\t\tthis.dom.image = domReference;\r\n\t\tonReady(() => this.initialize());\r\n\t}\r\n\r\n\tcloseZoomLightbox = () => {\r\n\t\tthis.dom.zoomLightbox.style.display = \"none\";\r\n\t\tdisableScrollLock();\r\n\t};\r\n\r\n\topenZoomLightbox = imgSrc => {\r\n\t\tenableScrollLock();\r\n\t\tconst lightbox = this.dom.zoomLightbox;\r\n\r\n\t\tif (lightbox) {\r\n\t\t\tlightbox.style.display = \"flex\";\r\n\t\t\t// Use previous zoom value instead of default if lightbox has been created on an earlier render\r\n\t\t\tif (!lightbox.classList.contains(\"created\")) {\r\n\t\t\t\tlightbox.classList.add(\"created\");\r\n\t\t\t\tlet zoomValue = \"100\";\r\n\r\n\t\t\t\tconst zoomImgMobile = createElement(\"div\", {\r\n\t\t\t\t\tclassName: \"zoomImgMobile\",\r\n\t\t\t\t\tid: \"zoomImgMobile\"\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(zoomImgMobile, lightbox);\r\n\t\t\t\tconst zoomImgWrapper = createElement(\"div\", {\r\n\t\t\t\t\tclassName: \"zoomImgWrapper\",\r\n\t\t\t\t\tid: \"zoomImgWrapper\"\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(zoomImgWrapper, zoomImgMobile);\r\n\t\t\t\tconst zoomImg = createElement(\"img\", {\r\n\t\t\t\t\tclassName: \"zoomImg\",\r\n\t\t\t\t\tid: \"zoomImg\",\r\n\t\t\t\t\tsrc: `${imgSrc}`,\r\n\t\t\t\t\tstyle: `width:${zoomValue}vw`\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(zoomImg, zoomImgWrapper);\r\n\r\n\t\t\t\tconst imgElement = lightbox.querySelector(\".zoomImg\");\r\n\r\n\t\t\t\tconst buttonResize = refValue => {\r\n\t\t\t\t\tconst rangeInput = lightbox.querySelector(\".rangeElement\");\r\n\r\n\t\t\t\t\tconst stepVal = 100;\r\n\t\t\t\t\tlet updatedVal = 100;\r\n\r\n\t\t\t\t\trefValue === \"plus\"\r\n\t\t\t\t\t\t? (updatedVal = parseInt(rangeInput.value) + stepVal)\r\n\t\t\t\t\t\t: (updatedVal = parseInt(rangeInput.value) - stepVal);\r\n\r\n\t\t\t\t\tif (updatedVal < 100) {\r\n\t\t\t\t\t\tupdatedVal = 100;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trangeInput.value = updatedVal.toString();\r\n\r\n\t\t\t\t\tif (imgElement.style.display === \"none\") {\r\n\t\t\t\t\t\tlightbox.querySelector(\r\n\t\t\t\t\t\t\t\".canvasZoomImg\"\r\n\t\t\t\t\t\t).style.width = `${updatedVal}vw`;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\timgElement.style.width = `${updatedVal}vw`;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst rangeResize = e => {\r\n\t\t\t\t\tzoomValue = e.target.value;\r\n\r\n\t\t\t\t\tif (imgElement.style.display === \"none\") {\r\n\t\t\t\t\t\tlightbox.querySelector(\r\n\t\t\t\t\t\t\t\".canvasZoomImg\"\r\n\t\t\t\t\t\t).style.width = `${zoomValue}vw`;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\timgElement.style.width = `${zoomValue}vw`;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst rotateView = () => {\r\n\t\t\t\t\tconst rangeInput = lightbox.querySelector(\".rangeElement\");\r\n\t\t\t\t\trangeInput.value = \"100\";\r\n\t\t\t\t\tconst zoomImg = lightbox.querySelector(\".zoomImg\");\r\n\t\t\t\t\tif (zoomImg.style.display === \"none\") {\r\n\t\t\t\t\t\tconst canvasZoomImg =\r\n lightbox.querySelector(\".canvasZoomImg\");\r\n\t\t\t\t\t\tcanvasZoomImg.remove();\r\n\t\t\t\t\t\tzoomImg.style.width = \"100%\";\r\n\t\t\t\t\t\tzoomImg.style.display = \"flex\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst zoomImgWrapper =\r\n lightbox.querySelector(\".zoomImgWrapper\");\r\n\t\t\t\t\t\tconst heightVal = zoomImg.naturalWidth;\r\n\t\t\t\t\t\tconst widthVal = zoomImg.naturalHeight;\r\n\t\t\t\t\t\tzoomImg.style.display = \"none\";\r\n\r\n\t\t\t\t\t\tconst canvasZoomImg = createElement(\"canvas\", {\r\n\t\t\t\t\t\t\tclassName: \"canvasZoomImg\",\r\n\t\t\t\t\t\t\twidth: widthVal,\r\n\t\t\t\t\t\t\theight: heightVal\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tappendElement(canvasZoomImg, zoomImgWrapper);\r\n\r\n\t\t\t\t\t\tconst ctx = canvasZoomImg.getContext(\"2d\");\r\n\r\n\t\t\t\t\t\tconst rotationAngle = (90 * Math.PI) / 180;\r\n\r\n\t\t\t\t\t\tconst image = new Image();\r\n\r\n\t\t\t\t\t\timage.src = zoomImg.src;\r\n\t\t\t\t\t\timage.onload = () => {\r\n\t\t\t\t\t\t\tctx.save();\r\n\t\t\t\t\t\t\tctx.translate(\r\n\t\t\t\t\t\t\t\tcanvasZoomImg.width / 2,\r\n\t\t\t\t\t\t\t\tcanvasZoomImg.height / 2\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tctx.rotate(rotationAngle);\r\n\t\t\t\t\t\t\tctx.drawImage(\r\n\t\t\t\t\t\t\t\timage,\r\n\t\t\t\t\t\t\t\t-image.width / 2,\r\n\t\t\t\t\t\t\t\t-image.height / 2\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tctx.restore();\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tcanvasZoomImg.style.width = \"100vw\";\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst closeZoomButtonElement = createElement(\"button\", {\r\n\t\t\t\t\ttype: \"button\",\r\n\t\t\t\t\tclassName: \"closeZoomButton\",\r\n\t\t\t\t\thtml: closeSvg\r\n\t\t\t\t});\r\n\t\t\t\taddEvent(closeZoomButtonElement, \"click\", () => {\r\n\t\t\t\t\tthis.closeZoomLightbox();\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(closeZoomButtonElement, lightbox);\r\n\r\n\t\t\t\tconst controlPanel = createElement(\"div\", {\r\n\t\t\t\t\tclassName: \"controlPanel\"\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(controlPanel, lightbox);\r\n\r\n\t\t\t\tconst controlPanelRangeWrapper = createElement(\"div\", {\r\n\t\t\t\t\tclassName: \"controlPanelRangeWrapper\"\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(controlPanelRangeWrapper, controlPanel);\r\n\r\n\t\t\t\tconst zoomButtonMinus = createElement(\"button\", {\r\n\t\t\t\t\ttype: \"button\",\r\n\t\t\t\t\tclassName: \"zoomButtonMinus\",\r\n\t\t\t\t\thtml: minusIcon\r\n\t\t\t\t});\r\n\t\t\t\taddEvent(zoomButtonMinus, \"click\", () => {\r\n\t\t\t\t\tbuttonResize(\"minus\");\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(zoomButtonMinus, controlPanelRangeWrapper);\r\n\r\n\t\t\t\tconst rangeElement = createElement(\"input\", {\r\n\t\t\t\t\tclassName: \"rangeElement\",\r\n\t\t\t\t\ttype: \"range\",\r\n\t\t\t\t\tmin: \"100\",\r\n\t\t\t\t\tmax: \"600\"\r\n\t\t\t\t});\r\n\t\t\t\taddEvent(rangeElement, \"input\", e => {\r\n\t\t\t\t\trangeResize(e);\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(rangeElement, controlPanelRangeWrapper);\r\n\t\t\t\trangeElement.value = rangeElement.min;\r\n\r\n\t\t\t\tconst zoomButtonPlus = createElement(\"button\", {\r\n\t\t\t\t\ttype: \"button\",\r\n\t\t\t\t\tclassName: \"zoomButtonPlus\",\r\n\t\t\t\t\thtml: plusIcon\r\n\t\t\t\t});\r\n\t\t\t\taddEvent(zoomButtonPlus, \"click\", () => {\r\n\t\t\t\t\tbuttonResize(\"plus\");\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(zoomButtonPlus, controlPanelRangeWrapper);\r\n\r\n\t\t\t\tconst rotationButton = createElement(\"button\", {\r\n\t\t\t\t\ttype: \"button\",\r\n\t\t\t\t\tclassName: \"rotationButton\",\r\n\t\t\t\t\thtml: rotationIcon\r\n\t\t\t\t});\r\n\t\t\t\taddEvent(rotationButton, \"click\", () => {\r\n\t\t\t\t\trotateView();\r\n\t\t\t\t});\r\n\t\t\t\tappendElement(rotationButton, controlPanel);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst src = this.dom.image.src || this.dom.image.dataset.src;\r\n\t\tconst originalImg = src.split(\".jpg\", 1);\r\n\t\tconst imgSrc = originalImg[0].toString();\r\n\r\n\t\tconst zoomButtonElement = createElement(\"button\", {\r\n\t\t\ttype: \"button\",\r\n\t\t\tclassName: \"imgZoomButton\",\r\n\t\t\tid: `imgZoomButton-${imgSrc}`,\r\n\t\t\thtml: zoomIcon\r\n\t\t});\r\n\t\taddEvent(zoomButtonElement, \"click\", () => {\r\n\t\t\tthis.openZoomLightbox(imgSrc);\r\n\t\t});\r\n\r\n\t\tconst zoomLightbox = createElement(\"div\", {\r\n\t\t\tclassName: \"zoomModal\",\r\n\t\t\tid: `Lightbox-${imgSrc}`,\r\n\t\t\tstyle: \"display:none\"\r\n\t\t});\r\n\r\n\t\tthis.dom.zoomLightbox = zoomLightbox;\r\n\r\n\t\tif (this.dom.image.closest(\".imgslider\")) {\r\n\t\t\tconst imgslider = this.dom.image.closest(\".imgslider\");\r\n\t\t\tthis.dom.image.parentElement.appendChild(zoomButtonElement);\r\n\t\t\tinsertElementBefore(zoomLightbox, imgslider);\r\n\t\t} else {\r\n\t\t\tthis.dom.image.parentElement.appendChild(zoomButtonElement);\r\n\t\t\tthis.dom.image.parentElement.parentElement.appendChild(\r\n\t\t\t\tzoomLightbox\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from '../../addLeadingZeros/index.js';\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import lightFormatters from '../lightFormatters/index.js';\nimport getUTCDayOfYear from '../../../_lib/getUTCDayOfYear/index.js';\nimport getUTCISOWeek from '../../../_lib/getUTCISOWeek/index.js';\nimport getUTCISOWeekYear from '../../../_lib/getUTCISOWeekYear/index.js';\nimport getUTCWeek from '../../../_lib/getUTCWeek/index.js';\nimport getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport addLeadingZeros from '../../addLeadingZeros/index.js';\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from '../isValid/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/formatters/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","/**\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\n * `date` as it will be rendered in the `timeZone`.\n */\nexport default function tzTokenizeDate(date, timeZone) {\n var dtf = getDateTimeFormat(timeZone)\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date)\n}\n\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5,\n}\n\nfunction partsOffset(dtf, date) {\n var formatted = dtf.formatToParts(date)\n var filled = []\n for (var i = 0; i < formatted.length; i++) {\n var pos = typeToPos[formatted[i].type]\n\n if (pos >= 0) {\n filled[pos] = parseInt(formatted[i].value, 10)\n }\n }\n return filled\n}\n\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, '')\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted)\n // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]]\n}\n\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\n// to get deterministic local date/time output according to the `en-US` locale which\n// can be used to extract local time parts as necessary.\nvar dtfCache = {}\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\n var testDateFormatted = new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: 'America/New_York',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n }).format(new Date('2014-06-25T04:00:00.123Z'))\n var hourCycleSupported =\n testDateFormatted === '06/25/2014, 00:00:00' ||\n testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00'\n\n dtfCache[timeZone] = hourCycleSupported\n ? new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: timeZone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n })\n : new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: timeZone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n })\n }\n return dtfCache[timeZone]\n}\n","import tzTokenizeDate from '../tzTokenizeDate/index.js'\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\n\nvar patterns = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-])(\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/,\n timezoneIANA: /(UTC|(?:[a-zA-Z]+\\/[a-zA-Z_-]+(?:\\/[a-zA-Z_]+)?))$/,\n}\n\n// Parse various time zone offset formats to an offset in milliseconds\nexport default function tzParseTimezone(timezoneString, date, isUtcDate) {\n var token\n var absoluteOffset\n\n // Z\n token = patterns.timezoneZ.exec(timezoneString)\n if (token) {\n return 0\n }\n\n var hours\n\n // ±hh\n token = patterns.timezoneHH.exec(timezoneString)\n if (token) {\n hours = parseInt(token[2], 10)\n\n if (!validateTimezone(hours)) {\n return NaN\n }\n\n absoluteOffset = hours * MILLISECONDS_IN_HOUR\n return token[1] === '+' ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = patterns.timezoneHHMM.exec(timezoneString)\n if (token) {\n hours = parseInt(token[2], 10)\n var minutes = parseInt(token[3], 10)\n\n if (!validateTimezone(hours, minutes)) {\n return NaN\n }\n\n absoluteOffset = hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\n return token[1] === '+' ? -absoluteOffset : absoluteOffset\n }\n\n // IANA time zone\n token = patterns.timezoneIANA.exec(timezoneString)\n if (token) {\n date = new Date(date || Date.now())\n var utcDate = isUtcDate ? date : toUtcDate(date)\n\n var offset = calcOffset(utcDate, timezoneString)\n\n var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString)\n\n return -fixedOffset\n }\n\n return 0\n}\n\nfunction toUtcDate(date) {\n return new Date(\n Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n )\n )\n}\n\nfunction calcOffset(date, timezoneString) {\n var tokens = tzTokenizeDate(date, timezoneString)\n\n var asUTC = Date.UTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3] % 24, tokens[4], tokens[5])\n\n var asTS = date.getTime()\n var over = asTS % 1000\n asTS -= over >= 0 ? over : 1000 + over\n return asUTC - asTS\n}\n\nfunction fixOffset(date, offset, timezoneString) {\n var localTS = date.getTime()\n\n // Our UTC time is just a guess because our offset is just a guess\n var utcGuess = localTS - offset\n\n // Test whether the zone matches the offset for this ts\n var o2 = calcOffset(new Date(utcGuess), timezoneString)\n\n // If so, offset didn't change and we're done\n if (offset === o2) {\n return offset\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= o2 - offset\n\n // If that gives us the local time we want, we're done\n var o3 = calcOffset(new Date(utcGuess), timezoneString)\n if (o2 === o3) {\n return o2\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return Math.max(o2, o3)\n}\n\nfunction validateTimezone(hours, minutes) {\n if (minutes != null && (minutes < 0 || minutes > 59)) {\n return false\n }\n\n return true\n}\n","import toInteger from 'date-fns/esm/_lib/toInteger/index.js'\nimport getTimezoneOffsetInMilliseconds from 'date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js'\nimport tzParseTimezone from '../_lib/tzParseTimezone'\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar patterns = {\n dateTimeDelimeter: /[T ]/,\n plainTime: /:/,\n timeZoneDelimeter: /[Z ]/i,\n\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/, // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/, // 2 additional digits\n ],\n\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n\n // timezone tokens (to identify the presence of a tz)\n timezone: /([Z+-].*| UTC|(?:[a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?))$/,\n}\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function toDate(argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n if (argument === null) {\n return new Date(NaN)\n }\n\n var options = dirtyOptions || {}\n\n var additionalDigits =\n options.additionalDigits == null\n ? DEFAULT_ADDITIONAL_DIGITS\n : toInteger(options.additionalDigits)\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2')\n }\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]')\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (\n typeof argument === 'number' ||\n Object.prototype.toString.call(argument) === '[object Number]'\n ) {\n return new Date(argument)\n } else if (\n !(\n typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]'\n )\n ) {\n return new Date(NaN)\n }\n\n var dateStrings = splitDateString(argument)\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n var year = parseYearResult.year\n var restDateString = parseYearResult.restDateString\n\n var date = parseDate(restDateString, year)\n\n if (isNaN(date)) {\n return new Date(NaN)\n }\n\n if (date) {\n var timestamp = date.getTime()\n var time = 0\n var offset\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time)\n\n if (isNaN(time)) {\n return new Date(NaN)\n }\n }\n\n if (dateStrings.timezone || options.timeZone) {\n offset = tzParseTimezone(dateStrings.timezone || options.timeZone, new Date(timestamp + time))\n if (isNaN(offset)) {\n return new Date(NaN)\n }\n } else {\n // get offset accurate to hour in timezones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time))\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset))\n }\n\n return new Date(timestamp + time + offset)\n } else {\n return new Date(NaN)\n }\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {}\n var array = dateString.split(patterns.dateTimeDelimeter)\n var timeString\n\n if (patterns.plainTime.test(array[0])) {\n dateStrings.date = null\n timeString = array[0]\n } else {\n dateStrings.date = array[0]\n timeString = array[1]\n dateStrings.timezone = array[2]\n if (patterns.timeZoneDelimeter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimeter)[0]\n timeString = dateString.substr(dateStrings.date.length, dateString.length)\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString)\n if (token) {\n dateStrings.time = timeString.replace(token[1], '')\n dateStrings.timezone = token[1]\n } else {\n dateStrings.time = timeString\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits]\n var patternYYYYY = patterns.YYYYY[additionalDigits]\n\n var token\n\n // YYYY or ±YYYYY\n token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString)\n if (token) {\n var yearString = token[1]\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length),\n }\n }\n\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString)\n if (token) {\n var centuryString = token[1]\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length),\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null,\n }\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token\n var date\n var month\n var week\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0)\n date.setUTCFullYear(year)\n return date\n }\n\n // YYYY-MM\n token = patterns.MM.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n\n if (!validateDate(year, month)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month)\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString)\n if (token) {\n date = new Date(0)\n var dayOfYear = parseInt(token[1], 10)\n\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, 0, dayOfYear)\n return date\n }\n\n // yyyy-MM-dd or YYYYMMDD\n token = patterns.MMDD.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n var day = parseInt(token[2], 10)\n\n if (!validateDate(year, month, day)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month, day)\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n\n if (!validateWeekDate(year, week)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n var dayOfWeek = parseInt(token[2], 10) - 1\n\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime(timeString) {\n var token\n var hours\n var minutes\n\n // hh\n token = patterns.HH.exec(timeString)\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'))\n\n if (!validateTime(hours)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseFloat(token[2].replace(',', '.'))\n\n if (!validateTime(hours, minutes)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\n }\n\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseInt(token[2], 10)\n var seconds = parseFloat(token[3].replace(',', '.'))\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0\n day = day || 0\n var date = new Date(0)\n date.setUTCFullYear(isoWeekYear, 0, 4)\n var fourthOfJanuaryDay = date.getUTCDay() || 7\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n date.setUTCDate(date.getUTCDate() + diff)\n return date\n}\n\n// Validation functions\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)\n}\n\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false\n }\n\n if (date != null) {\n if (date < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year)\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false\n }\n }\n\n return true\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year)\n if (isLeapYear && dayOfYear > 366) {\n return false\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false\n }\n\n return true\n}\n\nfunction validateWeekDate(year, week, day) {\n if (week < 0 || week > 52) {\n return false\n }\n\n if (day != null && (day < 0 || day > 6)) {\n return false\n }\n\n return true\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours != null && (hours < 0 || hours >= 25)) {\n return false\n }\n\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false\n }\n\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false\n }\n\n return true\n}\n","import tzParseTimezone from '../_lib/tzParseTimezone'\nimport toDate from '../toDate'\n\n/**\n * @name utcToZonedTime\n * @category Time Zone Helpers\n * @summary Get a date/time representing local time in a given time zone from the UTC date\n *\n * @description\n * Returns a date instance with values representing the local time in the time zone\n * specified of the UTC time from the date provided. In other words, when the new date\n * is formatted it will show the equivalent hours in the target time zone regardless\n * of the current system time zone.\n *\n * @param {Date|String|Number} date - the date with the relevant UTC time\n * @param {String} timeZone - the time zone to get local time for, can be an offset or IANA time zone\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the new date with the equivalent time in the time zone\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // In June 10am UTC is 6am in New York (-04:00)\n * const result = utcToZonedTime('2014-06-25T10:00:00.000Z', 'America/New_York')\n * //=> Jun 25 2014 06:00:00\n */\nexport default function utcToZonedTime(dirtyDate, timeZone, options) {\n var date = toDate(dirtyDate, options)\n\n var offsetMilliseconds = tzParseTimezone(timeZone, date, true) || 0\n\n var d = new Date(date.getTime() - offsetMilliseconds)\n\n var zonedTime = new Date(\n d.getUTCFullYear(),\n d.getUTCMonth(),\n d.getUTCDate(),\n d.getUTCHours(),\n d.getUTCMinutes(),\n d.getUTCSeconds(),\n d.getUTCMilliseconds()\n )\n\n return zonedTime\n}\n","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getTime() - dateRight.getTime();\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * var result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (isNaN(date) || !date) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time) || time === null) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate(), dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n result.setFullYear(dirtyDate.getUTCFullYear());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: null\n };\n var year = captures[1] && parseInt(captures[1]);\n var century = captures[2] && parseInt(captures[2]);\n return {\n year: century == null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return null;\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return null;\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return null; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","const DATETIMEFORMAT = \"MMMM dd, yyyy HH:mm a\"; //when used in local-datetime: data-date-format=\"date-time\"\r\nconst DATEFORMAT = \"MMMM dd, yyyy\"; //when used in local-datetime: data-date-format=\"date\"\r\nconst TIMEFORMAT = \"HH:mm a\";\r\nconst EVENTDATETIMEFORMAT = \"MMMM dd, HH:mm a\"; //when used in local-datetime: data-date-format=\"event-date-time\"\r\n\r\nexport { DATETIMEFORMAT, DATEFORMAT, TIMEFORMAT, EVENTDATETIMEFORMAT };\r\n","export const getLocalTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n","export const isRtl = document.documentElement.getAttribute(\"dir\") === \"rtl\";\r\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'أقل من ثانية واحدة',\n two: 'أقل من ثانتين',\n threeToTen: 'أقل من {{count}} ثواني',\n other: 'أقل من {{count}} ثانية'\n },\n xSeconds: {\n one: 'ثانية واحدة',\n two: 'ثانتين',\n threeToTen: '{{count}} ثواني',\n other: '{{count}} ثانية'\n },\n halfAMinute: 'نصف دقيقة',\n lessThanXMinutes: {\n one: 'أقل من دقيقة',\n two: 'أقل من دقيقتين',\n threeToTen: 'أقل من {{count}} دقائق',\n other: 'أقل من {{count}} دقيقة'\n },\n xMinutes: {\n one: 'دقيقة واحدة',\n two: 'دقيقتين',\n threeToTen: '{{count}} دقائق',\n other: '{{count}} دقيقة'\n },\n aboutXHours: {\n one: 'ساعة واحدة تقريباً',\n two: 'ساعتين تقريباً',\n threeToTen: '{{count}} ساعات تقريباً',\n other: '{{count}} ساعة تقريباً'\n },\n xHours: {\n one: 'ساعة واحدة',\n two: 'ساعتين',\n threeToTen: '{{count}} ساعات',\n other: '{{count}} ساعة'\n },\n xDays: {\n one: 'يوم واحد',\n two: 'يومين',\n threeToTen: '{{count}} أيام',\n other: '{{count}} يوم'\n },\n aboutXWeeks: {\n one: 'أسبوع واحد تقريباً',\n two: 'أسبوعين تقريباً',\n threeToTen: '{{count}} أسابيع تقريباً',\n other: '{{count}} أسبوع تقريباً'\n },\n xWeeks: {\n one: 'أسبوع واحد',\n two: 'أسبوعين',\n threeToTen: '{{count}} أسابيع',\n other: '{{count}} أسبوع'\n },\n aboutXMonths: {\n one: 'شهر واحد تقريباً',\n two: 'شهرين تقريباً',\n threeToTen: '{{count}} أشهر تقريباً',\n other: '{{count}} شهر تقريباً'\n },\n xMonths: {\n one: 'شهر واحد',\n two: 'شهرين',\n threeToTen: '{{count}} أشهر',\n other: '{{count}} شهر'\n },\n aboutXYears: {\n one: 'عام واحد تقريباً',\n two: 'عامين تقريباً',\n threeToTen: '{{count}} أعوام تقريباً',\n other: '{{count}} عام تقريباً'\n },\n xYears: {\n one: 'عام واحد',\n two: 'عامين',\n threeToTen: '{{count}} أعوام',\n other: '{{count}} عام'\n },\n overXYears: {\n one: 'أكثر من عام',\n two: 'أكثر من عامين',\n threeToTen: 'أكثر من {{count}} أعوام',\n other: 'أكثر من {{count}} عام'\n },\n almostXYears: {\n one: 'عام واحد تقريباً',\n two: 'عامين تقريباً',\n threeToTen: '{{count}} أعوام تقريباً',\n other: '{{count}} عام تقريباً'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else if (count === 2) {\n result = formatDistanceLocale[token].two;\n } else if (count <= 10) {\n result = formatDistanceLocale[token].threeToTen.replace('{{count}}', count);\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'في خلال ' + result;\n } else {\n return 'منذ ' + result;\n }\n }\n\n return result;\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'عند' {{time}}\",\n long: \"{{date}} 'عند' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'أخر' eeee 'عند' p\",\n yesterday: \"'أمس عند' p\",\n today: \"'اليوم عند' p\",\n tomorrow: \"'غداً عند' p\",\n nextWeek: \"eeee 'عند' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['ق', 'ب'],\n abbreviated: ['ق.م.', 'ب.م.'],\n wide: ['قبل الميلاد', 'بعد الميلاد']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['ر1', 'ر2', 'ر3', 'ر4'],\n wide: ['الربع الأول', 'الربع الثاني', 'الربع الثالث', 'الربع الرابع']\n};\nvar monthValues = {\n narrow: ['ي', 'ف', 'م', 'أ', 'م', 'ي', 'ي', 'أ', 'س', 'أ', 'ن', 'د'],\n abbreviated: ['ينا', 'فبر', 'مارس', 'أبريل', 'مايو', 'يونـ', 'يولـ', 'أغسـ', 'سبتـ', 'أكتـ', 'نوفـ', 'ديسـ'],\n wide: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر']\n};\nvar dayValues = {\n narrow: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n short: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n abbreviated: ['أحد', 'اثنـ', 'ثلا', 'أربـ', 'خميـ', 'جمعة', 'سبت'],\n wide: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'صباحاً',\n afternoon: 'بعد الظهر',\n evening: 'مساءاً',\n night: 'ليلاً'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n midnight: 'ن',\n noon: 'ظ',\n morning: 'في الصباح',\n afternoon: 'بعد الظـهر',\n evening: 'في المساء',\n night: 'في الليل'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n morning: 'في الصباح',\n evening: 'في المساء',\n night: 'في الليل'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n midnight: 'نصف الليل',\n noon: 'ظهر',\n afternoon: 'بعد الظـهر',\n evening: 'في المساء',\n night: 'في الليل'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n return String(dirtyNumber);\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ق|ب)/i,\n abbreviated: /^(ق\\.?\\s?م\\.?|ق\\.?\\s?م\\.?\\s?|a\\.?\\s?d\\.?|c\\.?\\s?)/i,\n wide: /^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i\n};\nvar parseEraPatterns = {\n any: [/^قبل/i, /^بعد/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^ر[1234]/i,\n wide: /^الربع [1234]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[يفمأمسند]/i,\n abbreviated: /^(ين|ف|مار|أب|ماي|يون|يول|أغ|س|أك|ن|د)/i,\n wide: /^(ين|ف|مار|أب|ماي|يون|يول|أغ|س|أك|ن|د)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^ي/i, /^ف/i, /^م/i, /^أ/i, /^م/i, /^ي/i, /^ي/i, /^أ/i, /^س/i, /^أ/i, /^ن/i, /^د/i],\n any: [/^ين/i, /^ف/i, /^مار/i, /^أب/i, /^ماي/i, /^يون/i, /^يول/i, /^أغ/i, /^س/i, /^أك/i, /^ن/i, /^د/i]\n};\nvar matchDayPatterns = {\n narrow: /^[حنثرخجس]/i,\n short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n abbreviated: /^(أحد|اثن|ثلا|أرب|خمي|جمعة|سبت)/i,\n wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],\n wide: [/^الأحد/i, /^الاثنين/i, /^الثلاثاء/i, /^الأربعاء/i, /^الخميس/i, /^الجمعة/i, /^السبت/i],\n any: [/^أح/i, /^اث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary Arabic locale (Sauid Arabic).\n * @language Arabic\n * @iso-639-2 ara\n * @author Dhaifallah Alwadani [@dalwadani]{@link https://github.com/dalwadani}\n */\n\nvar locale = {\n code: 'ar-SA',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import { onReady } from \"~/foundation/Events/onReady\";\r\nimport { utcToZonedTime } from \"date-fns-tz\";\r\nimport { format, parseISO, differenceInHours } from \"date-fns\";\r\nimport {\r\n\tDATETIMEFORMAT,\r\n\tDATEFORMAT,\r\n\tTIMEFORMAT,\r\n\tEVENTDATETIMEFORMAT\r\n} from \"./date-format\";\r\nimport { getLocalTimeZone } from \"~/foundation/Helpers/getLocalTimeZone\";\r\nimport { isRtl } from \"~/foundation/Helpers/isRtl\";\r\nimport { arSA } from \"date-fns/locale\";\r\nimport { isIE11 } from \"~/foundation/Helpers/isIE11\";\r\n\r\nexport class LocalDatetime {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {\r\n\t\tcontainer: undefined\r\n\t};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from.\r\n */\r\n\tconstructor(domReference) {\r\n\t\tthis.dom.container = domReference;\r\n\r\n\t\tthis.dom.datePlaceholder =\r\n this.dom.container.querySelector(\".local-datetime-placeholder\") ||\r\n false;\r\n\r\n\t\tthis.data = {\r\n\t\t\tdateFormat: this.dom.container.dataset.dateFormat,\r\n\t\t\tutcStart: this.dom.container.dataset.utcStart,\r\n\t\t\tutcEnd: this.dom.container.dataset.utcEnd,\r\n\t\t\tfallbackDateString: this.dom.container.dataset.dateFallback,\r\n\t\t\tuseKSA: this.dom.container.dataset.useKsa\r\n\t\t};\r\n\r\n\t\tonReady(() => this.initialize());\r\n\t}\r\n\r\n\tgetTimeInterval = () => {\r\n\t\treturn (\r\n\t\t\tdifferenceInHours(\r\n\t\t\t\tparseISO(this.data.utcEnd),\r\n\t\t\t\tparseISO(this.data.utcStart)\r\n\t\t\t) <= 23\r\n\t\t);\r\n\t};\r\n\r\n\tsetStartDateString = () => {\r\n\t\tif (!this.data.utcStart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst startDate = format(\r\n\t\t\tutcToZonedTime(\r\n\t\t\t\tparseISO(this.data.utcStart),\r\n\t\t\t\tthis.settings.localTimeZone\r\n\t\t\t),\r\n\t\t\tthis.settings.dateFormat,\r\n\t\t\tthis.settings.formatOptions\r\n\t\t);\r\n\r\n\t\tconst dateString = `${startDate}`;\r\n\r\n\t\tif (this.dom.datePlaceholder) {\r\n\t\t\tthis.dom.datePlaceholder.innerText = dateString;\r\n\t\t} else {\r\n\t\t\tthis.dom.container.innerText = dateString;\r\n\t\t}\r\n\t};\r\n\r\n\tsetStartEndDateString = () => {\r\n\t\tconst endDateFormat = this.settings.sameDay\r\n\t\t\t? TIMEFORMAT\r\n\t\t\t: this.settings.dateFormat;\r\n\r\n\t\tconst startDate = format(\r\n\t\t\tutcToZonedTime(\r\n\t\t\t\tparseISO(this.data.utcStart),\r\n\t\t\t\tthis.settings.localTimeZone\r\n\t\t\t),\r\n\t\t\tthis.settings.dateFormat,\r\n\t\t\tthis.settings.formatOptions\r\n\t\t);\r\n\r\n\t\tconst endDate = format(\r\n\t\t\tutcToZonedTime(\r\n\t\t\t\tparseISO(this.data.utcEnd),\r\n\t\t\t\tthis.settings.localTimeZone\r\n\t\t\t),\r\n\t\t\tendDateFormat,\r\n\t\t\tthis.settings.formatOptions\r\n\t\t);\r\n\r\n\t\tconst dateString = `${startDate} - ${endDate}`;\r\n\r\n\t\tif (this.dom.datePlaceholder) {\r\n\t\t\tthis.dom.datePlaceholder.innerText = dateString;\r\n\t\t} else {\r\n\t\t\tthis.dom.container.innerText = dateString;\r\n\t\t}\r\n\t};\r\n\r\n\tsetFallbackDateString = () => {\r\n\t\tif (this.dom.datePlaceholder) {\r\n\t\t\tthis.dom.datePlaceholder.innerText = this.data.fallbackDateString;\r\n\t\t} else {\r\n\t\t\tthis.dom.container.innerText = this.data.fallbackDateString;\r\n\t\t}\r\n\t};\r\n\r\n\tsetDateFormat = () => {\r\n\t\tswitch (this.data.dateFormat) {\r\n\t\t\tcase \"event-date-time\":\r\n\t\t\t\treturn EVENTDATETIMEFORMAT;\r\n\t\t\tcase \"date\":\r\n\t\t\t\treturn DATEFORMAT;\r\n\t\t\tcase \"date-time\":\r\n\t\t\t\treturn DATETIMEFORMAT;\r\n\t\t\tdefault:\r\n\t\t\t\treturn DATETIMEFORMAT;\r\n\t\t}\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tthis.settings = {\r\n\t\t\tlocalTimeZone: getLocalTimeZone,\r\n\t\t\tdateFormat: this.setDateFormat(),\r\n\t\t\tsameDay: undefined,\r\n\t\t\tformatOptions: isRtl ? { locale: arSA } : \"\"\r\n\t\t};\r\n\r\n\t\tif (this.data.utcEnd && this.data.utcEnd.length >= 2) {\r\n\t\t\tthis.settings.sameDay = this.getTimeInterval();\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tthis.settings.localTimeZone === \"Etc/GMT-3\" &&\r\n this.data.useKSA &&\r\n this.data.useKSA.length >= 1\r\n\t\t) {\r\n\t\t\tthis.settings.localTimeZone = \"Asia/Riyadh\";\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tisIE11 &&\r\n this.data.fallbackDateString &&\r\n this.data.fallbackDateString.length >= 1\r\n\t\t) {\r\n\t\t\tthis.setFallbackDateString();\r\n\t\t} else if (!this.data.utcEnd) {\r\n\t\t\tthis.setStartDateString();\r\n\t\t} else {\r\n\t\t\tif (\r\n\t\t\t\tthis.data.utcStart &&\r\n this.data.utcStart.length >= 2 &&\r\n this.data.utcEnd &&\r\n this.data.utcEnd.length >= 2\r\n\t\t\t) {\r\n\t\t\t\tthis.setStartEndDateString();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","export function changeDirection() {\r\n\tconst body = document.body;\r\n\tconst headerLogo = body.querySelector(\".header a\");\r\n\r\n\tconst htmlElement = document.documentElement;\r\n\tconst isRtl = document.documentElement.getAttribute(\"dir\") === \"rtl\";\r\n\r\n\tif (headerLogo) {\r\n\t\theaderLogo.setAttribute(\"href\", isRtl ? \"/en\" : \"/ar\");\r\n\t}\r\n\r\n\thtmlElement.setAttribute(\"dir\", isRtl ? \"ltr\" : \"rtl\");\r\n\thtmlElement.setAttribute(\"lang\", isRtl ? \"en\" : \"ar\");\r\n}\r\n","import closeSvg from \"~/foundation/Icons/close\";\r\nimport { isRtl } from \"~/foundation/Helpers/isRtl\";\r\n\r\nexport const closeMarkup = ``;\r\n","const checkmarkIcon = `\r\n\r\n \r\n\r\n`;\r\n\r\nexport default checkmarkIcon;\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../close\";\r\nimport checkmark from \"~/foundation/Icons/checkmark\";\r\n\r\nexport const selectLanguageMarkup = labels => {\r\n\tconst { headerTitle, signupTitle, languages, continueLabel, logInLabel } =\r\n labels;\r\n\r\n\tlet languagesString = \"\";\r\n\r\n\tfor (let index = 0; index < languages.length; index++) {\r\n\t\tconst language = languages[index];\r\n\t\tlanguagesString =\r\n languagesString +\r\n ``;\r\n\t}\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\r\n
\r\n
\r\n

${signupTitle}

\r\n
\r\n ${languagesString}\r\n
\r\n
\r\n `);\r\n};\r\n","import { appendElement, emptyElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { addEventOnce, addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { changeDirection } from \"~/foundation/Helpers/changeDirection\";\r\nimport { selectLanguageMarkup } from \"./markup\";\r\n\r\nexport class SelectLanguageScreen {\r\n\t/**\r\n\t\t * Internal placeholder for cached DOM-objects.\r\n\t\t *\r\n\t\t * @type {object}\r\n\t\t * @ignore\r\n\t\t */\r\n\tdom = {};\r\n\r\n\t/**\r\n\t\t *\r\n\t\t * @param {Element} domReference - The element to work from. -> membership__content\r\n\t\t */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.languages = config.languages;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonChangeLanguage: config.onChangeLanguage,\r\n\t\t\tonSelectLanguage: config.onSelectLanguage,\r\n\t\t\tonLoginButtonClick: config.onLoginButtonClick,\r\n\t\t\tonInit: config.onInit\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tselectLanguageAndContinue = () => {\r\n\t\tremoveAllEvents(this.dom.languageButtons);\r\n\t\tthis.callbacks.onSelectLanguage(this.selectedLanguageCode);\r\n\t};\r\n\r\n\tchangeLanguage = e => {\r\n\t\tconst button = e.target;\r\n\t\tthis.dom.selectedLanguageButton.classList.remove(\"button--selected\");\r\n\t\tbutton.classList.add(\"button--selected\");\r\n\t\tthis.dom.selectedLanguageButton = button;\r\n\t\tthis.selectedLanguageCode = button.id;\r\n\t\tconst htmlElement = document.getElementsByTagName(\"html\")[0];\r\n\t\tconst language = htmlElement.getAttribute(\"lang\");\r\n\r\n\t\tif (language !== this.selectedLanguageCode) {\r\n\t\t\temptyElement(this.dom.membershipContent);\r\n\t\t\tchangeDirection();\r\n\t\t\twindow.history.replaceState(\"\", \"\", this.selectedLanguageCode);\r\n\t\t\tthis.callbacks.onChangeLanguage(this.selectedLanguageCode);\r\n\t\t}\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst selectLanguageHtml = selectLanguageMarkup({\r\n\t\t\theaderTitle: this.texts.introText,\r\n\t\t\tsignupTitle: `${this.texts.languageLabel}
${this.texts.languageHelpText}`,\r\n\t\t\tlanguages: this.languages,\r\n\t\t\tcontinueLabel: this.texts.startButtonLabel,\r\n\t\t\tlogInLabel: this.texts.alreadyHaveAccountLinkText\r\n\t\t});\r\n\r\n\t\tappendElement(selectLanguageHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.membershipContent.className =\r\n\t\t\t\"membership__content membership__content--signup-select-language\";\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership-footer .cta\"\r\n\t\t);\r\n\t\tthis.dom.selectedLanguageButton =\r\n\t\t\tthis.dom.membershipContent.querySelector(\r\n\t\t\t\t\".select-language .button--selected\"\r\n\t\t\t);\r\n\t\tthis.selectedLanguageCode = this.dom.selectedLanguageButton.id;\r\n\t\tthis.dom.languageButtons = this.dom.membershipContent.querySelectorAll(\r\n\t\t\t\".select-language .button\"\r\n\t\t);\r\n\t\tconst loginButton =\r\n\t\t\tthis.dom.membershipContent.querySelector(\"button.login\");\r\n\r\n\t\taddEvent(this.dom.languageButtons, \"click\", this.changeLanguage);\r\n\t\tthis.callbacks.onInit(this.selectedLanguageCode);\r\n\t\taddEventOnce(loginButton, \"click\", this.callbacks.onLoginButtonClick);\r\n\t\taddEventOnce(\r\n\t\t\tthis.dom.continueButton,\r\n\t\t\t\"click\",\r\n\t\t\tthis.selectLanguageAndContinue\r\n\t\t);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const enterNameMarkup = labels => {\r\n\tconst { headerTitle, firstNameLabel, lastNameLabel, continueLabel } =\r\n labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\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","export function showError(input, message) {\r\n\tconst errorMessageContainer = input.parentNode.querySelector(\".error\");\r\n\tinput.parentNode.classList.add(\"input--error\");\r\n\terrorMessageContainer.innerHTML = message;\r\n}\r\n\r\nexport function removeError(input) {\r\n\tconst errorMessageContainer = input.parentNode.querySelector(\".error\");\r\n\tinput.parentNode.classList.remove(\"input--error\");\r\n\tif (errorMessageContainer) {\r\n\t\terrorMessageContainer.innerText = \"\";\r\n\t}\r\n}\r\n\r\nexport function removeErrors() {\r\n\tconst errorMessages = document.querySelectorAll(\".input--error\");\r\n\tfor (let index = 0; index < errorMessages.length; index++) {\r\n\t\tconst element = errorMessages[index];\r\n\t\telement.classList.remove(\"input--error\");\r\n\t}\r\n}\r\n","import { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { enterNameMarkup } from \"./markup\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { showError, removeErrors } from \"~/foundation/Form/input/input-errors\";\r\n\r\nexport class EnterName {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonContinue: config.onContinue\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tvalidateNameScreen = () => {\r\n\t\tif (this.dom.firstNameInput.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.dom.firstNameInput,\r\n\t\t\t\tthis.errorMessages.firstNameRequired\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.dom.lastNameInput.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.dom.lastNameInput,\r\n\t\t\t\tthis.errorMessages.lastNameRequired\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tremoveErrors();\r\n\r\n\t\tremoveAllEvents(this.dom.continueButton);\r\n\t\tthis.callbacks.onContinue(\r\n\t\t\tthis.dom.firstNameInput.value,\r\n\t\t\tthis.dom.lastNameInput.value\r\n\t\t);\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst enterNameHtml = enterNameMarkup(this.texts);\r\n\r\n\t\tappendElement(enterNameHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.membershipContent.className =\r\n \"membership__content membership__content--signup-name\";\r\n\t\tthis.dom.firstNameInput =\r\n this.dom.membershipContent.querySelector(\"#firstName\");\r\n\t\tthis.dom.lastNameInput =\r\n this.dom.membershipContent.querySelector(\"#lastName\");\r\n\r\n\t\tif (this.user.firstName) {\r\n\t\t\tthis.dom.firstNameInput.value = this.user.firstName;\r\n\t\t}\r\n\r\n\t\tif (this.user.lastName) {\r\n\t\t\tthis.dom.lastNameInput.value = this.user.lastName;\r\n\t\t}\r\n\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership-footer .cta\"\r\n\t\t);\r\n\t\taddEvent(this.dom.continueButton, \"click\", this.validateNameScreen);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const enterEmailMarkup = labels => {\r\n\tconst { headerTitle, emailLabel, emailHelpText, continueLabel } = labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ${emailHelpText}\r\n
\r\n
\r\n `);\r\n};\r\n","export function validateEmail(email: string) {\r\n\tconst re = /^(([^<>()\\\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\treturn re.test(String(email).toLowerCase());\r\n}\r\n","/**\r\n * @deprecated Use auto-generated services instead\r\n */\r\nexport async function fetcher(\r\n\turl: string,\r\n\ttype: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" = \"GET\",\r\n\tdata?: BodyInit,\r\n\tappkey: string = \"\",\r\n\ttoken: string = \"\"\r\n) {\r\n\tconst aramcolife = window.aramcolife;\r\n\r\n\tif (aramcolife && aramcolife.appkey && aramcolife.token) {\r\n\t\ttoken = aramcolife.token;\r\n\t\tappkey = aramcolife.appkey;\r\n\t}\r\n\r\n\tconst headers: HeadersInit = {\r\n\t\t\"Accept\": \"application/json\",\r\n\t\t\"Content-Type\": \"application/json\"\r\n\t};\r\n\r\n\tif (appkey) {\r\n\t\theaders.AppKey = appkey;\r\n\t}\r\n\r\n\tif (token) {\r\n\t\theaders.TokenAuthorization = `Bearer ${token}`;\r\n\t}\r\n\r\n\tconst fetchConfig: RequestInit = {\r\n\t\tmethod: type,\r\n\t\theaders\r\n\t};\r\n\r\n\tif (data) {\r\n\t\tfetchConfig.body = JSON.stringify(data);\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(url, fetchConfig);\r\n\t\tif (response.status === 200) {\r\n\t\t\treturn await response.json();\r\n\t\t}\r\n\r\n\t\tif (response.ok) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconsole.warn(`Looks like there was a problem. Status Code ${response.status}`);\r\n\t} catch (error) {\r\n\t\tconsole.warn(\"Looks like there was a problem.\", error);\r\n\t}\r\n}\r\n","import { type ApiErrorMessage } from \"./generated-types\";\r\n\r\nexport type Http = typeof http;\r\nexport type ApiRequestMethods = \"GET\" | \"PUT\" | \"POST\" | \"DELETE\";\r\nexport type ServiceEndpointMeta = [method: ApiRequestMethods, url: string];\r\nexport type Meta = Record;\r\nexport type ApiError = ApiErrorMessage & unknown;\r\n\r\ntype FetchData = {\r\n\tparams?: { [key: string]: any }, // eslint-disable-line\r\n\tbody?: T,\r\n\tqueryStrings?: { [key: string]: any }; // eslint-disable-line\r\n};\r\n\r\nexport type ApiResponse = {\r\n\tsuccess: boolean;\r\n\tstatusCode?: number;\r\n\tdata?: TSuccess;\r\n\terror?: ApiError;\r\n}\r\n\r\nlet token: string | undefined = undefined;\r\nlet appkey: string | undefined = undefined;\r\n\r\nif (window.aramcolife) {\r\n\ttoken = window.aramcolife.token;\r\n\tappkey = window.aramcolife.appkey;\r\n}\r\n\r\nexport const http = {\r\n\tfetch: async (meta: ServiceEndpointMeta, data?: FetchData): Promise> => {\r\n\r\n\t\tconst [method, endpoint] = meta;\r\n\t\tconst url = endpoint;\r\n\r\n\t\tconst fetchObj: RequestInit = {\r\n\t\t\tmethod,\r\n\t\t\theaders: {\r\n\t\t\t\t\"accept\": \"application/json\",\r\n\t\t\t\t\"content-type\": \"application/json;charset=UTF-8\",\r\n\t\t\t\t...(appkey && { \"AppKey\": appkey }),\r\n\t\t\t\t...(token && { \"TokenAuthorization\": token }),\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (data?.body) {\r\n\t\t\tfetchObj.body = JSON.stringify(data.body);\r\n\t\t}\r\n\r\n\t\tlet finalUrl = url;\r\n\r\n\t\tif (data?.params) {\r\n\t\t\tObject.keys(data.params).forEach(param => {\r\n\t\t\t\tfinalUrl = finalUrl.replace(`/:${param}`, `/${data.params?.[param]}`)\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (data?.queryStrings) {\r\n\t\t\tconst queryStrings: string[] = [];\r\n\t\t\tObject.keys(data.queryStrings).forEach(queryStringKey => {\r\n\t\t\t\tconst queryStringValue = data.queryStrings?.[queryStringKey];\r\n\t\t\t\tif (queryStringValue) {\r\n\t\t\t\t\tqueryStrings.push(`${queryStringKey}=${queryStringValue}`);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tfinalUrl = `${finalUrl}?${queryStrings.join(\"&\")}`;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst response = await fetch(finalUrl, fetchObj);\r\n\t\t\tconst { status, ok } = response;\r\n\r\n\t\t\tif (status === 201 || status === 204) { // Created, NoContent\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsuccess: true,\r\n\t\t\t\t\tstatusCode: status,\r\n\t\t\t\t\tdata: undefined\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst jsonResponse = await response.json();\r\n\r\n\t\t\tif (!ok) {\r\n\t\t\t\tif (status === 500) { // InternalServerError\r\n\t\t\t\t\tconsole.error(jsonResponse);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsuccess: false,\r\n\t\t\t\t\tstatusCode: status,\r\n\t\t\t\t\terror: jsonResponse as ApiError\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tsuccess: true,\r\n\t\t\t\tstatusCode: status,\r\n\t\t\t\tdata: jsonResponse as TResponse\r\n\t\t\t};\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(`Error fetching ${finalUrl}`, e);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tsuccess: false,\r\n\t\t\t\terror: e as ApiError\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};","/*\n * anime.js v3.2.0\n * (c) 2020 Julian Garnier\n * Released under the MIT license\n * animejs.com\n */\n\n// Defaults\n\nvar defaultInstanceSettings = {\n update: null,\n begin: null,\n loopBegin: null,\n changeBegin: null,\n change: null,\n changeComplete: null,\n loopComplete: null,\n complete: null,\n loop: 1,\n direction: 'normal',\n autoplay: true,\n timelineOffset: 0\n};\n\nvar defaultTweenSettings = {\n duration: 1000,\n delay: 0,\n endDelay: 0,\n easing: 'easeOutElastic(1, .5)',\n round: 0\n};\n\nvar validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective', 'matrix', 'matrix3d'];\n\n// Caching\n\nvar cache = {\n CSS: {},\n springs: {}\n};\n\n// Utils\n\nfunction minMax(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n\nfunction stringContains(str, text) {\n return str.indexOf(text) > -1;\n}\n\nfunction applyArguments(func, args) {\n return func.apply(null, args);\n}\n\nvar is = {\n arr: function (a) { return Array.isArray(a); },\n obj: function (a) { return stringContains(Object.prototype.toString.call(a), 'Object'); },\n pth: function (a) { return is.obj(a) && a.hasOwnProperty('totalLength'); },\n svg: function (a) { return a instanceof SVGElement; },\n inp: function (a) { return a instanceof HTMLInputElement; },\n dom: function (a) { return a.nodeType || is.svg(a); },\n str: function (a) { return typeof a === 'string'; },\n fnc: function (a) { return typeof a === 'function'; },\n und: function (a) { return typeof a === 'undefined'; },\n hex: function (a) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a); },\n rgb: function (a) { return /^rgb/.test(a); },\n hsl: function (a) { return /^hsl/.test(a); },\n col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },\n key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; }\n};\n\n// Easings\n\nfunction parseEasingParameters(string) {\n var match = /\\(([^)]+)\\)/.exec(string);\n return match ? match[1].split(',').map(function (p) { return parseFloat(p); }) : [];\n}\n\n// Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js\n\nfunction spring(string, duration) {\n\n var params = parseEasingParameters(string);\n var mass = minMax(is.und(params[0]) ? 1 : params[0], .1, 100);\n var stiffness = minMax(is.und(params[1]) ? 100 : params[1], .1, 100);\n var damping = minMax(is.und(params[2]) ? 10 : params[2], .1, 100);\n var velocity = minMax(is.und(params[3]) ? 0 : params[3], .1, 100);\n var w0 = Math.sqrt(stiffness / mass);\n var zeta = damping / (2 * Math.sqrt(stiffness * mass));\n var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;\n var a = 1;\n var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;\n\n function solver(t) {\n var progress = duration ? (duration * t) / 1000 : t;\n if (zeta < 1) {\n progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));\n } else {\n progress = (a + b * progress) * Math.exp(-progress * w0);\n }\n if (t === 0 || t === 1) { return t; }\n return 1 - progress;\n }\n\n function getDuration() {\n var cached = cache.springs[string];\n if (cached) { return cached; }\n var frame = 1/6;\n var elapsed = 0;\n var rest = 0;\n while(true) {\n elapsed += frame;\n if (solver(elapsed) === 1) {\n rest++;\n if (rest >= 16) { break; }\n } else {\n rest = 0;\n }\n }\n var duration = elapsed * frame * 1000;\n cache.springs[string] = duration;\n return duration;\n }\n\n return duration ? solver : getDuration;\n\n}\n\n// Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function\n\nfunction steps(steps) {\n if ( steps === void 0 ) steps = 10;\n\n return function (t) { return Math.ceil((minMax(t, 0.000001, 1)) * steps) * (1 / steps); };\n}\n\n// BezierEasing https://github.com/gre/bezier-easing\n\nvar bezier = (function () {\n\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1 }\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1 }\n function C(aA1) { return 3.0 * aA1 }\n\n function calcBezier(aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT }\n function getSlope(aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1) }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) { aB = currentT; } else { aA = currentT; }\n } while (Math.abs(currentX) > 0.0000001 && ++i < 10);\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < 4; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) { return aGuessT; }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n function bezier(mX1, mY1, mX2, mY2) {\n\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { return; }\n var sampleValues = new Float32Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= 0.001) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n\n }\n\n return function (x) {\n if (mX1 === mY1 && mX2 === mY2) { return x; }\n if (x === 0 || x === 1) { return x; }\n return calcBezier(getTForX(x), mY1, mY2);\n }\n\n }\n\n return bezier;\n\n})();\n\nvar penner = (function () {\n\n // Based on jQuery UI's implemenation of easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\n var eases = { linear: function () { return function (t) { return t; }; } };\n\n var functionEasings = {\n Sine: function () { return function (t) { return 1 - Math.cos(t * Math.PI / 2); }; },\n Circ: function () { return function (t) { return 1 - Math.sqrt(1 - t * t); }; },\n Back: function () { return function (t) { return t * t * (3 * t - 2); }; },\n Bounce: function () { return function (t) {\n var pow2, b = 4;\n while (t < (( pow2 = Math.pow(2, --b)) - 1) / 11) {}\n return 1 / Math.pow(4, 3 - b) - 7.5625 * Math.pow(( pow2 * 3 - 2 ) / 22 - t, 2)\n }; },\n Elastic: function (amplitude, period) {\n if ( amplitude === void 0 ) amplitude = 1;\n if ( period === void 0 ) period = .5;\n\n var a = minMax(amplitude, 1, 10);\n var p = minMax(period, .1, 2);\n return function (t) {\n return (t === 0 || t === 1) ? t : \n -a * Math.pow(2, 10 * (t - 1)) * Math.sin((((t - 1) - (p / (Math.PI * 2) * Math.asin(1 / a))) * (Math.PI * 2)) / p);\n }\n }\n };\n\n var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint', 'Expo'];\n\n baseEasings.forEach(function (name, i) {\n functionEasings[name] = function () { return function (t) { return Math.pow(t, i + 2); }; };\n });\n\n Object.keys(functionEasings).forEach(function (name) {\n var easeIn = functionEasings[name];\n eases['easeIn' + name] = easeIn;\n eases['easeOut' + name] = function (a, b) { return function (t) { return 1 - easeIn(a, b)(1 - t); }; };\n eases['easeInOut' + name] = function (a, b) { return function (t) { return t < 0.5 ? easeIn(a, b)(t * 2) / 2 : \n 1 - easeIn(a, b)(t * -2 + 2) / 2; }; };\n });\n\n return eases;\n\n})();\n\nfunction parseEasings(easing, duration) {\n if (is.fnc(easing)) { return easing; }\n var name = easing.split('(')[0];\n var ease = penner[name];\n var args = parseEasingParameters(easing);\n switch (name) {\n case 'spring' : return spring(easing, duration);\n case 'cubicBezier' : return applyArguments(bezier, args);\n case 'steps' : return applyArguments(steps, args);\n default : return applyArguments(ease, args);\n }\n}\n\n// Strings\n\nfunction selectString(str) {\n try {\n var nodes = document.querySelectorAll(str);\n return nodes;\n } catch(e) {\n return;\n }\n}\n\n// Arrays\n\nfunction filterArray(arr, callback) {\n var len = arr.length;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n var result = [];\n for (var i = 0; i < len; i++) {\n if (i in arr) {\n var val = arr[i];\n if (callback.call(thisArg, val, i, arr)) {\n result.push(val);\n }\n }\n }\n return result;\n}\n\nfunction flattenArray(arr) {\n return arr.reduce(function (a, b) { return a.concat(is.arr(b) ? flattenArray(b) : b); }, []);\n}\n\nfunction toArray(o) {\n if (is.arr(o)) { return o; }\n if (is.str(o)) { o = selectString(o) || o; }\n if (o instanceof NodeList || o instanceof HTMLCollection) { return [].slice.call(o); }\n return [o];\n}\n\nfunction arrayContains(arr, val) {\n return arr.some(function (a) { return a === val; });\n}\n\n// Objects\n\nfunction cloneObject(o) {\n var clone = {};\n for (var p in o) { clone[p] = o[p]; }\n return clone;\n}\n\nfunction replaceObjectProps(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o1) { o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p]; }\n return o;\n}\n\nfunction mergeObjects(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o2) { o[p] = is.und(o1[p]) ? o2[p] : o1[p]; }\n return o;\n}\n\n// Colors\n\nfunction rgbToRgba(rgbValue) {\n var rgb = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(rgbValue);\n return rgb ? (\"rgba(\" + (rgb[1]) + \",1)\") : rgbValue;\n}\n\nfunction hexToRgba(hexValue) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) { return r + r + g + g + b + b; } );\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return (\"rgba(\" + r + \",\" + g + \",\" + b + \",1)\");\n}\n\nfunction hslToRgba(hslValue) {\n var hsl = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(hslValue) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(hslValue);\n var h = parseInt(hsl[1], 10) / 360;\n var s = parseInt(hsl[2], 10) / 100;\n var l = parseInt(hsl[3], 10) / 100;\n var a = hsl[4] || 1;\n function hue2rgb(p, q, t) {\n if (t < 0) { t += 1; }\n if (t > 1) { t -= 1; }\n if (t < 1/6) { return p + (q - p) * 6 * t; }\n if (t < 1/2) { return q; }\n if (t < 2/3) { return p + (q - p) * (2/3 - t) * 6; }\n return p;\n }\n var r, g, b;\n if (s == 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n return (\"rgba(\" + (r * 255) + \",\" + (g * 255) + \",\" + (b * 255) + \",\" + a + \")\");\n}\n\nfunction colorToRgb(val) {\n if (is.rgb(val)) { return rgbToRgba(val); }\n if (is.hex(val)) { return hexToRgba(val); }\n if (is.hsl(val)) { return hslToRgba(val); }\n}\n\n// Units\n\nfunction getUnit(val) {\n var split = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);\n if (split) { return split[1]; }\n}\n\nfunction getTransformUnit(propName) {\n if (stringContains(propName, 'translate') || propName === 'perspective') { return 'px'; }\n if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) { return 'deg'; }\n}\n\n// Values\n\nfunction getFunctionValue(val, animatable) {\n if (!is.fnc(val)) { return val; }\n return val(animatable.target, animatable.id, animatable.total);\n}\n\nfunction getAttribute(el, prop) {\n return el.getAttribute(prop);\n}\n\nfunction convertPxToUnit(el, value, unit) {\n var valueUnit = getUnit(value);\n if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) { return value; }\n var cached = cache.CSS[value + unit];\n if (!is.und(cached)) { return cached; }\n var baseline = 100;\n var tempEl = document.createElement(el.tagName);\n var parentEl = (el.parentNode && (el.parentNode !== document)) ? el.parentNode : document.body;\n parentEl.appendChild(tempEl);\n tempEl.style.position = 'absolute';\n tempEl.style.width = baseline + unit;\n var factor = baseline / tempEl.offsetWidth;\n parentEl.removeChild(tempEl);\n var convertedUnit = factor * parseFloat(value);\n cache.CSS[value + unit] = convertedUnit;\n return convertedUnit;\n}\n\nfunction getCSSValue(el, prop, unit) {\n if (prop in el.style) {\n var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n var value = el.style[prop] || getComputedStyle(el).getPropertyValue(uppercasePropName) || '0';\n return unit ? convertPxToUnit(el, value, unit) : value;\n }\n}\n\nfunction getAnimationType(el, prop) {\n if (is.dom(el) && !is.inp(el) && (getAttribute(el, prop) || (is.svg(el) && el[prop]))) { return 'attribute'; }\n if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }\n if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }\n if (el[prop] != null) { return 'object'; }\n}\n\nfunction getElementTransforms(el) {\n if (!is.dom(el)) { return; }\n var str = el.style.transform || '';\n var reg = /(\\w+)\\(([^)]*)\\)/g;\n var transforms = new Map();\n var m; while (m = reg.exec(str)) { transforms.set(m[1], m[2]); }\n return transforms;\n}\n\nfunction getTransformValue(el, propName, animatable, unit) {\n var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);\n var value = getElementTransforms(el).get(propName) || defaultVal;\n if (animatable) {\n animatable.transforms.list.set(propName, value);\n animatable.transforms['last'] = propName;\n }\n return unit ? convertPxToUnit(el, value, unit) : value;\n}\n\nfunction getOriginalTargetValue(target, propName, unit, animatable) {\n switch (getAnimationType(target, propName)) {\n case 'transform': return getTransformValue(target, propName, animatable, unit);\n case 'css': return getCSSValue(target, propName, unit);\n case 'attribute': return getAttribute(target, propName);\n default: return target[propName] || 0;\n }\n}\n\nfunction getRelativeValue(to, from) {\n var operator = /^(\\*=|\\+=|-=)/.exec(to);\n if (!operator) { return to; }\n var u = getUnit(to) || 0;\n var x = parseFloat(from);\n var y = parseFloat(to.replace(operator[0], ''));\n switch (operator[0][0]) {\n case '+': return x + y + u;\n case '-': return x - y + u;\n case '*': return x * y + u;\n }\n}\n\nfunction validateValue(val, unit) {\n if (is.col(val)) { return colorToRgb(val); }\n if (/\\s/g.test(val)) { return val; }\n var originalUnit = getUnit(val);\n var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;\n if (unit) { return unitLess + unit; }\n return unitLess;\n}\n\n// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes\n// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return Math.PI * 2 * getAttribute(el, 'r');\n}\n\nfunction getRectLength(el) {\n return (getAttribute(el, 'width') * 2) + (getAttribute(el, 'height') * 2);\n}\n\nfunction getLineLength(el) {\n return getDistance(\n {x: getAttribute(el, 'x1'), y: getAttribute(el, 'y1')}, \n {x: getAttribute(el, 'x2'), y: getAttribute(el, 'y2')}\n );\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos;\n for (var i = 0 ; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n if (i > 0) { totalLength += getDistance(previousPos, currentPos); }\n previousPos = currentPos;\n }\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n}\n\n// Path animation\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) { return el.getTotalLength(); }\n switch(el.tagName.toLowerCase()) {\n case 'circle': return getCircleLength(el);\n case 'rect': return getRectLength(el);\n case 'line': return getLineLength(el);\n case 'polyline': return getPolylineLength(el);\n case 'polygon': return getPolygonLength(el);\n }\n}\n\nfunction setDashoffset(el) {\n var pathLength = getTotalLength(el);\n el.setAttribute('stroke-dasharray', pathLength);\n return pathLength;\n}\n\n// Motion path\n\nfunction getParentSvgEl(el) {\n var parentEl = el.parentNode;\n while (is.svg(parentEl)) {\n if (!is.svg(parentEl.parentNode)) { break; }\n parentEl = parentEl.parentNode;\n }\n return parentEl;\n}\n\nfunction getParentSvg(pathEl, svgData) {\n var svg = svgData || {};\n var parentSvgEl = svg.el || getParentSvgEl(pathEl);\n var rect = parentSvgEl.getBoundingClientRect();\n var viewBoxAttr = getAttribute(parentSvgEl, 'viewBox');\n var width = rect.width;\n var height = rect.height;\n var viewBox = svg.viewBox || (viewBoxAttr ? viewBoxAttr.split(' ') : [0, 0, width, height]);\n return {\n el: parentSvgEl,\n viewBox: viewBox,\n x: viewBox[0] / 1,\n y: viewBox[1] / 1,\n w: width / viewBox[2],\n h: height / viewBox[3]\n }\n}\n\nfunction getPath(path, percent) {\n var pathEl = is.str(path) ? selectString(path)[0] : path;\n var p = percent || 100;\n return function(property) {\n return {\n property: property,\n el: pathEl,\n svg: getParentSvg(pathEl),\n totalLength: getTotalLength(pathEl) * (p / 100)\n }\n }\n}\n\nfunction getPathProgress(path, progress) {\n function point(offset) {\n if ( offset === void 0 ) offset = 0;\n\n var l = progress + offset >= 1 ? progress + offset : 0;\n return path.el.getPointAtLength(l);\n }\n var svg = getParentSvg(path.el, path.svg);\n var p = point();\n var p0 = point(-1);\n var p1 = point(+1);\n switch (path.property) {\n case 'x': return (p.x - svg.x) * svg.w;\n case 'y': return (p.y - svg.y) * svg.h;\n case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;\n }\n}\n\n// Decompose value\n\nfunction decomposeValue(val, unit) {\n // const rgx = /-?\\d*\\.?\\d+/g; // handles basic numbers\n // const rgx = /[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var rgx = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var value = validateValue((is.pth(val) ? val.totalLength : val), unit) + '';\n return {\n original: value,\n numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],\n strings: (is.str(val) || unit) ? value.split(rgx) : []\n }\n}\n\n// Animatables\n\nfunction parseTargets(targets) {\n var targetsArray = targets ? (flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets))) : [];\n return filterArray(targetsArray, function (item, pos, self) { return self.indexOf(item) === pos; });\n}\n\nfunction getAnimatables(targets) {\n var parsed = parseTargets(targets);\n return parsed.map(function (t, i) {\n return {target: t, id: i, total: parsed.length, transforms: { list: getElementTransforms(t) } };\n });\n}\n\n// Properties\n\nfunction normalizePropertyTweens(prop, tweenSettings) {\n var settings = cloneObject(tweenSettings);\n // Override duration if easing is a spring\n if (/^spring/.test(settings.easing)) { settings.duration = spring(settings.easing); }\n if (is.arr(prop)) {\n var l = prop.length;\n var isFromTo = (l === 2 && !is.obj(prop[0]));\n if (!isFromTo) {\n // Duration divided by the number of tweens\n if (!is.fnc(tweenSettings.duration)) { settings.duration = tweenSettings.duration / l; }\n } else {\n // Transform [from, to] values shorthand to a valid tween value\n prop = {value: prop};\n }\n }\n var propArray = is.arr(prop) ? prop : [prop];\n return propArray.map(function (v, i) {\n var obj = (is.obj(v) && !is.pth(v)) ? v : {value: v};\n // Default delay value should only be applied to the first tween\n if (is.und(obj.delay)) { obj.delay = !i ? tweenSettings.delay : 0; }\n // Default endDelay value should only be applied to the last tween\n if (is.und(obj.endDelay)) { obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0; }\n return obj;\n }).map(function (k) { return mergeObjects(k, settings); });\n}\n\n\nfunction flattenKeyframes(keyframes) {\n var propertyNames = filterArray(flattenArray(keyframes.map(function (key) { return Object.keys(key); })), function (p) { return is.key(p); })\n .reduce(function (a,b) { if (a.indexOf(b) < 0) { a.push(b); } return a; }, []);\n var properties = {};\n var loop = function ( i ) {\n var propName = propertyNames[i];\n properties[propName] = keyframes.map(function (key) {\n var newKey = {};\n for (var p in key) {\n if (is.key(p)) {\n if (p == propName) { newKey.value = key[p]; }\n } else {\n newKey[p] = key[p];\n }\n }\n return newKey;\n });\n };\n\n for (var i = 0; i < propertyNames.length; i++) loop( i );\n return properties;\n}\n\nfunction getProperties(tweenSettings, params) {\n var properties = [];\n var keyframes = params.keyframes;\n if (keyframes) { params = mergeObjects(flattenKeyframes(keyframes), params); }\n for (var p in params) {\n if (is.key(p)) {\n properties.push({\n name: p,\n tweens: normalizePropertyTweens(params[p], tweenSettings)\n });\n }\n }\n return properties;\n}\n\n// Tweens\n\nfunction normalizeTweenValues(tween, animatable) {\n var t = {};\n for (var p in tween) {\n var value = getFunctionValue(tween[p], animatable);\n if (is.arr(value)) {\n value = value.map(function (v) { return getFunctionValue(v, animatable); });\n if (value.length === 1) { value = value[0]; }\n }\n t[p] = value;\n }\n t.duration = parseFloat(t.duration);\n t.delay = parseFloat(t.delay);\n return t;\n}\n\nfunction normalizeTweens(prop, animatable) {\n var previousTween;\n return prop.tweens.map(function (t) {\n var tween = normalizeTweenValues(t, animatable);\n var tweenValue = tween.value;\n var to = is.arr(tweenValue) ? tweenValue[1] : tweenValue;\n var toUnit = getUnit(to);\n var originalValue = getOriginalTargetValue(animatable.target, prop.name, toUnit, animatable);\n var previousValue = previousTween ? previousTween.to.original : originalValue;\n var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;\n var fromUnit = getUnit(from) || getUnit(originalValue);\n var unit = toUnit || fromUnit;\n if (is.und(to)) { to = previousValue; }\n tween.from = decomposeValue(from, unit);\n tween.to = decomposeValue(getRelativeValue(to, from), unit);\n tween.start = previousTween ? previousTween.end : 0;\n tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;\n tween.easing = parseEasings(tween.easing, tween.duration);\n tween.isPath = is.pth(tweenValue);\n tween.isColor = is.col(tween.from.original);\n if (tween.isColor) { tween.round = 1; }\n previousTween = tween;\n return tween;\n });\n}\n\n// Tween progress\n\nvar setProgressValue = {\n css: function (t, p, v) { return t.style[p] = v; },\n attribute: function (t, p, v) { return t.setAttribute(p, v); },\n object: function (t, p, v) { return t[p] = v; },\n transform: function (t, p, v, transforms, manual) {\n transforms.list.set(p, v);\n if (p === transforms.last || manual) {\n var str = '';\n transforms.list.forEach(function (value, prop) { str += prop + \"(\" + value + \") \"; });\n t.style.transform = str;\n }\n }\n};\n\n// Set Value helper\n\nfunction setTargetsValue(targets, properties) {\n var animatables = getAnimatables(targets);\n animatables.forEach(function (animatable) {\n for (var property in properties) {\n var value = getFunctionValue(properties[property], animatable);\n var target = animatable.target;\n var valueUnit = getUnit(value);\n var originalValue = getOriginalTargetValue(target, property, valueUnit, animatable);\n var unit = valueUnit || getUnit(originalValue);\n var to = getRelativeValue(validateValue(value, unit), originalValue);\n var animType = getAnimationType(target, property);\n setProgressValue[animType](target, property, to, animatable.transforms, true);\n }\n });\n}\n\n// Animations\n\nfunction createAnimation(animatable, prop) {\n var animType = getAnimationType(animatable.target, prop.name);\n if (animType) {\n var tweens = normalizeTweens(prop, animatable);\n var lastTween = tweens[tweens.length - 1];\n return {\n type: animType,\n property: prop.name,\n animatable: animatable,\n tweens: tweens,\n duration: lastTween.end,\n delay: tweens[0].delay,\n endDelay: lastTween.endDelay\n }\n }\n}\n\nfunction getAnimations(animatables, properties) {\n return filterArray(flattenArray(animatables.map(function (animatable) {\n return properties.map(function (prop) {\n return createAnimation(animatable, prop);\n });\n })), function (a) { return !is.und(a); });\n}\n\n// Create Instance\n\nfunction getInstanceTimings(animations, tweenSettings) {\n var animLength = animations.length;\n var getTlOffset = function (anim) { return anim.timelineOffset ? anim.timelineOffset : 0; };\n var timings = {};\n timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration; })) : tweenSettings.duration;\n timings.delay = animLength ? Math.min.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.delay; })) : tweenSettings.delay;\n timings.endDelay = animLength ? timings.duration - Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration - anim.endDelay; })) : tweenSettings.endDelay;\n return timings;\n}\n\nvar instanceID = 0;\n\nfunction createNewInstance(params) {\n var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);\n var tweenSettings = replaceObjectProps(defaultTweenSettings, params);\n var properties = getProperties(tweenSettings, params);\n var animatables = getAnimatables(params.targets);\n var animations = getAnimations(animatables, properties);\n var timings = getInstanceTimings(animations, tweenSettings);\n var id = instanceID;\n instanceID++;\n return mergeObjects(instanceSettings, {\n id: id,\n children: [],\n animatables: animatables,\n animations: animations,\n duration: timings.duration,\n delay: timings.delay,\n endDelay: timings.endDelay\n });\n}\n\n// Core\n\nvar activeInstances = [];\nvar pausedInstances = [];\nvar raf;\n\nvar engine = (function () {\n function play() { \n raf = requestAnimationFrame(step);\n }\n function step(t) {\n var activeInstancesLength = activeInstances.length;\n if (activeInstancesLength) {\n var i = 0;\n while (i < activeInstancesLength) {\n var activeInstance = activeInstances[i];\n if (!activeInstance.paused) {\n activeInstance.tick(t);\n } else {\n var instanceIndex = activeInstances.indexOf(activeInstance);\n if (instanceIndex > -1) {\n activeInstances.splice(instanceIndex, 1);\n activeInstancesLength = activeInstances.length;\n }\n }\n i++;\n }\n play();\n } else {\n raf = cancelAnimationFrame(raf);\n }\n }\n return play;\n})();\n\nfunction handleVisibilityChange() {\n if (document.hidden) {\n activeInstances.forEach(function (ins) { return ins.pause(); });\n pausedInstances = activeInstances.slice(0);\n anime.running = activeInstances = [];\n } else {\n pausedInstances.forEach(function (ins) { return ins.play(); });\n }\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n}\n\n// Public Instance\n\nfunction anime(params) {\n if ( params === void 0 ) params = {};\n\n\n var startTime = 0, lastTime = 0, now = 0;\n var children, childrenLength = 0;\n var resolve = null;\n\n function makePromise(instance) {\n var promise = window.Promise && new Promise(function (_resolve) { return resolve = _resolve; });\n instance.finished = promise;\n return promise;\n }\n\n var instance = createNewInstance(params);\n var promise = makePromise(instance);\n\n function toggleInstanceDirection() {\n var direction = instance.direction;\n if (direction !== 'alternate') {\n instance.direction = direction !== 'normal' ? 'normal' : 'reverse';\n }\n instance.reversed = !instance.reversed;\n children.forEach(function (child) { return child.reversed = instance.reversed; });\n }\n\n function adjustTime(time) {\n return instance.reversed ? instance.duration - time : time;\n }\n\n function resetTime() {\n startTime = 0;\n lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);\n }\n\n function seekChild(time, child) {\n if (child) { child.seek(time - child.timelineOffset); }\n }\n\n function syncInstanceChildren(time) {\n if (!instance.reversePlayback) {\n for (var i = 0; i < childrenLength; i++) { seekChild(time, children[i]); }\n } else {\n for (var i$1 = childrenLength; i$1--;) { seekChild(time, children[i$1]); }\n }\n }\n\n function setAnimationsProgress(insTime) {\n var i = 0;\n var animations = instance.animations;\n var animationsLength = animations.length;\n while (i < animationsLength) {\n var anim = animations[i];\n var animatable = anim.animatable;\n var tweens = anim.tweens;\n var tweenLength = tweens.length - 1;\n var tween = tweens[tweenLength];\n // Only check for keyframes if there is more than one tween\n if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; }\n var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;\n var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);\n var strings = tween.to.strings;\n var round = tween.round;\n var numbers = [];\n var toNumbersLength = tween.to.numbers.length;\n var progress = (void 0);\n for (var n = 0; n < toNumbersLength; n++) {\n var value = (void 0);\n var toNumber = tween.to.numbers[n];\n var fromNumber = tween.from.numbers[n] || 0;\n if (!tween.isPath) {\n value = fromNumber + (eased * (toNumber - fromNumber));\n } else {\n value = getPathProgress(tween.value, eased * toNumber);\n }\n if (round) {\n if (!(tween.isColor && n > 2)) {\n value = Math.round(value * round) / round;\n }\n }\n numbers.push(value);\n }\n // Manual Array.reduce for better performances\n var stringsLength = strings.length;\n if (!stringsLength) {\n progress = numbers[0];\n } else {\n progress = strings[0];\n for (var s = 0; s < stringsLength; s++) {\n var a = strings[s];\n var b = strings[s + 1];\n var n$1 = numbers[s];\n if (!isNaN(n$1)) {\n if (!b) {\n progress += n$1 + ' ';\n } else {\n progress += n$1 + b;\n }\n }\n }\n }\n setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);\n anim.currentValue = progress;\n i++;\n }\n }\n\n function setCallback(cb) {\n if (instance[cb] && !instance.passThrough) { instance[cb](instance); }\n }\n\n function countIteration() {\n if (instance.remaining && instance.remaining !== true) {\n instance.remaining--;\n }\n }\n\n function setInstanceProgress(engineTime) {\n var insDuration = instance.duration;\n var insDelay = instance.delay;\n var insEndDelay = insDuration - instance.endDelay;\n var insTime = adjustTime(engineTime);\n instance.progress = minMax((insTime / insDuration) * 100, 0, 100);\n instance.reversePlayback = insTime < instance.currentTime;\n if (children) { syncInstanceChildren(insTime); }\n if (!instance.began && instance.currentTime > 0) {\n instance.began = true;\n setCallback('begin');\n }\n if (!instance.loopBegan && instance.currentTime > 0) {\n instance.loopBegan = true;\n setCallback('loopBegin');\n }\n if (insTime <= insDelay && instance.currentTime !== 0) {\n setAnimationsProgress(0);\n }\n if ((insTime >= insEndDelay && instance.currentTime !== insDuration) || !insDuration) {\n setAnimationsProgress(insDuration);\n }\n if (insTime > insDelay && insTime < insEndDelay) {\n if (!instance.changeBegan) {\n instance.changeBegan = true;\n instance.changeCompleted = false;\n setCallback('changeBegin');\n }\n setCallback('change');\n setAnimationsProgress(insTime);\n } else {\n if (instance.changeBegan) {\n instance.changeCompleted = true;\n instance.changeBegan = false;\n setCallback('changeComplete');\n }\n }\n instance.currentTime = minMax(insTime, 0, insDuration);\n if (instance.began) { setCallback('update'); }\n if (engineTime >= insDuration) {\n lastTime = 0;\n countIteration();\n if (!instance.remaining) {\n instance.paused = true;\n if (!instance.completed) {\n instance.completed = true;\n setCallback('loopComplete');\n setCallback('complete');\n if (!instance.passThrough && 'Promise' in window) {\n resolve();\n promise = makePromise(instance);\n }\n }\n } else {\n startTime = now;\n setCallback('loopComplete');\n instance.loopBegan = false;\n if (instance.direction === 'alternate') {\n toggleInstanceDirection();\n }\n }\n }\n }\n\n instance.reset = function() {\n var direction = instance.direction;\n instance.passThrough = false;\n instance.currentTime = 0;\n instance.progress = 0;\n instance.paused = true;\n instance.began = false;\n instance.loopBegan = false;\n instance.changeBegan = false;\n instance.completed = false;\n instance.changeCompleted = false;\n instance.reversePlayback = false;\n instance.reversed = direction === 'reverse';\n instance.remaining = instance.loop;\n children = instance.children;\n childrenLength = children.length;\n for (var i = childrenLength; i--;) { instance.children[i].reset(); }\n if (instance.reversed && instance.loop !== true || (direction === 'alternate' && instance.loop === 1)) { instance.remaining++; }\n setAnimationsProgress(instance.reversed ? instance.duration : 0);\n };\n\n // Set Value helper\n\n instance.set = function(targets, properties) {\n setTargetsValue(targets, properties);\n return instance;\n };\n\n instance.tick = function(t) {\n now = t;\n if (!startTime) { startTime = now; }\n setInstanceProgress((now + (lastTime - startTime)) * anime.speed);\n };\n\n instance.seek = function(time) {\n setInstanceProgress(adjustTime(time));\n };\n\n instance.pause = function() {\n instance.paused = true;\n resetTime();\n };\n\n instance.play = function() {\n if (!instance.paused) { return; }\n if (instance.completed) { instance.reset(); }\n instance.paused = false;\n activeInstances.push(instance);\n resetTime();\n if (!raf) { engine(); }\n };\n\n instance.reverse = function() {\n toggleInstanceDirection();\n instance.completed = instance.reversed ? false : true;\n resetTime();\n };\n\n instance.restart = function() {\n instance.reset();\n instance.play();\n };\n\n instance.reset();\n\n if (instance.autoplay) { instance.play(); }\n\n return instance;\n\n}\n\n// Remove targets from animation\n\nfunction removeTargetsFromAnimations(targetsArray, animations) {\n for (var a = animations.length; a--;) {\n if (arrayContains(targetsArray, animations[a].animatable.target)) {\n animations.splice(a, 1);\n }\n }\n}\n\nfunction removeTargets(targets) {\n var targetsArray = parseTargets(targets);\n for (var i = activeInstances.length; i--;) {\n var instance = activeInstances[i];\n var animations = instance.animations;\n var children = instance.children;\n removeTargetsFromAnimations(targetsArray, animations);\n for (var c = children.length; c--;) {\n var child = children[c];\n var childAnimations = child.animations;\n removeTargetsFromAnimations(targetsArray, childAnimations);\n if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }\n }\n if (!animations.length && !children.length) { instance.pause(); }\n }\n}\n\n// Stagger helpers\n\nfunction stagger(val, params) {\n if ( params === void 0 ) params = {};\n\n var direction = params.direction || 'normal';\n var easing = params.easing ? parseEasings(params.easing) : null;\n var grid = params.grid;\n var axis = params.axis;\n var fromIndex = params.from || 0;\n var fromFirst = fromIndex === 'first';\n var fromCenter = fromIndex === 'center';\n var fromLast = fromIndex === 'last';\n var isRange = is.arr(val);\n var val1 = isRange ? parseFloat(val[0]) : parseFloat(val);\n var val2 = isRange ? parseFloat(val[1]) : 0;\n var unit = getUnit(isRange ? val[1] : val) || 0;\n var start = params.start || 0 + (isRange ? val1 : 0);\n var values = [];\n var maxValue = 0;\n return function (el, i, t) {\n if (fromFirst) { fromIndex = 0; }\n if (fromCenter) { fromIndex = (t - 1) / 2; }\n if (fromLast) { fromIndex = t - 1; }\n if (!values.length) {\n for (var index = 0; index < t; index++) {\n if (!grid) {\n values.push(Math.abs(fromIndex - index));\n } else {\n var fromX = !fromCenter ? fromIndex%grid[0] : (grid[0]-1)/2;\n var fromY = !fromCenter ? Math.floor(fromIndex/grid[0]) : (grid[1]-1)/2;\n var toX = index%grid[0];\n var toY = Math.floor(index/grid[0]);\n var distanceX = fromX - toX;\n var distanceY = fromY - toY;\n var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\n if (axis === 'x') { value = -distanceX; }\n if (axis === 'y') { value = -distanceY; }\n values.push(value);\n }\n maxValue = Math.max.apply(Math, values);\n }\n if (easing) { values = values.map(function (val) { return easing(val / maxValue) * maxValue; }); }\n if (direction === 'reverse') { values = values.map(function (val) { return axis ? (val < 0) ? val * -1 : -val : Math.abs(maxValue - val); }); }\n }\n var spacing = isRange ? (val2 - val1) / maxValue : val1;\n return start + (spacing * (Math.round(values[i] * 100) / 100)) + unit;\n }\n}\n\n// Timeline\n\nfunction timeline(params) {\n if ( params === void 0 ) params = {};\n\n var tl = anime(params);\n tl.duration = 0;\n tl.add = function(instanceParams, timelineOffset) {\n var tlIndex = activeInstances.indexOf(tl);\n var children = tl.children;\n if (tlIndex > -1) { activeInstances.splice(tlIndex, 1); }\n function passThrough(ins) { ins.passThrough = true; }\n for (var i = 0; i < children.length; i++) { passThrough(children[i]); }\n var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));\n insParams.targets = insParams.targets || params.targets;\n var tlDuration = tl.duration;\n insParams.autoplay = false;\n insParams.direction = tl.direction;\n insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);\n passThrough(tl);\n tl.seek(insParams.timelineOffset);\n var ins = anime(insParams);\n passThrough(ins);\n children.push(ins);\n var timings = getInstanceTimings(children, params);\n tl.delay = timings.delay;\n tl.endDelay = timings.endDelay;\n tl.duration = timings.duration;\n tl.seek(0);\n tl.reset();\n if (tl.autoplay) { tl.play(); }\n return tl;\n };\n return tl;\n}\n\nanime.version = '3.2.0';\nanime.speed = 1;\nanime.running = activeInstances;\nanime.remove = removeTargets;\nanime.get = getOriginalTargetValue;\nanime.set = setTargetsValue;\nanime.convertPx = convertPxToUnit;\nanime.path = getPath;\nanime.setDashoffset = setDashoffset;\nanime.stagger = stagger;\nanime.timeline = timeline;\nanime.easing = parseEasings;\nanime.penner = penner;\nanime.random = function (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; };\n\nexport default anime;\n","/**\r\n * Make your button load\r\n *\r\n * import { makeButtonLoad } from \"../button/make-button-load\";\r\n *\r\n * const buttonLoader = new makeButtonLoad(this.dom.continueButton, \"Loading\");\r\n * buttonLoader.load();\r\n *\r\n * buttonLoader.finish().then(() => {\r\n *\r\n * });\r\n *\r\n *\r\n\r\n */\r\n\r\nimport { parseHTML, appendElement, deleteElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport checkmark from \"~/foundation/Icons/checkmark\";\r\n\r\nimport anime from \"animejs\";\r\n\r\nexport class makeButtonLoad {\r\n\tconstructor(button, loadingLabel) {\r\n\t\tthis.loadingLabel = loadingLabel;\r\n\t\tthis.dom = {\r\n\t\t\tbutton\r\n\t\t};\r\n\r\n\t\tthis.dom.targetText = this.dom.button.querySelector(\"span\");\r\n\t\tthis.currentProgressAnim = undefined;\r\n\t}\r\n\r\n\tload = () => {\r\n\t\tthis.dom.button.classList.remove(\"success\");\r\n\t\tconst successCheckmark = parseHTML(checkmark);\r\n\t\tconst targetText = this.dom.button.querySelector(\"span\");\r\n\t\tthis.dom.loadingHtml = parseHTML(\r\n\t\t\t`${this.loadingLabel}`\r\n\t\t);\r\n\t\tappendElement(this.dom.loadingHtml, this.dom.button);\r\n\t\tthis.dom.button.disabled = true;\r\n\t\tconst loadingProgress = this.dom.button.querySelector(\".progress\");\r\n\r\n\t\tconst animateProgress = () => {\r\n\t\t\treturn anime({\r\n\t\t\t\ttargets: loadingProgress,\r\n\t\t\t\tduration: 2500,\r\n\t\t\t\twidth: [\"0%\", \"100%\"],\r\n\t\t\t\teasing: \"linear\",\r\n\t\t\t\tcomplete: () => {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.currentProgressAnim = animateProgress();\r\n\t\t\t\t\t}, 500);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tanime\r\n\t\t\t.timeline({\r\n\t\t\t\teasing: \"linear\",\r\n\t\t\t\tbegin: () => {\r\n\t\t\t\t\tthis.dom.button.classList.add(\"loading\");\r\n\t\t\t\t},\r\n\t\t\t\tcomplete: () => {\r\n\t\t\t\t\tappendElement(successCheckmark, this.dom.button);\r\n\t\t\t\t\tthis.currentProgressAnim = animateProgress();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: targetText,\r\n\t\t\t\tduration: 300,\r\n\t\t\t\ttranslateY: -10,\r\n\t\t\t\topacity: 0\r\n\t\t\t})\r\n\t\t\t.add(\r\n\t\t\t\t{\r\n\t\t\t\t\ttargets: this.dom.loadingHtml,\r\n\t\t\t\t\tduration: 300,\r\n\t\t\t\t\ttranslateY: [10, 0],\r\n\t\t\t\t\topacity: 1\r\n\t\t\t\t},\r\n\t\t\t\t50\r\n\t\t\t);\r\n\t};\r\n\r\n\tfinish = (repeatedLoading = false) => {\r\n\t\treturn new Promise(resolve => {\r\n\t\t\tthis.dom.button.classList.remove(\"loading\");\r\n\t\t\tthis.dom.button.classList.add(\"success\");\r\n\r\n\t\t\tif (this.currentProgressAnim && this.currentProgressAnim.pause) {\r\n\t\t\t\tthis.currentProgressAnim.pause();\r\n\t\t\t}\r\n\r\n\t\t\tanime\r\n\t\t\t\t.timeline({\r\n\t\t\t\t\teasing: \"easeOutCubic\",\r\n\t\t\t\t\tduration: 300,\r\n\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.dom.button.disabled = false;\r\n\t\t\t\t\t\t\tresolve();\r\n\r\n\t\t\t\t\t\t\tif (repeatedLoading) {\r\n\t\t\t\t\t\t\t\tdeleteElement(\r\n\t\t\t\t\t\t\t\t\tthis.dom.button.querySelector(\"svg\")\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tdeleteElement(this.dom.loadingHtml);\r\n\t\t\t\t\t\t\t\tthis.dom.targetText.style.transform =\r\n \"translateY(0)\";\r\n\t\t\t\t\t\t\t\tthis.dom.targetText.style.opacity = 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, 100);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.add({\r\n\t\t\t\t\ttargets: this.dom.loadingHtml,\r\n\t\t\t\t\ttranslateY: -10,\r\n\t\t\t\t\topacity: 0\r\n\t\t\t\t})\r\n\t\t\t\t.add(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttargets: this.dom.button.querySelector(\"svg\"),\r\n\t\t\t\t\t\tscale: [0.2, 1]\r\n\t\t\t\t\t},\r\n\t\t\t\t\t150\r\n\t\t\t\t);\r\n\t\t});\r\n\t};\r\n}\r\n","import { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { enterEmailMarkup } from \"./markup\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { showError, removeErrors } from \"~/foundation/Form/input/input-errors\";\r\nimport { validateEmail } from \"~/foundation/Helpers/validate\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { makeButtonLoad } from \"~/foundation/Components/button/make-button-load\";\r\nimport {\r\n\tMembership,\r\n\tmembershipStartPages\r\n} from \"../../../membership\";\r\n\r\nexport class EnterEmail {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\t\tthis.verifyEmailApiUrl = config.verifyEmailApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonContinue: config.onContinue\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tvalidateEmail = () => {\r\n\t\tif (this.dom.emailInput.value === \"\") {\r\n\t\t\tshowError(this.dom.emailInput, this.errorMessages.emailRequired);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!validateEmail(this.dom.emailInput.value)) {\r\n\t\t\tshowError(this.dom.emailInput, this.errorMessages.invalideEmail);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst buttonLoader = new makeButtonLoad(\r\n\t\t\tthis.dom.continueButton,\r\n\t\t\tthis.texts.loading\r\n\t\t);\r\n\t\tbuttonLoader.load();\r\n\r\n\t\tfetcher(this.verifyEmailApiUrl, \"POST\", {\r\n\t\t\temail: this.dom.emailInput.value\r\n\t\t}).then(result => {\r\n\t\t\tif (result.success) {\r\n\t\t\t\tremoveErrors();\r\n\r\n\t\t\t\tremoveAllEvents(this.dom.continueButton);\r\n\t\t\t\tbuttonLoader.finish().then(() => {\r\n\t\t\t\t\tthis.callbacks.onContinue(this.dom.emailInput.value);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tbuttonLoader.finish(true).then(() => {\r\n\t\t\t\t\tshowError(this.dom.emailInput, result.errors[0].message);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (result.data.emailAlreadyExist && result.data.isVerified) {\r\n\t\t\t\t\tconst membershipElement = document.querySelector(\r\n\t\t\t\t\t\t\"[data-module='membership']\"\r\n\t\t\t\t\t);\r\n\t\t\t\t\tnew Membership(\r\n\t\t\t\t\t\tmembershipElement,\r\n\t\t\t\t\t\tmembershipStartPages.LOGIN,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\temail: this.dom.emailInput.value,\r\n\t\t\t\t\t\t\tmessage: this.errorMessages.accountAlreadyExists\r\n\t\t\t\t\t\t}\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\tinitialize() {\r\n\t\tconst enterEmailHtml = enterEmailMarkup(this.texts);\r\n\r\n\t\tappendElement(enterEmailHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.membershipContent.className =\r\n \"membership__content membership__content--signup-email\";\r\n\r\n\t\tthis.dom.emailInput =\r\n this.dom.membershipContent.querySelector(\"#email\");\r\n\r\n\t\tif (this.user.email) {\r\n\t\t\tthis.dom.emailInput.value = this.user.email;\r\n\t\t}\r\n\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership-footer .cta\"\r\n\t\t);\r\n\t\tthis.dom.continueButton.classList.add(\"animate-scale\");\r\n\r\n\t\taddEvent(this.dom.continueButton, \"click\", this.validateEmail);\r\n\t}\r\n}\r\n","export function injectGoogleApi() {\r\n\tconst scriptEl = document.createElement(\"script\");\r\n\r\n\tscriptEl.src = \"https://www.google.com/recaptcha/api.js\";\r\n\tscriptEl.async = true;\r\n\tscriptEl.defer = true;\r\n\r\n\tdocument.getElementsByTagName(\"head\")[0].appendChild(scriptEl);\r\n}\r\n","import { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { onReady } from \"~/foundation/Events/onReady\";\r\n\r\n/**\r\n * Toggle show/hide password in inputs\r\n */\r\n\r\nexport class ToggleVisiblePassword {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {\r\n\t\tcontainer: undefined\r\n\t};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from.\r\n */\r\n\tconstructor(domReference) {\r\n\t\tthis.dom.container = domReference;\r\n\r\n\t\tonReady(() => this.initialize());\r\n\t}\r\n\r\n\ttoggleVisible = e => {\r\n\t\tconst input = e.target.parentNode.querySelector(\"input\");\r\n\t\tconst typeIsPassword = input.getAttribute(\"type\") === \"password\";\r\n\t\tinput.setAttribute(\"type\", typeIsPassword ? \"text\" : \"password\");\r\n\t};\r\n\r\n\tkill = () => {\r\n\t\tremoveAllEvents(this.dom.container);\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\taddEvent(this.dom.container, \"click\", this.toggleVisible);\r\n\t}\r\n}\r\n","const viewPassword = `\r\n\r\n\r\n\r\n`;\r\n\r\nexport default viewPassword;\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport viewPasswordSvg from \"~/foundation/Icons/view-password\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const passwordMarkup = labels => {\r\n\tconst {\r\n\t\theaderTitle,\r\n\t\tpasswordLabel,\r\n\t\tpasswordHelpText,\r\n\t\ttermsText,\r\n\t\tsubscribeText,\r\n\t\tcontinueLabel,\r\n\t\ttermsAndConditionUrl\r\n\t} = labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n ${passwordHelpText}\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","/*global grecaptcha */\r\nimport { injectGoogleApi } from \"../../../helpers/reCaptcha\";\r\nimport { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { ToggleVisiblePassword } from \"~/foundation/Form/input/toggle-visible-password\";\r\nimport { passwordMarkup } from \"./markup\";\r\nimport {\r\n\tshowError,\r\n\tremoveErrors,\r\n\tremoveError\r\n} from \"~/foundation/Form/input/input-errors\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { makeButtonLoad } from \"~/foundation/Components/button/make-button-load\";\r\n\r\nexport class Password {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\t\tthis.isAutomatedTest = config.isAutomatedTest;\r\n\t\tthis.signupApiUrl = config.signupApiUrl;\r\n\t\tthis.captchaId = 0;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonSignupSuccess: config.onSignupSuccess\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tonChangeTerms(e) {\r\n\t\tconst checkbox = e.target;\r\n\r\n\t\tif (checkbox.checked) {\r\n\t\t\tremoveError(checkbox);\r\n\t\t} else {\r\n\t\t\tshowError(checkbox, this.errorMessages.acceptTermsRequired);\r\n\t\t}\r\n\t}\r\n\r\n\tonPasswordFocus(e) {\r\n\t\tconst password = e.target;\r\n\t\tremoveError(password);\r\n\t}\r\n\r\n\tcaptchaCallback = token => {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.user.reCaptchaToken = token;\r\n\r\n\t\t\tconst buttonLoader = new makeButtonLoad(\r\n\t\t\t\tthis.dom.continueButton,\r\n\t\t\t\tthis.texts.loading\r\n\t\t\t);\r\n\t\t\tbuttonLoader.load();\r\n\r\n\t\t\tfetcher(this.signupApiUrl, \"POST\", this.user).then(result => {\r\n\t\t\t\tbuttonLoader.finish(true).then(() => {\r\n\t\t\t\t\tgrecaptcha.reset(this.captchaId);\r\n\t\t\t\t\tif (result.success) {\r\n\t\t\t\t\t\tthis.togglePasswordVisibility.kill();\r\n\t\t\t\t\t\tthis.callbacks.onSignupSuccess();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult.errors.map(error =>\r\n\t\t\t\t\t\t\tshowError(this.dom.passwordInput, error.message)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treject();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresolve();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tsubmitSignup = () => {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tconst buttonLoader = new makeButtonLoad(\r\n\t\t\t\tthis.dom.continueButton,\r\n\t\t\t\tthis.texts.loading\r\n\t\t\t);\r\n\t\t\tbuttonLoader.load();\r\n\r\n\t\t\tfetcher(this.signupApiUrl, \"POST\", this.user).then(result => {\r\n\t\t\t\tbuttonLoader.finish(true).then(() => {\r\n\t\t\t\t\tif (result.success) {\r\n\t\t\t\t\t\tthis.togglePasswordVisibility.kill();\r\n\t\t\t\t\t\tthis.callbacks.onSignupSuccess();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult.errors.map(error =>\r\n\t\t\t\t\t\t\tshowError(this.dom.passwordInput, error.message)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treject();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresolve();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\texpiredCallback = expired => {\r\n\t\t//No idea what to do here yet\r\n\t\tconsole.log(\"expiredCallback\", expired);\r\n\t};\r\n\r\n\terrorCallback = error => {\r\n\t\t//No idea what to do here yet\r\n\t\tconsole.log(\"errorCallback\", error);\r\n\t};\r\n\r\n\tvalidatePasswordAndSignup = () => {\r\n\t\tif (this.dom.passwordInput.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.dom.passwordInput,\r\n\t\t\t\tthis.errorMessages.passwordRequired\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tremoveErrors();\r\n\t\t}\r\n\r\n\t\tif (!this.dom.termsCheckbox.checked) {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.dom.termsCheckbox,\r\n\t\t\t\tthis.errorMessages.acceptTermsRequired\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.user.password = this.dom.passwordInput.value;\r\n\t\tthis.user.acceptTerms = true;\r\n\t\tthis.user.acceptSubscribe = this.dom.subscribeCheckbox.checked;\r\n\r\n\t\tremoveAllEvents(this.dom.termsCheckbox);\r\n\r\n\t\tif (this.isAutomatedTest) {\r\n\t\t\tthis.submitSignup();\r\n\t\t} else {\r\n\t\t\tgrecaptcha.execute(this.captchaId);\r\n\t\t}\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst passwordHtml = passwordMarkup(this.texts);\r\n\r\n\t\tappendElement(passwordHtml, this.dom.membershipContent);\r\n\t\tconst passwordToggleButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".toggle-visible-password\"\r\n\t\t);\r\n\t\tthis.togglePasswordVisibility = new ToggleVisiblePassword(\r\n\t\t\tpasswordToggleButton\r\n\t\t);\r\n\t\tthis.dom.membershipContent.className =\r\n \"membership__content membership__content--signup-password\";\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership-footer .cta\"\r\n\t\t);\r\n\r\n\t\tthis.dom.passwordInput =\r\n this.dom.membershipContent.querySelector(\"#password\");\r\n\t\tthis.dom.termsCheckbox =\r\n this.dom.membershipContent.querySelector(\"#terms\");\r\n\t\tthis.dom.subscribeCheckbox =\r\n this.dom.membershipContent.querySelector(\"#subscribe\");\r\n\r\n\t\tif (this.user.acceptTerms) {\r\n\t\t\tthis.dom.termsCheckbox.checked = this.user.acceptTerms;\r\n\t\t}\r\n\r\n\t\tif (this.user.acceptSubscribe) {\r\n\t\t\tthis.dom.subscribeCheckbox.checked = this.user.acceptSubscribe;\r\n\t\t}\r\n\r\n\t\tthis.dom.membershipContent.autocomplete = \"off\";\r\n\r\n\t\taddEvent(\r\n\t\t\tthis.dom.termsCheckbox,\r\n\t\t\t\"change\",\r\n\t\t\tthis.onChangeTerms.bind(this)\r\n\t\t);\r\n\t\taddEvent(this.dom.passwordInput, \"focus\", this.onPasswordFocus);\r\n\r\n\t\tconst captchaElement =\r\n this.dom.membershipContent.querySelector(\".captcha\");\r\n\r\n\t\tif (typeof grecaptcha === \"undefined\") {\r\n\t\t\tinjectGoogleApi();\r\n\t\t}\r\n\r\n\t\tconst timerId = setInterval(() => {\r\n\t\t\tif (this.isAutomatedTest) {\r\n\t\t\t\tthis.dom.continueButton.disabled = false;\r\n\r\n\t\t\t\taddEvent(\r\n\t\t\t\t\tthis.dom.continueButton,\r\n\t\t\t\t\t\"click\",\r\n\t\t\t\t\tthis.validatePasswordAndSignup\r\n\t\t\t\t);\r\n\r\n\t\t\t\tclearInterval(timerId);\r\n\t\t\t} else if (\r\n\t\t\t\ttypeof grecaptcha !== \"undefined\" &&\r\n grecaptcha.render &&\r\n captchaElement\r\n\t\t\t) {\r\n\t\t\t\tthis.dom.continueButton.disabled = false;\r\n\r\n\t\t\t\tthis.captchaId = grecaptcha.render(captchaElement, {\r\n\t\t\t\t\tsitekey: \"6Lf9a70ZAAAAAPZLngHjH6UKXN3_NqGZrkYqAe3t\",\r\n\t\t\t\t\tbadge: \"bottomright\",\r\n\t\t\t\t\ttheme: \"light\",\r\n\t\t\t\t\tsize: \"invisible\",\r\n\t\t\t\t\thl: \"en\",\r\n\t\t\t\t\tcallback: this.captchaCallback,\r\n\t\t\t\t\t\"expired-callback\": this.expiredCallback,\r\n\t\t\t\t\t\"error-callback\": this.errorCallback\r\n\t\t\t\t});\r\n\r\n\t\t\t\taddEvent(\r\n\t\t\t\t\tthis.dom.continueButton,\r\n\t\t\t\t\t\"click\",\r\n\t\t\t\t\tthis.validatePasswordAndSignup\r\n\t\t\t\t);\r\n\r\n\t\t\t\tclearInterval(timerId);\r\n\t\t\t}\r\n\t\t}, 824);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const selectTopicsMarkup = labels => {\r\n\tconst {\r\n\t\theaderTitle,\r\n\t\tcontinueLabel,\r\n\t\tconfirmationText,\r\n\t\tconfirmationResponseText,\r\n\t\tskipLabel,\r\n\t\ttopics\r\n\t} = labels;\r\n\r\n\tlet topicsString = \"\";\r\n\r\n\tfor (let index = 0; index < topics.length; index++) {\r\n\t\tconst item = topics[index];\r\n\t\ttopicsString =\r\n topicsString +\r\n ``;\r\n\t}\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\r\n
\r\n
\r\n
\r\n ${topicsString}\r\n
\r\n
\r\n ${confirmationText}\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 ${confirmationResponseText}\r\n `);\r\n};\r\n","const STANDARDCUBICBEZIER = \"cubicBezier(0.35, 1, 0.45, 1)\";\r\n\r\nexport { STANDARDCUBICBEZIER };\r\n","const LIFE = 500;\r\nconst VERYSLOW = 1000;\r\nconst SLOW = 400;\r\nconst MEDIUM = 250;\r\nconst FAST = 100;\r\n\r\nexport { FAST, LIFE, MEDIUM, SLOW, VERYSLOW };\r\n\r\n","import { appendElement, parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport {\r\n\taddEvent,\r\n\taddEventOnce,\r\n\tremoveAllEvents\r\n} from \"~/foundation/Events/events\";\r\nimport { selectTopicsMarkup } from \"./markup\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { STANDARDCUBICBEZIER } from \"~/foundation/Styles/easings\";\r\nimport anime from \"animejs\";\r\nimport { isRtl } from \"~/foundation/Helpers/isRtl\";\r\nimport { SLOW, VERYSLOW } from \"~/foundation/Styles/durations\";\r\nimport {\r\n\tcurrentWindowWidth,\r\n\tcurrentWindowHeight,\r\n\tcurrentBreakpoint,\r\n\tbreakpointIndex,\r\n\tonWindowResize\r\n} from \"~/foundation/Events/onWindowResize\";\r\n\r\nexport class SelectTopics {\r\n\t/**\r\n\t\t * Internal placeholder for cached DOM-objects.\r\n\t\t *\r\n\t\t * @type {object}\r\n\t\t * @ignore\r\n\t\t */\r\n\tdom = {};\r\n\r\n\t/**\r\n\t\t *\r\n\t\t * @param {Element} domReference - The element to work from. -> membership__content\r\n\t\t */\r\n\tconstructor(config) {\r\n\t\tthis.dom.container = config.container;\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.saveTopicScoresApiUrl = config.saveTopicScoresApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonSelectedTopicsSaved: config.onSelectedTopicsSaved,\r\n\t\t\tonSkipSelectTopics: config.onSkipSelectTopics\r\n\t\t};\r\n\r\n\t\tthis.previousBreakpoint = currentBreakpoint;\r\n\t\tthis.showBelly = false;\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tselectTopicsAndClose = () => {\r\n\t\tconst selectedButtons = [\r\n\t\t\t...this.dom.membershipContent.querySelectorAll(\".signup-topics .button--selected\")\r\n\t\t];\r\n\r\n\t\tif (selectedButtons.length) {\r\n\t\t\tconst ids = selectedButtons.map(item => item.id);\r\n\t\t\tconst confirmationResponse = this.dom.membershipContent.querySelector(\".select-topics-confirmationResponse-text\");\r\n\r\n\t\t\tremoveAllEvents(this.dom.topicsButtons);\r\n\r\n\t\t\tif (this.dom.bellyContinueButton) {\r\n\t\t\t\tthis.dom.bellyContinueButton.disabled = true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.dom.continueButton.disabled = true;\r\n\r\n\t\t\tfetcher(this.saveTopicScoresApiUrl, \"POST\", {\r\n\t\t\t\tTopicIds: ids\r\n\t\t\t}).then(({ success }) => {\r\n\t\t\t\tif (success) {\r\n\t\t\t\t\tif (currentBreakpoint <= breakpointIndex.md) {\r\n\t\t\t\t\t\tanime\r\n\t\t\t\t\t\t\t.timeline({\r\n\t\t\t\t\t\t\t\teasing: STANDARDCUBICBEZIER,\r\n\t\t\t\t\t\t\t\tduration: VERYSLOW,\r\n\t\t\t\t\t\t\t\tbegin: () => {\r\n\t\t\t\t\t\t\t\t\tthis.dom.membershipContent.querySelector(\r\n\t\t\t\t\t\t\t\t\t\t\".belly\"\r\n\t\t\t\t\t\t\t\t\t).style.left = 0;\r\n\t\t\t\t\t\t\t\t\tconfirmationResponse.style.display = \"flex\";\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\t\t\t\tremoveAllEvents(\r\n\t\t\t\t\t\t\t\t\t\tthis.dom.bellyContinueButton\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\tremoveAllEvents(this.dom.continueButton);\r\n\t\t\t\t\t\t\t\t\tthis.callbacks.onSelectedTopicsSaved();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.add({\r\n\t\t\t\t\t\t\t\ttargets: this.dom.belly,\r\n\t\t\t\t\t\t\t\td: [\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tvalue: [\r\n\t\t\t\t\t\t\t\t\t\t\t\"M0,0 L375,0 C375,180.533529 375,361.067057 375,541.600586 C375,610.50293 375,623.562012 375,679.405273 C375,735.248535 375,735.248535 375,791.091797 C375,798.061198 375,805.030599 375,812 L0,812 L0,0 Z\"\r\n\t\t\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.add(\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttargets: this.dom.bellyContinueButtonArrow,\r\n\t\t\t\t\t\t\t\t\topacity: [1, 0]\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.add(\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttargets: this.dom.bellyContinueButtonLabel,\r\n\t\t\t\t\t\t\t\t\topacity: [1, 0]\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.add(\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttargets: confirmationResponse,\r\n\t\t\t\t\t\t\t\t\ttranslateY: [15, 0],\r\n\t\t\t\t\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\t\t\t\t\tdelay: 150\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst pageTransition =\r\n\t\t\t\t\t\t\tdocument.querySelector(\".page-transition\");\r\n\t\t\t\t\t\tpageTransition.style.zIndex = \"10\";\r\n\t\t\t\t\t\tconst confirmationResponseText = `${this.texts.confirmationResponseText}`;\r\n\t\t\t\t\t\tappendElement(\r\n\t\t\t\t\t\t\tparseHTML(confirmationResponseText),\r\n\t\t\t\t\t\t\tpageTransition\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst confirmationReponseTextElem =\r\n\t\t\t\t\t\t\tpageTransition.querySelector(\r\n\t\t\t\t\t\t\t\t\".select-topics-confirmationResponse-text\"\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tanime\r\n\t\t\t\t\t\t\t.timeline({\r\n\t\t\t\t\t\t\t\teasing: STANDARDCUBICBEZIER,\r\n\t\t\t\t\t\t\t\tduration: VERYSLOW,\r\n\t\t\t\t\t\t\t\tbegin: () => {\r\n\t\t\t\t\t\t\t\t\tconfirmationReponseTextElem.style.display =\r\n\t\t\t\t\t\t\t\t\t\t\"flex\";\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\t\t\t\tanime\r\n\t\t\t\t\t\t\t\t\t\t.timeline({\r\n\t\t\t\t\t\t\t\t\t\t\teasing: STANDARDCUBICBEZIER,\r\n\t\t\t\t\t\t\t\t\t\t\tduration: VERYSLOW,\r\n\t\t\t\t\t\t\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tremoveAllEvents(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.dom.continueButton\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.callbacks.onSelectedTopicsSaved();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t.add({\r\n\t\t\t\t\t\t\t\t\t\t\ttargets: this.dom.container,\r\n\t\t\t\t\t\t\t\t\t\t\ttranslateX: isRtl\r\n\t\t\t\t\t\t\t\t\t\t\t\t? [0, \"-100%\"]\r\n\t\t\t\t\t\t\t\t\t\t\t\t: [0, \"100%\"]\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.add({\r\n\t\t\t\t\t\t\t\ttargets: pageTransition,\r\n\t\t\t\t\t\t\t\ttranslateX: isRtl\r\n\t\t\t\t\t\t\t\t\t? [\"100%\", \"0%\"]\r\n\t\t\t\t\t\t\t\t\t: [\"-100%\", \"0%\"]\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.add(\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttargets: confirmationReponseTextElem,\r\n\t\t\t\t\t\t\t\t\ttranslateY: [15, 0],\r\n\t\t\t\t\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\t\t\t\t\tdelay: 550\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\talert(this.texts.pleaseSelectTopicsText);\r\n\t\t}\r\n\t};\r\n\r\n\tanimateBelly = isSelected => {\r\n\t\tconst selectedButtons = this.dom.membershipContent.querySelectorAll(\r\n\t\t\t\".signup-topics .button--selected\"\r\n\t\t);\r\n\t\tconst selectTopicsConfirmationText =\r\n\t\t\tthis.dom.membershipContent.querySelector(\r\n\t\t\t\t\".select-topics-confirmation-text\"\r\n\t\t\t);\r\n\t\tconst animateBackwards = selectedButtons.length === 0;\r\n\r\n\t\tthis.showBelly = selectedButtons.length > 0;\r\n\r\n\t\tif (\r\n\t\t\tselectedButtons.length === 0 ||\r\n\t\t\t(selectedButtons.length === 1 && isSelected)\r\n\t\t) {\r\n\t\t\tif (currentBreakpoint <= breakpointIndex.md) {\r\n\t\t\t\tthis.dom.belly =\r\n\t\t\t\t\tthis.dom.membershipContent.querySelector(\".belly g path\");\r\n\t\t\t\tthis.dom.bellyContinueButton =\r\n\t\t\t\t\tthis.dom.membershipContent.querySelector(\r\n\t\t\t\t\t\t\".select-topics-continue\"\r\n\t\t\t\t\t);\r\n\t\t\t\tthis.dom.bellyContinueButtonArrow =\r\n\t\t\t\t\tthis.dom.bellyContinueButton.querySelector(\r\n\t\t\t\t\t\t\".select-topics-continue svg\"\r\n\t\t\t\t\t);\r\n\t\t\t\tthis.dom.bellyContinueButtonLabel =\r\n\t\t\t\t\tthis.dom.bellyContinueButton.querySelector(\r\n\t\t\t\t\t\t\".select-topics-continue span\"\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\tanime\r\n\t\t\t\t\t.timeline({\r\n\t\t\t\t\t\teasing: STANDARDCUBICBEZIER,\r\n\t\t\t\t\t\tduration: SLOW,\r\n\t\t\t\t\t\tbegin: () => {\r\n\t\t\t\t\t\t\tif (animateBackwards) {\r\n\t\t\t\t\t\t\t\tthis.dom.bellyContinueButton.classList.remove(\r\n\t\t\t\t\t\t\t\t\t\"hasSelectedTopics\"\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.dom.bellyContinueButton.classList.add(\r\n\t\t\t\t\t\t\t\t\t\"hasSelectedTopics\"\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.add({\r\n\t\t\t\t\t\ttargets: this.dom.belly,\r\n\t\t\t\t\t\td: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvalue: animateBackwards\r\n\t\t\t\t\t\t\t\t\t? [\r\n\t\t\t\t\t\t\t\t\t\t\"M0,0 L15,0 C15,180.533529 15,361.067057 15,541.600586 C15,610.50293 15,623.562012 15,679.405273 C15,735.248535 15,735.248535 15,791.091797 C15,798.061198 15,805.030599 15,812 L0,812 L0,0 Z\"\r\n\t\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t\t\t: [\r\n\t\t\t\t\t\t\t\t\t\t\"M0,0 L15,0 C15,180.533529 15,361.067057 15,541.600586 C15,610.50293 60,623.562012 60,679.405273 C60,735.248535 15,735.248535 15,791.091797 C15,798.061198 15,805.030599 15,812 L0,812 L0,0 Z\"\r\n\t\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.add(\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttargets: this.dom.bellyContinueButtonArrow,\r\n\t\t\t\t\t\t\ttranslateX: animateBackwards ? [15, 0] : [-10, 15],\r\n\t\t\t\t\t\t\topacity: animateBackwards ? [1, 0] : [0, 1]\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tanimateBackwards ? \"-20\" : 80\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.add(\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttargets: this.dom.bellyContinueButtonLabel,\r\n\t\t\t\t\t\t\ttranslateX: animateBackwards ? [15, 0] : [10, 15],\r\n\t\t\t\t\t\t\topacity: animateBackwards ? [1, 0] : [0, 1]\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tanimateBackwards ? \"-20\" : 100\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.add(\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\ttargets: selectTopicsConfirmationText,\r\n\t\t\t\t\t\t\ttranslateY: animateBackwards ? [15, 0] : [-10, 15],\r\n\t\t\t\t\t\t\topacity: animateBackwards ? [1, 0] : [0, 1]\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tanimateBackwards ? \"-20\" : 100\r\n\t\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tthis.dom.continueButton.disabled = animateBackwards;\r\n\t\t\t\tanime({\r\n\t\t\t\t\tbegin: () => {\r\n\t\t\t\t\t\tselectTopicsConfirmationText.style.visibility =\r\n\t\t\t\t\t\t\t\"visible\";\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttargets: selectTopicsConfirmationText,\r\n\t\t\t\t\teasing: STANDARDCUBICBEZIER,\r\n\t\t\t\t\tduration: SLOW,\r\n\t\t\t\t\ttranslateY: animateBackwards ? [15, 0] : [-10, 15],\r\n\t\t\t\t\topacity: animateBackwards ? [1, 0] : [0, 1]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (currentBreakpoint <= breakpointIndex.md) {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!animateBackwards &&\r\n\t\t\t\t\t!this.dom.bellyContinueButton.classList.contains(\r\n\t\t\t\t\t\t\"hasSelectedTopics\"\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\taddEvent(\r\n\t\t\t\t\t\tthis.dom.bellyContinueButton,\r\n\t\t\t\t\t\t\"click\",\r\n\t\t\t\t\t\tthis.selectTopicsAndClose\r\n\t\t\t\t\t);\r\n\t\t\t\t} else if (animateBackwards) {\r\n\t\t\t\t\tremoveAllEvents(this.dom.bellyContinueButton);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tselectTopic = e => {\r\n\t\tconst element = e.target;\r\n\t\telement.classList.toggle(\"button--selected\");\r\n\r\n\t\tconst isSelected = element.classList.contains(\"button--selected\");\r\n\t\tthis.animateBelly(isSelected);\r\n\t\tthis.resize();\r\n\t};\r\n\r\n\tkill = () => {\r\n\t\tremoveAllEvents(this.dom.continueButton);\r\n\t\tremoveAllEvents(this.dom.bellyContinueButton);\r\n\t\tremoveAllEvents(this.dom.topicsButtons);\r\n\t};\r\n\r\n\tskipSelectTopics = () => {\r\n\t\tthis.kill();\r\n\t\tthis.callbacks.onSkipSelectTopics();\r\n\t};\r\n\r\n\tresize = () => {\r\n\t\tif (currentBreakpoint <= breakpointIndex.md) {\r\n\t\t\tconst bellyContinueButton =\r\n\t\t\t\tthis.dom.membershipContent.querySelector(\r\n\t\t\t\t\t\".select-topics-continue\"\r\n\t\t\t\t);\r\n\r\n\t\t\tconst bellyContinueButtonLabel =\r\n\t\t\t\tbellyContinueButton.querySelector(\"span\");\r\n\r\n\t\t\tif (\r\n\t\t\t\tthis.previousBreakpoint !== currentBreakpoint &&\r\n\t\t\t\tthis.showBelly !==\r\n\t\t\t\tbellyContinueButton.classList.contains(\"hasSelectedTopics\")\r\n\t\t\t) {\r\n\t\t\t\tconst selectedButtons =\r\n\t\t\t\t\tthis.dom.membershipContent.querySelectorAll(\r\n\t\t\t\t\t\t\".signup-topics .button--selected\"\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\tthis.animateBelly(selectedButtons.length > 0);\r\n\t\t\t}\r\n\r\n\t\t\t// Calculate center of belly\r\n\t\t\tconst ishHeightofOrigBelly = 246;\r\n\t\t\tconst ishWidthOfOrigBelly = 44.8;\r\n\t\t\tconst origHeightOfBellySvg = 812;\r\n\t\t\tconst origWidthOfBellySvg = 375;\r\n\t\t\tconst offCenterPartHeight = 12.5;\r\n\t\t\tconst offCenterPartRatio =\r\n\t\t\t\toffCenterPartHeight / origHeightOfBellySvg;\r\n\t\t\tconst bellyRatio = Number(\r\n\t\t\t\t(ishHeightofOrigBelly / origHeightOfBellySvg).toFixed(3)\r\n\t\t\t); // 0,270\r\n\t\t\tconst bellyWidthRatio = Number(\r\n\t\t\t\t(ishWidthOfOrigBelly / origWidthOfBellySvg).toFixed(3)\r\n\t\t\t);\r\n\t\t\tconst ishHeightOfpartAfterBelly = 22;\r\n\t\t\tconst lastPartAfterBellyRatio = Number(\r\n\t\t\t\t(ishHeightOfpartAfterBelly / origHeightOfBellySvg).toFixed(3)\r\n\t\t\t); // 0,039\r\n\t\t\tconst heightOfBelly = Math.round(currentWindowHeight * bellyRatio);\r\n\t\t\tconst widthOfBelly = Math.round(\r\n\t\t\t\tcurrentWindowWidth * bellyWidthRatio\r\n\t\t\t);\r\n\t\t\tconst centerBellyRatio = bellyRatio / 2 + lastPartAfterBellyRatio;\r\n\t\t\tconst centerOfBelly =\r\n\t\t\t\tcurrentWindowHeight * (centerBellyRatio - offCenterPartRatio);\r\n\r\n\t\t\t// Half of belly ratio plus lastPartAfterBelly ratio minus half of belly height (The button have the height of the belly)\r\n\t\t\tconst buttonBottomPosition = Math.round(\r\n\t\t\t\tcenterOfBelly - heightOfBelly / 2\r\n\t\t\t);\r\n\r\n\t\t\tbellyContinueButtonLabel.style.left = `${widthOfBelly + 20}px`;\r\n\t\t\tbellyContinueButton.style.height = `${heightOfBelly}px`;\r\n\t\t\tbellyContinueButton.style.width = `${widthOfBelly + 15}px`;\r\n\t\t\tbellyContinueButton.style.bottom = `${buttonBottomPosition}px`;\r\n\t\t}\r\n\t\tthis.previousBreakpoint = currentBreakpoint;\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst selectTopicsHtml = selectTopicsMarkup(this.texts);\r\n\r\n\t\tappendElement(selectTopicsHtml, this.dom.membershipContent);\r\n\t\tthis.dom.membershipContent.className =\r\n\t\t\t\"membership__content membership__content--signup-topics\";\r\n\t\tthis.dom.topicsButtons = this.dom.membershipContent.querySelectorAll(\r\n\t\t\t\".signup-topics .button\"\r\n\t\t);\r\n\t\tconst skipLink = this.dom.membershipContent.querySelector(\".skip\");\r\n\r\n\t\tanime({\r\n\t\t\ttargets: this.dom.topicsButtons,\r\n\t\t\ttranslateX: isRtl ? [-100, 0] : [100, 0],\r\n\t\t\topacity: [0, 1],\r\n\t\t\teasing: STANDARDCUBICBEZIER,\r\n\t\t\tdelay: anime.stagger(250),\r\n\t\t\tcomplete: () => {\r\n\t\t\t\taddEvent(this.dom.topicsButtons, \"click\", this.selectTopic);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership-footer .cta\"\r\n\t\t);\r\n\t\tthis.dom.continueButton.disabled = true;\r\n\r\n\t\tonWindowResize(this.resize);\r\n\t\taddEvent(this.dom.continueButton, \"click\", this.selectTopicsAndClose);\r\n\t\taddEventOnce(skipLink, \"click\", this.skipSelectTopics);\r\n\t}\r\n}\r\n","const aramcoLifePale = `\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\nexport default aramcoLifePale;\r\n","const aramcoLogo = `\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\nexport default aramcoLogo;\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport aramcoLifeLogo from \"~/foundation/Icons/aramco-life-pale\";\r\nimport aramcoLogo from \"~/foundation/Icons/aramco-logo\";\r\n\r\nexport const splashMarkup = () => {\r\n\treturn parseHTML(`\r\n
\r\n ${aramcoLogo}\r\n ${aramcoLifeLogo}\r\n
`);\r\n};\r\n","import { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { splashMarkup } from \"./markup\";\r\nimport anime from \"animejs\";\r\n\r\nexport class Splash {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonSplashDone: config.onSplashDone\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tconst splashHtml = splashMarkup();\r\n\t\tappendElement(splashHtml, this.dom.membershipContent);\r\n\r\n\t\tconst splashDurationElem = document.querySelector(\".splash-duration\");\r\n\t\tthis.dom.membershipContent.className =\r\n \"membership__content membership--signup-splash\";\r\n\r\n\t\tanime({\r\n\t\t\ttargets: splashDurationElem,\r\n\t\t\theight: [\"0%\", \"100%\"],\r\n\t\t\teasing: \"linear\",\r\n\t\t\tduration: 2000,\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tthis.callbacks.onSplashDone();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const confirmationMarkup = labels => {\r\n const { confirmationText, resendEmailText, resendLabel } = labels;\r\n\r\n return parseHTML(`\r\n
\r\n ${closeMarkup}\r\n
\r\n
\r\n
\r\n ${confirmationText}\r\n
\r\n ${resendEmailText}\r\n
\r\n \r\n
\r\n
`);\r\n};\r\n","import { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { confirmationMarkup } from \"./markup\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\n\r\nexport class Confirmation {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\t\tthis.resendSignupEmailApiUrl = config.resendSignupEmailApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonResendEmailSuccess: config.onResendEmailSuccess\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tconst confirmationHtml = confirmationMarkup(this.texts);\r\n\r\n\t\tappendElement(confirmationHtml, this.dom.membershipContent);\r\n\t\tthis.dom.membershipContent.className =\r\n \"membership__content membership__content--signup-confirmation\";\r\n\t\tthis.dom.resendEmailButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership-footer .button-link\"\r\n\t\t);\r\n\r\n\t\taddEvent(this.dom.resendEmailButton, \"click\", () => {\r\n\t\t\tfetcher(this.resendSignupEmailApiUrl, \"POST\", this.user).then(\r\n\t\t\t\t// eslint-disable-next-line no-unused-vars\r\n\t\t\t\tresult => {\r\n\t\t\t\t\tthis.callbacks.onResendEmailSuccess();\r\n\t\t\t\t\tremoveAllEvents(this.dom.resendEmailButton);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n}\r\n","const API_VERSION = \"/api/v1\";\r\n\r\nconst MEMBERSHIP_USER = `${API_VERSION}/membership/user`;\r\nconst MEMBERSHIP_SIGNUP_START = `${API_VERSION}/membership/signup/start`;\r\nconst MEMBERSHIP_SELECTTOPICS_START = `${API_VERSION}/membership/topicscores/start`;\r\nconst MEMBERSHIP_PASSWORD_START = `${API_VERSION}/membership/password/start`;\r\nconst MEMBERSHIP_PROFILE_START = `${API_VERSION}/membership/profile/start`;\r\nconst MEMBERSHIP_DEPENDENT_START = `${API_VERSION}/membership/dependent/start`;\r\nconst MEMBERSHIP_LOGIN = `${API_VERSION}/membership/login/start`;\r\nconst MEMBERSHIP_LOGOUT = `${API_VERSION}/membership/logout`;\r\nconst CHECK_USER = `${API_VERSION}/membership/checkuser`;\r\n\r\nexport {\r\n\tMEMBERSHIP_USER,\r\n\tMEMBERSHIP_SIGNUP_START,\r\n\tMEMBERSHIP_SELECTTOPICS_START,\r\n\tMEMBERSHIP_PASSWORD_START,\r\n\tMEMBERSHIP_LOGIN,\r\n\tMEMBERSHIP_LOGOUT,\r\n\tMEMBERSHIP_PROFILE_START,\r\n\tMEMBERSHIP_DEPENDENT_START,\r\n\tCHECK_USER\r\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { forEach } from \"./forEach\";\r\n\r\nconst searchParams: Record = {};\r\n\r\nfunction init(url: string) {\r\n\t// Get url without query string\r\n\tconst baseUrl = url.includes(\"?\")\r\n\t\t? url.substring(0, url.indexOf(\"?\"))\r\n\t\t: url;\r\n\r\n\t// If baseUrl is new, initialize it\r\n\tif (!searchParams[baseUrl]) {\r\n\t\tsearchParams[baseUrl] = new URL(url).searchParams;\r\n\t}\r\n\t// Return the base url\r\n\treturn baseUrl;\r\n}\r\n\r\nfunction removeFromArray(array: string[], element: string) {\r\n\t// Find the element's index in the array\r\n\tconst index = array.indexOf(element);\r\n\r\n\t// If the element exists in the array, remove it\r\n\tif (index > -1) {\r\n\t\tarray.splice(index, 1);\r\n\t}\r\n\r\n\t// Return the array, with or without changes\r\n\treturn array;\r\n}\r\n\r\n/**\r\n * Helper function that infers the correct datatype from string - SHOULD BE A GENERAL UTILITY\r\n */\r\nfunction getDatatype(value: string): any {\r\n\tif (value === \"undefined\") {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst regexp = /^(true|false|null)$/;\r\n\r\n\treturn regexp.test(value) ? JSON.parse(value) : Number(value) || value;\r\n}\r\n\r\nexport function getQueryString(url = window.location.href) {\r\n\tconst currentUrl = init(url);\r\n\r\n\treturn searchParams[currentUrl].toString();\r\n}\r\n\r\nexport function getParameter(key: string, url = window.location.href): string[] {\r\n\tconst currentUrl = init(url);\r\n\r\n\tfunction setParamsObj(key: string) {\r\n\t\tconst results = searchParams[currentUrl].getAll(key);\r\n\t\tlet realResults: Array = [];\r\n\r\n\t\tif (results.length) {\r\n\t\t\tif (results.length === 1) {\r\n\t\t\t\trealResults = [getDatatype(results[0])];\r\n\t\t\t} else {\r\n\t\t\t\tforEach(results, result => {\r\n\t\t\t\t\trealResults.push(getDatatype(result));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn realResults;\r\n\t}\r\n\r\n\treturn setParamsObj(key);\r\n}\r\n\r\nexport function addParameter(\r\n\tkey: string,\r\n\tvalue: string | string[],\r\n\toverride = true,\r\n\turl = window.location.href\r\n) {\r\n\tconst currentUrl = init(url);\r\n\r\n\t// Clear current value(s)\r\n\tif (override) {\r\n\t\tsearchParams[currentUrl].delete(key);\r\n\t}\r\n\r\n\t// If multiple values\r\n\tif (Array.isArray(value)) {\r\n\t\tforEach(value, val => {\r\n\t\t\tsearchParams[currentUrl].append(key, val);\r\n\t\t});\r\n\t} else if (typeof key === \"string\") {\r\n\t\tsearchParams[currentUrl].append(key, value);\r\n\t}\r\n}\r\n\r\nexport function deleteParameter(key: string, value = false, url: string = window.location.href) {\r\n\tconst currentUrl = init(url);\r\n\r\n\t// If key is a string and a value is parsed\r\n\tif (typeof key === \"string\" && value) {\r\n\t\t// Cache all current values\r\n\t\tlet values = searchParams[currentUrl].getAll(key);\r\n\r\n\t\t// Remove parsed value(s) from the array of all values\r\n\t\tif (Array.isArray(value)) {\r\n\t\t\tforEach(value, val => {\r\n\t\t\t\tvalues = removeFromArray(values, val);\r\n\t\t\t});\r\n\t\t} else if (typeof value === \"string\") {\r\n\t\t\tvalues = removeFromArray(values, value);\r\n\t\t}\r\n\r\n\t\t// Delete all values for the parsed key\r\n\t\tsearchParams[currentUrl].delete(key);\r\n\r\n\t\t// Add the remaining values back into the object\r\n\t\tforEach(values, val => {\r\n\t\t\tsearchParams[currentUrl].append(key, val);\r\n\t\t});\r\n\t} else {\r\n\t\t// If no value parameter is parsed, delete all values for the parsed key\r\n\t\tif (Array.isArray(key)) {\r\n\t\t\tforEach(key, k => {\r\n\t\t\t\tsearchParams[currentUrl].delete(k);\r\n\t\t\t});\r\n\t\t} else if (typeof key === \"string\") {\r\n\t\t\tsearchParams[currentUrl].delete(key);\r\n\t\t}\r\n\t}\r\n}\r\n","export const setCookie = (name: string, value: string, options?: { days?: number; path?: string }) => {\r\n\tconst optionsWithDefaults = {\r\n\t\tdays: 7,\r\n\t\tpath: \"/\",\r\n\t\t...options\r\n\t};\r\n\r\n\tconst expires = new Date(Date.now() + optionsWithDefaults.days * 864e5).toUTCString();\r\n\r\n\tdocument.cookie =\r\n\t\tname +\r\n\t\t\"=\" +\r\n\t\tencodeURIComponent(value) +\r\n\t\t\"; expires=\" +\r\n\t\texpires +\r\n\t\t\"; path=\" +\r\n\t\toptionsWithDefaults.path;\r\n};\r\n\r\nexport const getCookie = (name: string) => {\r\n\treturn document.cookie.split(\"; \").reduce((r, v) => {\r\n\t\tconst parts = v.split(\"=\");\r\n\t\treturn parts[0] === name ? decodeURIComponent(parts[1]) : r;\r\n\t}, \"\");\r\n};\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport viewPasswordSvg from \"~/foundation/Icons/view-password\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const loginMarkup = labels => {\r\n\tconst {\r\n\t\theaderTitle,\r\n\t\tloginText,\r\n\t\temailLabel,\r\n\t\tpasswordLabel,\r\n\t\tforgotPasswordLabel,\r\n\t\tlogInLabel,\r\n\t\tcreateAccountHeader,\r\n\t\tcreateAccountLabel\r\n\t} = labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\r\n
${loginText}
\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 { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\n\r\nexport const infoNotificationMarkup = message => {\r\n\treturn parseHTML(`\r\n\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

${message}

\r\n\t\t\t\t\t
\r\n\t\t\t
\r\n `);\r\n};\r\n\r\nexport const errorNotificationMarkup = dataObject => {\r\n\tlet message = \"\";\r\n\tmessage += `${dataObject.success === false &&\r\n\t\t`\r\n\t\t\t
\r\n\t\t\t\t

${dataObject.errors[0].message}

\r\n\t\t\t
\r\n\t\t\t`\r\n\t\t}`;\r\n\r\n\treturn parseHTML(`\r\n\t\t\t
\r\n\t\t\t\t${message}\r\n\t\t\t
\r\n `);\r\n};\r\n","import { appendElement, parseHTML, emptyElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport \"./Loaders.scss\";\r\n\r\ntype LoaderOptions = {\r\n\twrapperElement?: HTMLElement | null;\r\n\treplace?: boolean,\r\n\tresponsive?: boolean,\r\n\tisAbsolute?: boolean,\r\n}\r\n\r\nconst oldLoaderMarkup = `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n`;\r\n\r\n/**\r\n * Add Old loader\r\n *\r\n * @param {Node} parentElement - The parent element the loader is added to\r\n * @param {Object} options - Object of options\r\n * @param {Node} [options.wrapperElement=null] - An element that should be wrapped around the loader but inside the parent\r\n * @param {boolean} [options.replace=false] - If the loader should replace the content of the parent element\r\n */\r\nexport const addOldLoader = (parentElement: HTMLElement, options: LoaderOptions = { wrapperElement: null, replace: false }) => {\r\n\tconst { wrapperElement, replace } = options;\r\n\r\n\tif (replace) {\r\n\t\temptyElement(parentElement);\r\n\t}\r\n\r\n\tlet loaderElement: string | HTMLElement = oldLoaderMarkup;\r\n\r\n\tif (wrapperElement) {\r\n\t\twrapperElement.innerHTML = oldLoaderMarkup;\r\n\t\tloaderElement = wrapperElement;\r\n\t}\r\n\r\n\tappendElement(parseHTML(loaderElement), parentElement);\r\n};\r\n\r\nconst loaderMarkup = `\r\n \r\n \t\r\n \t\r\n \t\r\n \t\r\n\t\t\r\n`;\r\n\r\nconst loaderMarkupAbsolute = `\r\n \r\n \t\r\n \t\r\n \t\r\n \t\r\n\t\t\r\n`;\r\n\r\nconst responsiveLoaderMarkup = `\r\n \r\n \t\r\n \t\r\n \t\r\n \t\r\n\t\t\r\n`;\r\n\r\n/**\r\n * Add loader\r\n *\r\n * @param {Node} parentElement - The parent element the loader is added to\r\n * @param {Object} options - Object of options\r\n * @param {Node} [options.wrapperElement=null] - An element that should be wrapped around the loader but inside the parent\r\n * @param {boolean} [options.replace=false] - If the loader should replace the content of the parent element\r\n */\r\nexport const addLoader = (parentElement: HTMLElement, options: LoaderOptions = { wrapperElement: null, replace: false, responsive: false, isAbsolute: false }) => {\r\n\tconst { wrapperElement, replace, responsive, isAbsolute } = options;\r\n\r\n\tif (replace) {\r\n\t\temptyElement(parentElement);\r\n\t}\r\n\r\n\tlet loaderElement: string | HTMLElement = responsive ? responsiveLoaderMarkup : isAbsolute ? loaderMarkupAbsolute : loaderMarkup;\r\n\r\n\tif (wrapperElement) {\r\n\t\twrapperElement.innerHTML = loaderMarkup;\r\n\t\tloaderElement = wrapperElement;\r\n\t}\r\n\r\n\tappendElement(parseHTML(loaderElement), parentElement);\r\n};","import { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { addEventOnce, addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { loginMarkup } from \"./markup\";\r\nimport { infoNotificationMarkup, errorNotificationMarkup } from \"../../../notification/notificationMarkup\";\r\nimport { ToggleVisiblePassword } from \"~/foundation/Form/input/toggle-visible-password\";\r\nimport { showError, removeErrors } from \"~/foundation/Form/input/input-errors\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { validateEmail } from \"~/foundation/Helpers/validate\";\r\nimport { isRtl } from \"~/foundation/Helpers/isRtl\";\r\nimport { addLoader } from \"~/foundation/Loaders/loader\";\r\n\r\nexport class Login {\r\n\t/**\r\n\t\t * Internal placeholder for cached DOM-objects.\r\n\t\t *\r\n\t\t * @type {object}\r\n\t\t * @ignore\r\n\t\t */\r\n\tdom = {};\r\n\r\n\t/**\r\n\t\t *\r\n\t\t * @param {Element} domReference - The element to work from. -> membership__content\r\n\t\t */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.loginApiUrl = config.loginApiUrl;\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\t\tthis.data = config.data;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonCreateAccountClick: config.onCreateAccountClick,\r\n\t\t\tonForgotPasswordClick: config.onForgotPasswordClick,\r\n\t\t\tonLoginSuccess: config.onLoginSuccess\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tvalidateAndLogin = () => {\r\n\t\tif (this.dom.emailInput.value === \"\") {\r\n\t\t\tshowError(this.dom.emailInput, this.errorMessages.emailRequired);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!validateEmail(this.dom.emailInput.value)) {\r\n\t\t\tshowError(this.dom.emailInput, this.errorMessages.invalideEmail);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.dom.passwordInput.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.dom.passwordInput,\r\n\t\t\t\tthis.errorMessages.passwordRequired\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tremoveErrors();\r\n\r\n\t\tfetcher(`/${isRtl ? \"ar\" : \"en\"}${this.loginApiUrl}`, \"POST\", {\r\n\t\t\temail: this.dom.emailInput.value,\r\n\t\t\tpassword: this.dom.passwordInput.value\r\n\t\t}).then(result => {\r\n\t\t\tif (result) {\r\n\t\t\t\tconst { success } = result;\r\n\t\t\t\tif (success) {\r\n\t\t\t\t\tthis.callbacks.onLoginSuccess();\r\n\t\t\t\t\taddLoader(this.dom.middle, { replace: true });\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Append the errorNotificationMarkup with error data\r\n\t\t\t\t\tconst notificationHtml =\r\n\t\t\t\t\t\t\terrorNotificationMarkup(result);\r\n\t\t\t\t\tappendElement(\r\n\t\t\t\t\t\tnotificationHtml,\r\n\t\t\t\t\t\tthis.dom.membershipContent\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Append the errorNotificationMarkup with error data\r\n\t\t\t\tconst notificationHtml = errorNotificationMarkup(result);\r\n\t\t\t\tappendElement(notificationHtml, this.dom.membershipContent);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tkill() {\r\n\t\tremoveAllEvents(this.dom.continueButton);\r\n\t\tthis.toggleVisisblePassword.kill();\r\n\t}\r\n\r\n\tcreateAccountLink = () => {\r\n\t\tthis.kill();\r\n\t\tthis.callbacks.onCreateAccountClick();\r\n\t};\r\n\r\n\tforgotPasswordLink = () => {\r\n\t\tthis.kill();\r\n\t\tthis.callbacks.onForgotPasswordClick();\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst loginHtml = loginMarkup(this.texts);\r\n\r\n\t\tappendElement(loginHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.membershipContent.className =\r\n\t\t\t\"membership__content membership__content--login-email-password\";\r\n\t\tthis.dom.middle =\r\n\t\t\tthis.dom.membershipContent.querySelector(\".membership-middle\");\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership-middle .cta\"\r\n\t\t);\r\n\t\tthis.dom.emailInput =\r\n\t\t\tthis.dom.membershipContent.querySelector(\"#email\");\r\n\t\tthis.dom.passwordInput =\r\n\t\t\tthis.dom.membershipContent.querySelector(\"#password\");\r\n\t\tconst passwordToggleButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".toggle-visible-password\"\r\n\t\t);\r\n\t\tthis.toggleVisisblePassword = new ToggleVisiblePassword(\r\n\t\t\tpasswordToggleButton\r\n\t\t);\r\n\t\tconst createAccountButton =\r\n\t\t\tthis.dom.membershipContent.querySelector(\".create-account\");\r\n\t\tconst forgotPasswordButton =\r\n\t\t\tthis.dom.membershipContent.querySelector(\".forgot-password\");\r\n\r\n\t\tif (this.data.email) {\r\n\t\t\tthis.dom.emailInput.value = this.data.email;\r\n\t\t\tconst notificationHtml = infoNotificationMarkup(this.data.message);\r\n\t\t\tappendElement(notificationHtml, this.dom.membershipContent);\r\n\t\t}\r\n\r\n\t\taddEvent(this.dom.continueButton, \"click\", this.validateAndLogin);\r\n\t\taddEventOnce(createAccountButton, \"click\", this.createAccountLink);\r\n\t\taddEventOnce(forgotPasswordButton, \"click\", this.forgotPasswordLink);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const forgotPasswordMarkup = labels => {\r\n\tconst {\r\n\t\theaderTitle,\r\n\t\temailLabel,\r\n\t\tforgotPasswordText,\r\n\t\tsendLinkLabel,\r\n\t\tgoBackLabel\r\n\t} = labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\r\n
\r\n
\r\n
${forgotPasswordText}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n `);\r\n};\r\n","import { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport {\r\n\taddEvent,\r\n\taddEventOnce,\r\n\tremoveAllEvents\r\n} from \"~/foundation/Events/events\";\r\nimport { forgotPasswordMarkup } from \"./markup\";\r\nimport { showError, removeErrors } from \"~/foundation/Form/input/input-errors\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { validateEmail } from \"~/foundation/Helpers/validate\";\r\nimport { makeButtonLoad } from \"~/foundation/Components/button/make-button-load\";\r\n\r\nexport class ForgotPassword {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.forgotPasswordApiUrl = config.forgotPasswordApiUrl;\r\n\t\tthis.validateEmailApiUrl = config.validateEmailApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonLoginLinkClick: config.onLoginLinkClick,\r\n\t\t\tonSendEmailClick: config.onSendEmailClick\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tkill() {\r\n\t\tremoveAllEvents(this.dom.sendLink);\r\n\t}\r\n\r\n\tgoToLogin = () => {\r\n\t\tthis.kill();\r\n\t\tthis.callbacks.onLoginLinkClick();\r\n\t};\r\n\r\n\tgoToConfirm = () => {\r\n\t\tthis.kill();\r\n\t\tthis.callbacks.onSendEmailClick();\r\n\t};\r\n\r\n\tvalidateAndSendResetPasswordLink = () => {\r\n\t\tif (this.dom.emailInput.value === \"\") {\r\n\t\t\tshowError(this.dom.emailInput, this.errorMessages.emailRequired);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!validateEmail(this.dom.emailInput.value)) {\r\n\t\t\tshowError(this.dom.emailInput, this.errorMessages.invalideEmail);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfetcher(this.validateEmailApiUrl, \"POST\", {\r\n\t\t\temail: this.dom.emailInput.value\r\n\t\t}).then(result => {\r\n\t\t\tif (result) {\r\n\t\t\t\tconst success = result.data.emailAlreadyExist;\r\n\r\n\t\t\t\tif (success) {\r\n\t\t\t\t\tremoveErrors();\r\n\r\n\t\t\t\t\tthis.user.email = this.dom.emailInput.value;\r\n\r\n\t\t\t\t\tconst buttonLoader = new makeButtonLoad(\r\n\t\t\t\t\t\tthis.dom.sendLink,\r\n\t\t\t\t\t\tthis.texts.loading\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbuttonLoader.load();\r\n\r\n\t\t\t\t\tfetcher(this.forgotPasswordApiUrl, \"POST\", {\r\n\t\t\t\t\t\temail: this.user.email\r\n\t\t\t\t\t}).then(() => {\r\n\t\t\t\t\t\tbuttonLoader.finish().then(() => this.goToConfirm());\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tshowError(\r\n\t\t\t\t\t\tthis.dom.emailInput,\r\n\t\t\t\t\t\tthis.errorMessages.noUserWithEmail\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tshowError(\r\n\t\t\t\t\tthis.dom.emailInput,\r\n\t\t\t\t\tthis.errorMessages.genericMembershipError\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst forgotPasswordHtml = forgotPasswordMarkup(this.texts);\r\n\t\tappendElement(forgotPasswordHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.membershipContent.className =\r\n \"membership__content membership__content--forgot-password\";\r\n\r\n\t\tthis.dom.loginLink = this.dom.membershipContent.querySelector(\".login\");\r\n\t\tthis.dom.sendLink =\r\n this.dom.membershipContent.querySelector(\".send-link\");\r\n\t\tthis.dom.emailInput =\r\n this.dom.membershipContent.querySelector(\"#email\");\r\n\r\n\t\taddEventOnce(this.dom.loginLink, \"click\", this.goToLogin);\r\n\t\taddEvent(\r\n\t\t\tthis.dom.sendLink,\r\n\t\t\t\"click\",\r\n\t\t\tthis.validateAndSendResetPasswordLink\r\n\t\t);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const forgotPasswordConfirmationMarkup = labels => {\r\n const { confirmationText, resendEmailText, resendLabel } = labels;\r\n\r\n return parseHTML(`\r\n
\r\n ${closeMarkup}\r\n
\r\n
\r\n
\r\n ${confirmationText}\r\n
\r\n ${resendEmailText}\r\n
\r\n \r\n
\r\n
`);\r\n};\r\n","import { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { forgotPasswordConfirmationMarkup } from \"./markup\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\n\r\nexport class ForgotPasswordConfirmation {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.resendForgotPasswordApiUrl = config.resendForgotPasswordApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonResendEmailSuccess: config.onResendEmailSuccess\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tconst confirmationHtml = forgotPasswordConfirmationMarkup(this.texts);\r\n\r\n\t\tappendElement(confirmationHtml, this.dom.membershipContent);\r\n\t\tthis.dom.membershipContent.className =\r\n \"membership__content membership__content--forgot-password-confirmation\";\r\n\t\tthis.dom.resendEmailButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership-footer .button-link\"\r\n\t\t);\r\n\r\n\t\taddEvent(this.dom.resendEmailButton, \"click\", () => {\r\n\t\t\tfetcher(this.resendForgotPasswordApiUrl, \"POST\", {\r\n\t\t\t\temail: this.user.email\r\n\t\t\t}).then(() => {\r\n\t\t\t\tthis.callbacks.onResendEmailSuccess();\r\n\t\t\t\tremoveAllEvents(this.dom.resendEmailButton);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport viewPasswordSvg from \"~/foundation/Icons/view-password\";\r\nimport { closeMarkup } from \"../../../close\";\r\n\r\nexport const resetPasswordMarkup = (labels, error, emailParam) => {\r\n\tconst {\r\n\t\theaderTitle,\r\n\t\temailLabel,\r\n\t\tpasswordLabel,\r\n\t\tcontinueLabel,\r\n\t\tlinkExpiredTitle,\r\n\t\tlinkExpiredText,\r\n\t\tstartOverLabel,\r\n\t\tpasswordHelpText\r\n\t} = labels;\r\n\r\n\tif (error) {\r\n\t\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n
\r\n
\r\n

${linkExpiredTitle}

\r\n ${linkExpiredText}\r\n
\r\n
\r\n \r\n
\r\n `);\r\n\t}\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\r\n
\r\n
\r\n
${emailLabel} ${emailParam}
\r\n\t\t
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n ${passwordHelpText}\r\n
\r\n
\r\n
\r\n \r\n
`);\r\n};\r\n","import { appendElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport {\r\n\taddEvent,\r\n\taddEventOnce,\r\n\tremoveAllEvents\r\n} from \"~/foundation/Events/events\";\r\nimport { ToggleVisiblePassword } from \"~/foundation/Form/input/toggle-visible-password\";\r\nimport { resetPasswordMarkup } from \"./markup\";\r\nimport {\r\n\tshowError,\r\n\tremoveErrors,\r\n\tremoveError\r\n} from \"~/foundation/Form/input/input-errors\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { makeButtonLoad } from \"~/foundation/Components/button/make-button-load\";\r\nimport { getParameter } from \"~/foundation/Helpers/queryString\";\r\n\r\nexport class ResetPassword {\r\n\t/**\r\n\t\t * Internal placeholder for cached DOM-objects.\r\n\t\t *\r\n\t\t * @type {object}\r\n\t\t * @ignore\r\n\t\t */\r\n\tdom = {};\r\n\r\n\t/**\r\n\t\t *\r\n\t\t * @param {Element} domReference - The element to work from. -> membership__content\r\n\t\t */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\t\tthis.resetPasswordUrl = config.resetPasswordUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonSavePasswordSuccess: config.onSavePasswordSuccess,\r\n\t\t\tonStartOverClick: config.onStartOverClick\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tkill() {\r\n\t\tremoveAllEvents(this.dom.continueButton);\r\n\t\tremoveAllEvents(this.dom.passwordInput);\r\n\t}\r\n\r\n\tgoToLogin = () => {\r\n\t\tthis.kill();\r\n\t\tthis.callbacks.onStartOverClick();\r\n\t};\r\n\r\n\tonPasswordFocus(e) {\r\n\t\tconst password = e.target;\r\n\t\tremoveError(password);\r\n\t}\r\n\r\n\tvalidatePasswordAndSave = () => {\r\n\t\tif (this.dom.passwordInput.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.dom.passwordInput,\r\n\t\t\t\tthis.errorMessages.passwordRequired\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tremoveErrors();\r\n\t\t}\r\n\r\n\t\tconst buttonLoader = new makeButtonLoad(\r\n\t\t\tthis.dom.continueButton,\r\n\t\t\tthis.texts.loading\r\n\t\t);\r\n\t\tbuttonLoader.load();\r\n\r\n\t\tfetcher(this.resetPasswordUrl, \"POST\", {\r\n\t\t\temail: getParameter(\"email\")[0] || \"\",\r\n\t\t\tnewPassword: this.dom.passwordInput.value,\r\n\t\t\ttoken: getParameter(\"token\")[0] || \"\"\r\n\t\t}).then(result => {\r\n\t\t\tbuttonLoader.finish(true).then(() => {\r\n\t\t\t\tif (result.success) {\r\n\t\t\t\t\tthis.callbacks.onSavePasswordSuccess();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tshowError(this.dom.passwordInput, result.errors[0].message);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tthis.dom.errorMessage = document.querySelector(\".error-message\");\r\n\r\n\t\tconst passwordHtml = resetPasswordMarkup(\r\n\t\t\tthis.texts,\r\n\t\t\tthis.dom.errorMessage,\r\n\t\t\tgetParameter(\"email\")[0]\r\n\t\t);\r\n\r\n\t\tappendElement(passwordHtml, this.dom.membershipContent);\r\n\r\n\t\tconst passwordToggleButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".toggle-visible-password\"\r\n\t\t);\r\n\t\tthis.togglePasswordVisibility = new ToggleVisiblePassword(\r\n\t\t\tpasswordToggleButton\r\n\t\t);\r\n\r\n\t\tif (this.dom.errorMessage) {\r\n\t\t\tthis.dom.membershipContent.className =\r\n\t\t\t\t\"membership__content membership__content--reset-password-error\";\r\n\t\t} else {\r\n\t\t\tthis.dom.membershipContent.className =\r\n\t\t\t\t\"membership__content membership__content--reset-password\";\r\n\t\t}\r\n\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership__content--reset-password .membership-footer .cta\"\r\n\t\t);\r\n\r\n\t\tthis.dom.startOverButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\".membership__content--reset-password-error .membership-footer .cta\"\r\n\t\t);\r\n\r\n\t\tthis.dom.passwordInput =\r\n\t\t\tthis.dom.membershipContent.querySelector(\"#password\");\r\n\r\n\t\tthis.dom.membershipContent.autocomplete = \"off\";\r\n\r\n\t\taddEventOnce(this.dom.startOverButton, \"click\", this.goToLogin);\r\n\t\taddEvent(\r\n\t\t\tthis.dom.continueButton,\r\n\t\t\t\"click\",\r\n\t\t\tthis.validatePasswordAndSave\r\n\t\t);\r\n\t\taddEvent(this.dom.passwordInput, \"focus\", this.onPasswordFocus);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\n\r\nexport const newsletterMarkup = (\r\n\tlabels,\r\n\tsubscriptionLists,\r\n\tacceptSubscribe\r\n) => {\r\n\tconst { subscriptionLabel, termsAndConditionsLabel } = labels;\r\n\r\n\tconst checkbox = ({ id, name, checked }) => `\r\n
\r\n \r\n \r\n
`;\r\n\r\n\treturn parseHTML(`\r\n
\r\n

${subscriptionLabel}

\r\n
\r\n ${subscriptionLists\r\n\t\t?.map(\r\n\t\t\t({\r\n\t\t\t\tsubscriptionListID,\r\n\t\t\t\tsubscriptionListName,\r\n\t\t\t\tisSubscribed\r\n\t\t\t}) =>\r\n\t\t\t\tcheckbox({\r\n\t\t\t\t\tid: subscriptionListID,\r\n\t\t\t\t\tname: subscriptionListName,\r\n\t\t\t\t\tchecked: isSubscribed\r\n\t\t\t\t})\r\n\t\t)\r\n\t\t.join(\"\")}\r\n ${checkbox({\r\n\t\t\tid: \"consent\",\r\n\t\t\tname: `${termsAndConditionsLabel}`,\r\n\t\t\tchecked: acceptSubscribe\r\n\t\t})}\r\n
\r\n
`);\r\n};\r\n","const peopleIcon = `\r\n\r\n\r\n`;\r\n\r\nexport default peopleIcon;\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport peopleIcon from \"~/foundation/Icons/people\";\r\n\r\nexport const dependentMarkup = (labels, user, dependentsLists) => {\r\n\tconst {\r\n\t\tmanageHostDependencyButtonLabel,\r\n\t\tmanagedependentsButtonLabel,\r\n\t\tmanageDependentsActiveLabel\r\n\t} = labels;\r\n\r\n\tif (user.showManageHostDependency) {\r\n\t\treturn parseHTML(`\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n `);\r\n\t}\r\n\r\n\treturn parseHTML(`\r\n
\r\n
\r\n
\r\n \r\n \r\n ${\r\n\tdependentsLists\r\n\t\t? manageDependentsActiveLabel.replace(\r\n\t\t\t\"{0}\",\r\n\t\t\tdependentsLists.length\r\n\t\t)\r\n\t\t: \"\"\r\n}\r\n \r\n
\r\n
\r\n `);\r\n};\r\n","export const lockIconUnlocked = `\r\n\r\n\r\n`;\r\n\r\nexport const lockIconLocked = `\r\n\r\n\r\n\r\n\r\n\r\n`;","import { newsletterMarkup } from \"./newsletter/markup\";\r\nimport { dependentMarkup } from \"./dependent/markup\";\r\nimport { closeMarkup } from \"../close\";\r\nimport { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { lockIconLocked } from \"~/foundation/Icons/lock\";\r\n\r\nexport const profileMarkup = (\r\n\tlabels,\r\n\tuser,\r\n\tsubscriptionLists,\r\n\tdependentsLists\r\n) => {\r\n\tconst {\r\n\t\theaderTitle,\r\n\t\teditNameLabel,\r\n\t\tchangePasswordLabel,\r\n\t\tdeleteAccountLabel,\r\n\t\tlogoutLabel\r\n\t} = labels;\r\n\r\n\tconst {\r\n\t\tfirstName,\r\n\t\tlastName,\r\n\t\temailAddress,\r\n\t\tisInternal,\r\n\t\tshowManageHostDependency\r\n\t} = user;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${headerTitle}

\r\n
\r\n
\r\n
\r\n
\r\n ${firstName}\r\n ${lastName}\r\n
\r\n \r\n
\r\n
${emailAddress}
\r\n \r\n \r\n \r\n ${\r\n isInternal || showManageHostDependency\r\n ? dependentMarkup(labels, user, dependentsLists)[0].innerHTML\r\n : \"\"\r\n }\r\n ${\r\n newsletterMarkup(labels, subscriptionLists, user.acceptSubscribe)[0]\r\n .outerHTML\r\n }\r\n
\r\n `);\r\n};\r\n","import { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { forEach } from \"~/foundation/Helpers/forEach\";\r\n\r\nexport class Newsletter {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.subscriptionLists = config.subscriptionLists;\r\n\r\n\t\tthis.subscribeUserApiUrl = config.subscribeUserApiUrl;\r\n\t\tthis.unsubscribeUserApiUrl = config.unsubscribeUserApiUrl;\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\ttoggleSubscription = event => {\r\n\t\tconst checkbox = event.target;\r\n\r\n\t\tif (checkbox === this.dom.consentCheckbox) {\r\n\t\t\tif (checkbox.checked === false) {\r\n\t\t\t\tconst checkboxes = this.dom.inputCheckboxes;\r\n\t\t\t\tforEach(checkboxes, checkbox => {\r\n\t\t\t\t\tif (checkbox.checked) {\r\n\t\t\t\t\t\tcheckbox.checked = false;\r\n\t\t\t\t\t\tthis.unsubscribe(checkbox, this.isLastSubscription());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (checkbox.checked) {\r\n\t\t\tthis.subscribe(checkbox);\r\n\t\t} else {\r\n\t\t\tthis.unsubscribe(checkbox, this.isLastSubscription());\r\n\t\t}\r\n\t};\r\n\r\n\tisLastSubscription = () => {\r\n\t\tconst checkboxes = [...this.dom.inputCheckboxes]\r\n\t\t\t.filter(checkbox => checkbox !== this.dom.consentCheckbox)\r\n\t\t\t.filter(checkbox => checkbox?.checked);\r\n\r\n\t\treturn checkboxes.length > 0;\r\n\t};\r\n\r\n\tsubscribe = checkbox => {\r\n\t\tfetcher(this.subscribeUserApiUrl, \"POST\", {\r\n\t\t\tlistId: checkbox.id,\r\n\t\t\tacceptSubscribe: true\r\n\t\t}).then(result => {\r\n\t\t\tif (result?.success) {\r\n\t\t\t\tif (!this.dom.consentCheckbox.checked) {\r\n\t\t\t\t\tthis.dom.consentCheckbox.checked = true;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tcheckbox.checked = false;\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tunsubscribe = (checkbox, consent) => {\r\n\t\tfetcher(this.unsubscribeUserApiUrl, \"POST\", {\r\n\t\t\tlistId: checkbox.id,\r\n\t\t\tacceptSubscribe: consent\r\n\t\t}).then(result => {\r\n\t\t\tif (result?.success) {\r\n\t\t\t\tif (!consent && this.dom.consentCheckbox.checked) {\r\n\t\t\t\t\tthis.dom.consentCheckbox.checked = false;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tcheckbox.checked = true;\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n kill = () => {\r\n removeAllEvents(this.dom.checkboxes);\r\n };\r\n\r\n\tinitialize() {\r\n\t\tthis.dom.checkboxes =\r\n this.dom.membershipContent.querySelectorAll(\".checkbox\");\r\n\t\tthis.dom.inputCheckboxes =\r\n this.dom.membershipContent.querySelectorAll(\".checkbox input\");\r\n\t\tthis.dom.consentCheckbox =\r\n this.dom.membershipContent.querySelector(\"#consent\");\r\n\r\n\t\taddEvent(this.dom.checkboxes, \"change\", this.toggleSubscription);\r\n\t}\r\n}\r\n","/**\r\n * Append a snackbar/popover to an item\r\n *\r\n * import { snackbar } from \"../snackbar/snackbar\";\r\n *\r\n */\r\n\r\nimport {\r\n\tappendElement,\r\n\tdeleteElement\r\n} from \"~/foundation/Dom/elementManipulation\";\r\nimport { createElement } from \"~/foundation/Dom/createElement\";\r\nimport { getElementSize } from \"~/foundation/Dom/elementProperties\";\r\nimport anime from \"animejs\";\r\nimport { STANDARDCUBICBEZIER } from \"~/foundation/Styles/easings\";\r\nimport { SLOW } from \"~/foundation/Styles/durations\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\n\r\nexport class Snackbar {\r\n\tconstructor(config) {\r\n\t\tconst {\r\n\t\t\telement,\r\n\t\t\tautoClose = false,\r\n\t\t\tautoCloseDuration = 2000,\r\n\t\t\tposition = \"top\"\r\n\t\t} = config;\r\n\r\n\t\tthis.closeTimeout = undefined;\r\n\r\n\t\tthis.config = {\r\n\t\t\t...config,\r\n\t\t\ttext: config.text || \"\",\r\n\t\t\tautoClose,\r\n\t\t\tautoCloseDuration,\r\n\t\t\tposition\r\n\t\t};\r\n\r\n\t\tthis.dom = {\r\n\t\t\tcontainer: element\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tconst snackbarArrowSize = 10;\r\n\t\tconst snackbarConfig = {\r\n\t\t\tclassName: `snackbar snackbar--${this.config.position}`\r\n\t\t};\r\n\r\n\t\t// If snackbar has confirm, setup confirm and cancel callback\r\n\t\tif (\r\n\t\t\tthis.config.confirm &&\r\n this.config.onConfirm &&\r\n this.config.onCancel\r\n\t\t) {\r\n\t\t\tthis.dom.confirmButton = createElement(\"button\", {\r\n\t\t\t\ttype: \"button\",\r\n\t\t\t\tclassName:\r\n \"snackbar__confirm-button button-link button-link--primary button-link--primary--black\",\r\n\t\t\t\ttext: this.config.confirmLabel\r\n\t\t\t});\r\n\r\n\t\t\tthis.dom.cancelButton = createElement(\"button\", {\r\n\t\t\t\ttype: \"button\",\r\n\t\t\t\tclassName:\r\n \"snackbar__cancel-button button-link button-link--primary button-link--primary--black\",\r\n\t\t\t\ttext: this.config.cancelLabel\r\n\t\t\t});\r\n\r\n\t\t\tconst confirmOrCancelElement = createElement(\"div\", {\r\n\t\t\t\tclassName: \"snackbar__confirm\",\r\n\t\t\t\thtml: [this.dom.confirmButton, this.dom.cancelButton]\r\n\t\t\t});\r\n\r\n\t\t\taddEvent(this.dom.confirmButton, \"click\", this.config.onConfirm);\r\n\t\t\taddEvent(this.dom.cancelButton, \"click\", this.config.onCancel);\r\n\r\n\t\t\tsnackbarConfig.html = [this.config.text, confirmOrCancelElement];\r\n\t\t} else {\r\n\t\t\tsnackbarConfig.text = this.config.text;\r\n\t\t}\r\n\r\n\t\tthis.dom.snackbarElement = createElement(\"div\", snackbarConfig);\r\n\r\n\t\t// Append snackbar before calculating position\r\n\t\tappendElement(this.dom.snackbarElement, this.dom.container.parentNode);\r\n\t\tconst snackBarElementSize = getElementSize(this.dom.snackbarElement);\r\n\r\n\t\tconst elementSize = getElementSize(this.dom.container);\r\n\r\n\t\tlet snackBarElementTopPosition;\r\n\t\tlet snackBarElementLeftPosition;\r\n\r\n\t\t// Check for position, standard is top - and set accordingly\r\n\t\t// TODO: down option\r\n\r\n\t\tif (this.config.position === \"left\") {\r\n\t\t\tsnackBarElementTopPosition = `${Math.floor(\r\n\t\t\t\tthis.dom.container.offsetTop -\r\n snackBarElementSize.height / 2 +\r\n elementSize.height / 2\r\n\t\t\t)}px`;\r\n\r\n\t\t\tsnackBarElementLeftPosition = `${Math.floor(\r\n\t\t\t\tthis.dom.container.offsetLeft -\r\n snackBarElementSize.width -\r\n snackbarArrowSize\r\n\t\t\t)}px`;\r\n\t\t} else if (this.config.position === \"right\") {\r\n\t\t\tsnackBarElementTopPosition = `${Math.floor(\r\n\t\t\t\tthis.dom.container.offsetTop -\r\n snackBarElementSize.height / 2 +\r\n elementSize.height / 2\r\n\t\t\t)}px`;\r\n\r\n\t\t\tsnackBarElementLeftPosition = `${Math.floor(\r\n\t\t\t\tthis.dom.container.offsetLeft +\r\n elementSize.width +\r\n snackbarArrowSize\r\n\t\t\t)}px`;\r\n\t\t} else {\r\n\t\t\tsnackBarElementTopPosition = `${Math.floor(\r\n\t\t\t\tthis.dom.container.offsetTop -\r\n (snackBarElementSize.height + snackbarArrowSize)\r\n\t\t\t)}px`;\r\n\r\n\t\t\tsnackBarElementLeftPosition = `${Math.floor(\r\n\t\t\t\tthis.dom.container.offsetLeft +\r\n elementSize.width / 2 -\r\n snackBarElementSize.width / 2\r\n\t\t\t)}px`;\r\n\t\t}\r\n\r\n\t\tthis.dom.snackbarElement.style.top = snackBarElementTopPosition;\r\n\t\tthis.dom.snackbarElement.style.left = snackBarElementLeftPosition;\r\n\r\n\t\tlet animeTranslate;\r\n\r\n\t\tif (this.config.position === \"right\") {\r\n\t\t\tanimeTranslate = { translateX: [\"10%\", \"5%\"] };\r\n\t\t} else if (this.config.position === \"left\") {\r\n\t\t\tanimeTranslate = { translateX: [\"-10%\", \"-5%\"] };\r\n\t\t} else {\r\n\t\t\tanimeTranslate = { translateY: [\"0%\", \"-10%\"] };\r\n\t\t}\r\n\r\n\t\t// Animate in snackbar according to position\r\n\t\tanime({\r\n\t\t\t...animeTranslate,\r\n\t\t\ttargets: this.dom.snackbarElement,\r\n\t\t\teasing: STANDARDCUBICBEZIER,\r\n\t\t\tduration: SLOW,\r\n\t\t\topacity: [0, 1],\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tif (this.config.autoClose) {\r\n\t\t\t\t\tthis.closeTimeout = setTimeout(() => {\r\n\t\t\t\t\t\tthis.close();\r\n\t\t\t\t\t}, this.config.autoCloseDuration);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tclose() {\r\n\t\t// If user close snackbar clear timeout\r\n\t\tif (this.closeTimeout) {\r\n\t\t\tclearTimeout(this.closeTimeout);\r\n\t\t}\r\n\r\n\t\t// Remove confirm buttons eventlisternes\r\n\t\tif (this.dom.confirmButton) {\r\n\t\t\tremoveAllEvents(this.dom.confirmButton);\r\n\t\t}\r\n\r\n\t\tif (this.dom.cancelButton) {\r\n\t\t\tremoveAllEvents(this.dom.cancelButton);\r\n\t\t}\r\n\r\n\t\tlet animeTranslate;\r\n\r\n\t\tif (this.config.position === \"right\") {\r\n\t\t\tanimeTranslate = { translateX: [\"5%\", \"10%\"] };\r\n\t\t} else if (this.config.position === \"left\") {\r\n\t\t\tanimeTranslate = { translateX: [\"-5%\", \"-10%\"] };\r\n\t\t} else {\r\n\t\t\tanimeTranslate = { translateY: [\"-10%\", \"0%\"] };\r\n\t\t}\r\n\r\n\t\t// Fade out snackbar and delete element\r\n\t\treturn anime({\r\n\t\t\t...animeTranslate,\r\n\t\t\ttargets: this.dom.snackbarElement,\r\n\t\t\teasing: STANDARDCUBICBEZIER,\r\n\t\t\tduration: SLOW,\r\n\t\t\topacity: [1, 0],\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tanime.remove(this.dom.snackbarElement);\r\n\t\t\t\tdeleteElement(this.dom.snackbarElement);\r\n\t\t\t\tdelete this.dom;\r\n\r\n\t\t\t\tif (this.config.onClose) {\r\n\t\t\t\t\tthis.config.onClose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import {\r\n\tappendElement,\r\n\temptyElement\r\n} from \"~/foundation/Dom/elementManipulation\";\r\nimport {\r\n\taddEvent,\r\n\taddEventOnce,\r\n\tremoveAllEvents\r\n} from \"~/foundation/Events/events\";\r\nimport { profileMarkup } from \"./markup\";\r\nimport { Newsletter } from \"./newsletter/newsletter\";\r\nimport { Membership, membershipStartPages } from \"../membership\";\r\nimport { Snackbar } from \"~/foundation/Components/snackbar/snackbar\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { STANDARDCUBICBEZIER } from \"~/foundation/Styles/easings\";\r\nimport { isRtl } from \"~/foundation/Helpers/isRtl\";\r\n\r\nexport class Profile {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.config = config;\r\n\r\n\t\tthis.onChangePasswordClick = config.onChangePasswordClick;\r\n\t\tthis.onEditNameClick = config.onEditNameClick;\r\n\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\t\tthis.languageCode = config.languageCode;\r\n\r\n\t\tthis.subscriptionLists = config.subscriptionLists;\r\n\t\tthis.dependentsLists = config.dependentsLists;\r\n\r\n\t\tthis.snackbar = undefined;\r\n\r\n\t\tthis.logoutApiUrl = config.logoutApiUrl;\r\n\t\tthis.logOutRedirectUrl = config.logOutRedirectUrl;\r\n\t\tthis.deleteAccountApiUrl = config.deleteAccountApiUrl;\r\n\t\tthis.deleteAccountRedirectUrl = config.deleteAccountRedirectUrl;\r\n\r\n\t\tthis.easing = STANDARDCUBICBEZIER;\r\n\t\tthis.durationIn = 1500;\r\n\t\tthis.durationOut = 500;\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tkill = () => {\r\n\t\tthis.newsletter.kill();\r\n\t\tremoveAllEvents([\r\n\t\t\tthis.dom.editNameButton,\r\n\t\t\tthis.dom.changePasswordButton,\r\n\t\t\tthis.dom.logoutButton,\r\n\t\t\tthis.dom.deleteButton,\r\n\t\t\tthis.dom.dependencyButton\r\n\t\t]);\r\n\t};\r\n\r\n\tlogout = () => {\r\n\t\tfetcher(this.logoutApiUrl).then(() => {\r\n\t\t\tthis.kill();\r\n\t\t\twindow.location.href = this.logOutRedirectUrl;\r\n\t\t});\r\n\t};\r\n\r\n\tdelete = () => {\r\n\t\t// Hide snackbar so we don't create multiple instances\r\n\t\tif (this.snackbar) {\r\n\t\t\tthis.snackbar.close();\r\n\t\t}\r\n\r\n\t\tthis.snackbar = new Snackbar({\r\n\t\t\telement: this.dom.deleteButton,\r\n\t\t\ttext: this.texts.confirmDeleteAccountLabel,\r\n\t\t\tautoClose: false,\r\n\t\t\tconfirm: true,\r\n\t\t\tcancelLabel: this.texts.noButtonLabel,\r\n\t\t\tconfirmLabel: this.texts.yesButtonLabel,\r\n\t\t\tposition: isRtl ? \"left\" : \"right\",\r\n\t\t\tonCancel: () => {\r\n\t\t\t\tthis.snackbar.close();\r\n\t\t\t\tthis.snackbar = undefined;\r\n\t\t\t},\r\n\t\t\tonConfirm: () => {\r\n\t\t\t\tfetcher(this.deleteAccountApiUrl, \"POST\", {\r\n\t\t\t\t\temail: this.user.emailAddress\r\n\t\t\t\t}).then(result => {\r\n\t\t\t\t\tif (result.success) {\r\n\t\t\t\t\t\tthis.kill();\r\n\t\t\t\t\t\twindow.location.href = this.deleteAccountRedirectUrl;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\talert(\"delete error\");\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\tshowDependency = () => {\r\n\t\tconst membershipElement = document.querySelector(\r\n\t\t\t\"[data-module='membership']\"\r\n\t\t);\r\n\t\tif (membershipElement) {\r\n\t\t\tnew Membership(membershipElement, membershipStartPages.DEPENDENT);\r\n\t\t}\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst profileHtml = profileMarkup(\r\n\t\t\tthis.texts,\r\n\t\t\tthis.user,\r\n\t\t\tthis.subscriptionLists,\r\n\t\t\tthis.dependentsLists\r\n\t\t);\r\n\r\n\t\temptyElement(this.dom.membershipContent);\r\n\t\tappendElement(profileHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.membershipContent.classList.add(\"scrollable\");\r\n\r\n\t\tthis.dom.editNameButton =\r\n this.dom.membershipContent.querySelector(\".edit-name\");\r\n\r\n\t\taddEvent(this.dom.editNameButton, \"click\", () => {\r\n\t\t\tthis.onEditNameClick();\r\n\t\t});\r\n\r\n\t\tthis.dom.changePasswordButton =\r\n this.dom.membershipContent.querySelector(\".change-password-button\");\r\n\r\n\t\taddEvent(this.dom.changePasswordButton, \"click\", () => {\r\n\t\t\tthis.onChangePasswordClick();\r\n\t\t});\r\n\r\n\t\tthis.newsletter = new Newsletter(this.config);\r\n\r\n\t\tthis.dom.logoutButton =\r\n this.dom.membershipContent.querySelector(\".logout\");\r\n\t\tthis.dom.deleteButton =\r\n this.dom.membershipContent.querySelector(\".delete\");\r\n\r\n\t\taddEvent(this.dom.deleteButton, \"click\", this.delete);\r\n\t\taddEventOnce(this.dom.logoutButton, \"click\", this.logout);\r\n\r\n\t\tthis.dom.dependencyButton = this.dom.membershipContent.querySelector(\r\n\t\t\t\"[data-status='dependency']\"\r\n\t\t);\r\n\r\n\t\taddEvent(this.dom.dependencyButton, \"click\", this.showDependency);\r\n\t}\r\n}\r\n","const plusIcon = `\r\n \r\n\r\n`;\r\n\r\nexport default plusIcon;\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport closeMarkup from \"~/foundation/Icons/close\";\r\nimport plusIcon from \"~/foundation/Icons/plus\";\r\n\r\nexport const overviewMarkup = labels => {\r\n\tconst {\r\n\t\tintroTitle,\r\n\t\tintroText,\r\n\t\tmyDependentsLabel,\r\n\t\taddNewDependentLinkText,\r\n\t\tnoDependentsText,\r\n\t\tcancelButtonLabel\r\n\t} = labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${introTitle}

\r\n
${introText}
\r\n
\r\n
\r\n

${myDependentsLabel}

\r\n
${noDependentsText}
\r\n \r\n
\r\n
\r\n \r\n
`);\r\n};\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\n\r\nexport const listItemMarkup = (labels, dependent) => {\r\n\tconst { removeDependentButtonLabel } = labels;\r\n\tconst { id, email } = dependent;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${email}\r\n \r\n
\r\n`);\r\n};\r\n","import {\r\n\tappendElement,\r\n\temptyElement\r\n} from \"~/foundation/Dom/elementManipulation\";\r\nimport { overviewMarkup } from \"./list-markup\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { listItemMarkup } from \"./list-item-markup\";\r\nimport { Snackbar } from \"~/foundation/Components/snackbar/snackbar\";\r\nimport { isRtl } from \"~/foundation/Helpers/isRtl\";\r\n\r\nexport class OverviewScreen {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.container = config.container;\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.snackbar = undefined;\r\n\r\n\t\tthis.getDependentsApiUrl = config.apiEndPoints.getDependentsApiUrl;\r\n\t\tthis.deleteDependentApiUrl = config.apiEndPoints.deleteDependentApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonAddClick: config.onAddClick,\r\n\t\t\tonCancelClick: config.onCancelClick\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tcreateList = list => {\r\n\t\temptyElement(this.dom.list);\r\n\r\n\t\tif (list.length > 0) {\r\n\t\t\tlist.forEach(dependent => {\r\n\t\t\t\tconst listItem = listItemMarkup(this.texts, dependent);\r\n\t\t\t\tappendElement(listItem, this.dom.list);\r\n\t\t\t});\r\n\r\n\t\t\tthis.dom.deleteLinks =\r\n this.dom.membershipContent.querySelectorAll(\".button--delete\");\r\n\r\n\t\t\taddEvent(this.dom.deleteLinks, \"click\", this.remove);\r\n\t\t} else {\r\n\t\t\tappendElement(this.texts.noDependentsText, this.dom.list);\r\n\t\t}\r\n\t};\r\n\r\n\tgetList = () => {\r\n\t\tfetcher(this.getDependentsApiUrl).then(result => {\r\n\t\t\tif (result.success) {\r\n\t\t\t\tthis.createList(result.data.list);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tremove = element => {\r\n\t\t// Hide snackbar so we don't create multiple instances\r\n\t\tif (this.snackbar) {\r\n\t\t\tthis.snackbar.close();\r\n\t\t}\r\n\r\n\t\tconst button = element.target;\r\n\t\tconst listItem = button.closest(\".dependent__list-item\");\r\n\r\n\t\tthis.snackbar = new Snackbar({\r\n\t\t\telement: element.target,\r\n\t\t\ttext: this.texts.confirmDeleteText,\r\n\t\t\tautoClose: false,\r\n\t\t\tconfirm: true,\r\n\t\t\tcancelLabel: this.texts.noButtonLabel,\r\n\t\t\tconfirmLabel: this.texts.yesButtonLabel,\r\n\t\t\tposition: isRtl ? \"right\" : \"left\",\r\n\t\t\tonCancel: () => {\r\n\t\t\t\tthis.snackbar.close();\r\n\t\t\t\tthis.snackbar = undefined;\r\n\t\t\t},\r\n\t\t\tonConfirm: () => {\r\n\t\t\t\tfetcher(this.deleteDependentApiUrl, \"POST\", {\r\n\t\t\t\t\tDependentId: listItem.dataset.id\r\n\t\t\t\t}).then(result => {\r\n\t\t\t\t\tif (result.success) {\r\n\t\t\t\t\t\tthis.getList();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\talert(\"remove error\");\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\tkill = () => {\r\n\t\tremoveAllEvents([this.dom.addButton, this.dom.cancelButton]);\r\n\t\tthis.callbacks.onCancelClick();\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tthis.getList();\r\n\t\tconst overviewHtml = overviewMarkup(this.texts, this.user);\r\n\r\n\t\temptyElement(this.dom.membershipContent);\r\n\t\tappendElement(overviewHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.list =\r\n this.dom.membershipContent.querySelector(\".dependent__list\");\r\n\r\n\t\tthis.dom.addButton =\r\n this.dom.membershipContent.querySelector(\".button--add\");\r\n\t\taddEvent(this.dom.addButton, \"click\", this.callbacks.onAddClick);\r\n\r\n\t\tthis.dom.cancelButton =\r\n this.dom.container.querySelector(\".button--cancel\");\r\n\t\taddEvent(this.dom.cancelButton, \"click\", this.kill);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../../close\";\r\n\r\nexport const addDependentMarkup = labels => {\r\n\tconst {\r\n\t\taddDependentIntroTitle,\r\n\t\taddDependentIntroText,\r\n\t\taddDependentButtonLabel,\r\n\t\temailLabel,\r\n\t\tcancelButtonLabel\r\n\t} = labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${addDependentIntroTitle}

\r\n
${addDependentIntroText}
\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 {\r\n\tappendElement,\r\n\temptyElement\r\n} from \"~/foundation/Dom/elementManipulation\";\r\nimport { addDependentMarkup } from \"./markup\";\r\nimport { showError, removeErrors } from \"~/foundation/Form/input/input-errors\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { makeButtonLoad } from \"~/foundation/Components/button/make-button-load\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { validateEmail } from \"~/foundation/Helpers/validate\";\r\n\r\nexport class AddDependentScreen {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.container = config.container;\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.checkDependentApiUrl = config.apiEndPoints.checkDependentApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonEmailSuccess: config.onEmailSuccess,\r\n\t\t\tonCancelClick: config.onCancelClick\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tvalidateAndCheckEmail = () => {\r\n\t\tif (this.dom.emailInput.value === \"\") {\r\n\t\t\tshowError(this.dom.emailInput, this.errorMessages.emailRequired);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!validateEmail(this.dom.emailInput.value)) {\r\n\t\t\tshowError(this.dom.emailInput, this.errorMessages.invalideEmail);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tremoveErrors();\r\n\r\n\t\tconst buttonLoader = new makeButtonLoad(\r\n\t\t\tthis.dom.continueButton,\r\n\t\t\tthis.texts.loadingText\r\n\t\t);\r\n\t\tbuttonLoader.load();\r\n\r\n\t\tfetcher(\r\n\t\t\t`${this.checkDependentApiUrl}?email=${this.dom.emailInput.value}`\r\n\t\t).then(result => {\r\n\t\t\tbuttonLoader.finish(true).then(() => {\r\n\t\t\t\tif (result.success) {\r\n\t\t\t\t\tif (result.data.alreadyAddedAsDependent) {\r\n\t\t\t\t\t\tshowError(\r\n\t\t\t\t\t\t\tthis.dom.emailInput,\r\n\t\t\t\t\t\t\tthis.errorMessages.dependencyWithEmailAlreadyAdded\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!result.data.accountWithEmailExists) {\r\n\t\t\t\t\t\tthis.callbacks.onEmailSuccess({\r\n\t\t\t\t\t\t\temail: this.dom.emailInput.value,\r\n\t\t\t\t\t\t\taccountWithEmailExists:\r\n result.data.accountWithEmailExists\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tremoveErrors();\r\n\r\n\t\t\t\t\tthis.callbacks.onEmailSuccess(result.data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tshowError(this.dom.emailInput, result.errors[0].message);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tkill = () => {\r\n\t\tremoveAllEvents([this.dom.continueButton, this.dom.cancelButton]);\r\n\t\tthis.callbacks.onCancelClick();\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst overviewHtml = addDependentMarkup(this.texts);\r\n\r\n\t\temptyElement(this.dom.membershipContent);\r\n\t\tappendElement(overviewHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.emailInput =\r\n this.dom.membershipContent.querySelector(\"#email\");\r\n\r\n\t\tthis.dom.continueButton =\r\n this.dom.container.querySelector(\".button--continue\");\r\n\t\taddEvent(this.dom.continueButton, \"click\", this.validateAndCheckEmail);\r\n\r\n\t\tthis.dom.cancelButton =\r\n this.dom.container.querySelector(\".button--cancel\");\r\n\t\taddEvent(this.dom.cancelButton, \"click\", this.kill);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../../close\";\r\n\r\nexport const confirmAddMarkup = (labels, errorMessages, data) => {\r\n\tconst {\r\n\t\tconfirmAddDependentIntroTitle,\r\n\t\tconfirmAddDependentIntroText,\r\n\t\tconfirmAddDependentButtonLabel,\r\n\t\tcancelButtonLabel\r\n\t} = labels;\r\n\r\n\tconst { name, email } = data;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${confirmAddDependentIntroTitle}

\r\n
${confirmAddDependentIntroText}
\r\n
\r\n
\r\n

${name ? name : \"\"}

\r\n

${email}

\r\n
\r\n ${\r\n\tdata.accountWithEmailExists\r\n\t\t? \"\"\r\n\t\t: `

${errorMessages.dependencyWithEmailNoAccount}

`\r\n}\r\n
\r\n
\r\n \r\n \r\n \r\n
`);\r\n};\r\n","import {\r\n\tappendElement,\r\n\temptyElement\r\n} from \"~/foundation/Dom/elementManipulation\";\r\nimport { confirmAddMarkup } from \"./markup\";\r\nimport { showError } from \"~/foundation/Form/input/input-errors\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { makeButtonLoad } from \"~/foundation/Components/button/make-button-load\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\n\r\nexport class ConfirmAddScreen {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.container = config.container;\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\t\tthis.data = config.data;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonConfirmSuccess: config.onConfirmSuccess,\r\n\t\t\tonCancelClick: config.onCancelClick\r\n\t\t};\r\n\r\n\t\tthis.addDependentApiUrl = config.apiEndPoints.addDependentApiUrl;\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\taddDependent = () => {\r\n\t\tconst buttonLoader = new makeButtonLoad(\r\n\t\t\tthis.dom.confirmButton,\r\n\t\t\tthis.texts.loadingText\r\n\t\t);\r\n\t\tbuttonLoader.load();\r\n\r\n\t\tfetcher(this.addDependentApiUrl, \"POST\", {\r\n\t\t\temail: this.data.email\r\n\t\t}).then(result => {\r\n\t\t\tbuttonLoader.finish(true).then(() => {\r\n\t\t\t\tif (result.success) {\r\n\t\t\t\t\tthis.callbacks.onConfirmSuccess();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tshowError(this.dom.confirmButton, result.errors[0].message);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tkill = () => {\r\n\t\tremoveAllEvents([this.dom.confirmButton, this.dom.cancelButton]);\r\n\t\tthis.callbacks.onCancelClick();\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst overviewHtml = confirmAddMarkup(\r\n\t\t\tthis.texts,\r\n\t\t\tthis.errorMessages,\r\n\t\t\tthis.data\r\n\t\t);\r\n\r\n\t\temptyElement(this.dom.membershipContent);\r\n\t\tappendElement(overviewHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.confirmButton =\r\n this.dom.container.querySelector(\".button--confirm\");\r\n\r\n\t\taddEvent(this.dom.confirmButton, \"click\", this.addDependent);\r\n\r\n\t\tthis.dom.cancelButton =\r\n this.dom.container.querySelector(\".button--cancel\");\r\n\t\taddEvent(this.dom.cancelButton, \"click\", this.kill);\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../../../close\";\r\n\r\nexport const hostOverviewMarkup = labels => {\r\n\tconst {\r\n\t\tdependencyIntroTitle,\r\n\t\tdependencyIntroText,\r\n\t\tmyDependencyLabel,\r\n\t\tconfirmDisconnectButtonLabel,\r\n\t\tmyDependencyDisconnectInfoText,\r\n\t\tcancelButtonLabel\r\n\t} = labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${dependencyIntroTitle}

\r\n
${dependencyIntroText}
\r\n
\r\n
\r\n

${myDependencyLabel}

\r\n
\r\n
\r\n
\r\n ${myDependencyDisconnectInfoText}\r\n
\r\n
\r\n
\r\n \r\n \r\n
`);\r\n};\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\n\r\nexport const hostMarkup = (labels, host) => {\r\n\tconst { myDependencyDisconnectLabel } = labels;\r\n\r\n\tconst { hostName, hostEmail } = host;\r\n\r\n\treturn parseHTML(`\r\n
\r\n
\r\n

${hostName}

\r\n

${hostEmail}

\r\n
\r\n \r\n
\r\n `);\r\n};\r\n","import { appendElement, emptyElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { hostOverviewMarkup } from \"./markup\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { hostMarkup } from \"./host-markup\";\r\nimport { Snackbar } from \"~/foundation/Components/snackbar/snackbar\";\r\nimport { isRtl } from \"~/foundation/Helpers/isRtl\";\r\n\r\nexport class HostOverviewScreen {\r\n\t/**\r\n\t\t * Internal placeholder for cached DOM-objects.\r\n\t\t *\r\n\t\t * @type {object}\r\n\t\t * @ignore\r\n\t\t */\r\n\tdom = {};\r\n\r\n\t/**\r\n\t\t *\r\n\t\t * @param {Element} domReference - The element to work from. -> membership__content\r\n\t\t */\r\n\tconstructor(config) {\r\n\t\tthis.dom.container = config.container;\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.snackbar = undefined;\r\n\r\n\t\tthis.getDependentHostApiUrl =\r\n\t\t\tconfig.apiEndPoints.getDependentHostApiUrl;\r\n\t\tthis.deleteDependentHostRelationApiUrl =\r\n\t\t\tconfig.apiEndPoints.deleteDependentHostRelationApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonConfirmClick: config.onConfirmClick,\r\n\t\t\tonCancelClick: config.onCancelClick\r\n\t\t};\r\n\r\n\t\tthis.host = {};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tgetHost = () => {\r\n\t\treturn fetcher(this.getDependentHostApiUrl).then(result => {\r\n\t\t\tif (result.success) {\r\n\t\t\t\tthis.host = result.data;\r\n\t\t\t\tconst markup = hostMarkup(this.texts, result.data);\r\n\t\t\t\tappendElement(markup, this.dom.host);\r\n\r\n\t\t\t\tthis.dom.disconnectLink =\r\n\t\t\t\t\tthis.dom.membershipContent.querySelectorAll(\r\n\t\t\t\t\t\t\".button--disconnect\"\r\n\t\t\t\t\t);\r\n\t\t\t\taddEvent(this.dom.disconnectLink, \"click\", this.remove);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tdisconnectHost = () => {\r\n\t\tfetcher(this.deleteDependentHostRelationApiUrl, \"POST\", {\r\n\t\t\tDependentId: this.host.id\r\n\t\t}).then(result => {\r\n\t\t\tif (result.success) {\r\n\t\t\t\tthis.callbacks.onConfirmClick();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tkill = () => {\r\n\t\tremoveAllEvents([this.dom.cancelButton]);\r\n\t\tthis.callbacks.onCancelClick();\r\n\t};\r\n\r\n\tremove = element => {\r\n\t\t// Hide snackbar so we don't create multiple instances\r\n\t\tif (this.snackbar) {\r\n\t\t\tthis.snackbar.close();\r\n\t\t}\r\n\r\n\t\tthis.snackbar = new Snackbar({\r\n\t\t\telement: element.target,\r\n\t\t\ttext: this.texts.confirmDeleteText,\r\n\t\t\tautoClose: false,\r\n\t\t\tconfirm: true,\r\n\t\t\tcancelLabel: this.texts.noButtonLabel,\r\n\t\t\tconfirmLabel: this.texts.yesButtonLabel,\r\n\t\t\tposition: isRtl ? \"right\" : \"left\",\r\n\t\t\tonCancel: () => {\r\n\t\t\t\tthis.snackbar.close();\r\n\t\t\t\tthis.snackbar = undefined;\r\n\t\t\t},\r\n\t\t\tonConfirm: this.disconnectHost\r\n\t\t});\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tthis.getHost();\r\n\t\tconst overviewHtml = hostOverviewMarkup(this.texts);\r\n\r\n\t\temptyElement(this.dom.membershipContent);\r\n\t\tappendElement(overviewHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.host =\r\n\t\t\tthis.dom.membershipContent.querySelector(\".dependent__host\");\r\n\r\n\t\tthis.dom.cancelButton =\r\n\t\t\tthis.dom.container.querySelector(\".button--cancel\");\r\n\t\taddEvent(this.dom.cancelButton, \"click\", this.kill);\r\n\t}\r\n}\r\n","import { OverviewScreen } from \"./screens/overview/overview\";\r\nimport { Membership, membershipStartPages } from \"../../membership\";\r\nimport { AddDependentScreen } from \"./screens/add-dependent/add-dependent\";\r\nimport { ConfirmAddScreen } from \"./screens/confirm-add/confirm-add\";\r\nimport { HostOverviewScreen } from \"./screens/host-overview/host-overview\";\r\n\r\nexport class Dependent {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.container = config.container;\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.animate = config.animate;\r\n\t\tthis.user = config.user;\r\n\t\tthis.apiEndPoints = config.apiEndPoints;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.steps = {};\r\n\t\tthis.currentStep = 0;\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\trestart = () => {\r\n\t\tconst membershipElement = this.dom.container;\r\n\t\tif (membershipElement) {\r\n\t\t\tnew Membership(membershipElement, membershipStartPages.PROFILE);\r\n\t\t}\r\n\t};\r\n\r\n\toverviewScreen = () => {\r\n\t\tnew OverviewScreen({\r\n\t\t\tcontainer: this.dom.container,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: this.texts,\r\n\t\t\terrorMessages: this.errorMessages,\r\n\t\t\tapiEndPoints: this.apiEndPoints,\r\n\t\t\tonAddClick: () => {\r\n\t\t\t\tthis.navigate();\r\n\t\t\t},\r\n\t\t\tonCancelClick: () => {\r\n\t\t\t\tthis.restart();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\thostOverviewScreen = () => {\r\n\t\tnew HostOverviewScreen({\r\n\t\t\tcontainer: this.dom.container,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: this.texts,\r\n\t\t\terrorMessages: this.errorMessages,\r\n\t\t\tapiEndPoints: this.apiEndPoints,\r\n\t\t\tonConfirmClick: () => {\r\n\t\t\t\tthis.restart();\r\n\t\t\t},\r\n\t\t\tonCancelClick: () => {\r\n\t\t\t\tthis.restart();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\taddDependentScreen = () => {\r\n\t\tnew AddDependentScreen({\r\n\t\t\tcontainer: this.dom.container,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\ttexts: this.texts,\r\n\t\t\terrorMessages: this.errorMessages,\r\n\t\t\tapiEndPoints: this.apiEndPoints,\r\n\t\t\tonEmailSuccess: data => {\r\n\t\t\t\tthis.data = data;\r\n\t\t\t\tthis.navigate();\r\n\t\t\t},\r\n\t\t\tonCancelClick: () => {\r\n\t\t\t\tthis.navigate(false);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tconfirmAddScreen = () => {\r\n\t\tnew ConfirmAddScreen({\r\n\t\t\tcontainer: this.dom.container,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\ttexts: this.texts,\r\n\t\t\terrorMessages: this.errorMessages,\r\n\t\t\tapiEndPoints: this.apiEndPoints,\r\n\t\t\tdata: this.data,\r\n\t\t\tonConfirmSuccess: () => {\r\n\t\t\t\tthis.restart();\r\n\t\t\t},\r\n\t\t\tonCancelClick: () => {\r\n\t\t\t\tthis.navigate(false);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tnavigate = (directionForward = true) => {\r\n\t\tthis.currentStep = directionForward\r\n\t\t\t? this.currentStep + 1\r\n\t\t\t: this.currentStep - 1;\r\n\r\n\t\tthis.steps[this.currentStep]();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.animate();\r\n\t\t}, 50);\r\n\t};\r\n\r\n\tsetupSteps = () => {\r\n\t\tthis.steps = {\r\n\t\t\t1: this.overviewScreen,\r\n\t\t\t2: this.addDependentScreen,\r\n\t\t\t3: this.confirmAddScreen\r\n\t\t};\r\n\t};\r\n\r\n\tsetupHostSteps = () => {\r\n\t\tthis.steps = {\r\n\t\t\t1: this.hostOverviewScreen\r\n\t\t};\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tif (this.user.showManageHostDependency) {\r\n\t\t\tthis.setupHostSteps();\r\n\t\t} else {\r\n\t\t\tthis.setupSteps();\r\n\t\t}\r\n\r\n\t\tthis.navigate();\r\n\t}\r\n}\r\n","import { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\nimport { closeMarkup } from \"../../close\";\r\n\r\nexport const editNameMarkup = (labels, user) => {\r\n\tconst {\r\n\t\teditNameButtonLabel,\r\n\t\tfirstNameWatermark,\r\n\t\tlastNameWatermark,\r\n\t\tcancelButtonLabel,\r\n\t\tsaveButtonLabel\r\n\t} = labels;\r\n\r\n\tconst { firstName, lastName } = user;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${editNameButtonLabel}

\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 { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { showError, removeErrors } from \"~/foundation/Form/input/input-errors\";\r\nimport { editNameMarkup } from \"./markup\";\r\nimport { appendElement, emptyElement } from \"~/foundation/Dom/elementManipulation\";\r\nexport class EditName {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.updateNamesApiUrl = config.updateNamesApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonNameUpdate: config.onNameUpdate,\r\n\t\t\tonCancelClick: config.onCancelClick\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tkill = () => {\r\n\t\tremoveAllEvents([this.dom.saveName, this.dom.cancelButton]);\r\n\t};\r\n\r\n\tvalidateName = () => {\r\n\t\tif (this.dom.firstNameInput.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.dom.firstNameInput,\r\n\t\t\t\tthis.errorMessages.firstNameRequired\r\n\t\t\t);\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (this.dom.lastNameInput.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.dom.lastNameInput,\r\n\t\t\t\tthis.errorMessages.lastNameRequired\r\n\t\t\t);\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tremoveErrors();\r\n\t\treturn true;\r\n\t};\r\n\r\n\tsaveName = () => {\r\n\t\tif (!this.validateName()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst user = {\r\n\t\t\tfirstName: this.dom.firstNameInput.value,\r\n\t\t\tlastName: this.dom.lastNameInput.value,\r\n\t\t\temail: this.user.emailAddress\r\n\t\t};\r\n\r\n\t\tif (\r\n\t\t\tthis.user.firstName === user.firstName &&\r\n this.user.lastName === user.lastName\r\n\t\t) {\r\n\t\t\tthis.callbacks.onCancelClick();\r\n\t\t\tthis.kill();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfetcher(this.updateNamesApiUrl, \"POST\", user).then(result => {\r\n\t\t\tif (result.success) {\r\n\t\t\t\tthis.callbacks.onNameUpdate();\r\n\t\t\t\tthis.kill();\r\n\t\t\t} else {\r\n\t\t\t\talert(\"name change error\");\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tconst editNameHtml = editNameMarkup(this.texts, this.user);\r\n\r\n\t\temptyElement(this.dom.membershipContent);\r\n\t\tappendElement(editNameHtml, this.dom.membershipContent);\r\n\r\n\t\tthis.dom.firstNameInput =\r\n this.dom.membershipContent.querySelector(\"#firstName\");\r\n\t\tthis.dom.lastNameInput =\r\n this.dom.membershipContent.querySelector(\"#lastName\");\r\n\r\n\t\tthis.dom.saveNameButton =\r\n this.dom.membershipContent.querySelector(\".button--save\");\r\n\t\taddEvent(this.dom.saveNameButton, \"click\", this.saveName);\r\n\r\n\t\tthis.dom.cancelButton =\r\n this.dom.membershipContent.querySelector(\".button--cancel\");\r\n\t\taddEvent(this.dom.cancelButton, \"click\", () => {\r\n\t\t\tthis.callbacks.onCancelClick();\r\n\t\t\tthis.kill();\r\n\t\t});\r\n\t}\r\n}\r\n","import viewPasswordSvg from \"~/foundation/Icons/view-password\";\r\nimport { closeMarkup } from \"../../close\";\r\nimport { parseHTML } from \"~/foundation/Dom/elementManipulation\";\r\n\r\nexport const changePasswordMarkup = labels => {\r\n\tconst {\r\n\t\tchangePasswordButtonLabel,\r\n\t\toldPasswordWatermark,\r\n\t\tnewPasswordWatermark,\r\n\t\trepeatNewPasswordWatermark,\r\n\t\tsaveButtonLabel,\r\n\t\tcancelButtonLabel,\r\n\t\tpasswordHelpText\r\n\t} = labels;\r\n\r\n\treturn parseHTML(`\r\n
\r\n ${closeMarkup}\r\n

${changePasswordButtonLabel}

\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 ${passwordHelpText}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
`);\r\n};\r\n","import { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { ToggleVisiblePassword } from \"~/foundation/Form/input/toggle-visible-password\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport {\r\n\tshowError,\r\n\tremoveErrors,\r\n\tremoveError\r\n} from \"~/foundation/Form/input/input-errors\";\r\nimport { changePasswordMarkup } from \"./markup\";\r\nimport { appendElement, emptyElement } from \"~/foundation/Dom/elementManipulation\";\r\n\r\nexport class ChangePassword {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from. -> membership__content\r\n */\r\n\tconstructor(config) {\r\n\t\tthis.config = config;\r\n\t\tthis.dom.membershipContent = config.membershipContent;\r\n\t\tthis.texts = config.texts;\r\n\t\tthis.user = config.user ? config.user : {};\r\n\t\tthis.errorMessages = config.errorMessages;\r\n\r\n\t\tthis.changePasswordApiUrl = config.changePasswordApiUrl;\r\n\r\n\t\tthis.callbacks = {\r\n\t\t\tonPasswordUpdate: config.onPasswordUpdate,\r\n\t\t\tonCancelClick: config.onCancelClick\r\n\t\t};\r\n\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\tkill = () => {\r\n\t\tremoveAllEvents([this.dom.savePassword, this.dom.cancelButton]);\r\n\t\tremoveAllEvents([\r\n\t\t\tthis.inputs.NewPassword,\r\n\t\t\tthis.inputs.OldPassword,\r\n\t\t\tthis.inputs.RepeatPassword\r\n\t\t]);\r\n\t};\r\n\r\n\tvalidatePassword = () => {\r\n\t\tif (this.inputs.OldPassword.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.inputs.OldPassword,\r\n\t\t\t\tthis.errorMessages.oldPasswordRequired\r\n\t\t\t);\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (this.inputs.NewPassword.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.inputs.NewPassword,\r\n\t\t\t\tthis.errorMessages.newPasswordRequired\r\n\t\t\t);\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (this.inputs.RepeatPassword.value === \"\") {\r\n\t\t\tshowError(\r\n\t\t\t\tthis.inputs.RepeatPassword,\r\n\t\t\t\tthis.errorMessages.newPasswordRequired\r\n\t\t\t);\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tremoveErrors();\r\n\t\treturn true;\r\n\t};\r\n\r\n\tsavePassword = () => {\r\n\t\tif (!this.validatePassword()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfetcher(this.changePasswordApiUrl, \"POST\", {\r\n\t\t\toldPassword: this.inputs.OldPassword.value,\r\n\t\t\tnewPassword: this.inputs.NewPassword.value,\r\n\t\t\trepeatPassword: this.inputs.RepeatPassword.value\r\n\t\t}).then(result => {\r\n\t\t\tif (result.success) {\r\n\t\t\t\tthis.callbacks.onPasswordUpdate();\r\n\t\t\t\tthis.kill();\r\n\t\t\t} else {\r\n\t\t\t\tresult.errors.map(error =>\r\n\t\t\t\t\tshowError(this.inputs[error.property], error.message)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tonPasswordFocus(e) {\r\n\t\tconst password = e.target;\r\n\t\tremoveError(password);\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tconst editNameHtml = changePasswordMarkup(this.texts, this.user);\r\n\r\n\t\temptyElement(this.dom.membershipContent);\r\n\t\tappendElement(editNameHtml, this.dom.membershipContent);\r\n\r\n\t\tconst passwordToggleButtons =\r\n this.dom.membershipContent.querySelectorAll(\r\n \t\".toggle-visible-password\"\r\n );\r\n\t\tthis.togglePasswordVisibility = passwordToggleButtons.forEach(\r\n\t\t\tbutton => new ToggleVisiblePassword(button)\r\n\t\t);\r\n\r\n\t\tthis.inputs = {\r\n\t\t\tOldPassword:\r\n this.dom.membershipContent.querySelector(\"#oldPassword\"),\r\n\t\t\tNewPassword:\r\n this.dom.membershipContent.querySelector(\"#newPassword\"),\r\n\t\t\tRepeatPassword:\r\n this.dom.membershipContent.querySelector(\"#repeatPassword\")\r\n\t\t};\r\n\r\n\t\taddEvent(\r\n\t\t\t[\r\n\t\t\t\tthis.inputs.NewPassword,\r\n\t\t\t\tthis.inputs.OldPassword,\r\n\t\t\t\tthis.inputs.RepeatPassword\r\n\t\t\t],\r\n\t\t\t\"focus\",\r\n\t\t\tthis.onPasswordFocus\r\n\t\t);\r\n\r\n\t\tthis.dom.savePasswordButton =\r\n this.dom.membershipContent.querySelector(\".button--save\");\r\n\t\taddEvent(this.dom.savePasswordButton, \"click\", this.savePassword);\r\n\r\n\t\tthis.dom.cancelButton =\r\n this.dom.membershipContent.querySelector(\".button--cancel\");\r\n\t\taddEvent(this.dom.cancelButton, \"click\", () => {\r\n\t\t\tthis.callbacks.onCancelClick();\r\n\t\t\tthis.kill();\r\n\t\t});\r\n\t}\r\n}\r\n","import { onReady } from \"~/foundation/Events/onReady\";\r\nimport { addEvent, removeAllEvents } from \"~/foundation/Events/events\";\r\nimport { emptyElement } from \"~/foundation/Dom/elementManipulation\";\r\nimport { SelectLanguageScreen } from \"./signup/screens/select-language/select-language\";\r\nimport { EnterName } from \"./signup/screens/enter-name/enter-name\";\r\nimport { EnterEmail } from \"./signup/screens/enter-email/enter-email\";\r\nimport { Password } from \"./signup/screens/password/password\";\r\nimport { SelectTopics } from \"./signup/screens/select-topics/select-topics\";\r\nimport { Splash } from \"./signup/screens/splash/splash\";\r\nimport { Confirmation } from \"./signup/screens/confirmation/confirmation\";\r\nimport { fetcher } from \"~/foundation/Api\";\r\nimport { MEMBERSHIP_SIGNUP_START, MEMBERSHIP_SELECTTOPICS_START, MEMBERSHIP_PASSWORD_START, MEMBERSHIP_PROFILE_START, MEMBERSHIP_DEPENDENT_START, MEMBERSHIP_LOGIN, CHECK_USER } from \"./constants\";\r\nimport { getParameter } from \"~/foundation/Helpers/queryString\";\r\nimport { setCookie, getCookie } from \"~/foundation/Helpers/cookie\";\r\n// import { triggerCustomEvent } from \"~/foundation/Events/triggerCustomEvent\";\r\n// import { destroyEventName } from \"~/foundation/Bootstrapper\";\r\nimport { STANDARDCUBICBEZIER } from \"~/foundation/Styles/easings\";\r\nimport { isRtl } from \"~/foundation/Helpers/isRtl\";\r\nimport { Login } from \"./login/screens/login/login\";\r\nimport { ForgotPassword } from \"./login/screens/forgot-password/forgot-password\";\r\nimport LazyLoad from \"vanilla-lazyload\";\r\nimport { currentWindowWidth, currentWindowHeight } from \"~/foundation/Events/onWindowResize\";\r\nimport anime from \"animejs\";\r\nimport { enableScrollLock, disableScrollLock } from \"~/foundation/Dom/scrollLock\";\r\nimport { ForgotPasswordConfirmation } from \"./login/screens/forgot-password-confirmation/forgot-password-confirmation\";\r\nimport { ResetPassword } from \"./login/screens/reset-password/reset-password\";\r\nimport { Profile } from \"./profile/profile\";\r\nimport { forEach } from \"~/foundation/Helpers/forEach\";\r\nimport { Dependent } from \"./profile/dependent/dependent\";\r\nimport { EditName } from \"./profile/edit-name/edit-name\";\r\nimport { ChangePassword } from \"./profile/change-password/change-password\";\r\nimport { Snackbar } from \"~/foundation/Components/snackbar/snackbar\";\r\n\r\nexport const closeMembershipCookie = \"closeMembership\";\r\nexport const closeMembershipCookieValue = true;\r\n\r\nexport const membershipStartPages = {\r\n\tLOGIN: \"login\",\r\n\tSIGNUP: \"signup\",\r\n\tPROFILE: \"profile\",\r\n\tDEPENDENT: \"dependent\",\r\n\tSELECT_TOPICS: \"select-topics\",\r\n\tRESET_PASSWORD: \"reset-password\"\r\n};\r\n\r\nexport const customMembershipTriggers = [\r\n\t\"data-select-topics\",\r\n\t\"data-reset-password\",\r\n\t\"data-signup\"\r\n];\r\n\r\nexport class Membership {\r\n\t/**\r\n\t\t * Internal placeholder for cached DOM-objects.\r\n\t\t *\r\n\t\t * @type {object}\r\n\t\t * @ignore\r\n\t\t */\r\n\tdom = {\r\n\t\tcontainer: undefined\r\n\t};\r\n\r\n\t/**\r\n\t\t *\r\n\t\t * @param {Element} domReference - The element to work from.\r\n\t\t */\r\n\tconstructor(\r\n\t\tdomReference,\r\n\t\tstartPage = membershipStartPages.SIGNUP,\r\n\t\tdata = {}\r\n\t) {\r\n\t\tthis.dom.container = domReference;\r\n\t\tthis.dom.membershipContent = this.dom.container.querySelector(\r\n\t\t\t\".membership__content\"\r\n\t\t);\r\n\t\tthis.user = {};\r\n\r\n\t\tthis.texts = {};\r\n\t\tthis.loginTexts = {};\r\n\t\tthis.loginApiEndPoints = {};\r\n\t\tthis.apiEndPoints = {};\r\n\t\tthis.languages = {};\r\n\t\tthis.language = isRtl ? \"ar\" : \"en\";\r\n\t\tthis.initialLanguage = this.language;\r\n\t\tthis.topics = {};\r\n\t\tthis.errorMessages = {};\r\n\t\tthis.splashCookie = \"splash\";\r\n\t\tthis.splashCookieValue = \"shown\";\r\n\t\tthis.startPage = startPage;\r\n\t\tthis.currentStep =\r\n\t\t\tgetCookie(this.splashCookie) !== this.splashCookieValue ? 1 : 2;\r\n\t\tthis.easing = STANDARDCUBICBEZIER;\r\n\t\tthis.durationIn = 1500;\r\n\t\tthis.durationOut = 500;\r\n\t\tthis.lazyloadInstance = undefined;\r\n\r\n\t\tthis.isAutomatedTest = this.dom.container.getAttribute(\"data-automated-test\") === \"true\";\r\n\t\tthis.showSelectTopics = this.dom.container.getAttribute(\"data-select-topics\") === \"true\";\r\n\t\tthis.showResetPassword = this.dom.container.getAttribute(\"data-reset-password\") === \"true\";\r\n\r\n\t\tif (this.showSelectTopics) {\r\n\t\t\tthis.startPage = membershipStartPages.SELECT_TOPICS;\r\n\t\t} else if (this.showResetPassword) {\r\n\t\t\tthis.startPage = membershipStartPages.RESET_PASSWORD;\r\n\t\t}\r\n\r\n\t\tthis.steps = {};\r\n\t\tthis.data = data;\r\n\r\n\t\temptyElement(this.dom.membershipContent);\r\n\r\n\t\tonReady(() => this.initialize());\r\n\t}\r\n\r\n\tsplashScreen = () => {\r\n\t\tnew Splash({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tonSplashDone: () => {\r\n\t\t\t\tsetCookie(this.splashCookie, this.splashCookieValue);\r\n\t\t\t\tthis.navigate();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tselectLanguageScreen = () => {\r\n\t\tnew SelectLanguageScreen({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\ttexts: this.texts,\r\n\t\t\tlanguages: this.languages,\r\n\t\t\tuser: this.user,\r\n\t\t\tonChangeLanguage: languageCode => {\r\n\t\t\t\tthis.language = languageCode;\r\n\t\t\t\tthis.startPage = membershipStartPages.SIGNUP;\r\n\t\t\t\tthis.initialize();\r\n\t\t\t},\r\n\t\t\tonSelectLanguage: languageCode => {\r\n\t\t\t\tthis.user.languageCode = languageCode;\r\n\t\t\t\tthis.navigate();\r\n\t\t\t},\r\n\t\t\tonInit: languageCode => {\r\n\t\t\t\tthis.user.languageCode = languageCode;\r\n\t\t\t},\r\n\t\t\tonLoginButtonClick: () => {\r\n\t\t\t\tthis.getLoginStart(this.language).then(() => {\r\n\t\t\t\t\tthis.setupSteps();\r\n\t\t\t\t\tthis.animate(false, \"login\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tloginScreen = () => {\r\n\t\tnew Login({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tloginApiUrl: this.loginApiEndPoints.loginApiUrl,\r\n\t\t\ttexts: {\r\n\t\t\t\theaderTitle: this.loginTexts.loginTitle,\r\n\t\t\t\tloginText: this.loginTexts.loginText,\r\n\t\t\t\temailLabel: this.loginTexts.emailLabel,\r\n\t\t\t\tpasswordLabel: this.loginTexts.passwordLabel,\r\n\t\t\t\tforgotPasswordLabel: this.loginTexts.forgotPasswordLinkText,\r\n\t\t\t\tlogInLabel: this.loginTexts.loginButtonText,\r\n\t\t\t\tcreateAccountHeader: this.loginTexts.createAnAccountHeader,\r\n\t\t\t\tcreateAccountLabel: this.loginTexts.createAnAccountLinkText,\r\n\t\t\t\tloading: this.loginTexts.loadingText,\r\n\t\t\t\temailAlreadyExist: this.loginTexts.emailAlreadyExist\r\n\t\t\t},\r\n\t\t\terrorMessages: {\r\n\t\t\t\temailRequired: this.loginErrorMessages.emailRequired,\r\n\t\t\t\tinvalideEmail: this.loginErrorMessages.invalideEmail,\r\n\t\t\t\tpasswordRequired: this.loginErrorMessages.passwordRequired,\r\n\t\t\t\tgenericMembershipError: this.loginErrorMessages.genericMembershipError\r\n\t\t\t},\r\n\t\t\tdata: this.data,\r\n\t\t\tonCreateAccountClick: () => {\r\n\t\t\t\tthis.getMembershipStart(this.language).then(() => {\r\n\t\t\t\t\temptyElement(this.dom.membershipContent);\r\n\t\t\t\t\tthis.steps[this.currentStep]();\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.animate();\r\n\t\t\t\t\t}, 50);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonForgotPasswordClick: () => {\r\n\t\t\t\tthis.animate(false, \"forgotPassword\");\r\n\t\t\t},\r\n\t\t\tonLoginSuccess: () => {\r\n\t\t\t\t// We check if user is isInternal to prevent users that do not have the authorization for seeing the link\r\n\t\t\t\t// \"returnUrl\" is given by the redirect from backend so that we can prompt with login overlay\r\n\t\t\t\tfetcher(CHECK_USER).then(({ data, success, errors }) => {\r\n\t\t\t\t\tif (success) {\r\n\t\t\t\t\t\tif (data.isInternal) {\r\n\t\t\t\t\t\t\tconst paramUrl = getParameter(\"returnUrl\")[0] || getParameter(\"ReturnUrl\")[0] || \"\";\r\n\r\n\t\t\t\t\t\t\t// Since we do not have the querystring parameter on load, and it is pushed through window.history's state\r\n\t\t\t\t\t\t\t// we have to use the window.location object since it has the dynamic URL\r\n\t\t\t\t\t\t\tif (window.location.search.includes(\"?download=\")) {\r\n\t\t\t\t\t\t\t\t// Since we are manually setting the window.location through window.history.pushState\r\n\t\t\t\t\t\t\t\t// we are sure the value to the key is our download link.\r\n\t\t\t\t\t\t\t\twindow.open(window.location.search.split(\"=\")[1], \"_blank\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (paramUrl && paramUrl.length > 0) {\r\n\t\t\t\t\t\t\t\tconst redirectUrl = window.location.origin + paramUrl;\r\n\t\t\t\t\t\t\t\t// redirect to the url\r\n\t\t\t\t\t\t\t\twindow.location.href = redirectUrl;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t//added location.search to make sure params are kept in redirect - used by pdf-viewer.\r\n\t\t\t\t\t\t\t\twindow.location = window.location.origin + window.location.pathname + window.location.search;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twindow.location = window.location.origin + window.location.pathname;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error(\"Error fetching data from user\", errors.message);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.setCloseMembershipCookie();\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.animate();\r\n\t};\r\n\r\n\tenterNameScreen = () => {\r\n\t\tnew EnterName({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: {\r\n\t\t\t\theaderTitle: this.texts.introTitle,\r\n\t\t\t\tfirstNameLabel: this.texts.firstNameLabel,\r\n\t\t\t\tlastNameLabel: this.texts.lastNameLabel,\r\n\t\t\t\tcontinueLabel: this.texts.continueButtonLabel\r\n\t\t\t},\r\n\t\t\terrorMessages: {\r\n\t\t\t\tfirstNameRequired: this.errorMessages.firstNameRequired,\r\n\t\t\t\tlastNameRequired: this.errorMessages.lastNameRequired\r\n\t\t\t},\r\n\t\t\tonContinue: (firstName, lastName) => {\r\n\t\t\t\tthis.user.firstName = firstName;\r\n\t\t\t\tthis.user.lastName = lastName;\r\n\t\t\t\tthis.navigate(true);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tenterEmailScreen = () => {\r\n\t\tnew EnterEmail({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tverifyEmailApiUrl: this.apiEndPoints.verifyEmailApiUrl,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: {\r\n\t\t\t\theaderTitle: this.texts.introTitle,\r\n\t\t\t\temailLabel: this.texts.emailLabel,\r\n\t\t\t\temailHelpText: this.texts.emailHelpText,\r\n\t\t\t\tcontinueLabel: this.texts.continueButtonLabel,\r\n\t\t\t\tloading: this.texts.loadingText\r\n\t\t\t},\r\n\t\t\terrorMessages: {\r\n\t\t\t\temailRequired: this.errorMessages.emailRequired,\r\n\t\t\t\tinvalideEmail: this.errorMessages.invalideEmail,\r\n\t\t\t\taccountAlreadyExists: this.errorMessages.accountAlreadyExists\r\n\t\t\t},\r\n\t\t\tonContinue: email => {\r\n\t\t\t\tthis.user.email = email;\r\n\t\t\t\tthis.navigate(true);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tconfirmationScreen = () => {\r\n\t\tnew Confirmation({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tresendSignupEmailApiUrl: this.apiEndPoints.resendSignupEmailApiUrl,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: {\r\n\t\t\t\tconfirmationText: this.texts.confirmationText.replace(\r\n\t\t\t\t\t\"{email}\",\r\n\t\t\t\t\t`${this.user.email}`\r\n\t\t\t\t),\r\n\t\t\t\tresendEmailText: this.texts.noEmailText,\r\n\t\t\t\tresendLabel: this.texts.noEmailLinkText\r\n\t\t\t},\r\n\t\t\tonResendEmailSuccess: () => {\r\n\t\t\t\tconsole.log(\"resend email success\");\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tselectTopicsScreen = () => {\r\n\t\tnew SelectTopics({\r\n\t\t\tcontainer: this.dom.container,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tsaveTopicScoresApiUrl: this.apiEndPoints.saveTopicScoresApiUrl,\r\n\t\t\ttexts: {\r\n\t\t\t\theaderTitle: `${this.texts.introText}`,\r\n\t\t\t\ttopics: this.topics,\r\n\t\t\t\tcontinueLabel: this.texts.confirmationLinkText,\r\n\t\t\t\tskipLabel: this.texts.skipLinkText,\r\n\t\t\t\tconfirmationText: this.texts.confirmationText,\r\n\t\t\t\tconfirmationResponseText: this.texts.confirmationResponseText,\r\n\t\t\t\tpleaseSelectTopicsText: this.texts.pleaseSelectTopicsText\r\n\t\t\t},\r\n\t\t\tonSelectedTopicsSaved: () => {\r\n\t\t\t\tthis.setCloseMembershipCookie();\r\n\t\t\t\twindow.location =\r\n\t\t\t\t\twindow.location.origin + window.location.pathname;\r\n\t\t\t},\r\n\t\t\tonSkipSelectTopics: () => {\r\n\t\t\t\tthis.setCloseMembershipCookie();\r\n\t\t\t\twindow.location =\r\n\t\t\t\t\twindow.location.origin + window.location.pathname;\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tpasswordScreen = () => {\r\n\t\tnew Password({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tsignupApiUrl: this.apiEndPoints.signupApiUrl,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: {\r\n\t\t\t\theaderTitle: this.texts.introTitle,\r\n\t\t\t\tpasswordLabel: this.texts.passwordLabel,\r\n\t\t\t\tpasswordHelpText: this.texts.passwordHelpText,\r\n\t\t\t\ttermsText: this.texts.acceptTermsText,\r\n\t\t\t\tsubscribeText: this.texts.acceptSubscribeText,\r\n\t\t\t\tcontinueLabel: this.texts.submitButtonLabel,\r\n\t\t\t\tloading: this.texts.loadingText,\r\n\t\t\t\ttermsAndConditionUrl: this.texts.termsAndConditionUrl\r\n\t\t\t},\r\n\t\t\terrorMessages: {\r\n\t\t\t\tacceptTermsRequired: this.errorMessages.acceptTermsRequired,\r\n\t\t\t\tpasswordRequired: this.errorMessages.passwordRequired\r\n\t\t\t},\r\n\t\t\tisAutomatedTest: this.isAutomatedTest,\r\n\t\t\tonSignupSuccess: () => {\r\n\t\t\t\tthis.removePaginationListener();\r\n\t\t\t\tthis.navigate();\r\n\t\t\t\tthis.setCloseMembershipCookie();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tforgotPasswordScreen = () => {\r\n\t\tnew ForgotPassword({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tforgotPasswordApiUrl: this.loginApiEndPoints.forgotPasswordApiUrl,\r\n\t\t\tvalidateEmailApiUrl: this.loginApiEndPoints.validateEmailApiUrl,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: {\r\n\t\t\t\theaderTitle: this.loginTexts.forgotPasswordTitle,\r\n\t\t\t\temailLabel: this.loginTexts.forgotPasswordEmailLabel,\r\n\t\t\t\tforgotPasswordText: this.loginTexts.forgotPasswordText,\r\n\t\t\t\tsendLinkLabel: this.loginTexts.forgotPasswordButtonLabel,\r\n\t\t\t\tgoBackLabel: this.loginTexts.forgotPasswordBackButtonLinkText,\r\n\t\t\t\tloading: this.loginTexts.loadingText\r\n\t\t\t},\r\n\t\t\terrorMessages: {\r\n\t\t\t\temailRequired: this.loginErrorMessages.emailRequired,\r\n\t\t\t\tinvalideEmail: this.loginErrorMessages.invalideEmail,\r\n\t\t\t\tgenericMembershipError:\r\n\t\t\t\t\tthis.loginErrorMessages.genericMembershipError,\r\n\t\t\t\tnoUserWithEmail: this.loginErrorMessages.noUserWithEmail\r\n\t\t\t},\r\n\t\t\tonSendEmailClick: () => {\r\n\t\t\t\tthis.animate(false, \"forgotPasswordConfirmation\");\r\n\t\t\t},\r\n\t\t\tonLoginLinkClick: () => {\r\n\t\t\t\tthis.animate(false, \"login\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.animate();\r\n\t};\r\n\r\n\tforgotPasswordConfirmationScreen = () => {\r\n\t\tnew ForgotPasswordConfirmation({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tresendForgotPasswordApiUrl: this.loginApiEndPoints.forgotPasswordApiUrl,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: {\r\n\t\t\t\tconfirmationText: this.loginTexts.forgotPasswordConfirmationText.replace(\"{email}\", this.user.email),\r\n\t\t\t\tresendEmailText: this.loginTexts.forgotPasswordNoEmailText,\r\n\t\t\t\tresendLabel: this.loginTexts.forgotPasswordResendEmailLinkText\r\n\t\t\t},\r\n\t\t\tonResendEmailSuccess: () => {\r\n\t\t\t\tconsole.log(\"resend email success\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.animate();\r\n\t};\r\n\r\n\tresetPasswordScreen = () => {\r\n\t\tnew ResetPassword({\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tresetPasswordUrl: this.apiEndPoints.resetPasswordUrl,\r\n\t\t\ttexts: {\r\n\t\t\t\theaderTitle: this.texts.title,\r\n\t\t\t\temailLabel: this.texts.emailLabel,\r\n\t\t\t\tpasswordLabel: this.texts.inputNewPassword,\r\n\t\t\t\tpasswordHelpText: this.texts.passwordHelpText,\r\n\t\t\t\tcontinueLabel: this.texts.buttonLabel,\r\n\t\t\t\tstartOverLabel: this.texts.startOverLabel,\r\n\t\t\t\tlinkExpiredTitle: this.texts.linkExpiredLabel,\r\n\t\t\t\tlinkExpiredText: this.texts.linkExpiredTextLabel,\r\n\t\t\t\tloading: this.texts.loadingText\r\n\t\t\t},\r\n\t\t\terrorMessages: {\r\n\t\t\t\tpasswordRequired: this.errorMessages.passwordRequired\r\n\t\t\t},\r\n\t\t\tonSavePasswordSuccess: () => {\r\n\t\t\t\tthis.setCloseMembershipCookie();\r\n\t\t\t\twindow.location =\r\n\t\t\t\t\twindow.location.origin + window.location.pathname;\r\n\t\t\t},\r\n\t\t\tonStartOverClick: () => {\r\n\t\t\t\tthis.getLoginStart(this.language).then(() => {\r\n\t\t\t\t\tthis.setupSteps();\r\n\t\t\t\t\tthis.animate(false, \"forgotPassword\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tprofileScreen = () => {\r\n\t\tnew Profile({\r\n\t\t\tcontainer: this.dom.container,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tanimate: this.animate,\r\n\t\t\tlanguageCode: this.languageCode,\r\n\t\t\tsubscribeUserApiUrl: this.apiEndPoints.subscribeUserApiUrl,\r\n\t\t\tunsubscribeUserApiUrl: this.apiEndPoints.unsubscribeUserApiUrl,\r\n\t\t\tlogoutApiUrl: this.apiEndPoints.logoutApiUrl,\r\n\t\t\tlogOutRedirectUrl: this.apiEndPoints.logOutRedirectUrl,\r\n\t\t\tdeleteAccountApiUrl: this.apiEndPoints.deleteAccountApiUrl,\r\n\t\t\tdeleteAccountRedirectUrl:\r\n\t\t\t\tthis.apiEndPoints.deleteAccountRedirectUrl,\r\n\t\t\tuser: this.user,\r\n\t\t\tsubscriptionLists: this.subscriptions.subscriptionLists,\r\n\t\t\tdependentsLists: this.dependents.dependentsList,\r\n\t\t\ttexts: {\r\n\t\t\t\t// labels with name changes\r\n\t\t\t\theaderTitle: this.texts.introTitle,\r\n\t\t\t\teditNameLabel: this.texts.editNameButtonLabel,\r\n\t\t\t\tchangePasswordLabel: this.texts.changePasswordButtonLabel,\r\n\t\t\t\tdeleteAccountLabel: this.texts.deleteAccountButtonLabel,\r\n\t\t\t\tlogoutLabel: this.texts.logOutButtonLabel,\r\n\t\t\t\t// remaining labels\r\n\t\t\t\t...this.texts\r\n\t\t\t},\r\n\t\t\terrorMessages: this.errorMessages,\r\n\t\t\tonEditNameClick: () => {\r\n\t\t\t\tthis.setupSteps();\r\n\t\t\t\tthis.animate(false, \"editName\");\r\n\t\t\t},\r\n\t\t\tonChangePasswordClick: () => {\r\n\t\t\t\tthis.setupSteps();\r\n\t\t\t\tthis.animate(false, \"changePassword\");\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.animate();\r\n\t};\r\n\r\n\teditNameScreen = () => {\r\n\t\tnew EditName({\r\n\t\t\tanimate: this.animate,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tupdateNamesApiUrl: this.apiEndPoints.updateNamesApiUrl,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: this.texts,\r\n\t\t\terrorMessages: this.errorMessages,\r\n\t\t\tonNameUpdate: () => {\r\n\t\t\t\tthis.initMembership(this.language, () => {\r\n\t\t\t\t\tthis.dom.name =\r\n\t\t\t\t\t\tthis.dom.membershipContent.querySelector(\".lastName\");\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tnew Snackbar({\r\n\t\t\t\t\t\t\telement: this.dom.name,\r\n\t\t\t\t\t\t\ttext: this.texts.profileUpdatedConfirmation,\r\n\t\t\t\t\t\t\tautoClose: true,\r\n\t\t\t\t\t\t\tconfirm: false,\r\n\t\t\t\t\t\t\tposition: isRtl ? \"left\" : \"right\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonCancelClick: () => {\r\n\t\t\t\tthis.animate(false, \"profile\");\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.animate();\r\n\t};\r\n\r\n\tchangePasswordScreen = () => {\r\n\t\tnew ChangePassword({\r\n\t\t\tanimate: this.animate,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tchangePasswordApiUrl: this.apiEndPoints.changePasswordApiUrl,\r\n\t\t\tuser: this.user,\r\n\t\t\ttexts: this.texts,\r\n\t\t\terrorMessages: this.errorMessages,\r\n\t\t\tonPasswordUpdate: () => {\r\n\t\t\t\tthis.initMembership(this.language, () => {\r\n\t\t\t\t\tthis.dom.password =\r\n\t\t\t\t\t\tthis.dom.membershipContent.querySelector(\r\n\t\t\t\t\t\t\t\".change-password-button\"\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tnew Snackbar({\r\n\t\t\t\t\t\t\telement: this.dom.password,\r\n\t\t\t\t\t\t\ttext: this.texts.changePasswordConfirmation,\r\n\t\t\t\t\t\t\tautoClose: true,\r\n\t\t\t\t\t\t\tconfirm: false,\r\n\t\t\t\t\t\t\tposition: isRtl ? \"left\" : \"right\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tonCancelClick: () => {\r\n\t\t\t\tthis.animate(false, \"profile\");\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.animate();\r\n\t};\r\n\r\n\tdependentScreen = () => {\r\n\t\tnew Dependent({\r\n\t\t\tcontainer: this.dom.container,\r\n\t\t\tmembershipContent: this.dom.membershipContent,\r\n\t\t\tuser: this.user,\r\n\t\t\tanimate: this.animate,\r\n\t\t\tapiEndPoints: this.apiEndPoints,\r\n\t\t\ttexts: this.texts,\r\n\t\t\terrorMessages: this.errorMessages\r\n\t\t});\r\n\t};\r\n\r\n\tsetupSteps = () => {\r\n\t\tthis.steps = {\r\n\t\t\t1: this.splashScreen,\r\n\t\t\t2: this.selectLanguageScreen,\r\n\t\t\t3: this.enterNameScreen,\r\n\t\t\t4: this.enterEmailScreen,\r\n\t\t\t5: this.passwordScreen,\r\n\t\t\t6: this.confirmationScreen,\r\n\t\t\t7: this.selectTopicsScreen,\r\n\t\t\tlogin: this.loginScreen,\r\n\t\t\tforgotPassword: this.forgotPasswordScreen,\r\n\t\t\tforgotPasswordConfirmation: this.forgotPasswordConfirmationScreen,\r\n\t\t\tresetPassword: this.resetPasswordScreen,\r\n\t\t\tprofile: this.profileScreen,\r\n\t\t\tchangePassword: this.changePasswordScreen,\r\n\t\t\teditName: this.editNameScreen,\r\n\t\t\tdependent: this.dependentScreen\r\n\t\t};\r\n\t};\r\n\r\n\tsetCloseMembershipCookie = () => {\r\n\t\tsetCookie(closeMembershipCookie, closeMembershipCookieValue, {\r\n\t\t\tdays: 30\r\n\t\t});\r\n\t};\r\n\r\n\tkill = () => {\r\n\t\tforEach(customMembershipTriggers, trigger =>\r\n\t\t\tthis.dom.container.setAttribute(trigger, false)\r\n\t\t);\r\n\r\n\t\tthis.dom.container.style.display = \"none\";\r\n\t\tdisableScrollLock();\r\n\t\tthis.setCloseMembershipCookie();\r\n\t\tremoveAllEvents(this.dom.closeButton);\r\n\t\tremoveAllEvents(this.dom.continueButton);\r\n\t\tthis.removePaginationListener();\r\n\r\n\t\tif (this.initialLanguage !== this.language) {\r\n\t\t\twindow.location = window.location.origin + window.location.pathname;\r\n\t\t}\r\n\t};\r\n\r\n\taddCloseEvent = () => {\r\n\t\tthis.dom.closeButton = this.dom.membershipContent.querySelector(\".membership-close\");\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\".membership-footer .cta\");\r\n\r\n\t\taddEvent(this.dom.closeButton, \"click\", this.kill);\r\n\t};\r\n\r\n\tremoveCloseEvent = () => {\r\n\t\tremoveAllEvents(this.dom.closeButton);\r\n\t};\r\n\r\n\tremovePaginationListener = () => {\r\n\t\tconst paginationItems = this.dom.membershipContent.querySelectorAll(\".signup-pagination__item\");\r\n\t\tremoveAllEvents(paginationItems);\r\n\t};\r\n\r\n\taddPaginationListener = () => {\r\n\t\tconst paginationItems = this.dom.membershipContent.querySelectorAll(\".signup-pagination__item\");\r\n\r\n\t\tif (paginationItems.length) {\r\n\t\t\tconst currentPaginationItemId = parseInt(this.dom.membershipContent.querySelector(\".signup-pagination__item--current\").id);\r\n\r\n\t\t\taddEvent(paginationItems, \"click\", e => {\r\n\t\t\t\tconst paginationitemId = parseInt(e.target.id);\r\n\t\t\t\tif (\r\n\t\t\t\t\tcurrentPaginationItemId !== paginationitemId &&\r\n\t\t\t\t\tpaginationitemId > currentPaginationItemId\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tpaginationitemId === 2 &&\r\n\t\t\t\t\t\tthis.user.firstName &&\r\n\t\t\t\t\t\tthis.user.lastName\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// Email screen - only go to email screen if name is entered\r\n\t\t\t\t\t\tthis.navigate();\r\n\t\t\t\t\t} else if (paginationitemId === 3 && this.user.email) {\r\n\t\t\t\t\t\t// password screen - only go to password screen is email is filled out\r\n\t\t\t\t\t\tthis.navigate();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tcurrentPaginationItemId !== paginationitemId &&\r\n\t\t\t\t\tpaginationitemId < currentPaginationItemId\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.navigate(true, false);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\taddEventListeners = () => {\r\n\t\tthis.addCloseEvent();\r\n\t\tthis.addPaginationListener();\r\n\t};\r\n\r\n\tanimate = (transitionIn = true, screenName) => {\r\n\t\tthis.dom.continueButton = this.dom.membershipContent.querySelector(\".membership-footer .cta\");\r\n\r\n\t\tthis.removePaginationListener();\r\n\t\tthis.removeCloseEvent();\r\n\r\n\t\tconst animateTranslate = this.dom.membershipContent.querySelectorAll(\".animate-translate\");\r\n\t\tconst animateFade = transitionIn\r\n\t\t\t? this.dom.membershipContent.querySelectorAll(\".animate-fade\")\r\n\t\t\t: this.dom.membershipContent.querySelectorAll(\".animate-fade:not(.animate-fade--once)\");\r\n\t\tconst animateScale = transitionIn\r\n\t\t\t? this.dom.membershipContent.querySelectorAll(\".animate-scale:not(.animate-scale--out)\")\r\n\t\t\t: this.dom.membershipContent.querySelectorAll(\".animate-scale:not(.animate-scale--once)\");\r\n\r\n\t\tif (this.dom.continueButton) {\r\n\t\t\tthis.dom.continueButton.disabled = true;\r\n\t\t}\r\n\r\n\t\tif (transitionIn) {\r\n\t\t\tthis.addEventListeners();\r\n\t\t}\r\n\r\n\t\tconst firstInput = this.dom.membershipContent.querySelector(\"input\");\r\n\r\n\t\tif (firstInput) {\r\n\t\t\tfirstInput.focus();\r\n\t\t}\r\n\r\n\t\tconst translateForwards = isRtl ? [-100, 0] : [100, 0];\r\n\t\tconst translateBackwards = isRtl ? [0, 100] : [0, -100];\r\n\r\n\t\tconst tl = anime.timeline({\r\n\t\t\teasing: this.easing,\r\n\t\t\tduration: transitionIn ? this.durationIn : this.durationOut,\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tif (this.dom.continueButton) {\r\n\t\t\t\t\tthis.dom.continueButton.disabled = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!transitionIn) {\r\n\t\t\t\t\temptyElement(this.dom.membershipContent);\r\n\t\t\t\t\tif (screenName) {\r\n\t\t\t\t\t\tthis.steps[screenName]();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.steps[this.currentStep]();\r\n\t\t\t\t\t\tthis.animate();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (animateTranslate.length) {\r\n\t\t\ttl.add(\r\n\t\t\t\t{\r\n\t\t\t\t\ttargets: animateTranslate,\r\n\t\t\t\t\ttranslateX: transitionIn\r\n\t\t\t\t\t\t? translateForwards\r\n\t\t\t\t\t\t: translateBackwards,\r\n\t\t\t\t\topacity: transitionIn ? [0, 1] : [1, 0],\r\n\t\t\t\t\tdelay: anime.stagger(100)\r\n\t\t\t\t},\r\n\t\t\t\t0\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (animateFade.length) {\r\n\t\t\ttl.add(\r\n\t\t\t\t{\r\n\t\t\t\t\ttargets: animateFade,\r\n\t\t\t\t\topacity: transitionIn ? [0, 1] : [1, 0],\r\n\t\t\t\t\tdelay: anime.stagger(100)\r\n\t\t\t\t},\r\n\t\t\t\t0\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (animateScale.length) {\r\n\t\t\ttl.add(\r\n\t\t\t\t{\r\n\t\t\t\t\ttargets: animateScale,\r\n\t\t\t\t\tscale: transitionIn ? [0.95, 1] : [1, 0.95],\r\n\t\t\t\t\topacity: transitionIn ? [0, 1] : [1, 0]\r\n\t\t\t\t},\r\n\t\t\t\t0\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tmovePagination = (directionForward = true) => {\r\n\t\tconst currentItem = this.dom.membershipContent.querySelector(\r\n\t\t\t\".signup-pagination__item--current\"\r\n\t\t);\r\n\t\tcurrentItem.classList.add(directionForward ? \"forwards\" : \"backwards\");\r\n\t};\r\n\r\n\tnavigate = (movePagination, directionForward = true) => {\r\n\t\tthis.currentStep = directionForward\r\n\t\t\t? this.currentStep + 1\r\n\t\t\t: this.currentStep - 1;\r\n\r\n\t\tif (movePagination) {\r\n\t\t\tthis.movePagination(directionForward);\r\n\t\t}\r\n\r\n\t\tthis.animate(false);\r\n\t};\r\n\r\n\tgetMembershipStart(language) {\r\n\t\treturn new Promise(resolve => {\r\n\t\t\tfetcher(`/${language + MEMBERSHIP_SIGNUP_START}`).then(\r\n\t\t\t\t({ data }) => {\r\n\t\t\t\t\tthis.texts = data.texts;\r\n\t\t\t\t\tthis.languages = data.languages;\r\n\t\t\t\t\tthis.apiEndPoints = data.api;\r\n\t\t\t\t\tthis.errorMessages = data.errorMessages;\r\n\t\t\t\t\tthis.setupSteps();\r\n\r\n\t\t\t\t\tif (!this.languages[0].isSelected) {\r\n\t\t\t\t\t\tthis.languages.reverse();\r\n\t\t\t\t\t\tthis.user.languageCode = this.languages[1];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.user.languageCode = this.languages[0];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tresolve();\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tgetLoginStart(language) {\r\n\t\treturn new Promise(resolve => {\r\n\t\t\tfetcher(`/${language + MEMBERSHIP_LOGIN}`).then(({ data }) => {\r\n\t\t\t\tthis.loginTexts = data.texts;\r\n\t\t\t\tthis.loginApiEndPoints = data.api;\r\n\t\t\t\tthis.loginErrorMessages = data.errorMessages;\r\n\r\n\t\t\t\tresolve();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tloadVideo() {\r\n\t\tconst lazyLoadClass =\r\n\t\t\tcurrentWindowWidth > currentWindowHeight\r\n\t\t\t\t? \".lazy-video-landscape\"\r\n\t\t\t\t: \".lazy-video-portrait\";\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tconst lazyloadConfig = {\r\n\t\t\t\telements_selector: lazyLoadClass,\r\n\t\t\t\tclass_loading: \"lz-loading\",\r\n\t\t\t\tclass_loaded: \"lz-loaded\",\r\n\t\t\t\tcallback_loaded: el => {\r\n\t\t\t\t\tresolve(el);\r\n\t\t\t\t\tthis.videoLoaded = true;\r\n\t\t\t\t\tthis.lazyloadInstance.destroy();\r\n\t\t\t\t},\r\n\t\t\t\tcallback_error: el => {\r\n\t\t\t\t\treject(el);\r\n\t\t\t\t\tthis.lazyloadInstance.destroy();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tthis.lazyloadInstance = new LazyLoad(lazyloadConfig);\r\n\t\t\tif (this.lazyloadInstance.toLoadCount === 0) {\r\n\t\t\t\tresolve();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinitMembership = (language, callback = null) => {\r\n\t\tenableScrollLock();\r\n\r\n\t\tswitch (this.startPage) {\r\n\t\t\tcase membershipStartPages.LOGIN:\r\n\t\t\t\tthis.getLoginStart(language).then(() => {\r\n\t\t\t\t\tthis.setupSteps();\r\n\t\t\t\t\tthis.animate(false, \"login\");\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase membershipStartPages.PROFILE:\r\n\t\t\t\tfetcher(`/${language + MEMBERSHIP_PROFILE_START}`).then(\r\n\t\t\t\t\t({ data }) => {\r\n\t\t\t\t\t\tthis.texts = data.texts;\r\n\t\t\t\t\t\tthis.apiEndPoints = data.api;\r\n\t\t\t\t\t\tthis.user = data.profileData;\r\n\t\t\t\t\t\tthis.errorMessages = data.errorMessages;\r\n\t\t\t\t\t\tthis.subscriptions = data.subscriptions;\r\n\t\t\t\t\t\tthis.dependents = data.dependents;\r\n\r\n\t\t\t\t\t\tconst splashDurationElem =\r\n\t\t\t\t\t\t\tdocument.querySelector(\".splash-duration\");\r\n\t\t\t\t\t\tsplashDurationElem.style.opacity = 1;\r\n\r\n\t\t\t\t\t\tthis.profileScreen();\r\n\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.animate();\r\n\r\n\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, 50);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase membershipStartPages.DEPENDENT:\r\n\t\t\t\tfetcher(`/${language + MEMBERSHIP_DEPENDENT_START}`).then(\r\n\t\t\t\t\t({ data }) => {\r\n\t\t\t\t\t\tthis.texts = data.texts;\r\n\t\t\t\t\t\tthis.apiEndPoints = data.api;\r\n\t\t\t\t\t\tthis.user = data.profileData;\r\n\t\t\t\t\t\tthis.errorMessages = data.errorMessages;\r\n\r\n\t\t\t\t\t\tconst splashDurationElem =\r\n\t\t\t\t\t\t\tdocument.querySelector(\".splash-duration\");\r\n\t\t\t\t\t\tsplashDurationElem.style.opacity = 1;\r\n\r\n\t\t\t\t\t\tthis.dependentScreen();\r\n\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.animate();\r\n\t\t\t\t\t\t}, 50);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase membershipStartPages.SELECT_TOPICS:\r\n\t\t\t\tfetcher(`/${language + MEMBERSHIP_SELECTTOPICS_START}`).then(\r\n\t\t\t\t\t({ data }) => {\r\n\t\t\t\t\t\tthis.texts = data.texts;\r\n\t\t\t\t\t\tthis.apiEndPoints = data.api;\r\n\t\t\t\t\t\tthis.topics = data.topics;\r\n\r\n\t\t\t\t\t\tconst splashDurationElem =\r\n\t\t\t\t\t\t\tdocument.querySelector(\".splash-duration\");\r\n\t\t\t\t\t\tsplashDurationElem.style.opacity = 1;\r\n\r\n\t\t\t\t\t\tthis.selectTopicsScreen();\r\n\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.animate();\r\n\t\t\t\t\t\t}, 50);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase membershipStartPages.RESET_PASSWORD:\r\n\t\t\t\tfetcher(`/${language + MEMBERSHIP_PASSWORD_START}`).then(\r\n\t\t\t\t\t({ data }) => {\r\n\t\t\t\t\t\tthis.texts = data.resetPasswordFormLabels;\r\n\t\t\t\t\t\tthis.apiEndPoints = data.api;\r\n\t\t\t\t\t\tthis.errorMessages = data.errorMessages;\r\n\r\n\t\t\t\t\t\tconst splashDurationElem =\r\n\t\t\t\t\t\t\tdocument.querySelector(\".splash-duration\");\r\n\t\t\t\t\t\tsplashDurationElem.style.opacity = 1;\r\n\r\n\t\t\t\t\t\tthis.resetPasswordScreen();\r\n\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.animate();\r\n\t\t\t\t\t\t}, 50);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase membershipStartPages.SIGNUP:\r\n\t\t\tdefault:\r\n\t\t\t\tthis.getMembershipStart(language).then(() => {\r\n\t\t\t\t\tconst splashDurationElem =\r\n\t\t\t\t\t\tdocument.querySelector(\".splash-duration\");\r\n\r\n\t\t\t\t\tif (this.currentStep === 1) {\r\n\t\t\t\t\t\tsplashDurationElem.style.height = \"0%\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsplashDurationElem.style.opacity = 1;\r\n\r\n\t\t\t\t\tthis.steps[this.currentStep]();\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.animate();\r\n\t\t\t\t\t}, 50);\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\tthis.dom.container.style.display = \"block\";\r\n\t\tthis.loadVideo().then(() => this.initMembership(this.language));\r\n\t}\r\n}\r\n","import { onReady } from \"~/foundation/Events/onReady\";\r\nimport {\r\n\tMembership,\r\n\tmembershipStartPages\r\n} from \"../membership\";\r\nimport { addEvent, delegateEvent } from \"~/foundation/Events/events\";\r\n\r\nexport class SignupRibbon {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {\r\n\t\tcontainer: undefined\r\n\t};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from.\r\n */\r\n\tconstructor(domReference) {\r\n\t\tthis.dom.container = domReference;\r\n\r\n\t\t// If the 'data-module' attribute is added directly to a link or a button\r\n\t\tif (\r\n\t\t\tthis.dom.container.tagName === \"A\" ||\r\n this.dom.container.tagName === \"BUTTON\"\r\n\t\t) {\r\n\t\t\t// signupButton is now the domReference\r\n\t\t\tthis.dom.signupButton = this.dom.container;\r\n\r\n\t\t\t// Check if it is a link and then remove the href to prevent following the link\r\n\t\t\tif (this.dom.signupButton.hasAttribute(\"href\")) {\r\n\t\t\t\tthis.dom.signupButton.href = \"\";\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.dom.signupButton = this.dom.container.querySelector(\r\n\t\t\t\t\".signup-ribbon__signup button\"\r\n\t\t\t);\r\n\t\t\tthis.dom.loginButton = \".signup-ribbon__link\";\r\n\t\t}\r\n\r\n\t\tonReady(() => this.initialize());\r\n\t}\r\n\r\n\tsignUp = () => {\r\n\t\tconst membershipElement = document.querySelector(\r\n\t\t\t\"[data-module='membership']\"\r\n\t\t);\r\n\t\tif (membershipElement) {\r\n\t\t\tnew Membership(membershipElement, membershipStartPages.SIGNUP);\r\n\t\t}\r\n\t};\r\n\r\n\tlogIn = () => {\r\n\t\tconst membershipElement = document.querySelector(\r\n\t\t\t\"[data-module='membership']\"\r\n\t\t);\r\n\t\tif (membershipElement) {\r\n\t\t\tnew Membership(membershipElement, membershipStartPages.LOGIN);\r\n\t\t}\r\n\t};\r\n\r\n\tinitialize() {\r\n\t\taddEvent(this.dom.signupButton, \"click\", e => {\r\n\t\t\te.preventDefault();\r\n\t\t\tif (document.querySelector(\".is-app\")) {\r\n\t\t\t\twindow.location = \"aramcolife://opensignup\";\r\n\t\t\t} else {\r\n\t\t\t\tthis.signUp();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdelegateEvent(this.dom.loginButton, \"click\", () => {\r\n\t\t\tif (document.querySelector(\".is-app\")) {\r\n\t\t\t\twindow.location = \"aramcolife://openlogin\";\r\n\t\t\t} else {\r\n\t\t\t\tthis.logIn();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","/*global OneTrust */\r\nimport { onReady } from \"~/foundation/Events/onReady\";\r\nimport { addEvent } from \"~/foundation/Events/events\";\r\n\r\nexport class OnetrustToggle {\r\n\t/**\r\n * Internal placeholder for cached DOM-objects.\r\n *\r\n * @type {object}\r\n * @ignore\r\n */\r\n\tdom = {\r\n\t\tcontainer: undefined\r\n\t};\r\n\r\n\t/**\r\n *\r\n * @param {Element} domReference - The element to work from.\r\n */\r\n\tconstructor(domReference) {\r\n\t\tthis.dom.container = domReference;\r\n\t\tthis.dom.trigger =\r\n this.dom.container.querySelector(\"button\") || this.dom.container;\r\n\r\n\t\tonReady(() => this.initialize());\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\taddEvent(this.dom.trigger, \"click\", () => {\r\n\t\t\tif (typeof OneTrust !== \"undefined\") {\r\n\t\t\t\tOneTrust.ToggleInfoDisplay();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","export const buildTextInput = (field, classes) => {\r\n\tconst errorMessageTargetClass = `${field.key}`;\r\n\r\n\treturn `\r\n ${field.label ? `

${field.label}

` : \"\"}\r\n
\r\n \r\n \r\n
\r\n
\r\n `;\r\n};\r\n","import { buildTextInput } from \"../inputs/buildTextInput\";\r\n\r\nconst stepThreeTemplate = ({ classes, model, sections, stepText }) => {\r\n\tconst errorMessageStepThree = `${classes.rootClass}__error-message`;\r\n\r\n\treturn `\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

${stepText}

\r\n\t\t\t\t

${sections.title}

\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t${sections.fields.map(field => `${buildTextInput(field, classes)}`).join(\"\")}\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n `;\r\n};\r\n\r\nexport default stepThreeTemplate;\r\n","const stepFourTemplate = ({ classes, model, sections, stepText }) => {\r\n\treturn `\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

${stepText}

\r\n\t\t\t\t\t\t\t

${sections.title}

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n `;\r\n};\r\n\r\nexport default stepFourTemplate;\r\n","const createMarkup = (option, field, errorMessageTargetClass) => {\r\n\tconst label = option.label ? option.label : field.label;\r\n\tconst value = option.value ? option.value : field.value;\r\n\r\n\treturn `\r\n \r\n \r\n `;\r\n};\r\n\r\nexport const buildTextareaInput = (field, errorMessageTargetClass) => {\r\n\treturn field.options\r\n\t\t? field.options\r\n\t\t\t.map(option =>\r\n\t\t\t\tcreateMarkup(option, field, errorMessageTargetClass)\r\n\t\t\t)\r\n\t\t\t.join(\"\")\r\n\t\t: createMarkup({}, field, errorMessageTargetClass);\r\n};\r\n","import { buildTextareaInput } from \"./buildTextareaInput\";\r\nimport { delegateEvent } from \"~/foundation/Events/events\";\r\nimport { toggleClass } from \"~/foundation/Dom/classList\";\r\n\r\nconst createMarkup = (option, field, errorMessageTargetClass) => {\r\n\tif (option.textArea) {\r\n\t\tbindTextareaEvents(errorMessageTargetClass);\r\n\t}\r\n\r\n\treturn `\r\n
  • \r\n \r\n
  • \r\n ${\r\n\toption.textArea\r\n\t\t? `\r\n
  • \r\n ${buildTextareaInput(\r\n\t\toption.textArea,\r\n\t\terrorMessageTargetClass\r\n\t)}\r\n
  • \r\n `\r\n\t\t: \"\"\r\n}\r\n `;\r\n};\r\n\r\nconst bindTextareaEvents = errorMessageTargetClass => {\r\n\t// eslint-disable-next-line no-unused-vars\r\n\tdelegateEvent(\".greeting__radio input\", \"change\", e => {\r\n\t\tconst currentTextAreaContainer = document.querySelector(\r\n\t\t\t\".greeting__step:not([hidden]) .greeting__textarea-group--radio\"\r\n\t\t);\r\n\t\tconst currentTextarea =\r\n currentTextAreaContainer.querySelector(\"textarea\");\r\n\r\n\t\t//set showTextarea boolean based on trigger being checked\r\n\t\tconst showTextarea = document.querySelector(\r\n\t\t\t\".greeting__step:not([hidden]) [data-textarea-trigger]\"\r\n\t\t).checked;\r\n\r\n\t\t//toggle visibility of textarea\r\n\t\ttoggleClass(currentTextAreaContainer, \"open-field\", showTextarea);\r\n\r\n\t\t//handle validation and removal of errormessage manually\r\n\t\ttoggleClass(\r\n\t\t\tcurrentTextarea,\r\n\t\t\t\"form-validate__field--invalid\",\r\n\t\t\tshowTextarea\r\n\t\t);\r\n\r\n\t\tif (!showTextarea) {\r\n\t\t\t// Remove ARIA role from the element\r\n\t\t\tcurrentTextarea.removeAttribute(\"aria-describedby\");\r\n\t\t\t// Check if an error message is in the DOM\r\n\t\t\tconst errorMessage = document.querySelector(\r\n\t\t\t\t`.${errorMessageTargetClass}`\r\n\t\t\t);\r\n\t\t\tif (!errorMessage) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// If so, empty it\r\n\t\t\terrorMessage.innerHTML = \"\";\r\n\r\n\t\t\tcurrentTextarea.removeAttribute(\"required\");\r\n\t\t} else {\r\n\t\t\t//set textarea required if visible\r\n\t\t\tconst attr = document.createAttribute(\"required\");\r\n\t\t\tcurrentTextarea.setAttributeNode(attr);\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const buildRadioInput = (field, errorMessageTargetClass) => {\r\n\treturn field.options\r\n\t\t.map(option => createMarkup(option, field, errorMessageTargetClass))\r\n\t\t.join(\"\");\r\n};\r\n","import { buildRadioInput } from \"../inputs/buildRadioInput\";\r\n\r\nconst stepTwoTemplate = ({ classes, sections, stepText }) => {\r\n\tconst errorMessageTarget = `${classes.rootClass}__error-message-step-2`;\r\n\r\n\treturn `\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    ${stepText}

    \r\n\t\t\t\t\t\t\t

    ${sections.title}

    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t${buildRadioInput(sections.fields[0], errorMessageTarget)}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n `;\r\n};\r\n\r\nexport default stepTwoTemplate;\r\n","import { createElement } from \"~/foundation/Dom/createElement\";\r\n\r\nconst createMarkup = (\r\n\toption,\r\n\tfield,\r\n\ttexts,\r\n\tclasses,\r\n\terrorMessageTargetClass,\r\n\tuseSvgBackground,\r\n\talignment,\r\n\tbottomSvgIcon,\r\n\ttextBackgroundColorHex\r\n) => {\r\n\r\n\tlet backgroundHex = textBackgroundColorHex;\r\n\r\n\tif (useSvgBackground && option.iconSvgContent) {\r\n\t\tconst dummyElement = createElement(\"div\", {\r\n\t\t\thtml: option.iconSvgContent\r\n\t\t});\r\n\t\tconst fillRect = dummyElement.querySelector(\"rect\");\r\n\t\tlet fillValue = undefined;\r\n\r\n\t\tif (fillRect) {\r\n\t\t\tfillValue = fillRect.getAttribute(\"fill\") || fillRect.style.fill;\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\tfillValue &&\r\n (fillValue.indexOf(\"#\") !== -1 || fillValue.indexOf(\"rgb\") !== -1)\r\n\t\t) {\r\n\t\t\tbackgroundHex = fillValue;\r\n\t\t}\r\n\t}\r\n\r\n\tconst imageTagElement = `
    `;\r\n\r\n\treturn `\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n

    \r\n

    \r\n
    \r\n ${(bottomSvgIcon && bottomSvgIcon !== \"\") ?\r\n\t\t`
    \r\n ${bottomSvgIcon}\r\n
    `\r\n\t\t: \"\"\r\n}\r\n
    \r\n
    \r\n `;\r\n};\r\n\r\nexport const buildRadioIconInput = (\r\n\tfield,\r\n\ttexts,\r\n\tclasses,\r\n\terrorMessageTargetClass,\r\n\tuseSvgBackground = false,\r\n\ticonRadioButtonOptions\r\n) => {\r\n\treturn field.options\r\n\t\t.map(option => {\r\n\t\t\tconst iconOptions = iconRadioButtonOptions?.[option.optionId];\r\n\r\n\t\t\treturn createMarkup(\r\n\t\t\t\toption,\r\n\t\t\t\tfield,\r\n\t\t\t\ttexts,\r\n\t\t\t\tclasses,\r\n\t\t\t\terrorMessageTargetClass,\r\n\t\t\t\tuseSvgBackground,\r\n\t\t\t\ticonOptions?.alignment,\r\n\t\t\t\ticonOptions?.bottomIconSvg,\r\n\t\t\t\ticonOptions?.textBackgroundColorHex\r\n\t\t\t);\r\n\t\t})\r\n\t\t.join(\"\");\r\n};\r\n","import { buildRadioIconInput } from \"../inputs/buildRadioIconInput\";\r\n\r\nconst stepOneTemplate = ({ classes, sections, texts, iconRadioButtonOptions, stepText }) => {\r\n\tconst errorMessageTarget = `${classes.rootClass}__error-message`;\r\n\r\n\treturn `\r\n
    \r\n\t\t\t\t \t\t

    ${stepText}

    \r\n

    ${sections.title}

    \r\n
    \r\n
    \r\n ${buildRadioIconInput(sections.fields[0], texts, classes, errorMessageTarget, true, iconRadioButtonOptions)}\r\n

    \r\n
    \r\n `;\r\n};\r\n\r\nexport default stepOneTemplate;\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/*\r\n * @example Scroll window to 100px down on the Y-axis (using default duration of 1000ms)\r\n * import { scrollTo } from './utils/dom/scrollTo';\r\n * scrollTo(100);\r\n *\r\n *\r\n * @example Your editor may warn you about ignoring the promise returned from `scrollTo()`. If you want to avoid this, use the `void` operator:\r\n * void scrollTo(100);\r\n *\r\n *\r\n * @example Scroll `window` to 1024px on the X-axis and 100px on the Y-axis (500ms duration)\r\n * void scrollTo([1024, 100], 500);\r\n *\r\n *\r\n * @example Scroll `#test` to 500px on the X- and Y-axis (1500ms duration), and output a string to the console when done\r\n * const scrollElement = document.getElementById(\"test\");\r\n * scrollTo([500, 500], 1500, scrollElement).then(() => window.console.log(\"Scroll done\"));\r\n * // or:\r\n * scrollTo([500, 500], 1500, \"test\").then(() => window.console.log(\"Scroll done\"));\r\n *\r\n *\r\n * @example Scroll `window` to reveal `#target` with -150 pixel offset on Y-axis\r\n * const targetElement = document.getElementById(\"target\");\r\n * void scrollTo(targetElement, 1000, window, -150);\r\n * // or:\r\n * void scrollTo(\"target\", 1000, window, -150);\r\n *\r\n *\r\n * @example Scroll `window` to reveal `#target` with 100 pixel offset on X-axis and -200 pixel offset on Y-axis\r\n * const targetElement = document.getElementById(\"target\");\r\n * void scrollTo(targetElement, 2000, window, [100, -200]);\r\n * // or:\r\n * void scrollTo(\"target\", 2000, window, [100, -200]);\r\n */\r\n\r\nimport { getElementPosition, getElementScroll } from \"./elementProperties\";\r\nimport { addEventOnce, removeEvent } from \"~/foundation/Events/events\";\r\n\r\nconst defaultDuration = 1000;\r\n\r\nfunction doScroll(position: [x: number, y: number], element: HTMLElement, elementIsWindow: boolean) {\r\n\tconst [x, y] = position;\r\n\tif (elementIsWindow) {\r\n\t\telement.scrollTo(x, y);\r\n\t} else {\r\n\t\telement.scrollLeft = x\r\n\t\telement.scrollTop = y;\r\n\t}\r\n}\r\n\r\n/**\r\n * Smooth scroll effect\r\n *\r\n * @param {Number|Number[]|HTMLElement|String} target - Where to scroll to.\r\n * If a number is given, it will be interpreted as pixels on the Y-axis.\r\n * If an array is given, it will be interpreted as `[x, y]`. Must be array of numbers.\r\n * If an HTML element is given, that will be the target instead.\r\n * If a string is given, an element with that string as its ID will be found and used.\r\n * @param {Number|Boolean|Null} [duration=1000] - Duration of scroll effect in ms. Defaults to `1000`.\r\n * @param {HTMLElement|String|Window} [targetElement=window] - Element to scroll inside. Defaults to `window`.\r\n * @param {Number|Number[]} [offset=0] - Offset value in pixels for Y-axis, or as an array (`[x, y]`) that offsets both X and Y-axis. Defaults to `0`.\r\n * @param {Boolean} [interruptible=true] - Whether the scrolling is interruptible by mousewheel scrolling. Defaults to `true`.\r\n * @param {Boolean} [onlyVertical=false] - Whether the scrolling should be only vertical - usable when target is HTMLElement, because some horizontal scrolling might occur\r\n * @returns {Promise} A promise that resolves when the scrolling is done.\r\n */\r\nexport function scrollTo(\r\n\ttarget: number | [x: number, y: number] | HTMLElement | string,\r\n\tduration = defaultDuration,\r\n\ttargetElement = window,\r\n\toffset = 0,\r\n\tinterruptible = true,\r\n\tonlyVertical = false\r\n) {\r\n\t// Set duration to default if it isn't defined as a number\r\n\tconst useDuration = typeof duration !== \"number\" ? defaultDuration : duration;\r\n\r\n\t// If target element is a string, find the element by its ID\r\n\tconst useTargetElement = typeof targetElement === \"string\"\r\n\t\t? document.getElementById(targetElement)\r\n\t\t: targetElement;\r\n\r\n\t// Throw error if target element wasn't found\r\n\tif (!useTargetElement) {\r\n\t\t// eslint-disable-next-line no-throw-literal\r\n\t\tthrow \"getElementPosition did not find an element.\";\r\n\t}\r\n\r\n\tconst elementIsWindow = useTargetElement === window;\r\n\tlet scrollCount = 0;\r\n\tlet oldTimestamp = Date.now();\r\n\r\n\t// Get current scroll position\r\n\tconst detectedScrollPosition = getElementScroll(useTargetElement);\r\n\tconst scrollPos = [detectedScrollPosition!.left, detectedScrollPosition!.top];\r\n\r\n\tlet useTarget: any;\r\n\r\n\t// If target is a number and not an array, make an array for scrolling on the Y-axis\r\n\tif (typeof target === \"number\") {\r\n\t\tuseTarget = [scrollPos[0], target];\r\n\t} else if (!Array.isArray(target)) { // If target is not an array by now we'll try to find the position of an element\r\n\t\tconst elementPosition = getElementPosition(target, useTargetElement);\r\n\r\n\t\tuseTarget = [\r\n\t\t\tonlyVertical ? 0 : elementPosition.left,\r\n\t\t\telementPosition.top\r\n\t\t];\r\n\t} else { // Target is already an array - just use it as it is\r\n\t\tuseTarget = target;\r\n\t}\r\n\r\n\t// If no X or Y position is stated, keep the current position\r\n\tif (typeof useTarget[0] !== \"number\") {\r\n\t\tuseTarget[0] = scrollPos[0];\r\n\t}\r\n\tif (typeof useTarget[1] !== \"number\") {\r\n\t\tuseTarget[1] = scrollPos[1];\r\n\t}\r\n\r\n\t// Modify the target scroll position if 'offset' parameter is given and is of type array or number\r\n\tif (Array.isArray(offset)) {\r\n\t\t// If array, add offset to X and Y-axis\r\n\t\tuseTarget[0] += offset[0];\r\n\t\tuseTarget[1] += offset[1];\r\n\t} else if (typeof offset === \"number\") {\r\n\t\t// If number, only offset the Y-axis\r\n\t\tuseTarget[1] += offset;\r\n\t}\r\n\r\n\t// Calculate\r\n\tconst cosParameters = [\r\n\t\t(scrollPos[0] - useTarget[0]) / 2,\r\n\t\t(scrollPos[1] - useTarget[1]) / 2\r\n\t];\r\n\r\n\treturn new Promise(resolve => {\r\n\t\t// If duration is set to 0, just jump to the stated target/position\r\n\t\tif (useDuration <= 0) {\r\n\t\t\tdoScroll(useTarget, useTargetElement as HTMLElement, elementIsWindow);\r\n\t\t\tresolve();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet scrollDone = false;\r\n\t\tlet interruptScrollFlag = false;\r\n\r\n\t\t// If interruptible, add an eventlistener once on mousewheel scroll that calls 'interruptScroll'\r\n\t\tif (interruptible) {\r\n\t\t\taddEventOnce(useTargetElement as HTMLElement, \"wheel\", interruptScroll);\r\n\t\t}\r\n\r\n\t\t// Once this function is called, set 'interruptScrollFlag' to true, which resolves the promise\r\n\t\tfunction interruptScroll() {\r\n\t\t\tinterruptScrollFlag = true;\r\n\t\t}\r\n\r\n\t\tfunction step() {\r\n\t\t\tif (interruptScrollFlag) {\r\n\t\t\t\tresolve();\r\n\t\t\t\t// Since resolving does not prevent the rest of the function from running, we also need to return\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst newTimestamp = Date.now();\r\n\t\t\tconst timeDifference = newTimestamp - oldTimestamp;\r\n\t\t\tlet moveStep;\r\n\r\n\t\t\t// Pi is used to make easing\r\n\t\t\tscrollCount += Math.PI / (useDuration / timeDifference);\r\n\r\n\t\t\t// As soon as we cross over Pi, we're about where we need to be\r\n\t\t\tif (scrollCount >= Math.PI) {\r\n\t\t\t\tmoveStep = useTarget;\r\n\t\t\t\tscrollDone = true;\r\n\t\t\t} else {\r\n\t\t\t\t// Calculate and set scroll position\r\n\t\t\t\tmoveStep = [\r\n\t\t\t\t\tMath.round(\r\n\t\t\t\t\t\tuseTarget[0] +\r\n\t\t\t\t\t\tcosParameters[0] +\r\n\t\t\t\t\t\tcosParameters[0] * Math.cos(scrollCount)\r\n\t\t\t\t\t),\r\n\t\t\t\t\tMath.round(\r\n\t\t\t\t\t\tuseTarget[1] +\r\n\t\t\t\t\t\tcosParameters[1] +\r\n\t\t\t\t\t\tcosParameters[1] * Math.cos(scrollCount)\r\n\t\t\t\t\t)\r\n\t\t\t\t];\r\n\t\t\t}\r\n\r\n\t\t\t// Perform scroll action\r\n\t\t\tdoScroll(moveStep, useTargetElement as HTMLElement, elementIsWindow);\r\n\r\n\t\t\tif (scrollDone) {\r\n\t\t\t\tremoveEvent(useTargetElement as HTMLElement, \"wheel\", interruptScroll);\r\n\t\t\t\tresolve();\r\n\t\t\t} else {\r\n\t\t\t\toldTimestamp = newTimestamp;\r\n\t\t\t\twindow.requestAnimationFrame(step);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twindow.requestAnimationFrame(step);\r\n\t});\r\n}\r\n","/**\r\n * **Check if an email address is valid.**\r\n * Or find email addresses in a string and maybe convert them to `mailto:` links.\r\n *\r\n * @module utils/patternMatching/email\r\n * @since 3.6.0\r\n * @author Lars Munkholm \r\n *\r\n * @example\r\n * import { convertEmailsToLinks } from \"./utils/patternMatching/email\";\r\n *\r\n * element.innerHTML = convertEmailsToLinks(\"Contact me at mail@example.com.\");\r\n * // This will output \"Contact me at mail@example.com.\"\r\n */\r\n\r\n/**\r\n * Get a regular expression for validating email addresses,\r\n * or for finding email addresses in a string (if *global* is set to `true`).\r\n *\r\n * @param {boolean} [global=false] **False:** The regex will match against the entire string. **True:** Search a string for email addresses.\r\n * @returns {RegExp} A regular expression object for validating or finding email addresses.\r\n */\r\nexport function emailRegex(global = false) {\r\n\tconst letters =\r\n \"a-zA-Z\\u0080-\\u00FF\\u0100-\\u017F\\u0180-\\u024F\\u0250-\\u02AF\\u0300-\\u036F\\u0370-\\u03FF\\u0400-\\u04FF\\u0500-\\u052F\\u0530-\\u058F\\u0590-\\u05FF\\u0600-\\u06FF\\u0700-\\u074F\\u0750-\\u077F\\u0780-\\u07BF\\u07C0-\\u07FF\\u0900-\\u097F\\u0980-\\u09FF\\u0A00-\\u0A7F\\u0A80-\\u0AFF\\u0B00-\\u0B7F\\u0B80-\\u0BFF\\u0C00-\\u0C7F\\u0C80-\\u0CFF\\u0D00-\\u0D7F\\u0D80-\\u0DFF\\u0E00-\\u0E7F\\u0E80-\\u0EFF\\u0F00-\\u0FFF\\u1000-\\u109F\\u10A0-\\u10FF\\u1100-\\u11FF\\u1200-\\u137F\\u1380-\\u139F\\u13A0-\\u13FF\\u1400-\\u167F\\u1680-\\u169F\\u16A0-\\u16FF\\u1700-\\u171F\\u1720-\\u173F\\u1740-\\u175F\\u1760-\\u177F\\u1780-\\u17FF\\u1800-\\u18AF\\u1900-\\u194F\\u1950-\\u197F\\u1980-\\u19DF\\u19E0-\\u19FF\\u1A00-\\u1A1F\\u1B00-\\u1B7F\\u1D00-\\u1D7F\\u1D80-\\u1DBF\\u1DC0-\\u1DFF\\u1E00-\\u1EFF\\u1F00-\\u1FFF\\u20D0-\\u20FF\\u2100-\\u214F\\u2C00-\\u2C5F\\u2C60-\\u2C7F\\u2C80-\\u2CFF\\u2D00-\\u2D2F\\u2D30-\\u2D7F\\u2D80-\\u2DDF\\u2F00-\\u2FDF\\u2FF0-\\u2FFF\\u3040-\\u309F\\u30A0-\\u30FF\\u3100-\\u312F\\u3130-\\u318F\\u3190-\\u319F\\u31C0-\\u31EF\\u31F0-\\u31FF\\u3200-\\u32FF\\u3300-\\u33FF\\u3400-\\u4DBF\\u4DC0-\\u4DFF\\u4E00-\\u9FFF\\uA000-\\uA48F\\uA490-\\uA4CF\\uA700-\\uA71F\\uA800-\\uA82F\\uA840-\\uA87F\\uAC00-\\uD7AF\\uF900-\\uFAFF\";\r\n\treturn new RegExp(\r\n\t\t`${\r\n\t\t\tglobal ? \"\" : \"^\"\r\n\t\t}(?!\\\\.)((?!.*\\\\.{2})[0-9${letters}\\\\.!#$%&'*+-/=?^_\\`{|}~\\\\-\\\\d]+)@(?!\\\\.)([0-9${letters}\\\\-\\\\.\\\\d]+)((\\\\.([${letters}]){2,63})+)${\r\n\t\t\tglobal ? \"\" : \"$\"\r\n\t\t}`,\r\n\t\t`${global ? \"g\" : \"\"}i`\r\n\t);\r\n}\r\n\r\n/**\r\n * Check if an email address is valid.\r\n *\r\n * @param {string|HTMLInputElement|Element} email - The email address to validate (as a string or an input element).\r\n * @returns {boolean} True if the email address is valid.\r\n *\r\n * @example\r\n * import { isEmailValid } from \"./utils/patternMatching/email\";\r\n *\r\n * const emailInput = document.querySelector(\"form input.email\");\r\n * if (isEmailValid(emailInput)) {\r\n * // The entered email address is valid\r\n * }\r\n */\r\nexport function isEmailValid(email) {\r\n\treturn emailRegex().test(typeof email === \"string\" ? email : email.value);\r\n}\r\n\r\n/**\r\n * @type {function}\r\n * @ignore\r\n * @deprecated\r\n */\r\nexport const emailIsValid = isEmailValid;\r\n\r\n/**\r\n * Find email addresses in a string.\r\n *\r\n * @param {string} string - The string to search for email addresses.\r\n * @returns {string[]} An array of email addresses.\r\n *\r\n * @example\r\n * import { getEmailsInString } from \"./utils/patternMatching/email\";\r\n *\r\n * const string = \"My private email is mail@private.com, but my business email is mail@business.com\";\r\n * const foundEmails = getEmailsInString(string);\r\n * // This will output [\"mail@private.com\", \"mail@business.com\"]\r\n */\r\nexport function getEmailsInString(string) {\r\n\treturn string.match(emailRegex(true)) || [];\r\n}\r\n\r\n/**\r\n * Find email addresses in a string and convert them to links.\r\n *\r\n * @param {string} string - The string to search for email addresses.\r\n * @param {boolean|string} [subject=false] - Set the subject of the email as a string. If set to *true* the subject will be the page title followed by the URL.\r\n * @returns {string} The passed string with email addresses converted to mailto-links.\r\n *\r\n * @example\r\n * import { emailRegex } from \"./utils/patternMatching/email\";\r\n *\r\n * const emailInput = document.querySelector(\"form input.email\");\r\n * if (emailRegex().test(emailInput.value)) {\r\n * // The entered email address is valid\r\n * }\r\n */\r\nexport function convertEmailsToLinks(string, subject = false) {\r\n\tconst setSubject = !!subject;\r\n\tconst subjectString = `?subject=${\r\n\t\ttypeof subject === \"string\"\r\n\t\t\t? subject\r\n\t\t\t: `${document.title} @ ${window.location.href}`\r\n\t}`;\r\n\treturn string.replace(\r\n\t\temailRegex(true),\r\n\t\tmatch =>\r\n\t\t\t`${match}`\r\n\t);\r\n}\r\n","/**\r\n * This is a utility for customizing a regular expressions used for validating passwords.\r\n *\r\n * @module utils/patternMatching/password\r\n * @since 3.6.0\r\n * @author Lars Munkholm \r\n */\r\n\r\n/**\r\n * These are the properties that can be set in the `options` objects of the password RegExp generator, that specify your\r\n * requirements to validate the password.\r\n *\r\n * @typedef {Object} PasswordOptions\r\n * @property {number} [minLength=8] - Minimum length of the password.\r\n * @property {number} [maxLength] - Maximum length of the password.\r\n * @property {number} [minDigits=1] - Minimum amount of digits.\r\n * @property {number} [maxDigits] - Maximum amount of digits.\r\n * @property {number} [minUppercase=1] - Minimum amount of uppercase letters (A-Z).\r\n * @property {number} [maxUppercase] - Maximum amount of uppercase letters (A-Z).\r\n * @property {number} [minLowercase=1] - Minimum amount of lowercase letters (a-z).\r\n * @property {number} [maxLowercase] - Maximum amount of lowercase letters(a-z).\r\n * @property {number} [minSpecial=1] - Minimum amount of special characters.\r\n * @property {number} [maxSpecial] - Maximum amount of special characters.\r\n * @property {string} [specialChars=\" !\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~¨\"] - All the characters accepted as \"special\".\r\n * @property {string} [forbiddenChars=\" \"] - Forbidden characters.\r\n * @property {boolean} [acceptUnicode=false] - Set to true to accept unicode characters (*not supported by IE11*)\r\n */\r\n\r\n/**\r\n * A string containing character generally accepted as \"special\".\r\n *\r\n * This is used in `passwordRegex()` and exported in case you want to add more.\r\n * In such a case you'll need to import this variable, add or remove characters,\r\n * and then pass the altered string to the functions `passwordRegex()` or `passwordIsValid()`\r\n * in the **options** argument as the **specialChars** property.\r\n *\r\n * @type {string}\r\n */\r\nexport const specialCharacters = \" !\\\"#$%&'()*+,./:;<=>?@[]\\\\^_`{|}~¨-\";\r\n\r\n/**\r\n * Generate a regular expression to validate passwords with.\r\n *\r\n * Define your requirements for a valid password by setting the following parameters.\r\n *\r\n * @param {PasswordOptions} [options={}] - Options that specify your requirements to validate the password.\r\n * @returns {RegExp} A regular expression that suits your needs.\r\n *\r\n * @example\r\n * import { passwordRegex } from \"./utils/patternMatching/password\";\r\n * import { setInputPattern } from \"./utils/dom/setInputPattern\";\r\n *\r\n * const passwordInput = document.querySelector(\"input.password\");\r\n *\r\n * setInputPattern(passwordInput, passwordRegex({\r\n * minLength: 10,\r\n * minUppercase: 2,\r\n * }));\r\n */\r\nexport function passwordRegex(options = {}) {\r\n\tconst passwordOptions = {\r\n\t\tminLength: 8,\r\n\t\tmaxLength: undefined,\r\n\t\tminDigits: 1,\r\n\t\tmaxDigits: undefined,\r\n\t\tminLowercase: 1,\r\n\t\tmaxLowercase: undefined,\r\n\t\tminUppercase: 1,\r\n\t\tmaxUppercase: undefined,\r\n\t\tminSpecial: 1,\r\n\t\tmaxSpecial: undefined,\r\n\t\tspecialChars: specialCharacters,\r\n\t\tforbiddenChars: \" \",\r\n\t\tacceptUnicode: false,\r\n\t\t...options\r\n\t};\r\n\r\n\tconst hasMaxLength = typeof passwordOptions.maxLength === \"number\";\r\n\tconst hasMaxDigits = typeof passwordOptions.maxDigits === \"number\";\r\n\tconst hasMaxLowercase = typeof passwordOptions.maxLowercase === \"number\";\r\n\tconst hasMaxUppercase = typeof passwordOptions.maxUppercase === \"number\";\r\n\tconst hasMaxSpecial = typeof passwordOptions.maxSpecial === \"number\";\r\n\r\n\tconst lowercaseLetters = passwordOptions.acceptUnicode\r\n\t\t? \"\\\\p{Ll}\"\r\n\t\t: \"[a-z]\";\r\n\tconst uppercaseLetters = passwordOptions.acceptUnicode\r\n\t\t? \"\\\\p{Lu}\"\r\n\t\t: \"[A-Z]\";\r\n\tconst specialChars = passwordOptions.specialChars.replace(\r\n\t\t/[.*+?^${}()|[\\]\\\\]/g,\r\n\t\t\"\\\\$&\"\r\n\t);\r\n\r\n\treturn new RegExp(\r\n\t\t`^${\r\n\t\t\tpasswordOptions.forbiddenChars\r\n\t\t\t\t? `(?!(?:.*[${passwordOptions.forbiddenChars}].*){1,})`\r\n\t\t\t\t: \"\"\r\n\t\t}(?=(?:.*${lowercaseLetters}.*){${passwordOptions.minLowercase}${\r\n\t\t\t!hasMaxLowercase ? \",\" : \"\"\r\n\t\t}})${\r\n\t\t\thasMaxLowercase\r\n\t\t\t\t? `(?!(?:.*${lowercaseLetters}.*){${\r\n\t\t\t\t\tpasswordOptions.maxLowercase + 1\r\n\t\t\t\t},})`\r\n\t\t\t\t: \"\"\r\n\t\t}(?=(?:.*${uppercaseLetters}.*){${passwordOptions.minUppercase}${\r\n\t\t\t!hasMaxUppercase ? \",\" : \"\"\r\n\t\t}})${\r\n\t\t\thasMaxUppercase\r\n\t\t\t\t? `(?!(?:.*${uppercaseLetters}.*){${\r\n\t\t\t\t\tpasswordOptions.maxUppercase + 1\r\n\t\t\t\t},})`\r\n\t\t\t\t: \"\"\r\n\t\t}(?=(?:.*\\\\d.*){${passwordOptions.minDigits}${\r\n\t\t\t!hasMaxDigits ? \",\" : \"\"\r\n\t\t}})${\r\n\t\t\thasMaxDigits\r\n\t\t\t\t? `(?!(?:.*\\\\d.*){${passwordOptions.maxDigits + 1},})`\r\n\t\t\t\t: \"\"\r\n\t\t}(?=(?:.*[${specialChars}].*){${passwordOptions.minSpecial}${\r\n\t\t\t!hasMaxSpecial ? \",\" : \"\"\r\n\t\t}})${\r\n\t\t\thasMaxSpecial\r\n\t\t\t\t? `(?!(?:.*[${specialChars}].*){${\r\n\t\t\t\t\tpasswordOptions.maxSpecial + 1\r\n\t\t\t\t},})`\r\n\t\t\t\t: \"\"\r\n\t\t}.{${passwordOptions.minLength},${\r\n\t\t\thasMaxLength ? passwordOptions.maxLength : \"\"\r\n\t\t}}$`,\r\n\t\tpasswordOptions.acceptUnicode ? \"u\" : \"\"\r\n\t);\r\n}\r\n\r\n/**\r\n * Generate a regular expression to validate passwords with.\r\n *\r\n * Define your requirements for a valid password by setting the following parameters.\r\n *\r\n * @param {string|HTMLInputElement|Element} password - The password that needs to be validated (as a string or an input element).\r\n * @param {PasswordOptions} [options={}] - Options that specify your requirements to validate the password.\r\n * @returns {boolean} True if the password is valid, otherwise false.\r\n *\r\n * @example\r\n * import { isPasswordValid } from \"./utils/patternMatching/password\";\r\n *\r\n * const passwordInput = document.querySelector(\"input.password\");\r\n * const passwordValidates = isPasswordValid(passwordInput.value, {\r\n * minLength: 10,\r\n * minUppercase: 2,\r\n * });\r\n *\r\n * if (passwordValidates) {\r\n * // Password is valid\r\n * }\r\n */\r\nexport function isPasswordValid(password, options) {\r\n\treturn passwordRegex(options).test(\r\n\t\ttypeof password === \"string\" ? password : password.value\r\n\t);\r\n}\r\n\r\n/**\r\n * @type {function}\r\n * @ignore\r\n * @deprecated\r\n */\r\nexport const passwordIsValid = isPasswordValid;\r\n","/**\r\n * Set a regular expression as a pattern on an input element.\r\n *\r\n * **Patterns do not accept flags/modifiers.** Global, ignoreCase and multiLine will be removed.\r\n *\r\n * @example Basic usage with an imported regex from our pattern matching utilities.\r\n * import {setInputPattern} from './utils/dom/setInputPattern';\r\n * import {emailRegex} from \"./utils/patternMatching/email\";\r\n *\r\n * const emailInput = document.querySelector(\"form input.email\");\r\n * setInputPattern(emailInput, emailRegex());\r\n *\r\n * @example Set a pattern for only accepting names with one capital letter followed by one or more lowercase letters.\r\n * const nameInput = document.querySelector(\"form input.name\");\r\n * setInputPattern(nameInput, /^[A-ZÆØÅ][a-zæøå]+$/);\r\n */\r\n\r\n/**\r\n * Set a regex as a pattern on an input element.\r\n *\r\n * @param {HTMLInputElement|Element} inputElement - Input element to set pattern on.\r\n * @param {RegExp} regex - Regular expression. **Notice** that flags will be removed (global, ignoreCase, multiLine).\r\n */\r\nexport function setInputPattern(inputElement: HTMLElement, regex: RegExp) {\r\n\tif (!regex) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst pattern = regex.toString().match(/\\/(?:\\n|.)*\\//)?.[0].replace(/^\\/|\\/$/g, \"\");\r\n\r\n\tif (pattern) {\r\n\t\tinputElement.setAttribute(\"pattern\", pattern);\r\n\t}\r\n}\r\n","/**\r\n * FormValidate class\r\n *\r\n * This utility validates form fields using the Constraint Validation Javascript API,\r\n * displaying an error when the user leaves a field, and keeping that error persistent until the issue is fixed.\r\n *\r\n * When validated and submitted, the field elements are returned for your very own amusement.\r\n *\r\n * If the browser is offline, the input field values are saved to localStorage.\r\n * Set the `saveDataWhenOffline` boolean to `false` to turn it off.\r\n *\r\n * @module utils/FormValidate\r\n * @since 3.6.3\r\n * @author Bjarni Olsen \r\n * @author Lars Munkholm \r\n *\r\n *\r\n * @example Basic JS:\r\n * import { FormValidate } from \"./utils/formValidate\";\r\n *\r\n * const formElement = document.querySelector(\"form.form-validate\");\r\n * if (formElement) {\r\n * void new FormValidate(formElement, {\r\n * saveDataWhenOffline: true,\r\n * beforeSubmit: () => {\r\n * // Previous errors (if any) have been removed from all fields and validation is about to run.\r\n * // If you have any code you wish to execute before validation, you can put it here.\r\n * },\r\n * onSubmit: fields => {\r\n * window.console.log(fields);\r\n * },\r\n * whenOffline: () => {\r\n * window.console.log(\"You are offline and the data is saved to localStorage\");\r\n * },\r\n * });\r\n * }\r\n *\r\n *\r\n * @example Basic HTML:\r\n *\r\n * Use a combination of semantic input types and validation attributes such as \"required\" and \"pattern\".\r\n *\r\n * All error and requirement messages is set on the input control but fallback to hardcoded messages.\r\n * \r\n * {@lang html}\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\nimport { onReady } from \"~/foundation/Events/onReady\";\r\nimport { addEvent, removeEvent } from \"~/foundation/Events/events\";\r\nimport { addClass, hasClass, removeClass } from \"~/foundation/Dom/classList\";\r\nimport { forEach } from \"~/foundation/Helpers/forEach\";\r\nimport { scrollTo } from \"~/foundation/Dom/scrollTo\";\r\nimport { createElement } from \"~/foundation/Dom/createElement\";\r\nimport { emailRegex } from \"~/foundation/PatternMatching/email\";\r\nimport { passwordRegex } from \"~/foundation/PatternMatching/password\";\r\nimport { setInputPattern } from \"~/foundation/Dom/setInputPattern\";\r\n\r\n/**\r\n * Callback for when the valid form is submitted.\r\n *\r\n * @callback onSubmit\r\n * @param {NodeList} fields - The validated fields in the form.\r\n */\r\n\r\n/**\r\n * Object with the different options for setting up the validation.\r\n *\r\n * @typedef {object} FormValidateOptionsObject\r\n * @property {function} [beforeSubmit] - Optional callback to fire before the form is validated on submit.\r\n * @property {onSubmit} [onSubmit] - Optional callback to fire after the valid form is submitted.\r\n * @property {function} [whenOffline] - Optional callback to fire after the valid form is submitted but the browser is offline.\r\n * @property {boolean} [saveDataWhenOffline=true] - Save input field values to localStorage.\r\n * @property {PasswordOptions} [password] - Set the requirements for a valid password. For information on how to customize this, see the documentation for `patternMatching/password`.\r\n * @property {string[]} [elementsToValidate=[\"input\", \"select\", \"textarea\", \"datalist\", \"output\"]] - Tag names of elements to validate.\r\n * @property {string} [errorMessageIdPrefix=\"error-for-\"] - Prefix for the IDs given to error messages.\r\n * @property {Object} [classNames={}] - An object with class names.\r\n * @property {string} [classNames.validField=\"form-validate__field--valid\"] - Class name for fields that are valid.\r\n * @property {string} [classNames.invalidField=\"form-validate__field--invalid\"] - Class name for fields that did not validate.\r\n * @property {string} [classNames.forceInvalidField=\"form-validate__field--force-invalid\"] - Class name for fields that must be forced to not validate.\r\n * @property {string} [classNames.errorMessage=\"form-validate__error-message\"] - Class name for the elements that show the error message.\r\n */\r\n\r\n/**\r\n * Object returned by this.getValidityState()\r\n *\r\n * @private\r\n * @typedef {Object} ValidationObject\r\n * @property {boolean} badInput\r\n * @property {boolean} patternMismatch\r\n * @property {boolean} tooLong\r\n * @property {boolean} tooShort\r\n * @property {boolean} valueMissing\r\n * @property {boolean} valid\r\n */\r\n\r\n/**\r\n * Object returned by this.checkExtendedValidation()\r\n *\r\n * @private\r\n * @typedef {Object} ExtendedValidationObject\r\n * @property {boolean} confirmError\r\n * @property {boolean} valid\r\n */\r\n\r\n/**\r\n * Generate the field validity object.\r\n *\r\n * @ignore\r\n * @param {HTMLElement} field - The field to validate\r\n * @returns {ValidationObject} The validity object\r\n */\r\nfunction getValidityState(field) {\r\n\tlet element = field;\r\n\tconst type = element.getAttribute(\"type\") || element.nodeName.toLowerCase();\r\n\tconst isNum = type === \"number\" || type === \"range\";\r\n\tconst length = element.value.length;\r\n\r\n\tlet valid = true;\r\n\r\n\t// If radio group, get selected field\r\n\tif (type === \"radio\" || (type === \"checkbox\" && element.name)) {\r\n\t\tconst group = (element.form || document).querySelectorAll(\r\n\t\t\t`input[name=${element.name}]`\r\n\t\t);\r\n\t\tforEach(group, item => {\r\n\t\t\tif (item.form === element.form && item.checked) {\r\n\t\t\t\telement = item;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t// Run validity checks\r\n\tconst checkValidity = {\r\n\t\tbadInput: isNum && length > 0 && !/[-+]?[0-9]/.test(element.value), // value of a number field is not a number\r\n\t\tpatternMismatch:\r\n\t\t\telement.hasAttribute(\"pattern\") &&\r\n\t\t\tlength > 0 &&\r\n\t\t\tnew RegExp(element.getAttribute(\"pattern\")).test(element.value) ===\r\n\t\t\tfalse,\r\n\t\ttooLong:\r\n\t\t\telement.hasAttribute(\"maxLength\") &&\r\n\t\t\telement.getAttribute(\"maxLength\") > 0 &&\r\n\t\t\tlength > parseInt(element.getAttribute(\"maxLength\"), 10), // the user has edited a too-long value in a field with a maximum length\r\n\t\ttooShort:\r\n\t\t\telement.hasAttribute(\"minLength\") &&\r\n\t\t\telement.getAttribute(\"minLength\") > 0 &&\r\n\t\t\tlength > 0 &&\r\n\t\t\tlength < parseInt(element.getAttribute(\"minLength\"), 10), // the user has edited a too-short value in a field with a minimum length,\r\n\t\tvalueMissing:\r\n\t\t\telement.hasAttribute(\"required\") &&\r\n\t\t\t(((type === \"checkbox\" || type === \"radio\") && !element.checked) ||\r\n\t\t\t\t(type === \"select\" &&\r\n\t\t\t\t\telement.options[element.selectedIndex].value < 1) ||\r\n\t\t\t\t(type !== \"checkbox\" &&\r\n\t\t\t\t\ttype !== \"radio\" &&\r\n\t\t\t\t\ttype !== \"select\" &&\r\n\t\t\t\t\tlength < 1)), // required field without a value\r\n\t\tvalid: undefined\r\n\t};\r\n\r\n\t// Check if any errors\r\n\tforEach(checkValidity, check => {\r\n\t\tif (valid) {\r\n\t\t\t// If there's an error, change valid value\r\n\t\t\tif (check) {\r\n\t\t\t\tvalid = false;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t// Add valid property to validity object\r\n\tcheckValidity.valid = valid;\r\n\r\n\t// Return object\r\n\treturn checkValidity;\r\n}\r\n\r\nexport class FormValidate {\r\n\t/**\r\n\t\t * This is the constructor method for the FormValidate class.\r\n\t\t *\r\n\t\t * @class\r\n\t\t * @param {HTMLFormElement|Node} formElement - The form element to validate.\r\n\t\t * @param {FormValidateOptionsObject} [options={}] - Optional options object.\r\n\t\t */\r\n\tconstructor(formElement, options = {}) {\r\n\t\t/**\r\n\t\t\t\t * Settings\r\n\t\t\t\t *\r\n\t\t\t\t * @private\r\n\t\t\t\t * @type {FormValidateOptionsObject}\r\n\t\t\t\t */\r\n\t\tthis.settings = {\r\n\t\t\tclassNames: {},\r\n\t\t\tsaveDataWhenOffline: true,\r\n\t\t\telementsToValidate: [\r\n\t\t\t\t\"input\",\r\n\t\t\t\t\"select\",\r\n\t\t\t\t\"textarea\",\r\n\t\t\t\t\"datalist\",\r\n\t\t\t\t\"output\"\r\n\t\t\t],\r\n\t\t\terrorMessageIdPrefix: \"error-for-\",\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t\t\t * Object containing the various element names that will be used while building the DOM for error messages.\r\n\t\t\t\t *\r\n\t\t\t\t * @private\r\n\t\t\t\t * @type {Object}\r\n\t\t\t\t */\r\n\t\tthis.settings.classNames = {\r\n\t\t\tvalidField:\r\n\t\t\t\tthis.settings.classNames.validField ||\r\n\t\t\t\t\"form-validate__field--valid\",\r\n\t\t\tinvalidField:\r\n\t\t\t\tthis.settings.classNames.invalidField ||\r\n\t\t\t\t\"form-validate__field--invalid\",\r\n\t\t\tforceInvalidField:\r\n\t\t\t\tthis.settings.classNames.forceInvalidField ||\r\n\t\t\t\t\"form-validate__field--force-invalid\",\r\n\t\t\terrorMessage:\r\n\t\t\t\tthis.settings.classNames.errorMessage ||\r\n\t\t\t\t\"form-validate__error-message\"\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t\t\t * Global object to contain all DOM elements.\r\n\t\t\t\t *\r\n\t\t\t\t * @private\r\n\t\t\t\t * @type {Object}\r\n\t\t\t\t */\r\n\t\tthis.dom = {};\r\n\r\n\t\t/**\r\n\t\t\t\t * Global boolean to check for already added events.\r\n\t\t\t\t *\r\n\t\t\t\t * @private\r\n\t\t\t\t */\r\n\t\tthis.alreadyHasKeyupEvent = false;\r\n\r\n\t\t/**\r\n\t\t\t\t * This variable holds the event name to fire on a form field in order to trigger validation on it.\r\n\t\t\t\t *\r\n\t\t\t\t * @type {string}\r\n\t\t\t\t */\r\n\t\tthis.validationTrigger = \"trigger-form-validation\";\r\n\r\n\t\tonReady(() => this.init(formElement));\r\n\t}\r\n\r\n\t/**\r\n\t\t * Extended validation states\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {HTMLElement} field - The field to validate\r\n\t\t * @returns {ExtendedValidationObject} The custom validations object\r\n\t\t */\r\n\tcheckExtendedValidation(field) {\r\n\t\tconst confirmField = field.getAttribute(\"data-confirms\") || false;\r\n\t\tlet valid = true;\r\n\r\n\t\t// these checks must ALWAYS be a boolean (true or false)\r\n\t\tconst confirmFieldElement = this.dom.form.querySelector(\r\n\t\t\t`input[name=${confirmField}]`\r\n\t\t);\r\n\t\tconst extendedValidation = {\r\n\t\t\tconfirmError:\r\n\t\t\t\tconfirmFieldElement !== null &&\r\n\t\t\t\tconfirmFieldElement.value !== field.value,\r\n\t\t\tvalid: undefined\r\n\t\t};\r\n\r\n\t\t// Check if any errors\r\n\t\tforEach(extendedValidation, check => {\r\n\t\t\tif (valid) {\r\n\t\t\t\t// If there's an error, change valid value\r\n\t\t\t\tif (check) {\r\n\t\t\t\t\tvalid = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Add valid property to validity object\r\n\t\textendedValidation.valid = valid;\r\n\r\n\t\t// Return object\r\n\t\treturn extendedValidation;\r\n\t}\r\n\r\n\t/**\r\n\t\t * Validate input after pressing a key.\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {KeyboardEvent} event\r\n\t\t */\r\n\tinlineValidation(event) {\r\n\t\tconst field = event.target;\r\n\r\n\t\t// If this field belongs to a group of fields, get all of them\r\n\t\tlet fieldGroup;\r\n\t\tif (field.type === \"radio\" && field.name) {\r\n\t\t\tfieldGroup = this.dom.form.querySelectorAll(\r\n\t\t\t\t`input[name=${field.name}]`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// Validate the field\r\n\t\tconst error = this.hasError(field);\r\n\r\n\t\tif (error) {\r\n\t\t\tthis.showError(field, error);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// It's valid, remove error class\r\n\t\tremoveClass(field, this.settings.classNames.invalidField);\r\n\t\t// and add a valid class\r\n\t\taddClass(field, this.settings.classNames.validField);\r\n\r\n\t\t// ...remove the \"key up\" event handler\r\n\t\tremoveEvent(fieldGroup ? fieldGroup : field, \"keyup\");\r\n\t\tthis.alreadyHasKeyupEvent = false;\r\n\r\n\t\t// and hide any existing error message\r\n\t\tthis.hideError(field);\r\n\t}\r\n\r\n\t/**\r\n\t\t * Validate the field using Validity State properties\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {HTMLElement} field\r\n\t\t * @returns {string|boolean}\r\n\t\t */\r\n\thasError(field) {\r\n\t\t// Don't validate submits, buttons and reset inputs, and disabled fields\r\n\t\tif (\r\n\t\t\t!field ||\r\n\t\t\tfield.disabled ||\r\n\t\t\tfield.type === \"reset\" ||\r\n\t\t\tfield.type === \"submit\" ||\r\n\t\t\tfield.type === \"button\" ||\r\n\t\t\tthis.settings.elementsToValidate.indexOf(\r\n\t\t\t\tfield.tagName.toLowerCase()\r\n\t\t\t) === -1\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Get validity\r\n\t\tconst validity = getValidityState(field);\r\n\r\n\t\t// Get extended custom validations\r\n\t\tconst extendedValidations = this.checkExtendedValidation(field);\r\n\r\n\t\t// If field has a pattern - use that and ignore the browser default validation against the field type.\r\n\t\tlet ignoreTypeValidation = false;\r\n\t\tlet isValidExceptType = true;\r\n\t\tif (field.hasAttribute(\"pattern\")) {\r\n\t\t\tignoreTypeValidation = true;\r\n\r\n\t\t\tif (\r\n\t\t\t\tvalidity.badInput ||\r\n\t\t\t\tvalidity.customError ||\r\n\t\t\t\tvalidity.valueMissing ||\r\n\t\t\t\tvalidity.rangeOverflow ||\r\n\t\t\t\tvalidity.rangeUnderflow ||\r\n\t\t\t\tvalidity.stepMismatch ||\r\n\t\t\t\tvalidity.tooLong ||\r\n\t\t\t\tvalidity.tooShort ||\r\n\t\t\t\tvalidity.patternMismatch\r\n\t\t\t) {\r\n\t\t\t\tisValidExceptType = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// If all valid, return null\r\n\t\tif (\r\n\t\t\t(ignoreTypeValidation ? isValidExceptType : validity.valid) &&\r\n\t\t\textendedValidations.valid &&\r\n\t\t\t!hasClass(field, this.settings.classNames.forceInvalidField)\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// gather all error messages from the field\r\n\t\tconst errorMessage =\r\n\t\t\tfield.dataset.errorMessage || \"Please fill out this field\";\r\n\t\tconst requirementsMessage = field.dataset.requirementsMessage;\r\n\r\n\t\t// If field is required and empty\r\n\t\tif (validity.valueMissing) {\r\n\t\t\treturn errorMessage;\r\n\t\t}\r\n\r\n\t\t// If not the right type\r\n\t\tif (validity.typeMismatch) {\r\n\t\t\t// Email\r\n\t\t\tif (field.type === \"email\") {\r\n\t\t\t\treturn requirementsMessage || \"Please enter an email address.\";\r\n\t\t\t} else if (field.type === \"url\") {\r\n\t\t\t\treturn requirementsMessage || \"Please enter a URL.\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// If too short\r\n\t\tif (validity.tooShort) {\r\n\t\t\treturn (\r\n\t\t\t\trequirementsMessage ||\r\n\t\t\t\t`Please expand this text to ${field.getAttribute(\r\n\t\t\t\t\t\"minLength\"\r\n\t\t\t\t)} characters or more. You are currently using ${field.value.length\r\n\t\t\t\t} characters.`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// If too long\r\n\t\tif (validity.tooLong) {\r\n\t\t\treturn (\r\n\t\t\t\trequirementsMessage ||\r\n\t\t\t\t`Please short this text to no more than ${field.getAttribute(\r\n\t\t\t\t\t\"maxLength\"\r\n\t\t\t\t)} characters. You are currently using ${field.value.length\r\n\t\t\t\t} characters.`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// If number input isn't a number\r\n\t\tif (validity.badInput) {\r\n\t\t\treturn requirementsMessage || \"Please enter a number.\";\r\n\t\t}\r\n\r\n\t\t// If a number value doesn't match the step interval\r\n\t\tif (validity.stepMismatch) {\r\n\t\t\treturn requirementsMessage || \"Please select a valid value.\";\r\n\t\t}\r\n\r\n\t\t// If a number field is over the max\r\n\t\tif (validity.rangeOverflow) {\r\n\t\t\treturn (\r\n\t\t\t\trequirementsMessage ||\r\n\t\t\t\t`Please select a value that is no more than ${field.getAttribute(\r\n\t\t\t\t\t\"max\"\r\n\t\t\t\t)}.`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// If a number field is below the min\r\n\t\tif (validity.rangeUnderflow) {\r\n\t\t\treturn (\r\n\t\t\t\trequirementsMessage ||\r\n\t\t\t\t`Please select a value that is no less than ${field.getAttribute(\r\n\t\t\t\t\t\"min\"\r\n\t\t\t\t)}.`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// If pattern doesn't match\r\n\t\tif (validity.patternMismatch) {\r\n\t\t\t// Email\r\n\t\t\tif (field.type === \"email\") {\r\n\t\t\t\treturn requirementsMessage || \"Please enter an email address.\";\r\n\t\t\t} else if (field.type === \"password\") {\r\n\t\t\t\treturn requirementsMessage || \"Please enter a valid password.\";\r\n\t\t\t} else {\r\n\t\t\t\treturn (\r\n\t\t\t\t\trequirementsMessage || \"Please match the requested format.\"\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (extendedValidations.confirmError) {\r\n\t\t\treturn requirementsMessage || \"Field value doesn't match\";\r\n\t\t}\r\n\r\n\t\t// If all else fails, return a generic catchall error\r\n\t\treturn (\r\n\t\t\trequirementsMessage ||\r\n\t\t\t\"The value you entered for this field is invalid.\"\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t\t * Show an error message below the field\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {HTMLElement} field\r\n\t\t * @param {string} errorMessage\r\n\t\t */\r\n\tshowError(field, errorMessage) {\r\n\t\tlet element = field;\r\n\r\n\t\t// Add error class to field\r\n\t\taddClass(element, this.settings.classNames.invalidField);\r\n\t\tremoveClass(element, this.settings.classNames.validField);\r\n\r\n\t\t// If the element is a radio button and part of a group, error all and get the last item in the group\r\n\t\tlet elementGroup;\r\n\t\tif (element.type === \"radio\" && element.name) {\r\n\t\t\telementGroup = this.dom.form.querySelectorAll(\r\n\t\t\t\t`input[name=${element.name}]`\r\n\t\t\t);\r\n\t\t\tconst len = elementGroup.length;\r\n\t\t\tif (len > 0) {\r\n\t\t\t\tforEach(elementGroup, item => {\r\n\t\t\t\t\taddClass(item, this.settings.classNames.invalidField);\r\n\t\t\t\t\tremoveClass(item, this.settings.classNames.validField);\r\n\t\t\t\t});\r\n\t\t\t\telement = elementGroup[len - 1];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Get element id or name\r\n\t\tconst id = element.id || element.name;\r\n\t\tif (!id) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"[formValidate.js] Fields need an ID or a name for form validation to work.\"\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// Check if error message element already exists\r\n\t\t// If not, create one\r\n\t\tlet message = document.getElementById(\r\n\t\t\t`${this.settings.errorMessageIdPrefix}${id}`\r\n\t\t);\r\n\r\n\t\tif (!message) {\r\n\t\t\tmessage = createElement(\"div\", {\r\n\t\t\t\tclassName: this.settings.classNames.errorMessage,\r\n\t\t\t\tid: `${this.settings.errorMessageIdPrefix}${id}`\r\n\t\t\t});\r\n\r\n\t\t\tif (\r\n\t\t\t\t(element.type !== \"radio\" || element.type !== \"checkbox\") &&\r\n\t\t\t\telement.dataset.errorContainer\r\n\t\t\t) {\r\n\t\t\t\t// If an element is specified as container for the error message, use this\r\n\t\t\t\tconst errorContainer = element.form.querySelector(\r\n\t\t\t\t\t`.${element.dataset.errorContainer}`\r\n\t\t\t\t);\r\n\t\t\t\terrorContainer.innerHTML = \"\";\r\n\t\t\t\terrorContainer.appendChild(message);\r\n\t\t\t} else {\r\n\t\t\t\t// If the element is a radio button or checkbox, insert error after the label\r\n\t\t\t\tlet label;\r\n\t\t\t\tif (element.type === \"radio\" || element.type === \"checkbox\") {\r\n\t\t\t\t\tlabel =\r\n\t\t\t\t\t\telement.form.querySelector(`label[for=\"${id}\"]`) ||\r\n\t\t\t\t\t\telement.parentNode;\r\n\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\tlabel.parentNode.insertBefore(\r\n\t\t\t\t\t\t\tmessage,\r\n\t\t\t\t\t\t\tlabel.nextSibling\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Otherwise, insert it after the element\r\n\t\t\t\tif (!label) {\r\n\t\t\t\t\telement.parentNode.insertBefore(\r\n\t\t\t\t\t\tmessage,\r\n\t\t\t\t\t\telement.nextSibling\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Save original ARIA role, if it exists\r\n\t\tif (element.hasAttribute(\"aria-describedby\")) {\r\n\t\t\telement.setAttribute(\r\n\t\t\t\t\"data-original-aria-describedby\",\r\n\t\t\t\telement.getAttribute(\"aria-describedby\")\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// Add ARIA role to the element\r\n\t\telement.setAttribute(\r\n\t\t\t\"aria-describedby\",\r\n\t\t\t`${this.settings.errorMessageIdPrefix}${id}`\r\n\t\t);\r\n\r\n\t\t// Update error message\r\n\t\tmessage.innerHTML = errorMessage;\r\n\r\n\t\t// Show error message\r\n\t\tmessage.style.display = \"block\";\r\n\t\tmessage.style.visibility = \"visible\";\r\n\r\n\t\t// Since the element has an error, we attach an keyup event to guide the user with positive inline validation\r\n\t\t// But first check if the element already has an event handler\r\n\t\t// inlineValidation uses keyup event - this can be disabled by adding attribute data-keyup-validation=\"disable\" on field\r\n\t\tif (\r\n\t\t\tthis.alreadyHasKeyupEvent !== element.name &&\r\n\t\t\telement.dataset.keyupValidation !== \"disable\"\r\n\t\t) {\r\n\t\t\taddEvent(elementGroup ? elementGroup : element, \"keyup\", e =>\r\n\t\t\t\tthis.inlineValidation(e)\r\n\t\t\t);\r\n\r\n\t\t\t// save reference to element name to clean up events later\r\n\t\t\tthis.alreadyHasKeyupEvent = element.name;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t\t * Hide an error message\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {HTMLElement} field\r\n\t\t */\r\n\thideError(field) {\r\n\t\tlet element = field;\r\n\r\n\t\t// Don't validate submits, buttons and reset inputs, and disabled fields\r\n\t\tif (\r\n\t\t\telement.disabled ||\r\n\t\t\telement.type === \"reset\" ||\r\n\t\t\telement.type === \"submit\" ||\r\n\t\t\telement.type === \"button\"\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Remove error class from element\r\n\t\tremoveClass(element, this.settings.classNames.invalidField);\r\n\t\taddClass(element, this.settings.classNames.validField);\r\n\r\n\t\t// Remove ARIA role from the element\r\n\t\telement.removeAttribute(\"aria-describedby\");\r\n\r\n\t\t// Reset ARIA role to original value if it exists\r\n\t\tif (element.hasAttribute(\"data-original-aria-describedby\")) {\r\n\t\t\telement.setAttribute(\r\n\t\t\t\t\"aria-describedby\",\r\n\t\t\t\telement.getAttribute(\"data-original-aria-describedby\")\r\n\t\t\t);\r\n\t\t\telement.removeAttribute(\"data-original-aria-describedby\");\r\n\t\t}\r\n\r\n\t\t// If the element is a radio button and part of a group, remove error from all and get the last item in the group\r\n\t\tif (element.type === \"radio\" && element.name) {\r\n\t\t\tconst group = this.dom.form.querySelectorAll(\r\n\t\t\t\t`input[name=${element.name}]`\r\n\t\t\t);\r\n\t\t\tconst len = group.length;\r\n\r\n\t\t\tif (len > 0) {\r\n\t\t\t\tforEach(group, item => {\r\n\t\t\t\t\t// Only check elements in current form\r\n\t\t\t\t\tif (item.form === element.form) {\r\n\t\t\t\t\t\tremoveClass(\r\n\t\t\t\t\t\t\titem,\r\n\t\t\t\t\t\t\tthis.settings.classNames.invalidField\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\taddClass(item, this.settings.classNames.validField);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\telement = group[len - 1];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Get element id or name\r\n\t\tconst id = element.id || element.name;\r\n\t\tif (!id) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check if an error message is in the DOM\r\n\t\tconst message = document.getElementById(\r\n\t\t\t`${this.settings.errorMessageIdPrefix}${id}`\r\n\t\t);\r\n\t\tif (!message) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// If so, hide it\r\n\t\tmessage.innerHTML = \"\";\r\n\t\tmessage.style.display = \"none\";\r\n\t\tmessage.style.visibility = \"hidden\";\r\n\t}\r\n\r\n\t/**\r\n\t\t * Save form field values in LocalStorage\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {NodeList} fields\r\n\t\t * @returns {boolean}\r\n\t\t */\r\n\tstoreData(fields) {\r\n\t\t//check if localStorage is available.\r\n\t\tif (typeof Storage !== \"undefined\") {\r\n\t\t\tthis.dom.fields = fields;\r\n\t\t\tconst data = {};\r\n\r\n\t\t\tforEach(fields, field => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tfield.name &&\r\n\t\t\t\t\t!field.disabled &&\r\n\t\t\t\t\tfield.type !== \"file\" &&\r\n\t\t\t\t\tfield.type !== \"reset\" &&\r\n\t\t\t\t\tfield.type !== \"password\" &&\r\n\t\t\t\t\tfield.type !== \"submit\"\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (field.type === \"checkbox\") {\r\n\t\t\t\t\t\tif (field.checked) {\r\n\t\t\t\t\t\t\tdata[field.name] = field.value || \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (field.type === \"radio\") {\r\n\t\t\t\t\t\tconst group = this.dom.form.querySelectorAll(\r\n\t\t\t\t\t\t\t`input[name=${field.name}]`\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst len = group.length;\r\n\r\n\t\t\t\t\t\tif (len > 0) {\r\n\t\t\t\t\t\t\tforEach(group, item => {\r\n\t\t\t\t\t\t\t\tif (item.checked) {\r\n\t\t\t\t\t\t\t\t\tdata[field.name] = item.value || \"\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdata[field.name] = field.value || \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst entry = {\r\n\t\t\t\ttime: new Date().getTime(),\r\n\t\t\t\tdata\r\n\t\t\t};\r\n\r\n\t\t\t//save data as JSON string.\r\n\t\t\tlocalStorage.setItem(this.localStorageId, JSON.stringify(entry));\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t\t * Checks if form field values are already saved in LocalStorage\r\n\t\t *\r\n\t\t * @private\r\n\t\t */\r\n\tcheckStorage() {\r\n\t\tif (typeof Storage !== \"undefined\") {\r\n\t\t\t// check if we have saved data in localStorage.\r\n\t\t\tconst item = localStorage.getItem(this.localStorageId);\r\n\t\t\tconst entry = item && JSON.parse(item);\r\n\r\n\t\t\tif (entry) {\r\n\t\t\t\t// discard submissions older than one day.\r\n\t\t\t\tconst now = new Date().getTime();\r\n\t\t\t\tconst day = 24 * 60 * 60 * 1000;\r\n\t\t\t\tif (now - day > entry.time) {\r\n\t\t\t\t\tlocalStorage.removeItem(this.localStorageId);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We have valid form data, insert them into the form fields\r\n\t\t\t\tthis.addStorageToFields(entry.data);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t\t * Insert data from localStorage into form fields\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {Object} data\r\n\t\t */\r\n\taddStorageToFields(data) {\r\n\t\tforEach(this.dom.fields, field => {\r\n\t\t\t// Don't validate file, reset, hidden, password, submit and disabled input fields\r\n\t\t\tif (\r\n\t\t\t\tfield.name &&\r\n\t\t\t\t!field.disabled &&\r\n\t\t\t\tfield.type !== \"file\" &&\r\n\t\t\t\tfield.type !== \"reset\" &&\r\n\t\t\t\tfield.type !== \"hidden\" &&\r\n\t\t\t\tfield.type !== \"password\" &&\r\n\t\t\t\tfield.type !== \"submit\"\r\n\t\t\t) {\r\n\t\t\t\tforEach(data, (value, key) => {\r\n\t\t\t\t\t// if key (name) from localStorage matches field name then insert value into field\r\n\t\t\t\t\tif (key === field.name) {\r\n\t\t\t\t\t\tif (field.type === \"radio\") {\r\n\t\t\t\t\t\t\tif (field.value === value) {\r\n\t\t\t\t\t\t\t\tfield.checked = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (field.type === \"checkbox\") {\r\n\t\t\t\t\t\t\tif (field.value === value) {\r\n\t\t\t\t\t\t\t\tfield.checked = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfield.value = value;\r\n\t\t\t\t\t\t}\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\t/**\r\n\t\t * Generate a Hash from string\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {String} str\r\n\t\t */\r\n\thashCode(str) {\r\n\t\t// Got it from here https://stackoverflow.com/a/34842797\r\n\t\treturn str\r\n\t\t\t.split(\"\")\r\n\t\t\t.reduce(\r\n\t\t\t\t(prevHash, currVal) =>\r\n\t\t\t\t\t((prevHash << 5) - prevHash + currVal.charCodeAt(0)) | 0, // eslint-disable-line\r\n\t\t\t\t0\r\n\t\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t\t * Check field on blur and change.\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {Event} event\r\n\t\t */\r\n\tcheckField(event) {\r\n\t\tif (event.relatedTarget && event.relatedTarget.type === \"submit\") {\r\n\t\t\t// Ignore blur events caused by clicking a submit button\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Update form field values in localStorage\r\n\t\tif (this.settings.saveDataWhenOffline && this.localStorageId) {\r\n\t\t\tthis.storeData(this.dom.fields);\r\n\t\t}\r\n\r\n\t\t// Validate the field\r\n\t\tconst error = this.hasError(event.target);\r\n\r\n\t\tif (error) {\r\n\t\t\tthis.showError(event.target, error);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Otherwise, hide any existing error message\r\n\t\tthis.hideError(event.target);\r\n\t}\r\n\r\n\t/**\r\n\t\t * Check field on blur and change.\r\n\t\t *\r\n\t\t * @param {HTMLElement} field\r\n\t\t */\r\n\tcheckFieldFromElement(field) {\r\n\t\t// Don't validate submits, buttons and reset inputs, and disabled fields\r\n\t\tif (\r\n\t\t\tfield.disabled ||\r\n\t\t\tfield.type === \"reset\" ||\r\n\t\t\tfield.type === \"submit\" ||\r\n\t\t\tfield.type === \"button\"\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Update form field values in localStorage\r\n\t\tif (this.settings.saveDataWhenOffline && this.localStorageId) {\r\n\t\t\tthis.storeData(this.dom.fields);\r\n\t\t}\r\n\r\n\t\t// Validate the field\r\n\t\tconst error = this.hasError(field);\r\n\r\n\t\tif (error) {\r\n\t\t\tthis.showError(field, error);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Otherwise, hide any existing error message\r\n\t\tthis.hideError(field);\r\n\t}\r\n\r\n\t/**\r\n\t\t * Handle form submit.\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {Event} event\r\n\t\t */\r\n\tsubmitForm(event) {\r\n\t\t// Lets not submit the form\r\n\t\t// We will control this from the outside with the callback function (onSubmit)\r\n\t\tevent.preventDefault();\r\n\r\n\t\t// Get all of the form elements (except buttons)\r\n\t\t// Find elements on every submit since they might change dynamically\r\n\t\tthis.dom.fields = this.dom.form.querySelectorAll(\r\n\t\t\tthis.settings.elementsToValidate.join(\",\")\r\n\t\t);\r\n\r\n\t\t// Remove existing errors - values and properties might have changed dynamically\r\n\t\tforEach(this.dom.fields, field => {\r\n\t\t\tthis.hideError(field);\r\n\t\t});\r\n\r\n\t\t// Fire the \"before submit\" callback if it exists\r\n\t\tif (typeof this.settings.beforeSubmit === \"function\") {\r\n\t\t\tthis.settings.beforeSubmit(this.dom.fields);\r\n\t\t}\r\n\r\n\t\t// Validate each field\r\n\t\t// Store the first field with an error to a variable so we can bring it into focus later\r\n\t\tlet hasErrors;\r\n\t\tforEach(this.dom.fields, field => {\r\n\t\t\tconst error = this.hasError(field);\r\n\t\t\tif (error) {\r\n\t\t\t\tthis.showError(field, error);\r\n\t\t\t\tif (!hasErrors) {\r\n\t\t\t\t\thasErrors = field;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// If there are errors, don't submit form and focus on first element with error\r\n\t\t// Else fire callback with all the fields\r\n\t\tif (hasErrors) {\r\n\t\t\tif (hasErrors.offsetWidth > 0 || hasErrors.offsetHeight > 0) {\r\n\t\t\t\t// Element is visible - focus on it\r\n\t\t\t\thasErrors.focus();\r\n\t\t\t} else {\r\n\t\t\t\t// Element is not visible\r\n\t\t\t\t// If it has specified an error container (data-error-container=\"...\")\r\n\t\t\t\t// find that and scroll to it - otherwise scroll to a parent element.\r\n\r\n\t\t\t\tlet scrollToError = false;\r\n\t\t\t\tif (hasErrors.dataset.errorContainer) {\r\n\t\t\t\t\tconst errorContainer = this.dom.form.querySelector(\r\n\t\t\t\t\t\thasErrors.dataset.errorContainer\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (errorContainer) {\r\n\t\t\t\t\t\tscrollToError = true;\r\n\t\t\t\t\t\tvoid scrollTo(errorContainer, 0, window, -30);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!scrollToError) {\r\n\t\t\t\t\tlet searchingForVisibleParent = hasErrors.parentElement;\r\n\r\n\t\t\t\t\twhile (searchingForVisibleParent) {\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\tsearchingForVisibleParent.offsetWidth > 0 ||\r\n\t\t\t\t\t\t\tsearchingForVisibleParent.offsetHeight > 0\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tvoid scrollTo(\r\n\t\t\t\t\t\t\t\tsearchingForVisibleParent,\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\twindow,\r\n\t\t\t\t\t\t\t\t-30\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tsearchingForVisibleParent = false;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsearchingForVisibleParent =\r\n\t\t\t\t\t\t\t\tsearchingForVisibleParent.parentElement;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (typeof this.settings.onSubmit === \"function\") {\r\n\t\t\t\tif (!navigator.onLine && this.settings.saveDataWhenOffline) {\r\n\t\t\t\t\t// If browser is offline and saveDataWhenOffline option is set\r\n\t\t\t\t\t// Store data in localStorage...\r\n\t\t\t\t\tthis.storeData(this.dom.fields);\r\n\r\n\t\t\t\t\t// and fire callback\r\n\t\t\t\t\tif (typeof this.settings.whenOffline === \"function\") {\r\n\t\t\t\t\t\tthis.settings.whenOffline();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Delete the localStorage...\r\n\t\t\t\t\tif (typeof Storage !== \"undefined\") {\r\n\t\t\t\t\t\tlocalStorage.removeItem(this.localStorageId);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// and submit the form\r\n\t\t\t\t\tthis.settings.onSubmit(this.dom.fields);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t\t * Initiate FormValidate\r\n\t\t *\r\n\t\t * @private\r\n\t\t * @param {HTMLFormElement|Node} formElement - The form element to validate\r\n\t\t */\r\n\tinit(formElement) {\r\n\t\t// Cache the form element in the global dom object\r\n\t\tthis.dom.form = formElement;\r\n\r\n\t\t// Disable native form validation\r\n\t\tthis.dom.form.setAttribute(\"novalidate\", true);\r\n\r\n\t\t// Set pattern on e-mail fields that are missing it\r\n\t\tforEach(\r\n\t\t\tthis.dom.form.querySelectorAll(\"input[type=email]:not([pattern])\"),\r\n\t\t\temailField => {\r\n\t\t\t\tsetInputPattern(emailField, emailRegex());\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\t// Set pattern on e-mail fields that are missing it\r\n\t\tforEach(\r\n\t\t\tthis.dom.form.querySelectorAll(\r\n\t\t\t\t\"input[type=password]:not([pattern])\"\r\n\t\t\t),\r\n\t\t\tpasswordField => {\r\n\t\t\t\tsetInputPattern(\r\n\t\t\t\t\tpasswordField,\r\n\t\t\t\t\tpasswordRegex(\r\n\t\t\t\t\t\ttypeof this.settings.password !== \"undefined\"\r\n\t\t\t\t\t\t\t? this.settings.password\r\n\t\t\t\t\t\t\t: {}\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\t// Check validity when the user leaves the field\r\n\t\taddEvent(\r\n\t\t\tthis.dom.form,\r\n\t\t\t`change blur ${this.validationTrigger}`,\r\n\t\t\tevent => this.checkField(event),\r\n\t\t\ttrue\r\n\t\t);\r\n\r\n\t\taddEvent(this.dom.form, \"submit\", event => this.submitForm(event));\r\n\r\n\t\t// If we are allowed\r\n\t\t// Generate Hash from form fields and use it as unique ID in localStorage\r\n\t\t// and chack if we already have data i localStorage\r\n\t\tif (this.settings.saveDataWhenOffline) {\r\n\t\t\t// Cache form fields\r\n\t\t\tthis.dom.fields = this.dom.form.querySelectorAll(\r\n\t\t\t\tthis.settings.elementsToValidate.join(\",\")\r\n\t\t\t);\r\n\r\n\t\t\t// Array to hold the form field names\r\n\t\t\tconst formFieldsArray = [];\r\n\r\n\t\t\t// Push form field names to the array\r\n\t\t\tforEach(this.dom.fields, field => formFieldsArray.push(field.name));\r\n\r\n\t\t\t// Combine form ID/Name and array to a string\r\n\t\t\tconst formFieldsString = `${this.dom.form.id || this.dom.form.attributes.name.value\r\n\t\t\t\t}${formFieldsArray.join(\"\")}`;\r\n\r\n\t\t\t// Generate unique ID using hashcode of string\r\n\t\t\tthis.localStorageId = this.hashCode(formFieldsString);\r\n\r\n\t\t\t// Check if we already have data in LocalStorage\r\n\t\t\tthis.checkStorage();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t\t * Remove event listeners and clean up.\r\n\t\t * Use this when dynamically removing the form.\r\n\t\t */\r\n\tdestroy() {\r\n\t\tremoveEvent(\r\n\t\t\tthis.dom.form,\r\n\t\t\t`submit change blur ${this.validationTrigger}`\r\n\t\t);\r\n\r\n\t\tforEach(\r\n\t\t\tthis.dom.form.querySelectorAll(\r\n\t\t\t\tthis.settings.elementsToValidate.join(\",\")\r\n\t\t\t),\r\n\t\t\tfield => removeEvent(field, \"keyup\")\r\n\t\t);\r\n\r\n\t\tthis.dom = null;\r\n\t}\r\n}\r\n","/*!\n * html2canvas 1.4.1 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\n\nvar Bounds = /** @class */ (function () {\n function Bounds(left, top, width, height) {\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n Bounds.prototype.add = function (x, y, w, h) {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n };\n Bounds.fromClientRect = function (context, clientRect) {\n return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height);\n };\n Bounds.fromDOMRectList = function (context, domRectList) {\n var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; });\n return domRect\n ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height)\n : Bounds.EMPTY;\n };\n Bounds.EMPTY = new Bounds(0, 0, 0, 0);\n return Bounds;\n}());\nvar parseBounds = function (context, node) {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\nvar parseDocumentSize = function (document) {\n var body = document.body;\n var documentElement = document.documentElement;\n if (!body || !documentElement) {\n throw new Error(\"Unable to get document size\");\n }\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\n return new Bounds(0, 0, width, height);\n};\n\n/*\n * css-line-break 2.1.0 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar toCodePoints$1 = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\nvar fromCodePoint$1 = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\nvar chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i$2 = 0; i$2 < chars$2.length; i$2++) {\n lookup$2[chars$2.charCodeAt(i$2)] = i$2;\n}\n\n/*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars$1$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup$1$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {\n lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1;\n}\nvar decode$1 = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1$1[base64.charCodeAt(i)];\n encoded2 = lookup$1$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n};\nvar polyUint16Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\nvar polyUint32Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\n/** Shift size for getting the index-2 table offset. */\nvar UTRIE2_SHIFT_2$1 = 5;\n/** Shift size for getting the index-1 table offset. */\nvar UTRIE2_SHIFT_1$1 = 6 + 5;\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nvar UTRIE2_INDEX_SHIFT$1 = 2;\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nvar UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1;\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nvar UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1;\n/** Number of entries in a data block. 32=0x20 */\nvar UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1;\n/** Mask for getting the lower bits for the in-data-block offset. */\nvar UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1;\nvar UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nvar UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nvar UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1;\nvar UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nvar UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1;\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nvar UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1;\n/** Number of entries in an index-2 block. 64=0x40 */\nvar UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nvar UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1;\nvar slice16$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\nvar slice32$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\nvar createTrieFromBase64$1 = function (base64, _byteLength) {\n var buffer = decode$1(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16$1(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16$1(view16, (headerLength + view32[4]) / 2)\n : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data);\n};\nvar Trie$1 = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2$1];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n}());\n\n/*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars$3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup$3 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i$3 = 0; i$3 < chars$3.length; i$3++) {\n lookup$3[chars$3.charCodeAt(i$3)] = i$3;\n}\n\nvar base64$1 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\n\nvar LETTER_NUMBER_MODIFIER = 50;\n// Non-tailorable Line Breaking Classes\nvar BK = 1; // Cause a line break (after)\nvar CR$1 = 2; // Cause a line break (after), except between CR and LF\nvar LF$1 = 3; // Cause a line break (after)\nvar CM = 4; // Prohibit a line break between the character and the preceding character\nvar NL = 5; // Cause a line break (after)\nvar WJ = 7; // Prohibit line breaks before and after\nvar ZW = 8; // Provide a break opportunity\nvar GL = 9; // Prohibit line breaks before and after\nvar SP = 10; // Enable indirect line breaks\nvar ZWJ$1 = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nvar B2 = 12; // Provide a line break opportunity before and after the character\nvar BA = 13; // Generally provide a line break opportunity after the character\nvar BB = 14; // Generally provide a line break opportunity before the character\nvar HY = 15; // Provide a line break opportunity after the character, except in numeric context\nvar CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nvar CL = 17; // Prohibit line breaks before\nvar CP = 18; // Prohibit line breaks before\nvar EX = 19; // Prohibit line breaks before\nvar IN = 20; // Allow only indirect line breaks between pairs\nvar NS = 21; // Allow only indirect line breaks before\nvar OP = 22; // Prohibit line breaks after\nvar QU = 23; // Act like they are both opening and closing\n// Numeric Context\nvar IS = 24; // Prevent breaks after any and before numeric\nvar NU = 25; // Form numeric expressions for line breaking purposes\nvar PO = 26; // Do not break following a numeric expression\nvar PR = 27; // Do not break in front of a numeric expression\nvar SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nvar AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nvar AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nvar CJ = 31; // Treat as NS or ID for strict or normal breaking.\nvar EB = 32; // Do not break from following Emoji Modifier\nvar EM = 33; // Do not break from preceding Emoji Base\nvar H2 = 34; // Form Korean syllable blocks\nvar H3 = 35; // Form Korean syllable blocks\nvar HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nvar ID = 37; // Break before or after; except in some numeric context\nvar JL = 38; // Form Korean syllable blocks\nvar JV = 39; // Form Korean syllable blocks\nvar JT = 40; // Form Korean syllable blocks\nvar RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes\nvar SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nvar XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\nvar ea_OP = [0x2329, 0xff08];\nvar BREAK_MANDATORY = '!';\nvar BREAK_NOT_ALLOWED$1 = '×';\nvar BREAK_ALLOWED$1 = '÷';\nvar UnicodeTrie$1 = createTrieFromBase64$1(base64$1);\nvar ALPHABETICS = [AL, HL];\nvar HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL];\nvar SPACE$1 = [SP, ZW];\nvar PREFIX_POSTFIX = [PR, PO];\nvar LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1);\nvar KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nvar HYPHEN = [HY, BA];\nvar codePointsToCharacterClasses = function (codePoints, lineBreak) {\n if (lineBreak === void 0) { lineBreak = 'strict'; }\n var types = [];\n var indices = [];\n var categories = [];\n codePoints.forEach(function (codePoint, index) {\n var classType = UnicodeTrie$1.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n }\n else {\n categories.push(false);\n }\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n if (classType === CM || classType === ZWJ$1) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n var prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n indices.push(index);\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n if (classType === SA) {\n return types.push(AL);\n }\n if (classType === AI) {\n return types.push(AL);\n }\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n }\n else {\n return types.push(AL);\n }\n }\n types.push(classType);\n });\n return [indices, types, categories];\n};\nvar isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\n var current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n var i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n var next = classTypes[i];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (current === SP) {\n var i = currentIndex;\n while (i > 0) {\n i--;\n var prev = classTypes[i];\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n var n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n var next = classTypes[n];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\nvar previousNonSpaceClassType = function (currentIndex, classTypes) {\n var i = currentIndex;\n while (i >= 0) {\n var type = classTypes[i];\n if (type === SP) {\n i--;\n }\n else {\n return type;\n }\n }\n return 0;\n};\nvar _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n var currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED$1;\n }\n var beforeIndex = currentIndex - 1;\n var afterIndex = currentIndex + 1;\n var current = classTypes[currentIndex];\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n var next = classTypes[afterIndex];\n if (current === CR$1 && next === LF$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB7 Do not break before spaces or zero width space.\n if (SPACE$1.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED$1;\n }\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED$1;\n }\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED$1;\n }\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n var prevIndex = currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // LB26 Do not break a Korean syllable.\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB27 Treat a Korean Syllable Block the same as ID.\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI$1 && next === RI$1) {\n var i = indicies[currentIndex];\n var count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI$1) {\n count++;\n }\n else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n }\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED$1;\n }\n return BREAK_ALLOWED$1;\n};\nvar cssFormattedClasses = function (codePoints, options) {\n if (!options) {\n options = { lineBreak: 'normal', wordBreak: 'normal' };\n }\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\n }\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\n ? isLetterNumber.map(function (letterNumber, i) {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n return [indicies, classTypes, forbiddenBreakpoints];\n};\nvar Break = /** @class */ (function () {\n function Break(codePoints, lineBreak, start, end) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n Break.prototype.slice = function () {\n return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end));\n };\n return Break;\n}());\nvar LineBreaker = function (str, options) {\n var codePoints = toCodePoints$1(str);\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\n var length = codePoints.length;\n var lastEnd = 0;\n var nextIndex = 0;\n return {\n next: function () {\n if (nextIndex >= length) {\n return { done: true, value: null };\n }\n var lineBreak = BREAK_NOT_ALLOWED$1;\n while (nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED$1) { }\n if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) {\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n};\n\n// https://www.w3.org/TR/css-syntax-3\nvar FLAG_UNRESTRICTED = 1 << 0;\nvar FLAG_ID = 1 << 1;\nvar FLAG_INTEGER = 1 << 2;\nvar FLAG_NUMBER = 1 << 3;\nvar LINE_FEED = 0x000a;\nvar SOLIDUS = 0x002f;\nvar REVERSE_SOLIDUS = 0x005c;\nvar CHARACTER_TABULATION = 0x0009;\nvar SPACE = 0x0020;\nvar QUOTATION_MARK = 0x0022;\nvar EQUALS_SIGN = 0x003d;\nvar NUMBER_SIGN = 0x0023;\nvar DOLLAR_SIGN = 0x0024;\nvar PERCENTAGE_SIGN = 0x0025;\nvar APOSTROPHE = 0x0027;\nvar LEFT_PARENTHESIS = 0x0028;\nvar RIGHT_PARENTHESIS = 0x0029;\nvar LOW_LINE = 0x005f;\nvar HYPHEN_MINUS = 0x002d;\nvar EXCLAMATION_MARK = 0x0021;\nvar LESS_THAN_SIGN = 0x003c;\nvar GREATER_THAN_SIGN = 0x003e;\nvar COMMERCIAL_AT = 0x0040;\nvar LEFT_SQUARE_BRACKET = 0x005b;\nvar RIGHT_SQUARE_BRACKET = 0x005d;\nvar CIRCUMFLEX_ACCENT = 0x003d;\nvar LEFT_CURLY_BRACKET = 0x007b;\nvar QUESTION_MARK = 0x003f;\nvar RIGHT_CURLY_BRACKET = 0x007d;\nvar VERTICAL_LINE = 0x007c;\nvar TILDE = 0x007e;\nvar CONTROL = 0x0080;\nvar REPLACEMENT_CHARACTER = 0xfffd;\nvar ASTERISK = 0x002a;\nvar PLUS_SIGN = 0x002b;\nvar COMMA = 0x002c;\nvar COLON = 0x003a;\nvar SEMICOLON = 0x003b;\nvar FULL_STOP = 0x002e;\nvar NULL = 0x0000;\nvar BACKSPACE = 0x0008;\nvar LINE_TABULATION = 0x000b;\nvar SHIFT_OUT = 0x000e;\nvar INFORMATION_SEPARATOR_ONE = 0x001f;\nvar DELETE = 0x007f;\nvar EOF = -1;\nvar ZERO = 0x0030;\nvar a = 0x0061;\nvar e = 0x0065;\nvar f = 0x0066;\nvar u = 0x0075;\nvar z = 0x007a;\nvar A = 0x0041;\nvar E = 0x0045;\nvar F = 0x0046;\nvar U = 0x0055;\nvar Z = 0x005a;\nvar isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\nvar isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\nvar isHex = function (codePoint) {\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\n};\nvar isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\nvar isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\nvar isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\nvar isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\nvar isWhiteSpace = function (codePoint) {\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\n};\nvar isNameStartCodePoint = function (codePoint) {\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\n};\nvar isNameCodePoint = function (codePoint) {\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\n};\nvar isNonPrintableCodePoint = function (codePoint) {\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE);\n};\nvar isValidEscape = function (c1, c2) {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n return c2 !== LINE_FEED;\n};\nvar isIdentifierStart = function (c1, c2, c3) {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n }\n else if (isNameStartCodePoint(c1)) {\n return true;\n }\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\nvar isNumberStart = function (c1, c2, c3) {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n return c2 === FULL_STOP && isDigit(c3);\n }\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n return isDigit(c1);\n};\nvar stringToNumber = function (codePoints) {\n var c = 0;\n var sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n var integers = [];\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0;\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n var fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n var fracd = fraction.length;\n var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0;\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n var expsign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n var exponent = [];\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0;\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\nvar LEFT_PARENTHESIS_TOKEN = {\n type: 2 /* LEFT_PARENTHESIS_TOKEN */\n};\nvar RIGHT_PARENTHESIS_TOKEN = {\n type: 3 /* RIGHT_PARENTHESIS_TOKEN */\n};\nvar COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };\nvar SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };\nvar PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };\nvar COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };\nvar DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };\nvar INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };\nvar LEFT_CURLY_BRACKET_TOKEN = {\n type: 11 /* LEFT_CURLY_BRACKET_TOKEN */\n};\nvar RIGHT_CURLY_BRACKET_TOKEN = {\n type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */\n};\nvar SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };\nvar BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };\nvar BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };\nvar CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };\nvar CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };\nvar COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };\nvar SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };\nvar LEFT_SQUARE_BRACKET_TOKEN = {\n type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */\n};\nvar RIGHT_SQUARE_BRACKET_TOKEN = {\n type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */\n};\nvar WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };\nvar EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer() {\n this._value = [];\n }\n Tokenizer.prototype.write = function (chunk) {\n this._value = this._value.concat(toCodePoints$1(chunk));\n };\n Tokenizer.prototype.read = function () {\n var tokens = [];\n var token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n };\n Tokenizer.prototype.consumeToken = function () {\n var codePoint = this.consumeCodePoint();\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n var value = this.consumeName();\n return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n var e1 = codePoint;\n var e2 = this.peekCodePoint(0);\n var e3 = this.peekCodePoint(1);\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n var c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n var a1 = this.peekCodePoint(0);\n var a2 = this.peekCodePoint(1);\n var a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n var value = this.consumeName();\n return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n var u1 = this.peekCodePoint(0);\n var u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) };\n };\n Tokenizer.prototype.consumeCodePoint = function () {\n var value = this._value.shift();\n return typeof value === 'undefined' ? -1 : value;\n };\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\n this._value.unshift(codePoint);\n };\n Tokenizer.prototype.peekCodePoint = function (delta) {\n if (delta >= this._value.length) {\n return -1;\n }\n return this._value[delta];\n };\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\n var digits = [];\n var codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n if (questionMarks) {\n var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\n var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };\n }\n var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n var endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };\n }\n else {\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };\n }\n };\n Tokenizer.prototype.consumeIdentLikeToken = function () {\n var value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n }\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 19 /* FUNCTION_TOKEN */, value: value };\n }\n return { type: 20 /* IDENT_TOKEN */, value: value };\n };\n Tokenizer.prototype.consumeUrlToken = function () {\n var value = [];\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF) {\n return { type: 22 /* URL_TOKEN */, value: '' };\n }\n var next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === 0 /* STRING_TOKEN */) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: stringToken.value };\n }\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n }\n else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n }\n else {\n value.push(codePoint);\n }\n }\n };\n Tokenizer.prototype.consumeWhiteSpace = function () {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n };\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n };\n Tokenizer.prototype.consumeStringSlice = function (count) {\n var SLICE_STACK_SIZE = 50000;\n var value = '';\n while (count > 0) {\n var amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n return value;\n };\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\n var value = '';\n var i = 0;\n do {\n var codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return { type: 0 /* STRING_TOKEN */, value: value };\n }\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n if (codePoint === REVERSE_SOLIDUS) {\n var next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n }\n else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint$1(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n i++;\n } while (true);\n };\n Tokenizer.prototype.consumeNumber = function () {\n var repr = [];\n var type = FLAG_INTEGER;\n var c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n return [stringToNumber(repr), type];\n };\n Tokenizer.prototype.consumeNumericToken = function () {\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isIdentifierStart(c1, c2, c3)) {\n var unit = this.consumeName();\n return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit };\n }\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags };\n }\n return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };\n };\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\n var codePoint = this.consumeCodePoint();\n if (isHex(codePoint)) {\n var hex = fromCodePoint$1(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint$1(this.consumeCodePoint());\n }\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n var hexCodePoint = parseInt(hex, 16);\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n return hexCodePoint;\n }\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n return codePoint;\n };\n Tokenizer.prototype.consumeName = function () {\n var result = '';\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint$1(codePoint);\n }\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint$1(this.consumeEscapedCodePoint());\n }\n else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n };\n return Tokenizer;\n}());\n\nvar Parser = /** @class */ (function () {\n function Parser(tokens) {\n this._tokens = tokens;\n }\n Parser.create = function (value) {\n var tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n };\n Parser.parseValue = function (value) {\n return Parser.create(value).parseComponentValue();\n };\n Parser.parseValues = function (value) {\n return Parser.create(value).parseComponentValues();\n };\n Parser.prototype.parseComponentValue = function () {\n var token = this.consumeToken();\n while (token.type === 31 /* WHITESPACE_TOKEN */) {\n token = this.consumeToken();\n }\n if (token.type === 32 /* EOF_TOKEN */) {\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\n }\n this.reconsumeToken(token);\n var value = this.consumeComponentValue();\n do {\n token = this.consumeToken();\n } while (token.type === 31 /* WHITESPACE_TOKEN */);\n if (token.type === 32 /* EOF_TOKEN */) {\n return value;\n }\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\n };\n Parser.prototype.parseComponentValues = function () {\n var values = [];\n while (true) {\n var value = this.consumeComponentValue();\n if (value.type === 32 /* EOF_TOKEN */) {\n return values;\n }\n values.push(value);\n values.push();\n }\n };\n Parser.prototype.consumeComponentValue = function () {\n var token = this.consumeToken();\n switch (token.type) {\n case 11 /* LEFT_CURLY_BRACKET_TOKEN */:\n case 28 /* LEFT_SQUARE_BRACKET_TOKEN */:\n case 2 /* LEFT_PARENTHESIS_TOKEN */:\n return this.consumeSimpleBlock(token.type);\n case 19 /* FUNCTION_TOKEN */:\n return this.consumeFunction(token);\n }\n return token;\n };\n Parser.prototype.consumeSimpleBlock = function (type) {\n var block = { type: type, values: [] };\n var token = this.consumeToken();\n while (true) {\n if (token.type === 32 /* EOF_TOKEN */ || isEndingTokenFor(token, type)) {\n return block;\n }\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n };\n Parser.prototype.consumeFunction = function (functionToken) {\n var cssFunction = {\n name: functionToken.value,\n values: [],\n type: 18 /* FUNCTION */\n };\n while (true) {\n var token = this.consumeToken();\n if (token.type === 32 /* EOF_TOKEN */ || token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */) {\n return cssFunction;\n }\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n };\n Parser.prototype.consumeToken = function () {\n var token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n };\n Parser.prototype.reconsumeToken = function (token) {\n this._tokens.unshift(token);\n };\n return Parser;\n}());\nvar isDimensionToken = function (token) { return token.type === 15 /* DIMENSION_TOKEN */; };\nvar isNumberToken = function (token) { return token.type === 17 /* NUMBER_TOKEN */; };\nvar isIdentToken = function (token) { return token.type === 20 /* IDENT_TOKEN */; };\nvar isStringToken = function (token) { return token.type === 0 /* STRING_TOKEN */; };\nvar isIdentWithValue = function (token, value) {\n return isIdentToken(token) && token.value === value;\n};\nvar nonWhiteSpace = function (token) { return token.type !== 31 /* WHITESPACE_TOKEN */; };\nvar nonFunctionArgSeparator = function (token) {\n return token.type !== 31 /* WHITESPACE_TOKEN */ && token.type !== 4 /* COMMA_TOKEN */;\n};\nvar parseFunctionArgs = function (tokens) {\n var args = [];\n var arg = [];\n tokens.forEach(function (token) {\n if (token.type === 4 /* COMMA_TOKEN */) {\n if (arg.length === 0) {\n throw new Error(\"Error parsing function args, zero tokens for arg\");\n }\n args.push(arg);\n arg = [];\n return;\n }\n if (token.type !== 31 /* WHITESPACE_TOKEN */) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n return args;\n};\nvar isEndingTokenFor = function (token, type) {\n if (type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */) {\n return true;\n }\n if (type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ && token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */) {\n return true;\n }\n return type === 2 /* LEFT_PARENTHESIS_TOKEN */ && token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */;\n};\n\nvar isLength = function (token) {\n return token.type === 17 /* NUMBER_TOKEN */ || token.type === 15 /* DIMENSION_TOKEN */;\n};\n\nvar isLengthPercentage = function (token) {\n return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token);\n};\nvar parseLengthPercentageTuple = function (tokens) {\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\n};\nvar ZERO_LENGTH = {\n type: 17 /* NUMBER_TOKEN */,\n number: 0,\n flags: FLAG_INTEGER\n};\nvar FIFTY_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n};\nvar HUNDRED_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 100,\n flags: FLAG_INTEGER\n};\nvar getAbsoluteValueForTuple = function (tuple, width, height) {\n var x = tuple[0], y = tuple[1];\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nvar getAbsoluteValue = function (token, parent) {\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n return (token.number / 100) * parent;\n }\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n return token.number;\n};\n\nvar DEG = 'deg';\nvar GRAD = 'grad';\nvar RAD = 'rad';\nvar TURN = 'turn';\nvar angle = {\n name: 'angle',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n throw new Error(\"Unsupported angle type\");\n }\n};\nvar isAngle = function (value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\nvar parseNamedSide = function (tokens) {\n var sideOrCorner = tokens\n .filter(isIdentToken)\n .map(function (ident) { return ident.value; })\n .join(' ');\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n return 0;\n};\nvar deg = function (deg) { return (Math.PI * deg) / 180; };\n\nvar color$1 = {\n name: 'color',\n parse: function (context, value) {\n if (value.type === 18 /* FUNCTION */) {\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\n }\n return colorFunction(context, value.values);\n }\n if (value.type === 5 /* HASH_TOKEN */) {\n if (value.value.length === 3) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n if (value.value.length === 4) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n var a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n if (value.value.length === 6) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n if (value.value.length === 8) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n var a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n if (value.type === 20 /* IDENT_TOKEN */) {\n var namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n return COLORS.TRANSPARENT;\n }\n};\nvar isTransparent = function (color) { return (0xff & color) === 0; };\nvar asString = function (color) {\n var alpha = 0xff & color;\n var blue = 0xff & (color >> 8);\n var green = 0xff & (color >> 16);\n var red = 0xff & (color >> 24);\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\n};\nvar pack = function (r, g, b, a) {\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n};\nvar getTokenColorValue = function (token, i) {\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n var max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n return 0;\n};\nvar rgb = function (_context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n if (tokens.length === 3) {\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\n return pack(r, g, b, 1);\n }\n if (tokens.length === 4) {\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\n return pack(r, g, b, a);\n }\n return 0;\n};\nfunction hue2rgb(t1, t2, hue) {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n }\n else if (hue < 1 / 2) {\n return t2;\n }\n else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n }\n else {\n return t1;\n }\n}\nvar hsl = function (context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\n var h = (hue.type === 17 /* NUMBER_TOKEN */ ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var t1 = l * 2 - t2;\n var r = hue2rgb(t1, t2, h + 1 / 3);\n var g = hue2rgb(t1, t2, h);\n var b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\nvar SUPPORTED_COLOR_FUNCTIONS = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\nvar parseColor = function (context, value) {\n return color$1.parse(context, Parser.create(value).parseComponentValue());\n};\nvar COLORS = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n\nvar backgroundClip = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n};\n\nvar backgroundColor = {\n name: \"background-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n};\n\nvar parseColorStop = function (context, args) {\n var color = color$1.parse(context, args[0]);\n var stop = args[1];\n return stop && isLengthPercentage(stop) ? { color: color, stop: stop } : { color: color, stop: null };\n};\nvar processColorStops = function (stops, lineLength) {\n var first = stops[0];\n var last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n var processStops = [];\n var previous = 0;\n for (var i = 0; i < stops.length; i++) {\n var stop_1 = stops[i].stop;\n if (stop_1 !== null) {\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n }\n else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n }\n else {\n processStops.push(null);\n }\n }\n var gapBegin = null;\n for (var i = 0; i < processStops.length; i++) {\n var stop_2 = processStops[i];\n if (stop_2 === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n }\n else if (gapBegin !== null) {\n var gapLength = i - gapBegin;\n var beforeGap = processStops[gapBegin - 1];\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\n for (var g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n return stops.map(function (_a, i) {\n var color = _a.color;\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\n });\n};\nvar getAngleFromCorner = function (corner, width, height) {\n var centerX = width / 2;\n var centerY = height / 2;\n var x = getAbsoluteValue(corner[0], width) - centerX;\n var y = centerY - getAbsoluteValue(corner[1], height);\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\nvar calculateGradientDirection = function (angle, width, height) {\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var halfLineLength = lineLength / 2;\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\nvar distance = function (a, b) { return Math.sqrt(a * a + b * b); };\nvar findCorner = function (width, height, x, y, closest) {\n var corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n return corners.reduce(function (stat, corner) {\n var cx = corner[0], cy = corner[1];\n var d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n return stat;\n }, {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }).optimumCorner;\n};\nvar calculateRadius = function (gradient, x, y, width, height) {\n var rx = 0;\n var ry = 0;\n switch (gradient.size) {\n case 0 /* CLOSEST_SIDE */:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 2 /* CLOSEST_CORNER */:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n case 1 /* FARTHEST_SIDE */:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 3 /* FARTHEST_CORNER */:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n return [rx, ry];\n};\n\nvar linearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ && firstToken.value === 'to') {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = angle.parse(context, firstToken);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ };\n};\n\nvar prefixLinearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return {\n angle: angle$1,\n stops: stops,\n type: 1 /* LINEAR_GRADIENT */\n };\n};\n\nvar webkitGradient = function (context, tokens) {\n var angle = deg(180);\n var stops = [];\n var type = 1 /* LINEAR_GRADIENT */;\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = 1 /* LINEAR_GRADIENT */;\n return;\n }\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = 2 /* RADIAL_GRADIENT */;\n return;\n }\n }\n if (firstToken.type === 18 /* FUNCTION */) {\n if (firstToken.name === 'from') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: ZERO_LENGTH, color: color });\n }\n else if (firstToken.name === 'to') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: HUNDRED_PERCENT, color: color });\n }\n else if (firstToken.name === 'color-stop') {\n var values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n var color = color$1.parse(context, values[1]);\n var stop_1 = values[0];\n if (isNumberToken(stop_1)) {\n stops.push({\n stop: { type: 16 /* PERCENTAGE_TOKEN */, number: stop_1.number * 100, flags: stop_1.flags },\n color: color\n });\n }\n }\n }\n }\n });\n return type === 1 /* LINEAR_GRADIENT */\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops: stops,\n type: type\n }\n : { size: size, shape: shape, stops: stops, position: position, type: type };\n};\n\nvar CLOSEST_SIDE = 'closest-side';\nvar FARTHEST_SIDE = 'farthest-side';\nvar CLOSEST_CORNER = 'closest-corner';\nvar FARTHEST_CORNER = 'farthest-corner';\nvar CIRCLE = 'circle';\nvar ELLIPSE = 'ellipse';\nvar COVER = 'cover';\nvar CONTAIN = 'contain';\nvar radialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n var isAtPosition_1 = false;\n isColorStop = arg.reduce(function (acc, token) {\n if (isAtPosition_1) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n }\n else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case 'at':\n isAtPosition_1 = true;\n return false;\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n};\n\nvar prefixRadialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n else if (i === 1) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n};\n\nvar isLinearGradient = function (background) {\n return background.type === 1 /* LINEAR_GRADIENT */;\n};\nvar isRadialGradient = function (background) {\n return background.type === 2 /* RADIAL_GRADIENT */;\n};\nvar image = {\n name: 'image',\n parse: function (context, value) {\n if (value.type === 22 /* URL_TOKEN */) {\n var image_1 = { url: value.value, type: 0 /* URL */ };\n context.cache.addImage(value.value);\n return image_1;\n }\n if (value.type === 18 /* FUNCTION */) {\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\n }\n return imageFunction(context, value.values);\n }\n throw new Error(\"Unsupported image type \" + value.type);\n }\n};\nfunction isSupportedImage(value) {\n return (!(value.type === 20 /* IDENT_TOKEN */ && value.value === 'none') &&\n (value.type !== 18 /* FUNCTION */ || !!SUPPORTED_IMAGE_FUNCTIONS[value.name]));\n}\nvar SUPPORTED_IMAGE_FUNCTIONS = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n\nvar backgroundImage = {\n name: 'background-image',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens\n .filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); })\n .map(function (value) { return image.parse(context, value); });\n }\n};\n\nvar backgroundOrigin = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n};\n\nvar backgroundPosition = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) { return values.filter(isLengthPercentage); })\n .map(parseLengthPercentageTuple);\n }\n};\n\nvar backgroundRepeat = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) {\n return values\n .filter(isIdentToken)\n .map(function (token) { return token.value; })\n .join(' ');\n })\n .map(parseBackgroundRepeat);\n }\n};\nvar parseBackgroundRepeat = function (value) {\n switch (value) {\n case 'no-repeat':\n return 1 /* NO_REPEAT */;\n case 'repeat-x':\n case 'repeat no-repeat':\n return 2 /* REPEAT_X */;\n case 'repeat-y':\n case 'no-repeat repeat':\n return 3 /* REPEAT_Y */;\n case 'repeat':\n default:\n return 0 /* REPEAT */;\n }\n};\n\nvar BACKGROUND_SIZE;\n(function (BACKGROUND_SIZE) {\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\n})(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\nvar backgroundSize = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\n }\n};\nvar isBackgroundSizeInfoToken = function (value) {\n return isIdentToken(value) || isLengthPercentage(value);\n};\n\nvar borderColorForSide = function (side) { return ({\n name: \"border-\" + side + \"-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n}); };\nvar borderTopColor = borderColorForSide('top');\nvar borderRightColor = borderColorForSide('right');\nvar borderBottomColor = borderColorForSide('bottom');\nvar borderLeftColor = borderColorForSide('left');\n\nvar borderRadiusForSide = function (side) { return ({\n name: \"border-radius-\" + side,\n initialValue: '0 0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseLengthPercentageTuple(tokens.filter(isLengthPercentage));\n }\n}); };\nvar borderTopLeftRadius = borderRadiusForSide('top-left');\nvar borderTopRightRadius = borderRadiusForSide('top-right');\nvar borderBottomRightRadius = borderRadiusForSide('bottom-right');\nvar borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\nvar borderStyleForSide = function (side) { return ({\n name: \"border-\" + side + \"-style\",\n initialValue: 'solid',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, style) {\n switch (style) {\n case 'none':\n return 0 /* NONE */;\n case 'dashed':\n return 2 /* DASHED */;\n case 'dotted':\n return 3 /* DOTTED */;\n case 'double':\n return 4 /* DOUBLE */;\n }\n return 1 /* SOLID */;\n }\n}); };\nvar borderTopStyle = borderStyleForSide('top');\nvar borderRightStyle = borderStyleForSide('right');\nvar borderBottomStyle = borderStyleForSide('bottom');\nvar borderLeftStyle = borderStyleForSide('left');\n\nvar borderWidthForSide = function (side) { return ({\n name: \"border-\" + side + \"-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n}); };\nvar borderTopWidth = borderWidthForSide('top');\nvar borderRightWidth = borderWidthForSide('right');\nvar borderBottomWidth = borderWidthForSide('bottom');\nvar borderLeftWidth = borderWidthForSide('left');\n\nvar color = {\n name: \"color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n};\n\nvar direction = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, direction) {\n switch (direction) {\n case 'rtl':\n return 1 /* RTL */;\n case 'ltr':\n default:\n return 0 /* LTR */;\n }\n }\n};\n\nvar display = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\n return bit | parseDisplayValue(token.value);\n }, 0 /* NONE */);\n }\n};\nvar parseDisplayValue = function (display) {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return 2 /* BLOCK */;\n case 'inline':\n return 4 /* INLINE */;\n case 'run-in':\n return 8 /* RUN_IN */;\n case 'flow':\n return 16 /* FLOW */;\n case 'flow-root':\n return 32 /* FLOW_ROOT */;\n case 'table':\n return 64 /* TABLE */;\n case 'flex':\n case '-webkit-flex':\n return 128 /* FLEX */;\n case 'grid':\n case '-ms-grid':\n return 256 /* GRID */;\n case 'ruby':\n return 512 /* RUBY */;\n case 'subgrid':\n return 1024 /* SUBGRID */;\n case 'list-item':\n return 2048 /* LIST_ITEM */;\n case 'table-row-group':\n return 4096 /* TABLE_ROW_GROUP */;\n case 'table-header-group':\n return 8192 /* TABLE_HEADER_GROUP */;\n case 'table-footer-group':\n return 16384 /* TABLE_FOOTER_GROUP */;\n case 'table-row':\n return 32768 /* TABLE_ROW */;\n case 'table-cell':\n return 65536 /* TABLE_CELL */;\n case 'table-column-group':\n return 131072 /* TABLE_COLUMN_GROUP */;\n case 'table-column':\n return 262144 /* TABLE_COLUMN */;\n case 'table-caption':\n return 524288 /* TABLE_CAPTION */;\n case 'ruby-base':\n return 1048576 /* RUBY_BASE */;\n case 'ruby-text':\n return 2097152 /* RUBY_TEXT */;\n case 'ruby-base-container':\n return 4194304 /* RUBY_BASE_CONTAINER */;\n case 'ruby-text-container':\n return 8388608 /* RUBY_TEXT_CONTAINER */;\n case 'contents':\n return 16777216 /* CONTENTS */;\n case 'inline-block':\n return 33554432 /* INLINE_BLOCK */;\n case 'inline-list-item':\n return 67108864 /* INLINE_LIST_ITEM */;\n case 'inline-table':\n return 134217728 /* INLINE_TABLE */;\n case 'inline-flex':\n return 268435456 /* INLINE_FLEX */;\n case 'inline-grid':\n return 536870912 /* INLINE_GRID */;\n }\n return 0 /* NONE */;\n};\n\nvar float = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, float) {\n switch (float) {\n case 'left':\n return 1 /* LEFT */;\n case 'right':\n return 2 /* RIGHT */;\n case 'inline-start':\n return 3 /* INLINE_START */;\n case 'inline-end':\n return 4 /* INLINE_END */;\n }\n return 0 /* NONE */;\n }\n};\n\nvar letterSpacing = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'normal') {\n return 0;\n }\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 15 /* DIMENSION_TOKEN */) {\n return token.number;\n }\n return 0;\n }\n};\n\nvar LINE_BREAK;\n(function (LINE_BREAK) {\n LINE_BREAK[\"NORMAL\"] = \"normal\";\n LINE_BREAK[\"STRICT\"] = \"strict\";\n})(LINE_BREAK || (LINE_BREAK = {}));\nvar lineBreak = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, lineBreak) {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n\nvar lineHeight = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n};\nvar computeLineHeight = function (token, fontSize) {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n }\n else if (token.type === 17 /* NUMBER_TOKEN */) {\n return fontSize * token.number;\n }\n else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n return fontSize;\n};\n\nvar listStyleImage = {\n name: 'list-style-image',\n initialValue: 'none',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n return image.parse(context, token);\n }\n};\n\nvar listStylePosition = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'inside':\n return 0 /* INSIDE */;\n case 'outside':\n default:\n return 1 /* OUTSIDE */;\n }\n }\n};\n\nvar listStyleType = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, type) {\n switch (type) {\n case 'disc':\n return 0 /* DISC */;\n case 'circle':\n return 1 /* CIRCLE */;\n case 'square':\n return 2 /* SQUARE */;\n case 'decimal':\n return 3 /* DECIMAL */;\n case 'cjk-decimal':\n return 4 /* CJK_DECIMAL */;\n case 'decimal-leading-zero':\n return 5 /* DECIMAL_LEADING_ZERO */;\n case 'lower-roman':\n return 6 /* LOWER_ROMAN */;\n case 'upper-roman':\n return 7 /* UPPER_ROMAN */;\n case 'lower-greek':\n return 8 /* LOWER_GREEK */;\n case 'lower-alpha':\n return 9 /* LOWER_ALPHA */;\n case 'upper-alpha':\n return 10 /* UPPER_ALPHA */;\n case 'arabic-indic':\n return 11 /* ARABIC_INDIC */;\n case 'armenian':\n return 12 /* ARMENIAN */;\n case 'bengali':\n return 13 /* BENGALI */;\n case 'cambodian':\n return 14 /* CAMBODIAN */;\n case 'cjk-earthly-branch':\n return 15 /* CJK_EARTHLY_BRANCH */;\n case 'cjk-heavenly-stem':\n return 16 /* CJK_HEAVENLY_STEM */;\n case 'cjk-ideographic':\n return 17 /* CJK_IDEOGRAPHIC */;\n case 'devanagari':\n return 18 /* DEVANAGARI */;\n case 'ethiopic-numeric':\n return 19 /* ETHIOPIC_NUMERIC */;\n case 'georgian':\n return 20 /* GEORGIAN */;\n case 'gujarati':\n return 21 /* GUJARATI */;\n case 'gurmukhi':\n return 22 /* GURMUKHI */;\n case 'hebrew':\n return 22 /* HEBREW */;\n case 'hiragana':\n return 23 /* HIRAGANA */;\n case 'hiragana-iroha':\n return 24 /* HIRAGANA_IROHA */;\n case 'japanese-formal':\n return 25 /* JAPANESE_FORMAL */;\n case 'japanese-informal':\n return 26 /* JAPANESE_INFORMAL */;\n case 'kannada':\n return 27 /* KANNADA */;\n case 'katakana':\n return 28 /* KATAKANA */;\n case 'katakana-iroha':\n return 29 /* KATAKANA_IROHA */;\n case 'khmer':\n return 30 /* KHMER */;\n case 'korean-hangul-formal':\n return 31 /* KOREAN_HANGUL_FORMAL */;\n case 'korean-hanja-formal':\n return 32 /* KOREAN_HANJA_FORMAL */;\n case 'korean-hanja-informal':\n return 33 /* KOREAN_HANJA_INFORMAL */;\n case 'lao':\n return 34 /* LAO */;\n case 'lower-armenian':\n return 35 /* LOWER_ARMENIAN */;\n case 'malayalam':\n return 36 /* MALAYALAM */;\n case 'mongolian':\n return 37 /* MONGOLIAN */;\n case 'myanmar':\n return 38 /* MYANMAR */;\n case 'oriya':\n return 39 /* ORIYA */;\n case 'persian':\n return 40 /* PERSIAN */;\n case 'simp-chinese-formal':\n return 41 /* SIMP_CHINESE_FORMAL */;\n case 'simp-chinese-informal':\n return 42 /* SIMP_CHINESE_INFORMAL */;\n case 'tamil':\n return 43 /* TAMIL */;\n case 'telugu':\n return 44 /* TELUGU */;\n case 'thai':\n return 45 /* THAI */;\n case 'tibetan':\n return 46 /* TIBETAN */;\n case 'trad-chinese-formal':\n return 47 /* TRAD_CHINESE_FORMAL */;\n case 'trad-chinese-informal':\n return 48 /* TRAD_CHINESE_INFORMAL */;\n case 'upper-armenian':\n return 49 /* UPPER_ARMENIAN */;\n case 'disclosure-open':\n return 50 /* DISCLOSURE_OPEN */;\n case 'disclosure-closed':\n return 51 /* DISCLOSURE_CLOSED */;\n case 'none':\n default:\n return -1 /* NONE */;\n }\n }\n};\n\nvar marginForSide = function (side) { return ({\n name: \"margin-\" + side,\n initialValue: '0',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n}); };\nvar marginTop = marginForSide('top');\nvar marginRight = marginForSide('right');\nvar marginBottom = marginForSide('bottom');\nvar marginLeft = marginForSide('left');\n\nvar overflow = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (overflow) {\n switch (overflow.value) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'scroll':\n return 2 /* SCROLL */;\n case 'clip':\n return 3 /* CLIP */;\n case 'auto':\n return 4 /* AUTO */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n });\n }\n};\n\nvar overflowWrap = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'break-word':\n return \"break-word\" /* BREAK_WORD */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n};\n\nvar paddingForSide = function (side) { return ({\n name: \"padding-\" + side,\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length-percentage'\n}); };\nvar paddingTop = paddingForSide('top');\nvar paddingRight = paddingForSide('right');\nvar paddingBottom = paddingForSide('bottom');\nvar paddingLeft = paddingForSide('left');\n\nvar textAlign = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textAlign) {\n switch (textAlign) {\n case 'right':\n return 2 /* RIGHT */;\n case 'center':\n case 'justify':\n return 1 /* CENTER */;\n case 'left':\n default:\n return 0 /* LEFT */;\n }\n }\n};\n\nvar position = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'relative':\n return 1 /* RELATIVE */;\n case 'absolute':\n return 2 /* ABSOLUTE */;\n case 'fixed':\n return 3 /* FIXED */;\n case 'sticky':\n return 4 /* STICKY */;\n }\n return 0 /* STATIC */;\n }\n};\n\nvar textShadow = {\n name: 'text-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else {\n shadow.blur = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n\nvar textTransform = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textTransform) {\n switch (textTransform) {\n case 'uppercase':\n return 2 /* UPPERCASE */;\n case 'lowercase':\n return 1 /* LOWERCASE */;\n case 'capitalize':\n return 3 /* CAPITALIZE */;\n }\n return 0 /* NONE */;\n }\n};\n\nvar transform$1 = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n if (token.type === 18 /* FUNCTION */) {\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\n }\n return transformFunction(token.values);\n }\n return null;\n }\n};\nvar matrix = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n return values.length === 6 ? values : null;\n};\n// doesn't support 3D transforms at the moment\nvar matrix3d = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n var a1 = values[0], b1 = values[1]; values[2]; values[3]; var a2 = values[4], b2 = values[5]; values[6]; values[7]; values[8]; values[9]; values[10]; values[11]; var a4 = values[12], b4 = values[13]; values[14]; values[15];\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\nvar SUPPORTED_TRANSFORM_FUNCTIONS = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n\nvar DEFAULT_VALUE = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n};\nvar DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\nvar transformOrigin = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var origins = tokens.filter(isLengthPercentage);\n if (origins.length !== 2) {\n return DEFAULT;\n }\n return [origins[0], origins[1]];\n }\n};\n\nvar visibility = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, visibility) {\n switch (visibility) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'collapse':\n return 2 /* COLLAPSE */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n }\n};\n\nvar WORD_BREAK;\n(function (WORD_BREAK) {\n WORD_BREAK[\"NORMAL\"] = \"normal\";\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\n})(WORD_BREAK || (WORD_BREAK = {}));\nvar wordBreak = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, wordBreak) {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n\nvar zIndex = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */) {\n return { auto: true, order: 0 };\n }\n if (isNumberToken(token)) {\n return { auto: false, order: token.number };\n }\n throw new Error(\"Invalid z-index number parsed\");\n }\n};\n\nvar time = {\n name: 'time',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n throw new Error(\"Unsupported time type\");\n }\n};\n\nvar opacity = {\n name: 'opacity',\n initialValue: '1',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n\nvar textDecorationColor = {\n name: \"text-decoration-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n};\n\nvar textDecorationLine = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens\n .filter(isIdentToken)\n .map(function (token) {\n switch (token.value) {\n case 'underline':\n return 1 /* UNDERLINE */;\n case 'overline':\n return 2 /* OVERLINE */;\n case 'line-through':\n return 3 /* LINE_THROUGH */;\n case 'none':\n return 4 /* BLINK */;\n }\n return 0 /* NONE */;\n })\n .filter(function (line) { return line !== 0 /* NONE */; });\n }\n};\n\nvar fontFamily = {\n name: \"font-family\",\n initialValue: '',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var accumulator = [];\n var results = [];\n tokens.forEach(function (token) {\n switch (token.type) {\n case 20 /* IDENT_TOKEN */:\n case 0 /* STRING_TOKEN */:\n accumulator.push(token.value);\n break;\n case 17 /* NUMBER_TOKEN */:\n accumulator.push(token.number.toString());\n break;\n case 4 /* COMMA_TOKEN */:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\n }\n};\n\nvar fontSize = {\n name: \"font-size\",\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length'\n};\n\nvar fontWeight = {\n name: 'font-weight',\n initialValue: 'normal',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n return 400;\n }\n};\n\nvar fontVariant = {\n name: 'font-variant',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\n }\n};\n\nvar fontStyle = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'oblique':\n return \"oblique\" /* OBLIQUE */;\n case 'italic':\n return \"italic\" /* ITALIC */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n};\n\nvar contains = function (bit, value) { return (bit & value) !== 0; };\n\nvar content = {\n name: 'content',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens;\n }\n};\n\nvar counterIncrement = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var increments = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (counter.type === 20 /* IDENT_TOKEN */) {\n var increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({ counter: counter.value, increment: increment });\n }\n }\n return increments;\n }\n};\n\nvar counterReset = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var resets = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n var reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({ counter: counter.value, reset: reset });\n }\n }\n return resets;\n }\n};\n\nvar duration = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (context, tokens) {\n return tokens.filter(isDimensionToken).map(function (token) { return time.parse(context, token); });\n }\n};\n\nvar quotes = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var quotes = [];\n var filtered = tokens.filter(isStringToken);\n if (filtered.length % 2 !== 0) {\n return null;\n }\n for (var i = 0; i < filtered.length; i += 2) {\n var open_1 = filtered[i].value;\n var close_1 = filtered[i + 1].value;\n quotes.push({ open: open_1, close: close_1 });\n }\n return quotes;\n }\n};\nvar getQuote = function (quotes, depth, open) {\n if (!quotes) {\n return '';\n }\n var quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n return open ? quote.open : quote.close;\n};\n\nvar boxShadow = {\n name: 'box-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n }\n else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else if (c === 2) {\n shadow.blur = token;\n }\n else {\n shadow.spread = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n\nvar paintOrder = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */];\n var layers = [];\n tokens.filter(isIdentToken).forEach(function (token) {\n switch (token.value) {\n case 'stroke':\n layers.push(1 /* STROKE */);\n break;\n case 'fill':\n layers.push(0 /* FILL */);\n break;\n case 'markers':\n layers.push(2 /* MARKERS */);\n break;\n }\n });\n DEFAULT_VALUE.forEach(function (value) {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n return layers;\n }\n};\n\nvar webkitTextStrokeColor = {\n name: \"-webkit-text-stroke-color\",\n initialValue: 'currentcolor',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n};\n\nvar webkitTextStrokeWidth = {\n name: \"-webkit-text-stroke-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n\nvar CSSParsedDeclaration = /** @class */ (function () {\n function CSSParsedDeclaration(context, declaration) {\n var _a, _b;\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n var overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color);\n this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration);\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform$1, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n CSSParsedDeclaration.prototype.isVisible = function () {\n return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */;\n };\n CSSParsedDeclaration.prototype.isTransparent = function () {\n return isTransparent(this.backgroundColor);\n };\n CSSParsedDeclaration.prototype.isTransformed = function () {\n return this.transform !== null;\n };\n CSSParsedDeclaration.prototype.isPositioned = function () {\n return this.position !== 0 /* STATIC */;\n };\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\n return this.isPositioned() && !this.zIndex.auto;\n };\n CSSParsedDeclaration.prototype.isFloating = function () {\n return this.float !== 0 /* NONE */;\n };\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\n return (contains(this.display, 4 /* INLINE */) ||\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\n contains(this.display, 536870912 /* INLINE_GRID */) ||\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\n contains(this.display, 134217728 /* INLINE_TABLE */));\n };\n return CSSParsedDeclaration;\n}());\nvar CSSParsedPseudoDeclaration = /** @class */ (function () {\n function CSSParsedPseudoDeclaration(context, declaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n return CSSParsedPseudoDeclaration;\n}());\nvar CSSParsedCounterDeclaration = /** @class */ (function () {\n function CSSParsedCounterDeclaration(context, declaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n return CSSParsedCounterDeclaration;\n}());\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar parse = function (context, descriptor, style) {\n var tokenizer = new Tokenizer();\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n var parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case 2 /* IDENT_VALUE */:\n var token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case 0 /* VALUE */:\n return descriptor.parse(context, parser.parseComponentValue());\n case 1 /* LIST */:\n return descriptor.parse(context, parser.parseComponentValues());\n case 4 /* TOKEN_VALUE */:\n return parser.parseComponentValue();\n case 3 /* TYPE_VALUE */:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return color$1.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n var length_1 = parser.parseComponentValue();\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\n case 'length-percentage':\n var value_1 = parser.parseComponentValue();\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n\nvar elementDebuggerAttribute = 'data-html2canvas-debug';\nvar getElementDebugType = function (element) {\n var attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return 1 /* ALL */;\n case 'clone':\n return 2 /* CLONE */;\n case 'parse':\n return 3 /* PARSE */;\n case 'render':\n return 4 /* RENDER */;\n default:\n return 0 /* NONE */;\n }\n};\nvar isDebugging = function (element, type) {\n var elementType = getElementDebugType(element);\n return elementType === 1 /* ALL */ || type === elementType;\n};\n\nvar ElementContainer = /** @class */ (function () {\n function ElementContainer(context, element) {\n this.context = context;\n this.textNodes = [];\n this.elements = [];\n this.flags = 0;\n if (isDebugging(element, 3 /* PARSE */)) {\n debugger;\n }\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some(function (duration) { return duration > 0; })) {\n element.style.animationDuration = '0s';\n }\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n this.bounds = parseBounds(this.context, element);\n if (isDebugging(element, 4 /* RENDER */)) {\n this.flags |= 16 /* DEBUG_RENDER */;\n }\n }\n return ElementContainer;\n}());\n\n/*\n * text-segmentation 1.0.3 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar base64 = 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\n\n/*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars$1.length; i$1++) {\n lookup$1[chars$1.charCodeAt(i$1)] = i$1;\n}\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1[base64.charCodeAt(i)];\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n};\nvar polyUint16Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\nvar polyUint32Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\n/** Shift size for getting the index-2 table offset. */\nvar UTRIE2_SHIFT_2 = 5;\n/** Shift size for getting the index-1 table offset. */\nvar UTRIE2_SHIFT_1 = 6 + 5;\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nvar UTRIE2_INDEX_SHIFT = 2;\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nvar UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nvar UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n/** Number of entries in a data block. 32=0x20 */\nvar UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nvar UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\nvar UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nvar UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nvar UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nvar UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nvar UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nvar UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n/** Number of entries in an index-2 block. 64=0x40 */\nvar UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nvar UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\nvar slice16 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\nvar slice32 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\nvar createTrieFromBase64 = function (base64, _byteLength) {\n var buffer = decode(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\nvar Trie = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n}());\n\n/*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nvar Prepend = 1;\nvar CR = 2;\nvar LF = 3;\nvar Control = 4;\nvar Extend = 5;\nvar SpacingMark = 7;\nvar L = 8;\nvar V = 9;\nvar T = 10;\nvar LV = 11;\nvar LVT = 12;\nvar ZWJ = 13;\nvar Extended_Pictographic = 14;\nvar RI = 15;\nvar toCodePoints = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\nvar fromCodePoint = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\nvar UnicodeTrie = createTrieFromBase64(base64);\nvar BREAK_NOT_ALLOWED = '×';\nvar BREAK_ALLOWED = '÷';\nvar codePointToClass = function (codePoint) { return UnicodeTrie.get(codePoint); };\nvar _graphemeBreakAtIndex = function (_codePoints, classTypes, index) {\n var prevIndex = index - 2;\n var prev = classTypes[prevIndex];\n var current = classTypes[index - 1];\n var next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n var countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n return BREAK_ALLOWED;\n};\nvar GraphemeBreaker = function (str) {\n var codePoints = toCodePoints(str);\n var length = codePoints.length;\n var index = 0;\n var lastEnd = 0;\n var classTypes = codePoints.map(codePointToClass);\n return {\n next: function () {\n if (index >= length) {\n return { done: true, value: null };\n }\n var graphemeBreak = BREAK_NOT_ALLOWED;\n while (index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { }\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n};\nvar splitGraphemes = function (str) {\n var breaker = GraphemeBreaker(str);\n var graphemes = [];\n var bk;\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n return graphemes;\n};\n\nvar testRangeBounds = function (document) {\n var TEST_HEIGHT = 123;\n if (document.createRange) {\n var range = document.createRange();\n if (range.getBoundingClientRect) {\n var testElement = document.createElement('boundtest');\n testElement.style.height = TEST_HEIGHT + \"px\";\n testElement.style.display = 'block';\n document.body.appendChild(testElement);\n range.selectNode(testElement);\n var rangeBounds = range.getBoundingClientRect();\n var rangeHeight = Math.round(rangeBounds.height);\n document.body.removeChild(testElement);\n if (rangeHeight === TEST_HEIGHT) {\n return true;\n }\n }\n }\n return false;\n};\nvar testIOSLineBreak = function (document) {\n var testElement = document.createElement('boundtest');\n testElement.style.width = '50px';\n testElement.style.display = 'block';\n testElement.style.fontSize = '12px';\n testElement.style.letterSpacing = '0px';\n testElement.style.wordSpacing = '0px';\n document.body.appendChild(testElement);\n var range = document.createRange();\n testElement.innerHTML = typeof ''.repeat === 'function' ? '👨'.repeat(10) : '';\n var node = testElement.firstChild;\n var textList = toCodePoints$1(node.data).map(function (i) { return fromCodePoint$1(i); });\n var offset = 0;\n var prev = {};\n // ios 13 does not handle range getBoundingClientRect line changes correctly #2177\n var supports = textList.every(function (text, i) {\n range.setStart(node, offset);\n range.setEnd(node, offset + text.length);\n var rect = range.getBoundingClientRect();\n offset += text.length;\n var boundAhead = rect.x > prev.x || rect.y > prev.y;\n prev = rect;\n if (i === 0) {\n return true;\n }\n return boundAhead;\n });\n document.body.removeChild(testElement);\n return supports;\n};\nvar testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\nvar testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\nvar testSVG = function (document) {\n var img = new Image();\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return false;\n }\n img.src = \"data:image/svg+xml,\";\n try {\n ctx.drawImage(img, 0, 0);\n canvas.toDataURL();\n }\n catch (e) {\n return false;\n }\n return true;\n};\nvar isGreenPixel = function (data) {\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\n};\nvar testForeignObject = function (document) {\n var canvas = document.createElement('canvas');\n var size = 100;\n canvas.width = size;\n canvas.height = size;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return Promise.reject(false);\n }\n ctx.fillStyle = 'rgb(0, 255, 0)';\n ctx.fillRect(0, 0, size, size);\n var img = new Image();\n var greenImageSrc = canvas.toDataURL();\n img.src = greenImageSrc;\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n return loadSerializedSVG$1(svg)\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, size, size).data;\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n var node = document.createElement('div');\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\n node.style.height = size + \"px\";\n // Firefox 55 does not render inline tags\n return isGreenPixel(data)\n ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node))\n : Promise.reject(false);\n })\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n // Edge does not render background-images\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\n })\n .catch(function () { return false; });\n};\nvar createForeignObjectSVG = function (width, height, x, y, node) {\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n foreignObject.setAttributeNS(null, 'width', '100%');\n foreignObject.setAttributeNS(null, 'height', '100%');\n foreignObject.setAttributeNS(null, 'x', x.toString());\n foreignObject.setAttributeNS(null, 'y', y.toString());\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svg;\n};\nvar loadSerializedSVG$1 = function (svg) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () { return resolve(img); };\n img.onerror = reject;\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\n });\n};\nvar FEATURES = {\n get SUPPORT_RANGE_BOUNDS() {\n var value = testRangeBounds(document);\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\n return value;\n },\n get SUPPORT_WORD_BREAKING() {\n var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\n Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', { value: value });\n return value;\n },\n get SUPPORT_SVG_DRAWING() {\n var value = testSVG(document);\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\n ? testForeignObject(document)\n : Promise.resolve(false);\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_CORS_IMAGES() {\n var value = testCORS();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\n return value;\n },\n get SUPPORT_RESPONSE_TYPE() {\n var value = testResponseType();\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\n return value;\n },\n get SUPPORT_CORS_XHR() {\n var value = 'withCredentials' in new XMLHttpRequest();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\n return value;\n },\n get SUPPORT_NATIVE_TEXT_SEGMENTATION() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = !!(typeof Intl !== 'undefined' && Intl.Segmenter);\n Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', { value: value });\n return value;\n }\n};\n\nvar TextBounds = /** @class */ (function () {\n function TextBounds(text, bounds) {\n this.text = text;\n this.bounds = bounds;\n }\n return TextBounds;\n}());\nvar parseTextBounds = function (context, value, styles, node) {\n var textList = breakText(value, styles);\n var textBounds = [];\n var offset = 0;\n textList.forEach(function (text) {\n if (styles.textDecorationLine.length || text.trim().length > 0) {\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\n var clientRects = createRange(node, offset, text.length).getClientRects();\n if (clientRects.length > 1) {\n var subSegments = segmentGraphemes(text);\n var subOffset_1 = 0;\n subSegments.forEach(function (subSegment) {\n textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects())));\n subOffset_1 += subSegment.length;\n });\n }\n else {\n textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects)));\n }\n }\n else {\n var replacementNode = node.splitText(text.length);\n textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));\n node = replacementNode;\n }\n }\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\n node = node.splitText(text.length);\n }\n offset += text.length;\n });\n return textBounds;\n};\nvar getWrapperBounds = function (context, node) {\n var ownerDocument = node.ownerDocument;\n if (ownerDocument) {\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\n wrapper.appendChild(node.cloneNode(true));\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.replaceChild(wrapper, node);\n var bounds = parseBounds(context, wrapper);\n if (wrapper.firstChild) {\n parentNode.replaceChild(wrapper.firstChild, wrapper);\n }\n return bounds;\n }\n }\n return Bounds.EMPTY;\n};\nvar createRange = function (node, offset, length) {\n var ownerDocument = node.ownerDocument;\n if (!ownerDocument) {\n throw new Error('Node has no owner document');\n }\n var range = ownerDocument.createRange();\n range.setStart(node, offset);\n range.setEnd(node, offset + length);\n return range;\n};\nvar segmentGraphemes = function (value) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return splitGraphemes(value);\n};\nvar segmentWords = function (value, styles) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, {\n granularity: 'word'\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return breakWords(value, styles);\n};\nvar breakText = function (value, styles) {\n return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles);\n};\n// https://drafts.csswg.org/css-text/#word-separator\nvar wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];\nvar breakWords = function (str, styles) {\n var breaker = LineBreaker(str, {\n lineBreak: styles.lineBreak,\n wordBreak: styles.overflowWrap === \"break-word\" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak\n });\n var words = [];\n var bk;\n var _loop_1 = function () {\n if (bk.value) {\n var value = bk.value.slice();\n var codePoints = toCodePoints$1(value);\n var word_1 = '';\n codePoints.forEach(function (codePoint) {\n if (wordSeparators.indexOf(codePoint) === -1) {\n word_1 += fromCodePoint$1(codePoint);\n }\n else {\n if (word_1.length) {\n words.push(word_1);\n }\n words.push(fromCodePoint$1(codePoint));\n word_1 = '';\n }\n });\n if (word_1.length) {\n words.push(word_1);\n }\n }\n };\n while (!(bk = breaker.next()).done) {\n _loop_1();\n }\n return words;\n};\n\nvar TextContainer = /** @class */ (function () {\n function TextContainer(context, node, styles) {\n this.text = transform(node.data, styles.textTransform);\n this.textBounds = parseTextBounds(context, this.text, styles, node);\n }\n return TextContainer;\n}());\nvar transform = function (text, transform) {\n switch (transform) {\n case 1 /* LOWERCASE */:\n return text.toLowerCase();\n case 3 /* CAPITALIZE */:\n return text.replace(CAPITALIZE, capitalize);\n case 2 /* UPPERCASE */:\n return text.toUpperCase();\n default:\n return text;\n }\n};\nvar CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\nvar capitalize = function (m, p1, p2) {\n if (m.length > 0) {\n return p1 + p2.toUpperCase();\n }\n return m;\n};\n\nvar ImageElementContainer = /** @class */ (function (_super) {\n __extends(ImageElementContainer, _super);\n function ImageElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n _this.src = img.currentSrc || img.src;\n _this.intrinsicWidth = img.naturalWidth;\n _this.intrinsicHeight = img.naturalHeight;\n _this.context.cache.addImage(_this.src);\n return _this;\n }\n return ImageElementContainer;\n}(ElementContainer));\n\nvar CanvasElementContainer = /** @class */ (function (_super) {\n __extends(CanvasElementContainer, _super);\n function CanvasElementContainer(context, canvas) {\n var _this = _super.call(this, context, canvas) || this;\n _this.canvas = canvas;\n _this.intrinsicWidth = canvas.width;\n _this.intrinsicHeight = canvas.height;\n return _this;\n }\n return CanvasElementContainer;\n}(ElementContainer));\n\nvar SVGElementContainer = /** @class */ (function (_super) {\n __extends(SVGElementContainer, _super);\n function SVGElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n var s = new XMLSerializer();\n var bounds = parseBounds(context, img);\n img.setAttribute('width', bounds.width + \"px\");\n img.setAttribute('height', bounds.height + \"px\");\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\n _this.intrinsicWidth = img.width.baseVal.value;\n _this.intrinsicHeight = img.height.baseVal.value;\n _this.context.cache.addImage(_this.svg);\n return _this;\n }\n return SVGElementContainer;\n}(ElementContainer));\n\nvar LIElementContainer = /** @class */ (function (_super) {\n __extends(LIElementContainer, _super);\n function LIElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return LIElementContainer;\n}(ElementContainer));\n\nvar OLElementContainer = /** @class */ (function (_super) {\n __extends(OLElementContainer, _super);\n function OLElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.start = element.start;\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\n return _this;\n }\n return OLElementContainer;\n}(ElementContainer));\n\nvar CHECKBOX_BORDER_RADIUS = [\n {\n type: 15 /* DIMENSION_TOKEN */,\n flags: 0,\n unit: 'px',\n number: 3\n }\n];\nvar RADIO_BORDER_RADIUS = [\n {\n type: 16 /* PERCENTAGE_TOKEN */,\n flags: 0,\n number: 50\n }\n];\nvar reformatInputBounds = function (bounds) {\n if (bounds.width > bounds.height) {\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\n }\n else if (bounds.width < bounds.height) {\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\n }\n return bounds;\n};\nvar getInputValue = function (node) {\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\n return value.length === 0 ? node.placeholder || '' : value;\n};\nvar CHECKBOX = 'checkbox';\nvar RADIO = 'radio';\nvar PASSWORD = 'password';\nvar INPUT_COLOR = 0x2a2a2aff;\nvar InputElementContainer = /** @class */ (function (_super) {\n __extends(InputElementContainer, _super);\n function InputElementContainer(context, input) {\n var _this = _super.call(this, context, input) || this;\n _this.type = input.type.toLowerCase();\n _this.checked = input.checked;\n _this.value = getInputValue(input);\n if (_this.type === CHECKBOX || _this.type === RADIO) {\n _this.styles.backgroundColor = 0xdededeff;\n _this.styles.borderTopColor =\n _this.styles.borderRightColor =\n _this.styles.borderBottomColor =\n _this.styles.borderLeftColor =\n 0xa5a5a5ff;\n _this.styles.borderTopWidth =\n _this.styles.borderRightWidth =\n _this.styles.borderBottomWidth =\n _this.styles.borderLeftWidth =\n 1;\n _this.styles.borderTopStyle =\n _this.styles.borderRightStyle =\n _this.styles.borderBottomStyle =\n _this.styles.borderLeftStyle =\n 1 /* SOLID */;\n _this.styles.backgroundClip = [0 /* BORDER_BOX */];\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\n _this.bounds = reformatInputBounds(_this.bounds);\n }\n switch (_this.type) {\n case CHECKBOX:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n CHECKBOX_BORDER_RADIUS;\n break;\n case RADIO:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n RADIO_BORDER_RADIUS;\n break;\n }\n return _this;\n }\n return InputElementContainer;\n}(ElementContainer));\n\nvar SelectElementContainer = /** @class */ (function (_super) {\n __extends(SelectElementContainer, _super);\n function SelectElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n var option = element.options[element.selectedIndex || 0];\n _this.value = option ? option.text || '' : '';\n return _this;\n }\n return SelectElementContainer;\n}(ElementContainer));\n\nvar TextareaElementContainer = /** @class */ (function (_super) {\n __extends(TextareaElementContainer, _super);\n function TextareaElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return TextareaElementContainer;\n}(ElementContainer));\n\nvar IFrameElementContainer = /** @class */ (function (_super) {\n __extends(IFrameElementContainer, _super);\n function IFrameElementContainer(context, iframe) {\n var _this = _super.call(this, context, iframe) || this;\n _this.src = iframe.src;\n _this.width = parseInt(iframe.width, 10) || 0;\n _this.height = parseInt(iframe.height, 10) || 0;\n _this.backgroundColor = _this.styles.backgroundColor;\n try {\n if (iframe.contentWindow &&\n iframe.contentWindow.document &&\n iframe.contentWindow.document.documentElement) {\n _this.tree = parseTree(context, iframe.contentWindow.document.documentElement);\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor)\n : COLORS.TRANSPARENT;\n var bodyBackgroundColor = iframe.contentWindow.document.body\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\n : COLORS.TRANSPARENT;\n _this.backgroundColor = isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? _this.styles.backgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor;\n }\n }\n catch (e) { }\n return _this;\n }\n return IFrameElementContainer;\n}(ElementContainer));\n\nvar LIST_OWNERS = ['OL', 'UL', 'MENU'];\nvar parseNodeTree = function (context, node, parent, root) {\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\n nextNode = childNode.nextSibling;\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\n parent.textNodes.push(new TextContainer(context, childNode, parent.styles));\n }\n else if (isElementNode(childNode)) {\n if (isSlotElement(childNode) && childNode.assignedNodes) {\n childNode.assignedNodes().forEach(function (childNode) { return parseNodeTree(context, childNode, parent, root); });\n }\n else {\n var container = createContainer(context, childNode);\n if (container.styles.isVisible()) {\n if (createsRealStackingContext(childNode, container, root)) {\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n }\n else if (createsStackingContext(container.styles)) {\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\n }\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\n container.flags |= 8 /* IS_LIST_OWNER */;\n }\n parent.elements.push(container);\n childNode.slot;\n if (childNode.shadowRoot) {\n parseNodeTree(context, childNode.shadowRoot, container, root);\n }\n else if (!isTextareaElement(childNode) &&\n !isSVGElement(childNode) &&\n !isSelectElement(childNode)) {\n parseNodeTree(context, childNode, container, root);\n }\n }\n }\n }\n }\n};\nvar createContainer = function (context, element) {\n if (isImageElement(element)) {\n return new ImageElementContainer(context, element);\n }\n if (isCanvasElement(element)) {\n return new CanvasElementContainer(context, element);\n }\n if (isSVGElement(element)) {\n return new SVGElementContainer(context, element);\n }\n if (isLIElement(element)) {\n return new LIElementContainer(context, element);\n }\n if (isOLElement(element)) {\n return new OLElementContainer(context, element);\n }\n if (isInputElement(element)) {\n return new InputElementContainer(context, element);\n }\n if (isSelectElement(element)) {\n return new SelectElementContainer(context, element);\n }\n if (isTextareaElement(element)) {\n return new TextareaElementContainer(context, element);\n }\n if (isIFrameElement(element)) {\n return new IFrameElementContainer(context, element);\n }\n return new ElementContainer(context, element);\n};\nvar parseTree = function (context, element) {\n var container = createContainer(context, element);\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n parseNodeTree(context, element, container, container);\n return container;\n};\nvar createsRealStackingContext = function (node, container, root) {\n return (container.styles.isPositionedWithZIndex() ||\n container.styles.opacity < 1 ||\n container.styles.isTransformed() ||\n (isBodyElement(node) && root.styles.isTransparent()));\n};\nvar createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\nvar isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\nvar isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\nvar isHTMLElementNode = function (node) {\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\n};\nvar isSVGElementNode = function (element) {\n return typeof element.className === 'object';\n};\nvar isLIElement = function (node) { return node.tagName === 'LI'; };\nvar isOLElement = function (node) { return node.tagName === 'OL'; };\nvar isInputElement = function (node) { return node.tagName === 'INPUT'; };\nvar isHTMLElement = function (node) { return node.tagName === 'HTML'; };\nvar isSVGElement = function (node) { return node.tagName === 'svg'; };\nvar isBodyElement = function (node) { return node.tagName === 'BODY'; };\nvar isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\nvar isVideoElement = function (node) { return node.tagName === 'VIDEO'; };\nvar isImageElement = function (node) { return node.tagName === 'IMG'; };\nvar isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\nvar isStyleElement = function (node) { return node.tagName === 'STYLE'; };\nvar isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\nvar isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\nvar isSelectElement = function (node) { return node.tagName === 'SELECT'; };\nvar isSlotElement = function (node) { return node.tagName === 'SLOT'; };\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\nvar isCustomElement = function (node) { return node.tagName.indexOf('-') > 0; };\n\nvar CounterState = /** @class */ (function () {\n function CounterState() {\n this.counters = {};\n }\n CounterState.prototype.getCounterValue = function (name) {\n var counter = this.counters[name];\n if (counter && counter.length) {\n return counter[counter.length - 1];\n }\n return 1;\n };\n CounterState.prototype.getCounterValues = function (name) {\n var counter = this.counters[name];\n return counter ? counter : [];\n };\n CounterState.prototype.pop = function (counters) {\n var _this = this;\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\n };\n CounterState.prototype.parse = function (style) {\n var _this = this;\n var counterIncrement = style.counterIncrement;\n var counterReset = style.counterReset;\n var canReset = true;\n if (counterIncrement !== null) {\n counterIncrement.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n if (counter && entry.increment !== 0) {\n canReset = false;\n if (!counter.length) {\n counter.push(1);\n }\n counter[Math.max(0, counter.length - 1)] += entry.increment;\n }\n });\n }\n var counterNames = [];\n if (canReset) {\n counterReset.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n counterNames.push(entry.counter);\n if (!counter) {\n counter = _this.counters[entry.counter] = [];\n }\n counter.push(entry.reset);\n });\n }\n return counterNames;\n };\n return CounterState;\n}());\nvar ROMAN_UPPER = {\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n};\nvar ARMENIAN = {\n integers: [\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70,\n 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'Ք',\n 'Փ',\n 'Ւ',\n 'Ց',\n 'Ր',\n 'Տ',\n 'Վ',\n 'Ս',\n 'Ռ',\n 'Ջ',\n 'Պ',\n 'Չ',\n 'Ո',\n 'Շ',\n 'Ն',\n 'Յ',\n 'Մ',\n 'Ճ',\n 'Ղ',\n 'Ձ',\n 'Հ',\n 'Կ',\n 'Ծ',\n 'Խ',\n 'Լ',\n 'Ի',\n 'Ժ',\n 'Թ',\n 'Ը',\n 'Է',\n 'Զ',\n 'Ե',\n 'Դ',\n 'Գ',\n 'Բ',\n 'Ա'\n ]\n};\nvar HEBREW = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,\n 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'י׳',\n 'ט׳',\n 'ח׳',\n 'ז׳',\n 'ו׳',\n 'ה׳',\n 'ד׳',\n 'ג׳',\n 'ב׳',\n 'א׳',\n 'ת',\n 'ש',\n 'ר',\n 'ק',\n 'צ',\n 'פ',\n 'ע',\n 'ס',\n 'נ',\n 'מ',\n 'ל',\n 'כ',\n 'יט',\n 'יח',\n 'יז',\n 'טז',\n 'טו',\n 'י',\n 'ט',\n 'ח',\n 'ז',\n 'ו',\n 'ה',\n 'ד',\n 'ג',\n 'ב',\n 'א'\n ]\n};\nvar GEORGIAN = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90,\n 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'ჵ',\n 'ჰ',\n 'ჯ',\n 'ჴ',\n 'ხ',\n 'ჭ',\n 'წ',\n 'ძ',\n 'ც',\n 'ჩ',\n 'შ',\n 'ყ',\n 'ღ',\n 'ქ',\n 'ფ',\n 'ჳ',\n 'ტ',\n 'ს',\n 'რ',\n 'ჟ',\n 'პ',\n 'ო',\n 'ჲ',\n 'ნ',\n 'მ',\n 'ლ',\n 'კ',\n 'ი',\n 'თ',\n 'ჱ',\n 'ზ',\n 'ვ',\n 'ე',\n 'დ',\n 'გ',\n 'ბ',\n 'ა'\n ]\n};\nvar createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\n if (value < min || value > max) {\n return createCounterText(value, fallback, suffix.length > 0);\n }\n return (symbols.integers.reduce(function (string, integer, index) {\n while (value >= integer) {\n value -= integer;\n string += symbols.values[index];\n }\n return string;\n }, '') + suffix);\n};\nvar createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\n var string = '';\n do {\n if (!isNumeric) {\n value--;\n }\n string = resolver(value) + string;\n value /= codePointRangeLength;\n } while (value * codePointRangeLength >= codePointRangeLength);\n return string;\n};\nvar createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\n return ((value < 0 ? '-' : '') +\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\n return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\n }) +\n suffix));\n};\nvar createCounterStyleFromSymbols = function (value, symbols, suffix) {\n if (suffix === void 0) { suffix = '. '; }\n var codePointRangeLength = symbols.length;\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\n};\nvar CJK_ZEROS = 1 << 0;\nvar CJK_TEN_COEFFICIENTS = 1 << 1;\nvar CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\nvar CJK_HUNDRED_COEFFICIENTS = 1 << 3;\nvar createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\n if (value < -9999 || value > 9999) {\n return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0);\n }\n var tmp = Math.abs(value);\n var string = suffix;\n if (tmp === 0) {\n return numbers[0] + string;\n }\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\n var coefficient = tmp % 10;\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\n string = numbers[coefficient] + string;\n }\n else if (coefficient > 1 ||\n (coefficient === 1 && digit === 0) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\n }\n else if (coefficient === 1 && digit > 0) {\n string = multipliers[digit - 1] + string;\n }\n tmp = Math.floor(tmp / 10);\n }\n return (value < 0 ? negativeSign : '') + string;\n};\nvar CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\nvar CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\nvar JAPANESE_NEGATIVE = 'マイナス';\nvar KOREAN_NEGATIVE = '마이너스';\nvar createCounterText = function (value, type, appendSuffix) {\n var defaultSuffix = appendSuffix ? '. ' : '';\n var cjkSuffix = appendSuffix ? '、' : '';\n var koreanSuffix = appendSuffix ? ', ' : '';\n var spaceSuffix = appendSuffix ? ' ' : '';\n switch (type) {\n case 0 /* DISC */:\n return '•' + spaceSuffix;\n case 1 /* CIRCLE */:\n return '◦' + spaceSuffix;\n case 2 /* SQUARE */:\n return '◾' + spaceSuffix;\n case 5 /* DECIMAL_LEADING_ZERO */:\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n return string.length < 4 ? \"0\" + string : string;\n case 4 /* CJK_DECIMAL */:\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\n case 6 /* LOWER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 7 /* UPPER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix);\n case 8 /* LOWER_GREEK */:\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\n case 9 /* LOWER_ALPHA */:\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\n case 10 /* UPPER_ALPHA */:\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\n case 11 /* ARABIC_INDIC */:\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\n case 12 /* ARMENIAN */:\n case 49 /* UPPER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix);\n case 35 /* LOWER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 13 /* BENGALI */:\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\n case 14 /* CAMBODIAN */:\n case 30 /* KHMER */:\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\n case 15 /* CJK_EARTHLY_BRANCH */:\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\n case 16 /* CJK_HEAVENLY_STEM */:\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\n case 17 /* CJK_IDEOGRAPHIC */:\n case 48 /* TRAD_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 47 /* TRAD_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 42 /* SIMP_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 41 /* SIMP_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 26 /* JAPANESE_INFORMAL */:\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\n case 25 /* JAPANESE_FORMAL */:\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 31 /* KOREAN_HANGUL_FORMAL */:\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 33 /* KOREAN_HANJA_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\n case 32 /* KOREAN_HANJA_FORMAL */:\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 18 /* DEVANAGARI */:\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\n case 20 /* GEORGIAN */:\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3 /* DECIMAL */, defaultSuffix);\n case 21 /* GUJARATI */:\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\n case 22 /* GURMUKHI */:\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\n case 22 /* HEBREW */:\n return createAdditiveCounter(value, 1, 10999, HEBREW, 3 /* DECIMAL */, defaultSuffix);\n case 23 /* HIRAGANA */:\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\n case 24 /* HIRAGANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\n case 27 /* KANNADA */:\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\n case 28 /* KATAKANA */:\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\n case 29 /* KATAKANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\n case 34 /* LAO */:\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\n case 37 /* MONGOLIAN */:\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\n case 38 /* MYANMAR */:\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\n case 39 /* ORIYA */:\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\n case 40 /* PERSIAN */:\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\n case 43 /* TAMIL */:\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\n case 44 /* TELUGU */:\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\n case 45 /* THAI */:\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\n case 46 /* TIBETAN */:\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\n case 3 /* DECIMAL */:\n default:\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n }\n};\n\nvar IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\nvar DocumentCloner = /** @class */ (function () {\n function DocumentCloner(context, element, options) {\n this.context = context;\n this.options = options;\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false);\n }\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\n var _this = this;\n var iframe = createIFrameContainer(ownerDocument, windowSize);\n if (!iframe.contentWindow) {\n return Promise.reject(\"Unable to find iframe window\");\n }\n var scrollX = ownerDocument.defaultView.pageXOffset;\n var scrollY = ownerDocument.defaultView.pageYOffset;\n var cloneWindow = iframe.contentWindow;\n var documentClone = cloneWindow.document;\n /* Chrome doesn't detect relative background-images assigned in inline