{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/get-size/get-size.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/ev-emitter/ev-emitter.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/masonry-layout/masonry.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/outlayer/outlayer.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/fizzy-ui-utils/utils.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/desandro-matches-selector/matches-selector.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/outlayer/item.js","webpack:///./widgets/shopListingProductBlock.js","webpack:///./widgets/woolLabSwatchDetailModalBlock.js","webpack:///./widgets/woolLabSwatchBlock.js","webpack:///./widgets/profileListingItemBlock.js","webpack:///./widgets/supplierListingItemBlock.js","webpack:///./widgets/sourcingGuideItemBlock.js","webpack:///./widgets/videoBlock.js","webpack:///./widgets/hubHero.js","webpack:///./widgets/siteHeader.js","webpack:///./widgets/siteHeaderWoolLab.js","webpack:///./widgets/hubGrid.js","webpack:///./widgets/galleryCarousel.js","webpack:///./widgets/careSlider.js","webpack:///./widgets/pageFilter.js","webpack:///./widgets/textFeature.js","webpack:///./widgets/readingTab.js","webpack:///./widgets/provenceMapSlider.js","webpack:///./widgets/featureArticleHero.js","webpack:///./widgets/newsTemplate.js","webpack:///./widgets/imageSlider.js","webpack:///./widgets/instagramBlock.js","webpack:///./widgets/articleGallery.js","webpack:///./widgets/socialBar.js","webpack:///./widgets/eventTemplate.js","webpack:///./widgets/magnifyingGallery.js","webpack:///./widgets/navigator.js","webpack:///./widgets/contactUsSearchBlock.js","webpack:///./widgets/renewalForm.js","webpack:///./widgets/siteFooter.js","webpack:///./widgets/siteFooterWoolLab.js","webpack:///./widgets/siteFooterSitemap.js","webpack:///./widgets/chatbotButton.js","webpack:///./widgets/timelineCarousel.js","webpack:///./widgets/tabContainer.js","webpack:///./widgets/collageImageGridItemBlock.js","webpack:///./widgets/shopFeaturedGridItemBlock.js","webpack:///./widgets/shopProductBlock.js","webpack:///./widgets/shopListingByCategoryBlock.js","webpack:///./widgets/shopListingBlock.js","webpack:///./widgets/ShopVideoBlock.js","webpack:///./widgets/profileListingBlock.js","webpack:///./widgets/supplierListingBlock.js","webpack:///./widgets/sourcingGuideBlock.js","webpack:///./widgets/profileDetailBlock.js","webpack:///./widgets/videoListingBlock.js","webpack:///./widgets/tabbedPartnerContainerBlock.js","webpack:///./widgets/aboutCompetitionBlock.js","webpack:///./widgets/cardsContainerBlock.js","webpack:///./widgets/countdownTimerBlock.js","webpack:///./widgets/downloadBriefBlock.js","webpack:///./widgets/judgesContainerBlock.js","webpack:///./widgets/stepByStepItemBlock.js","webpack:///./widgets/stepByStepContainerBlock.js","webpack:///./widgets/upcomingEventsContainerBlock.js","webpack:///./widgets/articleList.js","webpack:///./widgets/shopItemsWidget.js","webpack:///./widgets/shopItemsCarouselWidget.js","webpack:///./widgets/productItemCarouselWidget.js","webpack:///./widgets/ecommerceBlock.js","webpack:///./widgets/bioListBlock.js","webpack:///./widgets/careculator.js","webpack:///./widgets/featureBlock.js","webpack:///./widgets/gridContainerBlock.js","webpack:///./widgets/horizontalGalleryBlock.js","webpack:///./widgets/horizontalScrollBlock.js","webpack:///./widgets/horizontalYoutubeGalleryBlock.js","webpack:///./widgets/hotspotBlock.js","webpack:///./widgets/iwpApplicationForm.js","webpack:///./widgets/myAccountUpdateProfilePage.js","webpack:///./widgets/newsroomBlock.js","webpack:///./widgets/parallaxFullWidthBlock.js","webpack:///./widgets/quoteBlock.js","webpack:///./widgets/welcomeBannerModal.js","webpack:///./widgets/woolLabImageBlock.js","webpack:///./widgets/woolLabInteractiveMoodboardBlock.js","webpack:///./widgets/woolLabMyMoodboardsBlock.js","webpack:///./widgets/woolLabMySwatchesBlock.js","webpack:///./widgets/woolLabOnboardingBlock.js","webpack:///./widgets/woolLabPersistentSwatchDrawer.js","webpack:///./widgets/woolLabSwatchLibrarySearchBlock.js","webpack:///./widgets/woolLabThemesBlock.js","webpack:///./widgets/bioListItem.js","webpack:///./widgets/judgeItemBlock.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Global.js","webpack:///./widgets/woolLabSaveToMoodboardModalBlock.js","webpack:///../partials/widgets/woolLabSaveToMoodboardModalBlock.hbs","webpack:///./widgets/woolLabShareSwatchModalBlock.js","webpack:///../partials/widgets/shopListingProductBlock.hbs","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/handlebarsHelpers.js","webpack:///./api.js","webpack:///./viewsHandler.js","webpack:///./loadWg/searchBar.js","webpack:///./widgets/careSliderItem.js","webpack:///./widgets/imageSliderItem.js","webpack:///./widgets/searchBar.js","webpack:///./widgets/woolLabRenameMoodboardModalBlock.js","webpack:///../partials/widgets/woolLabShareSwatchModalBlock.hbs","webpack:///../helpers/truncate.js","webpack:///../partials/widgets/woolLabSwatchDetailModalBlock.hbs","webpack:///../partials/widgets/woolLabSwatchBlock.hbs","webpack:///./widgets/woolLabSwatchLibraryHelpModalBlock.js","webpack:///./widgets/provenceMap.js","webpack:///./loadWg/farmItem.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./loadWg/careSliderItem.js","webpack:///./loadWg/provenceMap.js","webpack:///./loadWg/imageSliderItem.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/instafeed.js/dist/instafeed.es.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/scroll-js/dist/scroll.js","webpack:///../partials/widgets/profileListingItemBlock.hbs","webpack:///../partials/widgets/supplierListingItemBlock.hbs","webpack:///../partials/widgets/sourcingGuideItemBlock.hbs","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/moment/locale sync ^\\.\\/.*$","webpack:///../partials/widgets/videoListingItemBlock.hbs","webpack:///../partials/widgets/cardItemBlock.hbs","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/countdown/countdown.js","webpack:///./widgets/farmItem.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/imagesloaded/imagesloaded.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","webpack:///./mediaQuery.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/@mathiasosterkamp/customjspdf/dist/jspdf.es.min.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/fflate/esm/browser.js","webpack:///../partials/widgets/woolLabRenameMoodboardModalBlock.hbs","webpack:///../partials/widgets/woolLabSwatchLibraryHelpModalBlock.hbs","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Util.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Validators.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Factory.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Context.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Canvas.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/DragAndDrop.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Node.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Container.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/PointerEvents.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Stage.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Shape.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Layer.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/FastLayer.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Group.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Animation.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/Tween.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/_CoreInternals.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Arc.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Line.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Path.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Arrow.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Circle.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Ellipse.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Image.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Label.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Rect.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/RegularPolygon.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Ring.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Sprite.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Star.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Text.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/TextPath.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Transformer.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/shapes/Wedge.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Blur.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Brighten.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Contrast.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Enhance.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Emboss.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/HSL.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/HSV.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Mask.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Kaleidoscope.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Noise.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Pixelate.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Posterize.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/RGB.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/RGBA.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Threshold.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/_FullInternals.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Grayscale.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Invert.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Sepia.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/filters/Solarize.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/konva/lib/index.js","webpack:////Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/svelte/shared.js","webpack:///./svelte/SearchBar.js","webpack:///./svelte.js","webpack:///./bioPageLoader.js","webpack:///./widgets/contactUsLocation.js","webpack:///./widgets/keyDateItemBlock.js","webpack:///./widgets sync ^\\.\\/.*$"],"names":["window","getStyleSize","value","num","parseFloat","indexOf","isNaN","logError","console","message","measurements","measurementsLength","length","getStyle","elem","style","getComputedStyle","isBoxSizeOuter","isSetup","getSize","div","document","createElement","width","padding","borderStyle","borderWidth","boxSizing","body","documentElement","appendChild","Math","round","removeChild","setup","querySelector","nodeType","display","size","height","innerWidth","innerHeight","outerWidth","outerHeight","i","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","EvEmitter","proto","prototype","on","eventName","listener","events","this","_events","listeners","push","once","onceEvents","_onceEvents","off","index","splice","emitEvent","args","slice","onceListeners","apply","allOff","Outlayer","Masonry","create","compatOptions","fitWidth","_resetLayout","_getMeasurement","measureColumns","colYs","cols","maxY","horizontalColIndex","getContainerWidth","columnWidth","firstItem","items","firstItemElem","element","containerWidth","gutter","excess","max","container","_getOption","parentNode","_getItemLayoutPosition","item","remainder","colSpan","min","colPosition","options","horizontalOrder","position","x","col","y","setHeight","setMax","_getTopColPosition","colGroup","_getTopColGroup","minimumY","groupCount","_getColGroupY","groupColYs","_getHorizontalColPosition","hasSize","_manageStamp","stamp","stampSize","offset","_getElementOffset","firstX","left","right","lastX","firstCol","floor","lastCol","stampMaxY","top","bottom","_getContainerSize","_getContainerFitWidth","unusedCols","needsResizeLayout","previousWidth","factory","utils","Item","jQuery","noop","GUID","instances","queryElement","getQueryElement","$element","extend","constructor","defaults","option","id","outlayerGUID","_create","layout","error","namespace","containerStyle","initLayout","originLeft","originTop","resize","resizeContainer","transitionDuration","hiddenStyle","opacity","transform","visibleStyle","subclass","Parent","SubClass","arguments","Object","opts","oldOption","undefined","horizontal","layoutInstant","reloadItems","stamps","bindResize","_itemize","children","elems","itemElems","_filterFindItemElements","filterFindElements","itemSelector","getItemElements","map","_manageStamps","isInstant","_isLayoutInited","layoutItems","_init","HTMLElement","_getItemsForLayout","_layoutItems","_postLayout","filter","isIgnored","_emitCompleteOnItems","queue","forEach","isLayoutInstant","_processLayoutQueue","updateStagger","obj","_positionItem","stagger","time","matches","match","unit","msUnits","getMilliseconds","goTo","moveTo","_setContainerMeasure","measure","isWidth","elemSize","_this","onComplete","dispatchEvent","count","doneCount","tick","type","event","emitArgs","concat","$event","Event","trigger","ignore","getItem","unignore","_find","unstamp","removeFrom","querySelectorAll","makeArray","_getBoundingRect","boundingRect","getBoundingClientRect","_boundingRect","thisRect","handleEvent","addEventListener","isResizeBound","unbindResize","removeEventListener","onresize","debounceMethod","addItems","appended","reveal","prepended","previousItems","hide","revealItemElements","getItems","hideItemElements","remove","removeItems","destroy","removeData","data","Layout","htmlInit","bridget","ms","s","matchesSelector","a","b","prop","arraySlice","Array","isArray","call","ary","getParent","selector","method","ffElems","childElems","_class","methodName","threshold","timeoutName","timeout","clearTimeout","setTimeout","docReady","callback","readyState","toDashed","str","replace","$1","$2","toLowerCase","WidgetClass","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","attr","getAttribute","JSON","parse","className","instance","matchesMethod","ElemProto","Element","prefixes","docElemStyle","transitionProperty","transition","transformProperty","transitionEndEvent","WebkitTransition","vendorProperties","transitionDelay","_transn","ingProperties","clean","onEnd","css","elemStyle","getPosition","isOriginLeft","isOriginTop","xValue","yValue","layoutSize","layoutPosition","xPadding","xProperty","xResetProperty","getXValue","yPadding","yProperty","yResetProperty","getYValue","isHorizontal","percentPosition","_transitionTo","curX","curY","didNotMove","setPosition","isTransitioning","transX","transY","transitionStyle","getTranslate","to","onTransitionEnd","isCleaning","_nonTransition","_removeStyles","_transition","from","enableTransition","transitionProps","duration","staggerDelay","onwebkitTransitionEnd","ontransitionend","onotransitionend","dashedVendorProperties","target","propertyName","isEmptyObj","disableTransition","removeTransitionStyles","cleanStyle","cleanTransitionStyle","delay","removeElem","isHidden","getHideRevealTransitionEndProperty","onRevealTransitionEnd","styleProperty","optionStyle","onHideTransitionEnd","ShopListingProductBlock","_createClass","_classCallCheck","_regeneratorRuntime","e","t","r","n","hasOwnProperty","o","defineProperty","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","Context","makeInvokeMethod","tryCatch","arg","h","f","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","key","toPrimitive","String","Number","_toPrimitive","CLS","WoolLabSwatchDetailModalBlock","el","$el","$","getSwatchDetailApi","getSupplierDetailApi","isInMySwatchesApi","username","isStudentApi","isStudent","$btnClose","find","$swatchToggleBtns","$arrowBtns","$btnPrev","$btnNext","$widthMarker","$canvasContainerInner","$btnSave","$btnMoodboard","$btnGetSupplier","$detailTitle","$detailID","$detailWidthCount","$detailIcons","$detailInformation","$supplierTxt","addToMoodboardApi","createMoodboardApi","getMoodboardsApi","$nextSwatch","$prevSwatch","init","addMoodboardSwatchState","CameraControls","install","THREE","cameraControls","camera","swatchMesh","$zoom","zoomImgURL","swatchGeometry","loadingMaterial","shadowTexture","shadowGeo","shadowMat","shadowMesh","This","$wg","clock","loader","renderer","antialias","scene","SWATCH_HEIGHT","SWATCH_WIDTH","hasClass","_transitionOut","transitionOut","resetToggles","disableDragging","currentTarget","$prevSwatchID","getSwatch","$nextSwatchID","CANVAS_RESIZE_OBSERVER","unobserve","showLoadingScreen","url","addToMySwatchesApi","fetch","cache","stringify","headers","saved","response","json","_json","_error","updateDetails","removeClass","awiGlobalHelper","reloadSwatchLibraryMySwatches","saveSwatch","getSupplierInfo","$btn","isSelected","addClass","requestAnimationFrame","animate","rotateAzimuthTo","DEG2RAD","magnify","src","magnifiedWidth","magnifiedHeight","setClearColor","setPixelRatio","devicePixelRatio","setSize","append","domElement","set","add","rotateSpeed","mouseButtons","ACTION","NONE","wheel","middle","enableDamping","dampingFactor","minPolarAngle","PI","maxPolarAngle","light","createScene","color","load","transparent","rotation","ResizeObserver","entries","rect","contentRect","aspect","updateProjectionMatrix","render","delta","getDelta","updated","update","enableDragging","backImageSrc","enabled","_callee","_context","truck","html","thickness","updateSavedSwatchState","$librarySwatchBlock","parent","show","iconsHTML","benefits","icon","oriIcon","replaceAll","empty","infoHTML","details","archived","supplierInfo","highlights","$highlightInfo","handleTruncate","updateSwatch","frontImageSrc","_x","_updateSwatchObject","updateSwatchObject","frontImgURL","backImgURL","sideImgURL","sideImageSrc","_callee2","_ref","_context2","loadTexture","frontImg","backImg","sideImg","res","onTextureLoaded","_ref2","all","loadAsync","textures","frontTexture","backTexture","clone","sideTexture","frontMaterial","alphaTest","backMaterial","needsUpdate","wrapS","wrapT","repeat","sideMaterial","material","observe","displaySaveToMoodboardModal","modalWidget","require","Handlebars","registerPartial","precompiled","Function","precompile","template","getSaveToMoodboardModalTemplate","$modal","modalData","selectedItems","itemType","WoolLabSaveToMoodboardModalBlock","modal","WoolLabSwatchBlock","email","$id","$title","$imageWrap","$image","$btnWrap","$btnAddSave","fetchDetailsFromApi","isLoggedIn","isSaved","getValues","handleButtons","navigator","maxTouchPoints","msMaxTouchPoints","displayDetails","getModalTemplate","ratio","ratioStr","ratioNum","_this2","encodeURIComponent","thumbnailImageSrc","ProfileListingItemBlock","SupplierListingItemBlock","SourcingGuideItemBlock","VideoBlock","setVideoBlock","wg","videoType","videoId","video","vimeoPlayer","img","imgWidth","imgHeight","scrollToEl","isVimeoLink","Player","isYoutubeLink","embedLink","isYoukuLink","play","wgWidth","videoWidth","videoHeight","WG","HubHero","classList","playVideo","$video","youTubePlayers","setVolume","$win","$doc","SiteHeader","setSiteHeader","setSearchBar","setSticky","onResizeAdjustHeaderContentWidth","setHeaderBottomFix","setupMegaMenu","setupSubMenu","headerWrap","firstElement","firstEleHeight","clientHeight","addTopSpacing","navBarToggle","megaMenu","mmBackBtn","toggleClass","loadSearchBar","stickyToggle","sticky","stickyWrapper","scrollElement","stickyHeight","stickyTop","scrollTop","each","before","nav","content","logo","logoWidth","paddingForLogoLeftSide","paddingForLogoBothSides","logoDisplayedArea","logoWrapperWidth","overflow","getWindowWidth","isOnMobile","expandHeader","minifyHeader","$logoHit","$homePage","scrollPercent","scrollPercentRounded","mainOffset","$hb","preventDefault","stopPropagation","megaMenuContent","slideDown","winBottom","megaMenuContentOffset","megaMenuContentOuterHeight","posDiff","scrollAdjust","mainContent","padTop","$userMenu","setInterval","transformValues","transformArr","split","z","currentList","closest","not","SiteHeaderWoolLab","setSiteHeaderWoolLab","HubGrid","setHubGrid","openBtn","closeBtn","GalleryCarousel","isWpc","$carousel","checkImage","slick","setLandscapeImage","handleLongCaption","$this","siblings","$sliderNavLine","detach","arrows","dots","centerMode","centerPadding","appendDots","draggable","slidesToShow","variableWidth","responsive","breakpoint","settings","adaptiveHeight","currentSlide","objectFitImages","handleWindowResize","handleSlidesLinks","_this3","carouselW","slide","$imgWrap","$caption","captionHtml","imgW","maxWidth","imgH","naturalHeight","naturalWidth","wgW","checkBP","$slide","$slickSlide","newW","$iframe","CareSlider","currentSlideIndex","slideToBeShownAtInit","setCareSlider","setCareSliderItem","loadCareSliderItem","wgAll","slideIndex","getSlideWrapper","eq","itemTitle","text","isDesktopSize","unslick","applySlick","isDraging","prevClientX","pointer","circleWrapper","pointerWidth","parentWidth","circleWidth","spaceBetweenCircle","showSlideItemAtIndex","mousedown","clientX","change","selectedIndex","isSlickSlider","mouseup","parseInt","space","newLeft","mousemove","diff","PageFilter","updateQueryStringParameter","setPageFilter","handleSearchInput","ddItems","clearFilters","selText","parents","filterType","filterValue","toLocaleLowerCase","location","href","$searchBtn","$searchTxt","search","txt","val","keyCode","TextFeature","setTextFeature","trim","firstLetter","substring","ReadingTab","$elObj","$iconList","$iconItem","isIphone","initUtilityBar","setReadingTab","showReadingTabIcon","setOpenReadingTabBtn","$readingTabToggle","$readingTabClose","$readingTabRevealBtn","$shareToggle","$overlay","showReadingTab","revealMobileBtns","percent","scrollHeight","scroll","currentY","pageYOffset","updatePercentageCircle","doShow","$content","readingTabHeight","availableHeight","totalWidth","contains","calculateWidth","curStyle","$icon","iconWidth","ProvenceMapSlider","initCarousel","loadProvenceMaps","handleIframe","loadProvenceMap","$navLinks","$navPrev","$navNext","navWidth","scrollDistance","get","scrollWidth","scrollPos","fade","scrollLeft","iframe","overflowY","maxHeight","scrollPosition","FeatureArticleHero","setImageHeight","isIPhone","isIPad","inIframe","NewsTemplate","handleImageCaption","checkContainer","initAffix","removeAttr","leftOffset","stick_in_parent","offset_top","$wrapper","imageH","contH","minHeight","ImageSlider","setImageSlider","setImageSliderItem","loadImageSliderItem","circleSlickSlider","desktopNavItems","slides","showSlideAtIndex","thisNavItem","slideForHide","slideForShow","fadeOut","fadeIn","click","InstagramBlock","readMore","topLogo","sideLogo","isScroll","insToken","Instafeed","resolution","limit","accessToken","run","infinite","autoplay","autoplaySpeed","slidesToScroll","ArticleGallery","initArticleGallery","slideCount","SocialBar","initSocialBar","onModalShow","socialButtons","social","currentPage","setAttribute","wgTopOffset","clientWidth","EventTemplate","MagnifyingGallery","images","imagesLoaded","totalImages","imgSrc","objImg","Image","onload","initMagnify","appendArrows","nextArrow","prevArrow","limitBounds","mobileCloseEvent","Navigator","setNavigator","handleOnHover","hover","$nav","showPreview","ContactUsSearchBlock","setCountryList","handleCountryOnSelect","inputTerms","termsArray","prefix","terms","results","sortedResults","input","searchResults","searchIndex","evaluateResults","sort","sortResults","appendResults","innerHTML","clearResults","resultItem","selectResult","selected","innerText","focus","join","list","label","Awesomplete","minChars","autoFirst","$mapList","selCountry","$map","countries","country","RenewalForm","setValidation","handleSubmitBtn","handleCurrency","validate","errorClass","errorElement","$form","valid","submit","getElementById","SiteFooter","showButtonFooter","$selectedLangItem","$langToggle","$langItems","$siteFooterSiteMap","$linkMore","SiteFooterWoolLab","SiteFooterSitemap","slideAnimationDuration","scrollAnimationDuration","scrollEasing","isAnimating","$siteFooter","scrollIntoView","easing","slideUp","ChatbotButton","setChatbotButton","handleBtnClick","$happytalkBtn","open","TimelineCarousel","setTimelineCarousel","initSlider","slider","$img","focusOnSelect","nextSlide","TabContainer","setTabContainer","initTopPosition","timer","tabsTitles","TI","TIB","header","tabItems","hasHash","hash","$activeTitle","tabTitle","title","generateId","titleHtml","tabItemId","first","$activeTab","isElementOutViewport","parentItem","hashValue","isBelowMd","random","CollageImageGridItemBlock","setCollageImageGridItemBlock","ShopFeaturedGridItemBlock","setShopFeaturedGridItemBlock","ShopProductBlock","$subtitle","$productUrl","$shopUrl","$bgImg","$certifiedIcon","prodApi","getApiDefaultOptions","featureProd","image","designers","isCertified","ShopListingByCategoryBlock","$searchResultsEmpty","$shopProducts","$loadMoreBtn","$loadingScreen","$loadMore","getCategory","getProductsApi","getPageSize","getLoadMore","loadingProducts","allProductsLoaded","pageSize","pageNumber","$productBlock","initParams","handleScrollLoading","params","category","shopListingProductBlock","loadMoreProducts","setPageNumber","_","isEmpty","param","ajax","success","$column","getShopListingProductBlockTemplate","last","newPageNumber","ShopListingBlock","$filterKeys","$filterDropdown","$filterDropdownMenu","$searchInp","$clearFilterBtn","$certifiedContents","$cateContents","$cateContentsTitle","$cateContentsDescription","$cateCertifiedTitle","$cateCertifiedDescription","$typeSelectpick","$keyword","getAllTypes","$productTypes","$urlcategoryArr","url_string","URL","$urlkeyword","searchParams","$urlcategory","$urltype","$isCertified","selectpicker","handleFilterClearBtn","initFilterKeys","clear","keyword","newCategory","updateUrl","uri","pathname","history","pushState","URLSearchParams","_this4","filterTypeByCategory","scrollTo","types","_this5","typeArr","filterTypeByType","_this6","handleFilterClick","filterKey","isNil","toString","_this7","stringProductTypes","toArray","flat","Boolean","includes","ShopVideoBlock","setShopVideoBlock","ProfileListingBlock","$profileLists","getProfilesApi","getPageId","loadingProfiles","allProfilesLoaded","$urllocation","$urlsustainability","$urlcertification","$urlmicrons","pageId","sustainability","certification","microns","profileListingItemBlock","loadMoreProfiles","getProfileListingItemBlockTemplate","SupplierListingBlock","$supplierLists","$searchBar","$searchBarIcon","$faBars","$faTimes","$countries","$types","$sustainabilities","$searchBarFilters","getSuppliersApi","loadingSuppliers","allSuppliersLoaded","onscroll","scrollY","$urlcountries","$urlsustainabilities","$urltypes","isFilterPopulated","sustainabilities","supplierListingItemBlock","registerHelper","ifCond","loadMoreSuppliers","filters","suppliers","website","substr","newitem","getSupplierListingItemBlockTemplate","SourcingGuideBlock","$sourcingGuides","$locations","getSourcingApi","loadingSourcing","allSourcingsLoaded","$urllocations","locations","sourcingGuideItemBlock","loadMoreSourcings","loadingSourcings","sourcing","getSourcingGuideItemBlockTemplate","ProfileDetailBlock","$slider","$videoImg","$grid","$playVideo","$water","$waterPractices","$climate","$climatePractices","$biodiversity","$biodiversityPractices","$stewardship","$stewardshipPractices","$land","$landPractices","$wellbeing","$wellbeingPractices","$clip","$clipPractices","$responsibility","$responsibilityPractices","VideoListingBlock","page","loadingSpinner","videosList","loadMore","setVideoBlockItem","setVideoListingBlock","getVideos","debounce","mobileFiltersBtn","clearList","getVideosCall","hasMore","videos","videoDate","moment","format","videoBlockHtml","videoBlockItemTemplate","err","endpoint","extraParams","Api","partial","TabbedPartnerContainerBlock","setTabbedPartnerContainerBlock","renderDropdown","setDropdownMobile","setId","tabsBtns","showPartner","tabs","dropdownItem","tab","idx","generateRandomId","$selectedTabTitle","$selectedTab","$selectedDropdownItem","$dropdownBtn","$tabTite","$dropdownItem","$tabTitle","itemTmpl","tmpl","prepend","AboutCompetitionBlock","setAboutCompetitionBlock","aboutCompetitionBlockText","aboutCompetitionBlockImages","CardsContainerBlock","cardsList","setCardItem","setCardsContainerBlock","getItemsCall","itemHtml","cardBlockItemTemplate","CountdownTimerBlock","setCountdownTimerBlock","deadlineDateTimestamp","targetDate","Date","cuurentUTCDate","toUTCString","utc","unix","weeks","days","hours","minutes","seconds","countdown","ts","clearInterval","showEndMessage","pad2","WEEKS","DAYS","HOURS","MINUTES","SECONDS","number","DownloadBriefBlock","setDownloadBriefBlock","selectedFileLink","JudgesContainerBlock","setJudgesContainerBlock","StepByStepItemBlock","setStepByStepItemBlock","stepByStepItemBlockText","stepByStepItemBlockImages","StepByStepContainerBlock","setStepByStepContainerBlock","stepsBtns","steps","indx","imgHolder","newIndex","currentIndex","UpcomingEventsContainerBlock","setUpcomingEventsContainerBlock","upcomingEventContainerBlockText","upcomingEventContainerBlockImages","ArticleList","setArticleList","$loadMoreForm","$loadBtn","$items","itemsCount","skipCount","startPos","endPos","ShopItemsWidget","api","$dropdowns","$dropdownItems","$menu","$filters","$loadMoreWrap","$sortDropdown","sourceId","shopName","windowWidth","urlPattern","initDropdowns","initFilters","initStickyFilter","moveDropdown","updateParam","handleResize","handleClearFilter","initProductItemWidget","$parent","$filterItemHeader","$filterRadio","rotateIcon","initialDegree","degree","deg","step","now","$filterToggler","concealFilter","appendTo","prependTo","sourceID","lang","filterObj","$selectedRadio","radioVal","radioName","$selectedDropdown","origin","ShopItemsCarouselWidget","ProductItemCarouselWidget","$subTitle","carouselProd","EcommerceBlock","initProductItem","BioListBlock","setBioListBlock","Careculator","setCareculator","resizeListener","newVal","$radios","$select","isSmallerThanTablet","FeatureBlock","setFeatureBlock","initCompactView","initFullWindowHeight","assign","compactViewMixin","fullWindowHeightMixinBlock","GridContainerBlock","$rows","$item","$background","$loadMoreWrapper","totalItem","hideItems","handleLoadMoreBtn","onImageLoaded","visibleItemsCount","$showItem","setMobileHieght","setDesktopHeight","row","$row","rowH","ImagesLoaded","background","imgObj","HorizontalGalleryBlock","HorizontalScrollBlock","setHorizontalScrollBlock","scroller","scrollerItems","PerfectScrollbar","minScrollbarLength","maxScrollbarLength","deltaY","scrollDirection","maxScrollLeft","HorizontalYoutubeGalleryBlock","HotspotBlock","$canvas","$hotspots","$hotspotColumnContent","$card","$cardDescription","cardAnimationDuration","cardAnimationCompleted","$activeHotspotBlock","$imageProperties","setRatio","scaleImage","setHotspots","setHotspotClickEvent","setHotspotContentHeight","initTrackingItems","visibility","isFinite","abs","deactivate","activate","$elementToActivate","description","is","mediaQuery","breakpointMaxWidth","BREAKPOINTS","LG","trackingItemsMixinBlock","IwpApplicationForm","$sections","$navs","$navSteps","$navsTitle","headerOffset","$mobileStepCount","setActiveSection","previous","activeIndex","initLoad","sectionActiveIndex","MyAccountUpdateProfilePage","$scroller","countryAPI","registerAPI","$errorMessagesServerSide","$sucessMessages","$formValidate","loadCountries","buildForm","selectEvents","resetForm","siteTypeId","$countrySelect","markup","Name","blur","formGroupElements","woolmarkContactTypeLicence","woolmarkContactTypeOther","areaStudyOther","validator","addMethod","_element","RegExp","regexPassword","test","_index","submitHandler","form","array","serializeArray","formData","forOwn","json_text","request","Request","status","handleServerSideError","statusText","invalidHandler","errorList","scrollToElement","rules","Salutation","required","FirstName","LastName","Email","Country","EducationLevel","OverMinimumAge","TermsAndConditions","messages","errorPlacement","after","insertAfter","highlight","unhighlight","NewsroomBlock","$cards","$cardCheckboxInputs","$checkbox","isChecked","toggleBtnDownloadDisabled","$btnDownload","downloadSelected","downloader","ParallaxFullWidthBlock","$imgWrapper","backgroundImage","isIOS","isAndroid","jarallaxLoaded","jarallax","getScript","backgroundAttachment","QuoteBlock","REGION_STORAGE_NAME","WelcomeBannerModal","onModalOpen","checkLocalStorage","checkHash","handleLink","region","localStorage","currentUrl","baseAddress","pathName","link","newUrl","$link","code","setItem","urlHashString","urlHash","WoolLabImageBlock","$btnAddToMoodboard","featureMoodboardsEnabled","initFeatureFlags","WoolLabInteractiveMoodboardBlock","autoSaveTimeout","activeSwatchId","activeImageCanvasId","activeNoteId","isAddNoteActive","zoomIncriment","scale","newItemGridSpacing","$persistentDrawAddMoodboardBtn","$persistentDrawSwatches","moodboardName","moodboardId","swatchIds","$canvasContainer","$notepad","$resetCanvasBtn","$addNoteBtn","$notepadCloseBtn","$notepadDeleteBtn","$notepadPostBtn","$zoomInBtn","$zoomOutBtn","getMoodboardApi","updateMoodboardApi","deleteMoodboardApi","shareSwatchesApi","myMoodboardsUrl","moodboardNoteImg","noteCursorImg","notesHoverText","centreHoverText","$optionsBtn","$optionsDropdown","$optionsRenameBtn","$optionsShareBtn","$optionsDeleteBtn","$deleteMoodboardPanel","$deleteMoodboardPanelDeleteBtn","$deleteMoodboardPanelCancelBtn","$contextMenu","$contextMenuUpButton","$contextMenuDownButton","$selectOptionsPanel","$selectOptionsAddMySwatchedBtn","$selectOptionsRemoveBtn","$selectOptionsCloseBtn","initNotepad","handleOptionBtns","handleDeleteMoodboardBtns","handleSelectOptionsButtons","handleNotepadButtons","handleCanvasButtons","initCanvas","checkIfMoodboardChanged","tinymce","plugins","content_style","menubar","statusbar","paste_as_text","toolbar","selectedItem","sceneWidth","sceneHeight","fitStageIntoParentContainer","stage","Konva","Stage","layer","Layer","pos","getRelativePointerPosition","deactivateAddNote","generateNote","cursor","transformer","nodes","closeSelectOptions","evt","containerRect","getPointerPosition","moveUp","moveDown","Transformer","keepRatio","enabledAnchors","anchorStroke","anchorFill","anchorSize","borderStroke","rotateAnchorOffset","getMoodboardJSON","dataType","moodboardJSON","salesforce","previousMoodboardJSON","isEqual","saveItems","getChildren","node","attrs","transformation","toJSON","swatch","swatchId","swatchImgSrc","imageUrl","newItemInt","transformationAttrs","generateImage","imageObj","scaleCenterView","scaleX","scaleY","cornerRadius","setAttrs","fullImageSrc","rotateEnabled","_id","openSelectOptions","openNotepad","fromURL","imageNode","dataNote","getAttr","moveToTop","activateAddNote","zoom","selectedSwatches","selectedSwatch","addSwatchesToMoodboard","closeNotepad","removeItemFromMoodboard","itemCanvasId","yMin","xMin","xMax","nodeWidth","getClassName","xDif","xPos","yPos","zoomBefore","inc","oldScale","zoomPoint","zoomAfter","newPos","saveNotepadText","activeEditor","setContent","notepadContent","getContent","setAttr","_this8","displayRenameMoodboardModal","generatePdf","_this9","addSwatchToMySwatches","_this10","_this11","stageCopy","posX","posY","pdf","jsPDF","Rect","fill","moveToBottom","addImage","toDataURL","mimeType","pixelRatio","quality","notes","nodeIndex","pageCount","dataPageHeight","addNote","nWidth","noteTitle","dataPageTitle","html2canvas","backgroundColor","ceil","addPage","setPage","colIndex","dataPageWidth","save","getShareSwatchModalTemplate","selectedSwatchIds","WoolLabShareSwatchModalBlock","_this12","getRenameMoodboardModalTemplate","WoolLabRenameMoodboardModalBlock","_this13","swatchItem","saveSwatchesFromPD","WoolLabMyMoodboardsBlock","$moodboardContainer","$myMoodboardsEmpty","moodboardContainer","loadingMoodboards","allMoodboardsLoaded","moodboardBaseUrl","$moodboards","loadMoreMoodboards","moodboard","imgMarkup","newContent","swatchCount","moodboardMarkup","ele","toUpperCase","totalMoodboard","displayNone","WoolLabMySwatchesBlock","$filterDropdownBtn","$fabricSwatches","$loadMoreSpinner","fabricSwatches","$refineFilterBtn","$selectFilterBtn","$filterRefined","$selectBtns","$season","$theme","$certified","$supplier","$country","$benefits","$archived","$displayGridBtn","$displayListViewBtn","getAllThemes","removeSwatchesApi","getSupplierInfoApi","getSwatchesApi","getFiltersApi","loadingSwatches","allSwatchesLoaded","$swatchBlock","$removePanel","$removePanelRemoveBtn","$removePanelCancelBtn","$swatchSelectPanel","$swatchSelectCount","$swatchSelectClearBtn","$swatchSelectGetSupplierBtn","$swatchSelectShareBtn","$swatchSelectRemoveBtn","$swatchSelectSaveBtn","$urltheme","$urlseason","$urlcertified","$urlcountry","$urlsupplier","$urlbenefits","$urlarchived","handleDisplayToggleButtons","handleFilterToggleBtn","handleSavePanelBtns","handleRemovePanelBtns","handlePanelBtnsVisibility","getFilters","theme","season","certified","supplier","woolLabSwatchBlock","seasonOptions","selectpickerRefresh","loadMoreSwatches","isStudentValue","getWoolLabSwatchBlockTemplate","handleSwatchBtn","updateSelectedSwatchCount","_step","_iterator","_createForOfIteratorHelper","$woolLabSwatchBlock","$target","$swatch","filteredItems","every","resetSavePanel","displayShareSwatchModal","WoolLabOnboardingBlock","$questionsCarousel","$questionContainer","$nextBtn","$prevBtn","$progressBarInner","$sliderPrevBtn","$sliderNextBtn","$questionCount","$startScreen","$startBtn","$endScreen","onLastSlide","$formAction","percentage","checkboxes","radios","nextBtn","hideScreen","showScreen","handleFormSubmission","serialize","WoolLabPersistentSwatchDrawer","getMySwatchesApi","addToMySwatches","useDetailsModal","isstudentApi","$addToMoodboardBtn","$openBtn","$panel","$closeBtn","imageSrc","getSwatches","displaySwatchDetailModal","WoolLabSwatchLibrarySearchBlock","$themesCarousel","myMoodboardsData","$saveSwatchPanel","$saveSwatchCount","$saveSwatchHelpBtn","$saveSwatchClearBtn","$saveSwatchSaveBtn","$saveSwatchLocationBtn","initThemesCarousel","getMySwatches","swipeToSlide","themes","userName","filterThemeBySeason","themesArr","selectedVal","stringThemes","$themes","$urlseasonArr","$urlthemeArr","$urlcountryArr","$urlcertifiedArr","$urlbenefitsArr","displayHelpModal","$locationBtn","$selectedSwatch","getHelpModalTemplate","WoolLabSwatchLibraryHelpModalBlock","_this14","WoolLabThemesBlock","BioListItem","setBioListItem","pageLoaded","bioPage","linkTrigger","initPageLoader","JudgeItemBlock","setJudgeItemBlock","PI_OVER_180","glob","global","WorkerGlobalScope","self","_global","version","isBrowser","isUnminified","dblClickWindow","getAngle","angle","angleDeg","enableTrace","pointerEventsEnabled","autoDrawEnabled","hitOnDragEnabled","capturePointerEventsEnabled","_mouseListenClick","_touchListenClick","_pointerListenClick","_mouseInDblClickWindow","_touchInDblClickWindow","_pointerInDblClickWindow","_mouseDblClickPointerId","_touchDblClickPointerId","_pointerDblClickPointerId","dragDistance","showWarnings","dragButtons","isDragging","isDragReady","releaseCanvasOnDestroy","_registerNode","NodeClass","_injectGlobal","$moodboardSearchInput","$moodboardsContainer","$saveToMoodboardsDiv","$btnNewMoodboard","$btnDone","selectedMoodboardId","newMoodboardText","$newMoodboardDiv","$newMoodboardCreateBtn","$newMoodboardInput","showNewMoodboardPanel","createMoodboard","addSwatchToMoodboard","handleNewMoodboardInput","getMoodboards","updateMoodboards","$moodboard","moodboardHTML","swatchText","handleMoodboardClicked","$newMoodboardCreateBt","moodboardsName","inputMoodboardName","nameArray","inputText","containsDuplicates","hideNewMoodboardPanel","module","exports","depth0","helpers","partials","helper","alias1","nullContext","alias2","hooks","helperMissing","alias3","alias4","escapeExpression","lookupProperty","shareEmail","$sendBtn","$emailInput","postShareSwatchesApi","stack1","lambda","program","v1","operator","v2","fn","inverse","getApi","credentials","Headers","ok","reject","setElementHeight","$tplHeader","headerHeight","classes","$tplScroller","applyCompactView","classItem","isBlockExceedingHeight","toggleCompactViewAttribute","trackingId","$tracker","activeItems","trackingItemId","$parentEl","isList","SearchBar","$wgCol","CareSliderItem","ImageSliderItem","divider","innerLayer","imageSlickSlider","handleToggle","placeholder","searchUrl","searchBar","WGSearchBar","apiEndpoint","wgOffset","wgOuterHeight","newName","$updateBtn","$input","getMyMoodboardsApi","$inputContainer","arrMyMoodboardsNames","getMyMoodboards","names","parseJSON","responseText","originalHtml","readMoreLabel","readLessLabel","readLess","ellipsis","trimmedHtml","truncate","decodeEntities","keepWhitespaces","ProvenceMap","loadFarmItem","FarmItem","OFI","propRegex","testImg","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","onImageReady","fixOne","parsed","fontFamily","props","exec","ofi","skipTest","srcset","descriptors","ss","keepSrcUsable","picturefill","pf","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","imgs","startAutoMode","getElementsByTagName","tagName","watchMQ","bind","getOfiImageMaybe","HTMLImageElement","hijackAttributes","assert","msg","accessTokenTimeout","apiTimeout","apiLimit","debug","mock","templateBoundaries","optKey","_state","running","token","paging","pool","_options","scope","_debug","_start","_getAccessToken","_fail","_showNext","_finish","hasNext","poolItems","hasLimit","_renderData","renderErr","_makeApiRequest","processed","_success","_processData","unused","processErr","hasTransform","hasFilter","hasSort","transformedFiltered","limitDelta","dataItem","transformedItem","filterResult","unusedItems","_getItemData","_extractTags","exp","badChars","tags","media_type","media_url","thumbnail_url","caption","permalink","model","timestamp","hasTemplate","hasRender","_basicRender","childNodes","output","lastIndex","keyPath","keyPathValue","_valueForKeyPath","lastValue","_runHook","called","apiRequest","callbackOnce","XMLHttpRequest","ontimeout","onerror","contentType","getResponseHeader","responseJson","send","timeoutCheck","log","hookName","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","result","validateElement","_sanitizeScrollOption","sanitizeScrollOptions","getDocument","currentContainerScrollYPos","elementScrollYPos","offsetTop","_scroll","currentScrollPosition","scrollProperty","Window","startTime","easeFunc","currentTime","setScrollPosition","getScrollPosition","getScrollPropertyByElement","getEasing","behavior","easingMap","linear","blockParams","depths","webpackContext","req","webpackContextResolve","__webpack_require__","borrowMonths","ref","shift","prevTime","getTime","setMonth","getMonth","HOURS_PER_DAY","daysPerMonth","addToDate","date","setTime","milliseconds","setMilliseconds","setSeconds","getSeconds","setMinutes","getMinutes","setHours","getHours","setDate","getDate","months","millennia","centuries","decades","years","setFullYear","getFullYear","LABELS_SINGLUAR","LABELS_PLURAL","LABEL_LAST","LABEL_DELIM","LABEL_NOW","formatter","formatNumber","formatList","plurality","Timespan","fraction","frac","fromUnit","toUnit","conversion","digits","toFixed","refMonth","rippleRounded","fractional","populate","start","end","units","tmp","ripple","pruneUnits","YEARS","NaN","startTS","endTS","timerId","MILLISECONDS_PER_SECOND","getDelay","emptyLabel","toHTML","tag","addTo","MILLISECONDS","MONTHS","DECADES","CENTURIES","MILLENNIA","DEFAULTS","ALL","setFormat","singular","plural","delim","resetFormat","setLabels","resetLabels","amd","onAlways","queryElem","elements","getImages","jqDeferred","Deferred","check","addElementImages","nodeName","addElementBackgroundImages","elementNodeTypes","childImgs","child","1","9","11","LoadingImage","Background","reURL","addBackground","loadingImage","onProgress","progress","progressedCount","hasAnyBroken","isLoaded","notify","isComplete","jqMethod","getIsImageComplete","confirm","proxyImage","unbindEvents","makeJQueryPlugin","promise","elMatches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","query","queryChildren","cls","thumb","rail","consuming","clicking","active","scrolling","scrollingClassTimeout","addScrollingClass","removeScrollingClass","isAlive","scrollingThreshold","EventElement","handlers","prototypeAccessors","handler","unbind","this$1","unbindAll","EventManager","eventElements","createEvent","CustomEvent","initCustomEvent","processScrollDiff","axis","useScrollingClass","forceFireReachEvent","fields","contentHeight","containerHeight","up","down","reach","setScrollingClassInstantly","processScrollDiff$1","toInt","eventElement","ee","onceHandler","env","isWebKit","supportsTouch","DocumentTouch","supportsIePointer","isChrome","userAgent","updateGeometry","roundedScrollTop","contentWidth","scrollbarXRail","scrollbarYRail","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXWidth","railXMarginWidth","railXRatio","scrollbarXWidth","getThumbSize","scrollbarXLeft","negativeScrollAdjustment","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYHeight","railYMarginHeight","railYRatio","scrollbarYHeight","scrollbarYTop","xRailOffset","isRtl","isScrollbarXUsingBottom","scrollbarXBottom","scrollbarXTop","yRailOffset","isScrollbarYUsingRight","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarX","railBorderXWidth","scrollbarY","railBorderYWidth","updateCss","thumbSize","bindMouseScrollHandler","pageY","startingScrollTop","startingMousePageY","scrollBy","mouseMoveHandler","touches","startsWith","changedTouches","mouseUpHandler","ownerDocument","bindMoves","touchMode","direction","pageX","pageXOffset","keyboard","isDefaultPrevented","defaultPrevented","activeElement","contentDocument","shadowRoot","deltaX","which","metaKey","altKey","shiftKey","wheelPropagation","shouldPreventDefault","mousewheelHandler","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","getDeltaFromEvent","maxScrollTop","overflowX","shouldBeConsumedByChild","shouldPrevent","useBothWheelAxes","wheelSpeed","isTop","isBottom","isLeft","isRight","ctrlKey","onwheel","onmousewheel","touch","startOffset","speed","easingLoop","touchStart","touchMove","touchEnd","PointerEvent","MSPointerEvent","applyTouchMove","differenceX","differenceY","getTouch","targetTouches","shouldHandle","pointerType","buttons","MSPOINTER_TYPE_MOUSE","currentOffset","timeGap","magnitudeX","magnitudeY","swipeEasing","isInitialized","userSettings","originalScrollLeft","isNegativeScroll","railXStyle","railYStyle","styles","handlerName","lastScrollTop","lastScrollLeft","onScroll","removePsClasses","MediaQuery","XS","SM","MD","XL","warn","responseType","MouseEvent","initMouseEvent","saveAs","HTMLAnchorElement","webkitURL","download","rel","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","fromCharCode","safari","FileReader","onloadend","readAsDataURL","l","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","re","example","process","toRGB","toHex","m","S","charCodeAt","atob","btoa","w","N","L","A","print","modify","copy","k","perm","O","processOwnerPassword","encryptionKey","lsbFirstWord","hexToBytes","U","I","F","subscribe","unsubscribe","publish","getTopics","C","objectNumber","j","gState","matrix","coords","colors","B","boundingBox","xStep","yStep","stream","cloneIndex","M","orientation","compress","compressPdf","encryption","userPassword","ownerPassword","userPermissions","userUnit","precision","floatPrecision","defaultPathOperation","putOnlyUsedFonts","internal","__private__","PubSub","getPdfVersion","setPdfVersion","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","dl","letter","legal","ledger","tabloid","getPageFormats","getPageFormat","COMPAT","ADVANCED","saveGraphicsState","ht","Wt","St","Dr","setFontSize","getFontSize","restoreGraphicsState","combineFontStyleAndFontWeight","advancedAPI","compatAPI","isAdvancedAPI","E","q","roundToPrecision","hpf","D","f2","R","f3","T","setPrecision","H","W","V","getFileId","G","setFileId","Ge","Y","convertDateToPDFDate","getTimezoneOffset","J","convertPDFDateToDate","X","setCreationDate","K","getCreationDate","Z","padd2","Q","padd2Hex","tt","et","rt","nt","it","at","ot","st","ct","$t","Xt","Qt","setCustomOutputDestination","ut","resetCustomOutputDestination","out","lt","write","ft","getArrayBuffer","ArrayBuffer","Uint8Array","dt","getStandardFonts","pt","fontSize","gt","mt","vt","R2L","setR2L","getR2L","bt","yt","setZoomMode","getZoomMode","wt","Nt","setPageMode","getPageMode","Lt","setLayoutMode","getLayoutMode","setDisplayMode","At","subject","author","keywords","creator","getDocumentProperty","getDocumentProperties","setDocumentProperties","setProperties","setDocumentProperty","xt","_t","Pt","kt","It","Ft","Ct","jt","Ot","Bt","Mt","Et","qt","Dt","Rt","Tt","hotfixes","zt","Ut","Ht","_matrix","atan2","shx","sx","decompose","sy","shy","tx","ty","multiply","sqrt","translate","rotate","skew","inversed","applyToPoint","Fr","applyToRectangle","Cr","Matrix","Vt","matrixMult","Gt","unitMatrix","identityMatrix","Yt","ShadingPattern","TilingPattern","addShadingPattern","beginTilingPattern","Or","endTilingPattern","restore","Jt","newObject","Kt","newObjectDeferred","Zt","newAdditionalObject","objId","te","decodeColorString","encodeColorString","ch1","ch2","ch3","ch4","pdfColorType","ne","putStream","alreadyAppliedFilters","addLength1","objectId","encryptor","additionalKeyValues","API","processDataByFilters","reverseChain","ie","putPage","contentsObjId","rootDictionaryObjId","resourceDictionaryObjId","mediaBox","bottomLeftX","bottomLeftY","topRightX","topRightY","cropBox","bleedBox","trimBox","artBox","pageContext","ae","putPages","oe","font","isAlreadyPutted","postScriptName","encoding","se","ce","pages","ue","he","unshift","le","fe","resourcesOid","objectOid","de","pe","ge","me","ve","oid","toHexString","be","ye","we","Ne","Le","Ae","MAX_SAFE_INTEGER","xe","Se","fontName","fontStyle","_e","isStandardFont","metadata","Pe","fonts","dictionary","ke","foo","stack","alert","bar","Ie","sourceEncoding","outputEncoding","autoencode","codePages","noBOM","Fe","pdfEscape","Ce","beginPage","Be","je","dr","lr","Nr","Pr","kr","Oe","Me","getNumberOfPages","Ee","disableWarning","noFallback","times","normal","qe","putInfo","De","putCatalog","Re","putTrailer","Te","putHeader","ze","putXRef","Ue","buildDocument","He","getBlob","We","filename","unescape","pdfObjectUrl","pdfJsUrl","contentWindow","PDFViewerApplication","Ve","Ye","Je","getPageInfo","Xe","getPageInfoByObjId","Ke","getCurrentPageInfo","insertPage","movePage","deletePage","flags","align","lineHeightFactor","hr","scaleFactor","TabLen","baseline","splitTextToSize","reduce","mutex","activeFontKey","activeFontSize","rotationDirection","cos","sin","charSpace","Sr","setCharSpace","getCharSpace","horizontalScale","renderingMode","stroke","usedRenderingMode","getWidth","getStringUnitWidth","doKerning","vr","br","isHex","Ar","Ze","clip","clipEvenOdd","discardPath","$e","isValidStyle","setDefaultPathOperation","Qe","tr","close","er","fillEvenOdd","fillStroke","fillStrokeEvenOdd","ir","rr","nr","ar","setGState","or","sr","lineTo","cr","curveTo","line","lines","path","op","triangle","roundedRect","SQRT2","ellipse","circle","setFont","ur","getFont","getFontList","addFont","lineWidth","fr","getLineWidth","setLineWidth","setLineDash","setLineDashPattern","pr","getLineHeight","gr","setLineHeightFactor","mr","getLineHeightFactor","lineHeight","getHorizontalCoordinate","getVerticalCoordinate","yr","getHorizontalCoordinateString","wr","getVerticalCoordinateString","strokeColor","getStrokeColor","getDrawColor","setStrokeColor","setDrawColor","Lr","fillColor","getFillColor","setFillColor","textColor","xr","getTextColor","setTextColor","_r","CapJoinStyles","0","butt","but","miter","rounded","2","projecting","project","square","bevel","setLineCap","setLineJoin","setLineMiterLimit","setMiterLimit","GState","Ir","equals","addGState","setCurrentTransformationMatrix","comment","jr","pagesContext","Er","outputDestination","qr","Rr","Br","Mr","beginFormObject","endFormObject","doFormObject","getFormObject","returnPromise","unload","getPageWidth","setPageWidth","getPageHeight","setPageHeight","getCoordinateString","collections","newObjectDeferredBegin","setWidth","getHeight","encryptionOptions","getEncryptor","getPDFVersion","Point","Rectangle","hasHotfix","__acroform__","BBox","setBit","clearBit","getBit","getBitForPdf","setBitForPdf","clearBitForPdf","calculateCoordinates","lowerLeft_X","lowerLeft_Y","upperRight_X","upperRight_Y","appearanceStreamContent","DV","_V","maxFontSize","multiline","textAlign","xForms","acroFormDictionaryRoot","printedOut","object","annotations","arrayToPdfArray","_objId","_scope","getKeyValueListForStream","getOwnPropertyNames","FieldNum","hasAnnotation","Ff","FT","getOptions","setOptions","addOption","removeOption","combo","hasAppearanceStream","edit","CA","pushButton","radio","appearanceState","_AppearanceType","RadioButton","Circle","createAppearanceStream","optionName","setAppearance","Kids","getCA","createOption","CheckBox","isInteger","password","On","YesNormal","YesPushDown","Off","OffPushDown","Bezier_C","Cross","calculateCross","x1","x2","x4","x3","createDefaultAppearanceStream","addField","acroformPlugin","_eventID","Fields","DA","AcroFormChoiceField","AcroFormListBox","AcroFormComboBox","AcroFormEditBox","AcroFormButton","AcroFormPushButton","AcroFormRadioButton","AcroFormCheckBox","AcroFormTextField","AcroFormPasswordField","AcroFormAppearance","AcroForm","ChoiceField","ListBox","ComboBox","EditBox","Button","PushButton","TextField","PasswordField","Appearance","__addimage__","PNG","TIFF","JPEG","JPEG2000","GIF87a","GIF89a","WEBP","BMP","getImageFileTypeByImageData","Uint8ClampedArray","colorSpace","INDEXED","palette","sMask","DEVICE_CMYK","bitsPerComponent","decodeParameters","transparency","predictor","addImage_images","hasAttribute","loadFile","alias","color_spaces","DEVICE_RGB","DEVICE_GRAY","CAL_GREY","CAL_RGB","LAB","ICC_BASED","PATTERN","SEPARATION","DEVICE_N","decode","DCT_DECODE","FLATE_DECODE","LZW_DECODE","JPX_DECODE","JBIG2_DECODE","ASCII85_DECODE","ASCII_HEX_DECODE","RUN_LENGTH_DECODE","CCITT_FAX_DECODE","image_compression","FAST","MEDIUM","SLOW","sHashCode","byteLength","validateStringAsBase64","extractImageFromDataUrl","charset","supportsArrayBuffer","isArrayBuffer","isArrayBufferView","Uint32Array","Int8Array","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","binaryStringToUint8Array","arrayBufferToBinaryString","subarray","imageData","compression","convertBase64ToBinaryString","getImageProperties","fileType","bounds","contents","_nameMap","finalBounds","magFactor","createAnnotation","textWithLink","getTextWidth","1569","1570","1571","1572","1573","1574","1575","1576","1577","1578","1579","1580","1581","1582","1583","1584","1585","1586","1587","1588","1589","1590","1591","1592","1593","1594","1601","1602","1603","1604","1605","1606","1607","1608","1609","1610","1649","1655","1657","1658","1659","1662","1663","1664","1667","1668","1670","1671","1672","1676","1677","1678","1681","1688","1700","1702","1705","1709","1711","1713","1715","1722","1723","1726","1728","1729","1733","1734","1735","1736","1737","1739","1740","1744","1746","1747","65247","65154","65156","65160","65166","65248","65165","65258","1617","1612","1613","1614","1615","1616","__arabicParser__","isInArabicSubstitutionA","isArabicLetter","isArabicEndLetter","isArabicAlfLetter","arabicLetterHasIsolatedForm","arabicLetterHasFinalForm","arabicLetterHasInitialForm","arabicLetterHasMedialForm","resolveLigatures","isArabicDiacritic","getCorrectForm","processArabic","autoPrint","variant","addJS","getContext","pageWrapXEnabled","pageWrapX","pageWrapYEnabled","pageWrapY","context2d","_canvas","canvas","__cell__","headerFunction","margins","lastCell","lineNumber","setHeaderFunction","getTextDimensions","cellAddPage","cell","tableHeaderRow","printHeaders","printHeaderRow","table","autoSize","headerBackgroundColor","headerTextColor","table_font_size","prompt","setTableHeaderRow","rowStart","cellStart","table_x","table_y","italic","oblique","family","weight","stretch","fixed","monospace","terminal","cursive","fantasy","serif","menu","trimLeft","isStrokeTransparent","strokeOpacity","strokeStyle","fillStyle","isFillTransparent","fillOpacity","textBaseline","lineJoin","lineCap","globalCompositeOperation","globalAlpha","clip_path","currentPoint","miterLimit","lastPoint","lineDashOffset","lineDash","margin","prevPageLastElemOffset","ignoreClearRect","ctx","fontFaces","defaultFontFamily","genericFontFamilies","arial","Arial","verdana","Verdana","helvetica","Helvetica","getLineDash","beginPath","closePath","quadraticCurveTo","y1","bezierCurveTo","y2","arc","isIdentity","pow","radius","startAngle","endAngle","counterclockwise","arcTo","fillRect","strokeRect","clearRect","ctxStack","isCanvasGradient","getColor","fillText","strokeText","measureText","setTransform","drawImage","autoPaging","begin","deltas","createLinearGradient","colorStops","addColorStop","createPattern","createRadialGradient","y3","y4","prevLineDash","overrideMimeType","loadImageFile","catch","default","DOMPurify","dompurify","sanitize","convert","setProgress","overlay","state","opt","enableLinks","toContainer","toCanvas","toImg","toPdf","thenList","setPageSize","createTextNode","nodeValue","cloneNode","firstChild","nextSibling","javascriptEnabled","zIndex","border","float","onrendered","toContext2d","allowTaint","scrollX","imageTimeout","logging","proxy","removeContainer","foreignObjectRendering","useCORS","windowHeight","outputImg","outputPdf","doCallback","setMargin","inner","px","updateProgress","thenCore","thenExternal","catchExternal","using","export","worker","outline","root","createNamedDestinations","makeRef","genIds_r","renderRoot","renderItems","objStart","count_r","objEnd","makeString","processJPEG","numcomponents","imgData","animation","readUInt32","bits","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","frames","read","xOffset","yOffset","readUInt16","disposeOp","blendOp","indexed","grayscale","rgb","hasAlphaChannel","pixelBitlength","decodePixels","decodePalette","copyToImageData","_decodedPalette","putImageData","decodeFrames","createImageData","renderFrame","_timeout","stopAnimation","_png","has_local_palette","palette_offset","palette_size","data_offset","data_length","transparent_index","interlaced","disposal","loopCount","frameInfo","decodeAndBlitFrameBGRA","decodeAndBlitFrameRGBA","encode","buffer","datav","DataView","is_with_alpha","bottom_up","flag","parseHeader","parseBGR","jc","Qb","qb","nd","pd","Ca","Ka","oa","pa","Jd","Yc","Zc","Sb","Ra","bb","zr","Tr","Ur","Hr","Mb","Xa","ud","hd","jd","Ea","Hn","Wn","Vn","Gn","eb","fb","ea","Tc","Ed","Cd","Fd","lb","Db","Ab","fa","Rd","RGBA","kb","sd","Pd","Qd","Id","fd","Md","hb","ib","da","bd","cd","Da","Sd","ob","ba","ka","vi","cc","dc","Mc","Nc","ec","fc","Rc","Tn","Kb","Sn","An","ma","qn","Rn","zn","memory","Ib","Jb","Nd","Oa","Ci","ji","_i","Si","Mi","Bi","Oi","Pi","ki","Ei","qi","Dc","$n","xc","vc","md","Wb","Ya","ab","Ta","Ua","gc","nc","hc","Gr","Wr","Vr","Zr","$r","Yr","Ba","va","ca","Ma","En","Qr","tn","Dn","nn","en","xn","Un","rn","ua","qd","rd","mi","tb","Xr","Pb","Wa","wc","wd","xd","vb","ti","yc","xb","gi","VP8LMapColor32b","Jr","VP8LMapColor8b","Kr","Oc","Qn","Xn","Zn","Jn","Yn","Kn","pi","_n","ub","yd","td","Rb","Kd","Ld","Ud","Td","Fb","Bb","Cb","Zb","Lb","Yb","jb","Wc","Xc","Pc","wb","Tb","zd","vd","od","ld","La","dd","tc","Na","la","Sc","Eb","Qc","ia","lc","ad","Za","Ob","$b","Ad","Gc","Hc","Dd","uc","Nb","wa","ya","aa","cb","sc","Od","Kc","ed","Qa","Ic","$c","Aa","Xb","Va","Hb","zb","yb","Ub","za","Jc","pb","Pa","Bd","kc","Ac","Bc","zc","Gd","Hd","rb","sb","oc","pc","sa","ta","qa","ra","Ha","Ia","Ec","ja","Vb","Fc","gd","ga","Fa","Cc","qc","Gb","Uc","mb","nb","rc","Ga","Vc","put","ac","bc","ha","ni","ei","ri","ui","si","hi","ii","ai","Ri","zi","Vd","Cn","Pn","kn","In","Fn","an","cn","un","hn","sn","ln","dn","pn","gn","mn","vn","bn","yn","wn","Nn","Ln","fi","li","di","ci","oi","Bn","jn","Mn","kd","na","xa","gb","Ja","Sa","Lc","$a","ic","mc","bi","wi","yi","Ni","Li","Ai","xi","Fi","Ii","Di","Ui","Predictor0","Predictor1","Predictor2","Predictor3","Predictor4","Predictor5","Predictor6","Predictor7","Predictor8","Predictor9","Predictor10","Predictor11","Predictor12","Predictor13","PredictorAdd0","PredictorAdd1","PredictorAdd2","ColorIndexInverseTransform","MapARGB","VP8LColorIndexInverseTransformAlpha","MapAlpha","VP8LPredictorsAdd","VP8LPredictors","VP8LPredictorsAdd_C","VP8LPredictors_C","UpsampleRgbLinePair","UpsampleBgrLinePair","UpsampleRgbaLinePair","UpsampleBgraLinePair","UpsampleArgbLinePair","UpsampleRgba4444LinePair","UpsampleRgb565LinePair","Ti","WebPDecodeRGBA","src_off","src_size","feature_flags","canvas_width","canvas_height","bgcolor","loop_count","offset_x","offset_y","dispose","blend","rgbaoutput","dataurl","loop_counter","rgba","imgwidth","imgheight","level","processPNG","processGIF89A","processGIF87A","fileSize","getUint32","reserved","headerSize","getInt32","planes","getUint16","bitPP","rawSize","importantColors","getUint8","quad","bit1","bit4","bit8","bit15","bit16","bit24","bit32","getData","processBMP","processWEBP","processRGBA","alpha","setLanguage","languageSettings","isSubscribed","af","sq","hy","as","ast","az","eu","bs","bg","my","ch","zh","cv","co","cs","nl","eo","fo","fj","fy","fur","gl","gu","hu","iu","ks","kk","km","ky","tlh","ko","lv","mk","ml","mo","nv","ng","no","om","pl","qu","rm","ro","ru","sz","sg","sk","sl","so","es","sw","sv","th","tig","tk","uk","hsb","vo","cy","xh","zu","languageCode","getCharWidthsArray","widths","Unicode","fof","kerning","widthOfString","widthOfGlyph","characterToGlyph","textIndent","lineIndent","__fontmetrics__","uncompress","WinAnsiEncoding","Courier","ZapfDingbats","existsFileInVFS","getFileFromVFS","TTFFont","glyIdsUsed","canvg","addSvgAsImage","ignoreMouse","ignoreAnimation","ignoreDimensions","fromString","putTotalPages","pdfEscape16","viewerPreferences","HideToolbar","defaultValue","explicitSet","valueSet","pdfVersion","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","viewerpreferences","configuration","__metadata__","namespaceuri","metadata_object_number","addMetadata","toUnicode","subset","PDFObject","bbox","stemV","italicAngle","ascender","decender","capHeight","rawData","hmtx","head","unitsPerEm","cmap","unicode","codeMap","vFS","addFileToVFS","__bidiEngine__","EN","AN","5","6","7","32","251","254","255","hiLevel","doBidiReorder","isInputVisual","isOutputVisual","isInputRtl","isOutputRtl","isSymmetricSwapping","readString","registerTTF","directory","hhea","maxp","post","os2","loca","glyf","exists","lineGap","yMax","italic_angle","xHeight","familyClass","isSerif","isScript","isFixedPitch","forGlyph","advance","readByte","writeByte","writeUInt32","readInt32","writeInt32","writeUInt16","readInt16","writeInt16","writeString","readShort","writeShort","readLongLong","writeLongLong","readInt","writeInt","scalarType","tableCount","searchRange","entrySelector","rangeShift","tables","checksum","__super__","file","raw","revision","checkSumAdjustment","magicNumber","created","modified","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","platformID","encodingID","language","isUnicode","old","new","charMap","subtable","maxGlyphID","LN2","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","panose","charRange","vendorID","selection","firstCharIndex","lastCharIndex","ascent","descent","winAscent","winDescent","codePageRange","defaultChar","breakChar","maxContext","underlinePosition","underlineThickness","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","offsets","numGlyphs","languageID","nameID","strings","copyright","fontSubfamily","uniqueSubfamily","postscriptName","trademark","manufacturer","designer","vendorUrl","designerUrl","license","licenseUrl","preferredFamily","preferredSubfamily","compatibleFull","sampleText","maxPoints","maxContours","maxCompositePoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","metrics","lsb","leftSideBearings","glyphFor","lengthOf","numberOfContours","compound","glyphIDs","glyphOffsets","unicodes","generateCmap","glyphsFor","isString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","u8","u16","u32","fleb","fdeb","clim","freb","_a","fl","revfl","_b","revfd","rev","hMap","rvb","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits16","shft","slc","inflt","dat","buf","noBuf","noSt","cbuf","bl","nbuf","final","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lms","dms","mxa","sym","dsym","wbits","wbits16","hTree","t2","i0","i1","i2","maxSym","mbt","lft","cst","i2_1","i2_2","i2_3","cl","cli","cln","clen","cf","wfblk","wblk","syms","lf","df","dlt","mlb","ddt","mdb","_c","lclt","nlc","_d","lcdt","ndc","lcfreq","lct","mlcb","nlcc","ll","flen","ftlen","dtlen","llm","lcts","clct","len","dst","deo","dflt","lvl","plvl","pre","lst","msk_1","bs1_1","bs2_1","hsh","lc_1","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","mmd","lin","din","adler","dopt","mem","wbytes","zlh","zlv","zlibSync","unzlibSync","Transform","dirty","point","rad","m11","m12","m21","m22","dx","dy","m0","m1","m2","m3","m4","m5","skewX","skewY","acos","Util","_getRotation","PI_OVER_DEG180","DEG180_OVER_PI","COLORS","darkgrey","darkslategrey","dimgrey","grey","lightgray","lightslategrey","rebeccapurple","slategrey","RGB_REGEX","animQueue","_isElement","_isFunction","_isPlainObject","_isArray","_isNumber","_isString","_isBoolean","isObject","firstChar","_sign","createImageElement","_rgbToHex","hex","bigint","randColor","_hexToRgb","colorToRGBA","_namedColorToRBA","_hex3ColorToRGBA","_hex4ColorToRGBA","_hex6ColorToRGBA","_hex8ColorToRGBA","_rgbColorToRGBA","_rgbaColorToRGBA","_hslColorToRGBA","parts","hsl","t3","t1","haveIntersection","r1","r2","retObj","cloneObject","cloneArray","arr","degToRad","radToDeg","_degToRad","_radToDeg","radians","_capitalize","func","_inRange","dist","pd2","isClosed","MAX_VALUE","p1","p2","proj","_getProjectionToSegment","py","pdist","startArray","endArray","temp","newStart","_getProjectionToLine","desc","visitedByCircularReferenceRemoval","_prepareToStringify","source","_getFirstPointerId","identifier","pointerId","canvases","context","topLeft","topRight","bottomLeft","bottomRight","_formatValue","RGBComponent","getNumberValidator","getNumberOrArrayOfNumbersValidator","noOfElements","isNumber","isValidArray","getNumberOrAutoValidator","getStringValidator","getStringOrGradientValidator","isGradient","getBooleanValidator","Factory","def","addGetter","addSetter","addOverloadedGetterSetter","overWriteSetter","_setAttr","components","component","capitalize","getter","setter","ret","basicValidator","getComponentValidator","oldVal","_fireChangeEvent","capitalizedAttr","methods","oldMethodName","newMethodName","oldGetter","oldSetter","deprecated","_filterUpToDate","simplifyArray","retArr","util","CONTEXT_METHODS","traceArr","_enableTrace","shape","fillEnabled","_fill","hasStroke","_stroke","fillAfterStrokeEnabled","strokeShape","fillShape","relaxed","trace","property","getCanvas","getPixelRatio","absOpacity","getAbsoluteOpacity","fillRule","isPointInPath","path2d","getImageData","that","origSetter","origMethod","_trace","SceneContext","super","_fillFunc","_getFillPattern","grd","_getLinearGradient","_getRadialGradient","hasColor","fillPriority","getFillPriority","_fillColor","hasPattern","getFillPatternImage","_fillPattern","hasLinearGradient","getFillLinearGradientColorStops","_fillLinearGradient","hasRadialGradient","getFillRadialGradientColorStops","_fillRadialGradient","getStrokeLinearGradientStartPoint","getStrokeLinearGradientEndPoint","getStrokeLinearGradientColorStops","dash","strokeScaleEnabled","getStrokeScaleEnabled","_applyLineCap","dashEnabled","dashOffset","strokeWidth","getShadowForStrokeEnabled","_strokeLinearGradient","_strokeFunc","getShadowRGBA","getShadowBlur","getShadowOffset","getAbsoluteScale","HitContext","willReadFrequently","colorKey","_fillFuncHit","hasHitStroke","hitStrokeWidth","_strokeFuncHit","_pixelRatio","config","isCache","createCanvasElement","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","releaseCanvas","getDevicePixelRatio","previousRatio","addGetterSetter","hitCanvas","DD","_dragElements","dragStatus","justDragged","Map","nodesToFireEvents","getStage","setPointersPositions","_changedPointerPositions","startPointerPos","startDrag","_setDragPosition","fire","drawNodes","drawNode","getLayer","draw","delete","_endDragBefore","_drag","_endDragAfter","TRANSFORM_CHANGE_STR","idCounter","eventListeners","_allEventListeners","_cache","_attachedDepsListeners","_lastPos","_batchingTransformChange","_needClearTransformCache","_isUnderCache","_dragEventId","_shouldFireChangeEvents","privateGetter","deps","depsString","dep","_clearCache","_getCache","has","hit","_clearSelfAndDescendantCache","_requestDraw","conf","getClientRect","skipTransform","relativeTo","drawBorder","hitCanvasPixelRatio","cachedSceneCanvas","cachedFilterCanvas","cachedHitCanvas","sceneContext","hitContext","imageSmoothingEnabled","drawScene","drawHit","minX","minY","maxX","points","trans","getAbsoluteTransform","transformed","_applyOpacity","_applyGlobalCompositeOperation","canvasCache","_getCanvasCache","cacheCanvas","_getCachedSceneCanvas","cachedCanvas","sceneCanvas","filterCanvas","filterContext","evtStr","_delegate","baseEvent","_off","stopNode","targets","findAncestors","stopDrag","_remove","_clearCaches","_setChildrenIndices","clearCache","ancestors","_batchTransformChanges","_isListening","listening","_isVisible","visible","skipDragCheck","layerUnderDrag","dragSkip","isListening","isVisible","depth","getDepth","addChildren","invert","haveCachedParent","isCached","absoluteMatrix","getMatrix","absoluteTransform","getTranslation","origTrans","_clearTransform","_getAbsoluteTransform","_setTransform","offsetX","offsetY","changeX","changeY","theta","_getAbsoluteOpacity","newContainer","getAttrs","toObject","includeSelf","_isMatch","ancestor","sel","selectorArr","isValidSelector","hasName","_getStage","eventType","bubble","_fireAndBubble","_fire","_eachAncestorReverse","transformsEnabled","getTransform","copyInto","_getTransform","allListeners","box","_toKonvaCanvas","_urlToImage","toBlob","blob","getDragDistance","evtName","evtListeners","oldName","fullName","batchDraw","compareShape","isAncestorOf","stopBubble","cancelBubble","newEvents","oldEvents","topListeners","_getProtoListeners","selfListeners","ap","getAbsolutePosition","_getPointerById","bubbleEvent","_createDragElement","newNodePos","dbf","dragBoundFunc","bounded","setAbsolutePosition","_dragChange","_dragCleanup","hasDraggingChild","_listenDrag","dragElement","isReady","screenRect","_createNode","Class","_attrsAffectingSize","addComponentsGetterSetter","backCompat","rotateDeg","setRotationDeg","getRotationDeg","filterFunc","_validateAdd","hasChildren","destroyChildren","_generalFind","findOne","_descendants","shouldStop","intersects","can","caching","_drawCachedSceneCanvas","_drawChildren","shouldDrawHit","_drawCachedHitCanvas","drawMethod","clipWidth","clipHeight","clipFunc","hasClip","selfCache","clipX","clipY","hasComposition","selfRect","Infinity","skipShadow","skipStroke","shapes","hasVisible","_transformedRect","Captures","SUPPORT_POINTER_EVENTS","getCapturedShape","hasPointerCapture","setPointerCapture","releaseCapture","EVENTS","EVENTS_MAP","mouse","pointerclick","pointerdblclick","getEventType","getEventsMap","checkNoClip","stages","_pointerPositions","_buildDOM","_bindContentEvents","_resizeDOM","_checkVisibility","isLayer","getType","isFastLayer","throw","getElementsByClassName","parentElement","layers","_isInDocument","bufferCanvas","bufferHitCanvas","layerCanvas","getIntersection","rest","passive","pointerenter","pointerover","evenType","targetShape","_getTargetShape","eventsEnabled","pointerout","pointerleave","pointerPos","triggeredOnShape","pointerdown","isTouch","cancelable","processedShapesIds","differentTarget","pointermove","clickStartShape","clickEndShape","fireDblClick","pointerup","contentPosition","_getContentPosition","clientY","userSelect","dummyContext","getDummyContext","getRandomColor","sceneFunc","hitFunc","_hasShadow","shadowEnabled","shadowOpacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","__getFillPattern","fillPatternImage","pattern","fillPatternRepeat","fillPatternX","fillPatternY","fillPatternRotation","fillPatternScaleX","fillPatternScaleY","fillPatternOffsetX","fillPatternOffsetY","DOMMatrix","__getLinearGradient","fillLinearGradientColorStops","fillLinearGradientStartPoint","fillLinearGradientEndPoint","__getRadialGradient","fillRadialGradientColorStops","fillRadialGradientStartPoint","fillRadialGradientEndPoint","fillRadialGradientStartRadius","fillRadialGradientEndRadius","_getShadowRGBA","hasShadow","_calculate","strokeEnabled","strokeLinearGradientColorStops","forceFill","perfectDrawEnabled","hasFill","isTransparent","strokeForShadow","shadowForStrokeEnabled","_centroid","getSelfRect","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","preWidth","preHeight","blurRadius","bufferContext","drawFunc","getSceneFunc","skipBuffer","cachingSelf","_useBufferCanvas","_applyLineJoin","_applyShadow","alphaThreshold","hitImageData","hitData","rgbColorKey","hitWidth","hitHeight","dashArray","getDashArray","setDashArray","getDrawFunc","setDrawFunc","drawHitFunc","getDrawHitFunc","setDrawHitFunc","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","_waitingForDraw","_setSmoothEnabled","createPNGStream","getHitCanvas","setZIndex","getNativeCanvasElement","insertBefore","requestAnimFrame","spiralSearchDistance","continueSearch","intersectionOffset","_getIntersection","antialiased","p3","clearBeforeDraw","hitGraphEnabled","performance","animIdCounter","frame","timeDiff","lastTime","frameRate","setLayers","lays","animations","_addAnimation","_removeAnimation","anim","_handleAnimation","layersLen","layerHash","_updateFrameObject","Anim","_runFrames","_animationLoop","animRunning","blacklist","onFinish","yoyo","colorAttrs","TweenEngine","propFunc","_pos","_change","prevPos","_time","_position","_startTime","pause","getTimer","onEnterFrame","nodeId","Easings","Linear","getLayers","tween","_tweenFunc","_addListeners","tweens","_addAttr","onReset","onUpdate","tweenId","trueEnd","trueStart","endRGBA","_prepareArrayForTween","closed","startRGBA","onPlay","onReverse","onPause","seek","thisId","asin","BounceEaseOut","BounceEaseIn","BounceEaseInOut","EaseIn","EaseOut","EaseInOut","StrongEaseIn","StrongEaseOut","StrongEaseInOut","_assign","Global","Node","Container","FastLayer","Group","Shape","Animation","Tween","Canvas","clockwise","outerRadius","innerRadius","fillStrokeShape","boundLeftRatio","boundTopRatio","boundBottomRatio","boundLeft","boundTop","boundBottom","getControlPoints","x0","y0","d01","d12","expandPoints","tension","cp","allPoints","tp","bezier","getTensionPoints","_getTensionPoints","_getTensionPointsClosed","firstControlPoints","lastControlPoints","TypedArray","getNumberArrayValidator","dataArray","pathLength","parsePathData","command","cx","rx","ry","dTheta","psi","fs","getPointOnEllipticalArc","getPointOnCubicBezier","getPointOnLine","getPointOnQuadraticBezier","P1x","P1y","P2x","P2y","fromX","fromY","rise","ix","iy","getLineLength","pRise","pRun","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","QB1","QB2","QB3","cosPsi","sinPsi","cpx","cpy","jlen","prevCmd","ctlPtx","ctlPty","cmd","startX","startY","convertEndpointToCenterParameterization","calcLength","psiDeg","xp","yp","cxp","cyp","vMag","vRatio","vAngle","_sceneFunc","PI2","fromTension","pointerLength","lp","lastLength","pointerAtEnding","__fillStroke","pointerAtBeginning","isDashEnabled","lineRect","radiusX","radiusY","_setImageLoad","cropWidth","cropHeight","cropX","cropY","drawRoundedRectPath","onError","crossOrigin","ATTR_CHANGE_LIST","attrChangeListLen","_sync","getText","pointerDirection","pointerHeight","getTag","_getPoints","sides","PIx2","_updated","frameIndex","isRunning","interval","_setInterval","ix4","frameOffsets","ix2","_updateIndex","getIndex","setIndex","numPoints","stringToArray","string","checkDefaultFill","_partialTextX","_partialTextY","_setTextData","textArr","textArrLen","lineHeightPx","verticalAlign","alignY","letterSpacing","textDecoration","shouldUnderline","shouldLineThrough","translateY","lineTranslateX","lineTranslateY","_getContextFont","spacesNumber","oneWord","lastLine","lastInParagraph","gradient","_partialText","measureSize","textWidth","textHeight","fontVariant","hasSpace","hasQuotes","_getTextWidth","fixedWidth","fixedHeight","maxHeightPx","currentHeightPx","wrapAtWord","shouldAddEllipsis","additionalWidth","low","high","matchWidth","mid","substrWidth","wrapIndex","nextChar","lastIndexOf","trimRight","_addTextLine","_shouldHandleEllipsis","_tryToAddEllipsisToLastLine","partialText","dummyCanvas","glyphInfo","p0","setText","_getTextSize","kerningFunc","textFullWidth","fullPathWidth","pathCmd","charArr","pIndex","currentT","getNextPathSegment","pathData","findSegmentToFitCharacter","glyphWidth","currLen","attempts","cumulativePathLength","needNewSegment","lettersInOffset","kern","midpoint","transposeX","transposeY","info","ANGLES","TOUCH_DEVICE","ANCHORS_NAMES","rotateAroundPoint","angleRad","rotateAroundCenter","deltaRad","getCenter","_transforming","_createElements","_handleMouseMove","_handleMouseUp","getNode","setNode","setNodes","_nodes","filteredNodes","useSingleNodeRotation","getAbsoluteRotation","onChange","_resetTransformCache","additionalEvents","_getEventNamespace","_proxyDrag","lastPos","otherNode","otherAbs","_movingAnchorName","__getNodeRect","rot","relative","ignoreStroke","absScale","absPos","totalPoints","_getNodeRect","_createBack","_createAnchor","anchor","_handleMouseDown","anchorName","getCursor","_cursorChange","back","shouldOverdrawWholeArea","hypotenuse","_anchorDragOffset","newHypotenuse","anchorNode","pp","oldAbs","anchorDragBoundFunc","newAbs","keepProportion","centeredScaling","comparePoint","reverseX","reverseY","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","move","_fitNodesInto","newRotation","tol","rotationSnapTolerance","snaps","newRotationRad","snapped","absDiff","getSnap","rotationSnaps","_removeEvents","newAttrs","oldAttrs","allowNegativeScale","flipEnabled","boundBoxFunc","oldTr","newTr","parentTransform","localTransform","newLocalTransform","resizeEnabled","anchorStrokeWidth","anchorCornerRadius","_batchChangeChild","borderEnabled","borderStrokeWidth","borderDash","lineEnabled","rotateHandlerOffset","enabledHandlers","BlurStack","getAngleDeg","setAngleDeg","mul_table","shg_table","afterSetFilter","remap","fromValue","fromMin","fromMax","toMin","toMax","fromRange","toRange","pixelAt","idata","rgbDistance","Arc","Arrow","Ellipse","Label","Tag","Line","Path","RegularPolygon","Ring","Sprite","Star","Text","TextPath","Wedge","Filters","Blur","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pg","rbs","pixels","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","stackEnd","stackIn","stackOut","mul_sum","shg_sum","filterGaussBlurRGBA","Brighten","brightness","Contrast","adjust","contrast","nPixels","Emboss","strength","embossStrength","greyLevel","embossWhiteLevel","embossDirection","embossBlend","dirY","dirX","w4","otherY","offsetYOther","otherX","offsetOther","dR","dG","dB","absDif","Enhance","nSubPixels","rMin","rMax","gMin","gMax","bMin","bMax","enhanceAmount","enhance","rMid","rGoalMax","rGoalMin","gMid","gGoalMax","gGoalMin","bMid","bGoalMax","bGoalMin","Grayscale","HSL","saturation","hue","luminance","vsu","vsw","rg","gg","HSV","Invert","Kaleidoscope","srcPos","dstPos","xSize","ySize","power","kaleidoscopePower","kaleidoscopeAngle","tempCanvas","scratchData","srcPixels","dstPixels","xMid","polarCenterX","yMid","polarCenterY","rSize","tSize","ToPolar","minSectionSize","sectionSize","xStart","xEnd","xDelta","phaseShift","polarRotation","FromPolar","Mask","mask","rgbv_no","rgbv_ne","rgbv_so","rgbv_se","thres","mean","pTab","rgbMean","backgroundMask","applyMask","sh","weights","side","halfSide","maskResult","scy","scx","smoothEdgeMask","dilateMask","erodeMask","Noise","amount","noise","half","Pixelate","xBinStart","xBinEnd","yBinStart","yBinEnd","xBin","yBin","pixelsInBin","pixelSize","nBinsX","nBinsY","Posterize","levels","RGB","Sepia","Solarize","Threshold","tar","appendNode","insertNode","detachNode","createText","addListener","removeListener","attribute","_fragment","_differs","_handlers","__calling","_bind","store","defer","changed","current","cancel","newState","_set","_lock","callAll","_beforecreate","_oncreate","_aftercreate","oldState","_recompute","fns","_mount","_unmount","teardown","handleOnClick","isResultsHidden","handleOnSubmit","_this$get","updateList","_this$get2","apiUrl","hasEnoughChars","Results","dataTransformed","newItem","Title","replaceStr","create_each_block","span","span_class_value","a_href_value","div_class_value","raw_value","each_value","result_index","Url","SvelteComponent","placeHolder","div_1","div_2","div_3","button","button_class_value","div_3_class_value","text_2","input_class_value","text_3","div_4","div_4_class_value","text_7","div_5","div_5_class_value","input_updating","onwindowclick","click_handler","input_input_handler","keyup_handler","touchend_handler","each_blocks","each_context","iterations","destroyEach","create_main_fragment","fixOverFlow","scrollSpy","loadJS","BIOPAGECLS","nameFromHash","decodeURIComponent","profileImage","affixImg","ContactUsLocation","setContactUsLocation","KeyDateItemBlock","setKeyDateItemBlock","keyDate","todayMoment","keyDateMoment","day","month","year","isSameOrAfter"],"mappings":"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,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CA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G,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKF,GAAG,KAAKM,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAIC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI6B,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAGhC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ+B,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAMhC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,I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,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK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V2iH,YAAa,WACbC,YAAa,aC1BjB,IAAIC,GAAY,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEAC,GAAY,CACZ,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,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","file":"4.js","sourcesContent":["/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else 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'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar 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\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 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 * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else 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\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var 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 var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var 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};\n\nreturn EvEmitter;\n\n}));\n","/*!\n * Masonry v4.2.2\n * Cascading grid layout library\n * https://masonry.desandro.com\n * MIT License\n * by David DeSandro\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'outlayer/outlayer',\n 'get-size/get-size'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('outlayer'),\n require('get-size')\n );\n } else {\n // browser global\n window.Masonry = factory(\n window.Outlayer,\n window.getSize\n );\n }\n\n}( window, function factory( Outlayer, getSize ) {\n\n'use strict';\n\n// -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Masonry = Outlayer.create('masonry');\n // isFitWidth -> fitWidth\n Masonry.compatOptions.fitWidth = 'isFitWidth';\n\n var proto = Masonry.prototype;\n\n proto._resetLayout = function() {\n this.getSize();\n this._getMeasurement( 'columnWidth', 'outerWidth' );\n this._getMeasurement( 'gutter', 'outerWidth' );\n this.measureColumns();\n\n // reset column Y\n this.colYs = [];\n for ( var i=0; i < this.cols; i++ ) {\n this.colYs.push( 0 );\n }\n\n this.maxY = 0;\n this.horizontalColIndex = 0;\n };\n\n proto.measureColumns = function() {\n this.getContainerWidth();\n // if columnWidth is 0, default to outerWidth of first item\n if ( !this.columnWidth ) {\n var firstItem = this.items[0];\n var firstItemElem = firstItem && firstItem.element;\n // columnWidth fall back to item of first element\n this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||\n // if first elem has no width, default to size of container\n this.containerWidth;\n }\n\n var columnWidth = this.columnWidth += this.gutter;\n\n // calculate columns\n var containerWidth = this.containerWidth + this.gutter;\n var cols = containerWidth / columnWidth;\n // fix rounding errors, typically with gutters\n var excess = columnWidth - containerWidth % columnWidth;\n // if overshoot is less than a pixel, round up, otherwise floor it\n var mathMethod = excess && excess < 1 ? 'round' : 'floor';\n cols = Math[ mathMethod ]( cols );\n this.cols = Math.max( cols, 1 );\n };\n\n proto.getContainerWidth = function() {\n // container is parent if fit width\n var isFitWidth = this._getOption('fitWidth');\n var container = isFitWidth ? this.element.parentNode : this.element;\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var size = getSize( container );\n this.containerWidth = size && size.innerWidth;\n };\n\n proto._getItemLayoutPosition = function( item ) {\n item.getSize();\n // how many columns does this brick span\n var remainder = item.size.outerWidth % this.columnWidth;\n var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';\n // round if off by 1 pixel, otherwise use ceil\n var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );\n colSpan = Math.min( colSpan, this.cols );\n // use horizontal or top column position\n var colPosMethod = this.options.horizontalOrder ?\n '_getHorizontalColPosition' : '_getTopColPosition';\n var colPosition = this[ colPosMethod ]( colSpan, item );\n // position the brick\n var position = {\n x: this.columnWidth * colPosition.col,\n y: colPosition.y\n };\n // apply setHeight to necessary columns\n var setHeight = colPosition.y + item.size.outerHeight;\n var setMax = colSpan + colPosition.col;\n for ( var i = colPosition.col; i < setMax; i++ ) {\n this.colYs[i] = setHeight;\n }\n\n return position;\n };\n\n proto._getTopColPosition = function( colSpan ) {\n var colGroup = this._getTopColGroup( colSpan );\n // get the minimum Y value from the columns\n var minimumY = Math.min.apply( Math, colGroup );\n\n return {\n col: colGroup.indexOf( minimumY ),\n y: minimumY,\n };\n };\n\n /**\n * @param {Number} colSpan - number of columns the element spans\n * @returns {Array} colGroup\n */\n proto._getTopColGroup = function( colSpan ) {\n if ( colSpan < 2 ) {\n // if brick spans only one column, use all the column Ys\n return this.colYs;\n }\n\n var colGroup = [];\n // how many different places could this brick fit horizontally\n var groupCount = this.cols + 1 - colSpan;\n // for each group potential horizontal position\n for ( var i = 0; i < groupCount; i++ ) {\n colGroup[i] = this._getColGroupY( i, colSpan );\n }\n return colGroup;\n };\n\n proto._getColGroupY = function( col, colSpan ) {\n if ( colSpan < 2 ) {\n return this.colYs[ col ];\n }\n // make an array of colY values for that one group\n var groupColYs = this.colYs.slice( col, col + colSpan );\n // and get the max value of the array\n return Math.max.apply( Math, groupColYs );\n };\n\n // get column position based on horizontal index. #873\n proto._getHorizontalColPosition = function( colSpan, item ) {\n var col = this.horizontalColIndex % this.cols;\n var isOver = colSpan > 1 && col + colSpan > this.cols;\n // shift to next row if item can't fit on current row\n col = isOver ? 0 : col;\n // don't let zero-size items take up space\n var hasSize = item.size.outerWidth && item.size.outerHeight;\n this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\n\n return {\n col: col,\n y: this._getColGroupY( col, colSpan ),\n };\n };\n\n proto._manageStamp = function( stamp ) {\n var stampSize = getSize( stamp );\n var offset = this._getElementOffset( stamp );\n // get the columns that this stamp affects\n var isOriginLeft = this._getOption('originLeft');\n var firstX = isOriginLeft ? offset.left : offset.right;\n var lastX = firstX + stampSize.outerWidth;\n var firstCol = Math.floor( firstX / this.columnWidth );\n firstCol = Math.max( 0, firstCol );\n var lastCol = Math.floor( lastX / this.columnWidth );\n // lastCol should not go over if multiple of columnWidth #425\n lastCol -= lastX % this.columnWidth ? 0 : 1;\n lastCol = Math.min( this.cols - 1, lastCol );\n // set colYs to bottom of the stamp\n\n var isOriginTop = this._getOption('originTop');\n var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +\n stampSize.outerHeight;\n for ( var i = firstCol; i <= lastCol; i++ ) {\n this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );\n }\n };\n\n proto._getContainerSize = function() {\n this.maxY = Math.max.apply( Math, this.colYs );\n var size = {\n height: this.maxY\n };\n\n if ( this._getOption('fitWidth') ) {\n size.width = this._getContainerFitWidth();\n }\n\n return size;\n };\n\n proto._getContainerFitWidth = function() {\n var unusedCols = 0;\n // count unused columns\n var i = this.cols;\n while ( --i ) {\n if ( this.colYs[i] !== 0 ) {\n break;\n }\n unusedCols++;\n }\n // fit container to columns that have been used\n return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;\n };\n\n proto.needsResizeLayout = function() {\n var previousWidth = this.containerWidth;\n this.getContainerWidth();\n return previousWidth != this.containerWidth;\n };\n\n return Masonry;\n\n}));\n","/*!\n * Outlayer v2.1.1\n * the brains and guts of a layout library\n * MIT license\n */\n\n( function( window, factory ) {\n 'use strict';\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './item'\n ],\n function( EvEmitter, getSize, utils, Item ) {\n return factory( window, EvEmitter, getSize, utils, Item);\n }\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./item')\n );\n } else {\n // browser global\n window.Outlayer = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n window.Outlayer.Item\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize, utils, Item ) {\n'use strict';\n\n// ----- vars ----- //\n\nvar console = window.console;\nvar jQuery = window.jQuery;\nvar noop = function() {};\n\n// -------------------------- Outlayer -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Outlayer intances\nvar instances = {};\n\n\n/**\n * @param {Element, String} element\n * @param {Object} options\n * @constructor\n */\nfunction Outlayer( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for ' + this.constructor.namespace +\n ': ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // add id for Outlayer.getFromElement\n var id = ++GUID;\n this.element.outlayerGUID = id; // expando\n instances[ id ] = this; // associate via id\n\n // kick it off\n this._create();\n\n var isInitLayout = this._getOption('initLayout');\n if ( isInitLayout ) {\n this.layout();\n }\n}\n\n// settings are for internal use only\nOutlayer.namespace = 'outlayer';\nOutlayer.Item = Item;\n\n// default options\nOutlayer.defaults = {\n containerStyle: {\n position: 'relative'\n },\n initLayout: true,\n originLeft: true,\n originTop: true,\n resize: true,\n resizeContainer: true,\n // item options\n transitionDuration: '0.4s',\n hiddenStyle: {\n opacity: 0,\n transform: 'scale(0.001)'\n },\n visibleStyle: {\n opacity: 1,\n transform: 'scale(1)'\n }\n};\n\nvar proto = Outlayer.prototype;\n// inherit EvEmitter\nutils.extend( proto, EvEmitter.prototype );\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\n/**\n * get backwards compatible option value, check old name\n */\nproto._getOption = function( option ) {\n var oldOption = this.constructor.compatOptions[ option ];\n return oldOption && this.options[ oldOption ] !== undefined ?\n this.options[ oldOption ] : this.options[ option ];\n};\n\nOutlayer.compatOptions = {\n // currentName: oldName\n initLayout: 'isInitLayout',\n horizontal: 'isHorizontal',\n layoutInstant: 'isLayoutInstant',\n originLeft: 'isOriginLeft',\n originTop: 'isOriginTop',\n resize: 'isResizeBound',\n resizeContainer: 'isResizingContainer'\n};\n\nproto._create = function() {\n // get items from children\n this.reloadItems();\n // elements that affect layout, but are not laid out\n this.stamps = [];\n this.stamp( this.options.stamp );\n // set container style\n utils.extend( this.element.style, this.options.containerStyle );\n\n // bind resize method\n var canBindResize = this._getOption('resize');\n if ( canBindResize ) {\n this.bindResize();\n }\n};\n\n// goes through all children again and gets bricks in proper order\nproto.reloadItems = function() {\n // collection of item elements\n this.items = this._itemize( this.element.children );\n};\n\n\n/**\n * turn elements into Outlayer.Items to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Outlayer Items\n */\nproto._itemize = function( elems ) {\n\n var itemElems = this._filterFindItemElements( elems );\n var Item = this.constructor.Item;\n\n // create new Outlayer Items for collection\n var items = [];\n for ( var i=0; i < itemElems.length; i++ ) {\n var elem = itemElems[i];\n var item = new Item( elem, this );\n items.push( item );\n }\n\n return items;\n};\n\n/**\n * get item elements to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - item elements\n */\nproto._filterFindItemElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.itemSelector );\n};\n\n/**\n * getter method for getting item elements\n * @returns {Array} elems - collection of item elements\n */\nproto.getItemElements = function() {\n return this.items.map( function( item ) {\n return item.element;\n });\n};\n\n// ----- init & layout ----- //\n\n/**\n * lays out all items\n */\nproto.layout = function() {\n this._resetLayout();\n this._manageStamps();\n\n // don't animate first layout\n var layoutInstant = this._getOption('layoutInstant');\n var isInstant = layoutInstant !== undefined ?\n layoutInstant : !this._isLayoutInited;\n this.layoutItems( this.items, isInstant );\n\n // flag for initalized\n this._isLayoutInited = true;\n};\n\n// _init is alias for layout\nproto._init = proto.layout;\n\n/**\n * logic before any new layout\n */\nproto._resetLayout = function() {\n this.getSize();\n};\n\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * get measurement from option, for columnWidth, rowHeight, gutter\n * if option is String -> get element from selector string, & get size of element\n * if option is Element -> get size of element\n * else use option as a number\n *\n * @param {String} measurement\n * @param {String} size - width or height\n * @private\n */\nproto._getMeasurement = function( measurement, size ) {\n var option = this.options[ measurement ];\n var elem;\n if ( !option ) {\n // default to 0\n this[ measurement ] = 0;\n } else {\n // use option as an element\n if ( typeof option == 'string' ) {\n elem = this.element.querySelector( option );\n } else if ( option instanceof HTMLElement ) {\n elem = option;\n }\n // use size of element, if element\n this[ measurement ] = elem ? getSize( elem )[ size ] : option;\n }\n};\n\n/**\n * layout a collection of item elements\n * @api public\n */\nproto.layoutItems = function( items, isInstant ) {\n items = this._getItemsForLayout( items );\n\n this._layoutItems( items, isInstant );\n\n this._postLayout();\n};\n\n/**\n * get the items to be laid out\n * you may want to skip over some items\n * @param {Array} items\n * @returns {Array} items\n */\nproto._getItemsForLayout = function( items ) {\n return items.filter( function( item ) {\n return !item.isIgnored;\n });\n};\n\n/**\n * layout items\n * @param {Array} items\n * @param {Boolean} isInstant\n */\nproto._layoutItems = function( items, isInstant ) {\n this._emitCompleteOnItems( 'layout', items );\n\n if ( !items || !items.length ) {\n // no items, emit event with empty array\n return;\n }\n\n var queue = [];\n\n items.forEach( function( item ) {\n // get x/y object from method\n var position = this._getItemLayoutPosition( item );\n // enqueue\n position.item = item;\n position.isInstant = isInstant || item.isLayoutInstant;\n queue.push( position );\n }, this );\n\n this._processLayoutQueue( queue );\n};\n\n/**\n * get item layout position\n * @param {Outlayer.Item} item\n * @returns {Object} x and y position\n */\nproto._getItemLayoutPosition = function( /* item */ ) {\n return {\n x: 0,\n y: 0\n };\n};\n\n/**\n * iterate over array and position each item\n * Reason being - separating this logic prevents 'layout invalidation'\n * thx @paul_irish\n * @param {Array} queue\n */\nproto._processLayoutQueue = function( queue ) {\n this.updateStagger();\n queue.forEach( function( obj, i ) {\n this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );\n }, this );\n};\n\n// set stagger from option in milliseconds number\nproto.updateStagger = function() {\n var stagger = this.options.stagger;\n if ( stagger === null || stagger === undefined ) {\n this.stagger = 0;\n return;\n }\n this.stagger = getMilliseconds( stagger );\n return this.stagger;\n};\n\n/**\n * Sets position of item in DOM\n * @param {Outlayer.Item} item\n * @param {Number} x - horizontal position\n * @param {Number} y - vertical position\n * @param {Boolean} isInstant - disables transitions\n */\nproto._positionItem = function( item, x, y, isInstant, i ) {\n if ( isInstant ) {\n // if not transition, just set CSS\n item.goTo( x, y );\n } else {\n item.stagger( i * this.stagger );\n item.moveTo( x, y );\n }\n};\n\n/**\n * Any logic you want to do after each layout,\n * i.e. size the container\n */\nproto._postLayout = function() {\n this.resizeContainer();\n};\n\nproto.resizeContainer = function() {\n var isResizingContainer = this._getOption('resizeContainer');\n if ( !isResizingContainer ) {\n return;\n }\n var size = this._getContainerSize();\n if ( size ) {\n this._setContainerMeasure( size.width, true );\n this._setContainerMeasure( size.height, false );\n }\n};\n\n/**\n * Sets width or height of container if returned\n * @returns {Object} size\n * @param {Number} width\n * @param {Number} height\n */\nproto._getContainerSize = noop;\n\n/**\n * @param {Number} measure - size of width or height\n * @param {Boolean} isWidth\n */\nproto._setContainerMeasure = function( measure, isWidth ) {\n if ( measure === undefined ) {\n return;\n }\n\n var elemSize = this.size;\n // add padding and border width if border box\n if ( elemSize.isBorderBox ) {\n measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +\n elemSize.borderLeftWidth + elemSize.borderRightWidth :\n elemSize.paddingBottom + elemSize.paddingTop +\n elemSize.borderTopWidth + elemSize.borderBottomWidth;\n }\n\n measure = Math.max( measure, 0 );\n this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';\n};\n\n/**\n * emit eventComplete on a collection of items events\n * @param {String} eventName\n * @param {Array} items - Outlayer.Items\n */\nproto._emitCompleteOnItems = function( eventName, items ) {\n var _this = this;\n function onComplete() {\n _this.dispatchEvent( eventName + 'Complete', null, [ items ] );\n }\n\n var count = items.length;\n if ( !items || !count ) {\n onComplete();\n return;\n }\n\n var doneCount = 0;\n function tick() {\n doneCount++;\n if ( doneCount == count ) {\n onComplete();\n }\n }\n\n // bind callback\n items.forEach( function( item ) {\n item.once( eventName, tick );\n });\n};\n\n/**\n * emits events via EvEmitter 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 // add original event to arguments\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery ) {\n // set this.$element\n this.$element = this.$element || jQuery( this.element );\n if ( event ) {\n // create jQuery event\n var $event = jQuery.Event( event );\n $event.type = type;\n this.$element.trigger( $event, args );\n } else {\n // just trigger with type if no event available\n this.$element.trigger( type, args );\n }\n }\n};\n\n// -------------------------- ignore & stamps -------------------------- //\n\n\n/**\n * keep item in collection, but do not lay it out\n * ignored items do not get skipped in layout\n * @param {Element} elem\n */\nproto.ignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n item.isIgnored = true;\n }\n};\n\n/**\n * return item to layout collection\n * @param {Element} elem\n */\nproto.unignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n delete item.isIgnored;\n }\n};\n\n/**\n * adds elements to stamps\n * @param {NodeList, Array, Element, or String} elems\n */\nproto.stamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ) {\n return;\n }\n\n this.stamps = this.stamps.concat( elems );\n // ignore\n elems.forEach( this.ignore, this );\n};\n\n/**\n * removes elements to stamps\n * @param {NodeList, Array, or Element} elems\n */\nproto.unstamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ){\n return;\n }\n\n elems.forEach( function( elem ) {\n // filter out removed stamp elements\n utils.removeFrom( this.stamps, elem );\n this.unignore( elem );\n }, this );\n};\n\n/**\n * finds child elements\n * @param {NodeList, Array, Element, or String} elems\n * @returns {Array} elems\n */\nproto._find = function( elems ) {\n if ( !elems ) {\n return;\n }\n // if string, use argument as selector string\n if ( typeof elems == 'string' ) {\n elems = this.element.querySelectorAll( elems );\n }\n elems = utils.makeArray( elems );\n return elems;\n};\n\nproto._manageStamps = function() {\n if ( !this.stamps || !this.stamps.length ) {\n return;\n }\n\n this._getBoundingRect();\n\n this.stamps.forEach( this._manageStamp, this );\n};\n\n// update boundingLeft / Top\nproto._getBoundingRect = function() {\n // get bounding rect for container element\n var boundingRect = this.element.getBoundingClientRect();\n var size = this.size;\n this._boundingRect = {\n left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\n top: boundingRect.top + size.paddingTop + size.borderTopWidth,\n right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),\n bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )\n };\n};\n\n/**\n * @param {Element} stamp\n**/\nproto._manageStamp = noop;\n\n/**\n * get x/y position of element relative to container element\n * @param {Element} elem\n * @returns {Object} offset - has left, top, right, bottom\n */\nproto._getElementOffset = function( elem ) {\n var boundingRect = elem.getBoundingClientRect();\n var thisRect = this._boundingRect;\n var size = getSize( elem );\n var offset = {\n left: boundingRect.left - thisRect.left - size.marginLeft,\n top: boundingRect.top - thisRect.top - size.marginTop,\n right: thisRect.right - boundingRect.right - size.marginRight,\n bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\n };\n return offset;\n};\n\n// -------------------------- resize -------------------------- //\n\n// enable event handlers for listeners\n// i.e. resize -> onresize\nproto.handleEvent = utils.handleEvent;\n\n/**\n * Bind layout to window resizing\n */\nproto.bindResize = function() {\n window.addEventListener( 'resize', this );\n this.isResizeBound = true;\n};\n\n/**\n * Unbind layout to window resizing\n */\nproto.unbindResize = function() {\n window.removeEventListener( 'resize', this );\n this.isResizeBound = false;\n};\n\nproto.onresize = function() {\n this.resize();\n};\n\nutils.debounceMethod( Outlayer, 'onresize', 100 );\n\nproto.resize = function() {\n // don't trigger if size did not change\n // or if resize was unbound. See #9\n if ( !this.isResizeBound || !this.needsResizeLayout() ) {\n return;\n }\n\n this.layout();\n};\n\n/**\n * check if layout is needed post layout\n * @returns Boolean\n */\nproto.needsResizeLayout = function() {\n var size = getSize( this.element );\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.size && size;\n return hasSizes && size.innerWidth !== this.size.innerWidth;\n};\n\n// -------------------------- methods -------------------------- //\n\n/**\n * add items to Outlayer instance\n * @param {Array or NodeList or Element} elems\n * @returns {Array} items - Outlayer.Items\n**/\nproto.addItems = function( elems ) {\n var items = this._itemize( elems );\n // add items to collection\n if ( items.length ) {\n this.items = this.items.concat( items );\n }\n return items;\n};\n\n/**\n * Layout newly-appended item elements\n * @param {Array or NodeList or Element} elems\n */\nproto.appended = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // layout and reveal just the new items\n this.layoutItems( items, true );\n this.reveal( items );\n};\n\n/**\n * Layout prepended elements\n * @param {Array or NodeList or Element} elems\n */\nproto.prepended = function( elems ) {\n var items = this._itemize( elems );\n if ( !items.length ) {\n return;\n }\n // add items to beginning of collection\n var previousItems = this.items.slice(0);\n this.items = items.concat( previousItems );\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // layout new stuff without transition\n this.layoutItems( items, true );\n this.reveal( items );\n // layout previous items\n this.layoutItems( previousItems );\n};\n\n/**\n * reveal a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.reveal = function( items ) {\n this._emitCompleteOnItems( 'reveal', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.reveal();\n });\n};\n\n/**\n * hide a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.hide = function( items ) {\n this._emitCompleteOnItems( 'hide', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.hide();\n });\n};\n\n/**\n * reveal item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.revealItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.reveal( items );\n};\n\n/**\n * hide item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.hideItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.hide( items );\n};\n\n/**\n * get Outlayer.Item, given an Element\n * @param {Element} elem\n * @param {Function} callback\n * @returns {Outlayer.Item} item\n */\nproto.getItem = function( elem ) {\n // loop through items to get the one that matches\n for ( var i=0; i < this.items.length; i++ ) {\n var item = this.items[i];\n if ( item.element == elem ) {\n // return item\n return item;\n }\n }\n};\n\n/**\n * get collection of Outlayer.Items, given Elements\n * @param {Array} elems\n * @returns {Array} items - Outlayer.Items\n */\nproto.getItems = function( elems ) {\n elems = utils.makeArray( elems );\n var items = [];\n elems.forEach( function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n items.push( item );\n }\n }, this );\n\n return items;\n};\n\n/**\n * remove element(s) from instance and DOM\n * @param {Array or NodeList or Element} elems\n */\nproto.remove = function( elems ) {\n var removeItems = this.getItems( elems );\n\n this._emitCompleteOnItems( 'remove', removeItems );\n\n // bail if no items to remove\n if ( !removeItems || !removeItems.length ) {\n return;\n }\n\n removeItems.forEach( function( item ) {\n item.remove();\n // remove item from collection\n utils.removeFrom( this.items, item );\n }, this );\n};\n\n// ----- destroy ----- //\n\n// remove and disable Outlayer instance\nproto.destroy = function() {\n // clean up dynamic styles\n var style = this.element.style;\n style.height = '';\n style.position = '';\n style.width = '';\n // destroy items\n this.items.forEach( function( item ) {\n item.destroy();\n });\n\n this.unbindResize();\n\n var id = this.element.outlayerGUID;\n delete instances[ id ]; // remove reference to instance by id\n delete this.element.outlayerGUID;\n // remove data for jQuery\n if ( jQuery ) {\n jQuery.removeData( this.element, this.constructor.namespace );\n }\n\n};\n\n// -------------------------- data -------------------------- //\n\n/**\n * get Outlayer instance from element\n * @param {Element} elem\n * @returns {Outlayer}\n */\nOutlayer.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.outlayerGUID;\n return id && instances[ id ];\n};\n\n\n// -------------------------- create Outlayer class -------------------------- //\n\n/**\n * create a layout class\n * @param {String} namespace\n */\nOutlayer.create = function( namespace, options ) {\n // sub-class Outlayer\n var Layout = subclass( Outlayer );\n // apply new options and compatOptions\n Layout.defaults = utils.extend( {}, Outlayer.defaults );\n utils.extend( Layout.defaults, options );\n Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );\n\n Layout.namespace = namespace;\n\n Layout.data = Outlayer.data;\n\n // sub-class Item\n Layout.Item = subclass( Item );\n\n // -------------------------- declarative -------------------------- //\n\n utils.htmlInit( Layout, namespace );\n\n // -------------------------- jQuery bridge -------------------------- //\n\n // make into jQuery plugin\n if ( jQuery && jQuery.bridget ) {\n jQuery.bridget( namespace, Layout );\n }\n\n return Layout;\n};\n\nfunction subclass( Parent ) {\n function SubClass() {\n Parent.apply( this, arguments );\n }\n\n SubClass.prototype = Object.create( Parent.prototype );\n SubClass.prototype.constructor = SubClass;\n\n return SubClass;\n}\n\n// ----- helpers ----- //\n\n// how many milliseconds are in each unit\nvar msUnits = {\n ms: 1,\n s: 1000\n};\n\n// munge time-like parameter into millisecond number\n// '0.4s' -> 40\nfunction getMilliseconds( time ) {\n if ( typeof time == 'number' ) {\n return time;\n }\n var matches = time.match( /(^\\d*\\.?\\d*)(\\w*)/ );\n var num = matches && matches[1];\n var unit = matches && matches[2];\n if ( !num.length ) {\n return 0;\n }\n num = parseFloat( num );\n var mult = msUnits[ unit ] || 1;\n return num * mult;\n}\n\n// ----- fin ----- //\n\n// back in global\nOutlayer.Item = Item;\n\nreturn Outlayer;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var 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 ( matchesSelector( elem, selector ) ) {\n return elem;\n }\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 var 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 var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.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\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var 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 +\n ': ' + error );\n }\n return;\n }\n // initialize\n var 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","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","/**\n * Outlayer Item\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size'\n ],\n factory\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n require('ev-emitter'),\n require('get-size')\n );\n } else {\n // browser global\n window.Outlayer = {};\n window.Outlayer.Item = factory(\n window.EvEmitter,\n window.getSize\n );\n }\n\n}( window, function factory( EvEmitter, getSize ) {\n'use strict';\n\n// ----- helpers ----- //\n\nfunction isEmptyObj( obj ) {\n for ( var prop in obj ) {\n return false;\n }\n prop = null;\n return true;\n}\n\n// -------------------------- CSS3 support -------------------------- //\n\n\nvar docElemStyle = document.documentElement.style;\n\nvar transitionProperty = typeof docElemStyle.transition == 'string' ?\n 'transition' : 'WebkitTransition';\nvar transformProperty = typeof docElemStyle.transform == 'string' ?\n 'transform' : 'WebkitTransform';\n\nvar transitionEndEvent = {\n WebkitTransition: 'webkitTransitionEnd',\n transition: 'transitionend'\n}[ transitionProperty ];\n\n// cache all vendor properties that could have vendor prefix\nvar vendorProperties = {\n transform: transformProperty,\n transition: transitionProperty,\n transitionDuration: transitionProperty + 'Duration',\n transitionProperty: transitionProperty + 'Property',\n transitionDelay: transitionProperty + 'Delay'\n};\n\n// -------------------------- Item -------------------------- //\n\nfunction Item( element, layout ) {\n if ( !element ) {\n return;\n }\n\n this.element = element;\n // parent layout class, i.e. Masonry, Isotope, or Packery\n this.layout = layout;\n this.position = {\n x: 0,\n y: 0\n };\n\n this._create();\n}\n\n// inherit EvEmitter\nvar proto = Item.prototype = Object.create( EvEmitter.prototype );\nproto.constructor = Item;\n\nproto._create = function() {\n // transition objects\n this._transn = {\n ingProperties: {},\n clean: {},\n onEnd: {}\n };\n\n this.css({\n position: 'absolute'\n });\n};\n\n// trigger specified handler for event type\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * apply CSS styles to element\n * @param {Object} style\n */\nproto.css = function( style ) {\n var elemStyle = this.element.style;\n\n for ( var prop in style ) {\n // use vendor property if available\n var supportedProp = vendorProperties[ prop ] || prop;\n elemStyle[ supportedProp ] = style[ prop ];\n }\n};\n\n // measure position, and sets it\nproto.getPosition = function() {\n var style = getComputedStyle( this.element );\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n var xValue = style[ isOriginLeft ? 'left' : 'right' ];\n var yValue = style[ isOriginTop ? 'top' : 'bottom' ];\n var x = parseFloat( xValue );\n var y = parseFloat( yValue );\n // convert percent to pixels\n var layoutSize = this.layout.size;\n if ( xValue.indexOf('%') != -1 ) {\n x = ( x / 100 ) * layoutSize.width;\n }\n if ( yValue.indexOf('%') != -1 ) {\n y = ( y / 100 ) * layoutSize.height;\n }\n // clean up 'auto' or other non-integer values\n x = isNaN( x ) ? 0 : x;\n y = isNaN( y ) ? 0 : y;\n // remove padding from measurement\n x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\n y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\n\n this.position.x = x;\n this.position.y = y;\n};\n\n// set settled position, apply padding\nproto.layoutPosition = function() {\n var layoutSize = this.layout.size;\n var style = {};\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n\n // x\n var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\n var xProperty = isOriginLeft ? 'left' : 'right';\n var xResetProperty = isOriginLeft ? 'right' : 'left';\n\n var x = this.position.x + layoutSize[ xPadding ];\n // set in percentage or pixels\n style[ xProperty ] = this.getXValue( x );\n // reset other property\n style[ xResetProperty ] = '';\n\n // y\n var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\n var yProperty = isOriginTop ? 'top' : 'bottom';\n var yResetProperty = isOriginTop ? 'bottom' : 'top';\n\n var y = this.position.y + layoutSize[ yPadding ];\n // set in percentage or pixels\n style[ yProperty ] = this.getYValue( y );\n // reset other property\n style[ yResetProperty ] = '';\n\n this.css( style );\n this.emitEvent( 'layout', [ this ] );\n};\n\nproto.getXValue = function( x ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && !isHorizontal ?\n ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';\n};\n\nproto.getYValue = function( y ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && isHorizontal ?\n ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';\n};\n\nproto._transitionTo = function( x, y ) {\n this.getPosition();\n // get current x & y from top/left\n var curX = this.position.x;\n var curY = this.position.y;\n\n var didNotMove = x == this.position.x && y == this.position.y;\n\n // save end position\n this.setPosition( x, y );\n\n // if did not move and not transitioning, just go to layout\n if ( didNotMove && !this.isTransitioning ) {\n this.layoutPosition();\n return;\n }\n\n var transX = x - curX;\n var transY = y - curY;\n var transitionStyle = {};\n transitionStyle.transform = this.getTranslate( transX, transY );\n\n this.transition({\n to: transitionStyle,\n onTransitionEnd: {\n transform: this.layoutPosition\n },\n isCleaning: true\n });\n};\n\nproto.getTranslate = function( x, y ) {\n // flip cooridinates if origin on right or bottom\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n x = isOriginLeft ? x : -x;\n y = isOriginTop ? y : -y;\n return 'translate3d(' + x + 'px, ' + y + 'px, 0)';\n};\n\n// non transition + transform support\nproto.goTo = function( x, y ) {\n this.setPosition( x, y );\n this.layoutPosition();\n};\n\nproto.moveTo = proto._transitionTo;\n\nproto.setPosition = function( x, y ) {\n this.position.x = parseFloat( x );\n this.position.y = parseFloat( y );\n};\n\n// ----- transition ----- //\n\n/**\n * @param {Object} style - CSS\n * @param {Function} onTransitionEnd\n */\n\n// non transition, just trigger callback\nproto._nonTransition = function( args ) {\n this.css( args.to );\n if ( args.isCleaning ) {\n this._removeStyles( args.to );\n }\n for ( var prop in args.onTransitionEnd ) {\n args.onTransitionEnd[ prop ].call( this );\n }\n};\n\n/**\n * proper transition\n * @param {Object} args - arguments\n * @param {Object} to - style to transition to\n * @param {Object} from - style to start transition from\n * @param {Boolean} isCleaning - removes transition styles after transition\n * @param {Function} onTransitionEnd - callback\n */\nproto.transition = function( args ) {\n // redirect to nonTransition if no transition duration\n if ( !parseFloat( this.layout.options.transitionDuration ) ) {\n this._nonTransition( args );\n return;\n }\n\n var _transition = this._transn;\n // keep track of onTransitionEnd callback by css property\n for ( var prop in args.onTransitionEnd ) {\n _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];\n }\n // keep track of properties that are transitioning\n for ( prop in args.to ) {\n _transition.ingProperties[ prop ] = true;\n // keep track of properties to clean up when transition is done\n if ( args.isCleaning ) {\n _transition.clean[ prop ] = true;\n }\n }\n\n // set from styles\n if ( args.from ) {\n this.css( args.from );\n // force redraw. http://blog.alexmaccaw.com/css-transitions\n var h = this.element.offsetHeight;\n // hack for JSHint to hush about unused var\n h = null;\n }\n // enable transition\n this.enableTransition( args.to );\n // set styles that are transitioning\n this.css( args.to );\n\n this.isTransitioning = true;\n\n};\n\n// dash before all cap letters, including first for\n// WebkitTransform => -webkit-transform\nfunction toDashedAll( str ) {\n return str.replace( /([A-Z])/g, function( $1 ) {\n return '-' + $1.toLowerCase();\n });\n}\n\nvar transitionProps = 'opacity,' + toDashedAll( transformProperty );\n\nproto.enableTransition = function(/* style */) {\n // HACK changing transitionProperty during a transition\n // will cause transition to jump\n if ( this.isTransitioning ) {\n return;\n }\n\n // make `transition: foo, bar, baz` from style object\n // HACK un-comment this when enableTransition can work\n // while a transition is happening\n // var transitionValues = [];\n // for ( var prop in style ) {\n // // dash-ify camelCased properties like WebkitTransition\n // prop = vendorProperties[ prop ] || prop;\n // transitionValues.push( toDashedAll( prop ) );\n // }\n // munge number to millisecond, to match stagger\n var duration = this.layout.options.transitionDuration;\n duration = typeof duration == 'number' ? duration + 'ms' : duration;\n // enable transition styles\n this.css({\n transitionProperty: transitionProps,\n transitionDuration: duration,\n transitionDelay: this.staggerDelay || 0\n });\n // listen for transition end event\n this.element.addEventListener( transitionEndEvent, this, false );\n};\n\n// ----- events ----- //\n\nproto.onwebkitTransitionEnd = function( event ) {\n this.ontransitionend( event );\n};\n\nproto.onotransitionend = function( event ) {\n this.ontransitionend( event );\n};\n\n// properties that I munge to make my life easier\nvar dashedVendorProperties = {\n '-webkit-transform': 'transform'\n};\n\nproto.ontransitionend = function( event ) {\n // disregard bubbled events from children\n if ( event.target !== this.element ) {\n return;\n }\n var _transition = this._transn;\n // get property name of transitioned property, convert to prefix-free\n var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;\n\n // remove property that has completed transitioning\n delete _transition.ingProperties[ propertyName ];\n // check if any properties are still transitioning\n if ( isEmptyObj( _transition.ingProperties ) ) {\n // all properties have completed transitioning\n this.disableTransition();\n }\n // clean style\n if ( propertyName in _transition.clean ) {\n // clean up style\n this.element.style[ event.propertyName ] = '';\n delete _transition.clean[ propertyName ];\n }\n // trigger onTransitionEnd callback\n if ( propertyName in _transition.onEnd ) {\n var onTransitionEnd = _transition.onEnd[ propertyName ];\n onTransitionEnd.call( this );\n delete _transition.onEnd[ propertyName ];\n }\n\n this.emitEvent( 'transitionEnd', [ this ] );\n};\n\nproto.disableTransition = function() {\n this.removeTransitionStyles();\n this.element.removeEventListener( transitionEndEvent, this, false );\n this.isTransitioning = false;\n};\n\n/**\n * removes style property from element\n * @param {Object} style\n**/\nproto._removeStyles = function( style ) {\n // clean up transition styles\n var cleanStyle = {};\n for ( var prop in style ) {\n cleanStyle[ prop ] = '';\n }\n this.css( cleanStyle );\n};\n\nvar cleanTransitionStyle = {\n transitionProperty: '',\n transitionDuration: '',\n transitionDelay: ''\n};\n\nproto.removeTransitionStyles = function() {\n // remove transition\n this.css( cleanTransitionStyle );\n};\n\n// ----- stagger ----- //\n\nproto.stagger = function( delay ) {\n delay = isNaN( delay ) ? 0 : delay;\n this.staggerDelay = delay + 'ms';\n};\n\n// ----- show/hide/remove ----- //\n\n// remove element from DOM\nproto.removeElem = function() {\n this.element.parentNode.removeChild( this.element );\n // remove display: none\n this.css({ display: '' });\n this.emitEvent( 'remove', [ this ] );\n};\n\nproto.remove = function() {\n // just remove element if no transition support or no transition\n if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {\n this.removeElem();\n return;\n }\n\n // start transition\n this.once( 'transitionEnd', function() {\n this.removeElem();\n });\n this.hide();\n};\n\nproto.reveal = function() {\n delete this.isHidden;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;\n\n this.transition({\n from: options.hiddenStyle,\n to: options.visibleStyle,\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onRevealTransitionEnd = function() {\n // check if still visible\n // during transition, item may have been hidden\n if ( !this.isHidden ) {\n this.emitEvent('reveal');\n }\n};\n\n/**\n * get style property use for hide/reveal transition end\n * @param {String} styleProperty - hiddenStyle/visibleStyle\n * @returns {String}\n */\nproto.getHideRevealTransitionEndProperty = function( styleProperty ) {\n var optionStyle = this.layout.options[ styleProperty ];\n // use opacity\n if ( optionStyle.opacity ) {\n return 'opacity';\n }\n // get first property\n for ( var prop in optionStyle ) {\n return prop;\n }\n};\n\nproto.hide = function() {\n // set flag\n this.isHidden = true;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;\n\n this.transition({\n from: options.visibleStyle,\n to: options.hiddenStyle,\n // keep hidden stuff hidden\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onHideTransitionEnd = function() {\n // check if still hidden\n // during transition, item may have been un-hidden\n if ( this.isHidden ) {\n this.css({ display: 'none' });\n this.emitEvent('hide');\n }\n};\n\nproto.destroy = function() {\n this.css({\n position: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n transition: '',\n transform: ''\n });\n};\n\nreturn Item;\n\n}));\n","import utils from '../utils';\n\nconst NS = 'ShopListingProductBlock';\nconst CLS = 'shopListingProductBlock';\n\nexport class ShopListingProductBlock {\n\tconstructor(element) {\n\n\t}\n\n}\n","const NS = 'WoolLabSwatchDetailModalBlock';\nconst CLS = 'woolLabSwatchDetailModalBlock';\n\nimport * as THREE from 'three';\nimport CameraControls from 'camera-controls';\nimport 'magnify';\nimport Handlebars from 'handlebars';\nimport {WoolLabSaveToMoodboardModalBlock} from './woolLabSaveToMoodboardModalBlock';\nimport { handleTruncate } from '../../helpers/truncate';\n\nexport class WoolLabSwatchDetailModalBlock {\n\n\tconstructor(el, data = {}) {\n\n\t\tthis.$el = $(el);\n\t\tthis.data = data;\n\t\tthis.getSwatchDetailApi = data.getSwatchDetailApi;\n\t\tthis.getSupplierDetailApi = data.getSupplierDetailApi;\n\t\tthis.isInMySwatchesApi = data.isInMySwatchesApi;\n\n\t\tthis.username = this.$el.data('username');\n\t\tthis.isStudentApi = data.isStudent;\n\t\tthis.$btnClose = this.$el.find(`.${CLS}-canvasContainer-btn-close`);\n\t\tthis.$swatchToggleBtns = this.$el.find(`.${CLS}-swatch-button`);\n\t\tthis.$arrowBtns = this.$el.find(`.${CLS}-arrow`);\n\t\tthis.$btnPrev = this.$el.find(`.${CLS}-arrow.prev`);\n\t\tthis.$btnNext = this.$el.find(`.${CLS}-arrow.next`);\n\t\tthis.$widthMarker = this.$el.find(`.${CLS}-widthMarker`);\n\n\t\tthis.$canvasContainerInner = this.$el.find(`.${CLS}-canvasContainer-inner`);\n\t\tthis.$btnSave = this.$el.find(`.${CLS}-detailContainer-btnSave`);\n\t\tthis.$btnMoodboard = this.$el.find(`.${CLS}-detailContainer-btnMoodboard`);\n\t\tthis.$btnGetSupplier = this.$el.find(`.${CLS}-detailContainer-btnSupplier`);\n\n\t\tthis.$detailTitle = this.$el.find(`.${CLS}-detailContainer-title`);\n\t\tthis.$detailID = this.$el.find(`.${CLS}-detailContainer-id`);\n\t\tthis.$detailWidthCount = this.$el.find(`.${CLS}-widthMarker-count`);\n\t\tthis.$detailIcons = this.$el.find(`.${CLS}-detailContainer-icons`);\n\t\tthis.$detailInformation = this.$el.find(`.${CLS}-detailContainer-information`);\n\t\tthis.$supplierTxt = this.$el.find(`.${CLS}-detailContainer-txtSupplier`);\n\n\t\tthis.addToMoodboardApi = data.addToMoodboardApi;\n\t\tthis.createMoodboardApi = data.createMoodboardApi;\n\t\tthis.getMoodboardsApi = data.getMoodboardsApi;\n\n\t\tthis.$nextSwatch = '';\n\t\tthis.$prevSwatch = '';\n\n\t\tthis.init();\n\t\tthis.addMoodboardSwatchState();\n\t}\n\n\tinit() {\n\t\tCameraControls.install( {THREE: THREE} );\n\t\tconst This = this;\n\t\tlet $wg = $(this.$el);\n\n\t\tconst clock = new THREE.Clock();\n\t\tconst loader = new THREE.TextureLoader();\n\n\t\tlet renderer = new THREE.WebGLRenderer({ antialias: true });\n\t\tlet scene = new THREE.Scene();\n\t\tlet cameraControls;\n\t\tlet camera;\n\t\tlet swatchMesh;\n\n\t\tvar SWATCH_HEIGHT = 7;\n\t\tvar SWATCH_WIDTH = 7;\n\n\t\tif(this.$el.hasClass( \"portrait\" )){\n\t\t\tSWATCH_WIDTH = 7 / this.$el.data( \"ratio\" );\n\t\t}\n\t\tif(this.$el.hasClass( \"landscape\" )){\n\t\t\tSWATCH_HEIGHT = 7 / this.$el.data( \"ratio\" );\n\n\t\t}\n\n\t\tconst SWATCH_SIZE = 7;\n\t\tconst SWATCH_DEPTH = 0.2;\n\t\tconst DESKTOP_CAMERA_Y = 0;\n\t\tconst DESKTOP_CAMERA_Z = 20;\n\t\tconst CAMERA_TRANSITION_X = 15;\n\n\t\tlet $zoom;\n\t\tlet zoomImgURL;\n\n\t\thandleButtons();\n\n\t\tcreateScene();\n createSwatch();\n createShadow();\n\n\t\tanimate();\n\n\t\tcameraControls.moveTo( CAMERA_TRANSITION_X, 0, 0, false );\n\t\tcameraControls.rotateAzimuthTo( 0, false );\n\n\t\tshowLoadingScreen();\n\t\tdisableDragging();\n\t\t// updateSwatch(This.data);\n\t\t// updateDetails(This.data);\n\t\tgetSwatch(This.data.id);\n\n\n\t\tconst CANVAS_RESIZE_OBSERVER = new ResizeObserver(function(entries) {\n\t\t\tlet rect = entries[0].contentRect;\n\t\t\tlet width = rect.width;\n\t\t\tlet height = rect.height;\n\n\t\t\tcamera.aspect = width / height;\n\t\t\trenderer.setSize(width, height);\n\t\t\tcamera.updateProjectionMatrix();\n\t\t\trender();\n\t\t});\n\t\tCANVAS_RESIZE_OBSERVER.observe(document.querySelector(`.${CLS}-canvasContainer-inner`));\n\n\n\t\tfunction createScene() {\n\n\t\t\trenderer.setClearColor(0xffffff);\n\t\t\trenderer.setPixelRatio(window.devicePixelRatio);\n\t\t\trenderer.setSize(640, 640);\n\t\t\tThis.$el.find(`.${CLS}-threejsContent`).append(renderer.domElement);\n\n\t\t\t// Camera\n\t\t\tcamera = new THREE.PerspectiveCamera(35, 1, 1, 1000);\n\t\t\tcamera.position.set(0, DESKTOP_CAMERA_Y, DESKTOP_CAMERA_Z);\n\t\t\tscene.add(camera);\n\n\n\t\t\t// Orbital Controls\n\t\t\tcameraControls = new CameraControls( camera, renderer.domElement );\n\t\t\tcameraControls.rotateSpeed = 1;\n\t\t\tcameraControls.mouseButtons.right = CameraControls.ACTION.NONE;\n\t\t\tcameraControls.mouseButtons.wheel = CameraControls.ACTION.NONE;\n\t\t\tcameraControls.mouseButtons.middle = CameraControls.ACTION.NONE;\n\t\t\tcameraControls.enableDamping = true;\n\t\t\tcameraControls.dampingFactor = 0.1;\n\t\t\t// limits rotation on the x-axis\n\t\t\tcameraControls.minPolarAngle = Math.PI/2;\n\t\t\tcameraControls.maxPolarAngle = Math.PI/2;\n\n\n\t\t\tscene.add(new THREE.AmbientLight(0x666666));\n\t\t\tlet light = new THREE.PointLight(0xffffff, 0.65);\n\t\t\tcamera.add(light);\n\t\t}\n\n\t\tfunction createSwatch() {\n\t\t\tlet swatchGeometry = new THREE.BoxGeometry(SWATCH_WIDTH, SWATCH_HEIGHT, SWATCH_DEPTH);\n\t\t\tlet loadingMaterial = new THREE.MeshBasicMaterial({ color: 0xdddddd });\n\t\t\tswatchMesh = new THREE.Mesh(swatchGeometry, loadingMaterial);\n\n\t\t\tscene.add(swatchMesh);\n\t\t}\n\n\t\tfunction createShadow() {\n\t\t\tconst shadowTexture = loader.load('https://threejs.org/manual/examples/resources/images/roundshadow.png');\n\t\t\tconst shadowGeo = new THREE.PlaneGeometry(8, 4);\n\t\t\tconst shadowMat = new THREE.MeshBasicMaterial({\n\t\t\t\tmap: shadowTexture,\n\t\t\t\ttransparent: true,\n\t\t\t\topacity: 0.25,\n\t\t\t});\n\n\t\t\tlet shadowMesh = new THREE.Mesh(shadowGeo, shadowMat);\n\n\t\t\tshadowMesh.rotation.x = Math.PI * -.5;\n\t\t\tshadowMesh.position.set(0, -4.49, 0);\n\t\t\tscene.add(shadowMesh);\n\t\t}\n\n\t\tfunction animate() {\n\n\t\t\tconst delta = clock.getDelta();\n\t\t\tconst updated = cameraControls.update( delta );\n\n\t\t\trequestAnimationFrame(animate);\n\n\t\t\t// only render when camera is moving\n\t\t\tif ( updated ) {\n\t\t\t\trender();\n\t\t\t}\n\t\t}\n\n\t\tfunction render() {\n\t\t\trenderer.render(scene, camera);\n\t\t}\n\n\t\tfunction resetToggles() {\n\t\t\tThis.$widthMarker.removeClass('active');\n\t\t\tThis.$swatchToggleBtns.removeClass('selected');\n\n\t\t\tenableDragging();\n\n\t\t\tif ($zoom) {\n\t\t\t\t$zoom.destroy();\n\t\t\t}\n\t\t}\n\n\t\tfunction enableDragging() {\n\t\t\tif (This.data.backImageSrc){\n\t\t\t\tcameraControls.enabled = true;\n\t\t\t\tThis.$canvasContainerInner.addClass('canDrag');\n\t\t\t}\n\t\t}\n\t\tfunction disableDragging() {\n\t\t\tcameraControls.enabled = false;\n\t\t\tThis.$canvasContainerInner.removeClass('canDrag');\n\t\t}\n\n\t\tasync function transitionOut() {\n\t\t\treturn cameraControls.truck( CAMERA_TRANSITION_X, 0, true);\n\t\t}\n\n\t\tfunction showLoadingScreen() {\n\t\t\t$wg.addClass('loading');\n\t\t}\n\n\t\tfunction updateDetails(data) {\n\n\t\t\tThis.$detailTitle.html(data.name);\n\t\t\tThis.$detailID.html(data.id);\n\t\t\tThis.$detailWidthCount.html(data.thickness + \"mm\");\n\n\t\t\tupdateSavedSwatchState();\n\n\t\t\tlet $swatchLibrary = $('.woolLabSwatchLibrarySearchBlock-swatches');\n\t\t\tlet $librarySwatchBlock = $swatchLibrary.find(`[data-id=\"${data.id}\"]`).parent();\n\t\t\tThis.$prevSwatchID = $librarySwatchBlock.prev().find('.woolLabSwatchBlock').attr('data-id');\n\t\t\tThis.$nextSwatchID = $librarySwatchBlock.next().find('.woolLabSwatchBlock').attr('data-id');\n\n\t\t\tThis.$btnPrev.prop(\"disabled\", !This.$prevSwatchID ? !0 : 0);\n\t\t\tThis.$btnNext.prop(\"disabled\", !This.$nextSwatchID ? !0 : 0);\n\n\t\t\tif (!This.$prevSwatchID && !This.$nextSwatchID){\n\t\t\t\tThis.$btnPrev.hide();\n\t\t\t\tThis.$btnNext.hide();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tThis.$btnPrev.show();\n\t\t\t\tThis.$btnNext.show();\n\t\t\t}\n\n\t\t\tlet iconsHTML = \"\";\n\t\t\tdata.benefits.map(icon => {\n\t\t\t\tlet oriIcon = icon;\n\t\t\t\ticon = icon.replace('& ',\"\");\n\t\t\t\ticon = icon.replace('%',\"\");\n\t\t\t\ticon = icon.replaceAll(',',\"\");\n\t\t\t\ticon = icon.replace('e/R',\"eR\");\n\t\t\t\ticon = icon.replace(/ /g,\"_\");\n\t\t\t\ticonsHTML += `<div class=\"${CLS}-detailContainer-icon iconTooltip\"><p><img src=\"/globalassets/swatches/benefits/${icon}.png\"></p><span class=\"iconTooltiptext\">${oriIcon}</span></div>`;\n\t\t\t});\n\t\t\tThis.$detailIcons.empty();\n\t\t\tThis.$detailIcons.html(iconsHTML);\n\n\t\t\tlet infoHTML = \"\";\n\t\t\tdata.details.map(i => {\n\t\t\t\tinfoHTML += `<div class=\"${CLS}-detailContainer-information-item\">\n\t\t\t\t\t\t\t\t<h4 class=\"${CLS}-detailContainer-information-label\">${i.name}</h4>\n\t\t\t\t\t\t\t\t<p class=\"${CLS}-detailContainer-information-measurement\">${i.value}</p>\n\t\t\t\t\t\t\t</div>`;\n\t\t\t});\n\t\t\tif(This.isStudent === false){\n\t\t\t\tif( data.archived === false){\n\t\t\t\t\tif (data.supplierInfo){\n\t\t\t\t\t\tThis.$supplierTxt.hide();\n\t\t\t\t\t\tdata.supplierInfo.map(i => {\n\t\t\t\t\t\t\tinfoHTML += `<div class=\"${CLS}-detailContainer-information-item\">\n\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"${CLS}-detailContainer-information-label\">${i.name}</h4>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"${CLS}-detailContainer-information-measurement\">${i.value}</p>\n\t\t\t\t\t\t\t\t\t\t</div>`;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tThis.$supplierTxt.show();\n\t\t\t\t\t\tinfoHTML += `<div class=\"${CLS}-detailContainer-information-item\">\n\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"${CLS}-detailContainer-information-label\">supplier</h4>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"${CLS}-detailContainer-information-measurement\">******</p>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"${CLS}-detailContainer-information-item\">\n\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"${CLS}-detailContainer-information-label\">supplier contact</h4>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"${CLS}-detailContainer-information-measurement\">******</p>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"${CLS}-detailContainer-information-item\">\n\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"${CLS}-detailContainer-information-label\">supplier email</h4>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"${CLS}-detailContainer-information-measurement\">******</p>\n\t\t\t\t\t\t\t\t\t\t</div>`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(data.highlights)\n\t\t\t{\n\t\t\t\tinfoHTML += `<div class=\"${CLS}-detailContainer-highlights\">\n\t\t\t\t\t\t\t\t<h4 class=\"${CLS}-detailContainer-information-label\">highlights</h4>\n\t\t\t\t\t\t\t\t<p class=\"${CLS}-detailContainer-information-measurement\">${data.highlights}</p>\n\t\t\t\t\t\t\t</div>`;\n\t\t\t}\n\n\n\t\t\tThis.$detailInformation.empty();\n\t\t\tThis.$detailInformation.html(infoHTML);\n\n\t\t\tlet $highlightInfo = This.$detailInformation.find(`.${CLS}-detailContainer-highlights > p`);\n\t\t\thandleTruncate($highlightInfo, 110);\n\t\t}\n\n\t\tfunction updateSavedSwatchState(){\n\t\t\tThis.$btnSave.html(This.data.saved ? 'Saved' :'My Swatches');\n\t\t\tThis.$btnSave.prop(\"disabled\", This.data.saved ? !0 : 0);\n\t\t}\n\n\t\tfunction updateSwatch(data) {\n\t\t\tif (data.frontImageSrc) {\n\t\t\t\tupdateSwatchObject({\n\t\t\t\t\tfrontImgURL: data.frontImageSrc,\n\t\t\t\t\tbackImgURL: data.backImageSrc ? data.backImageSrc : null,\n\t\t\t\t\tsideImgURL: data.sideImageSrc ? data.sideImageSrc : null\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!data.backImageSrc){\n\t\t\t\t$(`.${CLS}-swatch-button-rotate`).hide()\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(`.${CLS}-swatch-button-rotate`).show()\n\t\t\t}\n\t\t\tif (!data.thickness){\n\t\t\t\t$(`.${CLS}-swatch-button-thickness`).hide()\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(`.${CLS}-swatch-button-thickness`).show()\n\t\t\t}\n\n\t\t}\n\n\t\tasync function updateSwatchObject({ frontImgURL, backImgURL, sideImgURL }) {\n\t\t\tif (frontImgURL) {\n\t\t\t\tzoomImgURL = frontImgURL;\n\n\t\t\t\tloadTexture({\n\t\t\t\t\tfrontImg: frontImgURL,\n\t\t\t\t\tbackImg: backImgURL ? backImgURL : null,\n\t\t\t\t\tsideImg: sideImgURL ? sideImgURL : null\n\t\t\t\t}).then(res => onTextureLoaded(res))\n\t\t\t\t.then( () => {\n\t\t\t\t\tcameraControls.moveTo( CAMERA_TRANSITION_X, 0, 0, false );\n\t\t\t\t\tcameraControls.rotateAzimuthTo( 0, false );\n\t\t\t\t\tcameraControls.reset( true );\n\t\t\t\t\t$wg.removeClass('loading');\n\t\t\t\t\tenableDragging();\n\t\t\t\t})\n\t\t\t\t.catch(res => {});\n\t\t\t}\n\t\t}\n\n\t\tfunction loadTexture({frontImg, backImg, sideImg}) {\n\t\t\tconst textures = Promise.all([\n\t\t\t\tloader.loadAsync(frontImg),\n\t\t\t\tbackImg ? loader.loadAsync(backImg) : null,\n\t\t\t\tsideImg ? loader.loadAsync(sideImg) : null]\n\t\t\t);\n\n\t\t\treturn textures;\n\t\t}\n\n\t\tfunction onTextureLoaded(textures) {\n\n\t\t\tlet frontTexture = textures[0];\n\t\t\tlet backTexture = textures[1] !== null ? textures[1] :frontTexture.clone();\n\t\t\tlet sideTexture = textures[2] !== null ? textures[2] :frontTexture.clone();\n\n\n\t\t\tlet frontMaterial = new THREE.MeshLambertMaterial({\n\t\t\t\tmap: frontTexture, transparent: true, alphaTest: 0.3\n\t\t\t});\n\n\t\t\tlet backMaterial = new THREE.MeshLambertMaterial({\n\t\t\t\tmap: backTexture, transparent: true, alphaTest: 0.3\n\t\t\t});\n\t\t\tbackMaterial.map.needsUpdate = true;\n\t\t\tbackTexture.wrapS = THREE.RepeatWrapping;\n\t\t\tbackTexture.wrapT = THREE.RepeatWrapping;\n\t\t\tbackTexture.repeat.set(-1, 1);\n\n\n\t\t\tlet sideMaterial = new THREE.MeshLambertMaterial({\n\t\t\t\tmap: sideTexture, transparent: true, alphaTest: 0.3\n\t\t\t});\n\t\t\tsideMaterial.map.needsUpdate = true;\n\t\t\tsideTexture.wrapS = THREE.RepeatWrapping;\n\t\t\tsideTexture.wrapT = THREE.RepeatWrapping;\n\t\t\tsideTexture.repeat.set(-SWATCH_WIDTH / SWATCH_SIZE, 1);\n\n\n\t\t\tswatchMesh.material =\n\t\t\t\t[\n\t\t\t\t\tsideMaterial, // +x\n\t\t\t\t\tsideMaterial, // -x\n\t\t\t\t\tfrontMaterial, // +y\n\t\t\t\t\tfrontMaterial, // -y\n\t\t\t\t\tfrontMaterial, // +z\n\t\t\t\t\tbackMaterial // -z\n\t\t\t\t];\n\t\t}\n\n\t\tfunction getSwatch(id) {\n\t\t\tshowLoadingScreen();\n\n\t\t\t// We want to get swatch detail first then supplier info, this ensures that when updateDetails, we have the info to fill the details\n\t\t\tfetch(`${This.getSwatchDetailApi}?swatchId=${id}`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t}).then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t\tThis.data.highlights = null;\n\t\t\t\tThis.data = {\n\t\t\t\t\t...This.data,\n\t\t\t\t\t..._json\n\t\t\t\t};\n\t\t\t\tThis.data.supplierInfo = null;\n\t\t\t\treturn fetch(`${This.getSupplierDetailApi}?swatchId=${id}`, {\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t});\n\t\t\t}).then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t\tThis.data = {\n\t\t\t\t\t...This.data,\n\t\t\t\t\t..._json\n\t\t\t\t};\n\t\t\t}).catch((_error) => {\n\t\t\t}).finally(() => {\n\t\t\t\tif (This.data){\n\t\t\t\t\tupdateDetails(This.data);\n\t\t\t\t\tupdateSwatch(This.data);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfetch(`${This.isInMySwatchesApi}?swatchId=${id}`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t}).then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t\tThis.data.saved = _json;\n\t\t\t\tupdateSavedSwatchState();\n\t\t\t}).catch((_error) => { });\n\n\t\t\tfetch(`${This.isStudentApi}`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t}).then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t\tThis.isStudent = _json;\n\t\t\t}).catch((_error) => { });\n\t\t};\n\n\t\tfunction saveSwatch() {\n\t\t\tshowLoadingScreen();\n\n\t\t\tlet url = `${This.data.addToMySwatchesApi}`;\n\t\t\tfetch(url, {\n\t\t\t\tcache: 'no-cache',\n\t\t\t\tbody: JSON.stringify([This.data.id]),\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json'\n\t\t\t\t},\n\t\t\t\tmethod: 'POST',\n\t\t\t}).then(() => {\n\t\t\t\tThis.data.saved = true;\n\t\t\t\treturn fetch(`${This.getSupplierDetailApi}?swatchId=${This.data.id}`, {\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t});\n\t\t\t}).then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t\tThis.data = {\n\t\t\t\t\t...This.data,\n\t\t\t\t\t..._json\n\t\t\t\t};\n\t\t\t}).catch((_error) => {\n\t\t\t\tconsole.log(_error);\n\t\t\t}).finally(() => {\n\t\t\t\tupdateDetails(This.data);\n\t\t\t\t$wg.removeClass('loading');\n\n\t\t\t\t// Global function to refresh MySwatches in Swatch Library\n\t\t\t\tif (window.awiGlobalHelper && window.awiGlobalHelper.reloadSwatchLibraryMySwatches) {\n\t\t\t\t\twindow.awiGlobalHelper.reloadSwatchLibraryMySwatches();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction handleButtons() {\n\n\t\t\tThis.$arrowBtns.on('click', (e) => {\n\t\t\t transitionOut();\n\t\t\t resetToggles();\n\t\t\t disableDragging();\n\n\t\t\t if ($(e.currentTarget).hasClass('prev')) {\n\t\t\t\t\tif (This.$prevSwatchID) {\n\t\t\t\t\t\tgetSwatch(This.$prevSwatchID);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(This.$nextSwatchID) {\n\t\t\t\t\t\tgetSwatch(This.$nextSwatchID);\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t});\n\n\t\t\tThis.$btnClose.on('click', () => {\n\t\t\t\tCANVAS_RESIZE_OBSERVER.unobserve(document.querySelector(`.${CLS}-canvasContainer-inner`));\n\t\t\t resetToggles();\n\t\t\t});\n\n\t\t\tThis.$btnSave.on('click', () => {\n\t\t\t\tsaveSwatch();\n\t\t\t});\n\n\t\t\tThis.$btnGetSupplier.on('click', () => {\n\t\t\t\tgetSupplierInfo();\n\t\t\t});\n\n\t\t\tThis.$swatchToggleBtns.on('click', (e) => {\n\n\t\t\t\tlet $btn = $(e.currentTarget);\n\t\t\t\tlet isSelected = $btn.hasClass('selected');\n\n\t\t\t\tcameraControls.reset( true );\n\t\t\t\tresetToggles();\n\n\t\t\t\tif (!isSelected) {\n\n\t\t\t\t\tdisableDragging();\n\t\t\t\t\t$btn.addClass('selected');\n\t\t\t\t\trequestAnimationFrame(animate);\n\n\t\t\t\t\tif ($btn.hasClass(`${CLS}-swatch-button-thickness`)) {\n\t\t\t\t\t\tcameraControls.rotateAzimuthTo( 83 * THREE.MathUtils.DEG2RAD, true );\n\t\t\t\t\t\tThis.$widthMarker.addClass('active');\n\t\t\t\t\t} else if ($btn.hasClass(`${CLS}-swatch-button-rotate`)) {\n\t\t\t\t\t\tcameraControls.rotateAzimuthTo( 180 * THREE.MathUtils.DEG2RAD, true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcameraControls.rotateAzimuthTo( 0, true );\n\n\t\t\t\t\t\t// add zoom effect\n\t\t\t\t\t\tif (zoomImgURL) {\n\t\t\t\t\t\t $zoom = $(`.${CLS}-zoom`).magnify({\n\t\t\t\t\t\t\t\tsrc: zoomImgURL,\n\t\t\t\t\t\t\t\tmagnifiedWidth: 1024,\n\t\t\t\t\t\t\t\tmagnifiedHeight: 1024,\n\t\t\t\t\t\t });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\taddMoodboardSwatchState(){\n\t\tthis.$btnMoodboard.on('click', () => {\n\t\t\tthis.displaySaveToMoodboardModal();\n\t\t});\n\t}\n\n\tgetSaveToMoodboardModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSaveToMoodboardModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSaveToMoodboardModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSaveToMoodboardModalBlock\n\t\t\t\twg=\"woolLabSaveToMoodboardModalBlock\"\n\t\t\t\tns=\"WoolLabSaveToMoodboardModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplaySaveToMoodboardModal() {\n\t\t$(document.body).append(this.getSaveToMoodboardModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabSaveToMoodboardModalBlock');\n\n\t\tlet modalData = {};\n\t\tmodalData.getMoodboardsApi = this.getMoodboardsApi;\n\t\tmodalData.addToMoodboardApi = this.addToMoodboardApi;\n\t\tmodalData.createMoodboardApi = this.createMoodboardApi;\n\t\tmodalData.selectedItems = [this.data.id];\n\t\tmodalData.itemType ='swatch';\n\n\t\tnew WoolLabSaveToMoodboardModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\t}\n}\n","import {WoolLabSwatchDetailModalBlock} from './woolLabSwatchDetailModalBlock';\n\nconst NS = 'WoolLabSwatchBlock';\nconst CLS = 'woolLabSwatchBlock';\nconst CLS_SAVED = 'woolLabSwatchBlock--saved';\nimport Handlebars from 'handlebars';\n\nexport class WoolLabSwatchBlock {\n\tconstructor(el, data = {}) {\n\t\tthis.el = el;\n\t\tthis.$el = $(el);\n\t\tthis.id = this.$el.data('id');\n\t\tthis.email = this.$el.data('email');\n\n\t\tthis.$id = this.$el.find(`.${CLS}-content-id`);\n\t\tthis.$title = this.$el.find(`.${CLS}-content-title`);\n\t\tthis.$imageWrap = this.$el.find(`.${CLS}-imageWrap`);\n\t\tthis.$image = this.$el.find(`.${CLS}-image`);\n\t\tthis.$btnWrap = this.$el.find(`.${CLS}-btnWrap`);\n\t\tthis.$btnAddSave = this.$el.find(`.${CLS}-btnAddSave`);\n\t\tthis.data = data;\n\t\tthis.data.getSwatchDetailApi = this.$el.data('getSwatchDetailApi');\n\t\tthis.data.getSupplierDetailApi = this.$el.data('getSupplierDetailApi');\n this.data.isInMySwatchesApi = this.$el.data('isInMySwatchesApi');\n\t\tthis.fetchDetailsFromApi = this.$el.data('fetchDetailsFromApi');\n\t\tthis.data.addToMySwatchesApi = this.$el.data('addToMySwatchesApi');\n\t\tthis.data.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.data.createMoodboardApi = this.$el.data('createMoodboardApi');\n\t\tthis.data.addToMoodboardApi = this.$el.data('addToMoodboardApi');\n\t\tthis.data.isLoggedIn = this.$el.data('isLoggedIn');\n\t\tthis.data.isStudent = this.$el.data('isstudent');\n\t\tthis.data.id = this.id;\n\n\t\tif (this.data.isLoggedIn === undefined) {\n\t\t\tthis.data.isLoggedIn = true;\n\t\t}\n\n\t\tif (this.isSaved) {\n\t\t\tthis.$el.addClass(CLS_SAVED);\n\t\t}\n\n\t\tif (this.fetchDetailsFromApi && this.data.getSwatchDetailApi && this.id) {\n\t\t\tthis.getValues();\n\t\t}\n\t\tthis.handleButtons();\n\t}\n\n\thandleButtons() {\n\t\tthis.$el.on('click', (e) => {\n\t\t\tif (('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)) {\n\t\t\t\t// mobile menu active\n\t\t\t\tif (this.$el.hasClass('touchActive')) {\n\t\t\t\t\tif ($(e.target).hasClass(`${CLS}-btnMobileDetail`)) {\n\t\t\t\t\t\tthis.displayDetails();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(`.${CLS}`).addClass('touchDevice');\n\t\t\t\t$(`.${CLS}`).removeClass('touchActive');\n\t\t\t\t$(e.currentTarget).addClass('touchActive');\n\t\t\t} else {\n\t\t\t\tif (!$(e.target).hasClass(`${CLS}-btnAddSave`)) {\n\t\t\t\t\tthis.displayDetails();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.$el.on('mouseenter', (e) => {\n\t\t\t$(e.currentTarget).addClass('touchActive');\n\t\t});\n\n\t\tthis.$el.on('mouseleave', (e) => {\n\t\t\t$(e.currentTarget).removeClass('touchActive');\n\t\t});\n\t}\n\n\tdisplayDetails() {\n\t\t$(document.body).append(this.getModalTemplate()(this.data));\n\t\tlet $modal = $(`#woolLabSwatchDetailModalBlock--${this.data.id}`);\n\t\tif(this.$image.prop('naturalWidth') < this.$image.prop('naturalHeight')){\n\t\t\t$modal.addClass(\"portrait\");\n\t\t\tvar ratio = this.$image.prop('naturalHeight')/this.$image.prop('naturalWidth');\n\t\t\tvar ratioStr = String(ratio).slice(0, 3);\n\t\t\tvar ratioNum = Number(ratioStr);\n\t\t}\n\t\tif(this.$image.prop('naturalWidth') > this.$image.prop('naturalHeight')){\n\t\t\t$modal.addClass(\"landscape\");\n\t\t\tvar ratio = this.$image.prop('naturalWidth')/this.$image.prop('naturalHeight');\n\t\t\tvar ratioStr = String(ratio).slice(0, 3);\n\t\t\tvar ratioNum = Number(ratioStr);\n\t\t}\n\t\t$modal.attr('data-ratio', ratioNum);\n\t\tif(!this.data.isLoggedIn){\n $(`.woolLabSwatchDetailModalBlock-detailContainer-cta`).hide();\n }\n\t\telse{\n\t\t\t$(`.woolLabSwatchDetailModalBlock-detailContainer-cta`).show();\n\t\t}\n\t\tnew WoolLabSwatchDetailModalBlock($modal[0], this.data);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t});\n\t}\n\n\tgetModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSwatchDetailModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchDetailModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchDetailModalBlock\n\t\t\t\twg=\"woolLabSwatchDetailModalBlock\"\n\t\t\t\tns=\"WoolLabSwatchDetailModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tgetValues() {\n\t\tfetch(`${this.data.getSwatchDetailApi}?swatchId=${encodeURIComponent(this.id)}`).then((response) => {\n\t\t\treturn response.json();\n\t\t}).then((json) => {\n\t\t\tthis.data = {\n\t\t\t\t...this.data,\n\t\t\t\t...json,\n\t\t\t};\n\t\t\tthis.$title.html(this.data.name);\n\t\t\tthis.$id.html(this.data.id);\n\t\t\tthis.$image.attr('src', this.data.thumbnailImageSrc).attr('alt', this.data.name);\n\t\t});\n\t}\n}\n\n\n","import utils from '../utils';\n\nconst NS = 'ProfileListingItemBlock';\nconst CLS = 'profileListingItemBlock';\n\nexport class ProfileListingItemBlock {\n\tconstructor(element) {\n\n\t}\n\n}\n","const NS = 'SupplierListingItemBlock';\nconst CLS = 'supplierListingItemBlock';\n\nexport class SupplierListingItemBlock {\n\tconstructor(element) {\n\n\t}\n\n}\n","const NS = 'SourcingGuideItemBlock';\nconst CLS = 'sourcingGuideItemBlock';\n\nexport class SourcingGuideItemBlock {\n\tconstructor(element) {\n\n\t}\n\n}\n","/* eslint-disable max-len */\nimport Player from '@vimeo/player';\nimport utils from '../utils';\n\n// CONSTANTS are all caps.\n// eslint-disable-next-line no-unused-vars\nconst NS = 'VideoBlock';\nconst CLS = 'videoBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/videoBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class VideoBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadVideoBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setVideoBlock();\n\t}\n\n\tsetVideoBlock() {\n\t\tconst wg = $(this.$el);\n\t\tconst videoType = wg.find('.videoBlock-video').data('videoType');\n\t\tconst videoId = wg.find('.videoBlock-video').data('videoId');\n\t\tconst video = wg.find('.videoBlock-video');\n\t\tconst isPrepCls = 'is-preparing';\n\t\tconst isPlayCls = 'is-playing';\n\t\tlet vimeoPlayer = null;\n\n\t\tconst img = wg.find('.videoBlock-img');\n\t\tconst imgWidth = img.outerWidth();\n\t\tconst imgHeight = img.outerHeight();\n\n\t\tvideo.css({\n\t\t\twidth: imgWidth,\n\t\t\theight: imgHeight,\n\t\t});\n\n\t\t// Popup video after clicking Play button.\n\t\twg.find('.jumpNextSection').on('click', (e) => {\n\t\t\t// For hiding image and overlay.\n\t\t\twg.addClass(isPrepCls);\n\n\t\t\tutils.scrollToEl(wg[0]);\n\n\t\t\t// Is Vimeo video ?\n\t\t\t// Create a hidden Vimeo Player that will be popup later.\n\t\t\t// @ref https://github.com/vimeo/player.js\n\t\t\tif (this.isVimeoLink(videoType)) {\n\t\t\t\tvideo.append('<div data-vimeo-id=\"' + videoId + '\" id=\"vimeoVideo\" />');\n\t\t\t\tvimeoPlayer = new Player('vimeoVideo');\n\t\t\t}\n\n\t\t\t// Is Youtube video ?\n\t\t\t// Append an Iframe\n\t\t\tif (this.isYoutubeLink(videoType)) {\n\t\t\t\tconst embedLink = 'https://www.youtube.com/embed/' + videoId;\n\t\t\t\tvideo.append('<iframe src=\"' + embedLink + '\" allow=\"autoplay\" />');\n\t\t\t}\n\n\t\t\t// Is Youku video ?\n\t\t\t// Append an Iframe\n\t\t\tif (this.isYoukuLink(videoType)) {\n\t\t\t\tconst embedLink = 'https://player.youku.com/embed/' + videoId;\n video.append('<iframe src=\"' + embedLink + '\" allow=\"autoplay\" />');\n\t\t\t}\n\n\t\t\t// Start Vimeo video.\n\t\t\tif (videoType === 'vimeo') vimeoPlayer.play();\n\n\t\t\t// Start Youtube video.\n\t\t\tif (videoType === 'youtube') {\n\t\t\t\tconst src = $('iframe', video).attr('src');\n\t\t\t\t$('iframe', video).attr('src', src + '?autoplay=1&rel=0');\n\t\t\t}\n\n\t\t\t// Start Youku video.\n\t\t\tif (videoType === 'youku') {\n\t\t\t\tconst src = $('iframe', video).attr('src');\n\t\t\t\t$('iframe', video).attr('src', src + '?autoplay=1&rel=0&showinfo=0');\n\t\t\t}\n\n\t\t\tconst wgWidth = wg.outerWidth();\n\t\t\tconst videoWidth = wgWidth;\n\t\t\tconst videoHeight = wgWidth / 16 * 9; // Video ratio is 16:9\n\n\t\t\t// prevent video jumping\n\t\t\twg.find(WG + 'img').css('height', videoHeight);\n\t\t\tvideo.show().animate({\n\t\t\t\twidth: videoWidth,\n\t\t\t\theight: videoHeight,\n\t\t\t}, 1000, 'linear');\n\t\t\tsetTimeout(() => {\n\t\t\t\twg.removeClass(isPrepCls);\n\t\t\t\twg.addClass(isPlayCls);\n\t\t\t}, 1000);\n\t\t});\n\t}\n\n\tisVimeoLink(videoType) {\n\t\treturn videoType === 'vimeo';\n\t}\n\n\tisYoutubeLink(videoType) {\n\t\treturn videoType === 'youtube';\n\t}\n\n\tisYoukuLink(videoType) {\n\t\treturn videoType === 'youku';\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"HubHero\";\nconst CLS = \"hubHero\";\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/hubHero.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class HubHero {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadHubHero function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\t// added classes here instead of template because easier to maintain\n\t\tif(this.$el.querySelector(\"video\"+WG+\"video\")) this.$el.classList.add(\"has-video\");\n\t\telse if(this.$el.querySelector(\".youtube-player\"+WG+\"video\")) this.$el.classList.add(\"has-videoYT\");\n\n\t\tthis.playVideo();\n\t}\n\n\tplayVideo() {\n\t\t$(document).on(\"youtubeVideoReady\", () => {\n\t\t\tlet $video = $(`${WG}video`);\n\t\t\tif ($video.length > 0) {\n\t\t\t\tyouTubePlayers[$video.attr(\"data-array-index\")].setVolume(0);\n\t\t\t}\n\t\t});\n\t}\n\n\t//Add more functions like on above here\n\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\n/* eslint-disable no-invalid-this */\n// CONSTANTS are all caps.\nconst NS = 'SiteHeader';\nconst CLS = 'siteHeader';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/siteHeader.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport {loadSearchBar} from '../loadWg/searchBar';\nimport utils from '../utils';\n\nconst $win = $(window);\nconst $doc = $(document);\n\nexport class SiteHeader {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadSiteHeader function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\t// this.checkMinified();\n\t\tthis.setSiteHeader();\n\t\tthis.setSearchBar();\n\t\tthis.setSticky();\n\t\t$('.siteHeader').addClass('is-ready');\n\t\t// this.setAnimations();\n\t\t// this.onScrollMinify();\n\t\tthis.onResizeAdjustHeaderContentWidth();\n\t\tthis.setHeaderBottomFix();\n\t\tthis.setupMegaMenu();\n\t\tthis.setupSubMenu();\n\t\t// this.checkAccMenuToggle();\n\t}\n\n\tsetHeaderBottomFix() {\n\t\tconst headerWrap = document.querySelector('.homePage-headerWrap');\n\n\t\tif (headerWrap) {\n\t\t\tconst firstElement = document.querySelector('#mainContent').children[0];\n\t\t\tlet firstEleHeight = firstElement.clientHeight + 'px';\n\n\t\t\tif (firstElement.className.indexOf('homeHero') === -1) {\n\t\t\t\tdocument.querySelector('#mainContent').children[0].style.marginBottom = '60px';\n\t\t\t}\n\n\t\t\theaderWrap.style.top = firstEleHeight;\n\t\t\t$(window).resize(function() {\n\t\t\t\tfirstEleHeight = firstElement.clientHeight + 'px';\n\t\t\t\theaderWrap.style.top = firstEleHeight;\n\t\t\t});\n\t\t} else {\n\t\t\tthis.addTopSpacing();\n\t\t}\n\t}\n\n\tsetSiteHeader() {\n\t\t// Add Some logic here\n\t\tconst wg = this.$el;\n\t\tconst navBarToggle = this.$el.find(WG + 'navbarToggle');\n\t\tconst megaMenu = this.$el.find(WG + 'megaMenu');\n\t\tconst mmBackBtn = this.$el.find(WG + 'mmBackBtn');\n\n\t\tnavBarToggle.on('click', function(e) {\n\t\t\twg.toggleClass('is-mbExpanded');\n\t\t\t$(this).toggleClass('is-collapsed');\n\t\t});\n\n\t\tmmBackBtn.on('click', function(e) {\n\t\t\t// e.stopPropagation();\n\t\t\tmegaMenu.removeClass('is-megaMenuOpen');\n\t\t});\n\t}\n\n\tsetSearchBar() {\n\t\tloadSearchBar(document.body).then((wg) => {\n\t\t\twg ? wg.init() : '';\n\t\t});\n\t}\n\n\tsetSticky() {\n\t\t// let This = this;\n\t\tlet stickyToggle = function(sticky, stickyWrapper, scrollElement) {\n\t\t\tlet stickyHeight = sticky.outerHeight();\n\t\t\tlet stickyTop = stickyWrapper.offset().top;\n\n\t\t\tif (scrollElement.scrollTop() >= stickyTop) {\n\t\t\t\tstickyWrapper.height(stickyHeight);\n\t\t\t\tsticky.addClass('is-sticky');\n\t\t\t} else {\n\t\t\t\tsticky.removeClass('is-sticky');\n\t\t\t\tstickyWrapper.height('auto');\n\t\t\t}\n\n\t\t\t// on mobile, always stick?\n\t\t\t// if (This.isOnMobile()) {\n\t\t\t// \tstickyWrapper.height(stickyHeight);\n\t\t\t// \tsticky.addClass('is-sticky');\n\t\t\t// }\n\t\t};\n\n\t\t// needs to timeout to avoid double call (which happens intermittently)\n\t\tsetTimeout(() => {\n\t\t\t// Find all data-toggle=\"sticky-onscroll\" elements\n\t\t\t$('[data-toggle=\"sticky-onscroll\"]').each(function() {\n\t\t\t\tlet sticky = $(this);\n\t\t\t\tlet stickyWrapper = $('<div>').addClass('sticky-wrapper'); // insert hidden element to maintain actual top offset on page\n\t\t\t\tsticky.before(stickyWrapper);\n\t\t\t\tsticky.addClass('sticky');\n\n\t\t\t\t// Scroll & resize events\n\t\t\t\t// window won't work as expected, document will span the full content\n\t\t\t\t$doc.on('scroll.sticky-onscroll resize.sticky-onscroll', function() {\n\t\t\t\t\tstickyToggle(sticky, stickyWrapper, $(this));\n\t\t\t\t});\n\n\t\t\t\t// On page load\n\t\t\t\tstickyToggle(sticky, stickyWrapper, $win);\n\t\t\t});\n\t\t}, 0);\n\t}\n\n\t// User clicks on logo for collapsing header.\n\t// Pre-condition: user is on desktop size, the header in mobile size is always expanded.\n\tminifyHeader(duration = 250) {\n\t\tlet wg = this.$el;\n\t\tlet nav = wg.find(WG + 'nav');\n\t\tlet content = wg.find(WG + 'contents');\n\t\tlet logoWrapper = wg.find(WG + 'logoWrapper');\n\t\tlet logo = wg.find(WG + 'logo');\n\t\tlet logoWidth = logo.width();\n\t\tlet paddingForLogoLeftSide = 13;\n\t\tlet paddingForLogoBothSides = 26;\n\t\tlet logoDisplayedArea = logoWidth + paddingForLogoBothSides;\n\t\tlet logoWrapperWidth = 70 - logoWidth - paddingForLogoLeftSide;\n\n\t\tnav.css({\n\t\t\toverflow: 'hidden',\n\t\t});\n\n\t\t// Important for \"overflow: hidden\" nav.\n\t\tcontent.width(utils.getWindowWidth());\n\n\t\t// Collapsing nav.\n\t\tnav.animate({\n\t\t\twidth: logoDisplayedArea + 'px',\n\t\t\tleft: logoWrapperWidth + 'px',\n\t\t}, duration);\n\t\t// Move logo to the displaying area.\n\t\tcontent.animate({\n\t\t\tleft: '-' + logoWrapperWidth + 'px',\n\t\t}, duration);\n\t}\n\n\t// User clicks on logo for expanding header.\n\t// Pre-condition: the header is collapsing.\n\texpandHeader() {\n\t\tlet wg = this.$el;\n\t\tlet nav = wg.find(WG + 'nav');\n\t\tlet content = wg.find(WG + 'contents');\n\n\t\t// check if previous animations are done\n\t\t// if (nav.is(':animated') || content.is(':animated')) return;\n\n\t\t// Expanding the nav.\n\t\tnav.stop().animate({\n\t\t\twidth: '100%',\n\t\t\tleft: '0px',\n\t\t}, () => {\n\t\t\tnav.css({\n\t\t\t\toverflow: 'visible',\n\t\t\t});\n\t\t});\n\n\t\t// Expanding the inner content.\n\t\tcontent.stop().animate({\n\t\t\tleft: '0px',\n\t\t\twidth: utils.getWindowWidth(),\n\t\t}, () => {\n\t\t\t// content.width('100%');\n\t\t\t// content.width(window.innerWidth - 15);\n\t\t});\n\t}\n\n\tisOnMobile() {\n\t\treturn utils.getWindowWidth() < 992;\n\t}\n\n\t// Click on logo to minify/expand the header.\n\tsetAnimations() {\n\t\tlet wg = this.$el;\n\t\t// let nav = wg.find(WG + 'nav');\n\t\t// eslint-disable-next-line no-unused-vars\n\t\tlet content = wg.find(WG + 'contents');\n\t\tlet logoHit = wg.find(WG + 'logoHit');\n\n\t\t// User clicks on logo for collapse/expand header.\n\t\tlogoHit.on('mouseover', () => {\n\t\t\t// On mobile, the collapsed nav is auto expanded because we don't have collapsed nav on mobile size.\n\t\t\tif (this.isOnMobile()) {\n\t\t\t\tif (wg.hasClass('is-minified')) {\n\t\t\t\t\twg.removeClass('is-minified');\n\t\t\t\t\tthis.expandHeader();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Collapse/expand header.\n\t\t\t// we should check if there is a previous animation that didn't finish yet\n\t\t\twg.toggleClass('is-minified');\n\t\t\tif (wg.hasClass('is-minified')) this.minifyHeader();\n\t\t\telse this.expandHeader();\n\t\t});\n\n\t\t// When user resizes browsers,\n\t\t// ensure that if in mobile size, the header must be expanded.\n\t\t$win.resize(() => {\n\t\t\tif (this.isOnMobile()) {\n\t\t\t\tif (wg.hasClass('is-minified')) {\n\t\t\t\t\twg.removeClass('is-minified');\n\t\t\t\t\tthis.expandHeader();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\n\t\t//\n\t\t// window.onscroll = (e) => {\n\t\t// \t\tconst $sec = $('#mainContent').find(':nth-of-type(2)');\n\t\t// \t\tconst secBottom = $sec.position().top + $sec.outerHeight();\n\t\t// \t\tlet winBottom = $(window).scrollTop() + $(window).height();\n\t\t// \t\t// If sec is completely visible in the window, fade in\n\t\t// \t\tif (winBottom > secBottom) {\n\t\t// \t\t\tthis.minifyHeader();\n\t\t// \t\t}\n\t\t// };\n\t\t// End\n\t}\n\n\tcheckMinified() {\n\t\tconst isMinified = this.$el.hasClass('is-minified');\n\n\t\tif (isMinified && !this.isOnMobile()) {\n\t\t\tthis.minifyHeader();\n\t\t}\n\t}\n\n\tonScrollMinify() {\n\t\tconst _this = this;\n\t\tconst $logoHit = this.$el.find(WG + 'logoHit');\n\t\tconst $homePage = $('.homePage');\n\t\t// homePage??\n\t\tif ($('.main').length > 0) {\n\t\t\t$win.on('scroll', function() {\n\t\t\t\tconst scrollTop = $win.scrollTop();\n\t\t\t\tconst docHeight = $doc.height();\n\t\t\t\tconst winHeight = $win.height();\n\t\t\t\tconst scrollPercent = (scrollTop) / (docHeight - winHeight);\n\t\t\t\tconst scrollPercentRounded = Math.round(scrollPercent * 100);\n\n\t\t\t\tif ($homePage.length > 0) {\n\t\t\t\t\tconst mainOffset = $homePage.offset().top;\n\n\t\t\t\t\tif (!_this.$el.hasClass('is-minified') && scrollPercentRounded > 40) {\n\t\t\t\t\t\t// $(window).off('scroll');\n\t\t\t\t\t\t// _this.minifyHeader();\n\t\t\t\t\t\t// Trigger synthetic click event instead of using minifyHeader() as a quick-fix\n\t\t\t\t\t\t$logoHit.trigger('mouseover');\n\t\t\t\t\t} else if (_this.$el.hasClass('is-minified') && mainOffset >= scrollTop) {\n\t\t\t\t\t\t$logoHit.trigger('mouseover');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!_this.$el.hasClass('is-minified') && scrollPercentRounded > 20) {\n\t\t\t\t\t\t// $(window).off('scroll');\n\t\t\t\t\t\t// _this.minifyHeader();\n\t\t\t\t\t\t// Trigger synthetic click event instead of using minifyHeader() as a quick-fix\n\t\t\t\t\t\t$logoHit.trigger('mouseover');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t// Add more functions like on above here\n\n\tonResizeAdjustHeaderContentWidth() {\n\t\tlet This = this;\n\t\t$win.on('resize', function() {\n\t\t\tlet wg = $(This.$el);\n\t\t\tlet content = wg.find(WG + 'contents');\n\t\t\t// let nav = wg.find(WG + 'nav');\n\n\t\t\t// Expanding the inner content.\n\t\t\tcontent.width(utils.getWindowWidth());\n\t\t\t// removed the animation on resize as it created temporary scroll bars\n\t\t\t// content.stop().animate({\n\t\t\t// \twidth: utils.getWindowWidth()\n\t\t\t// });\n\t\t});\n\t}\n\n\tsetupMegaMenu() {\n\t\tlet megaMenu = $(WG + 'megaMenu');\n\t\tmegaMenu.find(WG + 'megaMenuContent').hide();\n\t\tlet $hb = $('html, body');\n\n\t\tmegaMenu.on('mouseover', function(e) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tconst that = this;\n\n\t\t\t$(megaMenu).removeClass('is-megaMenuOpen');\n\n\n\t\t\tlet megaMenuContent = $(this).find('.siteHeader-megaMenuContent');\n\t\t\t$(that).addClass('is-megaMenuOpen');\n\n\t\t\t// add slide down effect\n\t\t\t// once slide animation is completed, check if the full height of the mega menu is visible, if not, scroll down to show the full height of the mega menu.\n\t\t\tmegaMenuContent.slideDown('fast', function() {\n\t\t\t\tconst winBottom = $win.height();\n\t\t\t\tlet megaMenuContentOffset = megaMenuContent.offset().top - $win.scrollTop();\n\t\t\t\tlet megaMenuContentOuterHeight = megaMenuContent.outerHeight();\n\t\t\t\t// console.log(\"megaMenuContentOffset\", megaMenuContentOffset);\n\t\t\t\t// console.log(\"megaMenuContentOuterHeight\", megaMenuContentOuterHeight);\n\t\t\t\tlet posDiff = winBottom - megaMenuContentOffset;\n\t\t\t\tif (posDiff >= 0 && posDiff < megaMenuContentOuterHeight) {\n\t\t\t\t\tlet scrollAdjust = megaMenuContentOuterHeight - posDiff;\n\t\t\t\t\t$hb.animate({\n\t\t\t\t\t\tscrollTop: $win.scrollTop() + scrollAdjust,\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tmegaMenu.on('mouseleave', function(e) {\n\t\t\t$(megaMenu).removeClass('is-megaMenuOpen');\n\t\t\tmegaMenu.find('.siteHeader-megaMenuContent').hide();\n\t\t});\n\n\t\t$(WG + 'megaMenuContent').on('click', function(e) {\n\t\t\te.stopPropagation();\n\t\t});\n\n\t\t$win.on('click', function() {\n\t\t\tmegaMenu.removeClass('is-megaMenuOpen');\n\t\t\tmegaMenu.find('.siteHeader-megaMenuContent').hide();\n\t\t});\n\t}\n\n\taddTopSpacing() {\n\t\tlet wg = this.$el;\n\n\t\tif (wg.hasClass('is-minified')) return;\n\n\t\tlet mainContent = document.querySelector('#mainContent');\n\t\tlet padTop = wg.height();\n\t\t$(mainContent).css('padding-top', `${padTop}px`);\n\t}\n\n\tcheckAccMenuToggle() {\n\t\tlet $wg = this.$el;\n\t\tlet $userMenu = $wg.find(`${WG}accMenuList`);\n\n\t\tsetInterval(() => {\n\t\t\tif ($userMenu.hasClass('show')) {\n\t\t\t\tlet transformValues = $userMenu[0].style.transform;\n\t\t\t\tif (transformValues && transformValues !== '') {\n\t\t\t\t\tlet transformArr = transformValues.replace(/(translate3d)*[()]/g, '');\n\t\t\t\t\ttransformArr = transformArr.split(',');\n\t\t\t\t\tif (transformArr.length === 3) {\n\t\t\t\t\t\tlet x = -$userMenu.width() + 'px';\n\t\t\t\t\t\tlet y = transformArr[1];\n\t\t\t\t\t\tlet z = transformArr[2];\n\t\t\t\t\t\t$userMenu[0].style.transform = `translate3d(${x}, ${y}, ${z})`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\tsetupSubMenu() {\n\t\tconst This = this;\n\t\tlet $wg = this.$el;\n\n\t\t$wg.on('click', WG + 'link', function(e) {\n\t\t\tlet currentList = $(this).closest('li');\n\n\t\t\tif (currentList.find(WG + 'submenu').length > 0 && This.isOnMobile()) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$(this).hide(0);\n\n\t\t\t\tcurrentList.find(WG + 'submenu').toggleClass('show');\n\t\t\t\t$wg.find(WG + 'linksList > li').not(currentList).hide(0);\n\n\t\t\t\t$wg.find(WG + 'mmBackBtn').toggleClass('show');\n\t\t\t}\n\t\t});\n\n\t\t$wg.on('click', WG + 'mmBackBtn', function() {\n\t\t\t$wg.find(WG + 'submenu.show')\n\t\t\t\t.removeClass('show')\n\t\t\t\t.prev(WG + 'link')\n\t\t\t\t.show(0);\n\n\t\t\t$wg.find(WG + 'linksList > li').show(0);\n\n\t\t\t$wg.find(WG + 'mmBackBtn').toggleClass('show');\n\t\t});\n\t}\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\n/* eslint-disable no-invalid-this */\n// CONSTANTS are all caps.\nconst NS = 'SiteHeaderWoolLab';\nconst CLS = 'siteHeaderWoolLab';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/siteHeaderWoolLab.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport {loadSearchBar} from '../loadWg/searchBar';\nimport utils from '../utils';\n\nconst $win = $(window);\nconst $doc = $(document);\n\nexport class SiteHeaderWoolLab {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadSiteHeaderWoolLab function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\t// this.checkMinified();\n\t\tthis.setSiteHeaderWoolLab();\n\t\tthis.setSearchBar();\n\t\tthis.setSticky();\n\t\t$('.siteHeaderWoolLab').addClass('is-ready');\n\t\t// this.setAnimations();\n\t\t// this.onScrollMinify();\n\t\tthis.onResizeAdjustHeaderContentWidth();\n\t\tthis.setHeaderBottomFix();\n\t\tthis.setupMegaMenu();\n\t\tthis.setupSubMenu();\n\t\t// this.checkAccMenuToggle();\n\t}\n\n\tsetHeaderBottomFix() {\n\t\tconst headerWrap = document.querySelector('.homePage-headerWrap');\n\n\t\tif (headerWrap) {\n\t\t\tconst firstElement = document.querySelector('#mainContent').children[0];\n\t\t\tlet firstEleHeight = firstElement.clientHeight + 'px';\n\n\t\t\tif (firstElement.className.indexOf('homeHero') === -1) {\n\t\t\t\tdocument.querySelector('#mainContent').children[0].style.marginBottom = '60px';\n\t\t\t}\n\n\t\t\theaderWrap.style.top = firstEleHeight;\n\t\t\t$(window).resize(function() {\n\t\t\t\tfirstEleHeight = firstElement.clientHeight + 'px';\n\t\t\t\theaderWrap.style.top = firstEleHeight;\n\t\t\t});\n\t\t} else {\n\t\t\tthis.addTopSpacing();\n\t\t}\n\t}\n\n\tsetSiteHeaderWoolLab() {\n\t\t// Add Some logic here\n\t\tconst wg = this.$el;\n\t\tconst navBarToggle = this.$el.find(WG + 'navbarToggle');\n\t\tconst megaMenu = this.$el.find(WG + 'megaMenu');\n\t\tconst mmBackBtn = this.$el.find(WG + 'mmBackBtn');\n\n\t\tnavBarToggle.on('click', function(e) {\n\t\t\twg.toggleClass('is-mbExpanded');\n\t\t\t$(this).toggleClass('is-collapsed');\n\t\t});\n\n\t\tmmBackBtn.on('click', function(e) {\n\t\t\t// e.stopPropagation();\n\t\t\tmegaMenu.removeClass('is-megaMenuOpen');\n\t\t});\n\t}\n\n\tsetSearchBar() {\n\t\tloadSearchBar(document.body).then((wg) => {\n\t\t\twg ? wg.init() : '';\n\t\t});\n\t}\n\n\tsetSticky() {\n\t\t// let This = this;\n\t\tlet stickyToggle = function(sticky, stickyWrapper, scrollElement) {\n\t\t\tlet stickyHeight = sticky.outerHeight();\n\t\t\tlet stickyTop = stickyWrapper.offset().top;\n\n\t\t\tif (scrollElement.scrollTop() >= stickyTop) {\n\t\t\t\tstickyWrapper.height(stickyHeight);\n\t\t\t\tsticky.addClass('is-sticky');\n\t\t\t} else {\n\t\t\t\tsticky.removeClass('is-sticky');\n\t\t\t\tstickyWrapper.height('auto');\n\t\t\t}\n\n\t\t\t// on mobile, always stick?\n\t\t\t// if (This.isOnMobile()) {\n\t\t\t// \tstickyWrapper.height(stickyHeight);\n\t\t\t// \tsticky.addClass('is-sticky');\n\t\t\t// }\n\t\t};\n\n\t\t// needs to timeout to avoid double call (which happens intermittently)\n\t\tsetTimeout(() => {\n\t\t\t// Find all data-toggle=\"sticky-onscroll\" elements\n\t\t\t$('[data-toggle=\"sticky-onscroll\"]').each(function() {\n\t\t\t\tlet sticky = $(this);\n\t\t\t\tlet stickyWrapper = $('<div>').addClass('sticky-wrapper'); // insert hidden element to maintain actual top offset on page\n\t\t\t\tsticky.before(stickyWrapper);\n\t\t\t\tsticky.addClass('sticky');\n\n\t\t\t\t// Scroll & resize events\n\t\t\t\t// window won't work as expected, document will span the full content\n\t\t\t\t$doc.on('scroll.sticky-onscroll resize.sticky-onscroll', function() {\n\t\t\t\t\tstickyToggle(sticky, stickyWrapper, $(this));\n\t\t\t\t});\n\n\t\t\t\t// On page load\n\t\t\t\tstickyToggle(sticky, stickyWrapper, $win);\n\t\t\t});\n\t\t}, 0);\n\t}\n\n\t// User clicks on logo for collapsing header.\n\t// Pre-condition: user is on desktop size, the header in mobile size is always expanded.\n\tminifyHeader(duration = 250) {\n\t\tlet wg = this.$el;\n\t\tlet nav = wg.find(WG + 'nav');\n\t\tlet content = wg.find(WG + 'contents');\n\t\tlet logoWrapper = wg.find(WG + 'logoWrapper');\n\t\tlet logo = wg.find(WG + 'logo');\n\t\tlet logoWidth = logo.width();\n\t\tlet paddingForLogoLeftSide = 13;\n\t\tlet paddingForLogoBothSides = 26;\n\t\tlet logoDisplayedArea = logoWidth + paddingForLogoBothSides;\n\t\tlet logoWrapperWidth = 70 - logoWidth - paddingForLogoLeftSide;\n\n\t\tnav.css({\n\t\t\toverflow: 'hidden',\n\t\t});\n\n\t\t// Important for \"overflow: hidden\" nav.\n\t\tcontent.width(utils.getWindowWidth());\n\n\t\t// Collapsing nav.\n\t\tnav.animate({\n\t\t\twidth: logoDisplayedArea + 'px',\n\t\t\tleft: logoWrapperWidth + 'px',\n\t\t}, duration);\n\t\t// Move logo to the displaying area.\n\t\tcontent.animate({\n\t\t\tleft: '-' + logoWrapperWidth + 'px',\n\t\t}, duration);\n\t}\n\n\t// User clicks on logo for expanding header.\n\t// Pre-condition: the header is collapsing.\n\texpandHeader() {\n\t\tlet wg = this.$el;\n\t\tlet nav = wg.find(WG + 'nav');\n\t\tlet content = wg.find(WG + 'contents');\n\n\t\t// check if previous animations are done\n\t\t// if (nav.is(':animated') || content.is(':animated')) return;\n\n\t\t// Expanding the nav.\n\t\tnav.stop().animate({\n\t\t\twidth: '100%',\n\t\t\tleft: '0px',\n\t\t}, () => {\n\t\t\tnav.css({\n\t\t\t\toverflow: 'visible',\n\t\t\t});\n\t\t});\n\n\t\t// Expanding the inner content.\n\t\tcontent.stop().animate({\n\t\t\tleft: '0px',\n\t\t\twidth: utils.getWindowWidth(),\n\t\t}, () => {\n\t\t\t// content.width('100%');\n\t\t\t// content.width(window.innerWidth - 15);\n\t\t});\n\t}\n\n\tisOnMobile() {\n\t\treturn utils.getWindowWidth() < 992;\n\t}\n\n\t// Click on logo to minify/expand the header.\n\tsetAnimations() {\n\t\tlet wg = this.$el;\n\t\t// let nav = wg.find(WG + 'nav');\n\t\t// eslint-disable-next-line no-unused-vars\n\t\tlet content = wg.find(WG + 'contents');\n\t\tlet logoHit = wg.find(WG + 'logoHit');\n\n\t\t// User clicks on logo for collapse/expand header.\n\t\tlogoHit.on('mouseover', () => {\n\t\t\t// On mobile, the collapsed nav is auto expanded because we don't have collapsed nav on mobile size.\n\t\t\tif (this.isOnMobile()) {\n\t\t\t\tif (wg.hasClass('is-minified')) {\n\t\t\t\t\twg.removeClass('is-minified');\n\t\t\t\t\tthis.expandHeader();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Collapse/expand header.\n\t\t\t// we should check if there is a previous animation that didn't finish yet\n\t\t\twg.toggleClass('is-minified');\n\t\t\tif (wg.hasClass('is-minified')) this.minifyHeader();\n\t\t\telse this.expandHeader();\n\t\t});\n\n\t\t// When user resizes browsers,\n\t\t// ensure that if in mobile size, the header must be expanded.\n\t\t$win.resize(() => {\n\t\t\tif (this.isOnMobile()) {\n\t\t\t\tif (wg.hasClass('is-minified')) {\n\t\t\t\t\twg.removeClass('is-minified');\n\t\t\t\t\tthis.expandHeader();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\n\t\t//\n\t\t// window.onscroll = (e) => {\n\t\t// \t\tconst $sec = $('#mainContent').find(':nth-of-type(2)');\n\t\t// \t\tconst secBottom = $sec.position().top + $sec.outerHeight();\n\t\t// \t\tlet winBottom = $(window).scrollTop() + $(window).height();\n\t\t// \t\t// If sec is completely visible in the window, fade in\n\t\t// \t\tif (winBottom > secBottom) {\n\t\t// \t\t\tthis.minifyHeader();\n\t\t// \t\t}\n\t\t// };\n\t\t// End\n\t}\n\n\tcheckMinified() {\n\t\tconst isMinified = this.$el.hasClass('is-minified');\n\n\t\tif (isMinified && !this.isOnMobile()) {\n\t\t\tthis.minifyHeader();\n\t\t}\n\t}\n\n\tonScrollMinify() {\n\t\tconst _this = this;\n\t\tconst $logoHit = this.$el.find(WG + 'logoHit');\n\t\tconst $homePage = $('.homePage');\n\t\t// homePage??\n\t\tif ($('.main').length > 0) {\n\t\t\t$win.on('scroll', function() {\n\t\t\t\tconst scrollTop = $win.scrollTop();\n\t\t\t\tconst docHeight = $doc.height();\n\t\t\t\tconst winHeight = $win.height();\n\t\t\t\tconst scrollPercent = (scrollTop) / (docHeight - winHeight);\n\t\t\t\tconst scrollPercentRounded = Math.round(scrollPercent * 100);\n\n\t\t\t\tif ($homePage.length > 0) {\n\t\t\t\t\tconst mainOffset = $homePage.offset().top;\n\n\t\t\t\t\tif (!_this.$el.hasClass('is-minified') && scrollPercentRounded > 40) {\n\t\t\t\t\t\t// $(window).off('scroll');\n\t\t\t\t\t\t// _this.minifyHeader();\n\t\t\t\t\t\t// Trigger synthetic click event instead of using minifyHeader() as a quick-fix\n\t\t\t\t\t\t$logoHit.trigger('mouseover');\n\t\t\t\t\t} else if (_this.$el.hasClass('is-minified') && mainOffset >= scrollTop) {\n\t\t\t\t\t\t$logoHit.trigger('mouseover');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!_this.$el.hasClass('is-minified') && scrollPercentRounded > 20) {\n\t\t\t\t\t\t// $(window).off('scroll');\n\t\t\t\t\t\t// _this.minifyHeader();\n\t\t\t\t\t\t// Trigger synthetic click event instead of using minifyHeader() as a quick-fix\n\t\t\t\t\t\t$logoHit.trigger('mouseover');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t// Add more functions like on above here\n\n\tonResizeAdjustHeaderContentWidth() {\n\t\tlet This = this;\n\t\t$win.on('resize', function() {\n\t\t\tlet wg = $(This.$el);\n\t\t\tlet content = wg.find(WG + 'contents');\n\t\t\t// let nav = wg.find(WG + 'nav');\n\n\t\t\t// Expanding the inner content.\n\t\t\tcontent.width(utils.getWindowWidth());\n\t\t\t// removed the animation on resize as it created temporary scroll bars\n\t\t\t// content.stop().animate({\n\t\t\t// \twidth: utils.getWindowWidth()\n\t\t\t// });\n\t\t});\n\t}\n\n\tsetupMegaMenu() {\n\t\tlet megaMenu = $(WG + 'megaMenu');\n\t\tmegaMenu.find(WG + 'megaMenuContent').hide();\n\t\tlet $hb = $('html, body');\n\n\t\tmegaMenu.on('mouseover', function(e) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tconst that = this;\n\n\t\t\t$(megaMenu).removeClass('is-megaMenuOpen');\n\n\n\t\t\tlet megaMenuContent = $(this).find('.siteHeaderWoolLab-megaMenuContent');\n\t\t\t$(that).addClass('is-megaMenuOpen');\n\n\t\t\t// add slide down effect\n\t\t\t// once slide animation is completed, check if the full height of the mega menu is visible, if not, scroll down to show the full height of the mega menu.\n\t\t\tmegaMenuContent.slideDown('fast', function() {\n\t\t\t\tconst winBottom = $win.height();\n\t\t\t\tlet megaMenuContentOffset = megaMenuContent.offset().top - $win.scrollTop();\n\t\t\t\tlet megaMenuContentOuterHeight = megaMenuContent.outerHeight();\n\t\t\t\t// console.log(\"megaMenuContentOffset\", megaMenuContentOffset);\n\t\t\t\t// console.log(\"megaMenuContentOuterHeight\", megaMenuContentOuterHeight);\n\t\t\t\tlet posDiff = winBottom - megaMenuContentOffset;\n\t\t\t\tif (posDiff >= 0 && posDiff < megaMenuContentOuterHeight) {\n\t\t\t\t\tlet scrollAdjust = megaMenuContentOuterHeight - posDiff;\n\t\t\t\t\t$hb.animate({\n\t\t\t\t\t\tscrollTop: $win.scrollTop() + scrollAdjust,\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tmegaMenu.on('mouseleave', function(e) {\n\t\t\t$(megaMenu).removeClass('is-megaMenuOpen');\n\t\t\tmegaMenu.find('.siteHeaderWoolLab-megaMenuContent').hide();\n\t\t});\n\n\t\t$(WG + 'megaMenuContent').on('click', function(e) {\n\t\t\te.stopPropagation();\n\t\t});\n\n\t\t$win.on('click', function() {\n\t\t\tmegaMenu.removeClass('is-megaMenuOpen');\n\t\t\tmegaMenu.find('.siteHeaderWoolLab-megaMenuContent').hide();\n\t\t});\n\t}\n\n\taddTopSpacing() {\n\t\tlet wg = this.$el;\n\n\t\tif (wg.hasClass('is-minified')) return;\n\n\t\tlet mainContent = document.querySelector('#mainContent');\n\t\tlet padTop = wg.height();\n\t\t$(mainContent).css('padding-top', `${padTop}px`);\n\t}\n\n\tcheckAccMenuToggle() {\n\t\tlet $wg = this.$el;\n\t\tlet $userMenu = $wg.find(`${WG}accMenuList`);\n\n\t\tsetInterval(() => {\n\t\t\tif ($userMenu.hasClass('show')) {\n\t\t\t\tlet transformValues = $userMenu[0].style.transform;\n\t\t\t\tif (transformValues && transformValues !== '') {\n\t\t\t\t\tlet transformArr = transformValues.replace(/(translate3d)*[()]/g, '');\n\t\t\t\t\ttransformArr = transformArr.split(',');\n\t\t\t\t\tif (transformArr.length === 3) {\n\t\t\t\t\t\tlet x = -$userMenu.width() + 'px';\n\t\t\t\t\t\tlet y = transformArr[1];\n\t\t\t\t\t\tlet z = transformArr[2];\n\t\t\t\t\t\t$userMenu[0].style.transform = `translate3d(${x}, ${y}, ${z})`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\tsetupSubMenu() {\n\t\tconst This = this;\n\t\tlet $wg = this.$el;\n\n\t\t$wg.on('click', WG + 'link', function(e) {\n\t\t\tlet currentList = $(this).closest('li');\n\n\t\t\tif (currentList.find(WG + 'submenu').length > 0 && This.isOnMobile()) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$(this).hide(0);\n\n\t\t\t\tcurrentList.find(WG + 'submenu').toggleClass('show');\n\t\t\t\t$wg.find(WG + 'linksList > li').not(currentList).hide(0);\n\n\t\t\t\t$wg.find(WG + 'mmBackBtn').toggleClass('show');\n\t\t\t}\n\t\t});\n\n\t\t$wg.on('click', WG + 'mmBackBtn', function() {\n\t\t\t$wg.find(WG + 'submenu.show')\n\t\t\t\t.removeClass('show')\n\t\t\t\t.prev(WG + 'link')\n\t\t\t\t.show(0);\n\n\t\t\t$wg.find(WG + 'linksList > li').show(0);\n\n\t\t\t$wg.find(WG + 'mmBackBtn').toggleClass('show');\n\t\t});\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"HubGrid\";\nconst CLS = \"hubGrid\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/hubGrid.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class HubGrid {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadHubGrid function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tthis.setHubGrid();\n\t}\n\n\tsetHubGrid() {\n\t\t// Add Some logic here\n\t\tconst wg = this.$el,\n\t\t\topenBtn = wg.find(WG+'open');\n\t\tconst closeBtn = wg.find(`${WG}close`);\n\n\t\topenBtn.on('click', function(e) {\n\t\t\tconst item = $(this).parent().parent();\n\t\t\titem.addClass(\"hubGrid-item--opened\");\n\t\t});\n\n\t\tcloseBtn.on('click', function (e) {\n\t\t\tconst item = $(this).parent().parent();\n\t\t\titem.removeClass('hubGrid-item--opened');\n\t\t});\n\t}\n\n\t//Add more functions like on above here\n\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'GalleryCarousel';\nconst CLS = 'galleryCarousel';\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/galleryCarousel.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n// Polyfill object-fit/object-position on <img>: IE9, IE10, IE11, Edge, Safari, ... @https://npm.im/object-fit-images\nimport objectFitImages from 'object-fit-images';\nimport utils from '../utils';\n\n\nexport class GalleryCarousel {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadGalleryCarousel function\n\t\tthis.$el = $($el);\n\t\tthis.isWpc = $('body').hasClass('is-wpc');\n\t}\n\n\tinit() {\n\t\tlet $carousel = this.$el.find(`${WG}carousel`);\n\t\tlet $wg = this.$el;\n\t\tlet _this = this;\n\t\tlet navActiveClass = 'is-active';\n\t\tthis.checkImage();\n\n\t\t$carousel.on('init', (slick) => {\n\t\t\tthis.setLandscapeImage();\n\t\t\tthis.handleLongCaption();\n\n\t\t\tthis.$el.find('.sliderNav-link').on('click', function() {\n\t\t\t\tlet $this = $(this);\n\t\t\t\tlet index = $this.attr('data-slide-index');\n\n\t\t\t\t$carousel.slick('slickGoTo', index);\n\t\t\t\t$this.siblings().removeClass(navActiveClass);\n\t\t\t\t$this.addClass(navActiveClass);\n\n\t\t\t\t// detach the line and put it before the active item\n\t\t\t\tlet $sliderNavLine = $wg.find('.sliderNav-line').detach();\n\t\t\t\t$this.before($sliderNavLine);\n\t\t\t});\n\t\t}).slick({\n\t\t\tarrows: this.isWpc ? true : false,\n\t\t\tdots: this.isWpc ? true : false,\n\t\t\tcenterMode: true,\n\t\t\tcenterPadding: '26.1%',\n\t\t\tappendDots: this.$el.find(`${WG}carouselDots`),\n\t\t\tdraggable: true,\n\t\t\tslidesToShow: 1,\n\t\t\tvariableWidth: true,\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 991,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tcenterPadding: '15%',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 767,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tcenterPadding: '15%',\n\t\t\t\t\t\tvariableWidth: true,\n\t\t\t\t\t\tdots: true,\n\t\t\t\t\t\tadaptiveHeight: true, // Added to fix \"Mobile – The gallery circle indicators should sit closer to the image/caption\"\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t}).on('afterChange', (event, slick, currentSlide) => {\n\t\t\tlet $sliderNavLine = $wg.find('.sliderNav-line').detach();\n\t\t\tthis.$el.find(`.sliderNav-link`).removeClass(navActiveClass);\n\t\t\tthis.$el.find(`.sliderNav-link[data-slide-index=${currentSlide}]`).addClass(navActiveClass).before($sliderNavLine);\n\t\t});\n\n\t\t// Polyfill object-fit/object-position on <img>: IE9, IE10, IE11, Edge, Safari, ... @https://npm.im/object-fit-images\n\n\t\tobjectFitImages();\n\t\tthis.handleWindowResize();\n\n\t\tthis.handleSlidesLinks();\n\t}\n\n\thandleWindowResize() {\n\t\t$(window).on('resize', () => {\n\t\t\tthis.setLandscapeImage();\n\t\t\tthis.handleLongCaption();\n\t\t});\n\t}\n\n\t// handle long caption by setting width to caption based on image's width\n\thandleLongCaption() {\n\t\tlet $wg = this.$el;\n\t\tlet carouselW = $wg.find(`${WG}carousel`).outerWidth();\n\n\t\t$wg.find(`${WG}slide`).each((i, slide) => {\n\t\t\tlet $imgWrap = $(slide).find(`${WG}slideImgWrap`);\n\t\t\tlet $caption = $(slide).find(`${WG}carouselCaption`);\n\n\t\t\tlet captionHtml = $caption.html();\n\t\t\t$caption.html('');\n\n\t\t\tlet imgW = `${$imgWrap.outerWidth()}px`;\n\t\t\t$caption.css({\n\t\t\t\twidth: imgW,\n\t\t\t\tmaxWidth: `${carouselW}px`,\n\t\t\t});\n\t\t\t$caption.html(captionHtml);\n\t\t});\n\t}\n\n\t// check image is landscape or portrait, then add \"--landscape\" modifier if true\n\tcheckImage() {\n\t\tlet $wg = this.$el;\n\n\t\t$wg.find(`${WG}slideImg`).each((i, img) => {\n\t\t\tlet imgH = img.naturalHeight;\n\t\t\tlet imgW = img.naturalWidth;\n\n\t\t\tif (imgW > imgH) {\n\t\t\t\t$(img).closest(`${WG}slide`).addClass(`${CLS}-slide--landscape`);\n\t\t\t}\n\t\t});\n\t}\n\n\t// set slick slide's width on mobile\n\tsetLandscapeImage() {\n\t\tlet $wg = this.$el;\n\t\tlet wgW = $wg.outerWidth();\n\n\t\tif (utils.checkBP('tp')) {\n\t\t\t$wg.find(`${WG}slide`).each((i, slide) => {\n\t\t\t\tlet $slide = $(slide);\n\t\t\t\tlet $slickSlide = $slide.closest('.slick-slide');\n\t\t\t\tlet newW = wgW - (wgW * 40/100);\n\n\t\t\t\t// check if image is landscape\n\t\t\t\tif ($slide.hasClass(`${CLS}-slide--landscape`)) {\n\t\t\t\t\t$slickSlide.css({\n\t\t\t\t\t\tmaxWidth: `${wgW - 30}px`,\n\t\t\t\t\t});\n\n\t\t\t\t\t$slide.find(`${WG}slideImgWrap`).css({\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$slickSlide.css({\n\t\t\t\t\t\tmaxWidth: `${newW}px`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t$wg.find(`.slick-slide`).css({\n\t\t\t\tmaxWidth: '',\n\t\t\t});\n\n\t\t\t$wg.find(`${WG}slideImgWrap`).css({\n\t\t\t\theight: '',\n\t\t\t});\n\t\t}\n\t}\n\n\thandleSlidesLinks() {\n\t\tlet $wg = this.$el;\n\t\tlet $modal = $wg.find(WG + 'modal').clone();\n\t\tlet $iframe = $modal.find('iframe');\n\n\t\tlet closeIframe = function() {\n\t\t\t$modal.removeClass('active').remove();\n\n\t\t\t$iframe.attr('src', '');\n\t\t};\n\n\t\t$wg.on('click', WG + 'slideLink', function(e) {\n\t\t\tif ($(this).data('iframe')) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t$iframe.attr('src', $(this).attr('href'));\n\n\t\t\t\t$('body').append($modal);\n\n\t\t\t\t$modal.addClass('active');\n\t\t\t}\n\t\t});\n\n\t\t$(document).on('click', WG + 'modal-close,' + WG + 'modal', function(e) {\n\t\t\tlet $this = $(this);\n\n\t\t\tif ($this.closest(WG + 'modal-content').length === 0) {\n\t\t\t\tcloseIframe();\n\t\t\t}\n\t\t});\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"CareSlider\";\nconst CLS = \"careSlider\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/careSlider.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport { loadCareSliderItem } from '../loadWg/careSliderItem';\n\nexport class CareSlider {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadCareSlider function\n\t\tthis.$el = $el;\n\t\tthis.currentSlideIndex = -1;\n\t\tthis.slideToBeShownAtInit = 0;\n\t}\n\n\tinit() {\n\t\tthis.setCareSlider();\n\t\tthis.setCareSliderItem();\n\t}\n\n\tisDesktopSize() {\n\t return window.innerWidth >= 1200;\n }\n\n\tsetCareSliderItem() {\n loadCareSliderItem(this.$el, true).then((wgAll) => {\n\t\t\twgAll ? wgAll.forEach(wg => {\n\t\t\t\twg.init();\n\t\t\t}) : '';\n\t\t});\n }\n\n isSlickSlider(slideIndex) {\n\t return this.getSlideWrapper(slideIndex).hasClass('slick-slider');\n }\n\n getSlideWrapper(slideIndex) {\n\t return $(this.$el).find('.careSlider-slide').eq(slideIndex).find('.careSliderItem-slides');\n }\n\n // Reset the slick slider to be original element.\n unslick(slideIndex) {\n\t this.getSlideWrapper(slideIndex).slick('unslick');\n }\n\n // Apply slick slider for an element.\n applySlick(slideIndex) {\n\t this.getSlideWrapper(slideIndex).slick({\n arrows: false,\n\t\t\tdots: true,\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 1999,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 2\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 992,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\t\tcenterMode: true,\n\t\t\t\t\t \tcenterPadding: '80px'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 768,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\t\tcenterMode: true,\n\t\t\t\t\t\tcenterPadding: '20px'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n });\n }\n\n\t// Show a care slide at a specific index.\n\tshowSlideItemAtIndex(index) {\n\t if(index === this.currentSlideIndex) return;\n\n\t let wg = $(this.$el);\n\n\t // Hide the current slide.\n\t if(this.currentSlideIndex >= 0) {\n wg.find('.careSlider-slide').eq(this.currentSlideIndex).removeClass('is-open');\n wg.find('.careSlider-itemTitle').eq(this.currentSlideIndex).removeClass('is-open');\n }\n\n // Show the user's selected slide.\n if(index >= 0) {\n\t wg.find('.careSlider-slide').eq(index).addClass('is-open');\n let itemTitle = wg.find('.careSlider-itemTitle').eq(index);\n\t itemTitle.addClass('is-open');\n wg.find('.careSlider-selectTitle').text(itemTitle.text());\n }\n\n // On mobile size ? Create slick slider.\n if(!this.isDesktopSize()) {\n\t if(this.currentSlideIndex >= 0) this.unslick(this.currentSlideIndex);\n this.applySlick(index);\n }\n\n this.currentSlideIndex = index;\n }\n\n\tsetCareSlider() {\n\n\t let wg = $(this.$el);\n \tlet isDraging = false;\n \tlet prevClientX = null;\n \tlet pointer = wg.find('.careSlider-drag');\n \tlet circleWrapper = wg.find('.careSlider-circleWrapper');\n \tlet pointerWidth = pointer.outerWidth();\n \tlet parentWidth = pointer.parent().outerWidth();\n \tlet maxWidth = parentWidth - pointerWidth;\n \tlet circleWidth = circleWrapper.find('.careSlider-circle').eq(0).outerWidth();\n \tlet circleCount = circleWrapper.find('.careSlider-circle').length;\n\n \t// The space between slide circles, used for calculating the nearest item when user drags the pointer.\n \tlet spaceBetweenCircle = (parentWidth - circleWidth) / (circleCount - 1);\n\n \t// A padding ensuring the pointer is always at the bottom center of the slide circle.\n \tlet padding = (circleWidth - pointerWidth) / 2;\n\n pointer.css('left', padding + 'px');\n\n this.showSlideItemAtIndex(this.slideToBeShownAtInit);\n\n // User stops dragging.\n\t pointer.mousedown((e) => {\n\t if(!this.isDesktopSize()) return;\n prevClientX = e.clientX;\n\t isDraging = true;\n })\n\n // On mobile, user chooses one item from dropdown.\n // System changes content of image slider based on user's selection.\n wg.find('.careSlider-select').change((e) => {\n\t this.showSlideItemAtIndex(e.currentTarget.selectedIndex);\n });\n\n\t // User resizes the window.\n // System ensures that all images are shown in desktop size\n // and image slider is used for mobile size.\n\t $(window).resize((e) => {\n\t if(this.isDesktopSize() && this.isSlickSlider(this.currentSlideIndex))\n\t this.unslick(this.currentSlideIndex);\n\t if(!this.isDesktopSize() && !this.isSlickSlider(this.currentSlideIndex))\n\t this.applySlick(this.currentSlideIndex);\n });\n\n // User finishes dragging the pointer,\n // system moves pointer to the nearest item and display corresponding slide.\n\t $(document).mouseup((e) => {\n\t if(!isDraging) return;\n isDraging = false;\n\n let left = parseInt(pointer.css('left'));\n let space = Math.floor(left % spaceBetweenCircle);\n if(space == 0) return;\n\n let newLeft = 0;\n\n // Nearest item is on left ?\n if(space < spaceBetweenCircle / 2) newLeft = left - space + padding;\n\n // Nearest item is on right ?\n else newLeft = left + (spaceBetweenCircle - space) + padding;\n\n pointer.animate({left: newLeft});\n\n let index = Math.floor(newLeft / spaceBetweenCircle);\n this.showSlideItemAtIndex(index);\n })\n\n // User uses mouse to drag the pointer,\n // system check and ensure pointer doesn't go out of its container.\n $(document).mousemove((e) => {\n\n if(!isDraging) return;\n\n let diff = e.clientX - prevClientX;\n\n let left = parseInt(pointer.css('left'));\n let newLeft = left + diff;\n\n // Ensure the pointer does not go off the right border.\n if(newLeft >= maxWidth - padding) newLeft = maxWidth - padding;\n\n // Ensure the pointer does not go off the left border.\n if(newLeft < padding) newLeft = padding;\n\n pointer.css('left',newLeft + 'px');\n\n prevClientX = e.clientX;\n })\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = 'PageFilter';\nconst CLS = 'pageFilter';\nconst WG = '.' + CLS + '-';\n\nimport utils from '../utils';\n\nconst { updateQueryStringParameter } = utils;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/pageFilter.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class PageFilter {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadPageFilter function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tthis.setPageFilter();\n\t\tthis.handleSearchInput();\n\t}\n\n\tsetPageFilter() {\n\t\t// Add Some logic here\n\n\t\tconst ddItems = this.$el.find('.dropdown-menu .dropdown-item');\n\t\tconst clearFilters = this.$el.find('.pageFilter-clrFilters');\n\t\tconst selectedCls = 'is-selected';\n\t\tddItems.on('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tlet selText = $(this).text();\n\t\t\tconst parent = $(this).parents('.nav-item.dropdown');\n\t\t\tconst filterType = parent.attr('data-filter-type');\n\t\t\tconst filterValue = $(this).attr('data-filter-value') || \"\";\n\t\t\tparent.find('.dropdown-item').removeClass(selectedCls);\n\t\t\t$(this).addClass(selectedCls);\n\t\t\tselText.toLocaleLowerCase() === 'all' ? selText += ` ${filterType}` : '';\n\t\t\tparent.find('.dropdown-toggle').html(selText);\n\t\t\twindow.location.href = utils.updateQueryStringParameter(window.location.href, filterType.toLowerCase(), filterValue);\n\t\t});\n\n\t\tclearFilters.on('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tconsole.log('clicked');\n\t\t\twindow.location.href = window.location.href.split('?')[0];\n\t\t});\n\n\t}\n\n\thandleSearchInput() {\n\t\tconst $searchBtn = this.$el.find(WG + 'searchBtn');\n\t\tconst $searchTxt = this.$el.find(WG + 'searchInput');\n\t\tconst filterType = $searchTxt.attr('data-filter-type');\n\n\t\tlet search = () => {\n\t\t\tlet txt = $searchTxt.val();\n\t\t\twindow.location.href = utils.updateQueryStringParameter(window.location.href, filterType.toLowerCase(), txt);\n\t\t};\n\n\t\t$searchBtn.on('click', function() {\n\t\t\tsearch();\n\t\t});\n\n\t\t$searchTxt.on('keypress', function(e) {\n\t\t\tif (e.keyCode == 13) {\n\t\t\t\tsearch();\n\t\t\t}\n\t\t});\n\t}\n\n\t//Add more functions like on above here\n\n}\n","// CONSTANTS are all caps.\nconst NS = \"TextFeature\";\nconst CLS = \"textFeature\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/textFeature.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class TextFeature {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadTextFeature function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setTextFeature();\n\t}\n\n\tsetTextFeature() {\n\t\tlet wg = $(this.$el);\n\t\tlet text = wg.text().trim();\n\t\tlet firstLetter = text[0];\n\t\ttext = text.substring(1);\n\t\twg.text(text);\n\t\twg.html(`\n\t\t <p><span class=\"${CLS}-bigText\">${firstLetter}</span>${text}</p>\n\t\t`);\n\t\t// wg.html(`\n\t\t// <div class=\"${CLS}-bigText\">${firstLetter}</div>\n\t\t// <p><span class=\"${CLS}-bigText\">${firstLetter}</span>${text}</p>\n\t\t// `);\n\t}\n\n\t//Add more functions like on above here\n\n}\n","// CONSTANTS are all caps.\nconst NS = \"ReadingTab\";\nconst CLS = \"readingTab\";\nconst WG = \".\" + CLS + \"-\";\nconst CLS_MOB_REVEALED = \"is-mobileBtnsRevealed\";\nconst CLS_ICON_SHOW = 'is-iconShow';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/readingTab.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport utils from '../utils';\n\nexport class ReadingTab {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadReadingTab function\n\t\tthis.$el = $el;\n\t\tthis.$elObj = $($el);\n\t\tthis.$iconList = this.$elObj.find(WG + 'icons');\n\t\tthis.$iconItem = this.$elObj.find(WG + 'icon');\n\n\t\tthis.isIphone = $('body').hasClass('is-iPhone');\n\t}\n\n\tinit() {\n\t\tthis.initUtilityBar();\n\t\tthis.setReadingTab();\n\t\tthis.showReadingTabIcon();\n\t\tthis.setOpenReadingTabBtn();\n\t\tthis.setPosition();\n\n\t\tthis.$el.classList.add(\"is-readingTabReady\");\n\t}\n\n\tinitUtilityBar() {\n\t\tconst _this = this;\n\t\tconst $el = $(this.$el);\n\t\tconst $readingTabToggle = $el.find(`${WG}icon--reading`);\n\t\tconst $readingTabClose = $el.find(`${WG}icon--close`);\n\t\tconst $readingTabRevealBtn = $el.find(`${WG}icon--revealBtn`);\n\t\tconst $shareToggle = $el.find(`${WG}icon--share`);\n\t\tconst $overlay = $el.find(`${WG}overlay`);\n\n\t\t$shareToggle.on('click', () => {\n\t\t\t$('#socialShareModal').modal('show');\n\t\t});\n\n\t\t$readingTabToggle.on('click', function () {\n\t\t\tif ($(this).hasClass('active')) {\n\t\t\t\t_this.showReadingTab(false);\n\t\t\t} else {\n\t\t\t\t_this.showReadingTab(true);\n\t\t\t}\n\t\t});\n\n\t\t$readingTabClose.on('click', function () {\n\t\t\t_this.showReadingTab(false);\n\t\t});\n\n\t\t$readingTabRevealBtn.on('click', function () {\n\t\t\t_this.revealMobileBtns(true);\n\t\t});\n\n\t\t$overlay.on('click', () => {\n\t\t\t_this.showReadingTab(false);\n\t\t});\n\n\t\tdocument.addEventListener('keyup', e =>\n\t\t\te.keyCode === 27 ? _this.showReadingTab(false) : ''\n\t\t);\n\t}\n\n // CSS Percentage Circle\n // @ref https://jsfiddle.net/ggj55sqo/\n updatePercentageCircle($el, percent) {\n let i = percent * 360 / 100;\n if (i <= 180)\n $el.css('background-image', 'linear-gradient(' + (90 + i) + 'deg, transparent 50%, #fff 50%),linear-gradient(90deg, #fff 50%, transparent 50%)');\n else\n $el.css('background-image', 'linear-gradient(' + (i - 90) + 'deg, transparent 50%, #000 50%),linear-gradient(90deg, #fff 50%, transparent 50%)');\n }\n\n\tsetReadingTab() {\n let wg = $(this.$el);\n let maxY = document.body.scrollHeight;\n\n\t\t$(document).scroll((e) => {\n\t\t\tlet currentY = window.pageYOffset + window.innerHeight;\n\n\t\t\t// @ref https://stackoverflow.com/questions/1145850/how-to-get-height-of-entire-document-with-javascript\n\t\t\tlet percent = Math.floor((currentY / maxY) * 100);\n\t\t\t// Limit percentage to 100 to prevent ridiculous things from happening\n\t\t\tpercent = percent > 100 ? 100 : percent;\n\t\t\twg.find(WG + 'percentText').text(percent + '%');\n\t\t\twg.find(WG + 'percent').each((index, item) => this.updatePercentageCircle($(item), percent));\n });\n\t\t$(document).trigger('scroll');\n\t}\n\n\t/**\n\t * On iPhone the icons are collapsed by default because they get it the way.\n\t* They can't sit right at the bottom like originally intended because bottom 30px on iPhone is reserved for the action bar.\n\t */\n\trevealMobileBtns(doShow) {\n\t\tlet $wg = $(this.$el);\n\t\tif(doShow) \t$wg.addClass(CLS_MOB_REVEALED);\n\t\telse\t\t$wg.removeClass(CLS_MOB_REVEALED);\n\n\t\tthis.setPosition();\n\t}\n\n\tshowReadingTabIcon() {\n\t\tlet $wg = $(this.$el);\n\n\t\t$(window).on('scroll', () => {\n\t\t\tthis.revealMobileBtns(false);\n\t\t\tif(utils.checkBP('tp')) {\n\t\t\t\tif($(window).scrollTop() > 100) {\n\t\t\t\t\t$wg.addClass(CLS_ICON_SHOW);\n\t\t\t\t} else {\n\t\t\t\t\tif(!$wg.hasClass('is-expanded')) $wg.removeClass(CLS_ICON_SHOW);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$(window).on('resize', () => {\n\t\t\tthis.revealMobileBtns(false);\n\t\t\tif(!utils.checkBP('tp')) {\n\t\t\t\t$wg.removeClass(CLS_ICON_SHOW);\n\t\t\t}\n\t\t});\n\t}\n\n\tshowReadingTab(doShow) {\n\t\tconst $el = $(this.$el);\n\t\tconst $readingTabToggle = $el.find(`${WG}icon--reading`);\n\t\tconst $content = $el.find(`${WG}content`);\n\t\tlet readingTabHeight = $content.height();\n\t\tlet availableHeight = $(window).outerHeight() - $('.siteHeader').outerHeight() - $('.readingTab-icons').outerHeight() - 10;\n\n\t\tif(doShow) {\n\t\t\tthis.revealMobileBtns(true);\n\n\t\t\tif (readingTabHeight > availableHeight) {\n\t\t\t\treadingTabHeight = availableHeight;\n\t\t\t\t$content.css({\n\t\t\t\t\t'max-height': `${readingTabHeight}px`,\n\t\t\t\t\t'overflow-y': 'auto'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// had to use 100vh (instead of 100%) because iPhone didn't work\n\t\t\t$el.css('top', `calc(100vh - ${readingTabHeight}px)`).addClass('is-expanded');\n\t\t\t$readingTabToggle.addClass('active');\n\t\t\t// $('body').addClass('no-scroll');\n\n\t\t} else {\n\t\t\t$el.css('top', '').removeClass('is-expanded');\n\t\t\t$readingTabToggle.removeClass('active');\n\t\t\t// $('body').removeClass('no-scroll');\n\t\t\t$content.css({\n\t\t\t\t'max-height': '',\n\t\t\t\t'overflow-y': ''\n\t\t\t});\n\t\t\tthis.revealMobileBtns(false);\n\t\t}\n\t}\n\n\tsetOpenReadingTabBtn() {\n\t\tvar _this = this;\n\t\t$('.openReadingTab').on('click', (e) => {\n\t\t\tlet $readingTabToggle = $('.siteFooter .readingTab').find(`.readingTab-icon--reading`);\n\n\t\t\tif ($readingTabToggle.hasClass('active')) {\n\t\t\t\t_this.showReadingTab(false);\n\t\t\t} else {\n\t\t\t\t_this.showReadingTab(true);\n\t\t\t}\n\t\t});\n\t}\n\n\t// set readingTab-icons position (translateX)\n\tsetPosition() {\n\t\tif (this.isIphone && this.$iconItem.length > 0) {\n\t\t\tlet totalWidth = 0;\n\n\t\t\tif (!this.$el.classList.contains(CLS_ICON_SHOW)) {\n\t\t\t\tthis.$iconList.css('transform', '');\n\t\t\t} else if (this.$el.classList.contains(CLS_MOB_REVEALED)) {\n\t\t\t\tthis.$iconList.css('transform', `translateY(-95px) translateX(0)`);\n\t\t\t} else {\n\t\t\t\tlet calculateWidth = (icon) => {\n\t\t\t\t\tlet curStyle = window.getComputedStyle(icon);\n\t\t\t\t\treturn icon.offsetWidth + parseFloat(curStyle.marginLeft) + parseFloat(curStyle.marginRight);\n\t\t\t\t};\n\n\t\t\t\tthis.$iconItem.each((i, icon) => {\n\t\t\t\t\ttotalWidth += calculateWidth(icon);\n\t\t\t\t});\n\n\t\t\t\t// get 1 icon as substraction to total width so, revealBtn willl appear\n\t\t\t\tlet $icon = this.$iconItem[0];\n\t\t\t\tlet iconWidth = calculateWidth($icon) + 4; // add offset padding\n\n\t\t\t\tthis.$iconList.css('transform', `translateY(-95px) translateX(${totalWidth - iconWidth}px)`);\n\t\t\t}\n\t\t}\n\t}\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-invalid-this */\n/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS = 'ProvenceMapSlider';\nconst CLS = 'provenceMapSlider';\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/provenceMapSlider.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport {loadProvenceMap} from '../loadWg/provenceMap';\nimport utils from '../utils';\n\nexport class ProvenceMapSlider {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadProvenceMapSlider function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.initCarousel();\n\t\tthis.loadProvenceMaps();\n\t\tthis.handleIframe();\n\t}\n\n\tloadProvenceMaps() {\n\t\tloadProvenceMap(this.$el, true).then((wgAll) => {\n\t\t\t(wgAll && wgAll.length > 0) ? wgAll.forEach((wg) => {\n\t\t\t\twg.init();\n\t\t\t}) : '';\n\t\t});\n\t}\n\n\tinitCarousel() {\n\t\tconst el = $(this.$el);\n\t\tconst $carousel = el.find(`${WG}carousel`);\n\t\tconst navActiveClass = 'is-active';\n\t\tconst $navLinks = el.find(`${WG}navLinks`);\n\t\tconst $navPrev = el.find(`${WG}navArrow--prev`);\n\t\tconst $navNext = el.find(`${WG}navArrow--next`);\n\t\tlet navWidth = $navLinks.outerWidth();\n\t\tlet navContentWidth = $navLinks.get(0).scrollWidth;\n\t\tlet scrollDistance = navContentWidth - navWidth;\n\t\tlet scrollPos = 0;\n\n\t\t$carousel.on('init', () => {\n\t\t\tel.find(`${WG}navLink`).on('click', function() {\n\t\t\t\tlet $this = $(this);\n\t\t\t\tlet index = $this.attr('data-slide-index');\n\n\t\t\t\t$carousel.slick('slickGoTo', index);\n\t\t\t\t$this.siblings().removeClass(navActiveClass);\n\t\t\t\t$this.addClass(navActiveClass);\n\t\t\t});\n\t\t}).slick({\n\t\t\tarrows: false,\n\t\t\tfade: true,\n\t\t}).on('afterChange', (event, slick, currentSlide) => {\n\t\t\tel.find(`${WG}navLink`).removeClass(navActiveClass);\n\t\t\tel.find(`${WG}navLink[data-slide-index=${currentSlide}]`).addClass(navActiveClass);\n\t\t});\n\n\t\t$navPrev.on('click', () => {\n\t\t\tscrollPos = $navLinks.scrollLeft();\n\t\t\tif (scrollPos > 0) {\n\t\t\t\tscrollPos -= scrollDistance / 2;\n\t\t\t\tscrollPos = scrollPos < 0 ? 0 : scrollPos;\n\t\t\t\t$navLinks.animate({\n\t\t\t\t\tscrollLeft: scrollPos,\n\t\t\t\t}, 200);\n\t\t\t}\n\t\t});\n\n\t\t$navNext.on('click', () => {\n\t\t\tscrollPos = $navLinks.scrollLeft();\n\t\t\tif (scrollPos < scrollDistance) {\n\t\t\t\tscrollPos += scrollDistance / 2;\n\t\t\t\tscrollPos = scrollPos > scrollDistance ? scrollDistance : scrollPos;\n\t\t\t\t$navLinks.animate({\n\t\t\t\t\tscrollLeft: scrollPos,\n\t\t\t\t}, 200);\n\t\t\t}\n\t\t});\n\t}\n\n\thandleIframe() {\n\t\tlet iframe = $('iframe.farmItem-modalContent');\n\t\tlet modal = iframe.closest('.modal');\n\n\t\tmodal.on('shown.bs.modal', () => {\n\t\t\tiframe.css({\n\t\t\t\twidth: '100%',\n\t\t\t\theight: iframe.closest('.modal-body').height(),\n\t\t\t});\n\n\t\t\tmodal.css({\n\t\t\t\toverflowY: 'hidden !important',\n\t\t\t});\n\n\t\t\tmodal.find('.modal-body').css({\n\t\t\t\toverflowY: 'hidden !important',\n\t\t\t});\n\n\t\t\tmodal.addClass('px-0');\n\n\t\t\t$(document.body).css({\n\t\t\t\toverflowY: 'hidden',\n\t\t\t\tmaxHeight: '100vh',\n\t\t\t\tpaddingRight: 0,\n\t\t\t});\n\t\t});\n\n\t\tmodal.on('hidden.bs.modal', () => {\n\t\t\t$(document.body).css({\n\t\t\t\toverflowY: '',\n\t\t\t\tmaxHeight: '',\n\t\t\t\tpaddingRight: '',\n\t\t\t});\n\n\t\t\tdocument.documentElement.scrollTop = window.scrollPosition || 0;\n\t\t});\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"FeatureArticleHero\";\nconst CLS = \"featureArticleHero\";\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/featureArticleHero.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport utils from '../utils';\n\nexport class FeatureArticleHero {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadFeatureArticleHero function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tthis.playVideo();\n\t\tthis.setImageHeight();\n\t}\n\n\tplayVideo() {\n\t\t$(document).on(\"youtubeVideoReady\", () => {\n\t\t\tlet $video = this.$el.find(`${WG}video`);\n\t\t\tif ($video.length > 0) {\n\t\t\t\tyouTubePlayers[$video.attr(\"data-array-index\")].setVolume(0);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetImageHeight() {\n\t\t//there's a bu on iframe for using \"vh\" unit. so need to override it using pixel\n\t\tif ((utils.isIPhone() || utils.isIPad()) && utils.inIframe()) {\n\t\t\tvar h = window.top.innerHeight || 530;\t\t\t\n\t\t\tthis.$el.css('height', `${h}px`);\n\t\t\tif (utils.isIPhone()) this.$el.find(WG + 'chev').css('bottom', '50px');\n\t\t}\n\t}\n\n}\n","// CONSTANTS are all caps.\nconst NS = \"NewsTemplate\";\nconst CLS = \"newsTemplate\";\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/newsTemplate.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport utils from '../utils';\n\nexport class NewsTemplate {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadNewsTemplate function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tthis.handleImageCaption();\n\t\tthis.checkContainer();\n\t\tthis.initAffix();\n\t\t$(window).resize(() => {\n\t\t\tconst img = this.$el.find(`${WG}image`);\n\t\t\timg.trigger(\"sticky_kit:detach\");\n\t\t\t$(img).removeAttr('style');\n\t\t\timg.trigger(\"sticky_kit:recalc\");\n\t\t\tthis.handleImageCaption();\n\t\t\tthis.checkContainer();\n\t\t\tthis.initAffix();\n\t\t});\n\t}\n\n\tinitAffix() {\n\t\tconst img = this.$el.find(`${WG}image`);\n\n\t\tif(utils.checkBP('dm', true)) {\n\t\t\tlet leftOffset = img.offset().left;\n\t\t\timg.stick_in_parent({\n\t\t\t\tparent: '.newsTemplate-wrapper',\n\t\t\t\toffset_top: 100\n\t\t\t})\n\t\t\t\t.on(\"sticky_kit:stick\", function(e) {\n\t\t\t\t\t$(e.target).css({\n\t\t\t\t\t\tleft: leftOffset+'px'\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.on(\"sticky_kit:unbottom\", function(e) {\n\t\t\t\t\t$(e.target).css({\n\t\t\t\t\t\tleft: leftOffset+'px'\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.on(\"sticky_kit:bottom\", function(e) {\n\t\t\t\t\t$(e.target).css({\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t$(window).on('scroll', function(e) {\n\t\t\t\tif(!img.hasClass('is_stuck')) {\n\t\t\t\t\timg.css({\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\thandleImageCaption() {\n\t\tlet $wg = this.$el;\n\t\tlet imgW = $wg.find(`${WG}imageImg`).outerWidth();\n\n\t\t$wg.find(`${WG}imageCaption`).css('width', `${imgW}px`);\n\t}\n\n\t//check if image is bigger than container\n\tcheckContainer() {\n\t\tlet $wg = this.$el;\n\t\tlet $wrapper = $wg.find(`${WG}wrapper`);\n\n\t\tif (utils.checkBP('dm', true)) {\n\t\t\tlet imageH = $wg.find(`${WG}image`).outerHeight();\n\t\t\tlet contH = $wg.find(`${WG}container`).outerHeight();\n\n\t\t\t$wrapper.css({\n\t\t\t\tminHeight: imageH > contH ? `${imageH + 100}px` : ''\n\t\t\t});\n\t\t} else {\n\t\t\t$wrapper.css('min-height', '');\n\t\t}\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"ImageSlider\";\nconst CLS = \"imageSlider\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/imageSlider.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport {loadImageSliderItem} from '../loadWg/imageSliderItem';\n\nexport class ImageSlider {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadImageSlider function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setImageSlider();\n\t\tthis.setImageSliderItem();\n\t}\n\n\tsetImageSliderItem() {\n loadImageSliderItem(this.$el, true).then((wgAll) => {\n\t\t\twgAll ? Array.from(wgAll).forEach(wg => {\n\t\t\t\twg.init();\n\t\t\t}) : '';\n\t\t});\n }\n\n\tsetImageSlider() {\n\n\t let wg = $(this.$el);\n let circleSlickSlider = wg.find(WG + 'mobileNav');\n let desktopNavItems = wg.find(WG + 'item');\n let slides = wg.find(WG + 'slide');\n\n let showSlideAtIndex = slideIndex => {\n let thisNavItem = desktopNavItems.eq(slideIndex);\n desktopNavItems.removeClass('active');\n thisNavItem.addClass('active');\n let slideForHide = wg.find(WG + 'slide.active');\n let slideForShow = slides.eq(slideIndex);\n slideForHide.removeClass('active').fadeOut();\n slideForShow.addClass('active').css({'position':'absolute', 'left': 0, 'top': 0, 'width': '100%'}).fadeIn(() => {\n slideForShow.css('position', 'relative');\n });\n\n circleSlickSlider.slick('slickGoTo', slideIndex);\n }\n\n circleSlickSlider.slick({\n arrows: true,\n slidesToShow: 4\n });\n\n desktopNavItems.click((e) => {\n showSlideAtIndex(desktopNavItems.index(e.currentTarget));\n });\n\n desktopNavItems.eq(0).trigger('click');\n\n circleSlickSlider.find('.slick-slide').click(e => {\n\t let slideIndex = e.currentTarget.getAttribute('data-slick-index');\n\t showSlideAtIndex(slideIndex);\n });\n\t}\n}\n","const NS = 'InstagramBlock';\nconst CLS = 'instagramBlock';\nconst WG = '.' + CLS + '-';\n\nimport Instafeed from 'instafeed.js'; //import the instafeed\n\nexport class InstagramBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadShopProductBlock function\n\t\tthis.$el = $($el);\n\t\t// get the data from epi server\n\t\tvar readMore = this.$el.data(\"readMore\");\n\t\tvar topLogo = this.$el.data(\"topLogo\");\n\t\tvar sideLogo = this.$el.data(\"sideLogo\");\n\t\tvar isScroll = this.$el.data(\"isScroll\");\n\t\tvar insToken = this.$el.data(\"insToken\");\n\t\t// load the instafeed\n\t\tvar userFeed = new Instafeed({\n\t\t\tget: 'user',\n\t\t\ttarget: \"instafeed-container\", // insert instagram into this div\n\t\t\tresolution: 'low_resolution', // using low resolution image\n\t\t\tlimit: 12, // show 12 posts in the carousel\n\t\t\taccessToken: insToken,\n\t\t\t// create custom template\n\t\t\ttemplate:'<div class=\"instaPost\"><div class=\"instaTop\"><img class=\"woolmarkLogo\" src=\"'+ topLogo +'\"><h5><b>thewoolmarkcompany</b></h5><img class=\"instaLogo\" src=\"' + sideLogo+ '\"><p class=\"instaCaption\">{{caption}}</p><a href=\"{{link}}\"><b>' + readMore +'</b></a></div><a href=\"{{link}}\"><img title=\"{{caption}}\" src=\"{{image}}\" /></a></div>'\n\t\t});\n\t\tuserFeed.run();\n\n\t\t// load slick slider \n\t\tsetTimeout(slickFunction, 2000); // wait for 2 seconds until instagram feed is fully loaded then load slick slider\n\t\t\tfunction slickFunction() {\n\t\t\t\t$(\"#instafeed-container\").slick({\n\t\t\t\t\t\tdots: true,\n\t\t\t\t\t\tinfinite: true,\n\t\t\t\t\t\tautoplay: isScroll,\n \t\t\t\t\tautoplaySpeed: 4000,\n\t\t\t\t\t\tslidesToShow: 3,\n\t\t\t\t\t\tslidesToScroll: 3,\n\t\t\t\t\t\tresponsive: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbreakpoint: 1024,\n\t\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\tslidesToShow: 2,\n\t\t\t\t\t\t\tslidesToScroll: 2,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbreakpoint: 600,\n\t\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\tslidesToShow: 2,\n\t\t\t\t\t\t\tslidesToScroll: 2\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbreakpoint: 480,\n\t\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\t$('#instafeed-container').show();\n\t\t\t}\n\t}\n\t// Add more functions like on above here\n}\n","// CONSTANTS are all caps.\nconst NS = \"ArticleGallery\";\nconst CLS = \"articleGallery\";\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/articleGallery.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nexport class ArticleGallery {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadArticleGallery function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tthis.initArticleGallery();\n\t}\n\n\tinitArticleGallery() {\n\t\tconst $carousel = this.$el.find(`${WG}carousel`);\n\t\tconst $navLinks = this.$el.find('.sliderNav-links');\n\t\tconst $navPrev = this.$el.find('.sliderNav-arrow--prev');\n\t\tconst $navNext = this.$el.find('.sliderNav-arrow--next');\n\t\tlet navActiveClass = 'is-active';\n\t\tlet navWidth = $navLinks.outerWidth();\n\t\tlet navContentWidth = $navLinks.get(0).scrollWidth;\n\t\tlet scrollDistance = navContentWidth - navWidth;\n\t\tlet scrollPos = 0;\n\n\t\t$carousel.on('init', (event, slick) => {\n\t\t\tif (slick.slideCount <= 1) {\n\t\t\t\t$('.sliderNav').attr('hidden', '');\n\t\t\t}\n\n\t\t\tthis.$el.find('.sliderNav-link').on('click', function () {\n\t\t\t\tlet $this = $(this);\n\t\t\t\tlet index = $this.attr('data-slide-index');\n\n\t\t\t\t$carousel.slick('slickGoTo', index);\n\t\t\t\t$this.siblings().removeClass(navActiveClass);\n\t\t\t\t$this.addClass(navActiveClass);\n\t\t\t});\n\t\t}).slick({\n\t\t\tarrows: false,\n\t\t\tcenterMode: true,\n\t\t\tcenterPadding: 0,\n\t\t\tdraggable: false,\n\t\t\tslidesToShow: 1\n\t\t}).on('afterChange', (event, slick, currentSlide) => {\n\t\t\tthis.$el.find(`.sliderNav-link`).removeClass(navActiveClass);\n\t\t\tthis.$el.find(`.sliderNav-link[data-slide-index=${currentSlide}]`).addClass(navActiveClass);\n\t\t});\n\n\t\t$navPrev.on('click', () => {\n\t\t\tscrollPos = $navLinks.scrollLeft();\n\t\t\tif (scrollPos > 0) {\n\t\t\t\tscrollPos -= scrollDistance / 2;\n\t\t\t\tscrollPos = scrollPos < 0 ? 0 : scrollPos;\n\t\t\t\t$navLinks.animate({\n\t\t\t\t\tscrollLeft: scrollPos\n\t\t\t\t}, 200);\n\t\t\t}\n\t\t});\n\n\t\t$navNext.on('click', () => {\n\t\t\tscrollPos = $navLinks.scrollLeft();\n\t\t\tif (scrollPos < scrollDistance) {\n\t\t\t\tscrollPos += scrollDistance / 2;\n\t\t\t\tscrollPos = scrollPos > scrollDistance ? scrollDistance : scrollPos;\n\t\t\t\t$navLinks.animate({\n\t\t\t\t\tscrollLeft: scrollPos\n\t\t\t\t}, 200);\n\t\t\t}\n\t\t});\n\t}\n\n}\n","// CONSTANTS are all caps.\nconst NS = 'SocialBar';\nconst CLS = 'socialBar';\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/socialBar.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class SocialBar {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadSocialBar function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.initSocialBar();\n\n\t\t// let hasAffix = !this.$el.classList.contains('modalChild') && !this.$el.classList.contains('newsTemplate-socialBar');\n\t\t// if (hasAffix) {\n\t\t// \tsetTimeout(() => {\n\t\t// \t\tthis.affixSocialBar();\n\t\t// \t}, 500);\n\t\t// }\n\n\t\tthis.onModalShow();\n\t}\n\n\tinitSocialBar() {\n\t\tconst socialButtons = this.$el.querySelectorAll('.socialBar-button');\n\n\t\tArray.from(socialButtons).forEach( (item) => {\n\t\t\tconst social = item.getAttribute('data-social');\n\t\t\tconst currentPage = window.location.href;\n\n\t\t\tswitch (social) {\n\t\t\t\tcase 'facebook':\n\t\t\t\t\titem.setAttribute('href', `http://www.facebook.com/sharer.php?u=${currentPage}`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'twitter':\n\t\t\t\t\titem.setAttribute('href', `https://twitter.com/share?url=${currentPage}&text=`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'linkedin':\n\t\t\t\t\titem.setAttribute('href', `http://www.linkedin.com/shareArticle?mini=true&url=${currentPage}`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'pinterest':\n\t\t\t\t\titem.setAttribute('href', `https://pinterest.com/pin/create/button/?url=${currentPage}&media=&description=`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'instagram':\n\t\t\t\t\titem.setAttribute('href', `https://www.instagram.com/thewoolmarkcompany/?hl=en`);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n\n\taffixSocialBar() {\n\t\tconst wgTopOffset = $(this.$el).offset().top - 70;\n\t\tconst wg = $(this.$el);\n\n\t\t$(window).scroll(function() {\n\t\t\t// console.log(`window: ${$(window).scrollTop()}; wg: ${wgTopOffset}`);\n\t\t\tif (document.documentElement.clientWidth >= 1200) {\n\t\t\t\tif ($(window).scrollTop() > wgTopOffset) {\n\t\t\t\t\twg.attr('style', `position: fixed !important; top: 40px; z-index: 1001;`); // 99999\n\t\t\t\t} else {\n\t\t\t\t\twg.removeAttr('style');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tonModalShow() {\n\t\t$(WG + 'modal').on('shown.bs.modal', () => {\n\t\t\t$('.modal-backdrop.fade.show').css('opacity', '.5');\n\t\t});\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"EventTemplate\";\nconst CLS = \"eventTemplate\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/eventTemplate.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport utils from '../utils';\n\nexport class EventTemplate {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadNewsTemplate function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tthis.handleImageCaption();\n\t\tthis.checkContainer();\n\t\tthis.initAffix();\n\t\t$(window).resize(() => {\n\t\t\tconst img = this.$el.find(`${WG}image`);\n\t\t\timg.trigger(\"sticky_kit:detach\");\n\t\t\t$(img).removeAttr('style');\n\t\t\timg.trigger(\"sticky_kit:recalc\");\n\t\t\tthis.handleImageCaption();\n\t\t\tthis.checkContainer();\n\t\t\tthis.initAffix();\n\t\t});\n\t}\n\n\tinitAffix() {\n\t\tconst img = this.$el.find(`${WG}image`);\n\n\t\tif(utils.checkBP('dm', true)) {\n\t\t\tlet leftOffset = img.offset().left;\n\t\t\timg.stick_in_parent({\n\t\t\t\tparent: '.eventTemplate-wrapper',\n\t\t\t\toffset_top: 100\n\t\t\t})\n\t\t\t\t.on(\"sticky_kit:stick\", function(e) {\n\t\t\t\t\t$(e.target).css({\n\t\t\t\t\t\tleft: leftOffset+'px'\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.on(\"sticky_kit:unbottom\", function(e) {\n\t\t\t\t\t$(e.target).css({\n\t\t\t\t\t\tleft: leftOffset+'px'\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.on(\"sticky_kit:bottom\", function(e) {\n\t\t\t\t\t$(e.target).css({\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t$(window).on('scroll', function(e) {\n\t\t\t\tif(!img.hasClass('is_stuck')) {\n\t\t\t\t\timg.css({\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\thandleImageCaption() {\n\t\tlet $wg = this.$el;\n\t\tlet imgW = $wg.find(`${WG}imageImg`).outerWidth();\n\n\t\t$wg.find(`${WG}imageCaption`).css('width', `${imgW}px`);\n\t}\n\n\t//check if image is bigger than container\n\tcheckContainer() {\n\t\tlet $wg = this.$el;\n\t\tlet $wrapper = $wg.find(`${WG}wrapper`);\n\n\t\tif (utils.checkBP('dm', true)) {\n\t\t\tlet imageH = $wg.find(`${WG}image`).outerHeight();\n\t\t\tlet contH = $wg.find(`${WG}container`).outerHeight();\n\n\t\t\t$wrapper.css({\n\t\t\t\tminHeight: imageH > contH ? `${imageH + 100}px` : ''\n\t\t\t});\n\t\t} else {\n\t\t\t$wrapper.css('min-height', '');\n\t\t}\n\t}\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-invalid-this */\n/* eslint-disable max-len */\n/* eslint-disable comma-dangle */\n// CONSTANTS are all caps.\nconst NS = 'MagnifyingGallery';\nconst CLS = 'magnifyingGallery';\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/magnifyingGallery.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class MagnifyingGallery {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadMagnifyingGallery function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tconst This = this;\n\t\tconst $wg = this.$el;\n\t\tlet images = $wg.find(`${WG}slideImg`);\n\n\t\t// no images are loaded.\n\t\tlet imagesLoaded = 0;\n\t\t// total number of images in the slider\n\t\tlet totalImages = images.length;\n\n\t\timages.each(function() {\n\t\t\tlet imgSrc = $(this).attr('src');\n\t\t\tlet objImg = new Image();\n\t\t\tobjImg.src = imgSrc;\n\t\t\tobjImg.onload = function() {\n\t\t\t\timagesLoaded++;\n\t\t\t\tif (imagesLoaded == totalImages) {\n\t\t\t\t\tThis.initCarousel();\n\t\t\t\t\tThis.initMagnify();\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t}\n\n\tinitCarousel() {\n\t\tconst $carousel = this.$el.find(`${WG}carousel`);\n\t\tconst $wg = this.$el;\n\t\tlet navActiveClass = 'is-active';\n\n\t\t$carousel.on('init', () => {\n\t\t\tthis.$el.find('.sliderNav-link').on('click', function() {\n\t\t\t\tlet $this = $(this);\n\t\t\t\tlet index = $this.attr('data-slide-index');\n\n\t\t\t\t$carousel.slick('slickGoTo', index);\n\t\t\t\t$this.siblings().removeClass(navActiveClass);\n\t\t\t\t$this.addClass(navActiveClass);\n\n\t\t\t\t// detach the line and put it before the active item\n\t\t\t\tlet $sliderNavLine = $wg.find('.sliderNav-line').detach();\n\t\t\t\t$this.before($sliderNavLine);\n\t\t\t});\n\t\t}).slick({\n\t\t\tappendArrows: this.$el.find(`${WG}carouselNav`),\n\t\t\tnextArrow: '<i class=\"icon-chevron-right\"></i>',\n\t\t\tprevArrow: '<i class=\"icon-chevron-left\"></i>',\n\t\t\tdraggable: false,\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 1142,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tarrows: false,\n\t\t\t\t\t\tdots: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t}).on('afterChange', (event, slick, currentSlide) => {\n\t\t\tlet $sliderNavLine = $wg.find('.sliderNav-line').detach();\n\t\t\tthis.$el.find('.sliderNav-link').removeClass(navActiveClass);\n\t\t\tthis.$el.find(`.sliderNav-link[data-slide-index=${currentSlide}]`).addClass(navActiveClass).before($sliderNavLine);\n\t\t});\n\t}\n\n\tinitMagnify() {\n\t\tthis.$el.find(`${WG}slideImg`).magnify({\n\t\t\tlimitBounds: true,\n\t\t\tmobileCloseEvent: 'click'\n\t\t});\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"Navigator\";\nconst CLS = \"navigator\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/navigator.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport utils from '../utils';\n\n\nexport class Navigator {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadNavigator function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setNavigator();\n\t\tthis.handleOnHover();\n\t}\n\n\tsetNavigator() {\n\t\t$(window).scroll(e => {\n\t\t let wg = $(this.$el);\n\t\t let currentY = $(window).scrollTop();\n\t\t\tlet maxY = document.body.scrollHeight;\n\n\t\t\t//hide navigator on mobile\n\t\t\tif(!utils.checkBP('ds')) {\n\t\t\t\tif(currentY >= maxY / 3 && !wg.hasClass('is-open')) wg.addClass('is-open');\n\n\t\t \tif(currentY < maxY / 3 && wg.hasClass('is-open')) wg.removeClass('is-open');\n\t\t\t} else {\n\t\t\t\twg.removeClass('is-open');\n\t\t\t}\n\n });\n\t}\n\n\thandleOnHover() {\n\t\tlet _this = this;\n\t\tvar $el = $(_this.$el);\n\n\t\tlet hover = ($nav, doShow) => {\n\t\t\tlet isLeft = $nav.hasClass(`${CLS}-left`);\n\n\t\t\tif (isLeft) _this.showPreview($el.find(`${WG}previewLeft`), doShow);\n\t\t\telse \t\t_this.showPreview($el.find(`${WG}previewRight`), doShow);\n\t\t};\n\n\t\t$el.find(`${WG}nav`).on('mouseenter', (e) => {\n\t\t\thover($(e.currentTarget), true);\n\t\t});\n\n\t\t$el.find(`${WG}nav`).on('mouseleave', (e) => {\n\t\t\thover($(e.currentTarget), false);\n\t\t});\n\t}\n\n\tshowPreview($nav, doShow) {\n\t\tif(doShow) $nav.addClass('is-open');\n\t\telse $nav.removeClass('is-open');\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"ContactUsSearchBlock\";\nconst CLS = \"contactUsSearchBlock\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/contactUsSearchBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class ContactUsSearchBlock {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadContactUsSearchBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\t//this.setContactUsSearchBlock();\n\t\tthis.setCountryList();\n\t\tthis.handleCountryOnSelect();\n\t}\n\n\tsetContactUsSearchBlock() {\n\t\tconst wg = this.$el;\n\n\t\tconst input = wg.querySelector(WG + 'inp');\n\t\tconst searchResults = wg.querySelector(WG + 'results');\n\t\tconst searchIndex = wg.querySelector(WG + 'searchWrapper').getAttribute('data-offices').split(',');\n\n\t\tlet inputTerms, termsArray, prefix, terms, results, sortedResults;\n\n\n\t\tconst search = function () {\n\t\t\tinputTerms = input.value.toLowerCase();\n\t\t\tresults = [];\n\t\t\ttermsArray = inputTerms.split(' ');\n\t\t\tprefix = termsArray.length === 1 ? '' : termsArray.slice(0, -1).join(' ') + ' ';\n\t\t\tterms = termsArray[termsArray.length - 1].toLowerCase();\n\n\t\t\tfor (let i = 0; i < searchIndex.length; i++) {\n\t\t\t\tconst a = searchIndex[i].toLowerCase(),\n\t\t\t\t\tt = a.indexOf(terms);\n\n\t\t\t\tif (t > -1) {\n\t\t\t\t\tresults.push(a);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tevaluateResults();\n\t\t};\n\n\t\tconst evaluateResults = function () {\n\t\t\tif (results.length > 0 && inputTerms.length > 0 && terms.length !== 0) {\n\t\t\t\tsortedResults = results.sort(sortResults);\n\t\t\t\tappendResults();\n\t\t\t}\n\t\t\telse if (inputTerms.length > 0 && terms.length !== 0) {\n\t\t\t\tsearchResults.innerHTML = '<div>Sorry, <strong>'\n\t\t\t\t\t+ inputTerms\n\t\t\t\t\t+ '</strong> has not results.</div>';\n\n\t\t\t}\n\t\t\telse if (inputTerms.length !== 0 && terms.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tclearResults();\n\t\t\t\t//Remove 'has-results' class\n\t\t\t\tsearchResults.className = CLS+\"-results\";\n\t\t\t}\n\t\t};\n\n\t\tconst sortResults = function (a, b) {\n\t\t\tif (a.indexOf(terms) < b.indexOf(terms)) return -1;\n\t\t\tif (a.indexOf(terms) > b.indexOf(terms)) return 1;\n\t\t\treturn 0;\n\t\t};\n\n\t\tconst appendResults = function () {\n\t\t\tclearResults();\n\n\t\t\tfor (let i = 0; i < sortedResults.length && i < 5; i++) {\n\t\t\t\tconst resultItem = document.createElement(\"div\");\n\t\t\t\tresultItem.className = CLS+'-result';\n\n\t\t\t\tresultItem.innerHTML = prefix\n\t\t\t\t\t+ sortedResults[i].toLowerCase().replace(terms, '<strong>'\n\t\t\t\t\t\t+ terms\n\t\t\t\t\t\t+ '</strong>');\n\t\t\t\tsearchResults.appendChild(resultItem);\n\t\t\t\tresultItem.addEventListener('click', selectResult, false);\n\t\t\t}\n\n\t\t};\n\n\t\tconst clearResults = function () {\n\t\t\tsearchResults.className = CLS+\"-results has-results\";\n\t\t\tsearchResults.innerHTML = '';\n\t\t};\n\n\t\tconst selectResult = function (e) {\n\t\t\tconst selected = e.currentTarget.innerText;\n\t\t\tinput.value = selected;\n\t\t\t//search();\n\t\t\tclearResults();\n\t\t\tinput.focus();\n\t\t};\n\n\t\tinput.addEventListener(\"keyup\", search, false);\n\n\n\n\n\t}\n\n\tsetCountryList() {\n\t\tlet input = this.$el.querySelector(WG + 'inp');\n\t\tlet list = [];\n\t\tlet items = this.$el.querySelectorAll(WG + 'countryList li');\n\n\t\t$.each(items, (i, item) => {\n\t\t\tlist.push({\n\t\t\t\tlabel: $(item).text(),\n\t\t\t\tvalue: $(item).data('value')\n\t\t\t});\n\t\t});\n\n\t\tnew Awesomplete(input, {\n\t\t\tlist: list,\n\t\t\tminChars: 1,\n\t\t\tautoFirst: true,\n\t\t});\n\t}\n\n\thandleCountryOnSelect() {\n\t\tlet input = this.$el.querySelector(WG + 'inp');\n\t\tinput.addEventListener('awesomplete-selectcomplete', (event) => {\n\t\t\tlet $mapList = $('[data-wg=\"ContactUsLocation\"]');\n\t\t\tlet selCountry = event.text.value;\n\n\t\t\t//show/hide ContactUsLocation widget\n\t\t\t$mapList.addClass('d-none');\n\n\t\t\t$.each($mapList, (i, map) => {\n\t\t\t\tlet $map = $(map);\n\t\t\t\tlet countries = $map.data('country').split(',');\n\n\t\t\t\t//match map value with dropdown value\n\t\t\t\t$.each(countries, (i, country) => {\n\t\t\t\t\tif(selCountry === country) {\n\t\t\t\t\t\t$map.removeClass('d-none');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t//Add more functions like on above here\n\n}\n","// CONSTANTS are all caps.\nconst NS = \"RenewalForm\";\nconst CLS = \"renewalForm\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/renewalForm.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n//import Awesomplete from 'Awesomplete';\n\n\nexport class RenewalForm {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadRenewalForm function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setValidation();\n\t\tthis.setCountryList();\n\t\tthis.handleSubmitBtn();\n\t\tthis.handleCurrency();\n\t}\n\n\tsetValidation() {\n\t\t$(WG + 'form').validate({\n\t\t\terrorClass: 'is-invalid',\n\t\t\terrorElement: 'span',\n\t\t});\n\t}\n\n\thandleSubmitBtn() {\n\t\t$(WG + 'btnSubmit').on('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\tconst $form = $(WG + 'form');\n\n\t\t\tif ($form.valid()) {\n\t\t\t\t$('#payment_reference').val($('#invoiceNo').val());\n\t\t\t\t$form.submit();\n\t\t\t}\n\t\t});\n\t}\n\n\tsetCountryList() {\n\t\tlet input = document.getElementById('country');\n\t\tnew Awesomplete(input, {\n\t\t\tlist: '#countrylist',\n\t\t\tminChars: 1,\n\t\t\tautoFirst: true,\n\t\t});\n\t}\n\n\thandleCurrency() {\n\t\tlet $wg = $(this.$el);\n\n\t\t$wg.find('#currency_code').on('change', (e) => {\n\t\t\tlet target = e.target;\n\t\t\tlet txt = target.options[target.selectedIndex].text;\n\t\t\t$wg.find('#currency').val(txt);\n\t\t});\n\t}\n\n\t// Add more functions like on above here\n}\n","const NS = 'SiteFooter';\nconst CLS = 'siteFooter';\nconst WG = '.' + CLS + '-';\n\nimport utils from '../utils';\n\nexport class SiteFooter {\n\tconstructor($el) {\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.showButtonFooter();\n\n\t\tconst $wg = $(this.$el);\n\t\tlet $selectedLangItem = $wg.find(WG+'langItem.is-selected');\n\t\tconst $langToggle = $wg.find(WG+'langToggle');\n\n\t\t// if none selected picks first one\n\t\tif (!$selectedLangItem.length) {\n\t\t\tlet $langItems = $wg.find(WG+'langItem');\n\t\t\tif($langItems.length) {\n\t\t\t\t$selectedLangItem = $langItems.eq(0);\n\t\t\t\t$selectedLangItem.addClass('is-selected');\n\t\t\t}\n\t\t}\n\n\t\tif($selectedLangItem) $langToggle.text( $selectedLangItem.text() );\n\n\t\tlet $siteFooterSiteMap = $wg.find('.siteFooterSitemap');\n\t\tlet $linkMore = $wg.find(WG+'link--more');\n\n\t\t$linkMore.on('click', () => {\n\t\t\t$siteFooterSiteMap.trigger('siteFooterSitemap.toggle', {});\n\t\t});\n\n\t\t$wg.on('siteFooter.sitemapButton.toggleClass', () => {\n\t\t\tif($siteFooterSiteMap.attr('data-closed') === 'false') {\n\t\t\t\t$linkMore.addClass(`active`);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$linkMore.removeClass(`active`);\n\t\t\t}\n\t\t});\n\t}\n\n\t// button share, back to top, and reading tab will show on scroll\n\tshowButtonFooter() {\n\t\tlet $wg = $(this.$el);\n\t\tconst clsHasScrolled = 'has-scrolled';\n\n\t\t$(window).on('scroll', () => {\n\t\t\tif(!utils.checkBP('tp')) {\n\t\t\t\tif($(window).scrollTop() > 100) {\n\t\t\t\t\t$wg.addClass(clsHasScrolled);\n\t\t\t\t} else {\n\t\t\t\t\t$wg.removeClass(clsHasScrolled);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$(window).on('resize', () => {\n\t\t\tif(utils.checkBP('tp')) {\n\t\t\t\t$wg.removeClass(clsHasScrolled);\n\t\t\t}\n\t\t});\n\t}\n}\n","const NS = 'SiteFooterWoolLab';\nconst CLS = 'siteFooterWoolLab';\nconst WG = '.' + CLS + '-';\n\nimport utils from '../utils';\n\nexport class SiteFooterWoolLab {\n\tconstructor($el) {\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.showButtonFooter();\n\n\t\tconst $wg = $(this.$el);\n\t\tlet $selectedLangItem = $wg.find(WG+'langItem.is-selected');\n\t\tconst $langToggle = $wg.find(WG+'langToggle');\n\n\t\t// if none selected picks first one\n\t\tif (!$selectedLangItem.length) {\n\t\t\tlet $langItems = $wg.find(WG+'langItem');\n\t\t\tif($langItems.length) {\n\t\t\t\t$selectedLangItem = $langItems.eq(0);\n\t\t\t\t$selectedLangItem.addClass('is-selected');\n\t\t\t}\n\t\t}\n\n\t\tif($selectedLangItem) $langToggle.text( $selectedLangItem.text() );\n\n\t\tlet $siteFooterSiteMap = $wg.find('.siteFooterSitemap');\n\t\tlet $linkMore = $wg.find(WG+'link--more');\n\n\t\t$linkMore.on('click', () => {\n\t\t\t$siteFooterSiteMap.trigger('siteFooterSitemap.toggle', {});\n\t\t});\n\n\t\t$wg.on('siteFooter.sitemapButton.toggleClass', () => {\n\t\t\tif($siteFooterSiteMap.attr('data-closed') === 'false') {\n\t\t\t\t$linkMore.addClass(`active`);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$linkMore.removeClass(`active`);\n\t\t\t}\n\t\t});\n\t}\n\n\t// button share, back to top, and reading tab will show on scroll\n\tshowButtonFooter() {\n\t\tlet $wg = $(this.$el);\n\t\tconst clsHasScrolled = 'has-scrolled';\n\n\t\t$(window).on('scroll', () => {\n\t\t\tif(!utils.checkBP('tp')) {\n\t\t\t\tif($(window).scrollTop() > 100) {\n\t\t\t\t\t$wg.addClass(clsHasScrolled);\n\t\t\t\t} else {\n\t\t\t\t\t$wg.removeClass(clsHasScrolled);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$(window).on('resize', () => {\n\t\t\tif(utils.checkBP('tp')) {\n\t\t\t\t$wg.removeClass(clsHasScrolled);\n\t\t\t}\n\t\t});\n\t}\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\nconst NS = 'SiteFooterSitemap';\nconst CLS = 'siteFooterSitemap';\nconst WG = '.' + CLS + '-';\n\nimport {scrollIntoView} from 'scroll-js';\n\nexport class SiteFooterSitemap {\n\tconstructor($el) {\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tconst $wg = $(this.$el);\n\t\tthis.slideAnimationDuration = 750;\n\t\tthis.scrollAnimationDuration = 750;\n\t\tthis.scrollEasing = 'ease-in-out';\n\t\tthis.isAnimating = false;\n\t\tlet $siteFooter = $wg.parents('.siteFooter');\n\n\t\t$wg.on('siteFooterSitemap.toggle', () => {\n\t\t\tif (!this.isAnimating) {\n\t\t\t\tif ($wg.attr('data-closed') === 'true') {\n\t\t\t\t\t$wg.attr('data-closed', false);\n\t\t\t\t\t$siteFooter.trigger('siteFooter.sitemapButton.toggleClass', {});\n\t\t\t\t\tthis.isAnimating = true;\n\t\t\t\t\t$wg.slideDown({\n\t\t\t\t\t\tduration: this.slideAnimationDuration,\n\t\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\t\tscrollIntoView($wg[0], document.body, {duration: this.scrollAnimationDuration, easing: this.scrollEasing}).then(() => {\n\t\t\t\t\t\t\t\tthis.isAnimating = false;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.isAnimating = true;\n\t\t\t\t\t$wg.slideUp({\n\t\t\t\t\t\tduration: this.slideAnimationDuration,\n\t\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\t\t$wg.attr('data-closed', true);\n\t\t\t\t\t\t\t$siteFooter.trigger('siteFooter.sitemapButton.toggleClass', {});\n\t\t\t\t\t\t\t\tthis.isAnimating = false;\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$wg.on('click', WG + 'close', () => {\n\t\t\tthis.isAnimating = false;\n\t\t\t$wg.trigger('siteFooterSitemap.toggle');\n\t\t});\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"ChatbotButton\";\nconst CLS = \"chatbotButton\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/chatbotButton.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nexport class ChatbotButton {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadChatbotButton function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tconsole.log(NS, \"init\");\n\t\tthis.setChatbotButton();\n\t\tthis.handleBtnClick();\n\t}\n\n\t//check if page is scrolled so it can move together with the \"back to top\" button\n\tsetChatbotButton() {\n\t\tlet $wg = this.$el;\n\t\tconst clsHasScrolled = 'has-scrolled';\n\n\t\t$(window).on('scroll', () => {\n\t\t\tif($(window).scrollTop() > 100) {\n\t\t\t\t$wg.addClass(clsHasScrolled);\n\t\t\t} else {\n\t\t\t\t$wg.removeClass(clsHasScrolled);\n\t\t\t}\n\t\t});\n\t}\n\n\thandleBtnClick() {\n\t\tlet $happytalkBtn = this.$el.find('.chatbotButton-btn--happytalk');\n\t\t$happytalkBtn.on('click', (e) => {\n\t\t\te.preventDefault();\n\t\t\tlet url = $happytalkBtn.prop('href');\n\t\t\twindow.open(url, 'Window Name', 'height=503,width=350');\n\t\t});\n\t}\n\n}\n","// CONSTANTS are all caps.\nconst NS = 'TimelineCarousel';\nconst CLS = 'timelineCarousel';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/timelineCarousel.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport slick from 'slick-carousel';\n\nexport class TimelineCarousel {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadTimelineCarousel function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setTimelineCarousel();\n\t}\n\n\tsetTimelineCarousel() {\n\t\t// Add Some logic here\n\t\tconst $wg = $(this.$el);\n\t\tconst This = this;\n\t\tlet images = $wg.find(WG + 'slide-image');\n\n\t\t// no images are loaded.\n\t\tlet imagesLoaded = 0;\n\t\t// total number of images in the slider\n\t\tlet totalImages = images.length;\n\n\t\timages.each(function() {\n\t\t\tlet imgSrc = $(this).attr('src');\n\t\t\tlet objImg = new Image();\n\t\t\tobjImg.src = imgSrc;\n\t\t\tobjImg.onload = function() {\n\t\t\t\timagesLoaded++;\n\t\t\t\tif (imagesLoaded == totalImages) {\n\t\t\t\t\tThis.initSlider();\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t}\n\n\tinitSlider() {\n\t\tconst $wg = $(this.$el);\n\t\tlet slider = $wg.find(WG + 'slider');\n\t\tlet images = $wg.find(WG + 'slide-image');\n\n\t\timages.each(function() {\n\t\t\tlet $img = $(this);\n\t\t\t$img.closest(WG + 'slide-wrapper').css({\n\t\t\t\t'width': $img[0].naturalWidth + 'px',\n\t\t\t});\n\t\t});\n\n\t\tlet options = {\n\t\t\tcenterMode: true,\n\t\t\tslidesToShow: 1,\n\t\t\tarrows: false,\n\t\t\tfocusOnSelect: true,\n\t\t\tvariableWidth: true,\n\t\t\tadaptiveHeight: true,\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 768,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tdots: true,\n\t\t\t\t\t\tcenterMode: false,\n\t\t\t\t\t\tvariableWidth: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\tslider.slick(options);\n\n\t\t// On before slide change\n\t\tslider.on('beforeChange', function(event, slick, currentSlide, nextSlide) {\n\t\t\t$wg.find(WG + 'timeline-point').removeClass('active');\n\t\t\t$wg.find(WG + 'timeline-point').eq(nextSlide).addClass('active');\n\t\t});\n\n\t\t// on timeline clicks\n\t\t$wg.on('click', WG + 'timeline-point', function() {\n\t\t\t$wg.find(WG + 'timeline-point').removeClass('active');\n\t\t\t$(this).addClass('active');\n\t\t\tslider.slick('slickGoTo', $(this).index());\n\t\t});\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-invalid-this */\n/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS = 'TabContainer';\nconst CLS = 'tabContainer';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/tabContainer.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport utils from '../utils';\n\nexport class TabContainer {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadTabContainer function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setTabContainer();\n\t}\n\n\tsetTabContainer() {\n\t\t// Add Some logic here\n\t\tconst This = this;\n\t\tlet $wg = $(this.$el);\n\t\tlet tabsTitles = $wg.find(WG + 'tabTitlesWrapper');\n\t\tconst TI = '.tabItem-';\n\t\tconst TIB = '[data-wg=\"TabItem\"]';\n\t\tconst header = $('.siteHeader');\n\t\tlet initTopPosition;\n\n\t\t// loop through tabItems and create tab triggers outside the tab container\n\t\tlet tabItems = $wg.find(TIB);\n\t\tif (tabItems && tabItems.length > 0) {\n\t\t\tconst hasHash = window.location.hash;\n\t\t\tif (hasHash) {\n\t\t\t\t// it needs to wait untill the heroBanner animation completes\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconst $activeHash = tabItems.filter(`[data-id=\"${hasHash.substring(1).toLowerCase()}\"]`);\n\t\t\t\t\tconst $activeTitle = $activeHash.find(`${TI}tabTitle`);\n\t\t\t\t\t$activeTitle .trigger('click');\n\t\t\t\t\t$wg.find('.dropdown-toggle').text($activeTitle.text());\n\t\t\t\t}, 3500);\n\t\t\t}\n\t\t\t// generate mobile dropdown\n\t\t\tlet mobileDropdownHtml = `\n\t\t\t\t<div class=\"mobile-dropdown d-md-none position-relative\">\n\t\t\t\t\t<button class=\"dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\"></button>\n\t\t\t\t\t<div class=\"dropdown-menu\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t\ttabsTitles.find('.container').append(mobileDropdownHtml);\n\n\t\t\ttabItems.each(function(i) {\n\t\t\t\tlet tabTitle = $(this).find(`${TI}tabTitle`);\n\t\t\t\tlet title = tabTitle.text();\n\t\t\t\tlet id = This.generateId() + '-tabTrigger';\n\t\t\t\tlet titleHtml = `<span role=\"button\" class=\"${CLS}-tabTrigger d-none d-md-inline-block\" id=\"${id}\">${title}</span>`;\n\t\t\t\tconst tabItemId = $(this).data('id').toLowerCase();\n\t\t\t\tif (tabItemId) {\n\t\t\t\t\t$(this).attr('data-id', tabItemId);\n\t\t\t\t}\n\t\t\t\ttabTitle.attr('data-id', id);\n\t\t\t\ttabsTitles.find('.container').append(titleHtml);\n\t\t\t\t// append to mobile menu\n\t\t\t\ttabsTitles.find('.dropdown-menu').append(`\n\t\t\t\t\t<span class=\"dropdown-item\" data-id=\"${id}\">${title}</span>\n\t\t\t\t`);\n\t\t\t\t// first tab is active by default\n\t\t\t\tif (i == 0) {\n\t\t\t\t\ttabItems.first().find(`${TI}tabTitle`).addClass('is-active');\n\t\t\t\t\ttabsTitles.find(WG + 'tabTrigger').first().addClass('is-active');\n\t\t\t\t\ttabItems.first().find(`${TI}tabContent`).fadeIn('fast', function() {\n\t\t\t\t\t\t$(window).trigger('resize');\n\t\t\t\t\t\t// setPosition\n\t\t\t\t\t\ttabItems.first().find('.slick-initialized').slick('setPosition');\n\t\t\t\t\t});\n\t\t\t\t\t// put the initial mobile dropdown button text\n\t\t\t\t\ttabsTitles.find('.dropdown-toggle').text(title);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$wg.on('click', '.dropdown-item', function() {\n\t\t\t\tlet $this = $(this);\n\t\t\t\tlet id = $this.data('id');\n\t\t\t\t$wg.find('.dropdown-item').removeClass('active');\n\t\t\t\t$this.addClass('active');\n\t\t\t\t$wg.find('.dropdown-toggle').text($this.text());\n\t\t\t\ttabItems.find(`[data-id=${id}]`).trigger('click');\n\t\t\t});\n\n\t\t\t$wg.find('.tabItem-tabContent').wrap('<div class=\"container\"></div>');\n\n\t\t\tinitTopPosition = tabsTitles.offset().top;\n\n\t\t\t// scroll stuff\n\t\t\t$(window).on('scroll', function() {\n\t\t\t\tlet $activeTab = $wg.find('.tabItem-tabTitle.is-active').closest('.tabItem');\n\t\t\t\tlet tabsTitlesReachedScroll = $(window).scrollTop() + ((header.length > 0) ? header.outerHeight() : 0) > initTopPosition;\n\n\t\t\t\tif (tabsTitlesReachedScroll && !utils.isElementOutViewport($wg)) {\n\t\t\t\t\t$('body').css({\n\t\t\t\t\t\t'overflow-x': 'visible',\n\t\t\t\t\t});\n\n\t\t\t\t\ttabsTitles.addClass('is-sticky');\n\n\t\t\t\t\ttabsTitles.css({\n\t\t\t\t\t\t'top': ((header.length > 0) ? header.outerHeight() : 0),\n\t\t\t\t\t});\n\n\t\t\t\t\t$activeTab.css({\n\t\t\t\t\t\t'padding-top': tabsTitles.outerHeight(),\n\t\t\t\t\t\t'padding-bottom': ((header.length > 0) ? header.outerHeight() : 0),\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$('body').css({\n\t\t\t\t\t\t'overflow-x': '',\n\t\t\t\t\t});\n\n\t\t\t\t\ttabsTitles.removeClass('is-sticky');\n\n\t\t\t\t\ttabsTitles.css({\n\t\t\t\t\t\t'top': '',\n\t\t\t\t\t});\n\n\t\t\t\t\t// remove all top paddings\n\t\t\t\t\ttabItems.css({\n\t\t\t\t\t\t'padding-top': '',\n\t\t\t\t\t\t'padding-bottom': '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$(window).trigger('scroll');\n\t\t}\n\n\t\t// get clicks on titles [below the breakpoint]\n\t\ttabItems.on('click', `${TI}tabTitle`, function(e) {\n\t\t\te.stopPropagation();\n\n\t\t\tlet parentItem = $(this).closest(`${TIB}`);\n\t\t\tlet hashValue = parentItem.data('id').toLowerCase();\n\t\t\twindow.location.hash = hashValue;\n\t\t\tlet id = $(this).attr('data-id');\n\n\t\t\t// if ($(this).hasClass('is-active')) {\n\t\t\t// \tparentItem.find(`${TI}tabContent`).hide(0);\n\t\t\t// \tparentItem.find(`${TI}tabTitle`).removeClass('is-active');\n\t\t\t// \t$wg.find(`#${id}`).removeClass('is-active');\n\t\t\t// \treturn;\n\t\t\t// }\n\n\t\t\ttabItems.not(parentItem).find(`${TI}tabContent`).hide(0);\n\t\t\ttabItems.not(parentItem).find(`${TI}tabTitle`).removeClass('is-active');\n\t\t\t// show current item\n\t\t\tparentItem.find(`${TI}tabContent`).fadeIn('fast', function() {\n\t\t\t\t$(window).trigger('resize');\n\t\t\t\tif (tabsTitles.hasClass('is-sticky')) {\n\t\t\t\t\t$('html, body').animate({\n\t\t\t\t\t\tscrollTop: $wg.offset().top + $wg.find(WG + 'title').outerHeight() + (This.isBelowMd() ? 5 : 42),\n\t\t\t\t\t}, 500, function() {\n\t\t\t\t\t\t$(window).trigger('scroll');\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$('html, body').animate({\n\t\t\t\t\t\tscrollTop: $wg.offset().top,\n\t\t\t\t\t}, 500, function() {\n\t\t\t\t\t\t$(window).trigger('scroll');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// setPosition\n\t\t\t\tparentItem.find('.slick-initialized').slick('setPosition');\n\t\t\t});\n\t\t\tparentItem.find(`${TI}tabTitle`).addClass('is-active');\n\t\t\t$wg.find(WG + 'tabTrigger').not(`#${id}`).removeClass('is-active');\n\t\t\t$wg.find(`#${id}`).addClass('is-active');\n\n\t\t\t// remove all top paddings\n\t\t\ttabItems.css({\n\t\t\t\t'padding-top': '',\n\t\t\t\t'padding-bottom': '',\n\t\t\t});\n\t\t});\n\n\t\t// get clicks on title [above the breakpoint]\n\t\t$wg.on('click', `${WG}tabTrigger`, function() {\n\t\t\tif ($(this).hasClass('is-active')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet id = $(this).attr('id');\n\t\t\ttabItems.find(`[data-id=${id}]`).trigger('click');\n\t\t});\n\n\t\t$(window).on('scroll resize', function() {\n\t\t\tif (!tabsTitles.hasClass('is-sticky')) {\n\t\t\t\tinitTopPosition = tabsTitles.offset().top;\n\t\t\t}\n\t\t});\n\n\t\tlet timer;\n\t\twindow.onresize = function() {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = setTimeout(function() {\n\t\t\t\tinitTopPosition = tabsTitles.offset().top;\n\t\t\t\t$(window).trigger('scroll');\n\t\t\t}, 100);\n\t\t};\n\n\t\t// reinit sliders trial\n\t\tsetTimeout(() => {\n\t\t\t$(window).trigger('resize');\n\t\t}, 500);\n\t}\n\n\tgenerateId() {\n\t\treturn Math.floor(100000 + Math.random() * 900000);\n\t}\n\n\tisBelowMd() {\n\t\treturn window.innerWidth < 768;\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'CollageImageGridItemBlock';\nconst CLS = 'collageImageGridItemBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/collageImageGridItemBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class CollageImageGridItemBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the\n\t\t// loadCollageImageGridItemBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setCollageImageGridItemBlock();\n\t}\n\n\tsetCollageImageGridItemBlock() {\n\t\t// Add Some logic here\n\t\tconst $wg = $(this.$el);\n\n\t\t$wg.on('mouseenter', function(e) {\n\t\t\t$wg.addClass(CLS + '-item--opened');\n\t\t});\n\n\t\t$wg.on('mouseleave', function(e) {\n\t\t\t$wg.removeClass(CLS + '-item--opened');\n\t\t});\n\n\t\t$wg.on('click', function(e) {\n\t\t\t$wg.toggleClass(CLS + '-item--opened');\n\t\t});\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'ShopFeaturedGridItemBlock';\nconst CLS = 'shopFeaturedGridItemBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/shopFeaturedGridItemBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class ShopFeaturedGridItemBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the\n\t\t// loadShopFeaturedGridItemBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setShopFeaturedGridItemBlock();\n\t}\n\n\tsetShopFeaturedGridItemBlock() {\n\t\t// Add Some logic here\n\t\tconst $wg = $(this.$el);\n\n\t\t$wg.on('mouseenter', function(e) {\n\t\t\t$wg.addClass(CLS + '-item--opened');\n\t\t});\n\n\t\t$wg.on('mouseleave', function(e) {\n\t\t\t$wg.removeClass(CLS + '-item--opened');\n\t\t});\n\n\t\t$wg.on('click', function(e) {\n\t\t\t$wg.toggleClass(CLS + '-item--opened');\n\t\t});\n\t}\n\n\t// Add more functions like on above here\n}\n","import utils from '../utils';\n\nconst NS = 'ShopProductBlock';\nconst CLS = 'shopProductBlock';\n\nexport class ShopProductBlock {\n\tconstructor(element) {\n\t\t// $el is the widget node return by the loadShopProductBlock function\n\t\tthis.$el = $(element);\n\t\tthis.$title = this.$el.find(`.${CLS}-title`);\n\t\tthis.$subtitle = this.$el.find(`.${CLS}-subtitle`);\n\t\tthis.$productUrl = this.$el.find(`.${CLS}-url`);\n\t\tthis.$shopUrl = this.$el.find(`.${CLS}-cover-shopnow`);\n\t\tthis.$bgImg = this.$el.find(`.${CLS}-background`);\n\t\tthis.$certifiedIcon = this.$el.find(`.${CLS}-certifiedIcon`);\n\n\t\tthis.id = this.$el.data('id');\n\t\tthis.prodApi = this.$el.data('prodApi');\n\t\tthis.getValues();\n\t}\n\tgetValues() {\n\t\tconst options = utils.getApiDefaultOptions();\n\t\tfetch(`${this.prodApi}?id=${encodeURIComponent(this.id)}`, options).then((response) => {\n\t\t\treturn response.json();\n\t\t}).then((json) => {\n\t\t\tthis.featureProd = json;\n\t\t\t//replace the data into the corresponding location\n\t\t\tthis.$bgImg.css(\"background-image\", \"url(\" + this.featureProd.image + \")\");\n\t\t\tthis.$productUrl.attr(\"href\", this.featureProd.url);\n\t\t\tthis.$shopUrl.attr(\"href\", this.featureProd.url);\n\t\t\tif (this.featureProd.designers && this.featureProd.designers.length) {\n\t\t\t\tthis.$title.html(this.featureProd.designers[0]);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.$title.html(\" \")\n\t\t\t}\n\t\t\tthis.$subtitle.html(this.featureProd.title);\n\t\t\t// check if this product is woolmark certified\n\t\t\tif(this.featureProd.isCertified){\n\t\t\t\tthis.$certifiedIcon.css(\"display\", \"block\");\n\t\t\t}\n\t\t});\n\t}\n}\n","import Handlebars from 'handlebars';\nimport { ShopListingProductBlock } from './shopListingProductBlock';\n\nconst NS = 'ShopListingByCategoryBlock';\nconst CLS = 'shopListingByCategoryBlock';\n\nexport class ShopListingByCategoryBlock {\n\tconstructor(element) {\n\t\t// $el is the widget node return by the loadShopProductBlock function\n\t\tthis.$el = $(element);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$shopProducts = this.$el.find(`.${CLS}-products`);\n\t\tthis.$loadMoreBtn = this.$el.find(`.${CLS}-loadMore-btn`);\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\n\t\tthis.getCategory = this.$el.data('category');\n\t\tthis.getProductsApi = this.$el.data('productsApi');\n\t\tthis.getPageSize = this.$el.data('pageSize');\n\t\tthis.getLoadMore = this.$el.data('loadMore');\n\t\tthis.loadingProducts = false;\n\t\tthis.allProductsLoaded = false;\n\t\tthis.pageSize = this.getPageSize;\n\t\tthis.pageNumber = 1;\n\t\tthis.$productBlock = [];\n\t\tthis.initParams();\n\t\tif(this.getLoadMore == \"True\"){\n\t\t\tthis.handleScrollLoading(this.getLoadMore);\n\t\t}\n\t\tthis.getItems(false);\n\t}\n\n\tinitParams(){\n\t\t\tthis.params = {\n\t\t\t\t// siteId: this.siteId,\n\t\t\t\tcategory: this.getCategory,\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t};\n\t}\n\n\tgetShopListingProductBlockTemplate() {\n\t\tlet shopListingProductBlock = require('../../partials/widgets/shopListingProductBlock.hbs');\n\t\tHandlebars.registerPartial('shopListingProductBlock', shopListingProductBlock);\n\n\t\tlet template = `\n\t\t\t{{> shopListingProductBlock\n\t\t\t\twg=\"shopListingProductBlock\"\n\t\t\t\tns=\"ShopListingProductBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\t// Get items (reload content)\n\tgetItems(loadMoreProducts) {\n\t\tif (!this.loadingProducts && !this.allProductsLoaded) {\n\t\t\tthis.loadingProducts = true;\n\n\t\t\tlet url = this.getProductsApi;\n\n\t\t\tif (loadMoreProducts) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\turl += `?${$.param(this.params)}`;\n\t\t\t}\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\tif (!loadMoreProducts) {\n\t\t\t\t\t\tthis.$shopProducts.empty();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\tlet $column = this.$shopProducts.append(this.getShopListingProductBlockTemplate()(item));\n\t\t\t\t\t\t\tnew ShopListingProductBlock($column.find(`[data-wg=\"ShopListingProductBlock\"]`).last()[0], item);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreProducts) {\n\t\t\t\t\t\t\tthis.allProductsLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingProducts = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\thandleScrollLoading() {\n\t\tlet offsetFromBottom = 10;\n\t\tconst This = this;\n\t\t$(document).on('touchmove', onScroll); // for mobile\n\t\tfunction onScroll() {\n\t\t\tif ($(window).scrollTop() + offsetFromBottom > $(document).height() - $(window).height()-400) {\n\t\t\t\tThis.getItems(true);\n\t\t\t}\n\t\t}\n\t\t$(window).scroll(function() {\n\t\t\tlet position = $(window).scrollTop() + offsetFromBottom;\n\t\t\tlet bottom = $(document).height() - $(window).height();\n\n\t\t\tif ( position >= bottom ) {\n\t\t\t This.getItems(true);\n\t\t\t}\n\t\t });\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","import utils from '../utils';\nimport Handlebars from 'handlebars';\nimport { ShopListingProductBlock } from './shopListingProductBlock';\n\nconst NS = 'ShopListingBlock';\nconst CLS = 'shopListingBlock';\n\nexport class ShopListingBlock {\n\tconstructor(element) {\n\t\t// $el is the widget node return by the loadShopProductBlock function\n\t\tthis.$el = $(element);\n\t\tthis.$filterKeys = this.$el.find(`[data-filter-key]`);\n\t\tthis.$filterDropdown = this.$el.find(`.${CLS}-filters-dropdown`);\n\t\tthis.$filterDropdownMenu = this.$el.find(`.${CLS}-filters-dropdown-menu`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$shopProducts = this.$el.find(`.${CLS}-products`);\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\t\tthis.$clearFilterBtn = this.$el.find(`.${CLS}-filterBtnClear`);\n\t\tthis.$certifiedContents = this.$el.find(`.${CLS}-certified-contents`);\n\t\tthis.$cateContents = this.$el.find(`.${CLS}-cate-contents`);\n\t\tthis.$cateContentsTitle = this.$el.find(`.${CLS}-cate-contents-title`);\n\t\tthis.$cateContentsDescription = this.$el.find(`.${CLS}-cate-contents-description`);\n\t\tthis.$cateCertifiedTitle = this.$el.find(`.${CLS}-certified-contents-title`);\n\t\tthis.$cateCertifiedDescription = this.$el.find(`.${CLS}-certified-contents-description`);\n\t\tthis.$typeSelectpick = this.$el.find( `#productType` );\n\n\t\tthis.$keyword = this.$el.find(`.search .${CLS}-searchInput`);\n\n\t\tthis.getProductsApi = this.$el.data('productsApi');\n\t\tthis.getAllTypes = this.$el.find(`.type`).data('allTypes');\n\t\tthis.loadingProducts = false;\n\t\tthis.allProductsLoaded = false;\n\t\tthis.pageSize = 12;\n\t\tthis.pageNumber = 1;\n\t\tthis.$productBlock = [];\n\t\tthis.$productTypes = [];\n\t\tthis.$urlcategoryArr = [];\n\n\t\t//----- Retrive the parameter values from the URL for dropdown menu if URL has default value ------//\n\t\tvar url_string = window.location.href; \n\t\tvar url = new URL(url_string);\n\n\t\tthis.$urlkeyword = url.searchParams.get(\"keyword\");\n\t\tif(this.$urlkeyword){\n\t\t\tif(this.$urlkeyword.length > 0){\n\t\t\t\tthis.$keyword.val(this.$urlkeyword);\n\t\t\t}\n\t\t}\n\t\tthis.$urlcategory = url.searchParams.get(\"category\");\n\n\t\tthis.$urltype = url.searchParams.get(\"type\");\n\n\t\tthis.$isCertified = url.searchParams.get(\"isCertified\");\n\n\n\t\t//----- End for retrive the parameter values from the URL-----//\n\n\t\tthis.initParams();\n\t\t$('.selectpicker').selectpicker('destroy').selectpicker();\n\t\tthis.handleSearchInput();\n\t\tthis.handleFilterClearBtn(this.getAllTypes);\n\t\tthis.handleScrollLoading();\n\t\tthis.getItems(false);\n\t\tthis.initFilterKeys();\n\t\t\n\t}\n\n\tinitParams(clear){\n\t\t// for clear btn - if user clear the filter everthing needs to be empty\n\t\tif(clear){\n\t\t\tthis.params = {\n\t\t\t\t// siteId: this.siteId,\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tkeyword: '',\n\t\t\t\tcategory: '',\n\t\t\t\ttype: '',\n\t\t\t\tisCertified: ''\n\t\t\t};\n\t\t}\n\t\t// for initial parameter values when page loads\n\t\telse{\n\t\t\tthis.params = {\n\t\t\t\t// siteId: this.siteId,\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tkeyword: this.$urlkeyword || '',\n\t\t\t\tcategory: this.$urlcategory || '',\n\t\t\t\ttype: this.$urltype || '',\n\t\t\t\tisCertified: this.$isCertified || ''\n\t\t\t};\n\t\t}\n\t}\n\n\t// individual product template\n\tgetShopListingProductBlockTemplate() {\n\t\tlet shopListingProductBlock = require('../../partials/widgets/shopListingProductBlock.hbs');\n\t\tHandlebars.registerPartial('shopListingProductBlock', shopListingProductBlock);\n\n\t\tlet template = `\n\t\t\t{{> shopListingProductBlock\n\t\t\t\twg=\"shopListingProductBlock\"\n\t\t\t\tns=\"ShopListingProductBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\t// Get items (reload content)\n\tgetItems(loadMoreProducts) {\n\t\t// Check if all the products have been loaded\n\t\tif (!this.loadingProducts && !this.allProductsLoaded) {\n\t\t\tthis.loadingProducts = true;\n\n\t\t\tlet url = this.getProductsApi;\n\t\t\t\n\t\t\tif (loadMoreProducts) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\t// if parameter is not empty, then append to the API url\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\turl += `?${$.param(this.params)}`;\n\t\t\t}\n\t\t\t\n\t\t\t// For display the products category, *but this may not the best practice to code this function.\n\t\t\tif(!this.params.isCertified || this.params.isCertified == \"false\" && !this.params.category){\n\t\t\t\tthis.$cateContents.css(\"display\", \"none\");\n\t\t\t}\n\t\t\t\n\t\t\tif(this.params.category){\n\t\t\t\tlet newCategory=(this.params.category.toLowerCase()).replace( /\\W/g, \"\");\n\t\t\t\tthis.$cateContents.css(\"display\", \"none\");\n\t\t\t\t$(\".\"+newCategory).css(\"display\", \"flex\");\n\t\t\t}\n\t\t\telse{\n\t\t\t\tif(this.params.isCertified ==\"true\"){\n\t\t\t\t\tthis.$cateContents.css(\"display\", \"none\");\n\t\t\t\t\t$(\".woolmarkcertified\").css(\"display\", \"flex\");\n\t\t\t\t}\n\t\t\t}\n\t\t\t// End for display the products category\n\n\t\t\tthis.updateUrl();\n\n\t\t\t// ajax load products data\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\t// Check if this is the new search, if so empty previous products in the products div\n\t\t\t\t\tif (!loadMoreProducts) {\n\t\t\t\t\t\tthis.$shopProducts.empty();\n\t\t\t\t\t}\n\n\t\t\t\t\t//check if has any data from the API, if so, append the data into the product template.\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\tlet $column = this.$shopProducts.append(this.getShopListingProductBlockTemplate()(item));\n\t\t\t\t\t\t\tnew ShopListingProductBlock($column.find(`[data-wg=\"ShopListingProductBlock\"]`).last()[0], item);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreProducts) {\n\t\t\t\t\t\t\tthis.allProductsLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingProducts = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\t\t\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, encodeURIComponent(this.params[key]));\n\t\t});\n\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t\tlet urlParams = new URLSearchParams(uri);\n\n\t\t// get product type parameter from url\n\t\tlet type = urlParams.get('type');\n\t\t// if has type, then display the product type in the dropdown menu\n\t\tif(this.$urltype && this.$urltype.length){\n\t\t\tthis.$typeSelectpick.selectpicker('refresh');\n\t\t}\n\n\t}\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.params['keyword'] = $(event.currentTarget).val().trim();\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allProductsLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Clear button\n\thandleFilterClearBtn(getAllTypes) {\n\t\tthis.$clearFilterBtn.on('click', () => {\n\t\t\tthis.filterTypeByCategory(getAllTypes);\n\t\t\t// set 1 to let initParams know it's coming from clear btn\n\t\t\tthis.initParams(1);\n\t\t\tthis.setPageNumber(1);\n\t\t\tthis.allProductsLoaded = false;\n\t\t\t// Scroll to top\n\t\t\twindow.scrollTo(0, 0);\n\t\t\t$(\".selectpicker\").selectpicker('deselectAll');\n\t\t\t$('#isCertified').selectpicker('val', '');\n\t\t\tthis.$typeSelectpick.selectpicker('val', '');\n\t\t\tthis.$typeSelectpick.selectpicker('refresh');\n\t\t\tthis.getItems(false);\n\t\t\t\n\t\t});\n\t}\n\n\tfilterTypeByCategory(types) {\n\t\tif (!types) {\n\t\t\treturn;\n\t\t}\n\t\tconst typeArr = types.split(\";\");\n\t\t// remove all\n\t\t$( \"#productType .dropdown-item\" ).remove();\n\n\t\tfor(var i = 0; i < typeArr.length; i++){\n\t\t\tthis.$typeSelectpick.append( '<option class=\"shopListingBlock-filters-dropdown-item dropdown-item\" value=\"' + typeArr[i] +'\">' + typeArr[i] + '</option>' );\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\tthis.$typeSelectpick.selectpicker('refresh');\n\t\t}, 1000);\n\n\t\tthis.filterTypeByType();\n\t}\n\n\t// Let product type clickable(update the URL) after selected the category or clear all the filters\n\tfilterTypeByType() {\n\t\tconst $typeFilterKeys = this.$el.find(`[data-filter-key=\"type\"]`);\n\t\t\t$typeFilterKeys.on('change', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tthis.handleFilterClick($element);\n\t\t});\n\t}\n\n\thandleFilterClick($element) {\n\t\tlet filterKey = $element.data('filterKey') || '';\n\t\tlet value = [];\n\t\tvalue.push($element.val());\n\t\tthis.$el.find(`[data-filter-key=\"${filterKey}\"]`).removeClass('active');\n\t\t$element.addClass('active');\n\n\t\tif(!(_.isNil(this.params[filterKey]) && value === '')) {\n\t\t\t// Ensure that the filterKey does not match the current select value\n\t\t\tif(this.params[filterKey] !== value) {\n\t\t\t\tif(_.isNil(value) || value === '') {\n\t\t\t\t\tdelete this.params[filterKey];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.params[filterKey] = value.toString();\n\t\t\t\t}\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allProductsLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t// initialise the filter keys\n\tinitFilterKeys() {\n\n\t\tthis.$filterKeys.on('change', (event) => {\n\t\t\tthis.stringProductTypes = [];\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tlet filterKey = $element.data('filterKey') || '';\n\n\t\t\t// user selected category, then clear product type\n\t\t\tif (filterKey === \"category\") {\n\t\t\t\tthis.$productTypes = $(\"select :selected\").map((i, $element) => $($element).attr(\"data-types\")).toArray();\n\t\t\t\tthis.$productTypes.forEach((element) => this.stringProductTypes.push(element.split(\";\")));\n\t\t\t\tthis.stringProductTypes = this.stringProductTypes.flat();\n\t\t\t\tthis.stringProductTypes = this.stringProductTypes.filter((item,\n\t\t\t\t\tindex) => this.stringProductTypes.indexOf(item) === index);\n\t\t\t\tthis.stringProductTypes = this.stringProductTypes.filter(Boolean).sort();\n\t\t\t\tif(this.stringProductTypes.includes(\"Other\")){\n\t\t\t\t\tconst index = this.stringProductTypes.indexOf(\"Other\");\n\t\t\t\t\tthis.stringProductTypes.splice(index, 1);\n\t\t\t\t\tthis.stringProductTypes.push(\"Other\");\n\t\t\t\t}\n\t\t\t\tthis.stringProductTypes = this.stringProductTypes.join(',').replace(/,/g, ';');\n\t\t\t\tthis.filterTypeByCategory(this.stringProductTypes);\n\t\t\t\tif (this.params[\"type\"]) {\n\t\t\t\t\tdelete this.params[\"type\"];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.handleFilterClick($element);\n\t\t});\n\t\t\n\t\t// check url parameter contains the category.\n\t\tif(this.$urlcategory && this.$urlcategory.length){\n\t\t\tthis.stringProductTypes = [];\n\t\t\tthis.$urlcategoryArr = this.$urlcategory.split(\",\");\n\t\t\t$('#category').selectpicker('val', this.$urlcategoryArr);\n\t\t\tthis.$productTypes = $(\"select :selected\").map((i, $element) => $($element).attr(\"data-types\")).toArray();\n\t\t\tthis.$productTypes.forEach((element) => this.stringProductTypes.push(element.split(\";\")));\n\t\t\tthis.stringProductTypes = this.stringProductTypes.flat();\n\t\t\tthis.stringProductTypes = this.stringProductTypes.filter((item, index) => this.stringProductTypes.indexOf(item) === index);\n\t\t\tthis.stringProductTypes = this.stringProductTypes.filter(Boolean).sort();\n\t\t\t\tif(this.stringProductTypes.includes(\"Other\")){\n\t\t\t\t\tconst index = this.stringProductTypes.indexOf(\"Other\");\n\t\t\t\t\tthis.stringProductTypes.splice(index, 1);\n\t\t\t\t\tthis.stringProductTypes.push(\"Other\");\n\t\t\t\t}\n\t\t\tthis.stringProductTypes = this.stringProductTypes.join(',').replace(/,/g, ';');\n\t\t\tthis.filterTypeByCategory(this.stringProductTypes);\n\t\t}\n\n\t}\n\n\thandleScrollLoading() {\n\t\t// when scroll to buttom before 200px, page will trigger the load more function.\n\t\tlet offsetFromBottom = 200;\n\t\tconst This = this;\n\t\t$(document).on('touchmove', onScroll); // for mobile\n\t\tfunction onScroll() {\n\t\t\tif ($(window).scrollTop() + offsetFromBottom > $(document).height() - $(window).height()-400) {\n\t\t\t\tThis.getItems(true);\n\t\t\t}\n\t\t}\n\t\t$(window).scroll(function() {\n\t\t\tlet position = $(window).scrollTop() + offsetFromBottom;\n\t\t\tlet bottom = $(document).height() - $(window).height();\n\n\t\t\tif ( position >= bottom ) {\n\t\t\t This.getItems(true);\n\t\t\t}\n\t\t });\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","/* eslint-disable max-len */\nimport Player from '@vimeo/player';\nimport utils from '../utils';\n\n// CONSTANTS are all caps.\n// eslint-disable-next-line no-unused-vars\nconst NS = 'ShopVideoBlock';\nconst CLS = 'shopVideoBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/videoBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class ShopVideoBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadVideoBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setShopVideoBlock();\n\t}\n\n\tsetShopVideoBlock() {\n\t\tconst wg = $(this.$el);\n\t\tconst videoType = wg.find('.shopVideoBlock-video').data('videoType');\n\t\tconst videoId = wg.find('.shopVideoBlock-video').data('videoId');\n\t\tconst video = wg.find('.shopVideoBlock-video');\n\t\tconst isPrepCls = 'is-preparing';\n\t\tconst isPlayCls = 'is-playing';\n\t\tlet vimeoPlayer = null;\n\n\t\tconst img = wg.find('.shopVideoBlock-img');\n\t\tconst imgWidth = img.outerWidth();\n\t\tconst imgHeight = img.outerHeight();\n\n\t\tvideo.css({\n\t\t\twidth: imgWidth,\n\t\t\theight: imgHeight,\n\t\t});\n\n\t\t// Popup video after clicking Play button.\n\t\twg.find('.jumpNextSection').on('click', (e) => {\n\t\t\t// For hiding image and overlay.\n\t\t\twg.addClass(isPrepCls);\n\n\t\t\tutils.scrollToEl(wg[0]);\n\n\t\t\t// Is Vimeo video ?\n\t\t\t// Create a hidden Vimeo Player that will be popup later.\n\t\t\t// @ref https://github.com/vimeo/player.js\n\t\t\tif (this.isVimeoLink(videoType)) {\n\t\t\t\tvideo.append('<div data-vimeo-id=\"' + videoId + '\" id=\"vimeoVideo\" />');\n\t\t\t\tvimeoPlayer = new Player('vimeoVideo');\n\t\t\t}\n\n\t\t\t// Is Youtube video ?\n\t\t\t// Append an Iframe\n\t\t\tif (this.isYoutubeLink(videoType)) {\n\t\t\t\tconst embedLink = 'https://www.youtube.com/embed/' + videoId;\n\t\t\t\tvideo.append('<iframe src=\"' + embedLink + '\" allow=\"autoplay\" />');\n\t\t\t}\n\n\t\t\t// Is Youku video ?\n\t\t\t// Append an Iframe\n\t\t\tif (this.isYoukuLink(videoType)) {\n\t\t\t\tconst embedLink = 'https://player.youku.com/embed/' + videoId;\n video.append('<iframe src=\"' + embedLink + '\" allow=\"autoplay\" />');\n\t\t\t}\n\n\t\t\t// Start Vimeo video.\n\t\t\tif (videoType === 'vimeo') vimeoPlayer.play();\n\n\t\t\t// Start Youtube video.\n\t\t\tif (videoType === 'youtube') {\n\t\t\t\tconst src = $('iframe', video).attr('src');\n\t\t\t\t$('iframe', video).attr('src', src + '?autoplay=1&rel=0');\n\t\t\t}\n\n\t\t\t// Start Youku video.\n\t\t\tif (videoType === 'youku') {\n\t\t\t\tconst src = $('iframe', video).attr('src');\n\t\t\t\t$('iframe', video).attr('src', src + '?autoplay=1&rel=0&showinfo=0');\n\t\t\t}\n\n\t\t\tconst wgWidth = wg.outerWidth();\n\t\t\tconst videoWidth = wgWidth;\n\t\t\tconst videoHeight = wgWidth / 16 * 9; // Video ratio is 16:9\n\n\t\t\t// prevent video jumping\n\t\t\twg.find(WG + 'img').css('height', videoHeight);\n\t\t\tvideo.show().animate({\n\t\t\t\twidth: videoWidth - 100,\n\t\t\t\theight: videoHeight,\n\t\t\t}, 1000, 'linear');\n\t\t\tsetTimeout(() => {\n\t\t\t\twg.removeClass(isPrepCls);\n\t\t\t\twg.addClass(isPlayCls);\n\t\t\t}, 1000);\n\t\t});\n\t}\n\n\tisVimeoLink(videoType) {\n\t\treturn videoType === 'vimeo';\n\t}\n\n\tisYoutubeLink(videoType) {\n\t\treturn videoType === 'youtube';\n\t}\n\n\tisYoukuLink(videoType) {\n\t\treturn videoType === 'youku';\n\t}\n}\n","import utils from '../utils';\nimport Handlebars from 'handlebars';\nimport { ProfileListingItemBlock } from './profileListingItemBlock';\n\nconst NS = 'ProfileListingBlock';\nconst CLS = 'profileListingBlock';\n\nexport class ProfileListingBlock {\n\tconstructor(element) {\n\t\t// $el is the widget node return by the loadShopProductBlock function\n\t\tthis.$el = $(element);\n\t\tthis.$filterKeys = this.$el.find(`[data-filter-key]`);\n\t\tthis.$filterDropdown = this.$el.find(`.${CLS}-filters-dropdown`);\n\t\tthis.$filterDropdownMenu = this.$el.find(`.${CLS}-filters-dropdown-menu`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$profileLists = this.$el.find(`.${CLS}-profiles`);\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMoreBtn = this.$el.find(`#loadMoreBtn`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\t\tthis.$clearFilterBtn = this.$el.find(`.${CLS}-filterBtnClear`);\n\t\tthis.$cateContents = this.$el.find(`.${CLS}-cate-contents`);\n\t\tthis.$cateContentsTitle = this.$el.find(`.${CLS}-cate-contents-title`);\n\t\tthis.$cateContentsDescription = this.$el.find(`.${CLS}-cate-contents-description`);\n\t\tthis.$cateCertifiedTitle = this.$el.find(`.${CLS}-certified-contents-title`);\n\t\tthis.$cateCertifiedDescription = this.$el.find(`.${CLS}-certified-contents-description`);\n\n\t\tthis.getProfilesApi = this.$el.data('profilesApi');\n\t\tthis.getPageId = this.$el.data('pageId');\n\t\tthis.loadingProfiles = false;\n\t\tthis.allProfilesLoaded = false;\n\t\tthis.pageSize = this.$el.data('pageSize');\n\t\tthis.pageNumber = 1;\n\n\t\t//----- Retrive the parameter values from the URL for dropdown menu if URL has default value ------//\n\t\tvar url_string = window.location.href; \n\t\tvar url = new URL(url_string);\n\n\t\tthis.$urlkeyword = url.searchParams.get(\"keyword\");\n\t\tif(this.$urlkeyword){\n\t\t\tif(this.$urlkeyword.length > 0){\n\t\t\t\tthis.$keyword.val(this.$urlkeyword);\n\t\t\t}\n\t\t}\n\t\tthis.$urllocation = url.searchParams.get(\"location\");\n\t\tthis.$urlsustainability = url.searchParams.get(\"sustainability\");\n\t\tthis.$urlcertification = url.searchParams.get(\"certification\");\n\t\tthis.$urlmicrons = url.searchParams.get(\"microns\");\n\t\t//----- End for retrive the parameter values from the URL-----//\n\n\t\tthis.initParams();\n\t\tthis.handleSearchInput();\n\t\tthis.handleFilterClearBtn();\n\t\tthis.handleScrollLoading();\n\t\tthis.getItems(false);\n\t\tthis.initFilterKeys();\n\t\t\n\t}\n\n\tinitParams(clear){\n\t\t// for clear btn - if user clear the filter everthing needs to be empty\n\t\tif(clear){\n\t\t\tthis.params = {\n\t\t\t\t// siteId: this.siteId,\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tpageId: this.getPageId,\n\t\t\t\tkeyword: '',\n\t\t\t\tlocation: '',\n\t\t\t\tsustainability: '',\n\t\t\t\tcertification: '',\n\t\t\t\tmicrons: ''\n\t\t\t};\n\t\t}\n\t\t// for initial parameter values when page loads\n\t\telse{\n\t\t\tthis.params = {\n\t\t\t\t// siteId: this.siteId,\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tpageId: this.getPageId,\n\t\t\t\tkeyword: this.$urlkeyword || '',\n\t\t\t\tlocation: this.$urllocation || '',\n\t\t\t\tsustainability: this.$urlsustainability|| '',\n\t\t\t\tcertification: this.$urlcertification|| '',\n\t\t\t\tmicrons: this.$urlmicrons || ''\n\t\t\t};\n\t\t}\n\t}\n\n\t// individual product template\n\tgetProfileListingItemBlockTemplate() {\n\t\tlet profileListingItemBlock = require('../../partials/widgets/profileListingItemBlock.hbs');\n\t\tHandlebars.registerPartial('profileListingItemBlock', profileListingItemBlock);\n\n\t\tlet template = `\n\t\t\t{{> profileListingItemBlock\n\t\t\t\twg=\"profileListingItemBlock\"\n\t\t\t\tns=\"ProfileListingItemBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\t// Get items (reload content)\n\tgetItems(loadMoreProfiles) {\n\t\t// Check if all the products have been loaded\n\t\tif (!this.loadingProfiles && !this.allProfilesLoaded) {\n\t\t\tthis.loadingProfiles = true;\n\n\t\t\tlet url = this.getProfilesApi;\n\t\t\t\n\t\t\tif (loadMoreProfiles) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\t// if parameter is not empty, then append to the API url\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\turl += `?${$.param(this.params)}`;\n\t\t\t}\n\n\t\t\t// End for display the products category\n\n\t\t\tthis.updateUrl();\n\n\t\t\t// ajax load products data\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\t// Check if this is the new search, if so empty previous products in the products div\n\t\t\t\t\tif (!loadMoreProfiles) {\n\t\t\t\t\t\tthis.$profileLists.empty();\n\t\t\t\t\t}\n\t\t\t\t\t//check if has any data from the API, if so, append the data into the product template.\n\t\t\t\t\tif (data.results.length > 0) {\n\t\t\t\t\t\tdata.results.forEach((item) => {\n\t\t\t\t\t\t\tlet $column = this.$profileLists.append(this.getProfileListingItemBlockTemplate()(item));\n\t\t\t\t\t\t\tnew ProfileListingItemBlock($column.find(`[data-wg=\"ProfileListingItemBlock\"]`).last()[0], item);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreProfiles) {\n\t\t\t\t\t\t\tthis.allProfilesLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (data.results.length < 13) {\n\t\t\t\t\t\tthis.$loadMoreBtn.css(\"display\", \"none\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingProfiles = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\t\t\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, encodeURIComponent(this.params[key]));\n\t\t});\n\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t\tlet urlParams = new URLSearchParams(uri);\n\n\t}\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.params['keyword'] = $(event.currentTarget).val().trim();\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allProfilesLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Clear button\n\thandleFilterClearBtn() {\n\t\tthis.$clearFilterBtn.on('click', () => {\n\t\t\t// set 1 to let initParams know it's coming from clear btn\n\t\t\tthis.initParams(1);\n\t\t\tthis.setPageNumber(1);\n\t\t\tthis.allProfilesLoaded = false;\n\t\t\t// Scroll to top\n\t\t\twindow.scrollTo(0, 0);\n\t\t\tthis.getItems(false);\n\t\t\t$(\".selectpicker\").selectpicker('deselectAll');\n\t\t\tthis.$searchInp.val('');\n\t\t});\n\t}\n\n\thandleFilterClick($element) {\n\t\tlet filterKey = $element.data('filterKey') || '';\n\t\tlet value = [];\n\t\tvalue.push($element.val());\n\t\tthis.$el.find(`[data-filter-key=\"${filterKey}\"]`).removeClass('active');\n\t\t$element.addClass('active');\n\n\t\tif(!(_.isNil(this.params[filterKey]) && value === '')) {\n\t\t\t// Ensure that the filterKey does not match the current select value\n\t\t\tif(this.params[filterKey] !== value) {\n\t\t\t\tif(_.isNil(value) || value === '') {\n\t\t\t\t\tdelete this.params[filterKey];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.params[filterKey] = value.toString();\n\t\t\t\t}\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allProfilesLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t// initialise the filter keys\n\tinitFilterKeys() {\n\t\tthis.$filterKeys.on('change', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tthis.handleFilterClick($element);\n\t\t});\n\n\t}\n\n\thandleScrollLoading() {\n\n\t\t// when scroll to buttom before 200px, page will trigger the load more function.\n\t\tlet offsetFromBottom = 200;\n\t\tconst This = this;\n\t\tthis.$loadMoreBtn.on('click', (event) => {\n\t\t\tThis.getItems(true);\n\t\t});\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","import utils from '../utils';\nimport Handlebars from 'handlebars';\nimport { SupplierListingItemBlock } from './supplierListingItemBlock';\nimport { ifCond } from '../../../handlebarsHelpers';\n\nconst NS = 'SupplierListingBlock';\nconst CLS = 'supplierListingBlock';\n\nexport class SupplierListingBlock {\n\tconstructor(element) {\n\t\t// $el is the widget node return by the loadShopProductBlock function\n\t\tthis.$el = $(element);\n\t\tthis.$filterKeys = this.$el.find(`[data-filter-key]`);\n\t\tthis.$filterDropdown = this.$el.find(`.${CLS}-filters-dropdown`);\n\t\tthis.$filterDropdownMenu = this.$el.find(`.${CLS}-filters-dropdown-menu`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$supplierLists = this.$el.find(`.${CLS}-suppliers`);\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMoreBtn = this.$el.find(`#loadMoreBtn`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\t\tthis.$clearFilterBtn = this.$el.find(`.${CLS}-filterBtnClear`);\n\t\tthis.$cateContents = this.$el.find(`.${CLS}-cate-contents`);\n\t\tthis.$cateContentsTitle = this.$el.find(`.${CLS}-cate-contents-title`);\n\t\tthis.$cateContentsDescription = this.$el.find(`.${CLS}-cate-contents-description`);\n\t\tthis.$cateCertifiedTitle = this.$el.find(`.${CLS}-certified-contents-title`);\n\t\tthis.$cateCertifiedDescription = this.$el.find(`.${CLS}-certified-contents-description`);\n\t\tthis.$searchBar = this.$el.find(`.${CLS}-searchBar`);\n\t\tthis.$searchBarIcon = this.$el.find(`.${CLS}-searchBar-icon`);\n\t\tthis.$faBars = this.$el.find(`.fa-bars`);\n\t\tthis.$faTimes = this.$el.find(`.fa-times`);\n\t\tthis.$countries = this.$el.find(`#countries`);\n\t\tthis.$types = this.$el.find(`#types`);\n\t\tthis.$sustainabilities = this.$el.find(`#sustainabilities`);\n\n\t\tthis.$searchBarFilters = this.$el.find(`.${CLS}-searchBar-refined-filters`);\n\n\t\tthis.getSuppliersApi = this.$el.data('suppliersApi');\n\t\tthis.loadingSuppliers = false;\n\t\tthis.allSuppliersLoaded = false;\n\t\tthis.pageSize = this.$el.data('pageSize');\n\t\tthis.pageNumber = 1;\n\t\t//----- Retrive the parameter values from the URL for dropdown menu if URL has default value ------//\n\t\tvar url_string = window.location.href; \n\t\tvar url = new URL(url_string);\n\n\t\tvar offset = this.$searchBar.offset();\n\n\t\twindow.onscroll = ()=> {\n\t\t\tif (window.scrollY > offset.top-60) {\n\t\t\t\tthis.$searchBar.addClass(\"sticky\");\n\t\t\t\tthis.$supplierLists.css(\"margin-top\", \"100px\");\n\t\t\t} else if(window.scrollY < offset.top+60) {\n\t\t\t\tthis.$searchBar.removeClass(\"sticky\");\n\t\t\t\tthis.$supplierLists.css(\"margin-top\", \"0px\");\n\t\t\t}\n\t\t}\n\n\t\tthis.$urlkeyword = url.searchParams.get(\"keyword\");\n\t\tif(this.$urlkeyword != null && this.$urlkeyword.length > 0){\n\t\t\tthis.$searchInp.val(this.$urlkeyword);\n\t\t}\n\t\tthis.$urlcountries = url.searchParams.get(\"countries\");\n\t\tthis.$urlsustainabilities = url.searchParams.get(\"sustainabilities\");\n\t\tthis.$urltypes = url.searchParams.get(\"types\");\n\n\t\tthis.isFilterPopulated = false;\n\t\t//----- End for retrive the parameter values from the URL-----//\n\n\t\tthis.initParams();\n\t\t$('.selectpicker').selectpicker('destroy').selectpicker();\n\t\tthis.getItems(false);\n\t\tthis.handleSearchInput();\n\t\tthis.handleFilterClearBtn();\n\t\tthis.handleScrollLoading();\n\t\tthis.initFilterKeys();\n\t}\n\n\tinitParams(clear){\n\t\t// for clear btn - if user clear the filter everthing needs to be empty\n\t\tif(clear){\n\t\t\tthis.params = {\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tkeyword: '',\n\t\t\t\tcountries: '',\n\t\t\t\ttypes: '',\n\t\t\t\tsustainabilities: '',\n\t\t\t};\n\t\t}\n\t\t// for initial parameter values when page loads\n\t\telse{\n\t\t\tthis.params = {\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tkeyword: this.$urlkeyword || '',\n\t\t\t\tcountries: this.$urlcountries || '',\n\t\t\t\ttypes: this.$urltypes || '',\n\t\t\t\tsustainabilities: this.$urlsustainabilities|| '',\n\t\t\t};\n\t\t}\n\t}\n\n\t// individual product template\n\tgetSupplierListingItemBlockTemplate() {\n\t\tlet supplierListingItemBlock = require('../../partials/widgets/supplierListingItemBlock.hbs');\n\t\tHandlebars.registerPartial('supplierListingItemBlock', supplierListingItemBlock);\n\n\t\tlet template = `\n\t\t\t{{> supplierListingItemBlock\n\t\t\t\twg=\"supplierListingItemBlock\"\n\t\t\t\tns=\"SupplierListingItemBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\tHandlebars.registerHelper('ifCond', ifCond);\n\t\treturn Handlebars.template(precompiled);\n\n\t}\n\n\t// Get items (reload content)\n\tgetItems(loadMoreSuppliers) {\n\t\t// Check if all the products have been loaded\n\t\tif (!this.loadingSuppliers && !this.allSuppliersLoaded) {\n\t\t\tthis.loadingSuppliers = true;\n\n\t\t\tlet url = this.getSuppliersApi;\n\n\t\t\tif (loadMoreSuppliers) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\t// if parameter is not empty, then append to the API url\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\turl += `?${$.param(this.params)}`;\n\t\t\t}\n\t\t\t\n\t\t\t// End for display the products category\n\n\t\t\tthis.updateUrl();\n\t\t\t// ajax load products data\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tif(!this.isFilterPopulated){\n\t\t\t\t\t\tif(this.$urlcountries !== null){\n\t\t\t\t\t\t\tdata.filters.countries.forEach((item) => {\n\t\t\t\t\t\t\t\tif(this.$urlcountries.includes(item)){\n\t\t\t\t\t\t\t\t\tthis.$countries.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\tthis.$countries.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tdata.filters.countries.forEach((item) => {\n\t\t\t\t\t\t\t\tthis.$countries.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.$urltypes !== null){\n\t\t\t\t\t\t\tdata.filters.types.forEach((item) => {\n\t\t\t\t\t\t\t\tif(this.$urltypes.includes(item)){\n\t\t\t\t\t\t\t\t\tthis.$types.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\tthis.$types.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tdata.filters.types.forEach((item) => {\n\t\t\t\t\t\t\t\tthis.$types.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.$urlsustainabilities !== null){\n\t\t\t\t\t\t\tdata.filters.sustainabilities.forEach((item) => {\n\t\t\t\t\t\t\t\tif(this.$urlsustainabilities.includes(item)){\n\t\t\t\t\t\t\t\t\tthis.$sustainabilities.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\tthis.$sustainabilities.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tdata.filters.sustainabilities.forEach((item) => {\n\t\t\t\t\t\t\t\tthis.$sustainabilities.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.isFilterPopulated = true;\n\t\t\t\t\t\tthis.$countries.selectpicker('refresh');\n\t\t\t\t\t\tthis.$types.selectpicker('refresh');\n\t\t\t\t\t\tthis.$sustainabilities.selectpicker('refresh');\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\t\t\t\t\t// Check if this is the new search, if so empty previous products in the products div\n\t\t\t\t\tif (!loadMoreSuppliers) {\n\t\t\t\t\t\tthis.$supplierLists.empty();\n\t\t\t\t\t}\n\t\t\t\t\t//check if has any data from the API, if so, append the data into the product template.\n\t\t\t\t\tif (data.suppliers.length > 0) {\n\t\t\t\t\t\tdata.suppliers.forEach((item) => {\n\t\t\t\t\t\t\tif(item.website == null){\n\t\t\t\t\t\t\t\tvar url = \"\";\n\t\t\t\t\t\t\t\titem.website = \"\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\tvar url = item.website.substring(8);\n\t\t\t\t\t\t\t\tif(url.substr(url.length-1) === \"/\"){\n\t\t\t\t\t\t\t\t\tvar url = url.slice(0, -1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar newitem = {...item, url};\n\t\t\t\t\t\t\tlet $column = this.$supplierLists.append(this.getSupplierListingItemBlockTemplate()(newitem));\n\t\t\t\t\t\t\tnew SupplierListingItemBlock($column.find(`[data-wg=\"SupplierListingItemBlock\"]`).last()[0], newitem);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreSuppliers) {\n\t\t\t\t\t\t\tthis.allSuppliersLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$loadMoreBtn.css(\"display\", \"none\");\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data.suppliers.length < this.pageSize) {\n\t\t\t\t\t\tthis.$loadMoreBtn.css(\"display\", \"none\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingSuppliers = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, encodeURIComponent(this.params[key]));\n\t\t});\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t\tlet urlParams = new URLSearchParams(uri);\n\n\t}\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.params['keyword'] = $(event.currentTarget).val().trim();\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSuppliersLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Clear button\n\thandleFilterClearBtn() {\n\t\tthis.$clearFilterBtn.on('click', () => {\n\t\t\t// set 1 to let initParams know it's coming from clear btn\n\t\t\tthis.initParams(1);\n\t\t\tthis.setPageNumber(1);\n\t\t\tthis.allSuppliersLoaded = false;\n\t\t\t// Scroll to top\n\t\t\twindow.scrollTo(0, 0);\n\t\t\tthis.$countries.selectpicker('val', '');\n\t\t\tthis.$types.selectpicker('val', '');\n\t\t\tthis.$sustainabilities.selectpicker('val', '');\n\t\t\t$(\".selectpicker\").selectpicker('deselectAll');\n\t\t\tthis.getItems(false);\n\t\t\tthis.$searchInp.val('');\n\t\t});\n\t}\n\n\thandleFilterClick($element) {\n\t\tlet filterKey = $element.data('filterKey') || '';\n\t\tlet value = [];\n\t\tvalue.push($element.val());\n\t\tthis.$el.find(`[data-filter-key=\"${filterKey}\"]`).removeClass('active');\n\t\t$element.addClass('active');\n\n\t\tif(!(_.isNil(this.params[filterKey]) && value === '')) {\n\t\t\t// Ensure that the filterKey does not match the current select value\n\t\t\tif(this.params[filterKey] !== value) {\n\t\t\t\tif(_.isNil(value) || value === '') {\n\t\t\t\t\tdelete this.params[filterKey];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.params[filterKey] = value.toString();\n\t\t\t\t}\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSuppliersLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t// initialise the filter keys\n\tinitFilterKeys() {\n\t\tthis.$filterKeys.on('change', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tthis.handleFilterClick($element);\n\t\t});\n\n\t}\n\n\thandleScrollLoading() {\n\n\t\t// when scroll to buttom before 200px, page will trigger the load more function.\n\t\tlet offsetFromBottom = 200;\n\t\tconst This = this;\n\t\tthis.$loadMoreBtn.on('click', (event) => {\n\t\t\tThis.getItems(true);\n\t\t});\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","import utils from '../utils';\nimport Handlebars from 'handlebars';\nimport { SourcingGuideItemBlock } from './sourcingGuideItemBlock';\nimport { ifCond } from '../../../handlebarsHelpers';\n\nconst NS = 'SourcingGuideBlock';\nconst CLS = 'sourcingGuideBlock';\n\nexport class SourcingGuideBlock {\n\tconstructor(element) {\n\t\tthis.$el = $(element);\n\t\tthis.$filterKeys = this.$el.find(`[data-filter-key]`);\n\t\tthis.$filterDropdown = this.$el.find(`.${CLS}-filters-dropdown`);\n\t\tthis.$filterDropdownMenu = this.$el.find(`.${CLS}-filters-dropdown-menu`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$sourcingGuides = this.$el.find(`.${CLS}-sourcings`);\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMoreBtn = this.$el.find(`#loadMoreBtn`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\t\tthis.$clearFilterBtn = this.$el.find(`.${CLS}-filterBtnClear`);\n\t\tthis.$cateContents = this.$el.find(`.${CLS}-cate-contents`);\n\t\tthis.$cateContentsTitle = this.$el.find(`.${CLS}-cate-contents-title`);\n\t\tthis.$cateContentsDescription = this.$el.find(`.${CLS}-cate-contents-description`);\n\t\tthis.$cateCertifiedTitle = this.$el.find(`.${CLS}-certified-contents-title`);\n\t\tthis.$cateCertifiedDescription = this.$el.find(`.${CLS}-certified-contents-description`);\n\t\tthis.$searchBar = this.$el.find(`.${CLS}-searchBar`);\n\t\tthis.$searchBarIcon = this.$el.find(`.${CLS}-searchBar-icon`);\n\t\tthis.$faBars = this.$el.find(`.fa-bars`);\n\t\tthis.$faTimes = this.$el.find(`.fa-times`);\n\t\tthis.$locations = this.$el.find(`#locations`);\n\t\tthis.$types = this.$el.find(`#types`);\n\n\t\tthis.$searchBarFilters = this.$el.find(`.${CLS}-searchBar-refined-filters`);\n\n\t\tthis.getSourcingApi = this.$el.data('sourcingApi');\n\t\tthis.loadingSourcing = false;\n\t\tthis.allSourcingsLoaded = false;\n\t\tthis.pageSize = this.$el.data('pageSize');\n\t\tthis.pageNumber = 1;\n\t\t//----- Retrive the parameter values from the URL for dropdown menu if URL has default value ------//\n\t\tvar url_string = window.location.href; \n\t\tvar url = new URL(url_string);\n\n\t\tvar offset = this.$searchBar.offset();\n\n\t\twindow.onscroll = ()=> {\n\t\t\tif (window.scrollY > offset.top-60) {\n\t\t\t\tthis.$searchBar.addClass(\"sticky\");\n\t\t\t\tthis.$sourcingGuides.css(\"margin-top\", \"100px\");\n\t\t\t} else if(window.scrollY < offset.top+60) {\n\t\t\t\tthis.$searchBar.removeClass(\"sticky\");\n\t\t\t\tthis.$sourcingGuides.css(\"margin-top\", \"0px\");\n\t\t\t}\n\t\t}\n\n\t\tthis.$urlkeyword = url.searchParams.get(\"keyword\");\n\t\tif(this.$urlkeyword != null && this.$urlkeyword.length > 0){\n\t\t\tthis.$searchInp.val(this.$urlkeyword);\n\t\t}\n\t\tthis.$urllocations = url.searchParams.get(\"locations\");\n\t\tthis.$urltypes = url.searchParams.get(\"types\");\n\n\t\tthis.isFilterPopulated = false;\n\t\t//----- End for retrive the parameter values from the URL-----//\n\n\t\tthis.initParams();\n\t\t$('.selectpicker').selectpicker('destroy').selectpicker();\n\t\tthis.getItems(false);\n\t\tthis.handleSearchInput();\n\t\tthis.handleFilterClearBtn();\n\t\tthis.handleScrollLoading();\n\t\tthis.initFilterKeys();\n\t}\n\n\tinitParams(clear){\n\t\t// for clear btn - if user clear the filter everthing needs to be empty\n\t\tif(clear){\n\t\t\tthis.params = {\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tkeyword: '',\n\t\t\t\tlocations: '',\n\t\t\t\ttypes: '',\n\t\t\t};\n\t\t}\n\t\t// for initial parameter values when page loads\n\t\telse{\n\t\t\tthis.params = {\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tkeyword: this.$urlkeyword || '',\n\t\t\t\tlocations: this.$urllocations || '',\n\t\t\t\ttypes: this.$urltypes || '',\n\t\t\t};\n\t\t}\n\t}\n\n\t// individual product template\n\tgetSourcingGuideItemBlockTemplate() {\n\t\tlet sourcingGuideItemBlock = require('../../partials/widgets/sourcingGuideItemBlock.hbs');\n\t\tHandlebars.registerPartial('sourcingGuideItemBlock', sourcingGuideItemBlock);\n\n\t\tlet template = `\n\t\t\t{{> sourcingGuideItemBlock\n\t\t\t\twg=\"sourcingGuideItemBlock\"\n\t\t\t\tns=\"SourcingGuideItemBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\tHandlebars.registerHelper('ifCond', ifCond);\n\t\treturn Handlebars.template(precompiled);\n\n\t}\n\n\t// Get items (reload content)\n\tgetItems(loadMoreSourcings) {\n\t\t// Check if all the products have been loaded\n\t\tif (!this.loadingSourcings && !this.allSourcingsLoaded) {\n\t\t\tthis.loadingSourcings = true;\n\n\t\t\tlet url = this.getSourcingApi;\n\n\t\t\tif (loadMoreSourcings) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\t// if parameter is not empty, then append to the API url\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\turl += `?${$.param(this.params)}`;\n\t\t\t}\n\t\t\t\n\t\t\t// End for display the products category\n\n\t\t\tthis.updateUrl();\n\t\t\t// ajax load products data\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tif(!this.isFilterPopulated){\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(this.$urllocations !== null){\n\t\t\t\t\t\t\tdata.filters.locations.forEach((item) => {\n\t\t\t\t\t\t\t\tif(this.$urllocations.includes(item)){\n\t\t\t\t\t\t\t\t\tthis.$locations.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\tthis.$locations.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tdata.filters.locations.forEach((item) => {\n\t\t\t\t\t\t\t\tthis.$locations.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.$urltypes !== null){\n\t\t\t\t\t\t\tdata.filters.types.forEach((item) => {\n\t\t\t\t\t\t\t\tif(this.$urltypes.includes(item)){\n\t\t\t\t\t\t\t\t\tthis.$types.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\tthis.$types.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tdata.filters.types.forEach((item) => {\n\t\t\t\t\t\t\t\tthis.$types.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+item+`'\">`+item+`</option>`);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.isFilterPopulated = true;\n\t\t\t\t\t\tthis.$locations.selectpicker('refresh');\n\t\t\t\t\t\tthis.$types.selectpicker('refresh');\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\t\t\t\t\t// Check if this is the new search, if so empty previous products in the products div\n\t\t\t\t\tif (!loadMoreSourcings) {\n\t\t\t\t\t\tthis.$sourcingGuides.empty();\n\t\t\t\t\t}\n\t\t\t\t\t//check if has any data from the API, if so, append the data into the product template.\n\t\t\t\t\tif (data.sourcing.length > 0) {\n\t\t\t\t\t\tdata.sourcing.forEach((item) => {\n\t\t\t\t\t\t\tlet $column = this.$sourcingGuides.append(this.getSourcingGuideItemBlockTemplate()(item));\n\t\t\t\t\t\t\tnew SourcingGuideItemBlock($column.find(`[data-wg=\"SourcingGuideItemBlock\"]`).last()[0], item);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreSourcings) {\n\t\t\t\t\t\t\tthis.allSourcingsLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$loadMoreBtn.css(\"display\", \"none\");\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data.sourcing.length < this.pageSize) {\n\t\t\t\t\t\tthis.$loadMoreBtn.css(\"display\", \"none\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingSourcings = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, encodeURIComponent(this.params[key]));\n\t\t});\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t\tlet urlParams = new URLSearchParams(uri);\n\n\t}\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.params['keyword'] = $(event.currentTarget).val().trim();\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSourcingsLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Clear button\n\thandleFilterClearBtn() {\n\t\tthis.$clearFilterBtn.on('click', () => {\n\t\t\t// set 1 to let initParams know it's coming from clear btn\n\t\t\tthis.initParams(1);\n\t\t\tthis.setPageNumber(1);\n\t\t\tthis.allSourcingsLoaded = false;\n\t\t\t// Scroll to top\n\t\t\twindow.scrollTo(0, 0);\n\t\t\tthis.getItems(false);\n\t\t\t$(\".selectpicker\").selectpicker('deselectAll');\n\t\t\tthis.$searchInp.val('');\n\t\t\tthis.$locations.selectpicker('val', '');\n\t\t\tthis.$types.selectpicker('val', '');\n\t\t});\n\t}\n\n\thandleFilterClick($element) {\n\t\tlet filterKey = $element.data('filterKey') || '';\n\t\tlet value = [];\n\t\tvalue.push($element.val());\n\t\tthis.$el.find(`[data-filter-key=\"${filterKey}\"]`).removeClass('active');\n\t\t$element.addClass('active');\n\n\t\tif(!(_.isNil(this.params[filterKey]) && value === '')) {\n\t\t\t// Ensure that the filterKey does not match the current select value\n\t\t\tif(this.params[filterKey] !== value) {\n\t\t\t\tif(_.isNil(value) || value === '') {\n\t\t\t\t\tdelete this.params[filterKey];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.params[filterKey] = value.toString();\n\t\t\t\t}\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSourcingsLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t}\n\t}\n\n\t// initialise the filter keys\n\tinitFilterKeys() {\n\t\tthis.$filterKeys.on('change', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tthis.handleFilterClick($element);\n\t\t});\n\n\t}\n\n\thandleScrollLoading() {\n\n\t\t// when scroll to buttom before 200px, page will trigger the load more function.\n\t\tlet offsetFromBottom = 200;\n\t\tconst This = this;\n\t\tthis.$loadMoreBtn.on('click', (event) => {\n\t\t\tThis.getItems(true);\n\t\t});\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","import Masonry from \"masonry-layout\";\nimport utils from '../utils';\n\nconst NS = 'ProfileDetailBlock';\nconst CLS = 'profileDetailBlock';\n\nexport class ProfileDetailBlock {\n\tconstructor(element) {\n\t\tthis.$el = $(element);\n\t\tthis.$slider = this.$el.find(`.${CLS}-slider`);\n\t\tthis.$videoImg = this.$el.find(`.${CLS}-video-img`);\n\t\tthis.$grid = this.$el.find(`.grid`);\n\t\tthis.$playVideo = this.$el.find(`.playVideo`);\n\t\tthis.$video = this.$el.find(`.${CLS}-video`);\n\n\t\tconst videoType = this.$el.find(`.${CLS}-video-vid`).data('videoType');\n\t\tconst videoId = this.$el.find(`.${CLS}-video-vid`).data('videoId');\n\t\tconst video = this.$el.find(`.${CLS}-video-vid`);\n\t\tconst isPrepCls = 'is-preparing';\n\t\tconst isPlayCls = 'is-playing';\n\n\t\tconst imgWidth = this.$videoImg.outerWidth();\n\t\tconst imgHeight = this.$videoImg.outerHeight();\n\t\tvideo.css({\n\t\t\twidth: imgWidth,\n\t\t\theight: imgHeight,\n\t\t});\n\n\t\t var elem = document.querySelector('.grid');\n\t\t var msnry = new Masonry( elem, {\n\t\t itemSelector: '.grid-item',\n\t\t columnWidth: 200\n\t\t });\n\t\t var msnry = new Masonry( '.grid', {\n\t\t });\n\n\tthis.$water = this.$el.find(`.${CLS}-water`);\n\tthis.$waterPractices = this.$el.find(`.water-practices`);\n\tthis.$water.on( \"mouseenter\", () => {\n\t\tthis.$waterPractices.css(\"display\", \"block\");\n\t}).on( \"mouseleave\", () => {\n\t\tthis.$waterPractices.css(\"display\", \"none\");\n\t});\n\n\tthis.$climate = this.$el.find(`.${CLS}-climate`);\n\tthis.$climatePractices = this.$el.find(`.climate-practices`);\n\tthis.$climate.on( \"mouseenter\", () => {\n\t\tthis.$climatePractices.css(\"display\", \"block\");\n\t}).on( \"mouseleave\", () => {\n\t\tthis.$climatePractices.css(\"display\", \"none\");\n\t});\n\n\tthis.$biodiversity = this.$el.find(`.${CLS}-biodiversity`);\n\tthis.$biodiversityPractices = this.$el.find(`.biodiversity-practices`);\n\tthis.$biodiversity.on( \"mouseenter\", () => {\n\t\tthis.$biodiversityPractices.css(\"display\", \"block\");\n\t}).on( \"mouseleave\", () => {\n\t\tthis.$biodiversityPractices.css(\"display\", \"none\");\n\t});\n\n\tthis.$stewardship = this.$el.find(`.${CLS}-stewardship`);\n\tthis.$stewardshipPractices = this.$el.find(`.stewardship-practices`);\n\tthis.$stewardship.on( \"mouseenter\", () => {\n\t\tthis.$stewardshipPractices.css(\"display\", \"block\");\n\t}).on( \"mouseleave\", () => {\n\t\tthis.$stewardshipPractices.css(\"display\", \"none\");\n\t});\n\n\tthis.$land = this.$el.find(`.${CLS}-land`);\n\tthis.$landPractices = this.$el.find(`.land-practices`);\n\tthis.$land.on( \"mouseenter\", () => {\n\t\tthis.$landPractices.css(\"display\", \"block\");\n\t}).on( \"mouseleave\", () => {\n\t\tthis.$landPractices.css(\"display\", \"none\");\n\t});\n\n\tthis.$wellbeing = this.$el.find(`.${CLS}-wellbeing`);\n\tthis.$wellbeingPractices = this.$el.find(`.wellbeing-practices`);\n\tthis.$wellbeing.on( \"mouseenter\", () => {\n\t\tthis.$wellbeingPractices.css(\"display\", \"block\");\n\t}).on( \"mouseleave\", () => {\n\t\tthis.$wellbeingPractices.css(\"display\", \"none\");\n\t});\n\n\tthis.$clip = this.$el.find(`.${CLS}-clip`);\n\tthis.$clipPractices = this.$el.find(`.clip-practices`);\n\tthis.$clip.on( \"mouseenter\", () => {\n\t\tthis.$clipPractices.css(\"display\", \"block\");\n\t}).on( \"mouseleave\", () => {\n\t\tthis.$clipPractices.css(\"display\", \"none\");\n\t});\n\n\tthis.$responsibility = this.$el.find(`.${CLS}-responsibility`);\n\tthis.$responsibilityPractices = this.$el.find(`.responsibility-practices`);\n\tthis.$responsibility.on( \"mouseenter\", () => {\n\t\tthis.$responsibilityPractices.css(\"display\", \"block\");\n\t}).on( \"mouseleave\", () => {\n\t\tthis.$responsibilityPractices.css(\"display\", \"none\");\n\t});\n\tthis.$playVideo.on('click', (e) => {\n\t\tthis.$video.addClass(isPrepCls);\n\t\tutils.scrollToEl(this.$video[0]);\n\t\t// Is Vimeo video ?\n\t\t// Create a hidden Vimeo Player that will be popup later.\n\t\t// @ref https://github.com/vimeo/player.js\n\t\tif (this.isVimeoLink(videoType)) {\n\t\t\tvideo.append('<div data-vimeo-id=\"' + videoId + '\" id=\"vimeoVideo\" />');\n\t\t\tvimeoPlayer = new Player('vimeoVideo');\n\t\t}\n\n\t\t// Is Youtube video ?\n\t\t// Append an Iframe\n\t\tif (this.isYoutubeLink(videoType)) {\n\t\t\tconst embedLink = 'https://www.youtube.com/embed/' + videoId;\n\t\t\tvideo.append('<iframe src=\"' + embedLink + '\" allow=\"autoplay\" />');\n\t\t}\n\n\t\t// Is Youku video ?\n\t\t// Append an Iframe\n\t\tif (this.isYoukuLink(videoType)) {\n\t\t\tconst embedLink = 'https://player.youku.com/embed/' + videoId;\n\t\t\tvideo.append('<iframe src=\"' + embedLink + '\" allow=\"autoplay\" />');\n\t\t}\n\n\t\t// Start Vimeo video.\n\t\tif (videoType === 'vimeo') vimeoPlayer.play();\n\n\t\t// Start Youtube video.\n\t\tif (videoType === 'youtube') {\n\t\t\tconst src = $('iframe', video).attr('src');\n\t\t\t$('iframe', video).attr('src', src + '?autoplay=1&rel=0');\n\t\t}\n\n\t\t// Start Youku video.\n\t\tif (videoType === 'youku') {\n\t\t\tconst src = $('iframe', video).attr('src');\n\t\t\t$('iframe', video).attr('src', src + '?autoplay=1&rel=0&showinfo=0');\n\t\t}\n\n\t\tconst wgWidth = this.$video.outerWidth();\n\t\tconst videoWidth = wgWidth - 50;\n\t\tconst videoHeight = (wgWidth - 50) / 16 * 10; // Video ratio is 16:9\n\n\t\t// prevent video jumping\n\t\tthis.$videoImg.css('height', videoHeight);\n\n\t\tvideo.show().animate({\n\t\t\twidth: videoWidth,\n\t\t\theight: videoHeight,\n\t\t}, 500, 'linear');\n\t\tsetTimeout(() => {\n\t\t\tthis.$video.removeClass(isPrepCls);\n\t\t\tthis.$video.addClass(isPlayCls);\n\t\t}, 500);\n\t});\n\n\t}\n\tisVimeoLink(videoType) {\n\t\treturn videoType === 'vimeo';\n\t}\n\n\tisYoutubeLink(videoType) {\n\t\treturn videoType === 'youtube';\n\t}\n\n\tisYoukuLink(videoType) {\n\t\treturn videoType === 'youku';\n\t}\n\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'VideoListingBlock';\nconst CLS = 'videoListingBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/videoListingBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport _ from 'lodash';\nimport moment from 'moment';\nimport Handlebars from 'handlebars';\n\nimport * as Api from '../api';\nimport utils from '../utils';\n\nexport class VideoListingBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadVideoListingBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\t\tThis.page = 0;\n\t\tThis.loadingSpinner = $('.loading-spinner');\n\t\tThis.videosList = $wg.find(`${WG}videosList ${WG}videosList--innerWrapper`);\n\t\tThis.loadMore = $wg.find(`${WG}loadMore`);\n\t\tthis.setVideoBlockItem();\n\t\tthis.setVideoListingBlock();\n\t}\n\n\tsetVideoListingBlock() {\n\t\t// Add Some logic here\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\n\t\t// mark the first items in the dropdown menu as selected\n\t\t$wg.find('[data-key]').each(function() {\n\t\t\t$(this).find('.dropdown-item').first().addClass('is-selected');\n\t\t});\n\n\t\t$wg.on('click', `${WG}loadMore button`, function() {\n\t\t\tThis.getVideos();\n\t\t});\n\n\t\t// get videos on load\n\t\tThis.getVideos();\n\n\t\t$wg.on('click', '.dropdown-item', function(e) {\n\t\t\tlet $this = $(this);\n\n\t\t\t// skip the click event if the selection hasn't changed\n\t\t\tif ($this.hasClass('is-selected')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// remove active classes\n\t\t\t// $wg.find(`${WG}filters--innerWrapper, ${WG}mobileFilterBtn`).removeClass('is-active');\n\n\t\t\t$this.closest('.dropdown').find('.dropdown-item').removeClass('is-selected');\n\t\t\t$this.addClass('is-selected');\n\t\t\t$this.closest('.dropdown').find('button').text($this.text());\n\t\t\t// get videos (emptying the list)\n\t\t\tThis.getVideos(true);\n\t\t});\n\n\t\t$wg.on('click', `${WG}mobileFilterBtn`, function() {\n\t\t\tlet filters = $wg.find(`${WG}filters--innerWrapper`);\n\t\t\t$(this).toggleClass('is-active');\n\t\t\tif ($(this).hasClass('is-active')) {\n\t\t\t\tfilters.addClass('is-active');\n\t\t\t} else {\n\t\t\t\tfilters.removeClass('is-active');\n\t\t\t}\n\t\t});\n\n\t\t$wg.on('click', `${WG}clear`, function() {\n\t\t\t// remove active classes\n\t\t\t$wg.find(`${WG}filters--innerWrapper, ${WG}mobileFilterBtn`).removeClass('is-active');\n\t\t\t// reset filters to the first dropdown in each group\n\t\t\t$wg.find('[data-key]').each(function() {\n\t\t\t\t$(this).find('.dropdown-item').removeClass('is-selected');\n\t\t\t\t$(this).find('.dropdown-item').first().addClass('is-selected');\n\t\t\t\t$(this).find('button').text($(this).find('.dropdown-item').first().text());\n\t\t\t});\n\t\t\t// get videos (emptying the list)\n\t\t\tThis.getVideos(true);\n\t\t});\n\n\t\t$(window).on('resize', _.debounce(function() {\n\t\t\tlet mobileFiltersBtn = $wg.find(`${WG}mobileFilterBtn`);\n\t\t\tlet filters = $wg.find(`${WG}filters--innerWrapper`);\n\t\t\tif (!utils.isBelowMd()) {\n\t\t\t\t$wg.trigger('click'); // click away from the dropdowns\n\t\t\t\tmobileFiltersBtn.removeClass('is-active');\n\t\t\t\tfilters.removeClass('is-active');\n\t\t\t}\n\t\t}, 150));\n\t}\n\n\tgetVideos(clearList = false) {\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\n\t\tif (clearList) {\n\t\t\tThis.page = 0;\n\t\t\tThis.videosList.empty();\n\t\t}\n\n\t\t// increment page\n\t\tThis.page++;\n\n\t\t// show spinner\n\t\tThis.loadingSpinner.addClass('is-active');\n\n\t\tThis.getVideosCall().then(function(data) {\n\t\t\tlet hasMore = data.hasMore;\n\t\t\tlet videos = data.videos;\n\t\t\tif (videos.length > 0) {\n\t\t\t\tfor (let i = 0; i < videos.length; i++) {\n\t\t\t\t\tlet video = videos[i];\n\t\t\t\t\t// format date\n\t\t\t\t\tvideo.videoDate = moment(video.videoDate, 'DD-MM-YYYY').format('DD MMMM YYYY');\n\t\t\t\t\t// pass video object to hbs\n\t\t\t\t\tlet videoBlockHtml = This.videoBlockItemTemplate(video);\n\t\t\t\t\t// append to the videos list\n\t\t\t\t\tThis.videosList.append(videoBlockHtml);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// no videos\n\t\t\t\tThis.videosList.html(`\n\t\t\t\t\t<p>Sorry, no webinars were found.</p>\n\t\t\t\t`);\n\t\t\t}\n\t\t\t// check if hasMore\n\t\t\tif (hasMore) {\n\t\t\t\tThis.loadMore.removeClass('d-none');\n\t\t\t} else {\n\t\t\t\tThis.loadMore.addClass('d-none');\n\t\t\t}\n\t\t\t// remove loading spinner\n\t\t\tThis.loadingSpinner.removeClass('is-active');\n\t\t}, function(err) {\n\t\t\tThis.loadingSpinner.removeClass('is-active');\n\t\t});\n\t}\n\n\tgetVideosCall() {\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\t\tlet endpoint = $wg.data('getVideosEndpoint');\n\t\tlet extraParams = '';\n\t\t$wg.find('[data-key]').each(function() {\n\t\t\tlet filter = $(this).data('key');\n\t\t\tlet id = $(this).find('.dropdown-item.is-selected').data('id');\n\t\t\textraParams = extraParams + `&${filter}=${id}`;\n\t\t});\n\t\treturn Api.getApi(endpoint + `?pageSize=5&pageNum=${This.page}` + extraParams);\n\t}\n\n\tsetVideoBlockItem() {\n\t\tconst This = this;\n\t\tlet partial = require('../../partials/widgets/videoListingItemBlock.hbs');\n\t\tHandlebars.registerPartial('videoListingItemBlock', partial);\n\t\tlet template = `\n\t\t\t{{> videoListingItemBlock\n\t\t\t\twg=\"videoListingItemBlock\"\n\t\t\t\tns=\"VideoListingItemBlock\"\n\t\t\t}}\n\t\t`;\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\tThis.videoBlockItemTemplate = Handlebars.template(precompiled);\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS = 'TabbedPartnerContainerBlock';\nconst CLS = 'tabbedPartnerContainerBlock';\nconst WG = '.' + CLS + '-';\nconst CLS_IS_ACTIVE = 'is-active';\nconst CLS_HIDE = 'd-none';\n\nimport _ from 'lodash';\nimport utils from '../utils';\n\n\nexport class TabbedPartnerContainerBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadTabbedPartnerContainerBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setTabbedPartnerContainerBlock();\n\t\tthis.renderDropdown();\n\t\tthis.setDropdownMobile();\n\t\tthis.setId();\n\t}\n\n\tsetTabbedPartnerContainerBlock() {\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\t\tlet tabsBtns = $wg.find('.tab-title');\n\n\t\tif (tabsBtns.length > 2) {\n\t\t\t$wg.addClass(`${CLS}--tabs${tabsBtns.length}`);\n\t\t}\n\n\t\ttabsBtns.on('click', function() {\n\t\t\tThis.showPartner($(this).data('id'));\n\t\t});\n\t}\n\n\tsetId() {\n\t\tconst $wg = $(this.$el);\n\t\tlet tabs = $wg.find('.partnerItemBlock');\n\t\tlet tabsBtns = $wg.find('.tab-title');\n\t\tlet dropdownItem = $wg.find(WG + 'dropdown .dropdown-item');\n\n\t\t_.forEach(tabs, function(tab, index) {\n\t\t\tlet idx = CLS + '-trigger-' + utils.generateRandomId();\n\t\t\t$(tab).attr('data-id', idx);\n\t\t\t$(tabsBtns[index]).attr('data-id', idx);\n\t\t\t$(dropdownItem[index]).attr('data-id', idx);\n\t\t});\n\t}\n\n\tshowPartner(id) {\n\t\tconst $wg = $(this.$el);\n\t\tlet $selectedTabTitle = $wg.find('.tab-title[data-id=\"' + id + '\"]');\n\t\tlet $selectedTab = $wg.find('.partnerItemBlock[data-id=\"' + id + '\"]');\n\t\tlet $selectedDropdownItem = $wg.find(WG + 'dropdown .dropdown-item[data-id=\"' + id + '\"]');\n\t\tlet $dropdownBtn = $wg.find(WG + 'dropdown .dropdown-toggle');\n\n\t\t$wg.find('.tab-title').removeClass(CLS_IS_ACTIVE);\n\t\t$selectedTabTitle.addClass(CLS_IS_ACTIVE);\n\n\t\t$wg.find(WG + 'dropdown .dropdown-item').removeClass(CLS_IS_ACTIVE);\n\t\t$selectedDropdownItem.addClass(CLS_IS_ACTIVE);\n\t\t$dropdownBtn.html($selectedDropdownItem.html());\n\n\t\t$wg.find('.partnerItemBlock').addClass(CLS_HIDE).hide(0);\n\t\t$selectedTab.fadeIn('fast').removeClass(CLS_HIDE);\n\t}\n\n\tsetDropdownMobile() {\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\t\tlet $tabTite = $wg.find(`${WG}tabsHeaders .tab-title`);\n\n\t\t// AM-177: check if only 1 tab, don't need dropdown on mobile\n\t\tif ($tabTite.length === 1) {\n\t\t\t$wg.find(WG + 'dropdown').addClass(CLS_HIDE);\n\t\t\t$tabTite.addClass('d-inline-block');\n\t\t\treturn;\n\t\t}\n\n\t\tlet $dropdownBtn = $wg.find(WG + 'dropdown .dropdown-toggle');\n\t\tlet $dropdownItem = $wg.find(WG + 'dropdown .dropdown-item');\n\t\tlet $selectedDropdownItem = $wg.find(WG + 'dropdown .dropdown-item.is-active');\n\n\t\t$dropdownBtn.html($selectedDropdownItem.html());\n\n\t\t$dropdownItem.on('click', function() {\n\t\t\tlet $this = $(this);\n\t\t\tThis.showPartner($this.data('id'));\n\t\t});\n\t}\n\n\trenderDropdown() {\n\t\tconst $wg = $(this.$el);\n\t\tlet $tabTitle = $wg.find('.tab-title');\n\t\tlet itemTmpl = '';\n\n\t\t_.forEach($tabTitle, function(item, index) {\n\t\t\titemTmpl += `<span class=\"dropdown-item ${index === 0 ? 'is-active' : ''}\">${item.innerHTML}</span>`;\n\t\t});\n\n\t\tlet tmpl = `\n\t\t<div class=\"${CLS}-dropdown\">\n\t\t\t<button class=\"dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\"></button>\n\t\t\t<div class=\"dropdown-menu\">\n\t\t\t\t${itemTmpl}\n\t\t\t</div>\n\t\t</div>`;\n\n\t\t$wg.find(`${WG}tabsHeaders`).prepend(tmpl);\n\t}\n}\n","/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'AboutCompetitionBlock';\nconst CLS = 'aboutCompetitionBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/aboutCompetitionBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport utils from '../utils';\n\nexport class AboutCompetitionBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadAboutCompetitionBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setAboutCompetitionBlock();\n\t}\n\n\tsetAboutCompetitionBlock() {\n\t\t// Add Some logic here\n\t\tconst $wg = $(this.$el);\n\t\tlet animationOffset = 30;\n\t\tif (!$wg.find('.container').hasClass('sec--fadeIn')) {\n\t\t\t$wg.find('.container').addClass('sec--fadeIn');\n\t\t}\n\t\tlet aboutCompetitionBlockText = $wg.find(WG + 'text');\n\t\tlet aboutCompetitionBlockImages = $wg.find(WG + 'images');\n\t\tif (!$wg.hasClass(WG + '-flipped')) {\n\t\t\taboutCompetitionBlockText.css('left', -animationOffset + 'px');\n\t\t\taboutCompetitionBlockImages.css('right', -animationOffset + 'px');\n\t\t} else {\n\t\t\taboutCompetitionBlockText.css('right', -animationOffset + 'px');\n\t\t\taboutCompetitionBlockImages.css('left', -animationOffset + 'px');\n\t\t}\n\n\t\t$(window).on('scroll', function() {\n\t\t\tif (!utils.isElementOutViewport($wg)) {\n\t\t\t\tif (parseInt($wg.find('.container').css('opacity')) === 0) {\n\t\t\t\t\t$wg.find('.container').animate({\n\t\t\t\t\t\t'opacity': '1'\n\t\t\t\t\t}, 1500);\n\t\t\t\t}\n\t\t\t\t// if an aboutCompetitionBlock\n\t\t\t\taboutCompetitionBlockText.animate({\n\t\t\t\t\t'left': '',\n\t\t\t\t\t'right': ''\n\t\t\t\t}, 1000);\n\t\t\t\taboutCompetitionBlockImages.animate({\n\t\t\t\t\t'left': '',\n\t\t\t\t\t'right': ''\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t});\n\n\t\t$(window).trigger('scroll');\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'CardsContainerBlock';\nconst CLS = 'cardsContainerBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/cardsContainerBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport * as Api from '../api';\nimport Handlebars from 'handlebars';\n\nexport class CardsContainerBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadCardsContainerBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\t\tThis.page = 0;\n\t\tThis.loadingSpinner = $('.loading-spinner');\n\t\tThis.cardsList = $wg.find(`${WG}cards`);\n\t\tThis.loadMore = $wg.find(`${WG}loadMore`);\n\t\tthis.setCardItem();\n\t\tthis.setCardsContainerBlock();\n\t}\n\n\tsetCardsContainerBlock() {\n\t\t// Add Some logic here\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\n\t\t$wg.on('click', `${WG}loadMore button`, function() {\n\t\t\tThis.getItems();\n\t\t});\n\n\t\t// get items on load\n\t\tThis.getItems();\n\t}\n\n\tgetItems() {\n\t\tconst This = this;\n\n\t\t// increment page\n\t\tThis.page++;\n\n\t\t// show spinner\n\t\tThis.loadingSpinner.addClass('is-active');\n\n\t\tThis.getItemsCall().then(function(data) {\n\t\t\tlet hasMore = data.hasMore;\n\t\t\tlet items = data.items;\n\t\t\tif (items.length > 0) {\n\t\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\t\tlet item = items[i];\n\t\t\t\t\tlet itemHtml = This.cardBlockItemTemplate(item);\n\t\t\t\t\t// append to the cards list\n\t\t\t\t\tThis.cardsList.append(`\n\t\t\t\t\t\t<div class=\"col-12 col-sm-6 col-lg-4 ${CLS}-cardWrapper\">\n\t\t\t\t\t\t\t${itemHtml}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// no items\n\t\t\t\tThis.cardsList.html(`\n\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t<p>Sorry, no items were found.</p>\n\t\t\t\t\t</div>\n\t\t\t\t`);\n\t\t\t}\n\t\t\t// check if hasMore\n\t\t\tif (hasMore) {\n\t\t\t\tThis.loadMore.removeClass('d-none');\n\t\t\t} else {\n\t\t\t\tThis.loadMore.addClass('d-none');\n\t\t\t}\n\t\t\t// remove loading spinner\n\t\t\tThis.loadingSpinner.removeClass('is-active');\n\t\t}, function(err) {\n\t\t\tThis.loadingSpinner.removeClass('is-active');\n\t\t});\n\t}\n\n\tgetItemsCall() {\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\t\tlet endpoint = $wg.data('getItemsEndpoint');\n\t\treturn Api.getApi(endpoint + `?pageSize=6&pageNum=${This.page}`);\n\t}\n\n\tsetCardItem() {\n\t\tconst This = this;\n\t\tlet partial = require('../../partials/widgets/cardItemBlock.hbs');\n\t\tHandlebars.registerPartial('cardItemBlock', partial);\n\t\tlet template = `\n\t\t\t{{> cardItemBlock\n\t\t\t\twg=\"cardItemBlock\"\n\t\t\t\tns=\"CardItemBlock\"\n\t\t\t}}\n\t\t`;\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\tThis.cardBlockItemTemplate = Handlebars.template(precompiled);\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'CountdownTimerBlock';\nconst CLS = 'countdownTimerBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/countdownTimerBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport moment from 'moment';\nimport countdown from 'countdown';\n\nexport class CountdownTimerBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadCountdownTimerBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setCountdownTimerBlock();\n\t}\n\n\tsetCountdownTimerBlock() {\n\t\t// Add Some logic here\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\t\t// get target timestamp and convert to a date object\n\t\tlet deadlineDateTimestamp = $wg.data('deadlineDate') || 0;\n\t\tlet targetDate = new Date(deadlineDateTimestamp * 1000);\n\t\t// get current timestamp\n\t\tlet cuurentUTCDate = new Date().toUTCString();\n\t\tlet currentTimestamp = moment(moment.utc(cuurentUTCDate)).unix();\n\t\t// only start the timer if the current timestamp is smaller than the target\n\t\tif (currentTimestamp < deadlineDateTimestamp) {\n\t\t\tlet weeks = $wg.find('.weeks span').first();\n\t\t\tlet days = $wg.find('.days span').first();\n\t\t\tlet hours = $wg.find('.hours span').first();\n\t\t\tlet minutes = $wg.find('.minutes span').first();\n\t\t\tlet seconds = $wg.find('.seconds span').first();\n\t\t\tlet timer = countdown(targetDate, function(ts) {\n\t\t\t\tlet cuurentUTCDate = new Date().toUTCString();\n\t\t\t\tlet currentTimestamp = moment(moment.utc(cuurentUTCDate)).unix();\n\t\t\t\tif (currentTimestamp >= deadlineDateTimestamp) {\n\t\t\t\t\twindow.clearInterval(timer);\n\t\t\t\t\tThis.showEndMessage();\n\t\t\t\t} else {\n\t\t\t\t\t// update units\n\t\t\t\t\tweeks.text(This.pad2(ts.weeks));\n\t\t\t\t\tdays.text(This.pad2(ts.days));\n\t\t\t\t\thours.text(This.pad2(ts.hours));\n\t\t\t\t\tminutes.text(This.pad2(ts.minutes));\n\t\t\t\t\tseconds.text(This.pad2(ts.seconds));\n\t\t\t\t}\n\t\t\t}, countdown.WEEKS|countdown.DAYS|countdown.HOURS|countdown.MINUTES|countdown.SECONDS);\n\t\t} else {\n\t\t\t// show the done message\n\t\t\tThis.showEndMessage();\n\t\t}\n\t}\n\n\tshowEndMessage() {\n\t\tconst $wg = $(this.$el);\n\t\t$wg.find(WG + 'counter').addClass('d-none');\n\t\t$wg.find(WG + 'title').addClass('d-none');\n\t\t$wg.find(WG + 'done').removeClass('d-none').fadeIn('fast');\n\t}\n\n\tpad2(number) {\n\t\treturn (number < 10 ? '0' : '') + number;\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'DownloadBriefBlock';\nconst CLS = 'downloadBriefBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/downloadBriefBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class DownloadBriefBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadDownloadBriefBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setDownloadBriefBlock();\n\t}\n\n\tsetDownloadBriefBlock() {\n\t\t// Add Some logic here\n\t\tconst $wg = $(this.$el);\n\n\t\t$wg.on('click', `${WG}btn`, function() {\n\t\t\tlet selectedFileLink = $wg.find(`${WG}select`).val();\n\t\t\tif (selectedFileLink && selectedFileLink != '') {\n\t\t\t\twindow.open(selectedFileLink);\n\t\t\t}\n\t\t});\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'JudgesContainerBlock';\nconst CLS = 'judgesContainerBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/judgesContainerBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport slick from 'slick-carousel';\n\nexport class JudgesContainerBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadJudgesContainerBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setJudgesContainerBlock();\n\t}\n\n\tsetJudgesContainerBlock() {\n\t\t// Add Some logic here\n\t\tconst $wg = $(this.$el);\n\t\tlet judges = $wg.find(WG + 'judges');\n\n\t\tconst options = {\n\t\t\tslidesToShow: 4,\n\t\t\tslidesToScroll: 4,\n\t\t\tdots: false,\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 769,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tdots: true,\n\t\t\t\t\t\tarrows: false,\n\t\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\n\t\tjudges.slick(options);\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n/* eslint-disable comma-dangle */\n// CONSTANTS are all caps.\nconst NS = 'StepByStepItemBlock';\nconst CLS = 'stepByStepItemBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/stepByStepItemBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport utils from '../utils';\n\nexport class StepByStepItemBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadStepByStepItemBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setStepByStepItemBlock();\n\t}\n\n\tsetStepByStepItemBlock() {\n\t\t// Add Some logic here\n\t\tconst item = $(this.$el);\n\t\tlet animationOffset = 30;\n\n\t\tif (!item.hasClass('sec--fadeIn')) {\n\t\t\titem.addClass('sec--fadeIn');\n\t\t}\n\n\t\tlet stepByStepItemBlockText = item.find('.stepByStepItemBlock-text');\n\t\tlet stepByStepItemBlockImages = item.find('.stepByStepItemBlock-images');\n\n\t\tif (!item.hasClass('stepByStepItemBlock--flipped')) {\n\t\t\tstepByStepItemBlockText.css('left', -animationOffset + 'px');\n\t\t\tstepByStepItemBlockImages.css('right', -animationOffset + 'px');\n\t\t} else {\n\t\t\tstepByStepItemBlockText.css('right', -animationOffset + 'px');\n\t\t\tstepByStepItemBlockImages.css('left', -animationOffset + 'px');\n\t\t}\n\n\t\t$(window).on('scroll', function() {\n\t\t\tif (!utils.isElementOutViewport(item)) {\n\t\t\t\tif (parseInt(item.css('opacity')) === 0 && !item.hasClass('d-none')) {\n\t\t\t\t\titem.animate({\n\t\t\t\t\t\t'opacity': '1'\n\t\t\t\t\t}, 1500);\n\t\t\t\t}\n\t\t\t\tstepByStepItemBlockText.animate({\n\t\t\t\t\t'left': '',\n\t\t\t\t\t'right': ''\n\t\t\t\t}, 1000);\n\t\t\t\tstepByStepItemBlockImages.animate({\n\t\t\t\t\t'left': '',\n\t\t\t\t\t'right': ''\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t});\n\n\t\t$(window).trigger('scroll');\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'StepByStepContainerBlock';\nconst CLS = 'stepByStepContainerBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/stepByStepContainerBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class StepByStepContainerBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadStepByStepContainerBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setStepByStepContainerBlock();\n\t}\n\n\tsetStepByStepContainerBlock() {\n\t\t// Add Some logic here\n\t\tconst $wg = $(this.$el);\n\t\tlet stepsBtns = $wg.find('.step-item');\n\t\tlet steps = $wg.find('.stepByStepItemBlock');\n\n\t\tstepsBtns.on('click', function() {\n\t\t\tlet $btn = $(this);\n\t\t\tlet indx = $btn.index();\n\t\t\tstepsBtns.removeClass('is-active');\n\t\t\t$btn.addClass('is-active');\n\n\t\t\tsteps.addClass('d-none');\n\t\t\tsteps.eq(indx).removeClass('d-none');\n\n\t\t\t$(window).trigger('scroll');\n\t\t});\n\n\t\tsteps.each(function(index, el) {\n\t\t\tlet imgHolder = $(el).find('.stepByStepItemBlock-images');\n\n\t\t\t// first step and we have multiple steps\n\t\t\tif (index == 0 && steps.length > 1) {\n\t\t\t\timgHolder.append(`<span class=\"fas fa-chevron-right next-step\"></span>`);\n\t\t\t}\n\t\t\t// middle steps\n\t\t\tif (index > 0 && index < (steps.length - 1)) {\n\t\t\t\timgHolder.append(`<span class=\"fas fa-chevron-right next-step\"></span>`);\n\t\t\t\timgHolder.append(`<span class=\"fas fa-chevron-left prev-step\"></span>`);\n\t\t\t}\n\t\t\t// last step\n\t\t\tif (index == (steps.length -1) && steps.length > 1) {\n\t\t\t\timgHolder.append(`<span class=\"fas fa-chevron-left prev-step\"></span>`);\n\t\t\t}\n\t\t});\n\n\t\t$wg.on('click', '.prev-step, .next-step', function() {\n\t\t\tlet currentIndex = steps.not('.d-none').first().index();\n\t\t\tlet newIndex;\n\n\t\t\tsteps.addClass('d-none');\n\n\t\t\tif ($(this).hasClass('prev-step')) {\n\t\t\t\tnewIndex = currentIndex - 1;\n\t\t\t} else {\n\t\t\t\tnewIndex = currentIndex + 1;\n\t\t\t}\n\n\t\t\tstepsBtns.eq(newIndex).trigger('click');\n\t\t});\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'UpcomingEventsContainerBlock';\nconst CLS = 'upcomingEventsContainerBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/upcomingEventsContainerBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport utils from '../utils';\n\nexport class UpcomingEventsContainerBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadUpcomingEventsContainerBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setUpcomingEventsContainerBlock();\n\t}\n\n\tsetUpcomingEventsContainerBlock() {\n\t\t// Add Some logic here\n\t\tconst item = $(this.$el);\n\t\tlet animationOffset = 30;\n\n\t\tif (!item.hasClass('sec--fadeIn')) {\n\t\t\titem.addClass('sec--fadeIn');\n\t\t}\n\n\t\tlet upcomingEventContainerBlockText = item.find('.upcomingEventsContainerBlock-text');\n\t\tlet upcomingEventContainerBlockImages = item.find('.upcomingEventsContainerBlock-images');\n\n\t\tif (!item.hasClass('upcomingEventsContainerBlock--flipped')) {\n\t\t\tupcomingEventContainerBlockText.css('left', -animationOffset + 'px');\n\t\t\tupcomingEventContainerBlockImages.css('right', -animationOffset + 'px');\n\t\t} else {\n\t\t\tupcomingEventContainerBlockText.css('right', -animationOffset + 'px');\n\t\t\tupcomingEventContainerBlockImages.css('left', -animationOffset + 'px');\n\t\t}\n\n\t\t$(window).on('scroll', function() {\n\t\t\tif (!utils.isElementOutViewport(item)) {\n\t\t\t\tif (parseInt(item.css('opacity')) === 0 && !item.hasClass('d-none')) {\n\t\t\t\t\titem.animate({\n\t\t\t\t\t\t'opacity': '1'\n\t\t\t\t\t}, 1500);\n\t\t\t\t}\n\t\t\t\tupcomingEventContainerBlockText.animate({\n\t\t\t\t\t'left': '',\n\t\t\t\t\t'right': ''\n\t\t\t\t}, 1000);\n\t\t\t\tupcomingEventContainerBlockImages.animate({\n\t\t\t\t\t'left': '',\n\t\t\t\t\t'right': ''\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t});\n\n\t\t$(window).trigger('scroll');\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable no-unused-vars, max-len */\n// CONSTANTS are all caps.\nconst NS = 'ArticleList';\nconst CLS = 'articleList';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// eslint-disable-next-line max-len\n// for ex. of dynamic import check out src/scripts/loadWg/articleList.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class ArticleList {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadArticleList function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setArticleList();\n\t}\n\n\tsetArticleList() {\n\t\t// Add Some logic here\n\t\tlet $wg = $(this.$el);\n\n\t\tif ($wg.hasClass(`${CLS}--showAll`)) {\n\t\t\tlet $loadMoreForm = $wg.find('form');\n\t\t\tlet $loadBtn = $loadMoreForm.find('[type=\"submit\"]');\n\t\t\tlet $items = $wg.find('.articleListItem');\n\t\t\tlet itemsCount = $items.length;\n\t\t\tlet skipCount = parseInt($loadMoreForm.find('[name=\"SearchFilter.LoadSkip\"]').val()) || 4;\n\n\t\t\t// no form submit\n\t\t\t$loadBtn.attr('type', 'button');\n\n\t\t\t$items.each((index, element) => {\n\t\t\t\t$(element).data('index', index);\n\n\t\t\t\tif (index+1 > skipCount) {\n\t\t\t\t\t$(element).parent().addClass('d-none');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (itemsCount <= skipCount) {\n\t\t\t\t$loadBtn.addClass('d-none');\n\t\t\t}\n\n\t\t\t$loadBtn.on('click', () => {\n\t\t\t\tlet visibleItemsCount = $wg.find('.articleListItem:visible').length;\n\n\t\t\t\tif (visibleItemsCount < itemsCount) {\n\t\t\t\t\tlet startPos = $wg.find('.articleListItem:visible').last().data('index') + 1;\n\t\t\t\t\tlet endPos = startPos + skipCount;\n\t\t\t\t\tfor (let i = startPos; i < endPos; i++) {\n\t\t\t\t\t\t$items.eq(i).parent().removeClass('d-none');\n\n\t\t\t\t\t\tif ($wg.find('.articleListItem:visible').last().data('index') + 1 === $items.length) {\n\t\t\t\t\t\t\t$loadBtn.addClass('d-none');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t$('html, body').animate({\n\t\t\t\t\t\t\tscrollTop: $items.eq(startPos).offset().top,\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}, 250);\n\t\t\t\t} else {\n\t\t\t\t\t$loadBtn.addClass('d-none');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\nconst NS = 'ShopItemsWidget';\nconst CLS = 'shopItemsWidget';\nconst CLS_IS_SELECTED = 'is-selected';\nconst CLS_HIDE = 'd-none';\nconst CLS_DISABLED = 'disabled';\nconst OFFSET_TOP = 100;\n\nimport utils from '../utils';\nimport _ from 'lodash';\n\nexport class ShopItemsWidget {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.api = this.$element.data('api');\n\t\tthis.$items = this.$element.find(`.${CLS}-items`);\n\t\tthis.$dropdowns = this.$element.find(`.${CLS}-dropdowns .dropdown`);\n\t\tthis.$dropdownItems = this.$dropdowns.find('.dropdown-item');\n\t\tthis.$menu = this.$element.find(`.${CLS}-menu`);\n\t\tthis.$filters = this.$element.find(`.${CLS}-filters`);\n\t\tthis.$loadMoreWrap = this.$element.find(`.${CLS}-loadMoreWrap`);\n\t\tthis.$loadMoreBtn = this.$element.find(`.${CLS}-loadMoreBtn`);\n\t\tthis.$sortDropdown = this.$element.find(`.${CLS}-sortDropdown`);\n\t\tthis.$clearFilterBtn = this.$element.find(`.${CLS}-clearFilterBtn`);\n\n\t\tthis.sourceId = this.$element.data('source-id');\n\t\tthis.shopName = this.$element.data('shop-name');\n\n\t\t// https://stackoverflow.com/questions/8898412/iphone-ipad-triggering-unexpected-resize-events\n\t\t// iOS safari trigeered unexpected resize event. Need to store window width\n\t\tthis.windowWidth = $(window).width();\n\n\t\tthis.params = {\n\t\t\tpageNumber: 1,\n\t\t};\n\n\t\tthis.urlPattern = {};\n\n\t\tthis.initDropdowns();\n\t\tthis.initFilters();\n\t\tthis.initStickyFilter();\n\t\tthis.moveDropdown();\n\t\tthis.updateParam();\n\t\tthis.handleResize();\n\t\tthis.handleClearFilter();\n\t\tthis.initProductItemWidget();\n\t}\n\n\tinitDropdowns() {\n\t\tthis.$dropdownItems.on('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tlet filterType = $element.parents(`.dropdown`).attr('data-filter-type');\n\t\t\tlet $parent = $element.parents('.dropdown');\n\t\t\tlet filterValue = $element.attr('data-filter-value') || '';\n\n\t\t\t$parent.find('.dropdown-item').removeClass(CLS_IS_SELECTED);\n\t\t\t$element.addClass(CLS_IS_SELECTED);\n\t\t\tthis.params[filterType] = filterValue;\n\t\t\tthis.params['pageNumber'] = 1;\n\t\t\tthis.updateUrl();\n\t\t});\n\t}\n\n\tinitFilters() {\n\t\tthis.$filterItemHeader = this.$filters.find(`.${CLS}-filter-header`);\n\t\tthis.$filterRadio = this.$filters.find(`.${CLS}-filter-body-item-radio`);\n\t\tlet animationDuration = 400;\n\n\t\t// Util function to rotate the filterHeaderIcon\n\t\tlet rotateIcon = (item, initialDegree = 0, degree = 180, animate = true) => {\n\t\t\tlet $element = item.children(`.${CLS}-filter-header-icon`);\n\n\t\t\tif (animate) {\n\t\t\t\t$({ deg: initialDegree }).animate({ deg: degree }, {\n\t\t\t\t\tduration: animationDuration,\n\t\t\t\t\tstep: (now) => {\n\t\t\t\t\t\t$element.css({\n\t\t\t\t\t\t\ttransform: `rotate(${now}deg)`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$element.css({\n\t\t\t\t\ttransform: `rotate(${degree}deg)`,\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tthis.$filterItemHeader.on('click', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\t$(document.body).trigger('sticky_kit:recalc');\n\n\t\t\tif ($element.parents(`.${CLS}-filter`).attr('data-active') === 'true') {\n\t\t\t\trotateIcon($element, 180, 0);\n\t\t\t\t$element.next(`.${CLS}-filter-body`).slideUp({\n\t\t\t\t\tduration: animationDuration,\n\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\t$element.parents(`.${CLS}-filter`).attr('data-active', false);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\trotateIcon($element, 0, 180);\n\t\t\t\t$element.next(`.${CLS}-filter-body`).slideDown({\n\t\t\t\t\tduration: animationDuration,\n\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\t$element.parents(`.${CLS}-filter`).attr('data-active', true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.$filterRadio.on('click', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tlet filterType = $element.parents(`[data-filter-type]`).attr('data-filter-type');\n\t\t\tlet value = $element.val();\n\n\t\t\tif(_.isNil(filterType)) {\n\t\t\t\tconsole.error(`${NS}::Error`, 'Please ensure there is a filterType value in the data-filter-type-attribute');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(this.params[filterType] === value) {\n\t\t\t\t$element.prop('checked', false);\n\t\t\t\tthis.urlPattern[filterType] = null;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.urlPattern[filterType] = value;\n\t\t\t}\n\n\t\t\tif(_.isNil(this.urlPattern[filterType]) || this.urlPattern[filterType] === '') {\n\t\t\t\tdelete this.urlPattern[filterType];\n\t\t\t}\n\n\t\t\tthis.params['pageNumber'] = 1;\n\t\t\tthis.updateUrl();\n\t\t});\n\n\t\tthis.$filterToggler = this.$element.find(`.${CLS}-filterToggler`);\n\n\t\tthis.$filterToggler.on('click', () => {\n\t\t\tif(this.$filters.attr('data-concealed') === 'true') {\n\t\t\t\tthis.$filters.slideDown({\n\t\t\t\t\tduration: animationDuration,\n\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\tthis.$filters.attr('data-concealed', false);\n\t\t\t\t\t\tthis.$filterToggler.attr('data-concealed', false);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$filters.slideUp({\n\t\t\t\t\tduration: animationDuration,\n\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\tthis.$filters.attr('data-concealed', true);\n\t\t\t\t\t\tthis.$filterToggler.attr('data-concealed', true);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tlet concealFilter = () => {\n\t\t\tif(utils.checkBP('ds')) {\n\t\t\t\tthis.$filters.attr('data-concealed', true);\n\t\t\t\tthis.$filterToggler.attr('data-concealed', true);\n\t\t\t\tthis.$filters.hide();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$filters.attr('data-concealed', false);\n\t\t\t\tthis.$filterToggler.attr('data-concealed', false);\n\t\t\t\tthis.$filters.show();\n\t\t\t}\n\t\t};\n\n\t\t$(window).on('resize', _.debounce(() => {\n\t\t\tif (this.windowWidth !== $(window).width()) {\n\t\t\t\tthis.windowWidth = $(window).width();\n\t\t\t\tconcealFilter();\n\t\t\t}\n\t\t}, 50));\n\n\t\tconcealFilter();\n\t}\n\n\thandleResize() {\n\t\t$(window).on('resize', _.debounce(() => {\n\t\t\tthis.initStickyFilter();\n\t\t\tthis.moveDropdown();\n\t\t}, 150));\n\t}\n\n\tinitStickyFilter() {\n\t\tif (utils.checkBP('ds', true)) {\n\t\t\tthis.$filters.stick_in_parent({\n\t\t\t\tparent: `.${CLS}`,\n\t\t\t\toffset_top: OFFSET_TOP\n\t\t\t});\n\t\t} else {\n\t\t\tthis.$filters.trigger('sticky_kit:detach');\n\t\t}\n\t}\n\n\tmoveDropdown() {\n\t\tif (utils.checkBP('ds', true)) {\n\t\t\tthis.$sortDropdown.appendTo(this.$menu);\n\t\t} else {\n\t\t\tthis.$sortDropdown.prependTo(this.$filters);\n\t\t}\n\n\t\tthis.$sortDropdown.removeClass(CLS_HIDE);\n\t}\n\n\tupdateParam() {\n\t\tif (this.sourceId) {\n\t\t\tthis.params.sourceID = this.sourceId;\n\t\t}\n\n\t\tlet lang = document.documentElement.lang;\n\t\tlet appendedLangs = ['de', 'zh-hk']; // this language will be appended to vanity url\n\n\t\t// append language if exist on appendedLangs\n\t\tif (lang && appendedLangs.indexOf(lang.toLowerCase()) !== -1) {\n\t\t\tif (lang.toLowerCase() === 'zh-hk') {\n\t\t\t\tlang = 'hk';\n\t\t\t}\n\n\t\t\tthis.urlPattern.lang = lang;\n\t\t}\n\n\t\tif (this.shopName) {\n\t\t\tthis.urlPattern.shopName = this.shopName;\n\t\t}\n\n\t\t// get filters value\n\t\tlet $filters = this.$element.find(`.${CLS}-filter`);\n\t\t_.forEach($filters, (filterObj, i) => {\n\t\t\tlet $selectedRadio = $(filterObj).find(`.${CLS}-filter-body-item-radio[checked]`);\n\t\t\tlet radioVal = $selectedRadio.val();\n\t\t\tlet radioName = $selectedRadio.prop('name');\n\t\t\tif (!_.isNil(radioVal) && radioVal !== '') {\n\t\t\t\tthis.urlPattern[radioName] = radioVal;\n\t\t\t}\n\t\t});\n\n\t\t// get dropdown value\n\t\tlet $selectedDropdown = this.$dropdowns.find(`.dropdown-item.${CLS_IS_SELECTED}`);\n\t\tif ($selectedDropdown.length > 0) {\n\t\t\tlet filterType = $selectedDropdown.closest(`.dropdown`).attr('data-filter-type');\n\t\t\tlet filterValue = $selectedDropdown.data('filter-value');\n\t\t\tthis.params[filterType] = filterValue;\n\t\t}\n\t}\n\n\thandleClearFilter() {\n\t\tthis.$clearFilterBtn.on('click', () => {\n\t\t\tlet $filters = this.$element.find(`.${CLS}-filter`);\n\t\t\t_.forEach($filters, (filterObj, i) => {\n\t\t\t\t$(filterObj).find(`.${CLS}-filter-body-item-radio[value=\"all\"]`).attr('checked', true);\n\t\t\t});\n\t\t\tthis.updateParam();\n\t\t\tthis.updateUrl();\n\t\t});\n\t}\n\n\tupdateUrl() {\n\t\t// pattern: https://www.woolmark.com/{language}/{shop-page-name}/{category}/{designer}/{productType}/{region}/?sourceID={number}&sortType={sortType}\n\t\tlet uri = document.location.origin;\n\n\t\tObject.keys(this.urlPattern).forEach((key, index) => {\n\t\t\turi += `/${this.urlPattern[key]}`;\n });\n\n Object.keys(this.params).forEach((key, index) => {\n\t\t\tif (key !== 'pageNumber') {\n\t\t\t\turi = utils.updateQueryStringParameter(uri, key, this.params[key]);\n\t\t\t}\n });\n\n\t\twindow.location.href = uri;\n\t\t// console.log(NS, uri);\n\t}\n\n\tinitProductItemWidget() {\n\t\t// move it to utils so it can be used globally\n\t\tutils.initProductItemWidget(this.$element);\n\t}\n}\n","export class ShopItemsCarouselWidget {\n constructor(element) {\n\t\t this.element = element;\n\t\t this.$el = $(element);\n this.$carousel = this.$el.find('.shopItemsCarousel');\n this.$carousel.slick({\n dots: true,\n infinite: true,\n slidesToShow: 3,\n slidesToScroll: 3,\n responsive: [\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2,\n }\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }\n ]\n });\n }\n}\n","import utils from '../utils';\n\n// CONSTANTS are all caps.\nconst NS = 'ProductItemCarouselWidget';\nconst CLS = 'productItemCarouselWidget';\n\nexport class ProductItemCarouselWidget {\n\tconstructor(element) {\n\t\t// $el is the widget node return by the loadProductItemCarouselWidget function\n\t\tthis.$el = $(element);\n\t\tthis.$title = this.$el.find(`.${CLS}-title`);\n\t\tthis.$subTitle = this.$el.find(`.${CLS}-subtitle`);\n\t\tthis.$content = this.$el.find(`.${CLS}-content`);\n\t\tthis.$certifiedIcon = this.$el.find(`.${CLS}-certifiedIcon`);\n\t\tthis.$bgImg = this.$el.find(`.${CLS}-imgBg`);\n\t\tthis.id = this.$el.data('id');\n\t\tthis.prodApi = this.$el.data('prodApi');\n\t\tthis.getValues();\n\t}\n\t// get the data from API\n\tgetValues() {\n\t\tconst options = utils.getApiDefaultOptions();\n\n\t\tfetch(`${this.prodApi}?id=${encodeURIComponent(this.id)}`, options).then((response) => {\n\t\t\treturn response.json();\n\t\t}).then((json) => {\n\t\t\tthis.carouselProd = json;\n\t\t\t// replace the data into the corresponding location\n\t\t\tthis.$bgImg.css(\"background-image\", \"url(\" + this.carouselProd.image + \")\");\n\t\t\tthis.$content.attr(\"href\", this.carouselProd.url);\n\t\t\tif (this.carouselProd.designers && this.carouselProd.designers.length) {\n\t\t\t\tthis.$title.html(this.carouselProd.designers[0]);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.$title.html(\" \")\n\t\t\t}\n\t\t\tthis.$subTitle.html(this.carouselProd.title);\n\t\t\t// check if this product is woolmark certified\n\t\t\tif(this.carouselProd.isCertified){\n\t\t\t\tthis.$certifiedIcon.css(\"display\", \"block\");\n\t\t\t}\n\t\t});\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = 'EcommerceBlock';\nconst CLS = 'ecommerceBlock';\nconst WG = '.' + CLS + '-';\n\nimport utils from '../utils';\n\nexport class EcommerceBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\n\t\tthis.initProductItem();\n\t}\n\n\tinitProductItem() {\n\t\tutils.initProductItemWidget(this.$element);\n\t}\n}\n","/* eslint-disable no-invalid-this */\n// CONSTANTS are all caps.\nconst NS = 'BioListBlock';\nconst CLS = 'bioListBlock';\nconst WG = '.' + CLS + '-';\nconst BLI = '.bioListItem-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/bioListBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nexport class BioListBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadBioListBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setBioListBlock();\n\t}\n\n\tsetBioListBlock() {\n\t\t// on load, get the url's hash\n\t\t// if there is a hash value, check if we have a matching list item\n\t\t// trigger a click on it\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS ='Careculator';\nconst CLS ='careculator';\nconst WG ='.' + CLS +'-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/careculator.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport utils from '../../scripts/utils';\nimport _ from 'lodash';\n\nexport class Careculator {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadCareculator function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setCareculator();\n\t\tthis.resizeListener();\n\t}\n\n\tsetCareculator() {\n\t\t// Add Some logic here\n\t\tlet $wg = $(this.$el);\n\n\t\t$wg.on('change', '.challengeTypes input, .challengeTypes select', function() {\n\t\t\tlet newVal = $(this).val();\n\t\t\tlet name = $(this).attr('name');\n\n\t\t\t$wg.find(`.challengeTypes input[value=\"${newVal}\"]`).prop('checked', true);\n\t\t\t$wg.find(`.challengeTypes select`).val(newVal);\n\t\t});\n\t}\n\n\tresizeListener() {\n\t\tlet $wg = $(this.$el);\n\t\tlet $radios = $wg.find('.challengeTypes input[type=\"radio\"]');\n\t\tlet $select = $wg.find('.challengeTypes select');\n\n\t\t$(window).on('resize', _.debounce(() => {\n\t\t\t// resets (remove data-f-datainput from radios, select, and its options)\n\n\t\t\t$radios.each((index, element) => {\n\t\t\t\t$(element).removeAttr('data-f-datainput');\n\t\t\t});\n\n\t\t\t$select.removeAttr('data-f-datainput');\n\n\t\t\t$select.find('option').each((index, element) => {\n\t\t\t\t$(element).removeAttr('data-f-datainput');\n\t\t\t});\n\n\t\t\tif (utils.isSmallerThanTablet()) {\n\t\t\t\t// mobile\n\t\t\t\t$select.attr('data-f-datainput', '');\n\n\t\t\t\t$select.find('option').each((index, element) => {\n\t\t\t\t\t$(element).attr('data-f-datainput', '');\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// desktop\n\t\t\t\t$radios.each((index, element) => {\n\t\t\t\t\t$(element).attr('data-f-datainput', '');\n\t\t\t\t});\n\t\t\t}\n\t\t}, 300));\n\n\t\t$(window).trigger('resize');\n\t}\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'FeatureBlock';\nconst CLS = 'featureBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/featureBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport {fullWindowHeightMixinBlock, compactViewMixin} from '../viewsHandler';\n\nexport class FeatureBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadFeatureBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setFeatureBlock();\n\t}\n\n\tsetFeatureBlock() {\n\t\t// Add Some logic here\n\t\tthis.$element = $(this.$el);\n\n\t\tthis.initCompactView(this);\n\t\tthis.initFullWindowHeight(this);\n\t}\n\n\t// Add more functions like on above here\n}\n\nObject.assign(FeatureBlock.prototype, compactViewMixin);\nObject.assign(FeatureBlock.prototype, fullWindowHeightMixinBlock);\n","/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS = 'GridContainerBlock';\nconst CLS = 'gridContainerBlock';\nconst CLS_HIDE = 'd-none';\nconst CLS_ITEM = 'gridItemBlock';\nconst MB_IMG_RATIO = 7/6; // mobile image's height ratio\n\nimport ImagesLoaded from 'imagesloaded';\nimport utils from '../utils';\nimport _ from 'lodash';\n\nexport class GridContainerBlock {\n\tconstructor(el) {\n\t\tthis.el = el;\n\t\tthis.$el = $(el);\n\t\tthis.$loadMoreBtn = this.$el.find(`.${CLS}-loadMoreBtn`);\n\t\tthis.$rows = this.$el.find(`.${CLS}-row`);\n\t\tthis.$item = this.$el.find(`.${CLS}-item`);\n\t\tthis.$background = this.$el.find(`.${CLS_ITEM}-background`);\n\t\tthis.$loadMoreWrapper = this.$el.find(`.${CLS}-loadMoreWrapper`);\n\n\t\tthis.skipCount = parseInt(this.$el.data('load-skip')) || 0;\n\t\tthis.totalItem = this.$rows.length;\n\n\t\tthis.hideItems();\n\t\tthis.handleLoadMoreBtn();\n\t\tthis.onImageLoaded();\n\n\t\t$(window).on('resize', _.debounce(() => {\n\t\t\tthis.onImageLoaded();\n\t\t}, 300));\n\t}\n\n\thideItems() {\n\t\tif (this.skipCount === 0) {\n\t\t\tthis.$loadMoreBtn.addClass(CLS_HIDE);\n\t\t\tthis.$loadMoreWrapper.removeClass('py-3');\n\t\t\tthis.$el.addClass('show');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$rows.each((i, item) => {\n\t\t\tlet $item = $(item);\n\t\t\t$item.attr('data-index', i);\n\n\t\t\t// hide items\n\t\t\tif (i + 1 > this.skipCount) {\n\t\t\t\t$item.addClass(CLS_HIDE);\n\t\t\t}\n\t\t});\n\n\t\t// hide load more button\n\t\tif (this.totalItem <= this.skipCount) {\n\t\t\tthis.$loadMoreBtn.addClass(CLS_HIDE);\n\t\t\tthis.$loadMoreWrapper.removeClass('py-3');\n\t\t}\n\n\t\tthis.$el.addClass('show');\n\t}\n\n\thandleLoadMoreBtn() {\n\t\tthis.$loadMoreBtn.on('click', () => {\n\t\t\tlet visibleItemsCount = this.$el.find(`.${CLS}-row:visible`).length;\n\n\t\t\tif (visibleItemsCount >= this.totalItem) {\n\t\t\t\tthis.$loadMoreBtn.addClass(CLS_HIDE);\n\t\t\t\tthis.$loadMoreWrapper.removeClass('py-3');\n\t\t\t} else {\n\t\t\t\tlet $showItem = this.$el.find(`.${CLS}-row[data-index=\"${visibleItemsCount}\"]`);\n\t\t\t\t$showItem.removeClass(CLS_HIDE);\n\n\t\t\t\t// hide load more button if last index\n\t\t\t\tif (visibleItemsCount === this.totalItem - 1) {\n\t\t\t\t\tthis.$loadMoreBtn.addClass(CLS_HIDE);\n\t\t\t\t\tthis.$loadMoreWrapper.removeClass('py-3');\n\t\t\t\t}\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t$('html, body').animate({\n\t\t\t\t\t\tscrollTop: $showItem.offset().top,\n\t\t\t\t\t}, 500);\n\t\t\t\t}, 250);\n\t\t\t}\n\t\t});\n\t}\n\n\tonImageLoaded() {\n\t\tif (utils.checkBP('ml')) {\n\t\t\tthis.setMobileHieght();\n\t\t} else {\n\t\t\tthis.setDesktopHeight();\n\t\t}\n\t}\n\n\tsetDesktopHeight() {\n\t\tthis.$rows.each((i, row) => {\n\t\t\tlet $row = $(row);\n\t\t\tlet $background = $row.find(`.${CLS_ITEM}-background`);\n\t\t\tlet rowH = 0;\n\t\t\tlet opts = {\n\t\t\t\tbackground: true,\n\t\t\t};\n\n\t\t\tnew ImagesLoaded($background, opts, (instances) => {\n\t\t\t\t$.each(instances.images, (i, imgObj) => {\n\t\t\t\t\trowH = imgObj.img.height > rowH ? imgObj.img.height : rowH;\n\t\t\t\t});\n\n\t\t\t\t$row.find(`.${CLS}-item`).css('height', `${rowH}px`);\n\t\t\t});\n\t\t});\n\t}\n\n\tsetMobileHieght() {\n\t\tlet w = utils.getWindowWidth();\n\t\tlet h = w * MB_IMG_RATIO;\n\n\t\tthis.$item.css('height', `${h}px`);\n\t}\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS = 'HorizontalGalleryBlock';\nconst CLS = 'horizontalGalleryBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/horizontalGalleryBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nexport class HorizontalGalleryBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadHorizontalGalleryBlock function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tlet $carousel = this.$el.find(`${WG}carousel`);\n\t\tlet $wg = this.$el;\n\t\tlet navActiveClass = 'is-active';\n\n\t\t$carousel.on('init', (slick) => {\n\t\t\tthis.$el.find('.sliderNav-link').on('click', function() {\n\t\t\t\tlet $this = $(this);\n\t\t\t\tlet index = $this.attr('data-slide-index');\n\n\t\t\t\t$carousel.slick('slickGoTo', index);\n\t\t\t\t$this.siblings().removeClass(navActiveClass);\n\t\t\t\t$this.addClass(navActiveClass);\n\n\t\t\t\t// detach the line and put it before the active item\n\t\t\t\tlet $sliderNavLine = $wg.find('.sliderNav-line').detach();\n\t\t\t\t$this.before($sliderNavLine);\n\t\t\t});\n\t\t}).slick({\n\t\t\tarrows: false,\n\t\t\tdots: false,\n\t\t\tappendDots: this.$el.find(`${WG}carouselDots`),\n\t\t\tdraggable: true,\n\t\t\tslidesToShow: 1,\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 767,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tdots: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t}).on('afterChange', (event, slick, currentSlide) => {\n\t\t\tlet $sliderNavLine = $wg.find('.sliderNav-line').detach();\n\t\t\tthis.$el.find(`.sliderNav-link`).removeClass(navActiveClass);\n\t\t\tthis.$el.find(`.sliderNav-link[data-slide-index=${currentSlide}]`).addClass(navActiveClass).before($sliderNavLine);\n\t\t});\n\n\t\t$wg.on('mouseenter', '.horizontalScrollItem', function() {\n\t\t\tif ($(this).find('a').length > 0) {\n\t\t\t\t$(this).addClass('hover');\n\t\t\t}\n\t\t}).on('mouseleave', '.horizontalScrollItem', function() {\n\t\t\t$(this).removeClass('hover');\n\t\t});\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'HorizontalScrollBlock';\nconst CLS = 'horizontalScrollBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/horizontalScrollBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport PerfectScrollbar from 'perfect-scrollbar';\nimport utils from '../utils';\n\nexport class HorizontalScrollBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadHorizontalScrollBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setHorizontalScrollBlock();\n\t}\n\n\tsetHorizontalScrollBlock() {\n\t\tconst $wg = $(this.$el);\n\n\t\tlet scrollSpeed = 20;\n\t\tlet scroller = $wg[0];\n\t\tlet scrollerItems = $wg.find(WG + 'items')[0];\n\n\t\tnew PerfectScrollbar(scrollerItems, {\n\t\t\tminScrollbarLength: 100,\n\t\t\tmaxScrollbarLength: 200,\n\t\t});\n\n\t\tscroller.addEventListener('mousewheel', (e) => {\n\t\t\tif (!e.deltaY) return;\n\n\t\t\tif ($wg.offset().top - $(window).scrollTop() !== 0) return;\n\n\t\t\tlet scrollDirection = (e.deltaY > 0) ? 1 : -1;\n\n\t\t\tscrollerItems.scrollLeft += scrollSpeed * scrollDirection;\n\n\t\t\tlet scrollLeft = Math.round(scrollerItems.scrollLeft);\n\t\t\tlet maxScrollLeft = Math.round(scrollerItems.scrollWidth - scrollerItems.clientWidth);\n\n\t\t\tif (\n\t\t\t\t(scrollDirection === -1 && scrollLeft > 0) ||\n\t\t\t\t(scrollDirection === 1 && scrollLeft < maxScrollLeft)\n\t\t\t) e.preventDefault();\n\n\t\t\treturn true;\n\t\t}, false);\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS = 'HorizontalYoutubeGalleryBlock';\nconst CLS = 'horizontalYoutubeGalleryBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/horizontalGalleryBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nexport class HorizontalYoutubeGalleryBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadHorizontalGalleryBlock function\n\t\tthis.$el = $($el);\n\t}\n\n\tinit() {\n\t\tlet $carousel = this.$el.find(`${WG}carousel`);\n\t\tlet $wg = this.$el;\n\t\tlet navActiveClass = 'is-active';\n\n\t\t$carousel.on('init', (slick) => {\n\t\t\tthis.$el.find('.sliderNav-link').on('click', function() {\n\t\t\t\tlet $this = $(this);\n\t\t\t\tlet index = $this.attr('data-slide-index');\n\n\t\t\t\t$carousel.slick('slickGoTo', index);\n\t\t\t\t$this.siblings().removeClass(navActiveClass);\n\t\t\t\t$this.addClass(navActiveClass);\n\n\t\t\t\t// detach the line and put it before the active item\n\t\t\t\tlet $sliderNavLine = $wg.find('.sliderNav-line').detach();\n\t\t\t\t$this.before($sliderNavLine);\n\t\t\t});\n\t\t}).slick({\n\t\t\tarrows: false,\n\t\t\tdots: false,\n\t\t\tappendDots: this.$el.find(`${WG}carouselDots`),\n\t\t\tdraggable: true,\n\t\t\tslidesToShow: 1,\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 767,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tdots: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t}).on('afterChange', (event, slick, currentSlide) => {\n\t\t\tlet $sliderNavLine = $wg.find('.sliderNav-line').detach();\n\t\t\tthis.$el.find(`.sliderNav-link`).removeClass(navActiveClass);\n\t\t\tthis.$el.find(`.sliderNav-link[data-slide-index=${currentSlide}]`).addClass(navActiveClass).before($sliderNavLine);\n\t\t});\n\n\t\t$wg.on('mouseenter', '.horizontalScrollItem', function() {\n\t\t\tif ($(this).find('a').length > 0) {\n\t\t\t\t$(this).addClass('hover');\n\t\t\t}\n\t\t}).on('mouseleave', '.horizontalScrollItem', function() {\n\t\t\t$(this).removeClass('hover');\n\t\t});\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable no-console */\n/* eslint-disable max-len */\n// taken from AWI-WLC\nimport _ from 'lodash';\nimport {fullWindowHeightMixinBlock, trackingItemsMixinBlock} from '../viewsHandler';\nimport {mediaQuery} from '../mediaQuery';\n\nconst NS = 'HotspotBlock';\nconst CLS = 'hotspotBlock';\n\nexport class HotspotBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\n\t\tthis.$canvas = this.$element.find(`.${CLS}-canvas`);\n\t\tthis.$image = this.$element.find(`.${CLS}-image`);\n\t\tthis.$hotspots = this.$element.find(`.hotspotCoordinateBlock`);\n\t\tthis.$hotspotColumnContent = this.$element.find(`.${CLS}-col--content`);\n\t\tthis.$card = this.$element.find(`.${CLS}-card`);\n\t\tthis.$cardDescription = this.$card.find(`.${CLS}-card-description`);\n\t\tthis.cardAnimationDuration = 500;\n\t\tthis.cardAnimationCompleted = true;\n\n\t\t// Initial animation of card\n\t\tthis.$card.hide();\n\t\tthis.$card.css({\n\t\t\topacity: 0,\n\t\t});\n\n\t\tsetTimeout(() => {\n\t\t\tthis.$card.show();\n\t\t}, this.cardAnimationDuration);\n\n\t\tthis.$activeHotspotBlock = null;\n\t\tthis.$imageProperties = {\n\t\t\tratio: {\n\t\t\t\twidth: null,\n\t\t\t\theight: null,\n\t\t\t},\n\t\t};\n\t}\n\n\tinit() {\n\t\tthis.setRatio();\n\t\tthis.scaleImage();\n\t\tthis.setHotspots();\n\t\tthis.setHotspotClickEvent();\n\t\tthis.setHotspotContentHeight();\n\n\t\t$(window).resize(_.debounce(() => {\n\t\t\tthis.scaleImage();\n\t\t\tthis.setHotspots();\n\t\t\tthis.setHotspotContentHeight();\n\t\t}, 25));\n\n\t\tthis.initFullWindowHeight(this);\n\t\tthis.initTrackingItems(this, this.$hotspots);\n\n\t\t// Trigger this again\n\t\tsetTimeout(() => {\n\t\t\tthis.scaleImage();\n\t\t\tthis.setHotspots();\n\t\t\tthis.setHotspotContentHeight();\n\t\t}, 500);\n\t}\n\n\tsetRatio() {\n\t\tthis.$imageProperties.ratio.width = this.$image.width();\n\t\tthis.$imageProperties.ratio.height = this.$image.height();\n\t}\n\n\tscaleImage() {\n\t\tlet width = this.$canvas.width();\n\n\t\tthis.$image.css({\n\t\t\twidth: width,\n\t\t\theight: (width * (this.$imageProperties.ratio.height / this.$imageProperties.ratio.width)),\n\t\t\tvisibility: 'visible',\n\t\t});\n\t}\n\n\tsetHotspots() {\n\t\tthis.$hotspots.each((index, element) => {\n\t\t\tlet x = !_.isNil($(element).attr('data-x-percentage')) ? parseInt($(element).attr('data-x-percentage')) : null;\n\t\t\tlet y = !_.isNil($(element).attr('data-y-percentage')) ? parseInt($(element).attr('data-y-percentage')) : null;\n\n\t\t\tif (_.isFinite(x) && x >= 0 && x <= 100) {\n\t\t\t\tif (_.isFinite(y) && y >= 0 && y <= 100) {\n\t\t\t\t\t$(element).css({\n\t\t\t\t\t\tleft: `${Math.abs(x - 100)}%`,\n\t\t\t\t\t\ttop: `${Math.abs(y - 100)}%`,\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\ttransform: 'translate3d(-50%, -50%, 0)',\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(`${NS}::Error`, 'Please supply a valid y-percentage between 0–100');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.error(`${NS}::Error`, 'Please supply a valid x-percentage between 0–100');\n\t\t\t}\n\t\t});\n\t}\n\n\tsetHotspotClickEvent() {\n\t\tthis.$hotspots.on('click', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\n\t\t\tif (this.cardAnimationCompleted) {\n\t\t\t\tlet deactivate = () => {\n\t\t\t\t\tthis.cardAnimationCompleted = false;\n\n\t\t\t\t\tthis.$activeHotspotBlock.removeClass('hotspotCoordinateBlock--active');\n\t\t\t\t\tthis.$activeHotspotBlock = null;\n\n\t\t\t\t\tthis.$card.css({\n\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t});\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.$cardDescription.html('');\n\t\t\t\t\t\tthis.cardAnimationCompleted = true;\n\t\t\t\t\t}, this.cardAnimationDuration);\n\t\t\t\t};\n\n\t\t\t\tlet activate = ($elementToActivate) => {\n\t\t\t\t\tthis.cardAnimationCompleted = false;\n\n\t\t\t\t\tthis.$activeHotspotBlock = $elementToActivate;\n\t\t\t\t\tthis.$activeHotspotBlock.addClass('hotspotCoordinateBlock--active');\n\t\t\t\t\tlet description = this.$activeHotspotBlock.find('.hotspotCoordinateBlock-content').html();\n\t\t\t\t\tthis.$cardDescription.html(description);\n\t\t\t\t\tthis.$card.css({\n\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t});\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.cardAnimationCompleted = true;\n\t\t\t\t\t}, this.cardAnimationDuration);\n\t\t\t\t};\n\n\t\t\t\tif (!this.$activeHotspotBlock) {\n\t\t\t\t\tactivate($element);\n\t\t\t\t} else if (this.$activeHotspotBlock.is($element)) {\n\t\t\t\t\tdeactivate();\n\t\t\t\t} else {\n\t\t\t\t\tdeactivate();\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tactivate($element);\n\t\t\t\t\t}, this.cardAnimationDuration);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tsetHotspotContentHeight() {\n\t\tif (!mediaQuery.breakpointMaxWidth(mediaQuery.BREAKPOINTS.LG)) {\n\t\t\tthis.$hotspotColumnContent.css({\n\t\t\t\tminHeight: this.$image.height(),\n\t\t\t});\n\t\t} else {\n\t\t\tthis.$hotspotColumnContent.css({\n\t\t\t\tminHeight: 'unset',\n\t\t\t});\n\t\t}\n\t}\n}\n\nObject.assign(HotspotBlock.prototype, fullWindowHeightMixinBlock);\nObject.assign(HotspotBlock.prototype, trackingItemsMixinBlock);\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'IwpApplicationForm';\nconst CLS = 'iwpApplicationForm';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/iwpApplicationForm.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class IwpApplicationForm {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadIwpApplicationForm function\n\t\tthis.$el = $el;\n\t\tthis.element = $el;\n\t\tthis.$element = $(this.$el);\n\t\tthis.$sections = this.$element.find('.Form__Element.FormStep');\n\t\tthis.$form = this.$element.find('form');\n\t\tthis.$navs = this.$element.find(WG + 'navigator');\n\t\tthis.$navSteps = this.$element.find(WG + 'navs-step');\n\t\tthis.$navsTitle = this.$element.find(WG + 'navs-title');\n\t\tthis.headerOffset = ($('.siteHeader').length > 0) ? $('.siteHeader').height() : 0;\n\t\tthis.$mobileStepCount = this.$element.find(WG + 'mobile-steps .current-step');\n\n\t\tthis.setActiveSection(parseInt($(`[name=\"__FormCurrentStepIndex\"]`).val()) || 0, true);\n\t}\n\n\tinit() {\n\t\tthis.$element.find(`.${CLS}-pagination .page-link--previous`).on('click', () => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tlet previous = parseInt($(`[name=\"__FormCurrentStepIndex\"]`).val()) || 0;\n\t\t\t\tthis.setActiveSection(previous);\n\t\t\t}, 250);\n\t\t});\n\n\t\tthis.$element.find(`.${CLS}-pagination .page-link--next`).on('click', () => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tlet next = parseInt($(`[name=\"__FormCurrentStepIndex\"]`).val()) || 0;\n\t\t\t\tthis.setActiveSection(next);\n\t\t\t}, 250);\n\t\t});\n\t}\n\n\tsetActiveSection(activeIndex, initLoad = false) {\n\t\tthis.$element.find(`.${CLS}-navs-step`)\n\t\t\t.removeClass('active')\n\t\t\t.eq(activeIndex)\n\t\t\t.addClass('active');\n\n\t\tthis.$mobileStepCount.text(activeIndex + 1);\n\n\t\t// update the title\n\t\tthis.$navsTitle.text(this.$element.find(`.${CLS}-navs-step`).eq(activeIndex).data('stepTitle'));\n\n\t\t// update active index\n\t\tthis.$navs.attr('data-active-section-index', activeIndex);\n\n\t\tthis.sectionActiveIndex = activeIndex;\n\n\t\tif (initLoad) {\n\t\t\t// scroll to top of the page\n\t\t\t$('html, body').animate({\n\t\t\t\tscrollTop: this.$element.closest('main').offset().top,\n\t\t\t}, 250);\n\t\t}\n\t}\n\n\t// Add more functions like on above here\n}\n","const NS = 'MyAccountUpdateProfilePage';\nconst CLS = 'myAccountUpdateProfilePage';\n\nexport class MyAccountUpdateProfilePage {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(this.element);\n\t\tthis.$scroller = $('.tpl-scroller');\n\t\tthis.countryAPI = this.$element.data('countryApi');\n\t\tthis.registerAPI = this.$element.data('registerApi');\n\t\tthis.$errorMessagesServerSide = this.$element.find('.error-messages--serverSide');\n\t\tthis.$sucessMessages = this.$element.find('.success-messages');\n\t\tthis.countries = [];\n\t\tthis.$form = $(`#${CLS}-form`);\n\t\tthis.$formValidate;\n\t\tif (this.countryAPI) {\n\t\t\tthis.loadCountries();\n\t\t}\n\t\tthis.buildForm();\n\t\tthis.selectEvents();\n\t\tthis.resetForm();\n\t}\n\n\n\n\tloadCountries() {\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: this.countryAPI,\n\t\t\theaders: {\n\t\t\t\t'X-IDS-SiteTypeId': this.siteTypeId\n\t\t\t},\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.countries = data;\n\n\t\t\t\tlet $countrySelect = this.$element.find('select.country');\n\t\t\t\t$countrySelect.append(() => {\n\t\t\t\t\tlet markup = '';\n\t\t\t\t\tthis.countries.forEach((country) => {\n\t\t\t\t\t\tmarkup += `<option value=\"${country.Name}\">${country.Name}</option>`;\n\t\t\t\t\t});\n\t\t\t\t\treturn markup;\n\t\t\t\t});\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t$countrySelect.selectpicker('refresh');\n\t\t\t\t\t$countrySelect.selectpicker('render');\n\t\t\t\t\tthis.resetForm(); // When countries is changed it sets it ot is-valid, reset said form to prevent this\n\t\t\t\t}, 100);\n\t\t\t},\n\t\t\terror: () => {\n\t\t\t\tconsole.error(`${NS}::Error`, 'Could not load the list of countries');\n\t\t\t}\n\t\t});\n\t}\n\n\tscrollToElement(element, offset = 0) {\n\t\treturn scrollTo(this.$scroller[0], { top: $(element).position().top + offset, duration: 500, easing: 'ease-in-out' });\n\t}\n\n\tselectEvents() {\n\t\tthis.$element.find('select').on('change', (event) => {\n\t\t\t$(event.currentTarget).blur().focus();\n\t\t});\n\n\t\tlet formGroupElements = {\n\t\t\twoolmarkContactTypeLicence: this.$element.find('.woolmarkContactTypeLicence'),\n\t\t\twoolmarkContactTypeOther: this.$element.find('.woolmarkContactTypeOther'),\n\t\t};\n\n\t\t// Deals with on change for education level\n\t\tthis.$element.find('select.woolmarkContactType').on('change', (event) => {\n\t\t\tif(this.$element.find('select.woolmarkContactType').val() === 'Other') {\n\t\t\t\tformGroupElements.woolmarkContactTypeOther.show();\n\t\t\t}\n\t\t\telse{\n\t\t\t\tformGroupElements.woolmarkContactTypeOther.hide();\n\t\t\t}\n\t\t\tif(this.$element.find('select.woolmarkContactType').val() === 'Woolmark Licensee') {\n\t\t\t\tformGroupElements.woolmarkContactTypeLicence.show();\n\t\t\t}\n\t\t\telse{\n\t\t\t\tformGroupElements.woolmarkContactTypeLicence.hide();\n\t\t\t}\n\t\t});\n\n\t\t// Deals with change for area of study\n\t\tthis.$element.find('select.areaStudy').on('change', (event) => {\n\t\t\tif($(event.currentTarget).val() === 'Other') {\n\t\t\t\tformGroupElements.areaStudyOther.show();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tformGroupElements.areaStudyOther.hide().find('#AreaStudyOther').val('').removeClass('is-valid is-invalid');\n\t\t\t}\n\t\t});\n\t}\n\n\thandleServerSideError(message) {\n\t\tthis.$errorMessagesServerSide.addClass('is-active').text(message);\n\t}\n\n\tresetForm() {\n\t\tthis.$form.removeClass('is-submitted');\n\t\tthis.$formValidate.resetForm();\n\t}\n\t\n\t/**\n\t * Implements the form and form validation using jQuery validation: https://jqueryvalidation.org/\n\t */\n\tbuildForm() {\n\t\t$.validator.addMethod('password', (value, _element) => {\n\t\t\treturn new RegExp(this.regexPassword).test(value);\n\t\t}, `Please enter a password that contains 8–20 characters, at least one capital letter, one number, and one special character [- ! @ # $ % ^ & * ( ) _ +].`);\n\n\t\t$(`select.slctpckr`).each((_index, element) => {\n\t\t\t// Enable default selected value by passing the data-value in the select\n\t\t\tlet $element = $(element);\n\t\t\tlet value = $element.attr('data-value');\n\t\t\t$element.selectpicker();\n\t\n\t\t\tif(!_.isNil(value)) {\n\t\t\t\t$element.selectpicker('val', value);\n\t\t\t\t$element.selectpicker('refresh');\n\t\t\t}\n\t\n\t\t\t// Update value attr\n\t\t\t$element.on('changed.bs.select', () => {\n\t\t\t\tlet value = $element.selectpicker().val();\n\t\t\t\t$element.attr('data-value', value);\n\t\n\t\t\t\t// if language selector, redirect to link\n\t\t\t\tif ($element.hasClass('siteLanguageWidget-languageSelect')) {\n\t\t\t\t\twindow.location = value;\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\t$element.on('refreshed.bs.select', () => {\n\t\t\t\tvalue = $element.attr('data-value');\n\t\n\t\t\t\tif(!_.isNil(value)) {\n\t\t\t\t\t$element.selectpicker('val', value);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t\n\t\tthis.$formValidate = this.$form.validate({\n\t\t\tsubmitHandler: (form, event) => {\n\t\t\t\tthis.$errorMessagesServerSide.removeClass('is-active').text('');\n\t\t\t\t$(event.currentTarget).addClass('is-submitted');\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tvar array = $(form).serializeArray()\n\t\t\t\tvar formData = {};\n\t\t\t\t$.map(array, function (n, i) {\n\t\t\t\t\tformData[n['name']] = n['value'];\n\t\t\t\t});\n\n\t\t\t\t// Removes empty field values\n\t\t\t\t_.forOwn(formData, (value, key) => {\n\t\t\t\t\tif(_.isNil(value) || value.trim() === '') {\n\t\t\t\t\t\tdelete formData[key];\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tvar json_text = JSON.stringify(formData); \n\n\t\t\t\tlet request = new Request(this.registerAPI, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tbody: json_text,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json'\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t//this.fullScreenLoaderService.create();\n\n\t\t\t\t// submit form data using fetch api\n\t\t\t\tfetch(request)\n\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\tif(response.status === 200) {\n\t\t\t\t\t\t\tthis.$sucessMessages.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.handleServerSideError(response.statusText);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//this.fullScreenLoaderService.destroy();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\t// errors (failed call)\n\t\t\t\t\t\tthis.handleServerSideError(error);\n\t\t\t\t\t\t//this.fullScreenLoaderService.destroy();\n\t\t\t\t\t});\n\t\t\t},\n\t\t\tinvalidHandler: (event, validator) => {\n\t\t\t\t$(event.currentTarget).addClass('is-submitted');\n\t\t\t\tif(validator.errorList[0]) {\n\t\t\t\t\tlet element = validator.errorList[0].element;\n\t\t\t\t\t// Caveat for custom-control (radio + checkbox) as the element itself is absolutely positioned.\n\t\t\t\t\t// Scroll to the parent element of it instead.\n\t\t\t\t\tif($(element).parent('.custom-control') && $(element).parent('.custom-control').length > 0) {\n\t\t\t\t\t\tthis.scrollToElement($(element).parent('.custom-control')[0], -60);\n\t\t\t\t\t}\n\t\t\t\t\t// Second caveat for custom bootstrap select (generated) content\n\t\t\t\t\t// Also scroll to the parent element of the select instead\n\t\t\t\t\telse if($(element).parent('.bootstrap-select') && $(element).parent('.bootstrap-select').length > 0) {\n\t\t\t\t\t\tthis.scrollToElement($(element).parent('.bootstrap-select')[0], -60);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.scrollToElement(element, -60);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tignore: [],\n\t\t\trules: {\n\t\t\t\tSalutation: {\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\tFirstName: {\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\tLastName: {\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\tEmail: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\temail: true\n\t\t\t\t},\n\t\t\t\tCountry: {\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\tEducationLevel: {\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\tOverMinimumAge: {\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\tTermsAndConditions: {\n\t\t\t\t\trequired: true\n\t\t\t\t}\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\tSalutation: {\n\t\t\t\t\trequired: 'Please select a title.'\n\t\t\t\t},\n\t\t\t\tFirstName: {\n\t\t\t\t\trequired: 'Please enter a first name.'\n\t\t\t\t},\n\t\t\t\tLastName: {\n\t\t\t\t\trequired: 'Please enter a last name.'\n\t\t\t\t},\n\t\t\t\tEmail: {\n\t\t\t\t\trequired: 'Please enter an email address.',\n\t\t\t\t\temail: 'Please enter a valid email address.'\n\t\t\t\t},\n\t\t\t\tCountry: {\n\t\t\t\t\trequired: 'Please select a country.'\n\t\t\t\t},\n\t\t\t\tTermsAndConditions: {\n\t\t\t\t\trequired: 'Please agree to the terms and conditions.'\n\t\t\t\t}\n\t\t\t},\n\t\t\terrorClass: 'error-messages is-active mt-1',\n\t\t\terrorElement: 'span',\n\t\t\terrorPlacement: (error, element) => {\n\t\t\t\tif($(element).is('select')) {\n\t\t\t\t\t$(element).parents('.bootstrap-select').after(error);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\terror.insertAfter(element);\n\t\t\t\t}\n\t\t\t},\n\t\t\thighlight: (element) => {\n\t\t\t\t$(element).addClass('is-invalid').removeClass('is-valid');\n\t\t\t},\n\t\t\tunhighlight: (element) => {\n\t\t\t\t$(element).addClass('is-valid').removeClass('is-invalid');\n\t\t\t}\n\t\t});\n\t}\n}","const NS = 'NewsroomBlock';\nconst CLS = 'newsroomBlock';\n\nexport class NewsroomBlock {\n\tconstructor($el) {\n\t\tthis.$el = $($el);\n\n\t\tthis.$cards = this.$el.find(`.${CLS}-card`);\n\t\tthis.$cardCheckboxInputs = this.$cards.find(`.${CLS}-card-checkbox-input`);\n\n\t\tthis.$cards.on('click', (event) => {\n\t\t\tlet $card = $(event.currentTarget);\n\t\t\tlet $checkbox = $card.find(`.${CLS}-card-checkbox-input`);\n\t\t\tlet isChecked = !$checkbox.prop('checked');\n\t\t\t$checkbox.prop('checked', isChecked);\n\n\t\t\t$card.attr('data-active', isChecked);\n\t\t\tthis.toggleBtnDownloadDisabled();\n\t\t});\n\n\t\tthis.$cardCheckboxInputs.on('change click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t});\n\n\t\tthis.$btnDownload = this.$el.find(`.${CLS}-btn--download`);\n\n\t\tthis.$btnDownload.on('click', () => {\n\t\t\tthis.downloadSelected();\n\t\t});\n\n\t\tthis.toggleBtnDownloadDisabled();\n\t}\n\n\ttoggleBtnDownloadDisabled() {\n\t\tlet checkedItems = this.$cardCheckboxInputs.filter(':checked').length;\n\t\tif (checkedItems > 0) {\n\t\t\tthis.$btnDownload.removeAttr('disabled');\n\t\t} else {\n\t\t\tthis.$btnDownload.attr('disabled', 'disabled');\n\t\t}\n\t}\n\n\tdownloadSelected() {\n\t\tlet count = 0;\n\n\t\tthis.$cardCheckboxInputs.filter(':checked').each((_index, element) => {\n\t\t\tlet $element = $(element);\n\t\t\tcount++;\n\n\t\t\tlet src = $element.val();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tlet downloader = document.createElement('a');\n\n\t\t\t\tdownloader.setAttribute('href', src);\n\t\t\t\tdownloader.setAttribute('download', '');\n\t\t\t\tdocument.body.appendChild(downloader);\n\t\t\t\tdownloader.click();\n\t\t\t\tdocument.body.removeChild(downloader);\n\t\t\t}, 500 * count);\n\t\t});\n\t}\n}\n","/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'ParallaxFullWidthBlock';\nconst CLS = 'parallaxFullWidthBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/parallaxFullWidthBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport utils from '../utils';\n\nexport class ParallaxFullWidthBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadParallaxFullWidthBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tconst $wg = $(this.$el);\n\t\tlet $imgWrapper = $wg.find(WG + 'image');\n\t\tlet $img = $wg.find('img');\n\t\tlet src = $img.attr('src');\n\n\t\t$img.addClass('d-none');\n\n\t\t$imgWrapper.css({\n\t\t\tbackgroundImage: `url(${src})`,\n\t\t});\n\n\t\tif (!utils.isIOS() && !utils.isAndroid() && !utils.isSmallerThanTablet()) {\n\t\t\tif ($wg.hasClass('js-parallax')) {\n\t\t\t\t$imgWrapper.css({\n\t\t\t\t\tbackgroundImage: '',\n\t\t\t\t});\n\n\t\t\t\t$img.removeClass('d-none').addClass('jarallax-img');\n\t\t\t\t$imgWrapper.addClass('jarallax');\n\n\t\t\t\tif (window.jarallaxLoaded) {\n\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\tjarallax($wg[0].querySelectorAll('.jarallax'));\n\t\t\t\t} else {\n\t\t\t\t\t$.getScript('https://unpkg.com/jarallax@1/dist/jarallax.min.js')\n\t\t\t\t\t.done(() => {\n\t\t\t\t\t\twindow.jarallaxLoaded = true;\n\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\tjarallax($wg[0].querySelectorAll('.jarallax'));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$imgWrapper.css({\n\t\t\t\t\tbackgroundAttachment: 'fixed',\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Add more functions like on above here\n}\n","const NS = 'QuoteBlock';\nconst CLS = 'quoteBlock';\nconst WG = `.${CLS}-`;\n\nexport class QuoteBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\n\t\tthis.$carousel = this.$element.find(`${WG}carousel`);\n\t\tconsole.log(this.$carousel);\n\t\tthis.$carousel.slick({\n\t\t\tautoplay:true,\n\t\t\tautoplaySpeed:4000,\n\t\t\tdots: true\n\t\t});\n\t}\n}","/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS = 'WelcomeBannerModal';\nconst CLS = 'welcomeBannerModal';\nconst REGION_STORAGE_NAME = `awi.${CLS}.region`;\n\nexport class WelcomeBannerModal {\n\tconstructor(el) {\n\t\tthis.el = el;\n\t\tthis.$el = $(el);\n\n\t\tthis.onModalOpen();\n\t\tthis.checkLocalStorage();\n\t\tthis.checkHash();\n\t\tthis.handleLink();\n\t}\n\n\tcheckLocalStorage() {\n\t\tlet region = localStorage.getItem(REGION_STORAGE_NAME);\n\n\t\t// if there is local storage doesn't have value, it will trigger modal\n\t\tif (!region) {\n\t\t\tthis.$el.modal('show');\n\t\t} else {\n\t\t\t// compare the saved \"link\" from local storage to the current url\n\t\t\t// if not match, it will redirect (modify the url using from the saved one)\n\t\t\tregion = JSON.parse(region);\n\t\t\tlet currentUrl = window.location.href;\n\t\t\tlet baseAddress = this.$el.data('baseaddress');\n\t\t\tlet pathName = currentUrl.replace(baseAddress, '');\n\t\t\tif (baseAddress !== region.link) {\n\t\t\t\tlet newUrl = `${region.link}${pathName}`;\n\t\t\t\twindow.location.href = newUrl;\n\t\t\t}\n\t\t}\n\t}\n\n\thandleLink() {\n\t\tthis.$el.find(`.${CLS}-link`).on('click', (e) => {\n\t\t\tlet $link = $(e.target);\n\n\t\t\tif (!$link.hasClass(`${CLS}-link`)) {\n\t\t\t\t$link = $link.parent(`.${CLS}-link`);\n\t\t\t}\n\n\t\t\tlet param = {\n\t\t\t\tcode: $link.data('code'),\n\t\t\t\tlink: $link.attr('href'),\n\t\t\t\tname: $link.find(`.${CLS}-countryName`).text(),\n\t\t\t};\n\n\t\t\twindow.localStorage.setItem(REGION_STORAGE_NAME, JSON.stringify(param));\n\t\t});\n\t}\n\n\t// trigger modal using hash on url, eg: wool4school.com#welcomeBannerModal\n\tcheckHash() {\n\t\tlet urlHashString = window.location.hash;\n\t\tlet urlHash = (urlHashString.substr(0, (urlHashString + '?').indexOf('?')));\n\t\tif (!urlHash) return;\n\n\t\tlet $modal = $(urlHash);\n\t\tif ($modal.length !== 0 && $modal.hasClass('modal')) {\n\t\t\t$modal.modal('show');\n\t\t}\n\t}\n\n\tonModalOpen() {\n\t\tthis.$el.on('show.bs.modal', () => {\n\t\t\t$('html').css('overflowY', 'hidden');\n\t\t});\n\t}\n}\n","import {WoolLabSaveToMoodboardModalBlock} from './woolLabSaveToMoodboardModalBlock';\n\nconst NS = 'WoolLabImageBlock';\nconst CLS = 'woolLabImageBlock';\nimport Handlebars from 'handlebars';\n\nexport class WoolLabImageBlock {\n\tconstructor(el) {\n\t\tthis.el = el;\n\t\tthis.$el = $(el);\n\t\tthis.id = this.$el.data('id');\n\t\tthis.$btnAddToMoodboard = this.$el.find(`.${CLS}-btnAddToMoodboard`);\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.addToMoodboardApi = this.$el.data('addToMoodboardApi');\n\t\tthis.createMoodboardApi = this.$el.data('createMoodboardApi');\n\t\tthis.$image = this.$el.find(`.${CLS}-image`)//.attr(src)\n\n\t\t// Feature flag\n\t\tthis.featureMoodboardsEnabled = this.$el.data('featureMoodboardsEnabled');\n\n\t\tthis.handleButtons();\n\t\tthis.initFeatureFlags();\n\t}\n\n\tinitFeatureFlags() {\n\t\tif (!this.featureMoodboardsEnabled) {\n\t\t\t// Hide moodboard button\n\t\t\tthis.$btnAddToMoodboard.hide();\n\t\t}\n\t}\n\n\thandleButtons() {\n\t\tthis.$el.on('click', (e) => {\n\t\t\tif ($(e.target).hasClass(`${CLS}-btnAddToMoodboard`)) {\n\t\t\t\tthis.displaySaveToMoodboardModal();\n\t\t\t}\n\t\t});\n\t}\n\n\tgetSaveToMoodboardModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSaveToMoodboardModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSaveToMoodboardModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSaveToMoodboardModalBlock\n\t\t\t\twg=\"woolLabSaveToMoodboardModalBlock\"\n\t\t\t\tns=\"WoolLabSaveToMoodboardModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplaySaveToMoodboardModal() {\n\t\t$(document.body).append(this.getSaveToMoodboardModalTemplate());\n\t\tlet $modal = $('#woolLabSaveToMoodboardModalBlock');\n\n\t\tlet modalData = {};\n\t\tmodalData.getMoodboardsApi = this.getMoodboardsApi;\n\t\tmodalData.addToMoodboardApi = this.addToMoodboardApi;\n\t\tmodalData.createMoodboardApi = this.createMoodboardApi;\n\t\tmodalData.selectedItems = [this.$image.attr('src')];\n\t\tmodalData.itemType ='image';\n\n\t\tnew WoolLabSaveToMoodboardModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\t}\n}\n\n\n","const NS = 'WoolLabInteractiveMoodboardBlock';\nconst CLS = 'woolLabInteractiveMoodboardBlock';\n\nimport Handlebars from 'handlebars';\nimport {WoolLabShareSwatchModalBlock} from './woolLabShareSwatchModalBlock';\nimport {WoolLabRenameMoodboardModalBlock} from './woolLabRenameMoodboardModalBlock';\nimport _, { ceil } from 'lodash';\n\nimport Konva from 'konva';\nimport jsPDF from '@mathiasosterkamp/customjspdf';\n\nexport class WoolLabInteractiveMoodboardBlock {\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.autoSaveTimeout = 5000;\n\n\t\tthis.activeSwatchId = 99999;\n\t\tthis.activeImageCanvasId = 99999;\n\t\tthis.activeNoteId = 99999;\n\t\tthis.isAddNoteActive = false;\n\n\t\tthis.zoomIncriment = 0.1;\n\t\tthis.scale = 1;\n\t\tthis.newItemGridSpacing = 500;\n\n\t\tthis.$persistentDrawAddMoodboardBtn = $('.woolLabPersistentSwatchDrawer-addToMoodboardBtn');\n\t\tthis.$persistentDrawSwatches = $('.woolLabPersistentSwatchDrawer-swatches');\n\n\t\tthis.moodboardName = '';\n\t\tvar searchParams = new URLSearchParams(window.location.search)\n\t\tthis.moodboardId = searchParams.get('id');\n\n\t\tthis.swatchIds = [];\n\n\t\tthis.$canvasContainer = this.$el.find(`.${CLS}-canvasContainer`);\n\n\t\tthis.$notepad = this.$el.find(`.${CLS}-notepad`);\n\n\t\tthis.$resetCanvasBtn = this.$el.find(`.${CLS}-resetCanvasBtn`);\n\t\tthis.$addNoteBtn = this.$el.find(`.${CLS}-addNoteBtn`);\n\n\t\tthis.$notepadCloseBtn = this.$el.find(`.${CLS}-notepad-closeBtn`);\n\t\tthis.$notepadDeleteBtn = this.$el.find(`.${CLS}-notepad-deleteBtn`);\n\t\tthis.$notepadPostBtn = this.$el.find(`.${CLS}-notepad-postBtn`);\n\n\t\tthis.$zoomInBtn = this.$el.find(`.${CLS}-zoomInBtn`);\n\t\tthis.$zoomOutBtn = this.$el.find(`.${CLS}-zoomOutBtn`);\n\n\t\tthis.getMoodboardApi = this.$el.data('getMoodboardApi');\n\t\tthis.updateMoodboardApi = this.$el.data('updateMoodboardApi');\n\t\tthis.deleteMoodboardApi = this.$el.data('deleteMoodboardApi');\n\t\tthis.shareSwatchesApi = this.$el.data('shareSwatchesApi');\n\t\tthis.addToMySwatchesApi = this.$el.data('addToMyswatchesApi');\n\t\tthis.myMoodboardsUrl = this.$el.data('myMoodboardsUrl');\n\t\tthis.moodboardNoteImg = this.$el.data('moodboardNoteImg');\n\t\tthis.noteCursorImg = this.$el.data('noteCursorImg');\n\t\tthis.notesHoverText=this.$el.data('notesHoverText');\n\t\tthis.centreHoverText=this.$el.data('centreHoverText');\n\t\t\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\n\t\tthis.$optionsBtn = this.$el.find(`.${CLS}-optionsBtn`);\n\t\tthis.$optionsDropdown = this.$el.find(`.${CLS}-options-dropdown`);\n\n\t\tthis.$optionsRenameBtn = this.$el.find(`.${CLS}-options-rename`);\n\t\tthis.$optionsShareBtn = this.$el.find(`.${CLS}-options-share`);\n\t\tthis.$optionsDeleteBtn = this.$el.find(`.${CLS}-options-remove`);\n\n\t\tthis.$deleteMoodboardPanel = this.$el.find(`.${CLS}-mooboardDelete-panel`);\n\t\tthis.$deleteMoodboardPanelDeleteBtn = this.$el.find(`.${CLS}-mooboardDelete-removePanel-remove`);\n\t\tthis.$deleteMoodboardPanelCancelBtn = this.$el.find(`.${CLS}-mooboardDelete-removePanel-cancel`);\n\n\t\tthis.$contextMenu = this.$el.find('#moodboardContextMenu');\n\t\tthis.$contextMenuUpButton = this.$el.find('#moodboardContextUpButton');\n\t\tthis.$contextMenuDownButton = this.$el.find('#moodboardContextDownButton');\n\n\t\tthis.$selectOptionsPanel = this.$el.find(`.${CLS}-selectOptions-panel`);\n\t\tthis.$selectOptionsAddMySwatchedBtn = this.$el.find(`.${CLS}-selectOptions-addMySwatches`);\n\t\tthis.$selectOptionsRemoveBtn = this.$el.find(`.${CLS}-selectOptions-remove`);\n\t\tthis.$selectOptionsCloseBtn = this.$el.find(`.${CLS}-selectOptions-close`);\n\n\n\t\tthis.initNotepad();\n\t\tthis.handleOptionBtns();\n\t\tthis.handleDeleteMoodboardBtns();\n\t\tthis.handleSelectOptionsButtons();\n\t\tthis.handleNotepadButtons();\n\t\tthis.handleCanvasButtons();\n\t\tthis.getItems();\n\t\tthis.initCanvas();\n\n\t\tsetInterval(() => {\n\t\t\tthis.checkIfMoodboardChanged();\n\t\t}, this.autoSaveTimeout);\n\t}\n\n\tinitNotepad() {\n\t\t// TinyMCE\n\t\tif (typeof tinymce === 'object') {\n\t\t\t// eslint-disable-next-line no-undef\n\t\t\ttinymce.init({\n\t\t\t\tselector: `#notepadEditor`,\n\t\t\t\tplugins: 'lists',\n\t\t\t\tcontent_style: 'body { margin: 0;}' + 'p {margin: 0; font-weight: 20px; line-height: 30px; padding-right: 40px;}' + 'body::before {font-weight: 20px; line-height: 30px; color: #000000 !important; opacity: 0.3;}',\n\t\t\t\tmenubar: false,\n\t\t\t\tstatusbar: false,\n\t\t\t\tpaste_as_text: true,\n\t\t\t\theight: '100%',\n\t\t\t\ttoolbar: 'bold italic bullist | customDownloadButton customSaveButton',\n\t\t\t});\n\t\t}\n\t}\n\n\tinitCanvas() {\n\t\tconst This = this;\n\n\t\tlet sceneWidth = this.$canvasContainer.width();\n\t\tlet sceneHeight = this.$canvasContainer.height();\n\n\t\tthis.stage = new Konva.Stage({\n\t\t\tcontainer: 'canvasContainer',\n\t\t\twidth: sceneWidth,\n\t\t\theight: sceneHeight,\n\t\t\tdraggable: true,\n\t\t});\n\n\t\tthis.layer = new Konva.Layer();\n\t\tthis.stage.add(this.layer);\n\n\t\tthis.stage.on('click', function() {\n\t\t\tif (This.isAddNoteActive) {\n\t\t\t\tlet pos = This.layer.getRelativePointerPosition();\n\n\t\t\t\tpos.x -= 40;\n\t\t\t\tpos.y -= 40;\n\n\t\t\t\tThis.deactivateAddNote();\n\t\t\t\tThis.generateNote(pos, true);\n\t\t\t}\n\t\t});\n\n\t\tthis.stage.on('mouseenter mouseup', () => {\n\t\t\tif (!this.isAddNoteActive) {\n\t\t\t\tthis.stage.container().style.cursor = 'grab';\n\t\t\t}\n\t\t});\n\t\tthis.stage.on('mousedown', (e) => {\n\t\t\tif (e.target === this.stage) {\n\t\t\t\tthis.transformer.nodes([]);\n\t\t\t\tthis.closeSelectOptions();\n\t\t\t}\n\t\t\tif (!this.isAddNoteActive) {\n\t\t\t\tthis.stage.container().style.cursor = 'grabbing';\n\t\t\t}\n\t\t});\n\n\t\t// variable to temporarily hold swatch that is being \"right-click\"ed\n\t\tlet selectedItem;\n\n\t\t// Context menu set up\n\t\tthis.stage.on('contextmenu', function (e) {\n\t\t\t// prevent default behavior\n\t\t\te.evt.preventDefault();\n\t\t\tif (e.target === This.stage) {\n\t\t\t // if we are on empty place of the stage we will do nothing\n\t\t\t return;\n\t\t\t}\n\n\t\t\tselectedItem = e.target;\n\n\t\t\t// show menu\n\t\t\tThis.$contextMenu.css('display', 'initial');\n\t\t\tvar containerRect = This.stage.container().getBoundingClientRect();\n\t\t\tThis.$contextMenu.css('top', containerRect.top + This.stage.getPointerPosition().y + 4 + 'px');\n\t\t\tThis.$contextMenu.css('left', containerRect.left + This.stage.getPointerPosition().x + 4 + 'px');\n\t\t});\n\n\t\tthis.$contextMenuUpButton.on('click', () => {\n\t\t\tselectedItem && selectedItem.moveUp();\n\t\t});\n\n\t\tthis.$contextMenuDownButton.on('click', () => {\n\t\t\tselectedItem && selectedItem.moveDown();\n\t\t});\n\n\t\t// hide context menu\n\t\t$(window).on('click', () => {\n\t\t\tThis.$contextMenu.css('display', 'none');\n\t\t});\n\n\t\tthis.transformer = new Konva.Transformer({\n\t\t\tkeepRatio: true,\n\t\t\tenabledAnchors: [\n\t\t\t'top-left',\n\t\t\t'top-right',\n\t\t\t'bottom-left',\n\t\t\t'bottom-right',\n\t\t\t],\n\t\t\tanchorStroke: 'black',\n\t\t\tanchorFill: 'white',\n\t\t\tanchorSize: 12,\n\t\t\tborderStroke: 'black',\n\t\t\trotateAnchorOffset: 50,\n\t\t\tpadding: 10,\n\t\t});\n\n\t\tfunction fitStageIntoParentContainer() {\n\t\t\tThis.stage.width(This.$canvasContainer.width());\n\t\t\tThis.stage.height(This.$canvasContainer.height());\n\t\t}\n\t\tfitStageIntoParentContainer();\n\n\t\twindow.addEventListener('resize', fitStageIntoParentContainer);\n\t}\n\n\tsaveItems() {\n\t\tlet url = `${this.updateMoodboardApi}`;\n\t\tlet data = JSON.stringify(this.getMoodboardJSON());\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\tbody: data\n\t\t}).then((response) => {\n\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\treturn response.json();\n\t\t}).then((_json) => {\n\t\t}).catch((_error) => {\n\t\t});\n\t}\n\n\tsaveSwatchesFromPD() {\n\t\tlet url = `${this.updateMoodboardApi}`;\n\t\tconst moodboardJSON=this.getMoodboardJSON();\n\t\tmoodboardJSON.salesforce=\"true\";\n\t\tlet data = JSON.stringify(moodboardJSON);\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\tbody: data\n\t\t}).then((response) => {\n\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\treturn response.json();\n\t\t}).then((_json) => {\n\t\t}).catch((_error) => {\n\t\t});\n\t}\n\n\tcheckIfMoodboardChanged() {\n\t\tif (!this.previousMoodboardJSON) {\n\t\t\tthis.previousMoodboardJSON = this.getMoodboardJSON();\n\t\t} else if ( !_.isEqual(this.previousMoodboardJSON, this.getMoodboardJSON())) {\n\t\t\t// moodboard has changed since last check\n\t\t\tthis.previousMoodboardJSON = this.getMoodboardJSON();\n\t\t\tthis.saveItems();\n\t\t}\n\t}\n\n\tgetMoodboardJSON() {\n\t\tlet data = {};\n\t\tlet items = [];\n\t\t\n\n\t\tthis.layer.getChildren((node) => {\n\t\t\tlet itemType = node.attrs.itemType;\n\n\t\t\tif (itemType === 'swatch' || itemType === 'image' || itemType === 'notes') {\n\t\t\t\tlet item = {};\n\t\t\t\titem.type = itemType;\n\t\t\t\titem.transformation = node.toJSON();\n\n\t\t\t\tif (itemType === 'swatch') {\n\t\t\t\t\titem.swatch = {\n\t\t\t\t\t\t'id': node.attrs.swatchId,\n\t\t\t\t\t\t'fullImageSrc': node.attrs.swatchImgSrc,\n\t\t\t\t\t};\n\t\t\t\t} else if (itemType === 'image') {\n\t\t\t\t\titem.imageUrl = node.attrs.imgSrc;\n\t\t\t\t}\n\n\t\t\t\titems.push(item);\n\t\t\t}\n\t\t});\n\n\t\tdata.id = this.moodboardId;\n\t\tdata.title = this.moodboardName;\n\t\tdata.items = items;\n\n\t\treturn data;\n\t}\n\n\t\n\n\tgetItems() {\n\t\tlet url = `${this.getMoodboardApi}?moodboardId=${this.moodboardId}`;\n\n\t\tthis.$loadingScreen.addClass('active');\n\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\n\t\t\t\tthis.moodboardName = data.title;\n\t\t\t\tthis.moodboardId = data.id;\n\n\t\t\t\tif (data.items.length > 0) {\n\t\t\t\t\tlet newItemInt = 0;\n\n\t\t\t\t\tdata.items.forEach((item, i) => {\n\t\t\t\t\t\tlet transformationAttrs;\n\n\t\t\t\t\t\tif (item.transformation) {\n\t\t\t\t\t\t\tlet transformation = JSON.parse(item.transformation);\n\t\t\t\t\t\t\tif (transformation.attrs) {\n\t\t\t\t\t\t\t\ttransformationAttrs = transformation.attrs;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet offsetX = 100 + (this.newItemGridSpacing * newItemInt);\n\t\t\t\t\t\tlet offsetY = 100;\n\n\t\t\t\t\t\tlet pos = {x: offsetX, y: offsetY};\n\n\t\t\t\t\t\tif (!transformationAttrs) {\n\t\t\t\t\t\t\tnewItemInt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item.type === 'image' || item.type === 'swatch') {\n\t\t\t\t\t\t\tthis.generateImage(pos, item, transformationAttrs);\n\t\t\t\t\t\t} else if (item.type === 'notes') {\n\t\t\t\t\t\t\tthis.generateNote(pos, false, transformationAttrs);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t},\n\t\t\terror: (error) => {\n\t\t\t},\n\t\t\tcomplete: () => {\n\t\t\t\t$('#InteractiveMoodboardName').html(this.moodboardName);\n\t\t\t},\n\t\t});\n\t}\n\n\tgenerateImage(pos, item, transformationAttrs) {\n\t\tconst This = this;\n\n\t\tlet imageObj = new Image();\n\n\t\timageObj.onload = function() {\n\t\t\tThis.scaleCenterView();\n\t\t}\n\n\t\tlet img = new Konva.Image({\n\t\t\tx: pos.x,\n\t\t\ty: pos.y,\n\t\t\timage: imageObj,\n\t\t\tdraggable: true,\n\t\t\tscaleX: 0.5,\n\t\t\tscaleY: 0.5,\n\t\t\tcornerRadius: 10,\n\t\t});\n\n\t\tif (transformationAttrs) {\n\t\t\timg.setAttrs(transformationAttrs);\n\t\t}\n\n\t\tif (item.type === 'image') {\n\t\t\timg.setAttrs({'itemType': 'image', 'imgSrc': item.imageUrl});\n\t\t} else {\n\t\t\timg.setAttrs({'itemType': 'swatch', 'swatchId': item.swatch.id, 'swatchImgSrc': item.swatch.fullImageSrc});\n\t\t\tThis.swatchIds.push(item.swatch.id);\n\t\t}\n\n\t\timg.on('mousedown touchstart', (e) => {\n\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\tThis.transformer.nodes([img]);\n\t\t\t\tThis.transformer.rotateEnabled(true);\n\t\t\t\tThis.layer.add(This.transformer);\n\n\t\t\t\tThis.activeImageCanvasId = img._id;\n\n\t\t\t\tif (item.type === 'image') {\n\t\t\t\t\tThis.openSelectOptions();\n\t\t\t\t} else {\n\t\t\t\t\tThis.openSelectOptions(item.swatch.id);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\timg.on('mouseenter', (e) => {\n\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\tThis.stage.container().style.cursor = 'pointer';\n\t\t\t}\n\t\t});\n\n\t\timg.on('mouseleave', (e) => {\n\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\tThis.stage.container().style.cursor = 'grab';\n\t\t\t}\n\t\t});\n\n\t\tThis.layer.add(img);\n\t\t\n\t\tif (item.type === 'image') {\n\t\t\timageObj.src = item.imageUrl;\n\t\t} else {\n\t\t\timageObj.src = item.swatch.fullImageSrc;\n\t\t}\n\t}\n\n\tgenerateNote(pos, openNotepad, transformationAttrs) {\n\t\tconst This = this;\n\t\tlet svgUrl = '../assets/images/singles/moodboard-note.svg';\n\n\t\tKonva.Image.fromURL(this.moodboardNoteImg, (imageNode) => {\n\t\t\tThis.layer.add(imageNode);\n\n\t\t\timageNode.setAttrs({\n\t\t\t\tx: pos.x,\n\t\t\t\ty: pos.y,\n\t\t\t\twidth: 80,\n\t\t\t\theight: 80,\n\t\t\t\tdraggable: true,\n\t\t\t\tdataNote: ' ',\n\t\t\t\titemType: 'notes',\n\t\t\t});\n\n\t\t\tif (transformationAttrs) {\n\t\t\t\timageNode.setAttrs(transformationAttrs);\n\t\t\t}\n\n\t\t\t// on note clicked add to transform node\n\t\t\timageNode.on('mousedown touchstart', (e) => {\n\t\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\t\tThis.transformer.nodes([imageNode]);\n\t\t\t\t\tThis.transformer.rotateEnabled(false);\n\t\t\t\t\tThis.layer.add(This.transformer);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// on note clicked open up notepad\n\t\t\timageNode.on('mouseup touchend', (e) => {\n\t\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\t\tif (imageNode.getAttr('dataNote')) {\n\t\t\t\t\t\tThis.openNotepad({\n\t\t\t\t\t\t\tdataNote: imageNode.getAttr('dataNote'),\n\t\t\t\t\t\t\tid: imageNode._id,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tThis.openNotepad();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\timageNode.on('mouseenter', (e) => {\n\t\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\t\tThis.stage.container().style.cursor = 'pointer';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\timageNode.on('mouseleave', (e) => {\n\t\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\t\tThis.stage.container().style.cursor = 'grab';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (openNotepad) {\n\t\t\t\tThis.transformer.nodes([imageNode]);\n\t\t\t\tThis.transformer.moveToTop();\n\t\t\t\tThis.transformer.rotateEnabled(false);\n\t\t\t\tThis.layer.add(This.transformer);\n\t\t\t\tThis.openNotepad({\n\t\t\t\t\tdataNote: imageNode.getAttr('dataNote'),\n\t\t\t\t\tid: imageNode._id,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tactivateAddNote() {\n\t\tthis.stage.container().style.cursor = `url(${this.noteCursorImg}), auto`;\n\t\tthis.$addNoteBtn.addClass('active');\n\t\tthis.isAddNoteActive = true;\n\t}\n\tdeactivateAddNote() {\n\t\tthis.stage.container().style.cursor = 'auto';\n\t\tthis.$addNoteBtn.removeClass('active');\n\t\tthis.isAddNoteActive = false;\n\t}\n\n\thandleCanvasButtons() {\n\t\tthis.$resetCanvasBtn.on('click', (e) => {\n\t\t\tthis.scaleCenterView();\n\t\t});\n\n\t\tthis.$resetCanvasBtn.on('mouseover', (e) => {\n\t\t\tthis.$resetCanvasBtn.css('cursor','pointer').attr('title',this.centreHoverText);\n\t\t\t\n\t\t});\n\n\t\tthis.$addNoteBtn.on('click', (e) => {\n\t\t\t// this.openNotepad();\n\t\t\tif (this.$addNoteBtn.hasClass('active')) {\n\t\t\t\tthis.deactivateAddNote();\n\t\t\t} else {\n\t\t\t\tthis.activateAddNote();\n\t\t\t}\n\t\t});\n\t\tthis.$addNoteBtn.on('mouseover', (e) => {\n\t\t\tthis.$addNoteBtn.css('cursor','pointer').attr('title',this.notesHoverText);\n\t\t});\n\t\tthis.$zoomInBtn.on('click', (e) => {\n\t\t\tthis.scale = this.zoom(this.stage, this.scale, this.zoomIncriment);\n\t\t});\n\t\tthis.$zoomOutBtn.on('click', (e) => {\n\t\t\tthis.scale = this.zoom(this.stage, this.scale, -this.zoomIncriment);\n\t\t});\n\n\t\tthis.$persistentDrawAddMoodboardBtn.on('click', () => {\n\t\t\tlet selectedSwatches = [];\n\t\t\tthis.$persistentDrawSwatches.find('.woolLabPersistentSwatchDrawer-swatch.selected').each(function(i, item) {\n\t\t\t\tlet selectedSwatch = {'id': $(item).attr('data-id'), 'fullImageSrc': $(item).attr('data-img-src') };\n\t\t\t\tselectedSwatches.push(selectedSwatch);\n\t\t\t});\n\t\t\tthis.addSwatchesToMoodboard(selectedSwatches);\n\t\t});\n\t}\n\n\thandleNotepadButtons() {\n\t\tthis.$notepadCloseBtn.on('click', (e) => {\n\t\t\tthis.closeNotepad();\n\t\t});\n\t\tthis.$notepadPostBtn.on('click', (e) => {\n\t\t\tthis.closeNotepad();\n\t\t\tthis.saveItems();\n\t\t});\n\t\tthis.$notepadDeleteBtn.on('click', (e) => {\n\t\t\tthis.closeNotepad();\n\t\t\tthis.removeItemFromMoodboard(this.activeNoteId);\n\t\t});\n\t}\n\n\tremoveItemFromMoodboard(itemCanvasId) {\n\t\tconst This = this;\n\t\tthis.layer.getChildren(function(node) {\n\t\t\tif (node._id === itemCanvasId) {\n\t\t\t\tnode.destroy();\n\t\t\t\tThis.transformer.nodes([]);\n\t\t\t}\n\t\t});\n\t\tthis.saveItems();\n\t}\n\n\tscaleCenterView() {\n\t\tlet padding = 50;\n\n\t\tlet yMin = 0;\n\n\t\tlet xMin = 0;\n\t\tlet xMax = 1000;\n\t\tthis.layer.getChildren(function (node) {\n\t\t\tif (node.attrs.x < xMin) {\n\t\t\t\txMin = node.attrs.x;\n\t\t\t}\n\n\t\t\tlet nodeWidth = 0;\n\n\t\t\tif (node.getClassName() === 'Image') {\n\t\t\t\tif (node.attrs.width) {\n\t\t\t\t\tnodeWidth = node.attrs.width;\n\t\t\t\t} else if (node.attrs.image.width) {\n\t\t\t\t\tnodeWidth = node.attrs.image.width;\n\t\t\t\t\tlet scaleX = node.attrs.scaleX ? node.attrs.scaleX : 1;\n\t\t\t\t\tnodeWidth = scaleX * nodeWidth;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.attrs.x + nodeWidth > xMax) {\n\t\t\t\txMax = node.attrs.x + nodeWidth;\n\t\t\t}\n\n\t\t\tif (node.attrs.y < yMin) {\n\t\t\t\tyMin = node.attrs.y;\n\t\t\t}\n\t\t});\n\n\t\tlet xDif = xMax - xMin + (2 * padding);\n\t\tthis.scale = this.stage.width() / xDif;\n\n\t\tlet xPos = (xMin - padding) * -this.scale;\n\t\tlet yPos = (yMin - padding) * -this.scale;\n\n\t\tthis.stage.scale({x: this.scale, y: this.scale});\n\t\tthis.stage.position({x: xPos, y: yPos});\n\t}\n\n\n\tzoom(stage, zoomBefore, inc) {\n\t\tlet oldScale = stage.scaleX();\n\n\t\tlet zoomPoint = {\n\t\t\tx: ((stage.width() / 2) - stage.x()) / oldScale,\n\t\t\ty: ((stage.height() / 2) - stage.y()) / oldScale,\n\t\t};\n\n\t\tlet zoomAfter = zoomBefore + (zoomBefore * inc);\n\n\t\tstage.scale({x: zoomAfter, y: zoomAfter});\n\n\t\tlet newPos = {\n\t\t\tx: (stage.width() / 2) - zoomPoint.x * zoomAfter,\n\t\t\ty: (stage.height() / 2) - zoomPoint.y * zoomAfter,\n\t\t};\n\n\t\tstage.position(newPos);\n\n\t\treturn zoomAfter;\n\t}\n\n\topenSelectOptions(swatchId) {\n\t\tif (swatchId) {\n\t\t\tthis.activeSwatchId = swatchId;\n\t\t\tthis.$selectOptionsAddMySwatchedBtn.addClass('active');\n\t\t} else {\n\t\t\tthis.$selectOptionsAddMySwatchedBtn.removeClass('active');\n\t\t}\n\t\tthis.$selectOptionsPanel.addClass('active');\n\t\tthis.closeNotepad();\n\t}\n\tcloseSelectOptions() {\n\t\tthis.$selectOptionsAddMySwatchedBtn.removeClass('active');\n\t\tthis.$selectOptionsPanel.removeClass('active');\n\t}\n\n\topenNotepad({dataNote, id}) {\n\t\tthis.closeSelectOptions();\n\t\tif ( this.$notepad.hasClass('active')) {\n\t\t\tthis.saveNotepadText();\n\t\t}\n\n\t\tif (id) {\n\t\t\tthis.activeNoteId = id;\n\t\t}\n\n\t\tif (dataNote && typeof tinymce === 'object') {\n\t\t\t// eslint-disable-next-line no-undef\n\t\t\ttinymce.activeEditor.setContent(dataNote);\n\t\t}\n\n\t\tthis.$notepad.addClass('active');\n\t}\n\n\tcloseNotepad() {\n\t\tif (this.$notepad.hasClass('active')) {\n\t\t\tthis.saveNotepadText();\n\t\t\tthis.$notepad.removeClass('active');\n\t\t}\n\t}\n\n\tsaveNotepadText() {\n\t\tconst This = this;\n\n\t\tif (typeof tinymce === 'object') {\n\t\t\t// eslint-disable-next-line no-undef\n\t\t\tlet notepadContent = tinymce.activeEditor.getContent();\n\n\t\t\t// find active note and update text\n\t\t\tthis.layer.getChildren(function(node) {\n\t\t\t\tif (node._id === This.activeNoteId && notepadContent !== '') {\n\t\t\t\t\tnode.setAttr('dataNote', notepadContent);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\n\thandleOptionBtns() {\n\t\tthis.$optionsBtn.on('click', (e) => {\n\t\t\tthis.$optionsDropdown.toggleClass('active');\n\t\t});\n\n\n\t\tthis.$optionsRenameBtn.on('click', (e) => {\n\t\t\tthis.displayRenameMoodboardModal();\n\t\t});\n\n\t\tthis.$optionsShareBtn.on('click', (e) => {\n\t\t\tthis.generatePdf();\n\t\t});\n\n\t\tthis.$optionsDeleteBtn.on('click', (e) => {\n\t\t\tthis.$deleteMoodboardPanel.addClass('active');\n });\n\t}\n\n\thandleSelectOptionsButtons() {\n\t\tthis.$selectOptionsAddMySwatchedBtn.on('click', (e) => {\n\t\t\tthis.addSwatchToMySwatches();\n\t\t\tthis.closeSelectOptions();\n });\n\t\tthis.$selectOptionsRemoveBtn.on('click', (e) => {\n\t\t\tthis.removeItemFromMoodboard(this.activeImageCanvasId);\n\t\t\tthis.closeSelectOptions();\n });\n\t\tthis.$selectOptionsCloseBtn.on('click', (e) => {\n\t\t\tthis.closeSelectOptions();\n });\n\t}\n\n\taddSwatchToMySwatches() {\n\t\tlet url = `${this.addToMySwatchesApi}`;\n\n\t\tthis.$loadingScreen.addClass('active');\n\t\t$.ajax({\n\t\t\tdata: JSON.stringify([this.activeSwatchId]),\n\t\t\tdataType: 'json',\n\t\t\ttype: 'POST',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t},\n\t\t});\n\t}\n\n\thandleDeleteMoodboardBtns() {\n\t\tthis.$deleteMoodboardPanelDeleteBtn.on('click', (e) => {\n\t\t\tlet url = `${this.deleteMoodboardApi}`;\n\t\t\tlet data = JSON.stringify({id: this.moodboardId});\n\n\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\tthis.$deleteMoodboardPanel.removeClass('active');\n\n\n\t\t\tfetch(url, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdataType: 'json',\n\t\t\t\tbody: data\n\t\t\t}).then((response) => {\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\twindow.location.href = this.myMoodboardsUrl;\n\t\t\t}).catch((_error) => {\n\t\t\t});\n\t\t});\n\n\t\tthis.$deleteMoodboardPanelCancelBtn.on('click', (e) => {\n\t\t\tthis.$deleteMoodboardPanel.removeClass('active');\n });\n\t\tthis.$deleteMoodboardPanel.on('click', (e) => {\n\t\t\tif ($(e.target).hasClass(`${CLS}-mooboardDelete-background`)) {\n\t\t\t\tthis.$deleteMoodboardPanel.removeClass('active');\n\t\t\t}\n });\n\t}\n\n\tgetShareSwatchModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabShareSwatchModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabShareSwatchModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabShareSwatchModalBlock\n\t\t\t\twg=\"woolLabShareSwatchModalBlock\"\n\t\t\t\tns=\"WoolLabShareSwatchModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tgeneratePdf(){\n\t\tlet stageCopy = this.stage.clone();\n\t\tvar width = this.stage.width() / this.scale;\n\t\tvar height = this.stage.height() / this.scale;\n\t\tvar posX = -this.stage.x() / this.scale;\n\t\tvar posY = -this.stage.y() / this.scale;\n\n\n var pdf = new jsPDF('l', \"pt\", [width, height]);\n\n\t\tvar layer = new Konva.Layer();\n\t\tstageCopy.add(layer);\n\n\t\tvar background = new Konva.Rect({\n\t\t\tx: posX,\n\t\t\ty: posY,\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tfill: '#F9F9F9'\n\t\t});\n\n\t\tlayer.add(background);\n\t\tlayer.moveToBottom();\n\n\t\tpdf.addImage(\n\t\t\tstageCopy.toDataURL({ mimeType: 'image/jpeg', pixelRatio: 3, quality: 1 }),\n\t\t\t'jpeg',\n\t\t\t0,\n\t\t\t0,\n\t\t\twidth,\n\t\t\theight\n\t\t);\n\n\t\tvar notes = stageCopy.find(node => {\n\t\t\treturn node.attrs.itemType == 'notes';\n\t\t});\n\n\t\tif (notes.length > 0){\n\t\t\tlet nodeIndex = 0;\n\t\t\tlet pageCount = 1;\n\t\t\tlet columnSplit = 4;\n\t\t\tlet dataPageWidth = 1500;\n\t\t\tlet dataPageHeight = dataPageWidth * (height / width);\n\t\t\tlet margin = dataPageWidth / 20;\n\t\t\tlet columnWidth = dataPageWidth / columnSplit - margin;\n\n\t\t\t//We use this recursive function due to an issue with jsPDF.html() - it can't render multiple html elements concurrently\n\t\t\t//Using this recursive function allows us to add one element at a time\n\t\t\tlet addNote = () => {\n\t\t\t\tif (nodeIndex < notes.length) {\n\t\t\t\t\tlet n = notes[nodeIndex];\n\t\t\t\t\tlet nWidth = n.getAttr('width') * n.getAttr('scaleX');\n\t\t\t\t\tlet noteTitle = `<p style=\"text-align:center; width:${nWidth}; font-size:${n.getAttr('scaleX')}rem; font-weight:600\">Note ${nodeIndex+1}</p>`;\n\t\t\t\t\tlet dataPageTitle = `<p style=\"text-align:center; width:${nWidth}; font-weight:600\">Note ${nodeIndex+1}</p>`;\n\t\t\t\t\t\n\t\t\t\t\t// First add the 'Note x' on the note image on canvas\n\t\t\t\t\tpdf.html(noteTitle,{\n\t\t\t\t\t\tx: n.getAttr('x') - posX + 2,\n\t\t\t\t\t\ty: n.getAttr('y') - posY,\n\t\t\t\t\t\twidth: nWidth,\n\t\t\t\t\t\twindowWidth: nWidth,\n\t\t\t\t\t\thtml2canvas: {\n\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0)\",\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tcallback: () =>{\n\t\t\t\t\t\t\tif (ceil((nodeIndex+1) / columnSplit) >= pageCount){\n\t\t\t\t\t\t\t\tpdf.addPage([dataPageHeight, dataPageWidth]);\n\t\t\t\t\t\t\t\tpageCount++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tpdf.setPage(pageCount);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//Then add the actual contents of the note on a new page\n\t\t\t\t\t\t\tlet colIndex = (nodeIndex % columnSplit);\n\t\t\t\t\t\t\tpdf.html(dataPageTitle + n.getAttr('dataNote'),{\n\t\t\t\t\t\t\t\tx: ((columnWidth + margin * ((columnSplit-1) / columnSplit)) * colIndex) + margin,\n\t\t\t\t\t\t\t\ty: (dataPageHeight * (pageCount - 1)) + margin,\n\t\t\t\t\t\t\t\twidth: columnWidth - (margin / (columnSplit + 1)),\n\t\t\t\t\t\t\t\twindowWidth: columnWidth,\n\t\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\t\tnodeIndex++;\n\t\t\t\t\t\t\t\t\tpdf.setPage(1);\n\t\t\t\t\t\t\t\t\taddNote();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpdf.save();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\taddNote();\n\t\t}\n\t}\n\n\tdisplayShareSwatchModal() {\n\t\t$(document.body).append(this.getShareSwatchModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabShareSwatchModalBlock');\n\n\t\tlet modalData = {};\n\t\tmodalData.shareSwatchesApi = this.shareSwatchesApi;\n\t\tmodalData.selectedSwatchIds = this.swatchIds;\n\n\t\tnew WoolLabShareSwatchModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\t}\n\n\tgetRenameMoodboardModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabRenameMoodboardModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabRenameMoodboardModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabRenameMoodboardModalBlock\n\t\t\t\twg=\"woolLabRenameMoodboardModalBlock\"\n\t\t\t\tns=\"WoolLabRenameMoodboardModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplayRenameMoodboardModal() {\n\t\t$(document.body).append(this.getRenameMoodboardModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabRenameMoodboardModalBlock');\n\n\t\tnew WoolLabRenameMoodboardModalBlock($modal[0]);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\tlet input = $('.woolLabRenameMoodboardModalBlock-shareSwatch-textInput').val().trim();\n\t\t\tif (input.length > 0) {\n\t\t\t\tthis.moodboardName = input;\n\t\t\t\tthis.saveItems();\n\t\t\t}\n\t\t$modal.remove();\n\t\t$('body').css('padding-right', '');\n\t\t\t\n\t\t});\n\n\t\t\n\t}\n\n\n\taddSwatchesToMoodboard(items) {\n\t\tconst This = this;\n\t\tif (items.length > 0) {\n\t\t\titems.forEach((item, i) => {\n\t\t\t\tlet pos = {x: 100 + (i * this.newItemGridSpacing), y: 100 };\n\t\t\t\tlet swatchItem = {'type': 'swatch', 'swatch': item};\n\t\t\t\tThis.generateImage(pos, swatchItem);\n\t\t\t});\n\t\t}\n\t\tthis.saveSwatchesFromPD();\n\t}\n}\n","const NS = 'WoolLabMyMoodboardsBlock';\nconst CLS = 'woolLabMyMoodboardsBlock';\n\nimport Handlebars from 'handlebars';\nimport { param } from 'jquery';\nimport utils from '../utils';\n\n\nexport class WoolLabMyMoodboardsBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.$moodboardContainer = this.$el.find(`.${CLS}-moodboards`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$myMoodboardsEmpty = this.$el.find(`.${CLS}-myMoodboards-empty`);\n\n\t\tthis.moodboardContainer = [];\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.loadingMoodboards = false;\n\t\tthis.allMoodboardsLoaded = false;\n\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.moodboardBaseUrl = this.$el.data('moodboardBaseUrl');\n\t\tthis.$moodboards = this.$el.find(`.${CLS}-moodboard`);\n\n\t\tthis.pageSize = 30;\n\t\tthis.pageNumber = 1;\n\n\t\tthis.params = {\n\t\t\t// siteId: this.siteId,\n\t\t\tcount: this.pageSize,\n\t\t\toffset: 0,\n\t\t\t// pageSize: this.pageSize,\n\t\t\t// keyword: this.$searchInp.val() || ''\n\t\t};\n\n\t\tthis.handleSearchInput();\n\t\tthis.handleScrollLoading();\n\t\tthis.getItems(false);\n\t}\n\n\n\t// Get items (reload content)\n\tgetItems(loadMoreMoodboards) {\n\n\t\tif (!this.loadingMoodboards && !this.allMoodboardsLoaded) {\n\t\t\tthis.loadingMoodboards = true;\n\n\t\t\tlet url = this.getMoodboardsApi;\n\n\t\t\tif (loadMoreMoodboards) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\turl += `?${$.param(this.params)}`;\n\t\t\t}\n\n\t\t\tthis.updateUrl();\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\n\t\t\t\t\tthis.$myMoodboardsEmpty.hide();\n\n\t\t\t\t\tif (!loadMoreMoodboards) {\n\t\t\t\t\t\tthis.$moodboardContainer.empty();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet moodboardMarkup = (moodboard) => {\n\t\t\t\t\t\tlet imgMarkup = '';\n\t\t\t\t\t\tif (moodboard.images.length > 0) {\n\t\t\t\t\t\t\tfor (let i = 0; i < 4; i++) {\n\t\t\t\t\t\t\t\timgMarkup += (`<img class=\"${CLS}-moodboard-image\" src=\"${moodboard.images[i % moodboard.images.length]}\">`)\n \t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet markup = `\n\t\t\t\t\t\t\t<div class=\"${CLS}-moodboard ${moodboard.newContent ? 'newContent' : ''}\" data-id=\"${moodboard.id}\" data-name=\"${moodboard.name}\">\n\t\t\t\t\t\t\t\t<a>\n\t\t\t\t\t\t\t\t\t<div class=\"${CLS}-moodboard-image-container\">`\n\t\t\t\t\t\t\t\t\t\t+ imgMarkup +\n\t\t\t\t\t\t\t\t\t`</div>\n\t\t\t\t\t\t\t\t\t<h3 class=\"${CLS}-moodboard-title\">${moodboard.name}</h3>\n\t\t\t\t\t\t\t\t\t<p class=\"${CLS}-moodboard-count\">${moodboard.swatchCount} ${moodboard.swatchCount === 1 ? 'swatch' : 'swatches'}</p>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</div>`;\n\n\t\t\t\t\t\treturn markup;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\tthis.$moodboardContainer.append(moodboardMarkup(item));\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.$moodboards = this.$el.find(`.${CLS}-moodboard`);\n\t\t\t\t\t\tthis.$moodboards.on('click', (ele) => {\n\t\t\t\t\t\t\tvar moodboard = $(ele.currentTarget);\n\t\t\t\t\t\t\twindow.location.href = `${this.moodboardBaseUrl}?id=${moodboard.data('id')}`\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreMoodboards) {\n\t\t\t\t\t\t\tthis.allMoodboardsLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$myMoodboardsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingMoodboards = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, this.params[key]);\n\t\t});\n\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t}\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tlet input = $(event.currentTarget).val().trim();\n\t\t\tlet filter = input.toUpperCase();\n\n\t\t\tif (this.$moodboards.length > 0) {\n\t\t\t\tthis.$moodboards.map((i, obj) => {\n\t\t\t\t\tlet txtValue = $(obj).attr('data-name');\n\t\t\t\t\tif (txtValue.toUpperCase().indexOf(filter) > -1) {\n\t\t\t\t\t\tobj.style.display = '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.style.display = 'none';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tvar totalMoodboard = 0;\n var displayNone = 0;\n $(\".woolLabMyMoodboardsBlock-moodboard\").each(function() {\n totalMoodboard++;\n });\n $(\".woolLabMyMoodboardsBlock-moodboard\").each(function() {\n if($( this ).css(\"display\") == \"none\"){\n displayNone ++;\n }\n });\n if (displayNone == totalMoodboard) {\n\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\n\thandleScrollLoading() {\n\n\t\tlet offsetFromBottom = 200;\n\n\t\tconst This = this;\n\n\t\t$(document).on('touchmove', onScroll); // for mobile\n\t\tfunction onScroll() {\n\t\t\tif ($(window).scrollTop() + offsetFromBottom > $(document).height() - $(window).height()-100) {\n\t\t\t\tThis.getItems(true);\n\t\t\t}\n\t\t}\n\n\t\t$(window).scroll(function() {\n\t\t\tlet position = $(window).scrollTop() + offsetFromBottom;\n\t\t\tlet bottom = $(document).height() - $(window).height();\n\n\t\t\tif ( position >= bottom ) {\n\t\t\t This.getItems(true);\n\t\t\t}\n\t\t });\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","const NS = 'WoolLabMySwatchesBlock';\nconst CLS = 'woolLabMySwatchesBlock';\nconst CLS_MB_ACTIVE = 'is-active';\n\nimport Handlebars from 'handlebars';\nimport { param } from 'jquery';\nimport { WoolLabSwatchBlock } from './woolLabSwatchBlock';\nimport {WoolLabShareSwatchModalBlock} from './woolLabShareSwatchModalBlock';\nimport utils from '../utils';\nimport { forEach, identity } from 'lodash';\n\n\nexport class WoolLabMySwatchesBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.$filterKeys = this.$el.find(`[data-filter-key]`);\n\t\tthis.$filterDropdown = this.$el.find(`.${CLS}-filters-dropdown`);\n\t\tthis.$filterDropdownBtn = this.$el.find(`.${CLS}-filters-dropdown-btn`);\n\t\tthis.$fabricSwatches = this.$el.find(`.${CLS}-swatches`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$loadMoreSpinner = this.$el.find(`.${CLS}-loadMore-spinner`);\n\t\tthis.fabricSwatches = [];\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\t\tthis.$refineFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnRefine`);\n\t\tthis.$clearFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnClear`);\n\t\tthis.$selectFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnSelect`);\n\t\tthis.$filterRefined = this.$el.find(`.${CLS}-searchBar-refined`);\n\t\tthis.$selectBtns = this.$el.find(`.${CLS}-swatchSelect-buttons`);\n\t\tthis.$season = this.$el.find(`#season`);\n\t\tthis.$theme = this.$el.find(`#theme`);\n\t\tthis.$certified = this.$el.find(`#certified`);\n\t\tthis.$supplier = this.$el.find(`#supplier`);\n\t\tthis.$country = this.$el.find(`#country`);\n\t\tthis.$benefits = this.$el.find(`#benefits`);\n\t\tthis.$archived = this.$el.find(`#archived`);\n\n\t\tthis.$displayGridBtn = this.$el.find(`.${CLS}-displayTglBtn.gridBtn`);\n\t\tthis.$displayListViewBtn = this.$el.find(`.${CLS}-displayTglBtn.listViewBtn`);\n\t\tthis.getAllThemes = this.$el.find(`#theme`).data('allThemes');\n\n\t\tthis.shareSwatchesApi = this.$el.data('shareSwatchesApi');\n\t\tthis.removeSwatchesApi = this.$el.data('removeSwatchesApi');\n\t\tthis.getSupplierInfoApi = this.$el.data('supplierInfoApi');\n\n\t\tthis.getSwatchDetailApi = this.$el.data('swatchDetailApi');\n\t\tthis.getSupplierDetailApi = this.$el.data('getSupplierDetailApi');\n\t\tthis.isInMySwatchesApi = this.$el.data('isInMySwatchesApi');\n\t\tthis.getSwatchesApi = this.$el.data('swatchesApi');\n\t\tthis.getFiltersApi = this.$el.data('filtersApi');\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.createMoodboardApi = this.$el.data('createMoodboardApi');\n\t\tthis.addToMoodboardApi = this.$el.data('addToMoodboardApi');\n\t\tthis.isStudent= this.$el.data('isstudent');\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.loadingSwatches = false;\n\t\tthis.allSwatchesLoaded = false;\n\n\t\tthis.$swatchBlock = [];\n\n\t\tthis.$removePanel = this.$el.find(`.${CLS}-swatchSelect-removePanel`);\n\t\tthis.$removePanelRemoveBtn = this.$el.find(`.${CLS}-swatchSelect-removePanel-remove`);\n\t\tthis.$removePanelCancelBtn = this.$el.find(`.${CLS}-swatchSelect-removePanel-cancel`);\n\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$swatchSelectPanel = this.$el.find(`.${CLS}-swatchSelect-panel`);\n\t\tthis.$swatchSelectCount = this.$el.find(`.${CLS}-swatchSelect-text-count`);\n\t\tthis.$swatchSelectClearBtn = this.$el.find(`.${CLS}-swatchSelect-clear-btn`);\n\n\t\tthis.$swatchSelectGetSupplierBtn = this.$el.find(`.${CLS}-swatchSelect-getSupplier`);\n\t\tthis.$swatchSelectShareBtn = this.$el.find(`.${CLS}-swatchSelect-share`);\n\t\tthis.$swatchSelectRemoveBtn = this.$el.find(`.${CLS}-swatchSelect-remove`);\n\n\t\tthis.$swatchSelectSaveBtn = this.$el.find(`.${CLS}-swatchSelect-save-btn`);\n\n\t\tthis.pageSize = 30;\n\t\tthis.pageNumber = 1;\n\n\t\tvar url_string = window.location.href; \n\t\tvar url = new URL(url_string);\n\t\tthis.$urlkeyword = url.searchParams.get(\"keyword\");\n\t\tthis.$urltheme = url.searchParams.get(\"theme\");\n\t\tthis.$urlseason = url.searchParams.get(\"season\");\n\t\tthis.$urlcertified = url.searchParams.get(\"certified\");\n\t\tthis.$urlcountry = url.searchParams.get(\"country\");\n\t\tthis.$urlsupplier = url.searchParams.get(\"supplier\");\n\t\tthis.$urlbenefits = url.searchParams.get(\"benefits\");\n\t\tthis.$urlarchived = url.searchParams.get(\"archived\");\n\t\t//this.$urlcolour = url.searchParams.get(\"colour\");\n\t\t//this.$urlweight = url.searchParams.get(\"weight\");\n\t\t//this.$urlcharacteristic = url.searchParams.get(\"characteristic\");\n\n\t\tthis.initParams();\n\t\t$('.selectpicker').selectpicker('destroy').selectpicker();\n\t\tthis.handleDisplayToggleButtons();\n\t\tthis.handleSearchInput();\n\t\tthis.handleFilterToggleBtn(this.getAllThemes);\n\t\tthis.handleSavePanelBtns();\n\t\tthis.handleRemovePanelBtns();\n\t\tthis.handlePanelBtnsVisibility();\n\t\tthis.handleScrollLoading();\n\t\tthis.getFilters(false);\n\t\tthis.getItems(false);\n\t\tthis.initFilterKeys();\n\n\t\tthis.initFeatureFlags();\n\n\t}\n\n\tinitParams(){\n\t\tthis.params = {\n\t\t\t// siteId: this.siteId,\n\t\t\tcount: this.pageSize,\n\t\t\toffset: 0,\n\t\t\t// pageSize: this.pageSize,\n\t\t\t// keyword: this.$searchInp.val() || ''\n\t\t\tkeyword: this.$urlkeyword || '',\n\t\t\ttheme: this.$urltheme || '',\n\t\t\tseason: this.$urlseason || '',\n\t\t\tcertified: this.$urlcertified || '',\n\t\t\tcountry: this.$urlcountry || '',\n\t\t\tsupplier: this.$urlsupplier || '',\n\t\t\tbenefits: this.$urlbenefits || '',\n\t\t\tarchived: this.$urlarchived || 'false'\n\t\t\t//colour: this.$urlcolour || '',\n\t\t\t//weight: this.$urlweight || '',\n\t\t\t//characteristic: this.$urlcharacteristic || ''\n\t\t};\n\t}\n\n\n\tgetWoolLabSwatchBlockTemplate() {\n\t\tlet woolLabSwatchBlock = require('../../partials/widgets/woolLabSwatchBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchBlock', woolLabSwatchBlock);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchBlock\n\t\t\t\twg=\"woolLabSwatchBlock\"\n\t\t\t\tns=\"WoolLabSwatchBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tgetFilters(archived){\n\t\tlet url = this.getFiltersApi;\n\t\tif (!_.isEmpty(this.params)) {\n\t\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\t\tif(key === \"archived\"){\n\t\t\t\t\turl = utils.updateQueryStringParameter(url, key, this.params[key]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.updateUrl();\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tif(archived != false){\n\t\t\t\t\t\tthis.$season.empty();\n\t\t\t\t\t\tthis.$theme.empty();\n\t\t\t\t\t\tthis.$certified.empty();\n\t\t\t\t\t\tthis.$supplier.empty();\n\t\t\t\t\t\tthis.$country.empty();\n\t\t\t\t\t\tthis.$benefits.empty();\n\t\t\t\t\t}\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\tif(item.name == \"season\" && item.options){\n\t\t\t\t\t\t\t\titem.seasonOptions.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlseason !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlseason.includes(options.name)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$season.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options.name+`'\">`+options.name+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$season.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options.name+`'\">`+options.name+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$season.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options.name+`'\">`+options.name+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"theme\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urltheme !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urltheme.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$theme.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$theme.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$theme.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"certified\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlcertified !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlcertified.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$certified.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$certified.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$certified.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"country\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlcountry !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlcountry.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$country.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$country.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$country.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"benefits\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlbenefits !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlbenefits.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"supplier\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlsupplier !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlsupplier.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$supplier.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$supplier.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$supplier.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(archived != false){\n\t\t\t\t\t\tthis.params.season = '';\n\t\t\t\t\t\tthis.params.theme = '';\n\t\t\t\t\t\tthis.params.certified = '';\n\t\t\t\t\t\tthis.params.country = '';\n\t\t\t\t\t\tthis.params.benefits = '';\n\t\t\t\t\t\tthis.params.supplier = '';\n\t\t\t\t\t}\n\t\t\t\t\tthis.selectpickerRefresh();\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tconsole.log(\"complete\");\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t}\n\n\tselectpickerRefresh(){\n\t\tthis.$theme.selectpicker('refresh');\n\t\tthis.$season.selectpicker('refresh');\n\t\tthis.$certified.selectpicker('refresh');\n\t\tthis.$country.selectpicker('refresh');\n\t\tthis.$benefits.selectpicker('refresh');\n\t\tthis.$supplier.selectpicker('refresh');\n\t}\n\t// Get items (reload content)\n\tgetItems(loadMoreSwatches) {\n\t\tif($(this.$searchResultsEmpty).hasClass(\"active\")){\n loadMoreSwatches = false;\n\t\t\t$(this.$loadingScreen).hide();\n }\n\t\tif (!this.loadingSwatches && (!this.allSwatchesLoaded || !loadMoreSwatches)) {\n\t\t\tthis.loadingSwatches = true;\n\n\t\t\tlet url = this.getSwatchesApi;\n\n\t\t\tif (loadMoreSwatches) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\t\t\turl = utils.updateQueryStringParameter(url, key, encodeURIComponent(this.params[key]));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.updateUrl();\n\n\t\t\tfetch(`${this.isStudent}`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t}).then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t\tthis.isStudentValue = _json;\n\t\t\t}).catch((_error) => { });\n\n\t\t\treturn $.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\tif (!loadMoreSwatches) {\n\t\t\t\t\t\tthis.$fabricSwatches.empty();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fabricSwatchMarkup = (markup) => {\n\t\t\t\t\t\treturn `\n\t\t\t\t\t\t\t<div class=\"${CLS}-swatch\">\n\t\t\t\t\t\t\t\t${(markup)}\n\t\t\t\t\t\t\t</div>`;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\t// item.userName = this.username;\n\t\t\t\t\t\t\titem.getSwatchDetailApi = this.getSwatchDetailApi;\n\t\t\t\t\t\t\titem.getSupplierDetailApi = this.getSupplierDetailApi;\n\t\t\t\t\t\t\titem.isInMySwatchesApi = this.isInMySwatchesApi;\n\t\t\t\t\t\t\titem.getMoodboardsApi = this.getMoodboardsApi;\n\t\t\t\t\t\t\titem.addToMoodboardApi = this.addToMoodboardApi;\n\t\t\t\t\t\t\titem.createMoodboardApi = this.createMoodboardApi;\n\t\t\t\t\t\t\titem.isStudent = this.isStudent;\n\t\t\t\t\t\t\tlet $column = this.$fabricSwatches.append(fabricSwatchMarkup(this.getWoolLabSwatchBlockTemplate()(item)));\n\t\t\t\t\t\t\tnew WoolLabSwatchBlock($column.find(`[data-wg=\"WoolLabSwatchBlock\"]`).last()[0], item);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.$swatchBlock = this.$el.find('.woolLabSwatchBlock');\n\t\t\t\t\t\tthis.handleSwatchBtn();\n\t\t\t\t\t\t// this.getMySwatches();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreSwatches) {\n\t\t\t\t\t\t\tthis.allSwatchesLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.addClass(\"active\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, encodeURIComponent(this.params[key]));\n\t\t});\n\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t}\n\n\n\t// Refined Filters toggle button\n\thandleDisplayToggleButtons() {\n\t\tthis.$displayGridBtn.on('click', () => {\n\t\t\tif (!this.$displayGridBtn.hasClass('selected')) {\n\t\t\t\tthis.$displayGridBtn.addClass('selected');\n\t\t\t\tthis.$el.addClass('displayGrid');\n\n\t\t\t\tthis.$displayListViewBtn.removeClass('selected');\n\t\t\t\tthis.$el.removeClass('displayListView');\n\t\t\t}\n\t\t});\n\t\tthis.$displayListViewBtn.on('click', () => {\n\t\t\tif (!this.$displayListViewBtn.hasClass('selected')) {\n\t\t\t\tthis.$displayListViewBtn.addClass('selected');\n\t\t\t\tthis.$el.addClass('displayListView');\n\n\t\t\t\tthis.$displayGridBtn.removeClass('selected');\n\t\t\t\tthis.$el.removeClass('displayGrid');\n\t\t\t}\n\t\t});\n\t}\n\n\thandleFilterToggleBtn(getAllThemes) {\n\t\tthis.$refineFilterBtn.on('click', () => {\n\t\t\tif(this.$refineFilterBtn.hasClass(CLS_MB_ACTIVE)) {\n\t\t\t\tthis.$refineFilterBtn.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$filterRefined.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$el.removeClass('refined-open');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$refineFilterBtn.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$filterRefined.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$el.addClass('refined-open');\n\t\t\t}\n\t\t});\n\n\t\tthis.$clearFilterBtn.on('click', () => {\n\t\t\tthis.initParams();\n\t\t\tthis.setPageNumber(1);\n\t\t\tthis.allSwatchesLoaded = false;\n\t\t\twindow.scrollTo(0, 0);\n\t\t\tthis.selectedSwatchIds = [];\n\t\t\tthis.updateSelectedSwatchCount();\n\t\t\tthis.selectpickerRefresh();\n\t\t\tthis.getItems(false);\n\t\t\tthis.$searchInp.val('');\n\t\t\t$(\".selectpicker\").selectpicker('deselectAll');\n\t\t\t$('#supplier').selectpicker('val', '');\n\t\t\t$('#certified').selectpicker('val', '');\n\t\t\t$('#archived').selectpicker('val', 'false');\n\t\t\tthis.$theme.selectpicker('val', '');\n\t\t\tthis.$season.selectpicker('val', '');\n\t\t\tthis.$certified.selectpicker('val', '');\n\t\t\tthis.$country.selectpicker('val', '');\n\t\t\tthis.$benefits.selectpicker('val', '');\n\t\t});\n\t\tthis.$selectFilterBtn.on('click', () => {\n\t\t\tif(this.$selectFilterBtn.hasClass(CLS_MB_ACTIVE)) {\n\t\t\t\tthis.$selectFilterBtn.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.selectedSwatchIds = [];\n\t\t\t\tthis.$swatchBlock.removeClass('selected')\n\t\t\t\tthis.updateSelectedSwatchCount();\n\t\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'none');\n\t\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'none');\n\t\t\t\tthis.$selectBtns.append('<button class=\"woolLabMySwatchesBlock-swatchSelect-getSupplier-btn btn btn--rounded\" disabled>Get Supplier Info</button>');\n\t\t\t\tthis.$selectBtns.append('<button class=\"woolLabMySwatchesBlock-swatchSelect-remove-btn btn btn--rounded\" disabled>Remove</button>');\t\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$selectFilterBtn.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.params.count = 1000;\n\t\t\t\tthis.getItems(true)\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.selectedSwatchIds = [];\n\t\t\t\t\tthis.$swatchBlock.addClass('selected');\n\t\t\t\t\tfor (let swatch of this.$swatchBlock){\n\t\t\t\t\t\t\tthis.selectedSwatchIds.push($(swatch).attr('data-id'));\n\t\t\t\t\t}\n\t\t\t\t\tthis.updateSelectedSwatchCount();\n\n\t\t\t\t\t// Now reset params to normal page size\n\t\t\t\t\tthis.params.count = this.pageSize;\n\t\t\t\t});\n\t\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'block');\n\t\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'block');\n\t\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-remove-btn').remove();\n\t\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-getSupplier-btn').remove();\n\t\t\t}\n\t\t});\n\t}\n\n\tinitFilterKeys() {\n\n\t\tthis.$woolLabSwatchBlock = this.$fabricSwatches.find(`[data-wg=\"WoolLabSwatchBlock\"]`);\n\t\tthis.$filterKeys.on('change', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tlet filterKey = $element.data('filterKey') || '';\n\t\t//let value = $element.attr('value') || '';\n\t\tlet value = [];\n\t\tvalue.push($element.val());\n\t\tthis.$el.find(`[data-filter-key=\"${filterKey}\"]`).removeClass('active');\n\t\t$element.addClass('active');\n\n\t\tif(!(_.isNil(this.params[filterKey]) && value === '')) {\n\t\t\t// Ensure that the filterKey does not match the current select value\n\t\t\tif(this.params[filterKey] !== value) {\n\t\t\t\tif(_.isNil(value) || value === '') {\n\t\t\t\t\tdelete this.params[filterKey];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(filterKey === \"benefits\"){\n\t\t\t\t\t\tvalue = value[0].join(\";\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.params[filterKey] = value;\n\t\t\t\t}\n\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSwatchesLoaded = false;\n\t\t\t\tif(filterKey === \"archived\"){\n\t\t\t\t\tthis.getFilters(true);\n\t\t\t\t}\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.params['keyword'] = $(event.currentTarget).val().trim();\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSwatchesLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t});\n\t}\n\n\n\t// Swatch button\n\thandleSwatchBtn() {\n\t\tthis.$swatchBlock.off('click.addSave');\n\t\tthis.$swatchBlock.on('click.addSave', (e) => {\n\t\t\tlet $target = $(e.target);\n\t\t\tlet $swatch = $(e.currentTarget);\n\t\t\t\n\t\t\tif ($target.hasClass('woolLabSwatchBlock-btnAddSave')) {\n\t\t\t\t// add to saved button clicked\n\n\t\t\t\tif ($swatch.hasClass('selected')) {\n\t\t\t\t\t$swatch.removeClass('selected');\n\t\t\t\t\tthis.$selectFilterBtn.removeClass(CLS_MB_ACTIVE);\n\n\t\t\t\t\tlet filteredItems = this.selectedSwatchIds.filter((item) => item !== $swatch.attr('data-id'));\n\t\t\t\t\tthis.selectedSwatchIds = filteredItems;\n\t\t\t\t\tthis.handlePanelBtnsVisibility();\n\t\t\t\t} else {\n\t\t\t\t\t// if first swatch is already saved to my swatches\n\t\t\t\t\tif (this.selectedSwatchIds == 0 && $swatch.attr('data-saved-myswatches') == 'true') {\n\t\t\t\t\t\tthis.$swatchSelectPanel.find('[data-location=\"mySwatches\"]').addClass('selected');\n\t\t\t\t\t}\n\n\t\t\t\t\t$swatch.addClass('selected');\n\t\t\t\t\tthis.selectedSwatchIds.push($swatch.attr('data-id'));\n\n\t\t\t\t\tif (this.$swatchBlock.toArray().every((swatch) => $(swatch).hasClass('selected'))){\n\t\t\t\t\t\tthis.$selectFilterBtn.addClass(CLS_MB_ACTIVE);\n\t\t\t\t\t}\n\t\t\t\t\tthis.handlePanelBtnsVisibility();\n\t\t\t\t}\n\t\t\t\tthis.updateSelectedSwatchCount();\n\t\t\t}\n\t\t});\n\t}\n\n\thandleScrollLoading() {\n\n\t\tlet offsetFromBottom = 200;\n\n\t\tconst This = this;\n\n\t\t$(document).on('touchmove', onScroll); // for mobile\n\t\tfunction onScroll() {\n\t\t\tif ($(window).scrollTop() + offsetFromBottom > $(document).height() - $(window).height()-400) {\n\t\t\t\tThis.getItems(true);\n\t\t\t}\n\t\t}\n\n\t\t$(window).scroll(function() {\n\t\t\tlet position = $(window).scrollTop() + offsetFromBottom;\n\t\t\tlet bottom = $(document).height() - $(window).height();\n\n\t\t\tif ( position >= bottom ) {\n\t\t\t This.getItems(true);\n\t\t\t}\n\t\t });\n\t}\n\n\n\thandleSavePanelBtns() {\n\t\tthis.$swatchSelectClearBtn.on('click', (e) => {\n this.resetSavePanel();\n });\n\n\t\tthis.$swatchSelectGetSupplierBtn.on('click', (e) => {\n\t\t\tlet url = `${this.getSupplierInfoApi}?swatchIds=${encodeURIComponent(this.selectedSwatchIds)}`;\n\n\t\t\twindow.open(url, '_blank').focus();\n\t\t\tthis.resetSavePanel();\n\t\t\tthis.handlePanelBtnsVisibility();\n\t\t});\n\n\t\tthis.$swatchSelectShareBtn.on('click', (e) => {\n\t\t\tthis.displayShareSwatchModal();\n\t\t});\n\n\t\tthis.$swatchSelectRemoveBtn.on('click', (e) => {\n\t\t\tthis.$removePanel.addClass('active');\n });\n\t}\n\n\thandleRemovePanelBtns() {\n\t\tthis.$removePanelRemoveBtn.on('click', (e) => {\n\t\t\tlet url = `${this.removeSwatchesApi}`;\n\t\t\tlet data = JSON.stringify(this.selectedSwatchIds);\n\n\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\tthis.$removePanel.removeClass('active');\n\t\t\tthis.resetSavePanel();\n\n\n\t\t\tfetch(url, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdataType: 'json',\n\t\t\t\tbody: data\n\t\t\t}).then((response) => {\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.getItems(false);\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t}).catch((_error) => {\n\t\t\t});\n\t\t});\n\n\t\tthis.$removePanelCancelBtn.on('click', (e) => {\n\t\t\tthis.$removePanel.removeClass('active');\n });\n\t}\n\n\thandlePanelBtnsVisibility() {\n\t\tif (this.selectedSwatchIds.length == 0){\n\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'none');\n\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'none');\n\t\t\tthis.$selectBtns.append('<button class=\"woolLabMySwatchesBlock-swatchSelect-getSupplier-btn btn btn--rounded\" disabled>Get Supplier Info</button>');\n\t\t\tthis.$selectBtns.append('<button class=\"woolLabMySwatchesBlock-swatchSelect-remove-btn btn btn--rounded\" disabled>Remove</button>');\n\t\t}\n\t\telse{\n\t\t\tif(this.isStudentValue === true)\n\t\t\t{\n\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'block');\n\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'none');\n\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-remove-btn').remove();\n\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-getSupplier-btn').remove();\n\t\t\t$('#supplier').css('display', 'none');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'block');\n\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'block');\n\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-remove-btn').remove();\n\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-getSupplier-btn').remove();\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (!this.shareSwatchesApi){\n\t\t\tthis.$swatchSelectShareBtn.remove();\n\t\t}\t\t\n\t}\n\n\tresetSavePanel() {\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$swatchBlock.removeClass('selected');\n\t\tthis.$selectFilterBtn.removeClass(CLS_MB_ACTIVE);\n\t\tthis.updateSelectedSwatchCount();\n\t}\n\n\n updateSelectedSwatchCount() {\n\t\tthis.$swatchSelectCount.html(this.selectedSwatchIds.length + (this.selectedSwatchIds.length == 1 ? ' swatch' : ' swatches'));\n\t\t// for hide and show the supplier bar, hide the function for now.\n /*if (this.selectedSwatchIds.length > 0 ) {\n\t\t\tthis.$swatchSelectPanel.addClass('active');\n } else {\n\t\t\tthis.$swatchSelectPanel.removeClass('active');\n }*/\n }\n\n\n\tgetShareSwatchModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabShareSwatchModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabShareSwatchModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabShareSwatchModalBlock\n\t\t\t\twg=\"woolLabShareSwatchModalBlock\"\n\t\t\t\tns=\"WoolLabShareSwatchModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplayShareSwatchModal() {\n\t\t$(document.body).append(this.getShareSwatchModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabShareSwatchModalBlock');\n\n\t\tlet modalData = {};\n\t\tmodalData.shareSwatchesApi = this.shareSwatchesApi;\n\t\tmodalData.selectedSwatchIds = this.selectedSwatchIds;\n\n\t\tnew WoolLabShareSwatchModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.params.count;\n\t}\n}\n","const NS = 'WoolLabOnboardingBlock';\nconst CLS = 'woolLabOnboardingBlock';\n\nimport Handlebars from 'handlebars';\nimport slick from 'slick-carousel';\n\nexport class WoolLabOnboardingBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.$questionsCarousel = this.$el.find(`.${CLS}-questionsCarousel`);\n\t\tthis.$questionContainer = this.$el.find(`.${CLS}-questionContainer`);\n\t\tthis.$nextBtn = this.$el.find(`.${CLS}-nextBtn`);\n\t\tthis.$prevBtn = this.$el.find(`.${CLS}-prevBtn`);\n\n\t\tthis.$progressBarInner = this.$el.find(`.${CLS}-progressBar-inner`);\n\n\t\tthis.$sliderPrevBtn = this.$el.find(`.${CLS}-slider-nextBtn`);\n\t\tthis.$sliderNextBtn = this.$el.find(`.${CLS}-slider-nextBtn`);\n\t\tthis.$questionCount = this.$el.find(`.${CLS}-questionCount`);\n\n\t\tthis.$startScreen = this.$el.find(`.${CLS}-startScreen`);\n\t\tthis.$startBtn = this.$el.find(`.${CLS}-startScreen-startBtn`);\n\t\tthis.$endScreen = this.$el.find(`.${CLS}-endScreen`);\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-loadingScreen`);\n\n\t\tthis.onLastSlide = false;\n\t\tthis.currentSlide = 1;\n\n\t\tthis.$form = this.$el.find(`.${CLS}-form`);\n\t\tthis.$formAction = this.$form.attr('action');\n\n\t\tthis.$questionsCarousel.on('init reInit afterChange', (event, slick, currentSlide, nextSlide) => {\n\t\t\tlet i = (currentSlide ? currentSlide : 0) + 1;\n\n\t\t\tthis.currentSlide = i;\n\n\t\t\tif (i / slick.slideCount >= 1) {\n\t\t\t\tthis.onLastSlide = true;\n\t\t\t} else {\n\t\t\t\tthis.onLastSlide = false;\n\t\t\t}\n\n\t\t\tthis.$questionCount.html('question ' + i + '/' + slick.slideCount);\n\t\t\tlet percentage = i/slick.slideCount;\n\t\t\tthis.$progressBarInner.css('transform', `scaleX(${percentage})`);\n\t\t});\n\n\t\tconst options = {\n\t\t\tinfinite: false,\n\t\t\tdraggable: false,\n\t\t\tdots: true,\n\t\t\tarrows: false,\n\t\t};\n\n\t\tthis.$questionsCarousel.slick(options);\n\n\t\t// Init\n\t\t$.each(this.$questionContainer, function() {\n\t\t\tconst checkboxes = $(this).find(`input[type=\"checkbox\"]`);\n\t\t\tconst radios = $(this).find(`input[type=\"radio\"]`);\n\t\t\tconst nextBtn = $(this).find('[data-next-btn]');\n\n\t\t\t// Field validation - radio\n\t\t\tradios.on('change', (event) => {\n\t\t\t\tnextBtn.removeClass('disabled');\n\t\t\t});\n\t\t\t\n\t\t\t// Field validation - checkboxes\n\t\t\tcheckboxes.on('change', (event) => {\n\t\t\t\tif($(checkboxes).is(':checked') ) {\n\t\t\t\t\tnextBtn.removeClass('disabled');\n\t\t\t\t} else {\n\t\t\t\t\tnextBtn.addClass('disabled');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// check if already ticked\n\t\t\tif ($(radios).is(':checked') ) {\n\t\t\t\tnextBtn.removeClass('disabled');\n\t\t\t}\n\t\t\tif ($(checkboxes).is(':checked') ) {\n\t\t\t\tnextBtn.removeClass('disabled');\n\t\t\t}\n\t\t});\n\n\t\tthis.handleButtons();\n\t}\n\n\thideScreen(elem) {\n\t\telem.css('opacity', '0');\n\t\telem.css('pointer-events', 'none');\n\t}\n\n\tshowScreen(elem) {\n\t\telem.css('opacity', '1');\n\t\telem.css('pointer-events', 'auto');\n\t}\n\n\thandleButtons() {\n\t\tthis.$startBtn.on('click', (event) => {\n\t\t\tthis.hideScreen(this.$startScreen);\n\t\t});\n\n\t\tthis.$prevBtn.on('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.$questionsCarousel.slick('slickPrev');\n\t\t\tif (this.currentSlide === 1) {\n\t\t\t\tthis.showScreen(this.$startScreen);\n\t\t\t} else {\n\t\t\t\tthis.$questionsCarousel.slick('slickPrev');\n\t\t\t}\n\t\t});\n\n\t\tthis.$nextBtn.on('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tif (this.onLastSlide) {\n\t\t\t\tthis.handleFormSubmission();\n\t\t\t} else {\n\t\t\t\tthis.$questionsCarousel.slick('slickNext');\n\t\t\t}\n\t\t});\n\n\t\tthis.$sliderNextBtn.on('click', (event) => {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (!$(event.target).hasClass('disabled')) {\n\t\t\t\tif (this.onLastSlide) {\n\t\t\t\t\tthis.handleFormSubmission();\n\t\t\t\t} else {\n\t\t\t\t\tthis.$questionsCarousel.slick('slickNext');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\thandleFormSubmission() {\n\t\tthis.$loadingScreen.addClass('active');\n\n\t\t$.ajax({\n\t\t\ttype: 'POST',\n\t\t\turl: this.$formAction,\n\t\t\tdata: this.$form.serialize(),\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\tthis.showScreen(this.$endScreen);\n\t\t\t},\n\t\t});\n\t}\n}\n","const NS = 'WoolLabPersistentSwatchDrawer';\nconst CLS = 'woolLabPersistentSwatchDrawer';\n\nimport Handlebars from 'handlebars';\nimport {WoolLabSwatchDetailModalBlock} from './woolLabSwatchDetailModalBlock';\n\n\nexport class WoolLabPersistentSwatchDrawer {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.addToMoodboardApi = this.$el.data('addToMoodboardApi');\n\t\tthis.getSwatchDetailApi = this.$el.data('swatchDetailApi');\n\t\tthis.getSupplierDetailApi = this.$el.data('getSupplierDetailApi');\n\t\tthis.isInMySwatchesApi = this.$el.data('isInMySwatchesApi');\n\t\tthis.getMySwatchesApi = this.$el.data('mySwatchesApi');\n\t\tthis.addToMySwatches = this.$el.data('addToMySwatchesApi');\n\t\tthis.useDetailsModal = this.$el.data('useDetailsModal');\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.createMoodboardApi = this.$el.data('createMoodboardApi');\n\t\tthis.isstudentApi = this.$el.data('isstudent');\n\n\t\tthis.$addToMoodboardBtn = this.$el.find(`.${CLS}-addToMoodboardBtn`);\n\t\tthis.$openBtn = this.$el.find(`.${CLS}-openBtn`);\n\t\tthis.$panel = this.$el.find(`.${CLS}-panel`);\n\t\tthis.$closeBtn = this.$el.find(`.${CLS}-closeBtn`);\n\t\tthis.$background = this.$el.find(`.${CLS}-background`);\n\n\t\tthis.$fabricSwatches = this.$el.find(`.${CLS}-swatches`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.fabricSwatches = [];\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.loadingSwatches = false;\n\n\t\tthis.$swatchBlock = [];\n\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$swatchSelectPanel = this.$el.find(`.${CLS}-swatchSelect-panel`);\n\n\t\tthis.handleButtons();\n\t}\n\n\tgetSwatches() {\n\n\t\tif (!this.loadingSwatches) {\n\n\t\t\tthis.selectedSwatchIds = [];\n\t\t\tthis.loadingSwatches = true;\n\t\t\tlet url = this.getMySwatchesApi;\n\t\t\tthis.$loadingScreen.addClass('active');\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\tthis.$fabricSwatches.empty();\n\n\t\t\t\t\tlet fabricSwatchMarkup = (swatch) => {\n\t\t\t\t\t\treturn `\n\t\t\t\t\t\t\t<div class=\"${CLS}-swatch\" data-id=\"${swatch.id}\" data-img-src=\"${swatch.fullImageSrc}\" data-isstudent=\"${this.isstudentApi}\">\n\t\t\t\t\t\t\t\t<div class=\"${CLS}-swatch-tick\"></div>\n\t\t\t\t\t\t\t\t<img class=\"${CLS}-swatch-image\" src=\"${swatch.imageSrc}\">\n\t\t\t\t\t\t\t</div>`;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\titem.getSwatchDetailApi = this.getSwatchDetailApi;\n\t\t\t\t\t\t\titem.getSupplierDetailApi = this.getSupplierDetailApi;\n\t\t\t\t\t\t\titem.isInMySwatchesApi = this.isInMySwatchesApi;\n\t\t\t\t\t\t\tthis.$fabricSwatches.append(fabricSwatchMarkup(item));\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.$swatchBlock = this.$el.find(`.${CLS}-swatch`);\n\t\t\t\t\t\tthis.handleSwatchBtn();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\n\thandleButtons() {\n\t\tthis.$openBtn.on('click', () => {\n\t\t\tthis.getSwatches();\n\t\t\tthis.$el.addClass('active');\n\t\t});\n\t\tthis.$closeBtn.on('click', () => {\n\t\t\tthis.$el.removeClass('active');\n\t\t});\n\t\tthis.$background.on('click', () => {\n\t\t\tthis.$el.removeClass('active');\n\t\t});\n\n\t\tthis.$addToMoodboardBtn.on('click', () => {\n\t\t\tthis.$el.removeClass('active');\n\t\t});\n\t}\n\n\n\thandleSwatchBtn() {\n\t\tthis.$swatchBlock.on('click', (e) => {\n\t\t\tlet $swatch = $(e.currentTarget);\n\n\t\t\tif (this.useDetailsModal) {\n\t\t\t\tthis.displaySwatchDetailModal($swatch.attr('data-id'));\n\t\t\t} else {\n\t\t\t\tif ($swatch.hasClass('selected')) {\n\t\t\t\t\t\t$swatch.removeClass('selected');\n\n\t\t\t\t\t\tlet filteredItems = this.selectedSwatchIds.filter((item) => item !== $swatch.attr('data-id'));\n\t\t\t\t\t\tthis.selectedSwatchIds = filteredItems;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$swatch.addClass('selected');\n\t\t\t\t\t\t\tthis.selectedSwatchIds.push($swatch.attr('data-id'));\n\t\t\t\t\t}\n\t\t\t\tthis.updateSelectedSwatchCount();\n\t\t\t}\n\t\t});\n\t}\n\n\n updateSelectedSwatchCount() {\n if (this.selectedSwatchIds.length > 0 ) {\n\t\t\tthis.$swatchSelectPanel.addClass('active');\n } else {\n\t\t\tthis.$swatchSelectPanel.removeClass('active');\n }\n }\n\n\n\tdisplaySwatchDetailModal(id) {\n\t\tlet modalData = {};\n\t\tmodalData.id = id;\n\t\tmodalData.getSwatchDetailApi = this.getSwatchDetailApi;\n\t\tmodalData.getSupplierDetailApi = this.getSupplierDetailApi;\n\t\tmodalData.isInMySwatchesApi = this.isInMySwatchesApi;\n\t\tmodalData.addToMoodboardApi = this.addToMoodboardApi;\n\t\tmodalData.addToMySwatches = this.addToMySwatches;\n\t\tmodalData.addToMoodboardApi = this.addToMoodboardApi;\n\t\tmodalData.getMoodboardsApi = this.getMoodboardsApi;\n\t\tmodalData.createMoodboardApi = this.createMoodboardApi;\n\t\tmodalData.isStudent = this.isstudentApi;\n\n\n\t\t$(document.body).append(this.getModalTemplate()(modalData));\n\t\tlet $modal = $(`#woolLabSwatchDetailModalBlock--${id}`);\n\t\tnew WoolLabSwatchDetailModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t});\n\t}\n\n\tgetModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSwatchDetailModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchDetailModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchDetailModalBlock\n\t\t\t\twg=\"woolLabSwatchDetailModalBlock\"\n\t\t\t\tns=\"WoolLabSwatchDetailModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n}\n","const NS = 'WoolLabSwatchLibrarySearchBlock';\nconst CLS = 'woolLabSwatchLibrarySearchBlock';\nconst CLS_MB_ACTIVE = 'is-active';\n\nimport Handlebars from 'handlebars';\nimport { param } from 'jquery';\nimport { WoolLabSwatchBlock } from './woolLabSwatchBlock';\nimport {WoolLabSwatchLibraryHelpModalBlock} from './woolLabSwatchLibraryHelpModalBlock';\nimport {WoolLabSaveToMoodboardModalBlock} from './woolLabSaveToMoodboardModalBlock';\nimport utils from '../utils';\n\nexport class WoolLabSwatchLibrarySearchBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.$filterKeys = this.$el.find(`[data-filter-key]`);\n\t\tthis.$filterDropdown = this.$el.find(`.${CLS}-filters-dropdown`);\n\t\tthis.$filterDropdownBtn = this.$el.find(`.${CLS}-filters-dropdown-btn`);\n\t\tthis.$fabricSwatches = this.$el.find(`.${CLS}-swatches`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.username = this.$el.data('username');\n\t\tthis.fabricSwatches = [];\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\t\tthis.$refineFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnRefine`);\n\t\tthis.$clearFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnClear`);\n\t\tthis.$filterRefined = this.$el.find(`.${CLS}-searchBar-refined`);\n\t\tthis.$themesCarousel = this.$el.find(`.${CLS}-themesCarousel`);\n\t\tthis.$season = this.$el.find(`#season`);\n\t\tthis.$theme = this.$el.find(`#theme`);\n\t\tthis.$certified = this.$el.find(`#certified`);\n\t\tthis.$country = this.$el.find(`#country`);\n\t\tthis.$benefits = this.$el.find(`#benefits`);\n\t\tthis.$archived = this.$el.find(`#archived`);\n\n\t\tthis.getSwatchDetailApi = this.$el.data('swatchDetailApi');\n\t\tthis.getSupplierDetailApi = this.$el.data('getSupplierDetailApi');\n\t\tthis.isInMySwatchesApi = this.$el.data('isInMySwatchesApi');\n\t\tthis.getSwatchesApi = this.$el.data('swatchesApi');\n\t\tthis.getFiltersApi = this.$el.data('filtersApi');\n\t\tthis.addToMySwatchesApi = this.$el.data('addToMyswatchesApi');\n\t\tthis.addToMoodboardApi = this.$el.data('addToMoodboardApi');\n\t\tthis.createMoodboardApi = this.$el.data('createMoodboardApi');\n\t\tthis.isStudent = this.$el.data('isstudent');\n\n\t\tthis.getMySwatchesApi = this.$el.data('myswatchesApi');\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.getAllThemes = this.$el.find(`#theme`).data('allThemes');\n\n\t\t// Feature flag\n\t\tthis.featureMoodboardsEnabled = this.$el.data('featureMoodboardsEnabled');\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.loadingSwatches = false;\n\t\tthis.allSwatchesLoaded = false;\n\n\t\tthis.$swatchBlock = [];\n\n\t\tthis.myMoodboardsData = {};\n\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$saveSwatchPanel = this.$el.find(`.${CLS}-saveSwatch-panel`);\n\t\tthis.$saveSwatchCount = this.$el.find(`.${CLS}-saveSwatch-text-count`);\n\t\tthis.$saveSwatchHelpBtn = this.$el.find(`.${CLS}-saveSwatch-help`);\n\t\tthis.$saveSwatchClearBtn = this.$el.find(`.${CLS}-saveSwatch-clear-btn`);\n\t\tthis.$saveSwatchSaveBtn = this.$el.find(`.${CLS}-saveSwatch-save-btn`);\n\t\tthis.$saveSwatchLocationBtn = this.$el.find(`.${CLS}-saveSwatch-toggle-btn`);\n\n\t\tthis.pageSize = 30;\n\t\tthis.pageNumber = 1;\n\n\t\tvar url_string = window.location.href; \n\t\tvar url = new URL(url_string);\n\t\tthis.$urlkeyword = url.searchParams.get(\"keyword\");\n\t\tif(this.$urlkeyword != null && this.$urlkeyword.length > 0){\n\t\t\tthis.$searchInp.val(this.$urlkeyword);\n\t\t}\n\t\tthis.$urltheme = url.searchParams.get(\"theme\");\n\t\tthis.$urlseason = url.searchParams.get(\"season\");\n\t\tthis.$urlcertified = url.searchParams.get(\"certified\");\n\t\tthis.$urlcountry = url.searchParams.get(\"country\");\n\t\tthis.$urlbenefits = url.searchParams.get(\"benefits\");\n\t\tthis.$urlarchived = url.searchParams.get(\"archived\");\n\n\t\t//this.$urlcolour = url.searchParams.get(\"colour\");\n\t\t//this.$urlweight = url.searchParams.get(\"weight\");\n\t\t//this.$urlcharacteristic = url.searchParams.get(\"characteristic\");\n\n\t\tthis.initParams();\n\t\t$('.selectpicker').selectpicker('destroy').selectpicker();\n\t\tthis.handleSearchInput();\n\t\tthis.handleFilterToggleBtn(this.getAllThemes);\n\t\tthis.handleSavePanelBtns();\n\t\tthis.handleScrollLoading();\n\t\tthis.getFilters(false);\n\t\tthis.getItems(false);\n\t\tthis.initFilterKeys();\n\t\tthis.initThemesCarousel();\n\t\tthis.initFeatureFlags();\n\t\t// Global function so that it can be triggered from anyway. In particular this allows swatch modal to refresh SwatchLibrary when a swatch is added to MySwatches\n\t\twindow.awiGlobalHelper = {\n\t\t\t...window.awiGlobalHelper,\n\t\t\treloadSwatchLibraryMySwatches: () => this.getMySwatches(),\n\t\t}\t\n\t}\n\n\tinitParams(clear){\n\t\tif(clear){\n\t\t\tthis.params = {\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tkeyword: '',\n\t\t\t\ttheme: '',\n\t\t\t\tseason: '',\n\t\t\t\tcertified: '',\n\t\t\t\tcountry: '',\n\t\t\t\tbenefits: '',\n\t\t\t\tarchived: 'false'\n\t\t\t};\n\t\t}\n\t\telse{\n\t\t\tthis.params = {\n\t\t\t\t// siteId: this.siteId,\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\t// pageSize: this.pageSize,\n\t\t\t\t// keyword: this.$searchInp.val() || ''\n\t\t\t\tkeyword: this.$urlkeyword || '',\n\t\t\t\ttheme: this.$urltheme || '',\n\t\t\t\tseason: this.$urlseason || '',\n\t\t\t\tcertified: this.$urlcertified || '',\n\t\t\t\tcountry: this.$urlcountry || '',\n\t\t\t\tbenefits: this.$urlbenefits || '',\n\t\t\t\tarchived: this.$urlarchived || 'false'\n\t\t\t\t//colour: this.$urlcolour || '',\n\t\t\t\t//weight: this.$urlweight || '',\n\t\t\t\t//characteristic: this.$urlcharacteristic || ''\n\t\t\t};\n\t\t}\n\t}\n\n\tinitFeatureFlags() {\n\t\tif (!this.featureMoodboardsEnabled) {\n\t\t\t// Hide moodboard button\n\t\t\tthis.$saveSwatchPanel.find(`[data-location='myMoodboards']`).hide();\n\t\t}\n\t}\n\n\tinitThemesCarousel() {\n\t\tconst options = {\n\t\t\tslidesToShow: 2,\n\t\t\tslidesToScroll: 1,\n\t\t\tinfinite: false,\n\t\t\tdots: false,\n\t\t\tvariableWidth: true,\n\t\t\tswipeToSlide: true,\n\t\t};\n\n\t\tthis.$themesCarousel.slick(options);\n\t}\n\n\tgetWoolLabSwatchBlockTemplate() {\n\t\tlet woolLabSwatchBlock = require('../../partials/widgets/woolLabSwatchBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchBlock', woolLabSwatchBlock);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchBlock\n\t\t\t\twg=\"woolLabSwatchBlock\"\n\t\t\t\tns=\"WoolLabSwatchBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tgetFilters(archived){\n\t\tlet url = this.getFiltersApi;\n\t\tif (!_.isEmpty(this.params)) {\n\t\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\t\tif(key === \"archived\"){\n\t\t\t\t\turl = utils.updateQueryStringParameter(url, key, this.params[key]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.updateUrl();\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tif(archived != false){\n\t\t\t\t\t\tthis.$season.empty();\n\t\t\t\t\t\tthis.$theme.empty();\n\t\t\t\t\t\tthis.$certified.empty();\n\t\t\t\t\t\tthis.$country.empty();\n\t\t\t\t\t\tthis.$benefits.empty();\n\t\t\t\t\t}\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\tif(item.name == \"season\" && item.options){\n\t\t\t\t\t\t\t\titem.seasonOptions.forEach((options) => {\n\t\t\t\t\t\t\t\t\tlet themes = [];\n\t\t\t\t\t\t\t\t\toptions.themes.forEach((theme) => {\n\t\t\t\t\t\t\t\t\t\tthemes.push(theme);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tif(this.$urlseason !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlseason.includes(options.name)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$season.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options.name+`' data-themes='`+themes+`'\">`+options.name+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$season.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options.name+`' data-themes='`+themes+`'\">`+options.name+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$season.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options.name+`' data-themes='`+themes+`'\">`+options.name+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"theme\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urltheme !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urltheme.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$theme.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$theme.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$theme.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"certified\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlcertified !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlcertified.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$certified.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$certified.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$certified.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"country\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlcountry !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlcountry.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$country.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$country.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$country.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"benefits\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlbenefits !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlbenefits.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' selected value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(`<option class='`+CLS+`-filters-dropdown-item dropdown-item' value='`+options+`'\">`+options+`</option>`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(archived != false){\n\t\t\t\t\t\tthis.params.season = '';\n\t\t\t\t\t\tthis.params.theme = '';\n\t\t\t\t\t\tthis.params.certified = '';\n\t\t\t\t\t\tthis.params.country = '';\n\t\t\t\t\t\tthis.params.benefits = '';\n\t\t\t\t\t}\n\t\t\t\t\tthis.selectpickerRefresh();\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tconsole.log(\"complete\");\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t}\n\n\tselectpickerRefresh(){\n\t\tthis.$theme.selectpicker('refresh');\n\t\tthis.$season.selectpicker('refresh');\n\t\tthis.$certified.selectpicker('refresh');\n\t\tthis.$country.selectpicker('refresh');\n\t\tthis.$benefits.selectpicker('refresh');\n\t}\n\n\t// Get items (reload content)\n\tgetItems(loadMoreSwatches) {\n\n\t\tif (!this.loadingSwatches && !this.allSwatchesLoaded) {\n\t\t\tthis.loadingSwatches = true;\n\n\t\t\tlet url = this.getSwatchesApi;\n\n\t\t\tif (loadMoreSwatches) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\t\t\turl = utils.updateQueryStringParameter(url, key, encodeURIComponent(this.params[key]));\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.updateUrl();\n\t\t\t\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\tif (!loadMoreSwatches) {\n\t\t\t\t\t\tthis.$fabricSwatches.empty();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fabricSwatchMarkup = (markup) => {\n\t\t\t\t\t\treturn `\n\t\t\t\t\t\t\t<div class=\"${CLS}-swatch\">\n\t\t\t\t\t\t\t\t${(markup)}\n\t\t\t\t\t\t\t</div>`;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\titem.userName = this.username;\n\t\t\t\t\t\t\titem.getSwatchDetailApi = this.getSwatchDetailApi;\n\t\t\t\t\t\t\titem.getSupplierDetailApi = this.getSupplierDetailApi;\n\t\t\t\t\t\t\titem.isInMySwatchesApi = this.isInMySwatchesApi;\n\t\t\t\t\t\t\titem.addToMySwatchesApi = this.addToMySwatchesApi;\n\t\t\t\t\t\t\titem.getMoodboardsApi = this.getMoodboardsApi;\n\t\t\t\t\t\t\titem.addToMoodboardApi = this.addToMoodboardApi;\n\t\t\t\t\t\t\titem.createMoodboardApi = this.createMoodboardApi;\n\t\t\t\t\t\t\titem.isStudent = this.isStudent;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet $column = this.$fabricSwatches.append(fabricSwatchMarkup(this.getWoolLabSwatchBlockTemplate()(item)));\n\t\t\t\t\t\t\tnew WoolLabSwatchBlock($column.find(`[data-wg=\"WoolLabSwatchBlock\"]`).last()[0], item);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.$swatchBlock = this.$el.find('.woolLabSwatchBlock');\n\t\t\t\t\t\tthis.handleSwatchBtn();\n\t\t\t\t\t\tthis.getMySwatches();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreSwatches) {\n\t\t\t\t\t\t\tthis.allSwatchesLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tgetMySwatches() {\n\t\tlet url = `${this.getMySwatchesApi}`;\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tif(data.length > 0) {\n\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\tthis.$fabricSwatches.find(`[data-id=\"${item.id}\"]`).attr('data-saved-myswatches', 'true');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\tgetMoodboards() {\n\t\tlet url = `${this.getMoodboardsApi}`;\n\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.myMoodboardsData = data;\n\t\t\t},\n\t\t});\n\t}\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, this.params[key]);\n\t\t});\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t}\n\n\thandleFilterToggleBtn(getAllThemes) {\n\t\tthis.$refineFilterBtn.on('click', () => {\n\t\t\tif(this.$refineFilterBtn.hasClass(CLS_MB_ACTIVE)) {\n\t\t\t\tthis.$refineFilterBtn.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$filterRefined.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$el.removeClass('refined-open');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$refineFilterBtn.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$filterRefined.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$el.addClass('refined-open');\n\t\t\t}\n\t\t});\n\t\tthis.$clearFilterBtn.on('click', () => {\n\n\t\t\tthis.filterThemeBySeason(getAllThemes);\n\t\t\tthis.initParams(1);\n\t\t\tthis.setPageNumber(1);\n\t\t\tthis.allSwatchesLoaded = false;\n\t\t\twindow.scrollTo(0, 0);\n\t\t\tthis.selectedSwatchIds = [];\n\t\t\tthis.updateSelectedSwatchCount();\n\t\t\tthis.$searchInp.val('');\n\n\t\t\t$(\".selectpicker\").selectpicker('deselectAll');\n\t\t\t$('#certified').selectpicker('val', '');\n\t\t\t$('#archived').selectpicker('val', 'false');\n\t\t\tthis.$theme.selectpicker('val', '');\n\t\t\tthis.$season.selectpicker('val', '');\n\t\t\tthis.$certified.selectpicker('val', '');\n\t\t\tthis.$country.selectpicker('val', '');\n\t\t\tthis.$benefits.selectpicker('val', '');\n\t\t\tthis.getItems(false);\n\t\t\t\n\t\t});\n\t}\n\n\tfilterThemeBySeason(themes) {\n\t\tif (!themes) {\n\t\t\treturn;\n\t\t}\n\t\tconst themesArr = themes.split(\",\");\n\t\t$( \"#theme .dropdown-item\" ).remove();\n\t\tfor(var i = 0; i < themesArr.length; i++){\n\t\t\tthis.$theme.append( '<option class=\"woolLabSwatchLibrarySearchBlock-filters-dropdown-item dropdown-item\" value=\"' + themesArr[i] +'\">' + themesArr[i] + '</option>' );\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\tthis.$theme.selectpicker('refresh');\n\t\t\t}, 800);\n\t}\n\n\thandleFilterClick($element) {\n\t\tlet filterKey = $element.data('filterKey') || '';\n\t\t//let value = $element.attr('value') || '';\n\t\tlet value = [];\n\t\tlet selectedVal = $element.val();\n\t\tvalue.push(selectedVal);\n\t\t\n\t\tthis.$el.find(`[data-filter-key=\"${filterKey}\"]`).removeClass('active');\n\t\t$element.addClass('active');\n\n\t\tif(!(_.isNil(this.params[filterKey]) && value === '')) {\n\t\t\t// Ensure that the filterKey does not match the current select value\n\t\t\tif(this.params[filterKey] !== value) {\n\t\t\t\tif(_.isNil(value) || value === '') {\n\t\t\t\t\tdelete this.params[filterKey];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(filterKey === \"benefits\"){\n\t\t\t\t\t\tvalue = value[0].join(\";\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.params[filterKey] = value;\n\t\t\t\t}\n\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSwatchesLoaded = false;\n\t\t\t\tif(filterKey === \"archived\"){\n\t\t\t\t\tthis.getFilters(true);\n\t\t\t\t}\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t}\n\t}\n\n\tinitFilterKeys() {\n\t\tthis.$filterKeys.on('change', (event) => {\n\t\t\tthis.stringThemes = [];\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tlet filterKey = $element.data('filterKey') || '';\n\n\t\t\tif (filterKey === \"season\") {\n\t\t\t\tthis.$themes = $(\"select :selected\").map((i, $element) => $($element).attr(\"data-themes\")).toArray();\n\t\t\t\tthis.$themes.forEach((element) => this.stringThemes.push(element.split(\";\")));\n\t\t\t\tthis.stringThemes = this.stringThemes.flat();\n\t\t\t\tthis.stringThemes = this.stringThemes.filter((item,\n\t\t\t\t\tindex) => this.stringThemes.indexOf(item) === index);\n\t\t\t\t\tthis.stringThemes = this.stringThemes.filter(Boolean).sort().join(',');\n\t\t\t\t\tif(this.stringThemes.length > 0){\n\t\t\t\t\t\tthis.filterThemeBySeason(this.stringThemes);\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tthis.filterThemeBySeason(this.getAllThemes);\n\t\t\t\t\t}\n\t\t\t}\n\t\t\tthis.handleFilterClick($element);\n\t\t});\n\n\t\tif(this.$urlseason && this.$urlseason.length){\n\t\t\tthis.$urlseasonArr = this.$urlseason.split(\",\");\n\t\t\t$('#season').selectpicker('val', this.$urlseasonArr);\n\t\t}\n\n\t\tif(this.$urltheme && this.$urltheme.length){\n\t\t\tthis.$urlthemeArr = this.$urltheme.split(\",\");\n\t\t\t$('#theme').selectpicker('val', this.$urlthemeArr);\n\t\t}\n\t\tif(this.$urlcountry && this.$urlcountry.length){\n\t\t\tthis.$urlcountryArr = this.$urlcountry.split(\",\");\n\t\t\t$('#country').selectpicker('val', this.$urlcountryArr);\n\t\t}\n\t\tif(this.$urlcertified && this.$urlcertified.length){\n\t\t\tthis.$urlcertifiedArr = this.$urlcertified.split(\",\");\n\t\t\t$('#certified').selectpicker('val', this.$urlcertifiedArr);\n\t\t}\n\t\tif(this.$urlbenefits && this.$urlbenefits.length){\n\t\t\tthis.$urlbenefitsArr = this.$urlbenefits.split(\";\");\n\t\t\t$('#benefits').selectpicker('val', this.$urlbenefitsArr);\n\t\t}\n\t}\n\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.params['keyword'] = $(event.currentTarget).val().trim();\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSwatchesLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t});\n\t}\n\n\n\t// Swatch button\n\thandleSwatchBtn() {\n\t\tthis.$swatchBlock.on('click', (e) => {\n\t\t\tlet $target = $(e.target);\n\t\t\tlet $swatch = $(e.currentTarget);\n\n\t\t\tif ($target.hasClass('woolLabSwatchBlock-btnAddSave')) {\n\t\t\t\t// add to saved button clicked\n\n\t\t\t\tif ($swatch.hasClass('selected')) {\n\t\t\t\t\t$swatch.removeClass('selected');\n\n\t\t\t\t\tlet filteredItems = this.selectedSwatchIds.filter((item) => item !== $swatch.attr('data-id'));\n\t\t\t\t\tthis.selectedSwatchIds = filteredItems;\n\t\t\t\t} else {\n\t\t\t\t\t// if first swatch is already saved to my swatches\n\t\t\t\t\tif (this.selectedSwatchIds == 0 && $swatch.attr('data-saved-myswatches') == 'true') {\n\t\t\t\t\t\tthis.$saveSwatchPanel.find('[data-location=\"mySwatches\"]').addClass('selected');\n\t\t\t\t\t}\n\n\t\t\t\t\t$swatch.addClass('selected');\n\t\t\t\t\tthis.selectedSwatchIds.push($swatch.attr('data-id'));\n\t\t\t\t}\n\t\t\t\tthis.updateSelectedSwatchCount();\n\t\t\t}\n\t\t});\n\t}\n\n\thandleScrollLoading() {\n\n\t\tlet offsetFromBottom = 200;\n\n\t\tconst This = this;\n\n\t\t$(document).on('touchmove', onScroll); // for mobile\n\t\tfunction onScroll() {\n\t\t\tif ($(window).scrollTop() + offsetFromBottom > $(document).height() - $(window).height()-400) {\n\t\t\t\tThis.getItems(true);\n\t\t\t}\n\t\t}\n\n\t\t$(window).scroll(function() {\n\t\t\tlet position = $(window).scrollTop() + offsetFromBottom;\n\t\t\tlet bottom = $(document).height() - $(window).height();\n\n\t\t\tif ( position >= bottom ) {\n\t\t\t This.getItems(true);\n\t\t\t}\n\t\t });\n\t}\n\n\n\thandleSavePanelBtns() {\n\t\tthis.$saveSwatchClearBtn.on('click', (e) => {\n this.resetSavePanel();\n });\n\n\t\tthis.$saveSwatchHelpBtn.on('click', (e) => {\n\t\t\tthis.displayHelpModal();\n });\n\n\t\tthis.$saveSwatchLocationBtn.on('click', (e) => {\n\t\t\tlet $locationBtn = $(e.currentTarget);\n\n\t\t\t// check if save location being unselected will prompt unsaving the swatch\n\t\t\tif ($locationBtn.hasClass('selected') && this.selectedSwatchIds.length == 1) {\n\t\t\t\tlet $selectedSwatch = this.$fabricSwatches.find(`[data-id=\"${this.selectedSwatchIds[0]}\"]`);\n\t\t\t\tif ($locationBtn.attr('data-location') == 'mySwatches' && $selectedSwatch.attr('data-saved-myswatches') == 'true') {\n\t\t\t\t\t// prompt removing swatch from My Swatches\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$locationBtn.toggleClass('selected');\n\n\t\t\tif (this.$saveSwatchLocationBtn.hasClass('selected')) {\n\t\t\t\tthis.$saveSwatchSaveBtn.removeClass('disabled');\n\t\t\t} else {\n\t\t\t\tthis.$saveSwatchSaveBtn.addClass('disabled');\n\t\t\t}\n });\n\n\t\tthis.$saveSwatchSaveBtn.on('click', () => {\n\t\t\tthis.$saveSwatchLocationBtn.map((i, item) => {\n\t\t\t\tif ($(item).hasClass('selected')) {\n\t\t\t\t\tif ($(item).attr('data-location') == 'mySwatches') {\n\t\t\t\t\t\tthis.addSwatchToMySwatches();\n\t\t\t\t\t\t// We dont want to reset the save panel if we're adding to moodboards too - the moodboard modal will handle that\n\t\t\t\t\t\tif (this.$saveSwatchLocationBtn.filter('.selected').length < 2){\n\t\t\t\t\t\t\tthis.resetSavePanel();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t$(item).removeClass('selected');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ($(item).attr('data-location') == 'myMoodboards') {\n\t\t\t\t\t\t// this.addItemToMoodboard();\n\t\t\t\t\t\tthis.displaySaveToMoodboardModal();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n });\n\t}\n\n\taddSwatchToMySwatches() {\n\t\tlet url = `${this.addToMySwatchesApi}`;\n\n\t\t$.ajax({\n\t\t\tdata: JSON.stringify(this.selectedSwatchIds),\n\t\t\tdataType: 'json',\n\t\t\ttype: 'POST',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.getMySwatches();\n\t\t\t},\n\t\t});\n\t}\n\n\tresetSavePanel() {\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$swatchBlock.removeClass('selected');\n\t\tthis.updateSelectedSwatchCount();\n\t\tthis.$saveSwatchLocationBtn.removeClass('selected');\n\t}\n\n updateSelectedSwatchCount() {\n\t\tthis.$saveSwatchCount.html(this.selectedSwatchIds.length + (this.selectedSwatchIds.length == 1 ? ' swatch' : ' swatches'));\n\n if (this.selectedSwatchIds.length > 0 ) {\n\t\t\tthis.$saveSwatchPanel.addClass('active');\n } else {\n\t\t\tthis.$saveSwatchPanel.removeClass('active');\n\t\t\tthis.$saveSwatchLocationBtn.removeClass('selected');\n }\n }\n\n\tgetHelpModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSwatchLibraryHelpModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchLibraryHelpModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchLibraryHelpModalBlock\n\t\t\t\twg=\"woolLabSwatchLibraryHelpModalBlock\"\n\t\t\t\tns=\"WoolLabSwatchLibraryHelpModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplayHelpModal() {\n\t\t$(document.body).append(this.getHelpModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabSwatchLibraryHelpModalBlock');\n\t\tnew WoolLabSwatchLibraryHelpModalBlock($modal[0]);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\t}\n\n\tgetSaveToMoodboardModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSaveToMoodboardModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSaveToMoodboardModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSaveToMoodboardModalBlock\n\t\t\t\twg=\"woolLabSaveToMoodboardModalBlock\"\n\t\t\t\tns=\"WoolLabSaveToMoodboardModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplaySaveToMoodboardModal() {\n\t\t$(document.body).append(this.getSaveToMoodboardModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabSaveToMoodboardModalBlock');\n\n\t\tlet modalData = {};\n\t\tmodalData.getMoodboardsApi = this.getMoodboardsApi;\n\t\tmodalData.addToMoodboardApi = this.addToMoodboardApi;\n\t\tmodalData.createMoodboardApi = this.createMoodboardApi;\n\t\tmodalData.selectedItems = this.selectedSwatchIds;\n\t\tmodalData.itemType ='swatch';\n\n\t\tnew WoolLabSaveToMoodboardModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\n\t\t$modal.on('resetSavePanel', () => {\n\t\t\tthis.resetSavePanel();\n\t\t});\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","const NS = 'WoolLabThemesBlock';\nconst CLS = 'woolLabThemesBlock';\n\nimport slick from 'slick-carousel';\n\n\nexport class WoolLabThemesBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\t\tthis.$themesCarousel = this.$el.find(`.${CLS}-carousel`);\n\n\t\tthis.initThemesCarousel();\n\t}\n\n\tinitThemesCarousel() {\n\t\tconst options = {\n\t\t\tarrows: true,\n\t\t\tinfinite: false,\n\t\t\tdots: false,\n\t\t\tvariableWidth: true,\n\t\t\tslidesToScroll: 3,\n\t\t\tprevArrow: \"<button type='button' class='slick-prev pull-left'><i class='fa fa-angle-left' aria-hidden='true'></i></button>\",\n \t\tnextArrow: \"<button type='button' class='slick-next pull-right'><i class='fa fa-angle-right' aria-hidden='true'></i></button>\",\n\t\t\t responsive: [\n\t\t\t\t{\n\t\t\t\t breakpoint: 1024,\n\t\t\t\t settings: {\n\t\t\t\t\tslidesToScroll: 2,\n\t\t\t\t }\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t breakpoint: 600,\n\t\t\t\t settings: {\n\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t }\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t breakpoint: 480,\n\t\t\t\t settings: {\n\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t ]\n\t\t};\n\n\t\tthis.$themesCarousel.slick(options);\n\t}\n}","/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\n/* eslint-disable no-invalid-this */\n// CONSTANTS are all caps.\nconst NS = 'BioListItem';\nconst CLS = 'bioListItem';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/bioListItem.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport {initPageLoader} from '../bioPageLoader';\n\nexport class BioListItem {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadBioListItem function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setBioListItem();\n\t}\n\n\tsetBioListItem() {\n\t\t// Add Some logic here\n\t\tthis.WG = WG;\n\t\tthis.$wg = $(this.$el);\n\t\tthis.name = this.$wg.data('name');\n\n\t\tthis.loadingSpinner = $('.loading-spinner');\n\t\tthis.pageLoaded = false;\n\t\tthis.bioPage = this.$wg.find('.bioPage') || null;\n\t\tthis.linkTrigger = this.$wg.find(WG + 'linkOverlay');\n\n\t\tinitPageLoader(this);\n\t}\n\n\t// Add more functions like on above here\n}\n","/* eslint-disable no-invalid-this */\n/* eslint-disable no-unused-vars */\n/* eslint-disable max-len */\n// CONSTANTS are all caps.\nconst NS = 'JudgeItemBlock';\nconst CLS = 'judgeItemBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/judgeItemBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport {initPageLoader} from '../bioPageLoader';\n\nexport class JudgeItemBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadJudgeItemBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setJudgeItemBlock();\n\t}\n\n\tsetJudgeItemBlock() {\n\t\t// Add Some logic here\n\t\tthis.WG = WG;\n\t\tthis.$wg = $(this.$el);\n\t\tthis.name = this.$wg.data('name');\n\n\t\tthis.loadingSpinner = $('.loading-spinner');\n\t\tthis.pageLoaded = false;\n\t\tthis.bioPage = this.$wg.find('.bioPage') || null;\n\t\tthis.linkTrigger = this.$wg.find(WG + 'link');\n\n\t\tif (this.$wg.closest('.is-iwp').length > 0) {\n\t\t\tinitPageLoader(this);\n\t\t}\n\t}\n\n\t// Add more functions like on above here\n}\n","var PI_OVER_180 = Math.PI / 180;\nfunction detectBrowser() {\n return (typeof window !== 'undefined' &&\n ({}.toString.call(window) === '[object Window]' ||\n {}.toString.call(window) === '[object global]'));\n}\nexport const glob = typeof global !== 'undefined'\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof WorkerGlobalScope !== 'undefined'\n ? self\n : {};\nexport const Konva = {\n _global: glob,\n version: '8.4.3',\n isBrowser: detectBrowser(),\n isUnminified: /param/.test(function (param) { }.toString()),\n dblClickWindow: 400,\n getAngle(angle) {\n return Konva.angleDeg ? angle * PI_OVER_180 : angle;\n },\n enableTrace: false,\n pointerEventsEnabled: true,\n autoDrawEnabled: true,\n hitOnDragEnabled: false,\n capturePointerEventsEnabled: false,\n _mouseListenClick: false,\n _touchListenClick: false,\n _pointerListenClick: false,\n _mouseInDblClickWindow: false,\n _touchInDblClickWindow: false,\n _pointerInDblClickWindow: false,\n _mouseDblClickPointerId: null,\n _touchDblClickPointerId: null,\n _pointerDblClickPointerId: null,\n pixelRatio: (typeof window !== 'undefined' && window.devicePixelRatio) || 1,\n dragDistance: 3,\n angleDeg: true,\n showWarnings: true,\n dragButtons: [0, 1],\n isDragging() {\n return Konva['DD'].isDragging;\n },\n isDragReady() {\n return !!Konva['DD'].node;\n },\n releaseCanvasOnDestroy: true,\n document: glob.document,\n _injectGlobal(Konva) {\n glob.Konva = Konva;\n },\n};\nexport const _registerNode = (NodeClass) => {\n Konva[NodeClass.prototype.getClassName()] = NodeClass;\n};\nKonva._injectGlobal(Konva);\n","const NS = 'WoolLabSaveToMoodboardModalBlock';\nconst CLS = 'woolLabSaveToMoodboardModalBlock';\n\nexport class WoolLabSaveToMoodboardModalBlock {\n\tconstructor(el, data) {\n\t\tthis.$el = $(el);\n\t\tthis.getMoodboardsApi = data.getMoodboardsApi;\n\t\tthis.addToMoodboardApi = data.addToMoodboardApi;\n\t\tthis.createMoodboardApi = data.createMoodboardApi;\n\t\tthis.selectedItems = data.selectedItems;\n\t\tthis.itemType = data.itemType;\n\n\t\tthis.$moodboardSearchInput = this.$el.find(`.${CLS}-saveToMoodboards-searchInput`);\n\t\tthis.$moodboardsContainer = this.$el.find(`.${CLS}-moodboards`);\n\t\tthis.$moodboardContainer = this.$el.find(`.${CLS}-moodboard`);\n\t\tthis.$saveToMoodboardsDiv = this.$el.find(`.${CLS}-saveToMoodboards`);\n\t\tthis.$btnNewMoodboard = this.$el.find(`.${CLS}-newMoodboardBtn`);\n\t\tthis.$btnDone = this.$el.find(`.${CLS}-doneBtn`);\n\t\tthis.selectedMoodboardId = '';\n\n\t\tthis.newMoodboardText = '';\n\t\tthis.$newMoodboardDiv = this.$el.find(`.${CLS}-newMoodboard`);\n\t\tthis.$newMoodboardCreateBtn = this.$el.find(`.${CLS}-createBtn`);\n\t\tthis.$newMoodboardInput = this.$el.find(`.${CLS}-newMoodboard-textInput`);\n\n\t\tthis.$btnNewMoodboard.on('click', () => {\n\t\t\tthis.showNewMoodboardPanel();\n\t\t});\n\n\t\tthis.$newMoodboardCreateBtn.on('click', () => {\n\t\t\tif (this.newMoodboardText !== '') {\n\t\t\t\tthis.createMoodboard();\n\t\t\t}\n\t\t});\n\n\t\tthis.$btnDone.on('click', () => {\n\t\t\tif (this.selectedMoodboardId !== '') {\n\t\t\t\tthis.addSwatchToMoodboard();\n\t\t\t\tthis.$el.modal('hide');\n\t\t\t\tthis.$el.trigger('resetSavePanel');\n\t\t\t}\n\t\t});\n\n\t\tthis.handleSearchInput();\n\t\tthis.handleNewMoodboardInput();\n\n\t\tthis.getMoodboards();\n\t}\n\n\tgetMoodboards() {\n\t\tthis.$el.addClass('loading');\n\t\tlet url = `${this.getMoodboardsApi}`;\n\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.$el.removeClass('loading');\n\t\t\t\tif (data.length > 0) {\n\t\t\t\t\tthis.updateMoodboards(data);\n\t\t\t\t} else {\n\t\t\t\t\tthis.showNewMoodboardPanel();\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\thandleMoodboardClicked() {\n\t\tthis.$moodboards.on('click', (e) => {\n\t\t\tthis.$moodboards.removeClass('selected');\n\t\t\tlet $moodboard = $(e.currentTarget);\n\t\t\t$moodboard.addClass('selected');\n\t\t\tthis.selectedMoodboardId = $moodboard.attr('data-id');\n\t\t\tthis.$btnDone.removeClass('disabled');\n\t\t});\n\t}\n\n\thandleSearchInput() {\n\t\tthis.$moodboardSearchInput.on('keyup', (event) => {\n\t\t\tlet input = $(event.currentTarget).val().trim();\n\t\t\tlet filter = input.toUpperCase();\n\n\t\t\tif (this.$moodboards.length > 0) {\n\t\t\t\tthis.$moodboards.map((i, obj) => {\n\t\t\t\t\tlet txtValue = $(obj).attr('data-name');\n\t\t\t\t\tif (txtValue.toUpperCase().indexOf(filter) > -1) {\n\t\t\t\t\t\tobj.style.display = '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.style.display = 'none';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\thandleNewMoodboardInput() {\n\t\tthis.$newMoodboardInput.on('keyup', (event) => {\n\t\t\tlet input = $(event.currentTarget).val().trim();\n\t\t\tif (input.length > 0) {\n\t\t\t\tthis.$newMoodboardCreateBtn.removeClass('disabled');\n\t\t\t} else {\n\t\t\t\tthis.$newMoodboardCreateBtn.addClass('disabled');\n\t\t\t}\n\n\t\t\tthis.newMoodboardText = input;\n\t\t});\n\t}\n\n\tshowNewMoodboardPanel() {\n\t\tthis.$el.addClass('showNewMoodboard');\n\t}\n\n\thideNewMoodboardPanel() {\n\t\tthis.$el.removeClass('showNewMoodboard');\n\t}\n\n\tupdateMoodboards(data) {\n\t\tlet moodboardHTML = '';\n\t\tdata.map((i) => {\n\t\t\tlet swatchText = i.swatchCount == 1 ? 'swatch' : 'swatches';\n\t\t\tlet imageUrl = i.images != null || i.images.length > 0 ? i.images[0] : '';\n\n\t\t\tmoodboardHTML += `<div class=\"${CLS}-moodboard\" data-id=\"${i.id}\" data-name=\"${i.name}\">\n\t\t\t\t\t\t\t\t<img class=\"${CLS}-moodboard-image\" src=\"${imageUrl}\">\n\t\t\t\t\t\t\t\t<div class=\"${CLS}-moodboard-text\">\n\t\t\t\t\t\t\t\t\t<h4 class=\"${CLS}-moodboard-title\">${i.name}</h4>\n\t\t\t\t\t\t\t\t\t<p class=\"${CLS}-moodboard-count\">${i.swatchCount} ${swatchText}</p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>`;\n\t\t});\n\t\tthis.$moodboardsContainer.empty();\n\t\tthis.$moodboardsContainer.html(moodboardHTML);\n\t\tthis.$moodboards = this.$el.find(`.${CLS}-moodboard`);\n\t\tthis.handleMoodboardClicked();\n\t}\n\n\taddSwatchToMoodboard() {\n\t\tlet data = JSON.stringify({\n\t\t\titems: this.selectedItems,\n\t\t\tmoodboardId: this.selectedMoodboardId,\n\t\t\ttype: this.itemType\n\t\t});\n\n\t\tfetch(this.addToMoodboardApi, {\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\tbody: data\n\t\t}).then((response) => {\n\t\t\treturn response.json();\n\t\t}).then((_json) => {\n\t\t}).catch((_error) => {\n\t\t});\n\t}\n\n\n\tcreateMoodboard() {\n\t\tlet data = JSON.stringify({\n\t\t\ttitle: this.newMoodboardText\n\t\t});\n\n\t\tif ($(\"#dulicateWarningText\").length){\n\t\t\t$( \"#dulicateWarningText\" ).remove();\n\t\t\tthis.$newMoodboardCreateBt.removeClass('disabled');\n\t\t}\n\n\t\tvar moodboardsName = [];\n\t\tvar inputMoodboardName = this.newMoodboardText.toLowerCase();\n\t\t$( \".woolLabSaveToMoodboardModalBlock-moodboard\" ).each(function( index ) {\n\t\t\tmoodboardsName.push($( this ).find(\".woolLabSaveToMoodboardModalBlock-moodboard-title\").text().toLowerCase());\n\t\t });\n\t\tif(containsDuplicates(moodboardsName, inputMoodboardName)){\n\t\t\tif (!$(\"#dulicateWarningText\").length){\n\t\t\t\t$( \"<p id='dulicateWarningText' style='color:#FF0000'>This moodboard name already exists.</p>\" ).insertAfter( this.$newMoodboardInput );\n\t\t\t\tthis.$newMoodboardCreateBtn.addClass('disabled');\n\t\t\t}\n\t\t}\n\t\telse{\n\t\t\tthis.$el.addClass('loading');\n\n\t\t\tfetch(this.createMoodboardApi, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdataType: 'json',\n\t\t\t\tbody: data\n\t\t\t}).then((_json) => {\n\t\t\t\tthis.hideNewMoodboardPanel();\n\t\t\t\tthis.getMoodboards();\n\t\t\t}).catch((_error) => {\n\t\t\t});\n\t\t}\n\t\tfunction containsDuplicates(nameArray, inputText) {\n\t\t\tfor (let i = 0; i < nameArray.length; i++){\n\t\t\t\tif (nameArray[i] === inputText){\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\n","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<section id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":13},\"end\":{\"line\":1,\"column\":19}}}) : helper)))\n + \"\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":28},\"end\":{\"line\":1,\"column\":34}}}) : helper)))\n + \" modal fade\\\" data-keyboard=\\\"false\\\" tabindex=\\\"-1\\\" role=\\\"dialog\\\" aria-hidden=\\\"true\\\">\\n\t<button type=\\\"button\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":30},\"end\":{\"line\":2,\"column\":36}}}) : helper)))\n + \"-close btn btn--borderless\\\" data-dismiss=\\\"modal\\\" aria-label=\\\"Close\\\">\\n\t\t<i class=\\\"icon icon-close\\\"></i>\\n\t</button>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":13},\"end\":{\"line\":5,\"column\":19}}}) : helper)))\n + \"-dialog modal-dialog modal-lg\\\" role=\\\"document\\\">\\n\t\t<div class=\\\"modal-content\\\">\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":15},\"end\":{\"line\":7,\"column\":21}}}) : helper)))\n + \"-body modal-body\\\">\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":16},\"end\":{\"line\":8,\"column\":22}}}) : helper)))\n + \"-loadingScreen\\\">\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":17},\"end\":{\"line\":9,\"column\":23}}}) : helper)))\n + \"-loadingScreen-spinner\\\"></div>\\n\t\t\t\t</div>\\n\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":12,\"column\":16},\"end\":{\"line\":12,\"column\":22}}}) : helper)))\n + \"-newMoodboard\\\">\\n\t\t\t\t\t<h4 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":16},\"end\":{\"line\":13,\"column\":22}}}) : helper)))\n + \"-newMoodboard-title\\\">Create a new moodboard</h4>\\n\t\t\t\t\t<input type=\\\"text\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":31},\"end\":{\"line\":14,\"column\":37}}}) : helper)))\n + \"-newMoodboard-textInput\\\" placeholder=\\\"Insert your moodboard title\\\">\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":17},\"end\":{\"line\":15,\"column\":23}}}) : helper)))\n + \"-newMoodboard-buttons\\\">\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":21},\"end\":{\"line\":16,\"column\":27}}}) : helper)))\n + \"-createBtn btn disabled\\\">Create</button>\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":17,\"column\":21},\"end\":{\"line\":17,\"column\":27}}}) : helper)))\n + \"-cancelBtn btn\\\" data-dismiss=\\\"modal\\\">Cancel</button>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":21,\"column\":16},\"end\":{\"line\":21,\"column\":22}}}) : helper)))\n + \"-saveToMoodboards\\\">\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":22,\"column\":17},\"end\":{\"line\":22,\"column\":23}}}) : helper)))\n + \"-saveToMoodboards-inner\\\">\\n\t\t\t\t\t\t<input type=\\\"text\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":23,\"column\":32},\"end\":{\"line\":23,\"column\":38}}}) : helper)))\n + \"-saveToMoodboards-searchInput\\\" placeholder=\\\"Search Moodboard\\\">\\n\\n\t\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":25,\"column\":18},\"end\":{\"line\":25,\"column\":24}}}) : helper)))\n + \"-moodboards\\\">\\n\t\t\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":26,\"column\":19},\"end\":{\"line\":26,\"column\":25}}}) : helper)))\n + \"-moodboard\\\"></div>\\n\t\t\t\t\t\t</div>\\n\t\t\t\t\t</div>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":29,\"column\":17},\"end\":{\"line\":29,\"column\":23}}}) : helper)))\n + \"-saveToMoodboards-buttons\\\">\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":30,\"column\":21},\"end\":{\"line\":30,\"column\":27}}}) : helper)))\n + \"-newMoodboardBtn btn\\\">New Moodboard</button>\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":31,\"column\":21},\"end\":{\"line\":31,\"column\":27}}}) : helper)))\n + \"-doneBtn btn disabled\\\">Done</button>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\\n\t\t\t</div>\\n\t\t</div>\\n\t</div>\\n</section>\";\n},\"useData\":true});","const NS = 'WoolLabShareSwatchModalBlock';\nconst CLS = 'woolLabShareSwatchModalBlock';\n\nexport class WoolLabShareSwatchModalBlock {\n\tconstructor(el, data) {\n\t\tthis.$el = $(el);\n\t\tthis.shareSwatchesApi = data.shareSwatchesApi;\n\t\tthis.selectedSwatchIds = data.selectedSwatchIds;\n\n\t\tthis.shareEmail = '';\n\n\t\tthis.$btnDone = this.$el.find(`.${CLS}-doneBtn`);\n\t\tthis.$sendBtn = this.$el.find(`.${CLS}-sendBtn`);\n\t\tthis.$emailInput = this.$el.find(`.${CLS}-shareSwatch-textInput`);\n\n\n\t\tthis.$sendBtn.on('click', () => {\n\t\t\tif (this.newMoodboardText !== '') {\n\t\t\t\tthis.postShareSwatchesApi();\n\t\t\t}\n\t\t});\n\n\n\t\tthis.$emailInput.on('keyup', (event) => {\n\t\t\tlet input = $(event.currentTarget).val().trim();\n\t\t\tif (input.length > 0) {\n\t\t\t\tthis.$sendBtn.removeClass('disabled');\n\t\t\t} else {\n\t\t\t\tthis.$sendBtn.addClass('disabled');\n\t\t\t}\n\n\t\t\tthis.shareEmail = input;\n\t\t});\n\t}\n\n\n\tpostShareSwatchesApi() {\n\t\tlet url = `${this.shareSwatchesApi}?swatches=${encodeURIComponent(this.selectedSwatchIds)}?shareEmail=${encodeURIComponent(this.shareEmail)}`;\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t}).then((response) => {\n\t\t\treturn response.json();\n\t\t}).then((_json) => {\n\t\t}).catch((_error) => {\n\t\t});\n\t}\n}\n\n","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n\t\t\t\t\t\t\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,\"designers\") : depth0)) != null ? lookupProperty(stack1,\"0\") : stack1), depth0))\n + \"\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t<div class=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":16},\"end\":{\"line\":16,\"column\":22}}}) : helper)))\n + \"-certifiedIcon\\\"></div>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"col-lg-3 col-md-3 col-sm-6 \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":39},\"end\":{\"line\":1,\"column\":45}}}) : helper)))\n + \"\\\" data-wg=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"ns\") || (depth0 != null ? lookupProperty(depth0,\"ns\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"ns\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":56},\"end\":{\"line\":1,\"column\":62}}}) : helper)))\n + \"\\\">\\n\t<a href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"url\") || (depth0 != null ? lookupProperty(depth0,\"url\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"url\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":10},\"end\":{\"line\":2,\"column\":17}}}) : helper)))\n + \"\\\" target=\\\"_blank\\\">\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":13},\"end\":{\"line\":3,\"column\":19}}}) : helper)))\n + \"-img\\\" style=\\\"background-image: url(\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"image\") || (depth0 != null ? lookupProperty(depth0,\"image\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"image\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":54},\"end\":{\"line\":3,\"column\":63}}}) : helper)))\n + \");\\\"></div>\\n\t</a>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":13},\"end\":{\"line\":5,\"column\":19}}}) : helper)))\n + \"-bar\\\"></div>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":13},\"end\":{\"line\":6,\"column\":19}}}) : helper)))\n + \"-contents\\\">\\n\t\t\t<a class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":13},\"end\":{\"line\":7,\"column\":19}}}) : helper)))\n + \"-url\\\" href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"url\") || (depth0 != null ? lookupProperty(depth0,\"url\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"url\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":31},\"end\":{\"line\":7,\"column\":38}}}) : helper)))\n + \"\\\" target=\\\"_blank\\\">\\n\t\t\t\t<h4 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":15},\"end\":{\"line\":8,\"column\":21}}}) : helper)))\n + \"-title\\\">\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"designers\") : depth0)) != null ? lookupProperty(stack1,\"length\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":5},\"end\":{\"line\":12,\"column\":12}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t</h4>\\n\t\t\t</a>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isCertified\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":3},\"end\":{\"line\":17,\"column\":10}}})) != null ? stack1 : \"\")\n + \"\t\t\t<p class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":18,\"column\":13},\"end\":{\"line\":18,\"column\":19}}}) : helper)))\n + \"-subtitle\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":18,\"column\":30},\"end\":{\"line\":18,\"column\":39}}}) : helper)))\n + \"</p>\\n\t</div>\\n</div>\";\n},\"useData\":true});","export let ifCond = (v1, operator, v2, options) => {\n\tswitch (operator) {\n\t\tcase '==':\n\t\t\treturn (v1 == v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '===':\n\t\t\treturn (v1 === v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '!=':\n\t\t\treturn (v1 != v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '!==':\n\t\t\treturn (v1 !== v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '<':\n\t\t\treturn (v1 < v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '<=':\n\t\t\treturn (v1 <= v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '>':\n\t\t\treturn (v1 > v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '>=':\n\t\t\treturn (v1 >= v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '&&':\n\t\t\treturn (v1 && v2) ? options.fn(this) : options.inverse(this);\n\t\tcase '||':\n\t\t\treturn (v1 || v2) ? options.fn(this) : options.inverse(this);\n\t\tdefault:\n\t\t\treturn options.inverse(this);\n\t}\n};\n\nexport let math = (lvalue, operator, rvalue) => {\n\tlvalue = parseFloat(lvalue);\n\trvalue = parseFloat(rvalue);\n\treturn {\n\t\t'+': lvalue + rvalue,\n\t\t'-': lvalue - rvalue,\n\t\t'*': lvalue * rvalue,\n\t\t'/': lvalue / rvalue,\n\t\t'%': lvalue % rvalue\n\t}[operator];\n};\n\nexport let mathAbs = (value) => {\n\tvalue = parseFloat(value);\n\treturn Math.abs(value);\n};\n\nexport let object = ({ hash }) => {\n\treturn hash;\n};\n","// fetch with GET does not allow body data\nexport function getApi(url, headers = false) {\n\tif (!url) {\n\t\tlet res = {};\n\t\t$('.icon-spinner').removeClass('is-active');\n\t\t$('.loading-spinner').removeClass('is-active');\n\t\treturn Promise.resolve(res);\n\t}\n\treturn fetch(url, {\n\t\tcredentials: 'same-origin', // 'same-origin. include'\n\t\theaders: (headers) ? new Headers(headers) : new Headers({})\n\t})\n\t.then((response) => {\n\t\tif (!response.ok) throw new Error(response.status);\n\t\telse return response.json();\n\t})\n\t.then((response) => Promise.resolve(response))\n\t.catch((error) => {\n\t\tPromise.reject(error);\n\t\t$('.icon-spinner').removeClass('is-active');\n\t\t$('.loading-spinner').removeClass('is-active');\n\t});\n}\n\n// fetch with POST and others (DELETE, etc.)\nexport function callApi(url, data = {}, method = 'POST') {\n\tif (!url) {\n\t\tlet res = {};\n\t\t$('.icon-spinner').removeClass('is-active');\n\t\t$('.loading-spinner').removeClass('is-active');\n\t\treturn Promise.resolve(res);\n\t}\n\treturn fetch(url, {\n\t\tmethod: method,\n\t\tbody: JSON.stringify(data),\n\t\tcredentials: 'same-origin', // 'same-origin, include'\n\t\theaders: new Headers({\n\t\t\t'Content-Type': 'application/json'\n\t\t})\n\t})\n\t.then((response) => {\n\t\tif (!response.ok) throw new Error(response.status);\n\t\telse return response.json();\n\t})\n\t.then((response) => Promise.resolve(response))\n\t.catch((error) => {\n\t\tPromise.reject(error);\n\t\t$('.icon-spinner').removeClass('is-active');\n\t\t$('.loading-spinner').removeClass('is-active');\n\t});\n}\n","/* eslint-disable no-console */\n/* eslint-disable max-len */\nimport _ from 'lodash';\n\nexport let fullWindowHeightMixinBlock = {\n\tinitFullWindowHeight: (self) => {\n\t\tself.$element = self.$element || $(self.element);\n\n\t\tif (!_.isNil(self.$element.data('fullscreen')) && self.$element.data('fullscreen')) {\n\t\t\tlet setElementHeight = () => {\n\t\t\t\tlet $tplHeader = $('.siteHeader');\n\t\t\t\tlet headerHeight = 0;\n\n\t\t\t\tif ($tplHeader.length > 0) {\n\t\t\t\t\theaderHeight = $tplHeader.height();\n\t\t\t\t}\n\n\t\t\t\t// Slight delay\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tself.$element.css({\n\t\t\t\t\t\tminHeight: `${$(window).height() - headerHeight}px`,\n\t\t\t\t\t\tvisibility: 'visible',\n\t\t\t\t\t});\n\t\t\t\t}, 250);\n\t\t\t};\n\n\t\t\t$(window).resize(_.debounce(() => {\n\t\t\t\tsetElementHeight();\n\t\t\t}, 250));\n\n\t\t\tsetElementHeight();\n\t\t} else {\n\t\t\t// Slight delay\n\t\t\tsetTimeout(() => {\n\t\t\t\tself.$element.css({\n\t\t\t\t\tvisibility: 'visible',\n\t\t\t\t});\n\t\t\t}, 250);\n\t\t}\n\t},\n};\n\nexport let compactViewMixin = {\n\tinitCompactView: (self, classes) => {\n\t\tlet minimumHeight = 550; // 550px was the chosen number to have compact views\n\t\tself.$element = self.$element || $(self.element);\n\t\tself.$tplScroller = self.$tplScroller || $(document.body);\n\t\tclasses = classes || [];\n\n\t\tif (self.$tplScroller && self.$tplScroller.length > 0) {\n\t\t\tlet applyCompactView = () => {\n\t\t\t\tself.$element.attr('compact-view', 'true');\n\n\t\t\t\tif (classes.length > 0) {\n\t\t\t\t\tclasses.forEach((classItem) => {\n\t\t\t\t\t\tself.$element.find(classItem).attr('compact-view', true);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlet unapplyCompactView = () => {\n\t\t\t\tself.$element.removeAttr('compact-view');\n\n\t\t\t\tif (classes.length > 0) {\n\t\t\t\t\tclasses.forEach((classItem) => {\n\t\t\t\t\t\tself.$element.find(classItem).removeAttr('compact-view');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlet isBlockExceedingHeight = () => {\n\t\t\t\treturn self.$tplScroller[0].clientHeight <= minimumHeight ||\n\t\t\t\t\t((self.$element.outerHeight() > minimumHeight) && self.$element.outerHeight() > self.$tplScroller[0].clientHeight);\n\t\t\t};\n\n\t\t\tlet toggleCompactViewAttribute = () => {\n\t\t\t\tif (isBlockExceedingHeight()) {\n\t\t\t\t\tapplyCompactView();\n\n\t\t\t\t\t// Re-render\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (isBlockExceedingHeight()) {\n\t\t\t\t\t\t\tapplyCompactView();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 500);\n\t\t\t\t} else {\n\t\t\t\t\tunapplyCompactView();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$(window).resize(_.debounce(() => {\n\t\t\t\ttoggleCompactViewAttribute();\n\t\t\t}, 250));\n\n\t\t\ttoggleCompactViewAttribute();\n\t\t}\n\t},\n};\n\nexport let trackingItemsMixinBlock = {\n\tinitTrackingItems: (self, $items) => {\n\t\tself.$element = self.$element || $(self.element);\n\n\t\tlet trackingId = self.$element.data('trackingId');\n\t\tif (!_.isNil(trackingId) && trackingId !== '') {\n\t\t\tlet $tracker = $('[data-pg][data-tracker=\"true\"]');\n\n\t\t\tif (!($tracker && $tracker.length > 0)) {\n\t\t\t\tconsole.error('TrackingItemsMixinBlock::Error', 'Please ensure that the [data-pg][data-tracker=\"true\"] element exists');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!($items && $items.length > 0)) {\n\t\t\t\tconsole.error('TrackingItemsMixinBlock::Error', 'Please supply jQuery object for the list of clickable items');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$items.each((index, element) => {\n\t\t\t\tlet $element = $(element);\n\t\t\t\t$element.attr('data-tracking-item-id', index);\n\t\t\t\t$element.attr('data-tracking-item-complete', false);\n\t\t\t});\n\n\t\t\tlet activeItems = [];\n\n\t\t\t$items.on('click', (event) => {\n\t\t\t\tlet $element = $(event.currentTarget);\n\t\t\t\tlet trackingItemId = $element.data('trackingItemId'); // TrackingItem of the item inside the block\n\n\t\t\t\t// If the item is active\n\t\t\t\tlet isFound = _.find(activeItems, (item) => {\n\t\t\t\t\treturn item === trackingItemId;\n\t\t\t\t});\n\t\t\t\tif (!isFound) {\n\t\t\t\t\tactiveItems.push(trackingItemId);\n\t\t\t\t\t$element.attr('data-tracking-item-complete', true); // Mark item as complete\n\n\t\t\t\t\tif ($items.length === activeItems.length) {\n\t\t\t\t\t\t$tracker.trigger('tracking.complete', {\n\t\t\t\t\t\t\t$element: self.$element,\n\t\t\t\t\t\t\ttrackingId: trackingId,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tself.$element.data('trackingComplete', true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n};\n","// Function loadSearchBar loads the SearchBar class by dynamically importing the js on demand if needed.\n\nexport function loadSearchBar($parentEl, isList = false) {\n\n\tlet $wg = $parentEl.querySelector('[data-wg=\"SearchBar\"]');\n\n\tif(!$wg) {\n\t\t// console.info('SearchBar: no widget found');\n\t\treturn Promise.reject('SearchBar widget not found in the parent element');\n\t}\n\n\treturn import(/* webpackChunkName: \"wg-search-bar-chunk\" */ '../widgets/searchBar').then(wg => {\n\n\t\tconst SearchBar = wg.SearchBar;\n\n\t\tif (isList) {\n\t\t\tlet $wgCol = $parentEl.querySelectorAll('[data-wg=\"SearchBar\"]');\n\t\t\tlet instances = [];\n\t\t\tArray.from($wgCol).forEach(($wg, i) => {\n\t\t\t\tinstances.push( new SearchBar($wg) );\n\t\t\t});\n\t\t\tif (instances.length === $wgCol.length) return instances;\n\n\t\t} else {\n\t\t\treturn new SearchBar($wg);\n\t\t}\n\n\n\t}).catch(error => error+'An error occurred while loading the SearchBar widget');\n\n}\n","// CONSTANTS are all caps.\nconst NS = \"CareSliderItem\";\nconst CLS = \"careSliderItem\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/careSliderItem.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class CareSliderItem {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadCareSliderItem function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setCareSliderItem();\n\t}\n\n isDesktopSize() {\n\t return window.innerWidth >= 1200;\n }\n\n\n\tsetCareSliderItem() {\n\t}\n\n}\n","// CONSTANTS are all caps.\nconst NS = \"ImageSliderItem\";\nconst CLS = \"imageSliderItem\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/imageSliderItem.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class ImageSliderItem {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadImageSliderItem function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setImageSliderItem();\n\t}\n\n\tsetImageSliderItem() {\n let wg = $(this.$el);\n let prevClientX = null;\n let isDraging = false;\n let divider = wg.find(WG + 'divider');\n let layer = wg.find(WG + 'secondLayer');\n let innerLayer = wg.find(WG + 'visibleLayer');\n let imageSlickSlider = wg.find(WG + 'slides');\n\n // divider.css('left', '0px');\n\t\t// Initialized the top layer to cover 50% of the slide by default\n\t\tdivider.css('left', '50%');\n\t\tlayer.css('left', '50%');\n\t\tinnerLayer.css('left', '-50%');\n\n imageSlickSlider.slick({\n arrows: false,\n dots: true\n });\n\n\t divider.mousedown((e) => {\n\t isDraging = true;\n\t prevClientX = e.clientX;\n });\n\n\t $(document).mousemove((e) => {\n\t if(!isDraging) return;\n let diff = e.clientX - prevClientX;\n prevClientX = e.clientX;\n let left = parseInt(divider.css('left'));\n left += diff;\n\n if(left >= wg.find(WG + 'desktop').width()) left = wg.find(WG + 'desktopContent').width();\n\n if(left < 0) left = 0;\n\n divider.css('left', left + 'px');\n layer.css('left', left + 'px');\n innerLayer.css('left', -left + 'px');\n });\n\n\t $(document).mouseup((e) => {\n isDraging = false;\n });\n\n\t // Work-around when slick slider layout is broken after showing.\n\t // @ref https://stackoverflow.com/questions/31955382/slick-carousel-has-0px-width-when-loaded-in-collapsed-tab/32107099#32107099\n // @todo should research a better solution.\n\t $(document).click((e) => {\n\t imageSlickSlider.slick('setPosition');\n })\n\t}\n}\n","const NS = \"SearchBar\";\nconst CLS = \"searchBar\";\nconst WG = \".\" + CLS + \"-\";\n\nimport {WGSearchBar} from '../svelte.js'\n\nexport class SearchBar {\n\n\tconstructor($el) {\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setSearchBar();\n\t\tthis.handleToggle();\n\t}\n\n\tsetSearchBar() {\n\t\t// const container = this.kid('sbContainer');\n\t\tconst wg = $(this.$el);\n\t\tconst container = wg.find('.sbContainer');\n\t\tconst placeholder = wg.attr(\"data-placeholder\");\n\t\tconst api = wg.attr(\"data-api\");\n\t\tconst searchUrl = wg.attr(\"data-search-page\");\n\n\t\twg.hide();\n\n\t\tthis.searchBar = new WGSearchBar({\n\t\t\ttarget: container[0],\n\t\t\tdata: {\n\t\t\t\tplaceholder: placeholder,\n\t\t\t\tapiEndpoint: api,\n\t\t\t\tsearchUrl: searchUrl\n\t\t\t}\n\t\t});\n\t}\n\n\thandleToggle() {\n\t\tconst wg = $(this.$el);\n\t\tconst header = $('[data-wg=\"SiteHeader\"]');\n\t\t$('.toggle-searchBar')\n\t\t\t.on('click', function(e) {\n\t\t\t\theader.toggleClass(\"is-searchBarOpen\");\n\t\t\t\tif (header.hasClass('is-searchBarOpen')) {\n\t\t\t\t\twg.slideDown('fast', function() {\n\t\t\t\t\t\tlet winBottom = $(window).height();\n\t\t\t\t\t\tlet wgOffset = wg.offset().top - $(window).scrollTop();\n\t\t\t\t\t\tlet wgOuterHeight = wg.outerHeight();\n\t\t\t\t\t\tlet posDiff = winBottom - wgOffset;\n\t\t\t\t\t\t\n\t\t\t\t\t\t// had to move the focus until after the animate to avoid browser's default scrolling behaviour on focus\n\t\t\t\t\t\tif (posDiff >= 0 && posDiff < wgOuterHeight) {\n\t\t\t\t\t\t\tlet scrollAdjust = wgOuterHeight - posDiff;\n\t\t\t\t\t\t\t$('html, body').animate({\n\t\t\t\t\t\t\t\tscrollTop: $(window).scrollTop() + scrollAdjust,\n\t\t\t\t\t\t\t}, 300, \"swing\", function() {\n\t\t\t\t\t\t\t\t$(`${WG}input`).focus();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(`${WG}input`).focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twg.slideUp('fast');\n\t\t\t\t\twg.hide();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\n}\n","const NS = 'WoolLabRenameMoodboardModalBlock';\nconst CLS = 'woolLabRenameMoodboardModalBlock';\n\nexport class WoolLabRenameMoodboardModalBlock {\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.newName = '';\n\n\t\tthis.$btnDone = this.$el.find(`.${CLS}-doneBtn`);\n\t\tthis.$updateBtn = this.$el.find(`.${CLS}-updateBtn`);\n\t\tthis.$input = this.$el.find(`.${CLS}-shareSwatch-textInput`);\n\t\tthis.getMyMoodboardsApi = $('.woolLabInteractiveMoodboardBlock').data('getMyMoodboardsApi');\n\t\tthis.$inputContainer = this.$el.find(`.${CLS}-shareSwatch-textInput-container`);\n\n\t\tthis.arrMyMoodboardsNames = this.getMyMoodboards();\n\n\t\tthis.$input.on('keyup', (event) => {\n\t\t\t$('#dulicateWarningText').remove();\n\t\t\tlet input = $(event.currentTarget).val().trim().toLowerCase();\n\t\t\tif (input.length > 0) {\n\t\t\t\tif(this.arrMyMoodboardsNames.includes(input)){\n\t\t\t\t\t$(this.$inputContainer).append(\"<p id='dulicateWarningText' style='color:#FF0000'>This moodboard name already exists.</p>\");\n\t\t\t\t\tthis.$updateBtn.addClass('disabled');\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t$('#dulicateWarningText').remove();\n\t\t\t\tthis.$updateBtn.removeClass('disabled');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.$updateBtn.addClass('disabled');\n\t\t\t}\n\n\t\t\tthis.newName = input;\n\t\t});\n\t}\n\n\tgetMyMoodboards(){\n\t\tlet names=[];\n\t\tlet url = this.getMyMoodboardsApi;\n\t\tvar data=$.parseJSON($.ajax({\n url: url,\n type:'get',\n dataType:'json',\n\t\t\tasync: false\n }).responseText);\n\n\n\t\t$.each( data, function( i, val ) {\n\t\t\tnames.push(val.name.toLowerCase());\n\t\t});\n\t\t\n\t\treturn names;\n\t}\n}\n\n","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<section id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":13},\"end\":{\"line\":1,\"column\":19}}}) : helper)))\n + \"\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":28},\"end\":{\"line\":1,\"column\":34}}}) : helper)))\n + \" modal fade\\\" data-keyboard=\\\"false\\\" tabindex=\\\"-1\\\" role=\\\"dialog\\\" aria-hidden=\\\"true\\\">\\n\t<button type=\\\"button\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":30},\"end\":{\"line\":2,\"column\":36}}}) : helper)))\n + \"-close btn btn--borderless\\\" data-dismiss=\\\"modal\\\" aria-label=\\\"Close\\\">\\n\t\t<i class=\\\"icon icon-close\\\"></i>\\n\t</button>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":13},\"end\":{\"line\":5,\"column\":19}}}) : helper)))\n + \"-dialog modal-dialog modal-lg\\\" role=\\\"document\\\">\\n\t\t<div class=\\\"modal-content\\\">\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":15},\"end\":{\"line\":7,\"column\":21}}}) : helper)))\n + \"-body modal-body\\\">\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":16},\"end\":{\"line\":8,\"column\":22}}}) : helper)))\n + \"-shareSwatch\\\">\\n\t\t\t\t\t<h4 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":16},\"end\":{\"line\":9,\"column\":22}}}) : helper)))\n + \"-shareSwatch-title\\\">Share your swatches</h4>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":17},\"end\":{\"line\":10,\"column\":23}}}) : helper)))\n + \"-shareSwatch-textInput-container\\\">\\n\t\t\t\t\t\t<input type=\\\"email\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":33},\"end\":{\"line\":11,\"column\":39}}}) : helper)))\n + \"-shareSwatch-textInput\\\" placeholder=\\\"Insert email address\\\">\\n\t\t\t\t\t</div>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":17},\"end\":{\"line\":13,\"column\":23}}}) : helper)))\n + \"-shareSwatch-buttons\\\">\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":21},\"end\":{\"line\":14,\"column\":27}}}) : helper)))\n + \"-sendBtn btn disabled\\\" data-dismiss=\\\"modal\\\">Send</button>\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":21},\"end\":{\"line\":15,\"column\":27}}}) : helper)))\n + \"-cancelBtn btn\\\" data-dismiss=\\\"modal\\\">Cancel</button>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\t\t\t</div>\\n\t\t</div>\\n\t</div>\\n</section>\";\n},\"useData\":true});","import truncate from 'truncate-html';\n\nexport let handleTruncate = ($element, limit = 250) => {\n\tlet html = $element.html();\n\tlet text = $element.text();\n\tlet originalHtml = html;\n\tlet readMoreLabel = 'Read More';\n\tlet readLessLabel = 'Read Less';\n\n\tconsole.log(\"text length\", text.length, limit);\n\tif(text.length > limit) {\n\t\tlet readMore = `<a class=\"read-more read-more--more\" href=\"javascript:void(0)\">${readMoreLabel}</a>`;\n\t\tlet readLess = `<a class=\"read-more read-more--less\" href=\"javascript:void(0)\">${readLessLabel}</a>`;\n\n\t\tconst ellipsis = ` … `; \n\n\t\t// trim the string\n\t\tlet trimmedHtml = truncate(html, limit, {\n\t\t\tdecodeEntities: false, \n\t\t\tellipsis: ellipsis,\n\t\t\tkeepWhitespaces: false\t\t\t\n\t\t});\n\n\t\tif (trimmedHtml.includes(ellipsis)) {\n\n\t\t\ttrimmedHtml = `${trimmedHtml} ${readMore}`;\n\t\t}\n\n\t\t$element.html(trimmedHtml);\n\n\t\t$element.on('click', `.read-more`, (event) => {\n\t\t\tif($(event.currentTarget).hasClass('read-more--more')) {\n\t\t\t\t$element.html(`${originalHtml} ${readLess}`);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$element.html(trimmedHtml);\n\t\t\t}\n\t\t});\n\t}\n}\n","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":57},\"end\":{\"line\":16,\"column\":65}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"id\") || (depth0 != null ? lookupProperty(depth0,\"id\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"id\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":17,\"column\":51},\"end\":{\"line\":17,\"column\":57}}}) : helper)));\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<div class=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":24,\"column\":17},\"end\":{\"line\":24,\"column\":23}}}) : helper)))\n + \"-detailContainer-cta\\\">\\n\t\t\t\t\t\t<div class=\\\"archived\\\">Archived</div>\\n\t\t\t\t\t</div>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<p class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":28,\"column\":15},\"end\":{\"line\":28,\"column\":21}}}) : helper)))\n + \"-detailContainer-txtSupplier\\\">Add to My Swatches to view supplier information</p>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":29,\"column\":17},\"end\":{\"line\":29,\"column\":23}}}) : helper)))\n + \"-detailContainer-cta\\\">\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":30,\"column\":21},\"end\":{\"line\":30,\"column\":27}}}) : helper)))\n + \"-detailContainer-btnSave btn btn--rounded btn--green\\\">\\n\t\t\t\t\t\t\tMy Swatches\\n\t\t\t\t\t\t</button>\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":33,\"column\":21},\"end\":{\"line\":33,\"column\":27}}}) : helper)))\n + \"-detailContainer-btnMoodboard btn btn--rounded btn--green\\\">\\n\t\t\t\t\t\t\tMoodboard\\n\t\t\t\t\t\t</button>\\n\t\t\t\t\t</div>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<section id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":13},\"end\":{\"line\":1,\"column\":19}}}) : helper)))\n + \"--\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"id\") || (depth0 != null ? lookupProperty(depth0,\"id\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":21},\"end\":{\"line\":1,\"column\":27}}}) : helper)))\n + \"\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":36},\"end\":{\"line\":1,\"column\":42}}}) : helper)))\n + \" modal fade\\\" data-keyboard=\\\"false\\\" tabindex=\\\"-1\\\" role=\\\"dialog\\\" aria-hidden=\\\"true\\\"\\n\tdata-id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"id\") || (depth0 != null ? lookupProperty(depth0,\"id\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":10},\"end\":{\"line\":2,\"column\":16}}}) : helper)))\n + \"\\\" data-username=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"userName\") || (depth0 != null ? lookupProperty(depth0,\"userName\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"userName\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":33},\"end\":{\"line\":2,\"column\":45}}}) : helper)))\n + \"\\\" data-isstudent=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"isStudent\") || (depth0 != null ? lookupProperty(depth0,\"isStudent\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"isStudent\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":63},\"end\":{\"line\":2,\"column\":76}}}) : helper)))\n + \"\\\">\\n\t<div class=\\\"modal-dialog\\\" role=\\\"document\\\">\\n\t\t<div class=\\\"modal-content\\\">\\n\\n\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":14},\"end\":{\"line\":6,\"column\":20}}}) : helper)))\n + \"-detailContainer \\\">\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":15},\"end\":{\"line\":7,\"column\":21}}}) : helper)))\n + \"-detailContainer-loadingScreen\\\">\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":16},\"end\":{\"line\":8,\"column\":22}}}) : helper)))\n + \"-detailContainer-loadingScreen-spinner\\\"></div>\\n\t\t\t</div>\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":15},\"end\":{\"line\":10,\"column\":21}}}) : helper)))\n + \"-arrow-container\\\">\\n\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":19},\"end\":{\"line\":11,\"column\":25}}}) : helper)))\n + \"-arrow prev btn\\\"></button>\\n\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":12,\"column\":19},\"end\":{\"line\":12,\"column\":25}}}) : helper)))\n + \"-arrow next btn\\\"></button>\\n\t\t\t</div>\\n\t\t\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":15},\"end\":{\"line\":15,\"column\":21}}}) : helper)))\n + \"-detailContainer-inner\\\">\\n\t\t\t\t<h3 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":15},\"end\":{\"line\":16,\"column\":21}}}) : helper)))\n + \"-detailContainer-title\\\">\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"name\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":45},\"end\":{\"line\":16,\"column\":72}}})) != null ? stack1 : \"\")\n + \"</h3>\\n\t\t\t\t<p class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":17,\"column\":14},\"end\":{\"line\":17,\"column\":20}}}) : helper)))\n + \"-detailContainer-id\\\">\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"id\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":17,\"column\":41},\"end\":{\"line\":17,\"column\":64}}})) != null ? stack1 : \"\")\n + \"</p>\\n\t\t\t\t\\n\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":20,\"column\":16},\"end\":{\"line\":20,\"column\":22}}}) : helper)))\n + \"-detailContainer-information\\\"></div>\\n\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":22,\"column\":16},\"end\":{\"line\":22,\"column\":22}}}) : helper)))\n + \"-detailContainer-icons\\\"></div>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"archived\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.program(7, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":23,\"column\":4},\"end\":{\"line\":37,\"column\":11}}})) != null ? stack1 : \"\")\n + \"\t\t\t</div>\\n\t\t</div>\\n\\n\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":46,\"column\":14},\"end\":{\"line\":46,\"column\":20}}}) : helper)))\n + \"-canvasContainer\\\">\\n\t\t\t<a href=\\\"#\\\" data-dismiss=\\\"modal\\\" aria-label=\\\"Close\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":47,\"column\":62},\"end\":{\"line\":47,\"column\":68}}}) : helper)))\n + \"-canvasContainer-btn-close\\\">CLOSE</a>\\n\t\t\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":49,\"column\":15},\"end\":{\"line\":49,\"column\":21}}}) : helper)))\n + \"-canvasContainer-inner\\\">\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":50,\"column\":16},\"end\":{\"line\":50,\"column\":22}}}) : helper)))\n + \"-swatch-button-container\\\">\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":51,\"column\":17},\"end\":{\"line\":51,\"column\":23}}}) : helper)))\n + \"-swatch-button \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":51,\"column\":38},\"end\":{\"line\":51,\"column\":44}}}) : helper)))\n + \"-swatch-button-rotate\\\"></div>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":52,\"column\":17},\"end\":{\"line\":52,\"column\":23}}}) : helper)))\n + \"-swatch-button \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":52,\"column\":38},\"end\":{\"line\":52,\"column\":44}}}) : helper)))\n + \"-swatch-button-thickness\\\"></div>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":53,\"column\":17},\"end\":{\"line\":53,\"column\":23}}}) : helper)))\n + \"-swatch-button \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":53,\"column\":38},\"end\":{\"line\":53,\"column\":44}}}) : helper)))\n + \"-swatch-button-zoom\\\"></div>\\n\t\t\t\t</div>\\n\t\t\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":56,\"column\":16},\"end\":{\"line\":56,\"column\":22}}}) : helper)))\n + \"-scaledOverlay\\\">\\n\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":58,\"column\":17},\"end\":{\"line\":58,\"column\":23}}}) : helper)))\n + \"-zoomOverlay\\\">\\n\t\t\t\t\t\t<img class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":59,\"column\":18},\"end\":{\"line\":59,\"column\":24}}}) : helper)))\n + \"-zoom zoom\\\" src=\\\"https://via.placeholder.com/640\\\"/>\\n\t\t\t\t\t</div>\\n\t\t\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":62,\"column\":17},\"end\":{\"line\":62,\"column\":23}}}) : helper)))\n + \"-widthMarker\\\">\\n\t\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":63,\"column\":18},\"end\":{\"line\":63,\"column\":24}}}) : helper)))\n + \"-widthMarker-circle\\\"></div>\\n\t\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":64,\"column\":18},\"end\":{\"line\":64,\"column\":24}}}) : helper)))\n + \"-widthMarker-line\\\"></div>\\n\t\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":65,\"column\":18},\"end\":{\"line\":65,\"column\":24}}}) : helper)))\n + \"-widthMarker-count-container\\\">\\n\t\t\t\t\t\t\t<p class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":66,\"column\":17},\"end\":{\"line\":66,\"column\":23}}}) : helper)))\n + \"-widthMarker-count\\\">4mm</p>\\n\t\t\t\t\t\t</div>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\t\t\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":71,\"column\":16},\"end\":{\"line\":71,\"column\":22}}}) : helper)))\n + \"-threejsContent\\\"></div>\\n\t\t\t</div>\\n\t\t</div>\\n\t\t</div>\\n\t</div>\\n</section>\";\n},\"useData\":true});","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"themeAspectRatio\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-get-swatch-detail-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"getSwatchDetailApi\") || (depth0 != null ? lookupProperty(depth0,\"getSwatchDetailApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"getSwatchDetailApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":169},\"end\":{\"line\":1,\"column\":191}}}) : helper)))\n + \"\\\"\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-get-supplier-detail-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"getSupplierDetailApi\") || (depth0 != null ? lookupProperty(depth0,\"getSupplierDetailApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"getSupplierDetailApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":261},\"end\":{\"line\":1,\"column\":285}}}) : helper)))\n + \"\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-is-in-my-swatches-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"isInMySwatchesApi\") || (depth0 != null ? lookupProperty(depth0,\"isInMySwatchesApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"isInMySwatchesApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":348},\"end\":{\"line\":1,\"column\":369}}}) : helper)))\n + \"\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-add-to-my-swatches-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"addToMySwatchesApi\") || (depth0 != null ? lookupProperty(depth0,\"addToMySwatchesApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"addToMySwatchesApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":434},\"end\":{\"line\":1,\"column\":456}}}) : helper)))\n + \"\\\"\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-get-moodboards-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"getMoodboardsApi\") || (depth0 != null ? lookupProperty(depth0,\"getMoodboardsApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"getMoodboardsApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":514},\"end\":{\"line\":1,\"column\":534}}}) : helper)))\n + \"\\\"\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-add-to-moodboard-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"addToMoodboardApi\") || (depth0 != null ? lookupProperty(depth0,\"addToMoodboardApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"addToMoodboardApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":595},\"end\":{\"line\":1,\"column\":616}}}) : helper)))\n + \"\\\"\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-create-moodboard-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"createMoodboardApi\") || (depth0 != null ? lookupProperty(depth0,\"createMoodboardApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"createMoodboardApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":678},\"end\":{\"line\":1,\"column\":700}}}) : helper)))\n + \"\\\"\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-is-logged-in=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"isLoggedIn\") || (depth0 != null ? lookupProperty(depth0,\"isLoggedIn\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"isLoggedIn\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":776},\"end\":{\"line\":1,\"column\":790}}}) : helper)))\n + \"\\\"\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"src=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"imageSrc\") || (depth0 != null ? lookupProperty(depth0,\"imageSrc\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"imageSrc\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":49},\"end\":{\"line\":3,\"column\":61}}}) : helper)))\n + \"\\\"\";\n},\"21\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t<button type=\\\"button\\\" class=\\\" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":34},\"end\":{\"line\":6,\"column\":40}}}) : helper)))\n + \"-btnMobileDetail \\\"></button>\\n\";\n},\"23\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t<button type=\\\"button\\\" class=\\\" \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":34},\"end\":{\"line\":8,\"column\":40}}}) : helper)))\n + \"-btnAddSave \\\"></button>\\n\t\t\t\t<button type=\\\"button\\\" class=\\\" \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":34},\"end\":{\"line\":9,\"column\":40}}}) : helper)))\n + \"-btnMobileDetail \\\"></button>\\n\";\n},\"25\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<div class=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":17,\"column\":14},\"end\":{\"line\":17,\"column\":20}}}) : helper)))\n + \"-content-archived\\\">ARCHIVED</div>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<section class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":16},\"end\":{\"line\":1,\"column\":22}}}) : helper)))\n + \" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"themeAspectRatio\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":23},\"end\":{\"line\":1,\"column\":70}}})) != null ? stack1 : \"\")\n + \" \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"mods\") || (depth0 != null ? lookupProperty(depth0,\"mods\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"mods\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":71},\"end\":{\"line\":1,\"column\":79}}}) : helper)))\n + \"\\\" data-wg=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"ns\") || (depth0 != null ? lookupProperty(depth0,\"ns\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"ns\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":90},\"end\":{\"line\":1,\"column\":96}}}) : helper)))\n + \"\\\" data-id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"id\") || (depth0 != null ? lookupProperty(depth0,\"id\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":107},\"end\":{\"line\":1,\"column\":113}}}) : helper)))\n + \"\\\" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"getSwatchDetailApi\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":115},\"end\":{\"line\":1,\"column\":199}}})) != null ? stack1 : \"\")\n + \" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"getSupplierDetailApi\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":203},\"end\":{\"line\":1,\"column\":293}}})) != null ? stack1 : \"\")\n + \" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isInMySwatchesApi\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":295},\"end\":{\"line\":1,\"column\":377}}})) != null ? stack1 : \"\")\n + \" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"addToMySwatchesApi\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":379},\"end\":{\"line\":1,\"column\":464}}})) != null ? stack1 : \"\")\n + \" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"getMoodboardsApi\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":465},\"end\":{\"line\":1,\"column\":542}}})) != null ? stack1 : \"\")\n + \" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"addToMoodboardApi\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":543},\"end\":{\"line\":1,\"column\":624}}})) != null ? stack1 : \"\")\n + \" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"createMoodboardApi\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":625},\"end\":{\"line\":1,\"column\":708}}})) != null ? stack1 : \"\")\n + \" data-saved-myswatches=\\\"false\\\" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isLoggedIn\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":739},\"end\":{\"line\":1,\"column\":798}}})) != null ? stack1 : \"\")\n + \" data-isstudent=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"isStudent\") || (depth0 != null ? lookupProperty(depth0,\"isStudent\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"isStudent\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":815},\"end\":{\"line\":1,\"column\":828}}}) : helper)))\n + \"\\\">\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":13},\"end\":{\"line\":2,\"column\":19}}}) : helper)))\n + \"-imageWrap\\\">\\n\t\t<img class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":14},\"end\":{\"line\":3,\"column\":20}}}) : helper)))\n + \"-image\\\" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"imageSrc\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":28},\"end\":{\"line\":3,\"column\":69}}})) != null ? stack1 : \"\")\n + \" />\\n\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":14},\"end\":{\"line\":4,\"column\":20}}}) : helper)))\n + \"-btnWrap\\\">\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"archived\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(21, data, 0),\"inverse\":container.program(23, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":3},\"end\":{\"line\":10,\"column\":10}}})) != null ? stack1 : \"\")\n + \"\t\t</div>\\n\t</div>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":13},\"end\":{\"line\":13,\"column\":19}}}) : helper)))\n + \"-content\\\">\\n\t\t<h3 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":13},\"end\":{\"line\":14,\"column\":19}}}) : helper)))\n + \"-content-title\\\">\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":35},\"end\":{\"line\":14,\"column\":45}}}) : helper))) != null ? stack1 : \"\")\n + \"</h3>\\n\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":14},\"end\":{\"line\":15,\"column\":20}}}) : helper)))\n + \"-content-id\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"id\") || (depth0 != null ? lookupProperty(depth0,\"id\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":33},\"end\":{\"line\":15,\"column\":39}}}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"archived\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(25, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":9}}})) != null ? stack1 : \"\")\n + \"\t</div>\\n</section>\";\n},\"useData\":true});","const NS = 'WoolLabSwatchLibraryHelpModalBlock';\nconst CLS = 'woolLabSwatchLibraryHelpModalBlock';\n\nexport class WoolLabSwatchLibraryHelpModalBlock {\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"ProvenceMap\";\nconst CLS = \"provenceMap\";\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/provenceMap.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\nimport {loadFarmItem} from '../loadWg/farmItem';\n\nexport class ProvenceMap {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadProvenceMap function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.loadFarmItem();\n\t}\n\n\tloadFarmItem() {\n\t\t// Load FarmItem widget\n\t\tloadFarmItem(this.$el, true).then((wgAll) => {\n\t\t\t(wgAll && wgAll.length > 0) ? wgAll.forEach(wg => {\n\t\t\t\twg.init();\n\t\t\t}) : '';\n\t\t});\n\t}\n}\n","// Function loadFarmItem loads the FarmItem class by dynamically importing the js on demand if needed\n\nexport function loadFarmItem($parentEl, isList = false) {\n\n\n\tlet $wg = $parentEl.querySelector('[data-wg=\"FarmItem\"]');\n\n\tif(!$wg) {\n\t\t// console.info('FarmItem: no widget found');\n\t\treturn Promise.reject('FarmItem widget not found in the parent element');\n\t}\n\n\treturn import(/* webpackChunkName: \"wg-farm-item-chunk\" */ '../widgets/farmItem').then(wg => {\n\n\t\tconst { FarmItem } = wg;\n\n\t\tif (isList) {\n\t\t\tlet $wgCol = $parentEl.querySelectorAll('[data-wg=\"FarmItem\"]');\n\t\t\tlet instances = [];\n\t\t\tArray.from($wgCol).forEach(($wg, i) => {\n\t\t\t\tinstances.push( new FarmItem($wg) );\n\t\t\t});\n\t\t\tif (instances.length === $wgCol.length) return instances;\n\n\t\t} else {\n\t\t\treturn new FarmItem($wg);\n\t\t}\n\n\n\t}).catch(error => error+'An error occurred while loading the FarmItem widget');\n\n}\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","// Function loadCareSliderItem loads the CareSliderItem class by dynamically importing the js on demand if needed\n\nexport function loadCareSliderItem($parentEl, isList = false) {\n\n\tlet $wg = $parentEl.querySelector('[data-wg=\"CareSliderItem\"]');\n\n\tif(!$wg) {\n\t\t// console.info('CareSliderItem: no widget found');\n\t\treturn Promise.reject('CareSliderItem widget not found in the parent element');\n\t}\n\n\treturn import(/* webpackChunkName: \"wg-care-slider-item-chunk\" */ '../widgets/careSliderItem').then(wg => {\n\n\t\tconst { CareSliderItem } = wg;\n\n\n\t\tif (isList) {\n\t\t\tlet $wgCol = $parentEl.querySelectorAll('[data-wg=\"CareSliderItem\"]');\n\t\t\tlet instances = [];\n\t\t\tArray.from($wgCol).forEach(($wg, i) => {\n\t\t\t\tinstances.push( new CareSliderItem($wg) );\n\t\t\t});\n\t\t\tif (instances.length === $wgCol.length) return instances;\n\n\t\t} else {\n\t\t\treturn new CareSliderItem($wg);\n\t\t}\n\n\n\t}).catch(error => error+'An error occurred while loading the CareSliderItem widget');\n\n}\n","// Function loadProvenceMap loads the ProvenceMap class by dynamically importing the js on demand if needed\n\nexport function loadProvenceMap($parentEl, isList = false) {\n\n\n\tlet $wg = $parentEl.querySelector('[data-wg=\"ProvenceMap\"]');\n\n\tif(!$wg) {\n\t\t// console.info('ProvenceMap: no widget found');\n\t\treturn Promise.reject('ProvenceMap widget not found in the parent element');\n\t}\n\n\treturn import(/* webpackChunkName: \"wg-provence-map-chunk\" */ '../widgets/provenceMap').then(wg => {\n\n\t\tconst { ProvenceMap } = wg;\n\n\t\tif (isList) {\n\t\t\tlet $wgCol = $parentEl.querySelectorAll('[data-wg=\"ProvenceMap\"]');\n\t\t\tlet instances = [];\n\t\t\tArray.from($wgCol).forEach(($wg, i) => {\n\t\t\t\tinstances.push( new ProvenceMap($wg) );\n\t\t\t});\n\t\t\tif (instances.length === $wgCol.length) return instances;\n\n\t\t} else {\n\t\t\treturn new ProvenceMap($wg);\n\t\t}\n\n\n\t}).catch(error => error+'An error occurred while loading the ProvenceMap widget');\n\n}\n","// Function loadImageSliderItem loads the ImageSliderItem class by dynamically importing the js on demand if needed\n\nexport function loadImageSliderItem($parentEl, isList = false) {\n\n\n\tlet $wg = $parentEl.querySelector('[data-wg=\"ImageSliderItem\"]');\n\n\tif(!$wg) {\n\t\t// console.info('ImageSliderItem: no widget found');\n\t\treturn Promise.reject('ArticleGallery widget not found in the parent element');\n\t}\n\n\treturn import(/* webpackChunkName: \"wg-image-slider-item-chunk\" */ '../widgets/imageSliderItem').then(wg => {\n\n\t\tconst { ImageSliderItem } = wg;\n\n\t\tif (isList) {\n\t\t\tlet $wgCol = $parentEl.querySelectorAll('[data-wg=\"ImageSliderItem\"]');\n\t\t\tlet instances = [];\n\t\t\tArray.from($wgCol).forEach(($wg, i) => {\n\t\t\t\tinstances.push( new ImageSliderItem($wg) );\n\t\t\t});\n\t\t\tif (instances.length === $wgCol.length) return instances;\n\n\t\t} else {\n\t\t\treturn new ImageSliderItem($wg);\n\t\t}\n\n\n\t}).catch(error => error+'An error occurred while loading the ImageSliderItem widget');\n\n}\n","/* instafeed.js | v2.0.0 | https://github.com/stevenschobert/instafeed.js | License: MIT */\nfunction assert(val, msg) {\n if (!val) {\n throw new Error(msg);\n }\n}\n\nfunction Instafeed(options) {\n assert(!options || typeof options === \"object\", \"options must be an object, got \" + options + \" (\" + typeof options + \")\");\n var opts = {\n accessToken: null,\n accessTokenTimeout: 1e4,\n after: null,\n apiTimeout: 1e4,\n apiLimit: null,\n before: null,\n debug: false,\n error: null,\n filter: null,\n limit: null,\n mock: false,\n render: null,\n sort: null,\n success: null,\n target: \"instafeed\",\n template: '<a href=\"{{link}}\"><img title=\"{{caption}}\" src=\"{{image}}\" /></a>',\n templateBoundaries: [ \"{{\", \"}}\" ],\n transform: null\n };\n var state = {\n running: false,\n node: null,\n token: null,\n paging: null,\n pool: []\n };\n if (options) {\n for (var optKey in opts) {\n if (typeof options[optKey] !== \"undefined\") {\n opts[optKey] = options[optKey];\n }\n }\n }\n assert(typeof opts.target === \"string\" || typeof opts.target === \"object\", \"target must be a string or DOM node, got \" + opts.target + \" (\" + typeof opts.target + \")\");\n assert(typeof opts.accessToken === \"string\" || typeof opts.accessToken === \"function\", \"accessToken must be a string or function, got \" + opts.accessToken + \" (\" + typeof opts.accessToken + \")\");\n assert(typeof opts.accessTokenTimeout === \"number\", \"accessTokenTimeout must be a number, got \" + opts.accessTokenTimeout + \" (\" + typeof opts.accessTokenTimeout + \")\");\n assert(typeof opts.apiTimeout === \"number\", \"apiTimeout must be a number, got \" + opts.apiTimeout + \" (\" + typeof opts.apiTimeout + \")\");\n assert(typeof opts.debug === \"boolean\", \"debug must be true or false, got \" + opts.debug + \" (\" + typeof opts.debug + \")\");\n assert(typeof opts.mock === \"boolean\", \"mock must be true or false, got \" + opts.mock + \" (\" + typeof opts.mock + \")\");\n assert(typeof opts.templateBoundaries === \"object\" && opts.templateBoundaries.length === 2 && typeof opts.templateBoundaries[0] === \"string\" && typeof opts.templateBoundaries[1] === \"string\", \"templateBoundaries must be an array of 2 strings, got \" + opts.templateBoundaries + \" (\" + typeof opts.templateBoundaries + \")\");\n assert(!opts.template || typeof opts.template === \"string\", \"template must null or string, got \" + opts.template + \" (\" + typeof opts.template + \")\");\n assert(!opts.error || typeof opts.error === \"function\", \"error must be null or function, got \" + opts.error + \" (\" + typeof opts.error + \")\");\n assert(!opts.before || typeof opts.before === \"function\", \"before must be null or function, got \" + opts.before + \" (\" + typeof opts.before + \")\");\n assert(!opts.after || typeof opts.after === \"function\", \"after must be null or function, got \" + opts.after + \" (\" + typeof opts.after + \")\");\n assert(!opts.success || typeof opts.success === \"function\", \"success must be null or function, got \" + opts.success + \" (\" + typeof opts.success + \")\");\n assert(!opts.filter || typeof opts.filter === \"function\", \"filter must be null or function, got \" + opts.filter + \" (\" + typeof opts.filter + \")\");\n assert(!opts.transform || typeof opts.transform === \"function\", \"transform must be null or function, got \" + opts.transform + \" (\" + typeof opts.transform + \")\");\n assert(!opts.sort || typeof opts.sort === \"function\", \"sort must be null or function, got \" + opts.sort + \" (\" + typeof opts.sort + \")\");\n assert(!opts.render || typeof opts.render === \"function\", \"render must be null or function, got \" + opts.render + \" (\" + typeof opts.render + \")\");\n assert(!opts.limit || typeof opts.limit === \"number\", \"limit must be null or number, got \" + opts.limit + \" (\" + typeof opts.limit + \")\");\n assert(!opts.apiLimit || typeof opts.apiLimit === \"number\", \"apiLimit must null or number, got \" + opts.apiLimit + \" (\" + typeof opts.apiLimit + \")\");\n this._state = state;\n this._options = opts;\n}\n\nInstafeed.prototype.run = function run() {\n var scope = this;\n this._debug(\"run\", \"options\", this._options);\n this._debug(\"run\", \"state\", this._state);\n if (this._state.running) {\n this._debug(\"run\", \"already running, skipping\");\n return false;\n }\n this._start();\n this._debug(\"run\", \"getting dom node\");\n if (typeof this._options.target === \"string\") {\n this._state.node = document.getElementById(this._options.target);\n } else {\n this._state.node = this._options.target;\n }\n if (!this._state.node) {\n this._fail(new Error(\"no element found with ID \" + this._options.target));\n return false;\n }\n this._debug(\"run\", \"got dom node\", this._state.node);\n this._debug(\"run\", \"getting access token\");\n this._getAccessToken(function onTokenReceived(err, token) {\n if (err) {\n scope._debug(\"onTokenReceived\", \"error\", err);\n scope._fail(new Error(\"error getting access token: \" + err.message));\n return;\n }\n scope._debug(\"onTokenReceived\", \"got token\", token);\n scope._state.token = token;\n scope._showNext(function onNextShown(err) {\n if (err) {\n scope._debug(\"onNextShown\", \"error\", err);\n scope._fail(err);\n return;\n }\n scope._finish();\n });\n });\n return true;\n};\n\nInstafeed.prototype.hasNext = function hasNext() {\n var paging = this._state.paging;\n var pool = this._state.pool;\n this._debug(\"hasNext\", \"paging\", paging);\n this._debug(\"hasNext\", \"pool\", pool.length, pool);\n return pool.length > 0 || paging && typeof paging.next === \"string\";\n};\n\nInstafeed.prototype.next = function next() {\n var scope = this;\n if (!scope.hasNext()) {\n scope._debug(\"next\", \"hasNext is false, skipping\");\n return false;\n }\n if (scope._state.running) {\n scope._debug(\"next\", \"already running, skipping\");\n return false;\n }\n scope._start();\n scope._showNext(function onNextShown(err) {\n if (err) {\n scope._debug(\"onNextShown\", \"error\", err);\n scope._fail(err);\n return;\n }\n scope._finish();\n });\n};\n\nInstafeed.prototype._showNext = function showNext(callback) {\n var scope = this;\n var url = null;\n var poolItems = null;\n var hasLimit = typeof this._options.limit === \"number\";\n scope._debug(\"showNext\", \"pool\", scope._state.pool.length, scope._state.pool);\n if (scope._state.pool.length > 0) {\n if (hasLimit) {\n poolItems = scope._state.pool.splice(0, scope._options.limit);\n } else {\n poolItems = scope._state.pool.splice(0);\n }\n scope._debug(\"showNext\", \"items from pool\", poolItems.length, poolItems);\n scope._debug(\"showNext\", \"updated pool\", scope._state.pool.length, scope._state.pool);\n if (scope._options.mock) {\n scope._debug(\"showNext\", \"mock enabled, skipping render\");\n } else {\n try {\n scope._renderData(poolItems);\n } catch (renderErr) {\n callback(renderErr);\n return;\n }\n }\n callback(null);\n } else {\n if (scope._state.paging && typeof scope._state.paging.next === \"string\") {\n url = scope._state.paging.next;\n } else {\n url = \"https://graph.instagram.com/me/media?fields=caption,id,media_type,media_url,permalink,thumbnail_url,timestamp,username&access_token=\" + scope._state.token;\n if (!scope._options.apiLimit && typeof scope._options.limit === \"number\") {\n scope._debug(\"showNext\", \"no apiLimit set, falling back to limit\", scope._options.apiLimit, scope._options.limit);\n url = url + \"&limit=\" + scope._options.limit;\n } else if (typeof scope._options.apiLimit === \"number\") {\n scope._debug(\"showNext\", \"apiLimit set, overriding limit\", scope._options.apiLimit, scope._options.limit);\n url = url + \"&limit=\" + scope._options.apiLimit;\n }\n }\n scope._debug(\"showNext\", \"making request\", url);\n scope._makeApiRequest(url, function onResponseReceived(err, data) {\n var processed = null;\n if (err) {\n scope._debug(\"onResponseReceived\", \"error\", err);\n callback(new Error(\"api request error: \" + err.message));\n return;\n }\n scope._debug(\"onResponseReceived\", \"data\", data);\n scope._success(data);\n scope._debug(\"onResponseReceived\", \"setting paging\", data.paging);\n scope._state.paging = data.paging;\n try {\n processed = scope._processData(data);\n scope._debug(\"onResponseReceived\", \"processed data\", processed);\n if (processed.unused && processed.unused.length > 0) {\n scope._debug(\"onResponseReceived\", \"saving unused to pool\", processed.unused.length, processed.unused);\n for (var i = 0; i < processed.unused.length; i++) {\n scope._state.pool.push(processed.unused[i]);\n }\n }\n } catch (processErr) {\n callback(processErr);\n return;\n }\n if (scope._options.mock) {\n scope._debug(\"onResponseReceived\", \"mock enabled, skipping append\");\n } else {\n try {\n scope._renderData(processed.items);\n } catch (renderErr) {\n callback(renderErr);\n return;\n }\n }\n callback(null);\n });\n }\n};\n\nInstafeed.prototype._processData = function processData(data) {\n var hasTransform = typeof this._options.transform === \"function\";\n var hasFilter = typeof this._options.filter === \"function\";\n var hasSort = typeof this._options.sort === \"function\";\n var hasLimit = typeof this._options.limit === \"number\";\n var transformedFiltered = [];\n var limitDelta = null;\n var dataItem = null;\n var transformedItem = null;\n var filterResult = null;\n var unusedItems = null;\n this._debug(\"processData\", \"hasFilter\", hasFilter, \"hasTransform\", hasTransform, \"hasSort\", hasSort, \"hasLimit\", hasLimit);\n if (typeof data !== \"object\" || typeof data.data !== \"object\" || data.data.length <= 0) {\n return null;\n }\n for (var i = 0; i < data.data.length; i++) {\n dataItem = this._getItemData(data.data[i]);\n if (hasTransform) {\n try {\n transformedItem = this._options.transform(dataItem);\n this._debug(\"processData\", \"transformed item\", dataItem, transformedItem);\n } catch (err) {\n this._debug(\"processData\", \"error calling transform\", err);\n throw new Error(\"error in transform: \" + err.message);\n }\n } else {\n transformedItem = dataItem;\n }\n if (hasFilter) {\n try {\n filterResult = this._options.filter(transformedItem);\n this._debug(\"processData\", \"filter item result\", transformedItem, filterResult);\n } catch (err) {\n this._debug(\"processData\", \"error calling filter\", err);\n throw new Error(\"error in filter: \" + err.message);\n }\n if (filterResult) {\n transformedFiltered.push(transformedItem);\n }\n } else {\n transformedFiltered.push(transformedItem);\n }\n }\n if (hasSort) {\n try {\n transformedFiltered.sort(this._options.sort);\n } catch (err) {\n this._debug(\"processData\", \"error calling sort\", err);\n throw new Error(\"error in sort: \" + err.message);\n }\n }\n if (hasLimit) {\n limitDelta = transformedFiltered.length - this._options.limit;\n this._debug(\"processData\", \"checking limit\", transformedFiltered.length, this._options.limit, limitDelta);\n if (limitDelta > 0) {\n unusedItems = transformedFiltered.slice(transformedFiltered.length - limitDelta);\n this._debug(\"processData\", \"unusedItems\", unusedItems.length, unusedItems);\n transformedFiltered.splice(transformedFiltered.length - limitDelta, limitDelta);\n }\n }\n return {\n items: transformedFiltered,\n unused: unusedItems\n };\n};\n\nInstafeed.prototype._extractTags = function extractTags(str) {\n var exp = /#([^\\s]+)/gi;\n var badChars = /[~`!@#$%^&*\\(\\)\\-\\+={}\\[\\]:;\"'<>\\?,\\./|\\\\\\s]+/i;\n var tags = [];\n var match = null;\n if (typeof str === \"string\") {\n while ((match = exp.exec(str)) !== null) {\n if (badChars.test(match[1]) === false) {\n tags.push(match[1]);\n }\n }\n }\n return tags;\n};\n\nInstafeed.prototype._getItemData = function getItemData(data) {\n var type = null;\n var image = null;\n switch (data.media_type) {\n case \"IMAGE\":\n type = \"image\";\n image = data.media_url;\n break;\n\n case \"VIDEO\":\n type = \"video\";\n image = data.thumbnail_url;\n break;\n\n case \"CAROUSEL_ALBUM\":\n type = \"album\";\n image = data.media_url;\n break;\n }\n return {\n caption: data.caption,\n tags: this._extractTags(data.caption),\n id: data.id,\n image: image,\n link: data.permalink,\n model: data,\n timestamp: data.timestamp,\n type: type,\n username: data.username\n };\n};\n\nInstafeed.prototype._renderData = function renderData(items) {\n var hasTemplate = typeof this._options.template === \"string\";\n var hasRender = typeof this._options.render === \"function\";\n var item = null;\n var itemHtml = null;\n var container = null;\n var html = \"\";\n this._debug(\"renderData\", \"hasTemplate\", hasTemplate, \"hasRender\", hasRender);\n if (typeof items !== \"object\" || items.length <= 0) {\n return;\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n if (hasRender) {\n try {\n itemHtml = this._options.render(item, this._options);\n this._debug(\"renderData\", \"custom render result\", item, itemHtml);\n } catch (err) {\n this._debug(\"renderData\", \"error calling render\", err);\n throw new Error(\"error in render: \" + err.message);\n }\n } else if (hasTemplate) {\n itemHtml = this._basicRender(item);\n }\n if (itemHtml) {\n html = html + itemHtml;\n } else {\n this._debug(\"renderData\", \"render item did not return any content\", item);\n }\n }\n this._debug(\"renderData\", \"html content\", html);\n container = document.createElement(\"div\");\n container.innerHTML = html;\n this._debug(\"renderData\", \"container\", container, container.childNodes.length, container.childNodes);\n while (container.childNodes.length > 0) {\n this._debug(\"renderData\", \"appending child\", container.childNodes[0]);\n this._state.node.appendChild(container.childNodes[0]);\n }\n};\n\nInstafeed.prototype._basicRender = function basicRender(data) {\n var exp = new RegExp(this._options.templateBoundaries[0] + \"([\\\\s\\\\w.]+)\" + this._options.templateBoundaries[1], \"gm\");\n var template = this._options.template;\n var match = null;\n var output = \"\";\n var substr = null;\n var lastIndex = 0;\n var keyPath = null;\n var keyPathValue = null;\n while ((match = exp.exec(template)) !== null) {\n keyPath = match[1];\n substr = template.slice(lastIndex, match.index);\n output = output + substr;\n keyPathValue = this._valueForKeyPath(keyPath, data);\n if (keyPathValue) {\n output = output + keyPathValue.toString();\n }\n lastIndex = exp.lastIndex;\n }\n if (lastIndex < template.length) {\n substr = template.slice(lastIndex, template.length);\n output = output + substr;\n }\n return output;\n};\n\nInstafeed.prototype._valueForKeyPath = function valueForKeyPath(keyPath, data) {\n var exp = /([\\w]+)/gm;\n var match = null;\n var key = null;\n var lastValue = data;\n while ((match = exp.exec(keyPath)) !== null) {\n if (typeof lastValue !== \"object\") {\n return null;\n }\n key = match[1];\n lastValue = lastValue[key];\n }\n return lastValue;\n};\n\nInstafeed.prototype._fail = function fail(err) {\n var didHook = this._runHook(\"error\", err);\n if (!didHook && console && typeof console.error === \"function\") {\n console.error(err);\n }\n this._state.running = false;\n};\n\nInstafeed.prototype._start = function start() {\n this._state.running = true;\n this._runHook(\"before\");\n};\n\nInstafeed.prototype._finish = function finish() {\n this._runHook(\"after\");\n this._state.running = false;\n};\n\nInstafeed.prototype._success = function success(data) {\n this._runHook(\"success\", data);\n this._state.running = false;\n};\n\nInstafeed.prototype._makeApiRequest = function makeApiRequest(url, callback) {\n var called = false;\n var scope = this;\n var apiRequest = null;\n var callbackOnce = function callbackOnce(err, value) {\n if (!called) {\n called = true;\n callback(err, value);\n }\n };\n apiRequest = new XMLHttpRequest();\n apiRequest.ontimeout = function apiRequestTimedOut() {\n callbackOnce(new Error(\"api request timed out\"));\n };\n apiRequest.onerror = function apiRequestOnError() {\n callbackOnce(new Error(\"api connection error\"));\n };\n apiRequest.onload = function apiRequestOnLoad(event) {\n var contentType = apiRequest.getResponseHeader(\"Content-Type\");\n var responseJson = null;\n scope._debug(\"apiRequestOnLoad\", \"loaded\", event);\n scope._debug(\"apiRequestOnLoad\", \"response status\", apiRequest.status);\n scope._debug(\"apiRequestOnLoad\", \"response content type\", contentType);\n if (contentType.indexOf(\"application/json\") >= 0) {\n try {\n responseJson = JSON.parse(apiRequest.responseText);\n } catch (err) {\n scope._debug(\"apiRequestOnLoad\", \"json parsing error\", err, apiRequest.responseText);\n callbackOnce(new Error(\"error parsing response json\"));\n return;\n }\n }\n if (apiRequest.status !== 200) {\n if (responseJson && responseJson.error) {\n callbackOnce(new Error(responseJson.error.code + \" \" + responseJson.error.message));\n } else {\n callbackOnce(new Error(\"status code \" + apiRequest.status));\n }\n return;\n }\n callbackOnce(null, responseJson);\n };\n apiRequest.open(\"GET\", url, true);\n apiRequest.timeout = this._options.apiTimeout;\n apiRequest.send();\n};\n\nInstafeed.prototype._getAccessToken = function getAccessToken(callback) {\n var called = false;\n var scope = this;\n var timeoutCheck = null;\n var callbackOnce = function callbackOnce(err, value) {\n if (!called) {\n called = true;\n clearTimeout(timeoutCheck);\n callback(err, value);\n }\n };\n if (typeof this._options.accessToken === \"function\") {\n this._debug(\"getAccessToken\", \"calling accessToken as function\");\n timeoutCheck = setTimeout(function accessTokenTimeoutCheck() {\n scope._debug(\"getAccessToken\", \"timeout check\", called);\n callbackOnce(new Error(\"accessToken timed out\"), null);\n }, this._options.accessTokenTimeout);\n try {\n this._options.accessToken(function accessTokenReceiver(err, value) {\n scope._debug(\"getAccessToken\", \"received accessToken callback\", called, err, value);\n callbackOnce(err, value);\n });\n } catch (err) {\n this._debug(\"getAccessToken\", \"error invoking the accessToken as function\", err);\n callbackOnce(err, null);\n }\n } else {\n this._debug(\"getAccessToken\", \"treating accessToken as static\", typeof this._options.accessToken);\n callbackOnce(null, this._options.accessToken);\n }\n};\n\nInstafeed.prototype._debug = function debug() {\n var args = null;\n if (this._options.debug && console && typeof console.log === \"function\") {\n args = [].slice.call(arguments);\n args[0] = \"[Instafeed] [\" + args[0] + \"]\";\n console.log.apply(null, args);\n }\n};\n\nInstafeed.prototype._runHook = function runHook(hookName, data) {\n var success = false;\n if (typeof this._options[hookName] === \"function\") {\n try {\n this._options[hookName](data);\n success = true;\n } catch (err) {\n this._debug(\"runHook\", \"error calling hook\", hookName, err);\n }\n }\n return success;\n};\n\nexport default Instafeed;","/*! *****************************************************************************\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\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}\n\nconst DEFAULT_DURATION = 300;\r\nfunction scrollTo(el, options = {}) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!(el instanceof Element) && !(el instanceof Window)) {\r\n throw new Error(`element passed to scrollTo() must be either the window or a DOM element, you passed ${el}!`);\r\n }\r\n options = sanitizeScrollOptions(options);\r\n const scroll = (from, to, prop, startTime, duration = DEFAULT_DURATION, easeFunc, callback) => {\r\n window.requestAnimationFrame(() => {\r\n const currentTime = Date.now();\r\n const time = Math.min(1, (currentTime - startTime) / duration);\r\n if (from === to) {\r\n return callback ? callback() : null;\r\n }\r\n setScrollPosition(el, easeFunc(time) * (to - from) + from);\r\n /* prevent scrolling, if already there, or at end */\r\n if (time < 1) {\r\n scroll(from, to, prop, startTime, duration, easeFunc, callback);\r\n }\r\n else if (callback) {\r\n callback();\r\n }\r\n });\r\n };\r\n const currentScrollPosition = getScrollPosition(el);\r\n const scrollProperty = getScrollPropertyByElement(el);\r\n return new Promise((resolve) => {\r\n scroll(currentScrollPosition, typeof options.top === 'number'\r\n ? options.top\r\n : currentScrollPosition, scrollProperty, Date.now(), options.duration, getEasing(options.easing), resolve);\r\n });\r\n });\r\n}\r\nfunction scrollIntoView(element, scroller, options) {\r\n validateElement(element);\r\n if (scroller && !(scroller instanceof Element)) {\r\n options = scroller;\r\n scroller = undefined;\r\n }\r\n const { duration, easing } = sanitizeScrollOptions(options);\r\n scroller = scroller || utils.getDocument().body;\r\n let currentContainerScrollYPos = 0;\r\n let elementScrollYPos = element ? element.offsetTop : 0;\r\n const document = utils.getDocument();\r\n // if the container is the document body or document itself, we'll\r\n // need a different set of coordinates for accuracy\r\n if (scroller === document.body || scroller === document.documentElement) {\r\n // using pageYOffset for cross-browser compatibility\r\n currentContainerScrollYPos = window.pageYOffset;\r\n // must add containers scroll y position to ensure an absolute value that does not change\r\n elementScrollYPos =\r\n element.getBoundingClientRect().top + currentContainerScrollYPos;\r\n }\r\n return scrollTo(scroller, {\r\n top: elementScrollYPos,\r\n left: 0,\r\n duration,\r\n easing,\r\n });\r\n}\r\nfunction validateElement(element) {\r\n if (element === undefined) {\r\n const errorMsg = 'The element passed to scrollIntoView() was undefined.';\r\n throw new Error(errorMsg);\r\n }\r\n if (!(element instanceof HTMLElement)) {\r\n throw new Error(`The element passed to scrollIntoView() must be a valid element. You passed ${element}.`);\r\n }\r\n}\r\nfunction getScrollPropertyByElement(el) {\r\n const props = {\r\n window: {\r\n y: 'scrollY',\r\n x: 'scrollX',\r\n },\r\n element: {\r\n y: 'scrollTop',\r\n x: 'scrollLeft',\r\n },\r\n };\r\n const axis = 'y';\r\n if (el instanceof Window) {\r\n return props.window[axis];\r\n }\r\n else {\r\n return props.element[axis];\r\n }\r\n}\r\nfunction sanitizeScrollOptions(options = {}) {\r\n if (options.behavior === 'smooth') {\r\n options.easing = 'ease-in-out';\r\n options.duration = DEFAULT_DURATION;\r\n }\r\n if (options.behavior === 'auto') {\r\n options.duration = 0;\r\n options.easing = 'linear';\r\n }\r\n return options;\r\n}\r\nfunction getScrollPosition(el) {\r\n const document = utils.getDocument();\r\n if (el === document.body ||\r\n el === document.documentElement ||\r\n el instanceof Window) {\r\n return document.body.scrollTop || document.documentElement.scrollTop;\r\n }\r\n else {\r\n return el.scrollTop;\r\n }\r\n}\r\nfunction setScrollPosition(el, value) {\r\n const document = utils.getDocument();\r\n if (el === document.body ||\r\n el === document.documentElement ||\r\n el instanceof Window) {\r\n document.body.scrollTop = value;\r\n document.documentElement.scrollTop = value;\r\n }\r\n else {\r\n el.scrollTop = value;\r\n }\r\n}\r\nconst utils = {\r\n // we're really just exporting this so that tests can mock the document.documentElement\r\n getDocument() {\r\n return document;\r\n },\r\n};\r\nconst easingMap = {\r\n linear(t) {\r\n return t;\r\n },\r\n 'ease-in'(t) {\r\n return t * t;\r\n },\r\n 'ease-out'(t) {\r\n return t * (2 - t);\r\n },\r\n 'ease-in-out'(t) {\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n },\r\n};\r\nconst getEasing = (easing) => {\r\n const defaultEasing = 'linear';\r\n const easeFunc = easingMap[easing || defaultEasing];\r\n if (!easeFunc) {\r\n const options = Object.keys(easingMap).join(',');\r\n throw new Error(`Scroll error: scroller does not support an easing option of \"${easing}\". Supported options are ${options}`);\r\n }\r\n return easeFunc;\r\n};\n\nexport { DEFAULT_DURATION, easingMap, scrollIntoView, scrollTo, utils };\n","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<p class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":15},\"end\":{\"line\":8,\"column\":21}}}) : helper)))\n + \"-title\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":29},\"end\":{\"line\":8,\"column\":37}}}) : helper)))\n + \"\\n\t\t\t\t\\n\t\t\t\t\t<br>\\n\t\t\t\t\t\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"location\") || (depth0 != null ? lookupProperty(depth0,\"location\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"location\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":5},\"end\":{\"line\":11,\"column\":17}}}) : helper)))\n + \"</p>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":17},\"end\":{\"line\":15,\"column\":23}}}) : helper)))\n + \"-badge \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":30},\"end\":{\"line\":15,\"column\":36}}}) : helper)))\n + \"-water\\\"></div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":18,\"column\":17},\"end\":{\"line\":18,\"column\":23}}}) : helper)))\n + \"-badge \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":18,\"column\":30},\"end\":{\"line\":18,\"column\":36}}}) : helper)))\n + \"-climate\\\"></div>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":21,\"column\":17},\"end\":{\"line\":21,\"column\":23}}}) : helper)))\n + \"-badge \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":21,\"column\":30},\"end\":{\"line\":21,\"column\":36}}}) : helper)))\n + \"-biodiversity\\\"></div>\\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":24,\"column\":17},\"end\":{\"line\":24,\"column\":23}}}) : helper)))\n + \"-badge \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":24,\"column\":30},\"end\":{\"line\":24,\"column\":36}}}) : helper)))\n + \"-stewardship\\\"></div>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":27,\"column\":17},\"end\":{\"line\":27,\"column\":23}}}) : helper)))\n + \"-badge \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":27,\"column\":30},\"end\":{\"line\":27,\"column\":36}}}) : helper)))\n + \"-land\\\"></div>\\n\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":30,\"column\":17},\"end\":{\"line\":30,\"column\":23}}}) : helper)))\n + \"-badge \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":30,\"column\":30},\"end\":{\"line\":30,\"column\":36}}}) : helper)))\n + \"-wellbeing\\\"></div>\\n\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":33,\"column\":17},\"end\":{\"line\":33,\"column\":23}}}) : helper)))\n + \"-badge \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":33,\"column\":30},\"end\":{\"line\":33,\"column\":36}}}) : helper)))\n + \"-clip\\\"></div>\\n\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":36,\"column\":17},\"end\":{\"line\":36,\"column\":23}}}) : helper)))\n + \"-badge \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":36,\"column\":30},\"end\":{\"line\":36,\"column\":36}}}) : helper)))\n + \"-responsibility\\\"></div>\\n\t\t\t\t\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"col-lg-4 col-md-6 col-sm-12 col-xs-12 \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":50},\"end\":{\"line\":1,\"column\":56}}}) : helper)))\n + \"\\\" data-wg=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"ns\") || (depth0 != null ? lookupProperty(depth0,\"ns\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"ns\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":67},\"end\":{\"line\":1,\"column\":73}}}) : helper)))\n + \"\\\">\\n\t<a href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"url\") || (depth0 != null ? lookupProperty(depth0,\"url\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"url\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":10},\"end\":{\"line\":2,\"column\":17}}}) : helper)))\n + \"\\\" target=\\\"_blank\\\">\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":13},\"end\":{\"line\":3,\"column\":19}}}) : helper)))\n + \"-img\\\"><img src=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"image\") || (depth0 != null ? lookupProperty(depth0,\"image\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"image\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":35},\"end\":{\"line\":3,\"column\":44}}}) : helper)))\n + \"\\\"></div>\\n\t</a>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":13},\"end\":{\"line\":5,\"column\":19}}}) : helper)))\n + \"-contents\\\">\\n\t\t\t<a class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":13},\"end\":{\"line\":6,\"column\":19}}}) : helper)))\n + \"-url\\\" href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"url\") || (depth0 != null ? lookupProperty(depth0,\"url\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"url\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":31},\"end\":{\"line\":6,\"column\":38}}}) : helper)))\n + \"\\\" target=\\\"_blank\\\">\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"name\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":4},\"end\":{\"line\":12,\"column\":11}}})) != null ? stack1 : \"\")\n + \"\t\t\t</a>\\n\t\t\t\t<!--\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"water\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":8},\"end\":{\"line\":16,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"climate\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":17,\"column\":4},\"end\":{\"line\":19,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"biodiversity\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":20,\"column\":4},\"end\":{\"line\":22,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"stewardship\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":23,\"column\":4},\"end\":{\"line\":25,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"land\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":26,\"column\":4},\"end\":{\"line\":28,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"wellbeing\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":29,\"column\":4},\"end\":{\"line\":31,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"clip\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":32,\"column\":4},\"end\":{\"line\":34,\"column\":11}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"responsibility\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":35,\"column\":4},\"end\":{\"line\":37,\"column\":11}}})) != null ? stack1 : \"\")\n + \"-->\\n\t</div>\\n</div>\";\n},\"useData\":true});","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t<i class=\\\"fa fa-globe\\\" aria-hidden=\\\"true\\\"></i> <a href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"website\") || (depth0 != null ? lookupProperty(depth0,\"website\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"website\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":61},\"end\":{\"line\":13,\"column\":72}}}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"url\") || (depth0 != null ? lookupProperty(depth0,\"url\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"url\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":74},\"end\":{\"line\":13,\"column\":81}}}) : helper)))\n + \"</a>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Energy Efficiency\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(4, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":17,\"column\":5},\"end\":{\"line\":23,\"column\":16}}})) != null ? stack1 : \"\")\n + ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Recycled Materials\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(7, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":24,\"column\":5},\"end\":{\"line\":30,\"column\":16}}})) != null ? stack1 : \"\")\n + ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Social Impact\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(10, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":31,\"column\":5},\"end\":{\"line\":37,\"column\":16}}})) != null ? stack1 : \"\")\n + ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Water Conservation and Quality\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(12, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":38,\"column\":5},\"end\":{\"line\":44,\"column\":16}}})) != null ? stack1 : \"\")\n + ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Carbon Footprint Minimisation\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(14, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":45,\"column\":5},\"end\":{\"line\":51,\"column\":16}}})) != null ? stack1 : \"\")\n + ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Chemical Management and Reduction\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(16, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":52,\"column\":5},\"end\":{\"line\":58,\"column\":16}}})) != null ? stack1 : \"\")\n + ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Investment in R&D\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(18, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":59,\"column\":5},\"end\":{\"line\":65,\"column\":16}}})) != null ? stack1 : \"\")\n + ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Traceability and Transparency\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(20, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":66,\"column\":5},\"end\":{\"line\":72,\"column\":16}}})) != null ? stack1 : \"\")\n + ((stack1 = (lookupProperty(helpers,\"ifCond\")||(depth0 && lookupProperty(depth0,\"ifCond\"))||alias2).call(alias1,((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"label\") : stack1),\"==\",\"Waste Reduction and Management\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(22, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":73,\"column\":5},\"end\":{\"line\":79,\"column\":16}}})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-energy supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Energy Efficiency</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":19,\"column\":6},\"end\":{\"line\":21,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data,blockParams) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t\t-\"\n + container.escapeExpression(container.lambda(((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"description\") : stack1), depth0))\n + \"<br>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-recycled supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Recycled Materials</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":26,\"column\":6},\"end\":{\"line\":28,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data,blockParams) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t\t- \"\n + container.escapeExpression(container.lambda(((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"description\") : stack1), depth0))\n + \"<br>\\n\";\n},\"10\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-social supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Social Impact</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":33,\"column\":6},\"end\":{\"line\":35,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"12\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-water supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Water Conservation and Quality</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":40,\"column\":6},\"end\":{\"line\":42,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"14\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-carbon supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Carbon Footprint Minimization</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":47,\"column\":6},\"end\":{\"line\":49,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"16\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-chemical supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Chemical Management and Reduction</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":54,\"column\":6},\"end\":{\"line\":56,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"18\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-investment supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Investment in R&D</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":61,\"column\":6},\"end\":{\"line\":63,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"20\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-traceability supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Traceability Transparency</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":68,\"column\":6},\"end\":{\"line\":70,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"22\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\t\t<div class=\\\"\"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-badge \"\n + alias2(alias1((depths[2] != null ? lookupProperty(depths[2],\"wg\") : depths[2]), depth0))\n + \"-waste supplierTooltip\\\"><span class=\\\"supplierTooltiptext\\\"><h4>Waste Reduction and Management</h4>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"subItems\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":75,\"column\":6},\"end\":{\"line\":77,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t\t</span></div>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"col-lg-3 col-md-6 col-sm-12 col-xs-12 \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":1,\"column\":50},\"end\":{\"line\":1,\"column\":56}}}) : helper)))\n + \"\\\" data-wg=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"ns\") || (depth0 != null ? lookupProperty(depth0,\"ns\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"ns\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":1,\"column\":67},\"end\":{\"line\":1,\"column\":73}}}) : helper)))\n + \"\\\">\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":2,\"column\":13},\"end\":{\"line\":2,\"column\":19}}}) : helper)))\n + \"-img\\\"><img src=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"image\") || (depth0 != null ? lookupProperty(depth0,\"image\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"image\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":2,\"column\":35},\"end\":{\"line\":2,\"column\":44}}}) : helper)))\n + \"\\\"></div>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":3,\"column\":13},\"end\":{\"line\":3,\"column\":19}}}) : helper)))\n + \"-contents\\\">\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":4,\"column\":16},\"end\":{\"line\":4,\"column\":22}}}) : helper)))\n + \"-supplierLogoContainer\\\">\\n\t\t\t\t\t<img class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":5,\"column\":17},\"end\":{\"line\":5,\"column\":23}}}) : helper)))\n + \"-supplierLogo\\\" src=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"logo\") || (depth0 != null ? lookupProperty(depth0,\"logo\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"logo\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":5,\"column\":43},\"end\":{\"line\":5,\"column\":51}}}) : helper)))\n + \"\\\">\\n\t\t\t\t</div>\\n\t\t\t\t\t<h4 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":7,\"column\":16},\"end\":{\"line\":7,\"column\":22}}}) : helper)))\n + \"-title\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":7,\"column\":30},\"end\":{\"line\":7,\"column\":38}}}) : helper)))\n + \"</h4>\\n\t\t\t\t\t<p>\\n\t\t\t\t\t<i class=\\\"fa fa-users\\\" aria-hidden=\\\"true\\\"></i> \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"type\") || (depth0 != null ? lookupProperty(depth0,\"type\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"type\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":9,\"column\":52},\"end\":{\"line\":9,\"column\":60}}}) : helper)))\n + \"<br>\\n\t\t\t\t\t<i class=\\\"fa fa-location-arrow\\\" aria-hidden=\\\"true\\\"></i> \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"country\") || (depth0 != null ? lookupProperty(depth0,\"country\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"country\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":10,\"column\":61},\"end\":{\"line\":10,\"column\":72}}}) : helper)))\n + \"<br>\\n\t\t\t\t\t<i class=\\\"fa fa-envelope\\\"></i> <a href=\\\"mailto:\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"contact\") || (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"contact\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":11,\"column\":52},\"end\":{\"line\":11,\"column\":63}}}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"contact\") || (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"contact\",\"hash\":{},\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":11,\"column\":65},\"end\":{\"line\":11,\"column\":76}}}) : helper)))\n + \"</a><br>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"website\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":12,\"column\":5},\"end\":{\"line\":14,\"column\":12}}})) != null ? stack1 : \"\")\n + \"\t\t\t\t\t</p>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"sustainabilityDeclarations\") : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(3, data, 1, blockParams, depths),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":16,\"column\":4},\"end\":{\"line\":80,\"column\":13}}})) != null ? stack1 : \"\")\n + \"\t</div>\\n</div>\";\n},\"useData\":true,\"useDepths\":true,\"useBlockParams\":true});","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t<div class=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":16},\"end\":{\"line\":9,\"column\":22}}}) : helper)))\n + \"-certifiedIcon\\\"></div>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"col-lg-3 col-md-6 col-sm-12 col-xs-12 \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":50},\"end\":{\"line\":1,\"column\":56}}}) : helper)))\n + \"\\\" data-wg=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"ns\") || (depth0 != null ? lookupProperty(depth0,\"ns\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"ns\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":67},\"end\":{\"line\":1,\"column\":73}}}) : helper)))\n + \"\\\">\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":13},\"end\":{\"line\":2,\"column\":19}}}) : helper)))\n + \"-img\\\"><img src=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"image\") || (depth0 != null ? lookupProperty(depth0,\"image\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"image\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":35},\"end\":{\"line\":2,\"column\":44}}}) : helper)))\n + \"\\\"></div>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":13},\"end\":{\"line\":3,\"column\":19}}}) : helper)))\n + \"-contents\\\">\\n\t\t<a href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"url\") || (depth0 != null ? lookupProperty(depth0,\"url\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"url\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":11},\"end\":{\"line\":4,\"column\":18}}}) : helper)))\n + \"\\\" target=\\\"_blank\\\"><h4 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":47},\"end\":{\"line\":4,\"column\":53}}}) : helper)))\n + \"-title\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":61},\"end\":{\"line\":4,\"column\":69}}}) : helper)))\n + \"</h4></a>\\n\t\t<p>\\n\t\t<i class=\\\"fa fa-users\\\" aria-hidden=\\\"true\\\"></i> \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"type\") || (depth0 != null ? lookupProperty(depth0,\"type\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"type\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":49},\"end\":{\"line\":6,\"column\":57}}}) : helper)))\n + \"<br>\\n\t\t<i class=\\\"fa fa-location-arrow\\\" aria-hidden=\\\"true\\\"></i> \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"location\") || (depth0 != null ? lookupProperty(depth0,\"location\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"location\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":58},\"end\":{\"line\":7,\"column\":70}}}) : helper)))\n + \"<br>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"isCertified\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":10,\"column\":9}}})) != null ? stack1 : \"\")\n + \"\t\t</p>\\n\t</div>\\n</div>\";\n},\"useData\":true});","var map = {\n\t\"./af\": 611,\n\t\"./af.js\": 611,\n\t\"./ar\": 612,\n\t\"./ar-dz\": 613,\n\t\"./ar-dz.js\": 613,\n\t\"./ar-kw\": 614,\n\t\"./ar-kw.js\": 614,\n\t\"./ar-ly\": 615,\n\t\"./ar-ly.js\": 615,\n\t\"./ar-ma\": 616,\n\t\"./ar-ma.js\": 616,\n\t\"./ar-ps\": 617,\n\t\"./ar-ps.js\": 617,\n\t\"./ar-sa\": 618,\n\t\"./ar-sa.js\": 618,\n\t\"./ar-tn\": 619,\n\t\"./ar-tn.js\": 619,\n\t\"./ar.js\": 612,\n\t\"./az\": 620,\n\t\"./az.js\": 620,\n\t\"./be\": 621,\n\t\"./be.js\": 621,\n\t\"./bg\": 622,\n\t\"./bg.js\": 622,\n\t\"./bm\": 623,\n\t\"./bm.js\": 623,\n\t\"./bn\": 624,\n\t\"./bn-bd\": 625,\n\t\"./bn-bd.js\": 625,\n\t\"./bn.js\": 624,\n\t\"./bo\": 626,\n\t\"./bo.js\": 626,\n\t\"./br\": 627,\n\t\"./br.js\": 627,\n\t\"./bs\": 628,\n\t\"./bs.js\": 628,\n\t\"./ca\": 629,\n\t\"./ca.js\": 629,\n\t\"./cs\": 630,\n\t\"./cs.js\": 630,\n\t\"./cv\": 631,\n\t\"./cv.js\": 631,\n\t\"./cy\": 632,\n\t\"./cy.js\": 632,\n\t\"./da\": 633,\n\t\"./da.js\": 633,\n\t\"./de\": 634,\n\t\"./de-at\": 635,\n\t\"./de-at.js\": 635,\n\t\"./de-ch\": 636,\n\t\"./de-ch.js\": 636,\n\t\"./de.js\": 634,\n\t\"./dv\": 637,\n\t\"./dv.js\": 637,\n\t\"./el\": 638,\n\t\"./el.js\": 638,\n\t\"./en-au\": 639,\n\t\"./en-au.js\": 639,\n\t\"./en-ca\": 640,\n\t\"./en-ca.js\": 640,\n\t\"./en-gb\": 641,\n\t\"./en-gb.js\": 641,\n\t\"./en-ie\": 642,\n\t\"./en-ie.js\": 642,\n\t\"./en-il\": 643,\n\t\"./en-il.js\": 643,\n\t\"./en-in\": 644,\n\t\"./en-in.js\": 644,\n\t\"./en-nz\": 645,\n\t\"./en-nz.js\": 645,\n\t\"./en-sg\": 646,\n\t\"./en-sg.js\": 646,\n\t\"./eo\": 647,\n\t\"./eo.js\": 647,\n\t\"./es\": 648,\n\t\"./es-do\": 649,\n\t\"./es-do.js\": 649,\n\t\"./es-mx\": 650,\n\t\"./es-mx.js\": 650,\n\t\"./es-us\": 651,\n\t\"./es-us.js\": 651,\n\t\"./es.js\": 648,\n\t\"./et\": 652,\n\t\"./et.js\": 652,\n\t\"./eu\": 653,\n\t\"./eu.js\": 653,\n\t\"./fa\": 654,\n\t\"./fa.js\": 654,\n\t\"./fi\": 655,\n\t\"./fi.js\": 655,\n\t\"./fil\": 656,\n\t\"./fil.js\": 656,\n\t\"./fo\": 657,\n\t\"./fo.js\": 657,\n\t\"./fr\": 658,\n\t\"./fr-ca\": 659,\n\t\"./fr-ca.js\": 659,\n\t\"./fr-ch\": 660,\n\t\"./fr-ch.js\": 660,\n\t\"./fr.js\": 658,\n\t\"./fy\": 661,\n\t\"./fy.js\": 661,\n\t\"./ga\": 662,\n\t\"./ga.js\": 662,\n\t\"./gd\": 663,\n\t\"./gd.js\": 663,\n\t\"./gl\": 664,\n\t\"./gl.js\": 664,\n\t\"./gom-deva\": 665,\n\t\"./gom-deva.js\": 665,\n\t\"./gom-latn\": 666,\n\t\"./gom-latn.js\": 666,\n\t\"./gu\": 667,\n\t\"./gu.js\": 667,\n\t\"./he\": 668,\n\t\"./he.js\": 668,\n\t\"./hi\": 669,\n\t\"./hi.js\": 669,\n\t\"./hr\": 670,\n\t\"./hr.js\": 670,\n\t\"./hu\": 671,\n\t\"./hu.js\": 671,\n\t\"./hy-am\": 672,\n\t\"./hy-am.js\": 672,\n\t\"./id\": 673,\n\t\"./id.js\": 673,\n\t\"./is\": 674,\n\t\"./is.js\": 674,\n\t\"./it\": 675,\n\t\"./it-ch\": 676,\n\t\"./it-ch.js\": 676,\n\t\"./it.js\": 675,\n\t\"./ja\": 677,\n\t\"./ja.js\": 677,\n\t\"./jv\": 678,\n\t\"./jv.js\": 678,\n\t\"./ka\": 679,\n\t\"./ka.js\": 679,\n\t\"./kk\": 680,\n\t\"./kk.js\": 680,\n\t\"./km\": 681,\n\t\"./km.js\": 681,\n\t\"./kn\": 682,\n\t\"./kn.js\": 682,\n\t\"./ko\": 683,\n\t\"./ko.js\": 683,\n\t\"./ku\": 684,\n\t\"./ku-kmr\": 685,\n\t\"./ku-kmr.js\": 685,\n\t\"./ku.js\": 684,\n\t\"./ky\": 686,\n\t\"./ky.js\": 686,\n\t\"./lb\": 687,\n\t\"./lb.js\": 687,\n\t\"./lo\": 688,\n\t\"./lo.js\": 688,\n\t\"./lt\": 689,\n\t\"./lt.js\": 689,\n\t\"./lv\": 690,\n\t\"./lv.js\": 690,\n\t\"./me\": 691,\n\t\"./me.js\": 691,\n\t\"./mi\": 692,\n\t\"./mi.js\": 692,\n\t\"./mk\": 693,\n\t\"./mk.js\": 693,\n\t\"./ml\": 694,\n\t\"./ml.js\": 694,\n\t\"./mn\": 695,\n\t\"./mn.js\": 695,\n\t\"./mr\": 696,\n\t\"./mr.js\": 696,\n\t\"./ms\": 697,\n\t\"./ms-my\": 698,\n\t\"./ms-my.js\": 698,\n\t\"./ms.js\": 697,\n\t\"./mt\": 699,\n\t\"./mt.js\": 699,\n\t\"./my\": 700,\n\t\"./my.js\": 700,\n\t\"./nb\": 701,\n\t\"./nb.js\": 701,\n\t\"./ne\": 702,\n\t\"./ne.js\": 702,\n\t\"./nl\": 703,\n\t\"./nl-be\": 704,\n\t\"./nl-be.js\": 704,\n\t\"./nl.js\": 703,\n\t\"./nn\": 705,\n\t\"./nn.js\": 705,\n\t\"./oc-lnc\": 706,\n\t\"./oc-lnc.js\": 706,\n\t\"./pa-in\": 707,\n\t\"./pa-in.js\": 707,\n\t\"./pl\": 708,\n\t\"./pl.js\": 708,\n\t\"./pt\": 709,\n\t\"./pt-br\": 710,\n\t\"./pt-br.js\": 710,\n\t\"./pt.js\": 709,\n\t\"./ro\": 711,\n\t\"./ro.js\": 711,\n\t\"./ru\": 712,\n\t\"./ru.js\": 712,\n\t\"./sd\": 713,\n\t\"./sd.js\": 713,\n\t\"./se\": 714,\n\t\"./se.js\": 714,\n\t\"./si\": 715,\n\t\"./si.js\": 715,\n\t\"./sk\": 716,\n\t\"./sk.js\": 716,\n\t\"./sl\": 717,\n\t\"./sl.js\": 717,\n\t\"./sq\": 718,\n\t\"./sq.js\": 718,\n\t\"./sr\": 719,\n\t\"./sr-cyrl\": 720,\n\t\"./sr-cyrl.js\": 720,\n\t\"./sr.js\": 719,\n\t\"./ss\": 721,\n\t\"./ss.js\": 721,\n\t\"./sv\": 722,\n\t\"./sv.js\": 722,\n\t\"./sw\": 723,\n\t\"./sw.js\": 723,\n\t\"./ta\": 724,\n\t\"./ta.js\": 724,\n\t\"./te\": 725,\n\t\"./te.js\": 725,\n\t\"./tet\": 726,\n\t\"./tet.js\": 726,\n\t\"./tg\": 727,\n\t\"./tg.js\": 727,\n\t\"./th\": 728,\n\t\"./th.js\": 728,\n\t\"./tk\": 729,\n\t\"./tk.js\": 729,\n\t\"./tl-ph\": 730,\n\t\"./tl-ph.js\": 730,\n\t\"./tlh\": 731,\n\t\"./tlh.js\": 731,\n\t\"./tr\": 732,\n\t\"./tr.js\": 732,\n\t\"./tzl\": 733,\n\t\"./tzl.js\": 733,\n\t\"./tzm\": 734,\n\t\"./tzm-latn\": 735,\n\t\"./tzm-latn.js\": 735,\n\t\"./tzm.js\": 734,\n\t\"./ug-cn\": 736,\n\t\"./ug-cn.js\": 736,\n\t\"./uk\": 737,\n\t\"./uk.js\": 737,\n\t\"./ur\": 738,\n\t\"./ur.js\": 738,\n\t\"./uz\": 739,\n\t\"./uz-latn\": 740,\n\t\"./uz-latn.js\": 740,\n\t\"./uz.js\": 739,\n\t\"./vi\": 741,\n\t\"./vi.js\": 741,\n\t\"./x-pseudo\": 742,\n\t\"./x-pseudo.js\": 742,\n\t\"./yo\": 743,\n\t\"./yo.js\": 743,\n\t\"./zh-cn\": 744,\n\t\"./zh-cn.js\": 744,\n\t\"./zh-hk\": 745,\n\t\"./zh-hk.js\": 745,\n\t\"./zh-mo\": 746,\n\t\"./zh-mo.js\": 746,\n\t\"./zh-tw\": 747,\n\t\"./zh-tw.js\": 747\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 795;","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"videoImage\") || (depth0 != null ? lookupProperty(depth0,\"videoImage\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"videoImage\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":31},\"end\":{\"line\":7,\"column\":45}}}) : helper)));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"https://img.youtube.com/vi/\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"videoId\") || (depth0 != null ? lookupProperty(depth0,\"videoId\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"videoId\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":80},\"end\":{\"line\":7,\"column\":91}}}) : helper)))\n + \"/0.jpg\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n<!--Video Listing Item Block Widget content starts here-->\\n\\n<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":12},\"end\":{\"line\":4,\"column\":18}}}) : helper)))\n + \" \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"mods\") || (depth0 != null ? lookupProperty(depth0,\"mods\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"mods\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":19},\"end\":{\"line\":4,\"column\":27}}}) : helper)))\n + \"\\\" data-wg=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"ns\") || (depth0 != null ? lookupProperty(depth0,\"ns\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"ns\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":38},\"end\":{\"line\":4,\"column\":44}}}) : helper)))\n + \"\\\" data-video-id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"videoId\") || (depth0 != null ? lookupProperty(depth0,\"videoId\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"videoId\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":61},\"end\":{\"line\":4,\"column\":72}}}) : helper)))\n + \"\\\" data-video-type=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"videoType\") || (depth0 != null ? lookupProperty(depth0,\"videoType\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"videoType\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":91},\"end\":{\"line\":4,\"column\":104}}}) : helper)))\n + \"\\\">\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":13},\"end\":{\"line\":5,\"column\":19}}}) : helper)))\n + \"-innerWrapper\\\">\\n\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":14},\"end\":{\"line\":6,\"column\":20}}}) : helper)))\n + \"-thumb\\\" data-toggle=\\\"modal\\\" data-target=\\\"#videoPlayer\\\">\\n\t\t\t<img src=\\\"\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"videoImage\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":13},\"end\":{\"line\":7,\"column\":104}}})) != null ? stack1 : \"\")\n + \"\\\" alt=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"videoTitle\") || (depth0 != null ? lookupProperty(depth0,\"videoTitle\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"videoTitle\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":111},\"end\":{\"line\":7,\"column\":125}}}) : helper)))\n + \"\\\" />\\n\t\t\t<span class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":16},\"end\":{\"line\":8,\"column\":22}}}) : helper)))\n + \"-playIcon fas fa-play\\\">\\n\t\t\t\t<span class=\\\"sr-only\\\">Play Video</span>\\n\t\t\t</span>\\n\t\t</div>\\n\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":12,\"column\":14},\"end\":{\"line\":12,\"column\":20}}}) : helper)))\n + \"-details\\\">\\n\t\t\t<h2 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":14},\"end\":{\"line\":13,\"column\":20}}}) : helper)))\n + \"-title\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"videoTitle\") || (depth0 != null ? lookupProperty(depth0,\"videoTitle\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"videoTitle\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":28},\"end\":{\"line\":13,\"column\":42}}}) : helper)))\n + \"</h2>\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":15},\"end\":{\"line\":14,\"column\":21}}}) : helper)))\n + \"-date\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"videoDate\") || (depth0 != null ? lookupProperty(depth0,\"videoDate\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"videoDate\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":28},\"end\":{\"line\":14,\"column\":41}}}) : helper)))\n + \"</div>\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":15},\"end\":{\"line\":15,\"column\":21}}}) : helper)))\n + \"-summary\\\">\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"videoSummary\") || (depth0 != null ? lookupProperty(depth0,\"videoSummary\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"videoSummary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":31},\"end\":{\"line\":15,\"column\":49}}}) : helper))) != null ? stack1 : \"\")\n + \"</div>\\n\t\t</div>\\n\t</div>\\n</div>\\n\\n<!--Video Listing Item Block Widget content ends here-->\\n\";\n},\"useData\":true});","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t<a class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":12},\"end\":{\"line\":14,\"column\":18}}}) : helper)))\n + \"-link\\\" href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"buttonLink\") || (depth0 != null ? lookupProperty(depth0,\"buttonLink\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"buttonLink\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":31},\"end\":{\"line\":14,\"column\":45}}}) : helper)))\n + \"\\\" \"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"buttonTarget\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":47},\"end\":{\"line\":14,\"column\":99}}})) != null ? stack1 : \"\")\n + \">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"buttonText\") || (depth0 != null ? lookupProperty(depth0,\"buttonText\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"buttonText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":100},\"end\":{\"line\":14,\"column\":114}}}) : helper)))\n + \"</a>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"target=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"buttonTarget\") || (depth0 != null ? lookupProperty(depth0,\"buttonTarget\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"buttonTarget\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":75},\"end\":{\"line\":14,\"column\":91}}}) : helper)))\n + \"\\\"\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n<!--Card Item Block Widget content starts here-->\\n\\n<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":12},\"end\":{\"line\":4,\"column\":18}}}) : helper)))\n + \" \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"mods\") || (depth0 != null ? lookupProperty(depth0,\"mods\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"mods\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":19},\"end\":{\"line\":4,\"column\":27}}}) : helper)))\n + \"\\\" data-wg=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"ns\") || (depth0 != null ? lookupProperty(depth0,\"ns\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"ns\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":38},\"end\":{\"line\":4,\"column\":44}}}) : helper)))\n + \"\\\">\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":13},\"end\":{\"line\":5,\"column\":19}}}) : helper)))\n + \"-image\\\" style=\\\"background-image: url(\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"image\") || (depth0 != null ? lookupProperty(depth0,\"image\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"image\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":56},\"end\":{\"line\":5,\"column\":65}}}) : helper)))\n + \");\\\">\\n\t\t<span class=\\\"sr-only\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":24},\"end\":{\"line\":6,\"column\":33}}}) : helper)))\n + \"</span>\\n\t</div>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":13},\"end\":{\"line\":8,\"column\":19}}}) : helper)))\n + \"-content\\\">\\n\t\t<h2 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":13},\"end\":{\"line\":9,\"column\":19}}}) : helper)))\n + \"-title\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":27},\"end\":{\"line\":9,\"column\":36}}}) : helper)))\n + \"</h2>\\n\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":14},\"end\":{\"line\":10,\"column\":20}}}) : helper)))\n + \"-summary\\\">\\n\t\t\t\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"summary\") || (depth0 != null ? lookupProperty(depth0,\"summary\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"summary\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":3},\"end\":{\"line\":11,\"column\":16}}}) : helper))) != null ? stack1 : \"\")\n + \"\\n\t\t</div>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"buttonLink\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":15,\"column\":9}}})) != null ? stack1 : \"\")\n + \"\t</div>\\n</div>\\n\\n<!--Card Item Block Widget content ends here-->\\n\";\n},\"useData\":true});","/*global window */\n/**\n * @license countdown.js v2.6.0 http://countdownjs.org\n * Copyright (c)2006-2014 Stephen M. McKamey.\n * Licensed under The MIT License.\n */\n/*jshint bitwise:false */\n\n/**\n * @public\n * @type {Object|null}\n */\nvar module;\n\n/**\n * API entry\n * @public\n * @param {function(Object)|Date|number} start the starting date\n * @param {function(Object)|Date|number} end the ending date\n * @param {number} units the units to populate\n * @return {Object|number}\n */\nvar countdown = (\n\n/**\n * @param {Object} module CommonJS Module\n */\nfunction(module) {\n\t/*jshint smarttabs:true */\n\n\t'use strict';\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar MILLISECONDS\t= 0x001;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar SECONDS\t\t\t= 0x002;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar MINUTES\t\t\t= 0x004;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar HOURS\t\t\t= 0x008;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar DAYS\t\t\t= 0x010;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar WEEKS\t\t\t= 0x020;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar MONTHS\t\t\t= 0x040;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar YEARS\t\t\t= 0x080;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar DECADES\t\t\t= 0x100;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar CENTURIES\t\t= 0x200;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar MILLENNIA\t\t= 0x400;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar DEFAULTS\t\t= YEARS|MONTHS|DAYS|HOURS|MINUTES|SECONDS;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar MILLISECONDS_PER_SECOND = 1000;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar SECONDS_PER_MINUTE = 60;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar MINUTES_PER_HOUR = 60;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar HOURS_PER_DAY = 24;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar MILLISECONDS_PER_DAY = HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE * MILLISECONDS_PER_SECOND;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar DAYS_PER_WEEK = 7;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar MONTHS_PER_YEAR = 12;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar YEARS_PER_DECADE = 10;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar DECADES_PER_CENTURY = 10;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar CENTURIES_PER_MILLENNIUM = 10;\n\n\t/**\n\t * @private\n\t * @param {number} x number\n\t * @return {number}\n\t */\n\tvar ceil = Math.ceil;\n\n\t/**\n\t * @private\n\t * @param {number} x number\n\t * @return {number}\n\t */\n\tvar floor = Math.floor;\n\n\t/**\n\t * @private\n\t * @param {Date} ref reference date\n\t * @param {number} shift number of months to shift\n\t * @return {number} number of days shifted\n\t */\n\tfunction borrowMonths(ref, shift) {\n\t\tvar prevTime = ref.getTime();\n\n\t\t// increment month by shift\n\t\tref.setMonth( ref.getMonth() + shift );\n\n\t\t// this is the trickiest since months vary in length\n\t\treturn Math.round( (ref.getTime() - prevTime) / MILLISECONDS_PER_DAY );\n\t}\n\n\t/**\n\t * @private\n\t * @param {Date} ref reference date\n\t * @return {number} number of days\n\t */\n\tfunction daysPerMonth(ref) {\n\t\tvar a = ref.getTime();\n\n\t\t// increment month by 1\n\t\tvar b = new Date(a);\n\t\tb.setMonth( ref.getMonth() + 1 );\n\n\t\t// this is the trickiest since months vary in length\n\t\treturn Math.round( (b.getTime() - a) / MILLISECONDS_PER_DAY );\n\t}\n\n\t/**\n\t * @private\n\t * @param {Date} ref reference date\n\t * @return {number} number of days\n\t */\n\tfunction daysPerYear(ref) {\n\t\tvar a = ref.getTime();\n\n\t\t// increment year by 1\n\t\tvar b = new Date(a);\n\t\tb.setFullYear( ref.getFullYear() + 1 );\n\n\t\t// this is the trickiest since years (periodically) vary in length\n\t\treturn Math.round( (b.getTime() - a) / MILLISECONDS_PER_DAY );\n\t}\n\n\t/**\n\t * Applies the Timespan to the given date.\n\t * \n\t * @private\n\t * @param {Timespan} ts\n\t * @param {Date=} date\n\t * @return {Date}\n\t */\n\tfunction addToDate(ts, date) {\n\t\tdate = (date instanceof Date) || ((date !== null) && isFinite(date)) ? new Date(+date) : new Date();\n\t\tif (!ts) {\n\t\t\treturn date;\n\t\t}\n\n\t\t// if there is a value field, use it directly\n\t\tvar value = +ts.value || 0;\n\t\tif (value) {\n\t\t\tdate.setTime(date.getTime() + value);\n\t\t\treturn date;\n\t\t}\n\n\t\tvalue = +ts.milliseconds || 0;\n\t\tif (value) {\n\t\t\tdate.setMilliseconds(date.getMilliseconds() + value);\n\t\t}\n\n\t\tvalue = +ts.seconds || 0;\n\t\tif (value) {\n\t\t\tdate.setSeconds(date.getSeconds() + value);\n\t\t}\n\n\t\tvalue = +ts.minutes || 0;\n\t\tif (value) {\n\t\t\tdate.setMinutes(date.getMinutes() + value);\n\t\t}\n\n\t\tvalue = +ts.hours || 0;\n\t\tif (value) {\n\t\t\tdate.setHours(date.getHours() + value);\n\t\t}\n\n\t\tvalue = +ts.weeks || 0;\n\t\tif (value) {\n\t\t\tvalue *= DAYS_PER_WEEK;\n\t\t}\n\n\t\tvalue += +ts.days || 0;\n\t\tif (value) {\n\t\t\tdate.setDate(date.getDate() + value);\n\t\t}\n\n\t\tvalue = +ts.months || 0;\n\t\tif (value) {\n\t\t\tdate.setMonth(date.getMonth() + value);\n\t\t}\n\n\t\tvalue = +ts.millennia || 0;\n\t\tif (value) {\n\t\t\tvalue *= CENTURIES_PER_MILLENNIUM;\n\t\t}\n\n\t\tvalue += +ts.centuries || 0;\n\t\tif (value) {\n\t\t\tvalue *= DECADES_PER_CENTURY;\n\t\t}\n\n\t\tvalue += +ts.decades || 0;\n\t\tif (value) {\n\t\t\tvalue *= YEARS_PER_DECADE;\n\t\t}\n\n\t\tvalue += +ts.years || 0;\n\t\tif (value) {\n\t\t\tdate.setFullYear(date.getFullYear() + value);\n\t\t}\n\n\t\treturn date;\n\t}\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_MILLISECONDS\t= 0;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_SECONDS\t\t= 1;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_MINUTES\t\t= 2;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_HOURS\t\t\t= 3;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_DAYS\t\t\t= 4;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_WEEKS\t\t\t= 5;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_MONTHS\t\t= 6;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_YEARS\t\t\t= 7;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_DECADES\t\t= 8;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_CENTURIES\t\t= 9;\n\n\t/**\n\t * @private\n\t * @const\n\t * @type {number}\n\t */\n\tvar LABEL_MILLENNIA\t\t= 10;\n\n\t/**\n\t * @private\n\t * @type {Array}\n\t */\n\tvar LABELS_SINGLUAR;\n\n\t/**\n\t * @private\n\t * @type {Array}\n\t */\n\tvar LABELS_PLURAL;\n\n\t/**\n\t * @private\n\t * @type {string}\n\t */\n\tvar LABEL_LAST;\n\n\t/**\n\t * @private\n\t * @type {string}\n\t */\n\tvar LABEL_DELIM;\n\n\t/**\n\t * @private\n\t * @type {string}\n\t */\n\tvar LABEL_NOW;\n\n\t/**\n\t * Formats a number & unit as a string\n\t * \n\t * @param {number} value\n\t * @param {number} unit\n\t * @return {string}\n\t */\n\tvar formatter;\n\n\t/**\n\t * Formats a number as a string\n\t * \n\t * @private\n\t * @param {number} value\n\t * @return {string}\n\t */\n\tvar formatNumber;\n\n\t/**\n\t * @private\n\t * @param {number} value\n\t * @param {number} unit unit index into label list\n\t * @return {string}\n\t */\n\tfunction plurality(value, unit) {\n\t\treturn formatNumber(value)+((value === 1) ? LABELS_SINGLUAR[unit] : LABELS_PLURAL[unit]);\n\t}\n\n\t/**\n\t * Formats the entries with singular or plural labels\n\t * \n\t * @private\n\t * @param {Timespan} ts\n\t * @return {Array}\n\t */\n\tvar formatList;\n\n\t/**\n\t * Timespan representation of a duration of time\n\t * \n\t * @private\n\t * @this {Timespan}\n\t * @constructor\n\t */\n\tfunction Timespan() {}\n\n\t/**\n\t * Formats the Timespan as a sentence\n\t * \n\t * @param {string=} emptyLabel the string to use when no values returned\n\t * @return {string}\n\t */\n\tTimespan.prototype.toString = function(emptyLabel) {\n\t\tvar label = formatList(this);\n\n\t\tvar count = label.length;\n\t\tif (!count) {\n\t\t\treturn emptyLabel ? ''+emptyLabel : LABEL_NOW;\n\t\t}\n\t\tif (count === 1) {\n\t\t\treturn label[0];\n\t\t}\n\n\t\tvar last = LABEL_LAST+label.pop();\n\t\treturn label.join(LABEL_DELIM)+last;\n\t};\n\n\t/**\n\t * Formats the Timespan as a sentence in HTML\n\t * \n\t * @param {string=} tag HTML tag name to wrap each value\n\t * @param {string=} emptyLabel the string to use when no values returned\n\t * @return {string}\n\t */\n\tTimespan.prototype.toHTML = function(tag, emptyLabel) {\n\t\ttag = tag || 'span';\n\t\tvar label = formatList(this);\n\n\t\tvar count = label.length;\n\t\tif (!count) {\n\t\t\temptyLabel = emptyLabel || LABEL_NOW;\n\t\t\treturn emptyLabel ? '<'+tag+'>'+emptyLabel+'</'+tag+'>' : emptyLabel;\n\t\t}\n\t\tfor (var i=0; i<count; i++) {\n\t\t\t// wrap each unit in tag\n\t\t\tlabel[i] = '<'+tag+'>'+label[i]+'</'+tag+'>';\n\t\t}\n\t\tif (count === 1) {\n\t\t\treturn label[0];\n\t\t}\n\n\t\tvar last = LABEL_LAST+label.pop();\n\t\treturn label.join(LABEL_DELIM)+last;\n\t};\n\n\t/**\n\t * Applies the Timespan to the given date\n\t * \n\t * @param {Date=} date the date to which the timespan is added.\n\t * @return {Date}\n\t */\n\tTimespan.prototype.addTo = function(date) {\n\t\treturn addToDate(this, date);\n\t};\n\n\t/**\n\t * Formats the entries as English labels\n\t * \n\t * @private\n\t * @param {Timespan} ts\n\t * @return {Array}\n\t */\n\tformatList = function(ts) {\n\t\tvar list = [];\n\n\t\tvar value = ts.millennia;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_MILLENNIA));\n\t\t}\n\n\t\tvalue = ts.centuries;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_CENTURIES));\n\t\t}\n\n\t\tvalue = ts.decades;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_DECADES));\n\t\t}\n\n\t\tvalue = ts.years;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_YEARS));\n\t\t}\n\n\t\tvalue = ts.months;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_MONTHS));\n\t\t}\n\n\t\tvalue = ts.weeks;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_WEEKS));\n\t\t}\n\n\t\tvalue = ts.days;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_DAYS));\n\t\t}\n\n\t\tvalue = ts.hours;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_HOURS));\n\t\t}\n\n\t\tvalue = ts.minutes;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_MINUTES));\n\t\t}\n\n\t\tvalue = ts.seconds;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_SECONDS));\n\t\t}\n\n\t\tvalue = ts.milliseconds;\n\t\tif (value) {\n\t\t\tlist.push(formatter(value, LABEL_MILLISECONDS));\n\t\t}\n\n\t\treturn list;\n\t};\n\n\t/**\n\t * Borrow any underflow units, carry any overflow units\n\t * \n\t * @private\n\t * @param {Timespan} ts\n\t * @param {string} toUnit\n\t */\n\tfunction rippleRounded(ts, toUnit) {\n\t\tswitch (toUnit) {\n\t\t\tcase 'seconds':\n\t\t\t\tif (ts.seconds !== SECONDS_PER_MINUTE || isNaN(ts.minutes)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple seconds up to minutes\n\t\t\t\tts.minutes++;\n\t\t\t\tts.seconds = 0;\n\n\t\t\t\t/* falls through */\n\t\t\tcase 'minutes':\n\t\t\t\tif (ts.minutes !== MINUTES_PER_HOUR || isNaN(ts.hours)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple minutes up to hours\n\t\t\t\tts.hours++;\n\t\t\t\tts.minutes = 0;\n\n\t\t\t\t/* falls through */\n\t\t\tcase 'hours':\n\t\t\t\tif (ts.hours !== HOURS_PER_DAY || isNaN(ts.days)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple hours up to days\n\t\t\t\tts.days++;\n\t\t\t\tts.hours = 0;\n\n\t\t\t\t/* falls through */\n\t\t\tcase 'days':\n\t\t\t\tif (ts.days !== DAYS_PER_WEEK || isNaN(ts.weeks)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple days up to weeks\n\t\t\t\tts.weeks++;\n\t\t\t\tts.days = 0;\n\n\t\t\t\t/* falls through */\n\t\t\tcase 'weeks':\n\t\t\t\tif (ts.weeks !== daysPerMonth(ts.refMonth)/DAYS_PER_WEEK || isNaN(ts.months)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple weeks up to months\n\t\t\t\tts.months++;\n\t\t\t\tts.weeks = 0;\n\n\t\t\t\t/* falls through */\n\t\t\tcase 'months':\n\t\t\t\tif (ts.months !== MONTHS_PER_YEAR || isNaN(ts.years)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple months up to years\n\t\t\t\tts.years++;\n\t\t\t\tts.months = 0;\n\n\t\t\t\t/* falls through */\n\t\t\tcase 'years':\n\t\t\t\tif (ts.years !== YEARS_PER_DECADE || isNaN(ts.decades)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple years up to decades\n\t\t\t\tts.decades++;\n\t\t\t\tts.years = 0;\n\n\t\t\t\t/* falls through */\n\t\t\tcase 'decades':\n\t\t\t\tif (ts.decades !== DECADES_PER_CENTURY || isNaN(ts.centuries)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple decades up to centuries\n\t\t\t\tts.centuries++;\n\t\t\t\tts.decades = 0;\n\n\t\t\t\t/* falls through */\n\t\t\tcase 'centuries':\n\t\t\t\tif (ts.centuries !== CENTURIES_PER_MILLENNIUM || isNaN(ts.millennia)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ripple centuries up to millennia\n\t\t\t\tts.millennia++;\n\t\t\t\tts.centuries = 0;\n\t\t\t\t/* falls through */\n\t\t\t}\n\t}\n\n\t/**\n\t * Ripple up partial units one place\n\t * \n\t * @private\n\t * @param {Timespan} ts timespan\n\t * @param {number} frac accumulated fractional value\n\t * @param {string} fromUnit source unit name\n\t * @param {string} toUnit target unit name\n\t * @param {number} conversion multiplier between units\n\t * @param {number} digits max number of decimal digits to output\n\t * @return {number} new fractional value\n\t */\n\tfunction fraction(ts, frac, fromUnit, toUnit, conversion, digits) {\n\t\tif (ts[fromUnit] >= 0) {\n\t\t\tfrac += ts[fromUnit];\n\t\t\tdelete ts[fromUnit];\n\t\t}\n\n\t\tfrac /= conversion;\n\t\tif (frac + 1 <= 1) {\n\t\t\t// drop if below machine epsilon\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (ts[toUnit] >= 0) {\n\t\t\t// ensure does not have more than specified number of digits\n\t\t\tts[toUnit] = +(ts[toUnit] + frac).toFixed(digits);\n\t\t\trippleRounded(ts, toUnit);\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn frac;\n\t}\n\n\t/**\n\t * Ripple up partial units to next existing\n\t * \n\t * @private\n\t * @param {Timespan} ts\n\t * @param {number} digits max number of decimal digits to output\n\t */\n\tfunction fractional(ts, digits) {\n\t\tvar frac = fraction(ts, 0, 'milliseconds', 'seconds', MILLISECONDS_PER_SECOND, digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'seconds', 'minutes', SECONDS_PER_MINUTE, digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'minutes', 'hours', MINUTES_PER_HOUR, digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'hours', 'days', HOURS_PER_DAY, digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'days', 'weeks', DAYS_PER_WEEK, digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'weeks', 'months', daysPerMonth(ts.refMonth)/DAYS_PER_WEEK, digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'months', 'years', daysPerYear(ts.refMonth)/daysPerMonth(ts.refMonth), digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'years', 'decades', YEARS_PER_DECADE, digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'decades', 'centuries', DECADES_PER_CENTURY, digits);\n\t\tif (!frac) { return; }\n\n\t\tfrac = fraction(ts, frac, 'centuries', 'millennia', CENTURIES_PER_MILLENNIUM, digits);\n\n\t\t// should never reach this with remaining fractional value\n\t\tif (frac) { throw new Error('Fractional unit overflow'); }\n\t}\n\n\t/**\n\t * Borrow any underflow units, carry any overflow units\n\t * \n\t * @private\n\t * @param {Timespan} ts\n\t */\n\tfunction ripple(ts) {\n\t\tvar x;\n\n\t\tif (ts.milliseconds < 0) {\n\t\t\t// ripple seconds down to milliseconds\n\t\t\tx = ceil(-ts.milliseconds / MILLISECONDS_PER_SECOND);\n\t\t\tts.seconds -= x;\n\t\t\tts.milliseconds += x * MILLISECONDS_PER_SECOND;\n\n\t\t} else if (ts.milliseconds >= MILLISECONDS_PER_SECOND) {\n\t\t\t// ripple milliseconds up to seconds\n\t\t\tts.seconds += floor(ts.milliseconds / MILLISECONDS_PER_SECOND);\n\t\t\tts.milliseconds %= MILLISECONDS_PER_SECOND;\n\t\t}\n\n\t\tif (ts.seconds < 0) {\n\t\t\t// ripple minutes down to seconds\n\t\t\tx = ceil(-ts.seconds / SECONDS_PER_MINUTE);\n\t\t\tts.minutes -= x;\n\t\t\tts.seconds += x * SECONDS_PER_MINUTE;\n\n\t\t} else if (ts.seconds >= SECONDS_PER_MINUTE) {\n\t\t\t// ripple seconds up to minutes\n\t\t\tts.minutes += floor(ts.seconds / SECONDS_PER_MINUTE);\n\t\t\tts.seconds %= SECONDS_PER_MINUTE;\n\t\t}\n\n\t\tif (ts.minutes < 0) {\n\t\t\t// ripple hours down to minutes\n\t\t\tx = ceil(-ts.minutes / MINUTES_PER_HOUR);\n\t\t\tts.hours -= x;\n\t\t\tts.minutes += x * MINUTES_PER_HOUR;\n\n\t\t} else if (ts.minutes >= MINUTES_PER_HOUR) {\n\t\t\t// ripple minutes up to hours\n\t\t\tts.hours += floor(ts.minutes / MINUTES_PER_HOUR);\n\t\t\tts.minutes %= MINUTES_PER_HOUR;\n\t\t}\n\n\t\tif (ts.hours < 0) {\n\t\t\t// ripple days down to hours\n\t\t\tx = ceil(-ts.hours / HOURS_PER_DAY);\n\t\t\tts.days -= x;\n\t\t\tts.hours += x * HOURS_PER_DAY;\n\n\t\t} else if (ts.hours >= HOURS_PER_DAY) {\n\t\t\t// ripple hours up to days\n\t\t\tts.days += floor(ts.hours / HOURS_PER_DAY);\n\t\t\tts.hours %= HOURS_PER_DAY;\n\t\t}\n\n\t\twhile (ts.days < 0) {\n\t\t\t// NOTE: never actually seen this loop more than once\n\n\t\t\t// ripple months down to days\n\t\t\tts.months--;\n\t\t\tts.days += borrowMonths(ts.refMonth, 1);\n\t\t}\n\n\t\t// weeks is always zero here\n\n\t\tif (ts.days >= DAYS_PER_WEEK) {\n\t\t\t// ripple days up to weeks\n\t\t\tts.weeks += floor(ts.days / DAYS_PER_WEEK);\n\t\t\tts.days %= DAYS_PER_WEEK;\n\t\t}\n\n\t\tif (ts.months < 0) {\n\t\t\t// ripple years down to months\n\t\t\tx = ceil(-ts.months / MONTHS_PER_YEAR);\n\t\t\tts.years -= x;\n\t\t\tts.months += x * MONTHS_PER_YEAR;\n\n\t\t} else if (ts.months >= MONTHS_PER_YEAR) {\n\t\t\t// ripple months up to years\n\t\t\tts.years += floor(ts.months / MONTHS_PER_YEAR);\n\t\t\tts.months %= MONTHS_PER_YEAR;\n\t\t}\n\n\t\t// years is always non-negative here\n\t\t// decades, centuries and millennia are always zero here\n\n\t\tif (ts.years >= YEARS_PER_DECADE) {\n\t\t\t// ripple years up to decades\n\t\t\tts.decades += floor(ts.years / YEARS_PER_DECADE);\n\t\t\tts.years %= YEARS_PER_DECADE;\n\n\t\t\tif (ts.decades >= DECADES_PER_CENTURY) {\n\t\t\t\t// ripple decades up to centuries\n\t\t\t\tts.centuries += floor(ts.decades / DECADES_PER_CENTURY);\n\t\t\t\tts.decades %= DECADES_PER_CENTURY;\n\n\t\t\t\tif (ts.centuries >= CENTURIES_PER_MILLENNIUM) {\n\t\t\t\t\t// ripple centuries up to millennia\n\t\t\t\t\tts.millennia += floor(ts.centuries / CENTURIES_PER_MILLENNIUM);\n\t\t\t\t\tts.centuries %= CENTURIES_PER_MILLENNIUM;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Remove any units not requested\n\t * \n\t * @private\n\t * @param {Timespan} ts\n\t * @param {number} units the units to populate\n\t * @param {number} max number of labels to output\n\t * @param {number} digits max number of decimal digits to output\n\t */\n\tfunction pruneUnits(ts, units, max, digits) {\n\t\tvar count = 0;\n\n\t\t// Calc from largest unit to smallest to prevent underflow\n\t\tif (!(units & MILLENNIA) || (count >= max)) {\n\t\t\t// ripple millennia down to centuries\n\t\t\tts.centuries += ts.millennia * CENTURIES_PER_MILLENNIUM;\n\t\t\tdelete ts.millennia;\n\n\t\t} else if (ts.millennia) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & CENTURIES) || (count >= max)) {\n\t\t\t// ripple centuries down to decades\n\t\t\tts.decades += ts.centuries * DECADES_PER_CENTURY;\n\t\t\tdelete ts.centuries;\n\n\t\t} else if (ts.centuries) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & DECADES) || (count >= max)) {\n\t\t\t// ripple decades down to years\n\t\t\tts.years += ts.decades * YEARS_PER_DECADE;\n\t\t\tdelete ts.decades;\n\n\t\t} else if (ts.decades) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & YEARS) || (count >= max)) {\n\t\t\t// ripple years down to months\n\t\t\tts.months += ts.years * MONTHS_PER_YEAR;\n\t\t\tdelete ts.years;\n\n\t\t} else if (ts.years) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & MONTHS) || (count >= max)) {\n\t\t\t// ripple months down to days\n\t\t\tif (ts.months) {\n\t\t\t\tts.days += borrowMonths(ts.refMonth, ts.months);\n\t\t\t}\n\t\t\tdelete ts.months;\n\n\t\t\tif (ts.days >= DAYS_PER_WEEK) {\n\t\t\t\t// ripple day overflow back up to weeks\n\t\t\t\tts.weeks += floor(ts.days / DAYS_PER_WEEK);\n\t\t\t\tts.days %= DAYS_PER_WEEK;\n\t\t\t}\n\n\t\t} else if (ts.months) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & WEEKS) || (count >= max)) {\n\t\t\t// ripple weeks down to days\n\t\t\tts.days += ts.weeks * DAYS_PER_WEEK;\n\t\t\tdelete ts.weeks;\n\n\t\t} else if (ts.weeks) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & DAYS) || (count >= max)) {\n\t\t\t//ripple days down to hours\n\t\t\tts.hours += ts.days * HOURS_PER_DAY;\n\t\t\tdelete ts.days;\n\n\t\t} else if (ts.days) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & HOURS) || (count >= max)) {\n\t\t\t// ripple hours down to minutes\n\t\t\tts.minutes += ts.hours * MINUTES_PER_HOUR;\n\t\t\tdelete ts.hours;\n\n\t\t} else if (ts.hours) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & MINUTES) || (count >= max)) {\n\t\t\t// ripple minutes down to seconds\n\t\t\tts.seconds += ts.minutes * SECONDS_PER_MINUTE;\n\t\t\tdelete ts.minutes;\n\n\t\t} else if (ts.minutes) {\n\t\t\tcount++;\n\t\t}\n\n\t\tif (!(units & SECONDS) || (count >= max)) {\n\t\t\t// ripple seconds down to milliseconds\n\t\t\tts.milliseconds += ts.seconds * MILLISECONDS_PER_SECOND;\n\t\t\tdelete ts.seconds;\n\n\t\t} else if (ts.seconds) {\n\t\t\tcount++;\n\t\t}\n\n\t\t// nothing to ripple milliseconds down to\n\t\t// so ripple back up to smallest existing unit as a fractional value\n\t\tif (!(units & MILLISECONDS) || (count >= max)) {\n\t\t\tfractional(ts, digits);\n\t\t}\n\t}\n\n\t/**\n\t * Populates the Timespan object\n\t * \n\t * @private\n\t * @param {Timespan} ts\n\t * @param {?Date} start the starting date\n\t * @param {?Date} end the ending date\n\t * @param {number} units the units to populate\n\t * @param {number} max number of labels to output\n\t * @param {number} digits max number of decimal digits to output\n\t */\n\tfunction populate(ts, start, end, units, max, digits) {\n\t\tvar now = new Date();\n\n\t\tts.start = start = start || now;\n\t\tts.end = end = end || now;\n\t\tts.units = units;\n\n\t\tts.value = end.getTime() - start.getTime();\n\t\tif (ts.value < 0) {\n\t\t\t// swap if reversed\n\t\t\tvar tmp = end;\n\t\t\tend = start;\n\t\t\tstart = tmp;\n\t\t}\n\n\t\t// reference month for determining days in month\n\t\tts.refMonth = new Date(start.getFullYear(), start.getMonth(), 15, 12, 0, 0);\n\t\ttry {\n\t\t\t// reset to initial deltas\n\t\t\tts.millennia = 0;\n\t\t\tts.centuries = 0;\n\t\t\tts.decades = 0;\n\t\t\tts.years = end.getFullYear() - start.getFullYear();\n\t\t\tts.months = end.getMonth() - start.getMonth();\n\t\t\tts.weeks = 0;\n\t\t\tts.days = end.getDate() - start.getDate();\n\t\t\tts.hours = end.getHours() - start.getHours();\n\t\t\tts.minutes = end.getMinutes() - start.getMinutes();\n\t\t\tts.seconds = end.getSeconds() - start.getSeconds();\n\t\t\tts.milliseconds = end.getMilliseconds() - start.getMilliseconds();\n\n\t\t\tripple(ts);\n\t\t\tpruneUnits(ts, units, max, digits);\n\n\t\t} finally {\n\t\t\tdelete ts.refMonth;\n\t\t}\n\n\t\treturn ts;\n\t}\n\n\t/**\n\t * Determine an appropriate refresh rate based upon units\n\t * \n\t * @private\n\t * @param {number} units the units to populate\n\t * @return {number} milliseconds to delay\n\t */\n\tfunction getDelay(units) {\n\t\tif (units & MILLISECONDS) {\n\t\t\t// refresh very quickly\n\t\t\treturn MILLISECONDS_PER_SECOND / 30; //30Hz\n\t\t}\n\n\t\tif (units & SECONDS) {\n\t\t\t// refresh every second\n\t\t\treturn MILLISECONDS_PER_SECOND; //1Hz\n\t\t}\n\n\t\tif (units & MINUTES) {\n\t\t\t// refresh every minute\n\t\t\treturn MILLISECONDS_PER_SECOND * SECONDS_PER_MINUTE;\n\t\t}\n\n\t\tif (units & HOURS) {\n\t\t\t// refresh hourly\n\t\t\treturn MILLISECONDS_PER_SECOND * SECONDS_PER_MINUTE * MINUTES_PER_HOUR;\n\t\t}\n\t\t\n\t\tif (units & DAYS) {\n\t\t\t// refresh daily\n\t\t\treturn MILLISECONDS_PER_SECOND * SECONDS_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY;\n\t\t}\n\n\t\t// refresh the rest weekly\n\t\treturn MILLISECONDS_PER_SECOND * SECONDS_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY * DAYS_PER_WEEK;\n\t}\n\n\t/**\n\t * API entry point\n\t * \n\t * @public\n\t * @param {Date|number|Timespan|null|function(Timespan,number)} start the starting date\n\t * @param {Date|number|Timespan|null|function(Timespan,number)} end the ending date\n\t * @param {number=} units the units to populate\n\t * @param {number=} max number of labels to output\n\t * @param {number=} digits max number of decimal digits to output\n\t * @return {Timespan|number}\n\t */\n\tfunction countdown(start, end, units, max, digits) {\n\t\tvar callback;\n\n\t\t// ensure some units or use defaults\n\t\tunits = +units || DEFAULTS;\n\t\t// max must be positive\n\t\tmax = (max > 0) ? max : NaN;\n\t\t// clamp digits to an integer between [0, 20]\n\t\tdigits = (digits > 0) ? (digits < 20) ? Math.round(digits) : 20 : 0;\n\n\t\t// ensure start date\n\t\tvar startTS = null;\n\t\tif ('function' === typeof start) {\n\t\t\tcallback = start;\n\t\t\tstart = null;\n\n\t\t} else if (!(start instanceof Date)) {\n\t\t\tif ((start !== null) && isFinite(start)) {\n\t\t\t\tstart = new Date(+start);\n\t\t\t} else {\n\t\t\t\tif ('object' === typeof startTS) {\n\t\t\t\t\tstartTS = /** @type{Timespan} */(start);\n\t\t\t\t}\n\t\t\t\tstart = null;\n\t\t\t}\n\t\t}\n\n\t\t// ensure end date\n\t\tvar endTS = null;\n\t\tif ('function' === typeof end) {\n\t\t\tcallback = end;\n\t\t\tend = null;\n\n\t\t} else if (!(end instanceof Date)) {\n\t\t\tif ((end !== null) && isFinite(end)) {\n\t\t\t\tend = new Date(+end);\n\t\t\t} else {\n\t\t\t\tif ('object' === typeof end) {\n\t\t\t\t\tendTS = /** @type{Timespan} */(end);\n\t\t\t\t}\n\t\t\t\tend = null;\n\t\t\t}\n\t\t}\n\n\t\t// must wait to interpret timespans until after resolving dates\n\t\tif (startTS) {\n\t\t\tstart = addToDate(startTS, end);\n\t\t}\n\t\tif (endTS) {\n\t\t\tend = addToDate(endTS, start);\n\t\t}\n\n\t\tif (!start && !end) {\n\t\t\t// used for unit testing\n\t\t\treturn new Timespan();\n\t\t}\n\n\t\tif (!callback) {\n\t\t\treturn populate(new Timespan(), /** @type{Date} */(start), /** @type{Date} */(end), /** @type{number} */(units), /** @type{number} */(max), /** @type{number} */(digits));\n\t\t}\n\n\t\t// base delay off units\n\t\tvar delay = getDelay(units),\n\t\t\ttimerId,\n\t\t\tfn = function() {\n\t\t\t\tcallback(\n\t\t\t\t\tpopulate(new Timespan(), /** @type{Date} */(start), /** @type{Date} */(end), /** @type{number} */(units), /** @type{number} */(max), /** @type{number} */(digits)),\n\t\t\t\t\ttimerId\n\t\t\t\t);\n\t\t\t};\n\n\t\tfn();\n\t\treturn (timerId = setInterval(fn, delay));\n\t}\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.MILLISECONDS = MILLISECONDS;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.SECONDS = SECONDS;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.MINUTES = MINUTES;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.HOURS = HOURS;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.DAYS = DAYS;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.WEEKS = WEEKS;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.MONTHS = MONTHS;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.YEARS = YEARS;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.DECADES = DECADES;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.CENTURIES = CENTURIES;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.MILLENNIA = MILLENNIA;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.DEFAULTS = DEFAULTS;\n\n\t/**\n\t * @public\n\t * @const\n\t * @type {number}\n\t */\n\tcountdown.ALL = MILLENNIA|CENTURIES|DECADES|YEARS|MONTHS|WEEKS|DAYS|HOURS|MINUTES|SECONDS|MILLISECONDS;\n\n\t/**\n\t * Customize the format settings.\n\t * @public\n\t * @param {Object} format settings object\n\t */\n\tvar setFormat = countdown.setFormat = function(format) {\n\t\tif (!format) { return; }\n\n\t\tif ('singular' in format || 'plural' in format) {\n\t\t\tvar singular = format.singular || [];\n\t\t\tif (singular.split) {\n\t\t\t\tsingular = singular.split('|');\n\t\t\t}\n\t\t\tvar plural = format.plural || [];\n\t\t\tif (plural.split) {\n\t\t\t\tplural = plural.split('|');\n\t\t\t}\n\n\t\t\tfor (var i=LABEL_MILLISECONDS; i<=LABEL_MILLENNIA; i++) {\n\t\t\t\t// override any specified units\n\t\t\t\tLABELS_SINGLUAR[i] = singular[i] || LABELS_SINGLUAR[i];\n\t\t\t\tLABELS_PLURAL[i] = plural[i] || LABELS_PLURAL[i];\n\t\t\t}\n\t\t}\n\n\t\tif ('string' === typeof format.last) {\n\t\t\tLABEL_LAST = format.last;\n\t\t}\n\t\tif ('string' === typeof format.delim) {\n\t\t\tLABEL_DELIM = format.delim;\n\t\t}\n\t\tif ('string' === typeof format.empty) {\n\t\t\tLABEL_NOW = format.empty;\n\t\t}\n\t\tif ('function' === typeof format.formatNumber) {\n\t\t\tformatNumber = format.formatNumber;\n\t\t}\n\t\tif ('function' === typeof format.formatter) {\n\t\t\tformatter = format.formatter;\n\t\t}\n\t};\n\n\t/**\n\t * Revert to the default formatting.\n\t * @public\n\t */\n\tvar resetFormat = countdown.resetFormat = function() {\n\t\tLABELS_SINGLUAR = ' millisecond| second| minute| hour| day| week| month| year| decade| century| millennium'.split('|');\n\t\tLABELS_PLURAL = ' milliseconds| seconds| minutes| hours| days| weeks| months| years| decades| centuries| millennia'.split('|');\n\t\tLABEL_LAST = ' and ';\n\t\tLABEL_DELIM = ', ';\n\t\tLABEL_NOW = '';\n\t\tformatNumber = function(value) { return value; };\n\t\tformatter = plurality;\n\t};\n\n\t/**\n\t * Override the unit labels.\n\t * @public\n\t * @param {string|Array=} singular a pipe ('|') delimited list of singular unit name overrides\n\t * @param {string|Array=} plural a pipe ('|') delimited list of plural unit name overrides\n\t * @param {string=} last a delimiter before the last unit (default: ' and ')\n\t * @param {string=} delim a delimiter to use between all other units (default: ', ')\n\t * @param {string=} empty a label to use when all units are zero (default: '')\n\t * @param {function(number):string=} formatNumber a function which formats numbers as a string\n\t * @param {function(number,number):string=} formatter a function which formats a number/unit pair as a string\n\t * @deprecated since version 2.6.0\n\t */\n\tcountdown.setLabels = function(singular, plural, last, delim, empty, formatNumber, formatter) {\n\t\tsetFormat({\n\t\t\tsingular: singular,\n\t\t\tplural: plural,\n\t\t\tlast: last,\n\t\t\tdelim: delim,\n\t\t\tempty: empty,\n\t\t\tformatNumber: formatNumber,\n\t\t\tformatter: formatter\n\t\t});\n\t};\n\n\t/**\n\t * Revert to the default unit labels.\n\t * @public\n\t * @deprecated since version 2.6.0\n\t */\n\tcountdown.resetLabels = resetFormat;\n\n\tresetFormat();\n\n\tif (module && module.exports) {\n\t\tmodule.exports = countdown;\n\n\t} else if (typeof window.define === 'function' && typeof window.define.amd !== 'undefined') {\n\t\twindow.define('countdown', [], function() {\n\t\t\treturn countdown;\n\t\t});\n\t}\n\n\treturn countdown;\n\n})(module);\n","// CONSTANTS are all caps.\nconst NS = 'FarmItem';\nconst CLS = 'farmItem';\nconst WG = `.${CLS}-`;\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/farmItem.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class FarmItem {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadFarmItem function\n\t\tthis.$el = $($el);\n\t}\n}\n","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else 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.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n'use strict';\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\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 or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\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 var 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 = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\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.options = {};\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\n/**\n * @param {Node} element\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 var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var 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 var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\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 function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\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 var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var 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 var 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 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.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 this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var 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 var 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 ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n","/*!\n * perfect-scrollbar v1.5.3\n * Copyright 2021 Hyunje Jun, MDBootstrap and Contributors\n * Licensed under MIT\n */\n\nfunction get(element) {\n return getComputedStyle(element);\n}\n\nfunction set(element, obj) {\n for (var key in obj) {\n var val = obj[key];\n if (typeof val === 'number') {\n val = val + \"px\";\n }\n element.style[key] = val;\n }\n return element;\n}\n\nfunction div(className) {\n var div = document.createElement('div');\n div.className = className;\n return div;\n}\n\nvar elMatches =\n typeof Element !== 'undefined' &&\n (Element.prototype.matches ||\n Element.prototype.webkitMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector);\n\nfunction matches(element, query) {\n if (!elMatches) {\n throw new Error('No element matching method supported');\n }\n\n return elMatches.call(element, query);\n}\n\nfunction remove(element) {\n if (element.remove) {\n element.remove();\n } else {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n}\n\nfunction queryChildren(element, selector) {\n return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); }\n );\n}\n\nvar cls = {\n main: 'ps',\n rtl: 'ps__rtl',\n element: {\n thumb: function (x) { return (\"ps__thumb-\" + x); },\n rail: function (x) { return (\"ps__rail-\" + x); },\n consuming: 'ps__child--consume',\n },\n state: {\n focus: 'ps--focus',\n clicking: 'ps--clicking',\n active: function (x) { return (\"ps--active-\" + x); },\n scrolling: function (x) { return (\"ps--scrolling-\" + x); },\n },\n};\n\n/*\n * Helper methods\n */\nvar scrollingClassTimeout = { x: null, y: null };\n\nfunction addScrollingClass(i, x) {\n var classList = i.element.classList;\n var className = cls.state.scrolling(x);\n\n if (classList.contains(className)) {\n clearTimeout(scrollingClassTimeout[x]);\n } else {\n classList.add(className);\n }\n}\n\nfunction removeScrollingClass(i, x) {\n scrollingClassTimeout[x] = setTimeout(\n function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); },\n i.settings.scrollingThreshold\n );\n}\n\nfunction setScrollingClassInstantly(i, x) {\n addScrollingClass(i, x);\n removeScrollingClass(i, x);\n}\n\nvar EventElement = function EventElement(element) {\n this.element = element;\n this.handlers = {};\n};\n\nvar prototypeAccessors = { isEmpty: { configurable: true } };\n\nEventElement.prototype.bind = function bind (eventName, handler) {\n if (typeof this.handlers[eventName] === 'undefined') {\n this.handlers[eventName] = [];\n }\n this.handlers[eventName].push(handler);\n this.element.addEventListener(eventName, handler, false);\n};\n\nEventElement.prototype.unbind = function unbind (eventName, target) {\n var this$1 = this;\n\n this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {\n if (target && handler !== target) {\n return true;\n }\n this$1.element.removeEventListener(eventName, handler, false);\n return false;\n });\n};\n\nEventElement.prototype.unbindAll = function unbindAll () {\n for (var name in this.handlers) {\n this.unbind(name);\n }\n};\n\nprototypeAccessors.isEmpty.get = function () {\n var this$1 = this;\n\n return Object.keys(this.handlers).every(\n function (key) { return this$1.handlers[key].length === 0; }\n );\n};\n\nObject.defineProperties( EventElement.prototype, prototypeAccessors );\n\nvar EventManager = function EventManager() {\n this.eventElements = [];\n};\n\nEventManager.prototype.eventElement = function eventElement (element) {\n var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0];\n if (!ee) {\n ee = new EventElement(element);\n this.eventElements.push(ee);\n }\n return ee;\n};\n\nEventManager.prototype.bind = function bind (element, eventName, handler) {\n this.eventElement(element).bind(eventName, handler);\n};\n\nEventManager.prototype.unbind = function unbind (element, eventName, handler) {\n var ee = this.eventElement(element);\n ee.unbind(eventName, handler);\n\n if (ee.isEmpty) {\n // remove\n this.eventElements.splice(this.eventElements.indexOf(ee), 1);\n }\n};\n\nEventManager.prototype.unbindAll = function unbindAll () {\n this.eventElements.forEach(function (e) { return e.unbindAll(); });\n this.eventElements = [];\n};\n\nEventManager.prototype.once = function once (element, eventName, handler) {\n var ee = this.eventElement(element);\n var onceHandler = function (evt) {\n ee.unbind(eventName, onceHandler);\n handler(evt);\n };\n ee.bind(eventName, onceHandler);\n};\n\nfunction createEvent(name) {\n if (typeof window.CustomEvent === 'function') {\n return new CustomEvent(name);\n } else {\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(name, false, false, undefined);\n return evt;\n }\n}\n\nfunction processScrollDiff(\n i,\n axis,\n diff,\n useScrollingClass,\n forceFireReachEvent\n) {\n if ( useScrollingClass === void 0 ) useScrollingClass = true;\n if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n var fields;\n if (axis === 'top') {\n fields = [\n 'contentHeight',\n 'containerHeight',\n 'scrollTop',\n 'y',\n 'up',\n 'down' ];\n } else if (axis === 'left') {\n fields = [\n 'contentWidth',\n 'containerWidth',\n 'scrollLeft',\n 'x',\n 'left',\n 'right' ];\n } else {\n throw new Error('A proper axis should be provided');\n }\n\n processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);\n}\n\nfunction processScrollDiff$1(\n i,\n diff,\n ref,\n useScrollingClass,\n forceFireReachEvent\n) {\n var contentHeight = ref[0];\n var containerHeight = ref[1];\n var scrollTop = ref[2];\n var y = ref[3];\n var up = ref[4];\n var down = ref[5];\n if ( useScrollingClass === void 0 ) useScrollingClass = true;\n if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n var element = i.element;\n\n // reset reach\n i.reach[y] = null;\n\n // 1 for subpixel rounding\n if (element[scrollTop] < 1) {\n i.reach[y] = 'start';\n }\n\n // 1 for subpixel rounding\n if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {\n i.reach[y] = 'end';\n }\n\n if (diff) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + y)));\n\n if (diff < 0) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + up)));\n } else if (diff > 0) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + down)));\n }\n\n if (useScrollingClass) {\n setScrollingClassInstantly(i, y);\n }\n }\n\n if (i.reach[y] && (diff || forceFireReachEvent)) {\n element.dispatchEvent(createEvent((\"ps-\" + y + \"-reach-\" + (i.reach[y]))));\n }\n}\n\nfunction toInt(x) {\n return parseInt(x, 10) || 0;\n}\n\nfunction isEditable(el) {\n return (\n matches(el, 'input,[contenteditable]') ||\n matches(el, 'select,[contenteditable]') ||\n matches(el, 'textarea,[contenteditable]') ||\n matches(el, 'button,[contenteditable]')\n );\n}\n\nfunction outerWidth(element) {\n var styles = get(element);\n return (\n toInt(styles.width) +\n toInt(styles.paddingLeft) +\n toInt(styles.paddingRight) +\n toInt(styles.borderLeftWidth) +\n toInt(styles.borderRightWidth)\n );\n}\n\nvar env = {\n isWebKit:\n typeof document !== 'undefined' &&\n 'WebkitAppearance' in document.documentElement.style,\n supportsTouch:\n typeof window !== 'undefined' &&\n ('ontouchstart' in window ||\n ('maxTouchPoints' in window.navigator &&\n window.navigator.maxTouchPoints > 0) ||\n (window.DocumentTouch && document instanceof window.DocumentTouch)),\n supportsIePointer:\n typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,\n isChrome:\n typeof navigator !== 'undefined' &&\n /Chrome/i.test(navigator && navigator.userAgent),\n};\n\nfunction updateGeometry(i) {\n var element = i.element;\n var roundedScrollTop = Math.floor(element.scrollTop);\n var rect = element.getBoundingClientRect();\n\n i.containerWidth = Math.round(rect.width);\n i.containerHeight = Math.round(rect.height);\n\n i.contentWidth = element.scrollWidth;\n i.contentHeight = element.scrollHeight;\n\n if (!element.contains(i.scrollbarXRail)) {\n // clean up and append\n queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); }\n );\n element.appendChild(i.scrollbarXRail);\n }\n if (!element.contains(i.scrollbarYRail)) {\n // clean up and append\n queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); }\n );\n element.appendChild(i.scrollbarYRail);\n }\n\n if (\n !i.settings.suppressScrollX &&\n i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth\n ) {\n i.scrollbarXActive = true;\n i.railXWidth = i.containerWidth - i.railXMarginWidth;\n i.railXRatio = i.containerWidth / i.railXWidth;\n i.scrollbarXWidth = getThumbSize(\n i,\n toInt((i.railXWidth * i.containerWidth) / i.contentWidth)\n );\n i.scrollbarXLeft = toInt(\n ((i.negativeScrollAdjustment + element.scrollLeft) *\n (i.railXWidth - i.scrollbarXWidth)) /\n (i.contentWidth - i.containerWidth)\n );\n } else {\n i.scrollbarXActive = false;\n }\n\n if (\n !i.settings.suppressScrollY &&\n i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight\n ) {\n i.scrollbarYActive = true;\n i.railYHeight = i.containerHeight - i.railYMarginHeight;\n i.railYRatio = i.containerHeight / i.railYHeight;\n i.scrollbarYHeight = getThumbSize(\n i,\n toInt((i.railYHeight * i.containerHeight) / i.contentHeight)\n );\n i.scrollbarYTop = toInt(\n (roundedScrollTop * (i.railYHeight - i.scrollbarYHeight)) /\n (i.contentHeight - i.containerHeight)\n );\n } else {\n i.scrollbarYActive = false;\n }\n\n if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {\n i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;\n }\n if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {\n i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;\n }\n\n updateCss(element, i);\n\n if (i.scrollbarXActive) {\n element.classList.add(cls.state.active('x'));\n } else {\n element.classList.remove(cls.state.active('x'));\n i.scrollbarXWidth = 0;\n i.scrollbarXLeft = 0;\n element.scrollLeft = i.isRtl === true ? i.contentWidth : 0;\n }\n if (i.scrollbarYActive) {\n element.classList.add(cls.state.active('y'));\n } else {\n element.classList.remove(cls.state.active('y'));\n i.scrollbarYHeight = 0;\n i.scrollbarYTop = 0;\n element.scrollTop = 0;\n }\n}\n\nfunction getThumbSize(i, thumbSize) {\n if (i.settings.minScrollbarLength) {\n thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);\n }\n if (i.settings.maxScrollbarLength) {\n thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);\n }\n return thumbSize;\n}\n\nfunction updateCss(element, i) {\n var xRailOffset = { width: i.railXWidth };\n var roundedScrollTop = Math.floor(element.scrollTop);\n\n if (i.isRtl) {\n xRailOffset.left =\n i.negativeScrollAdjustment +\n element.scrollLeft +\n i.containerWidth -\n i.contentWidth;\n } else {\n xRailOffset.left = element.scrollLeft;\n }\n if (i.isScrollbarXUsingBottom) {\n xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop;\n } else {\n xRailOffset.top = i.scrollbarXTop + roundedScrollTop;\n }\n set(i.scrollbarXRail, xRailOffset);\n\n var yRailOffset = { top: roundedScrollTop, height: i.railYHeight };\n if (i.isScrollbarYUsingRight) {\n if (i.isRtl) {\n yRailOffset.right =\n i.contentWidth -\n (i.negativeScrollAdjustment + element.scrollLeft) -\n i.scrollbarYRight -\n i.scrollbarYOuterWidth -\n 9;\n } else {\n yRailOffset.right = i.scrollbarYRight - element.scrollLeft;\n }\n } else {\n if (i.isRtl) {\n yRailOffset.left =\n i.negativeScrollAdjustment +\n element.scrollLeft +\n i.containerWidth * 2 -\n i.contentWidth -\n i.scrollbarYLeft -\n i.scrollbarYOuterWidth;\n } else {\n yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;\n }\n }\n set(i.scrollbarYRail, yRailOffset);\n\n set(i.scrollbarX, {\n left: i.scrollbarXLeft,\n width: i.scrollbarXWidth - i.railBorderXWidth,\n });\n set(i.scrollbarY, {\n top: i.scrollbarYTop,\n height: i.scrollbarYHeight - i.railBorderYWidth,\n });\n}\n\nfunction clickRail(i) {\n var element = i.element;\n\n i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); });\n i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {\n var positionTop =\n e.pageY -\n window.pageYOffset -\n i.scrollbarYRail.getBoundingClientRect().top;\n var direction = positionTop > i.scrollbarYTop ? 1 : -1;\n\n i.element.scrollTop += direction * i.containerHeight;\n updateGeometry(i);\n\n e.stopPropagation();\n });\n\n i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); });\n i.event.bind(i.scrollbarXRail, 'mousedown', function (e) {\n var positionLeft =\n e.pageX -\n window.pageXOffset -\n i.scrollbarXRail.getBoundingClientRect().left;\n var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;\n\n i.element.scrollLeft += direction * i.containerWidth;\n updateGeometry(i);\n\n e.stopPropagation();\n });\n}\n\nfunction dragThumb(i) {\n bindMouseScrollHandler(i, [\n 'containerWidth',\n 'contentWidth',\n 'pageX',\n 'railXWidth',\n 'scrollbarX',\n 'scrollbarXWidth',\n 'scrollLeft',\n 'x',\n 'scrollbarXRail' ]);\n bindMouseScrollHandler(i, [\n 'containerHeight',\n 'contentHeight',\n 'pageY',\n 'railYHeight',\n 'scrollbarY',\n 'scrollbarYHeight',\n 'scrollTop',\n 'y',\n 'scrollbarYRail' ]);\n}\n\nfunction bindMouseScrollHandler(\n i,\n ref\n) {\n var containerHeight = ref[0];\n var contentHeight = ref[1];\n var pageY = ref[2];\n var railYHeight = ref[3];\n var scrollbarY = ref[4];\n var scrollbarYHeight = ref[5];\n var scrollTop = ref[6];\n var y = ref[7];\n var scrollbarYRail = ref[8];\n\n var element = i.element;\n\n var startingScrollTop = null;\n var startingMousePageY = null;\n var scrollBy = null;\n\n function mouseMoveHandler(e) {\n if (e.touches && e.touches[0]) {\n e[pageY] = e.touches[0].pageY;\n }\n element[scrollTop] =\n startingScrollTop + scrollBy * (e[pageY] - startingMousePageY);\n addScrollingClass(i, y);\n updateGeometry(i);\n\n e.stopPropagation();\n if (e.type.startsWith('touch') && e.changedTouches.length > 1) {\n e.preventDefault();\n }\n }\n\n function mouseUpHandler() {\n removeScrollingClass(i, y);\n i[scrollbarYRail].classList.remove(cls.state.clicking);\n i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n }\n\n function bindMoves(e, touchMode) {\n startingScrollTop = element[scrollTop];\n if (touchMode && e.touches) {\n e[pageY] = e.touches[0].pageY;\n }\n startingMousePageY = e[pageY];\n scrollBy =\n (i[contentHeight] - i[containerHeight]) /\n (i[railYHeight] - i[scrollbarYHeight]);\n if (!touchMode) {\n i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);\n e.preventDefault();\n } else {\n i.event.bind(i.ownerDocument, 'touchmove', mouseMoveHandler);\n }\n\n i[scrollbarYRail].classList.add(cls.state.clicking);\n\n e.stopPropagation();\n }\n\n i.event.bind(i[scrollbarY], 'mousedown', function (e) {\n bindMoves(e);\n });\n i.event.bind(i[scrollbarY], 'touchstart', function (e) {\n bindMoves(e, true);\n });\n}\n\nfunction keyboard(i) {\n var element = i.element;\n\n var elementHovered = function () { return matches(element, ':hover'); };\n var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); };\n\n function shouldPreventDefault(deltaX, deltaY) {\n var scrollTop = Math.floor(element.scrollTop);\n if (deltaX === 0) {\n if (!i.scrollbarYActive) {\n return false;\n }\n if (\n (scrollTop === 0 && deltaY > 0) ||\n (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)\n ) {\n return !i.settings.wheelPropagation;\n }\n }\n\n var scrollLeft = element.scrollLeft;\n if (deltaY === 0) {\n if (!i.scrollbarXActive) {\n return false;\n }\n if (\n (scrollLeft === 0 && deltaX < 0) ||\n (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)\n ) {\n return !i.settings.wheelPropagation;\n }\n }\n return true;\n }\n\n i.event.bind(i.ownerDocument, 'keydown', function (e) {\n if (\n (e.isDefaultPrevented && e.isDefaultPrevented()) ||\n e.defaultPrevented\n ) {\n return;\n }\n\n if (!elementHovered() && !scrollbarFocused()) {\n return;\n }\n\n var activeElement = document.activeElement\n ? document.activeElement\n : i.ownerDocument.activeElement;\n if (activeElement) {\n if (activeElement.tagName === 'IFRAME') {\n activeElement = activeElement.contentDocument.activeElement;\n } else {\n // go deeper if element is a webcomponent\n while (activeElement.shadowRoot) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n }\n if (isEditable(activeElement)) {\n return;\n }\n }\n\n var deltaX = 0;\n var deltaY = 0;\n\n switch (e.which) {\n case 37: // left\n if (e.metaKey) {\n deltaX = -i.contentWidth;\n } else if (e.altKey) {\n deltaX = -i.containerWidth;\n } else {\n deltaX = -30;\n }\n break;\n case 38: // up\n if (e.metaKey) {\n deltaY = i.contentHeight;\n } else if (e.altKey) {\n deltaY = i.containerHeight;\n } else {\n deltaY = 30;\n }\n break;\n case 39: // right\n if (e.metaKey) {\n deltaX = i.contentWidth;\n } else if (e.altKey) {\n deltaX = i.containerWidth;\n } else {\n deltaX = 30;\n }\n break;\n case 40: // down\n if (e.metaKey) {\n deltaY = -i.contentHeight;\n } else if (e.altKey) {\n deltaY = -i.containerHeight;\n } else {\n deltaY = -30;\n }\n break;\n case 32: // space bar\n if (e.shiftKey) {\n deltaY = i.containerHeight;\n } else {\n deltaY = -i.containerHeight;\n }\n break;\n case 33: // page up\n deltaY = i.containerHeight;\n break;\n case 34: // page down\n deltaY = -i.containerHeight;\n break;\n case 36: // home\n deltaY = i.contentHeight;\n break;\n case 35: // end\n deltaY = -i.contentHeight;\n break;\n default:\n return;\n }\n\n if (i.settings.suppressScrollX && deltaX !== 0) {\n return;\n }\n if (i.settings.suppressScrollY && deltaY !== 0) {\n return;\n }\n\n element.scrollTop -= deltaY;\n element.scrollLeft += deltaX;\n updateGeometry(i);\n\n if (shouldPreventDefault(deltaX, deltaY)) {\n e.preventDefault();\n }\n });\n}\n\nfunction wheel(i) {\n var element = i.element;\n\n function shouldPreventDefault(deltaX, deltaY) {\n var roundedScrollTop = Math.floor(element.scrollTop);\n var isTop = element.scrollTop === 0;\n var isBottom =\n roundedScrollTop + element.offsetHeight === element.scrollHeight;\n var isLeft = element.scrollLeft === 0;\n var isRight =\n element.scrollLeft + element.offsetWidth === element.scrollWidth;\n\n var hitsBound;\n\n // pick axis with primary direction\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n hitsBound = isTop || isBottom;\n } else {\n hitsBound = isLeft || isRight;\n }\n\n return hitsBound ? !i.settings.wheelPropagation : true;\n }\n\n function getDeltaFromEvent(e) {\n var deltaX = e.deltaX;\n var deltaY = -1 * e.deltaY;\n\n if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {\n // OS X Safari\n deltaX = (-1 * e.wheelDeltaX) / 6;\n deltaY = e.wheelDeltaY / 6;\n }\n\n if (e.deltaMode && e.deltaMode === 1) {\n // Firefox in deltaMode 1: Line scrolling\n deltaX *= 10;\n deltaY *= 10;\n }\n\n if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {\n // IE in some mouse drivers\n deltaX = 0;\n deltaY = e.wheelDelta;\n }\n\n if (e.shiftKey) {\n // reverse axis with shift key\n return [-deltaY, -deltaX];\n }\n return [deltaX, deltaY];\n }\n\n function shouldBeConsumedByChild(target, deltaX, deltaY) {\n // FIXME: this is a workaround for <select> issue in FF and IE #571\n if (!env.isWebKit && element.querySelector('select:focus')) {\n return true;\n }\n\n if (!element.contains(target)) {\n return false;\n }\n\n var cursor = target;\n\n while (cursor && cursor !== element) {\n if (cursor.classList.contains(cls.element.consuming)) {\n return true;\n }\n\n var style = get(cursor);\n\n // if deltaY && vertical scrollable\n if (deltaY && style.overflowY.match(/(scroll|auto)/)) {\n var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n if (maxScrollTop > 0) {\n if (\n (cursor.scrollTop > 0 && deltaY < 0) ||\n (cursor.scrollTop < maxScrollTop && deltaY > 0)\n ) {\n return true;\n }\n }\n }\n // if deltaX && horizontal scrollable\n if (deltaX && style.overflowX.match(/(scroll|auto)/)) {\n var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n if (maxScrollLeft > 0) {\n if (\n (cursor.scrollLeft > 0 && deltaX < 0) ||\n (cursor.scrollLeft < maxScrollLeft && deltaX > 0)\n ) {\n return true;\n }\n }\n }\n\n cursor = cursor.parentNode;\n }\n\n return false;\n }\n\n function mousewheelHandler(e) {\n var ref = getDeltaFromEvent(e);\n var deltaX = ref[0];\n var deltaY = ref[1];\n\n if (shouldBeConsumedByChild(e.target, deltaX, deltaY)) {\n return;\n }\n\n var shouldPrevent = false;\n if (!i.settings.useBothWheelAxes) {\n // deltaX will only be used for horizontal scrolling and deltaY will\n // only be used for vertical scrolling - this is the default\n element.scrollTop -= deltaY * i.settings.wheelSpeed;\n element.scrollLeft += deltaX * i.settings.wheelSpeed;\n } else if (i.scrollbarYActive && !i.scrollbarXActive) {\n // only vertical scrollbar is active and useBothWheelAxes option is\n // active, so let's scroll vertical bar using both mouse wheel axes\n if (deltaY) {\n element.scrollTop -= deltaY * i.settings.wheelSpeed;\n } else {\n element.scrollTop += deltaX * i.settings.wheelSpeed;\n }\n shouldPrevent = true;\n } else if (i.scrollbarXActive && !i.scrollbarYActive) {\n // useBothWheelAxes and only horizontal bar is active, so use both\n // wheel axes for horizontal bar\n if (deltaX) {\n element.scrollLeft += deltaX * i.settings.wheelSpeed;\n } else {\n element.scrollLeft -= deltaY * i.settings.wheelSpeed;\n }\n shouldPrevent = true;\n }\n\n updateGeometry(i);\n\n shouldPrevent = shouldPrevent || shouldPreventDefault(deltaX, deltaY);\n if (shouldPrevent && !e.ctrlKey) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n if (typeof window.onwheel !== 'undefined') {\n i.event.bind(element, 'wheel', mousewheelHandler);\n } else if (typeof window.onmousewheel !== 'undefined') {\n i.event.bind(element, 'mousewheel', mousewheelHandler);\n }\n}\n\nfunction touch(i) {\n if (!env.supportsTouch && !env.supportsIePointer) {\n return;\n }\n\n var element = i.element;\n\n function shouldPrevent(deltaX, deltaY) {\n var scrollTop = Math.floor(element.scrollTop);\n var scrollLeft = element.scrollLeft;\n var magnitudeX = Math.abs(deltaX);\n var magnitudeY = Math.abs(deltaY);\n\n if (magnitudeY > magnitudeX) {\n // user is perhaps trying to swipe up/down the page\n\n if (\n (deltaY < 0 && scrollTop === i.contentHeight - i.containerHeight) ||\n (deltaY > 0 && scrollTop === 0)\n ) {\n // set prevent for mobile Chrome refresh\n return window.scrollY === 0 && deltaY > 0 && env.isChrome;\n }\n } else if (magnitudeX > magnitudeY) {\n // user is perhaps trying to swipe left/right across the page\n\n if (\n (deltaX < 0 && scrollLeft === i.contentWidth - i.containerWidth) ||\n (deltaX > 0 && scrollLeft === 0)\n ) {\n return true;\n }\n }\n\n return true;\n }\n\n function applyTouchMove(differenceX, differenceY) {\n element.scrollTop -= differenceY;\n element.scrollLeft -= differenceX;\n\n updateGeometry(i);\n }\n\n var startOffset = {};\n var startTime = 0;\n var speed = {};\n var easingLoop = null;\n\n function getTouch(e) {\n if (e.targetTouches) {\n return e.targetTouches[0];\n } else {\n // Maybe IE pointer\n return e;\n }\n }\n\n function shouldHandle(e) {\n if (e.pointerType && e.pointerType === 'pen' && e.buttons === 0) {\n return false;\n }\n if (e.targetTouches && e.targetTouches.length === 1) {\n return true;\n }\n if (\n e.pointerType &&\n e.pointerType !== 'mouse' &&\n e.pointerType !== e.MSPOINTER_TYPE_MOUSE\n ) {\n return true;\n }\n return false;\n }\n\n function touchStart(e) {\n if (!shouldHandle(e)) {\n return;\n }\n\n var touch = getTouch(e);\n\n startOffset.pageX = touch.pageX;\n startOffset.pageY = touch.pageY;\n\n startTime = new Date().getTime();\n\n if (easingLoop !== null) {\n clearInterval(easingLoop);\n }\n }\n\n function shouldBeConsumedByChild(target, deltaX, deltaY) {\n if (!element.contains(target)) {\n return false;\n }\n\n var cursor = target;\n\n while (cursor && cursor !== element) {\n if (cursor.classList.contains(cls.element.consuming)) {\n return true;\n }\n\n var style = get(cursor);\n\n // if deltaY && vertical scrollable\n if (deltaY && style.overflowY.match(/(scroll|auto)/)) {\n var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n if (maxScrollTop > 0) {\n if (\n (cursor.scrollTop > 0 && deltaY < 0) ||\n (cursor.scrollTop < maxScrollTop && deltaY > 0)\n ) {\n return true;\n }\n }\n }\n // if deltaX && horizontal scrollable\n if (deltaX && style.overflowX.match(/(scroll|auto)/)) {\n var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n if (maxScrollLeft > 0) {\n if (\n (cursor.scrollLeft > 0 && deltaX < 0) ||\n (cursor.scrollLeft < maxScrollLeft && deltaX > 0)\n ) {\n return true;\n }\n }\n }\n\n cursor = cursor.parentNode;\n }\n\n return false;\n }\n\n function touchMove(e) {\n if (shouldHandle(e)) {\n var touch = getTouch(e);\n\n var currentOffset = { pageX: touch.pageX, pageY: touch.pageY };\n\n var differenceX = currentOffset.pageX - startOffset.pageX;\n var differenceY = currentOffset.pageY - startOffset.pageY;\n\n if (shouldBeConsumedByChild(e.target, differenceX, differenceY)) {\n return;\n }\n\n applyTouchMove(differenceX, differenceY);\n startOffset = currentOffset;\n\n var currentTime = new Date().getTime();\n\n var timeGap = currentTime - startTime;\n if (timeGap > 0) {\n speed.x = differenceX / timeGap;\n speed.y = differenceY / timeGap;\n startTime = currentTime;\n }\n\n if (shouldPrevent(differenceX, differenceY)) {\n e.preventDefault();\n }\n }\n }\n function touchEnd() {\n if (i.settings.swipeEasing) {\n clearInterval(easingLoop);\n easingLoop = setInterval(function() {\n if (i.isInitialized) {\n clearInterval(easingLoop);\n return;\n }\n\n if (!speed.x && !speed.y) {\n clearInterval(easingLoop);\n return;\n }\n\n if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {\n clearInterval(easingLoop);\n return;\n }\n\n if (!i.element) {\n clearInterval(easingLoop);\n return;\n }\n\n applyTouchMove(speed.x * 30, speed.y * 30);\n\n speed.x *= 0.8;\n speed.y *= 0.8;\n }, 10);\n }\n }\n\n if (env.supportsTouch) {\n i.event.bind(element, 'touchstart', touchStart);\n i.event.bind(element, 'touchmove', touchMove);\n i.event.bind(element, 'touchend', touchEnd);\n } else if (env.supportsIePointer) {\n if (window.PointerEvent) {\n i.event.bind(element, 'pointerdown', touchStart);\n i.event.bind(element, 'pointermove', touchMove);\n i.event.bind(element, 'pointerup', touchEnd);\n } else if (window.MSPointerEvent) {\n i.event.bind(element, 'MSPointerDown', touchStart);\n i.event.bind(element, 'MSPointerMove', touchMove);\n i.event.bind(element, 'MSPointerUp', touchEnd);\n }\n }\n}\n\nvar defaultSettings = function () { return ({\n handlers: ['click-rail', 'drag-thumb', 'keyboard', 'wheel', 'touch'],\n maxScrollbarLength: null,\n minScrollbarLength: null,\n scrollingThreshold: 1000,\n scrollXMarginOffset: 0,\n scrollYMarginOffset: 0,\n suppressScrollX: false,\n suppressScrollY: false,\n swipeEasing: true,\n useBothWheelAxes: false,\n wheelPropagation: true,\n wheelSpeed: 1,\n}); };\n\nvar handlers = {\n 'click-rail': clickRail,\n 'drag-thumb': dragThumb,\n keyboard: keyboard,\n wheel: wheel,\n touch: touch,\n};\n\nvar PerfectScrollbar = function PerfectScrollbar(element, userSettings) {\n var this$1 = this;\n if ( userSettings === void 0 ) userSettings = {};\n\n if (typeof element === 'string') {\n element = document.querySelector(element);\n }\n\n if (!element || !element.nodeName) {\n throw new Error('no element is specified to initialize PerfectScrollbar');\n }\n\n this.element = element;\n\n element.classList.add(cls.main);\n\n this.settings = defaultSettings();\n for (var key in userSettings) {\n this.settings[key] = userSettings[key];\n }\n\n this.containerWidth = null;\n this.containerHeight = null;\n this.contentWidth = null;\n this.contentHeight = null;\n\n var focus = function () { return element.classList.add(cls.state.focus); };\n var blur = function () { return element.classList.remove(cls.state.focus); };\n\n this.isRtl = get(element).direction === 'rtl';\n if (this.isRtl === true) {\n element.classList.add(cls.rtl);\n }\n this.isNegativeScroll = (function () {\n var originalScrollLeft = element.scrollLeft;\n var result = null;\n element.scrollLeft = -1;\n result = element.scrollLeft < 0;\n element.scrollLeft = originalScrollLeft;\n return result;\n })();\n this.negativeScrollAdjustment = this.isNegativeScroll\n ? element.scrollWidth - element.clientWidth\n : 0;\n this.event = new EventManager();\n this.ownerDocument = element.ownerDocument || document;\n\n this.scrollbarXRail = div(cls.element.rail('x'));\n element.appendChild(this.scrollbarXRail);\n this.scrollbarX = div(cls.element.thumb('x'));\n this.scrollbarXRail.appendChild(this.scrollbarX);\n this.scrollbarX.setAttribute('tabindex', 0);\n this.event.bind(this.scrollbarX, 'focus', focus);\n this.event.bind(this.scrollbarX, 'blur', blur);\n this.scrollbarXActive = null;\n this.scrollbarXWidth = null;\n this.scrollbarXLeft = null;\n var railXStyle = get(this.scrollbarXRail);\n this.scrollbarXBottom = parseInt(railXStyle.bottom, 10);\n if (isNaN(this.scrollbarXBottom)) {\n this.isScrollbarXUsingBottom = false;\n this.scrollbarXTop = toInt(railXStyle.top);\n } else {\n this.isScrollbarXUsingBottom = true;\n }\n this.railBorderXWidth =\n toInt(railXStyle.borderLeftWidth) + toInt(railXStyle.borderRightWidth);\n // Set rail to display:block to calculate margins\n set(this.scrollbarXRail, { display: 'block' });\n this.railXMarginWidth =\n toInt(railXStyle.marginLeft) + toInt(railXStyle.marginRight);\n set(this.scrollbarXRail, { display: '' });\n this.railXWidth = null;\n this.railXRatio = null;\n\n this.scrollbarYRail = div(cls.element.rail('y'));\n element.appendChild(this.scrollbarYRail);\n this.scrollbarY = div(cls.element.thumb('y'));\n this.scrollbarYRail.appendChild(this.scrollbarY);\n this.scrollbarY.setAttribute('tabindex', 0);\n this.event.bind(this.scrollbarY, 'focus', focus);\n this.event.bind(this.scrollbarY, 'blur', blur);\n this.scrollbarYActive = null;\n this.scrollbarYHeight = null;\n this.scrollbarYTop = null;\n var railYStyle = get(this.scrollbarYRail);\n this.scrollbarYRight = parseInt(railYStyle.right, 10);\n if (isNaN(this.scrollbarYRight)) {\n this.isScrollbarYUsingRight = false;\n this.scrollbarYLeft = toInt(railYStyle.left);\n } else {\n this.isScrollbarYUsingRight = true;\n }\n this.scrollbarYOuterWidth = this.isRtl ? outerWidth(this.scrollbarY) : null;\n this.railBorderYWidth =\n toInt(railYStyle.borderTopWidth) + toInt(railYStyle.borderBottomWidth);\n set(this.scrollbarYRail, { display: 'block' });\n this.railYMarginHeight =\n toInt(railYStyle.marginTop) + toInt(railYStyle.marginBottom);\n set(this.scrollbarYRail, { display: '' });\n this.railYHeight = null;\n this.railYRatio = null;\n\n this.reach = {\n x:\n element.scrollLeft <= 0\n ? 'start'\n : element.scrollLeft >= this.contentWidth - this.containerWidth\n ? 'end'\n : null,\n y:\n element.scrollTop <= 0\n ? 'start'\n : element.scrollTop >= this.contentHeight - this.containerHeight\n ? 'end'\n : null,\n };\n\n this.isAlive = true;\n\n this.settings.handlers.forEach(function (handlerName) { return handlers[handlerName](this$1); });\n\n this.lastScrollTop = Math.floor(element.scrollTop); // for onScroll only\n this.lastScrollLeft = element.scrollLeft; // for onScroll only\n this.event.bind(this.element, 'scroll', function (e) { return this$1.onScroll(e); });\n updateGeometry(this);\n};\n\nPerfectScrollbar.prototype.update = function update () {\n if (!this.isAlive) {\n return;\n }\n\n // Recalcuate negative scrollLeft adjustment\n this.negativeScrollAdjustment = this.isNegativeScroll\n ? this.element.scrollWidth - this.element.clientWidth\n : 0;\n\n // Recalculate rail margins\n set(this.scrollbarXRail, { display: 'block' });\n set(this.scrollbarYRail, { display: 'block' });\n this.railXMarginWidth =\n toInt(get(this.scrollbarXRail).marginLeft) +\n toInt(get(this.scrollbarXRail).marginRight);\n this.railYMarginHeight =\n toInt(get(this.scrollbarYRail).marginTop) +\n toInt(get(this.scrollbarYRail).marginBottom);\n\n // Hide scrollbars not to affect scrollWidth and scrollHeight\n set(this.scrollbarXRail, { display: 'none' });\n set(this.scrollbarYRail, { display: 'none' });\n\n updateGeometry(this);\n\n processScrollDiff(this, 'top', 0, false, true);\n processScrollDiff(this, 'left', 0, false, true);\n\n set(this.scrollbarXRail, { display: '' });\n set(this.scrollbarYRail, { display: '' });\n};\n\nPerfectScrollbar.prototype.onScroll = function onScroll (e) {\n if (!this.isAlive) {\n return;\n }\n\n updateGeometry(this);\n processScrollDiff(this, 'top', this.element.scrollTop - this.lastScrollTop);\n processScrollDiff(\n this,\n 'left',\n this.element.scrollLeft - this.lastScrollLeft\n );\n\n this.lastScrollTop = Math.floor(this.element.scrollTop);\n this.lastScrollLeft = this.element.scrollLeft;\n};\n\nPerfectScrollbar.prototype.destroy = function destroy () {\n if (!this.isAlive) {\n return;\n }\n\n this.event.unbindAll();\n remove(this.scrollbarX);\n remove(this.scrollbarY);\n remove(this.scrollbarXRail);\n remove(this.scrollbarYRail);\n this.removePsClasses();\n\n // unset elements\n this.element = null;\n this.scrollbarX = null;\n this.scrollbarY = null;\n this.scrollbarXRail = null;\n this.scrollbarYRail = null;\n\n this.isAlive = false;\n};\n\nPerfectScrollbar.prototype.removePsClasses = function removePsClasses () {\n this.element.className = this.element.className\n .split(' ')\n .filter(function (name) { return !name.match(/^ps([-_].+|)$/); })\n .join(' ');\n};\n\nexport default PerfectScrollbar;\n//# sourceMappingURL=perfect-scrollbar.esm.js.map\n","/* eslint-disable no-console */\n/* eslint-disable max-len */\nimport _ from 'lodash';\n\nclass MediaQuery {\n\tconstructor() {\n\t\tthis.BREAKPOINTS = {\n\t\t\tXS: 0,\n\t\t\tSM: 576,\n\t\t\tMD: 768,\n\t\t\tLG: 992,\n\t\t\tXL: 1200,\n\t\t};\n\t}\n\n\tbreakpointMaxWidth(breakpoint) {\n\t\tlet width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n\n\t\tif (_.isFinite(breakpoint)) {\n\t\t\treturn breakpoint > width;\n\t\t}\n\t\tconsole.error(`MediaQuery::Error`, 'Please supply a valid breakpoint');\n\t\treturn false;\n\t}\n}\n\nexport let mediaQuery = new MediaQuery();\n","/** @license\n *\n * jsPDF - PDF Document creation from JavaScript\n * Version 2.5.0 Built on 2022-01-19T08:51:21.648Z\n * CommitID 00000000\n *\n * Copyright (c) 2010-2021 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF\n * 2015-2021 yWorks GmbH, http://www.yworks.com\n * 2015-2021 Lukas Holländer <lukas.hollaender@yworks.com>, https://github.com/HackbrettXXX\n * 2016-2018 Aras Abbasi <aras.abbasi@gmail.com>\n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\n\nimport{zlibSync as t,unzlibSync as e}from\"fflate\";var r=function(){return\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this}();function n(){r.console&&\"function\"==typeof r.console.log&&r.console.log.apply(r.console,arguments)}var i={log:n,warn:function(t){r.console&&(\"function\"==typeof r.console.warn?r.console.warn.apply(r.console,arguments):n.call(null,arguments))},error:function(t){r.console&&(\"function\"==typeof r.console.error?r.console.error.apply(r.console,arguments):n(t))}};\n/**\n * @license\n * FileSaver.js\n * A saveAs() FileSaver implementation.\n *\n * By Eli Grey, http://eligrey.com\n *\n * License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n * source : http://purl.eligrey.com/github/FileSaver.js\n */function a(t,e,r){var n=new XMLHttpRequest;n.open(\"GET\",t),n.responseType=\"blob\",n.onload=function(){h(n.response,e,r)},n.onerror=function(){i.error(\"could not download file\")},n.send()}function o(t){var e=new XMLHttpRequest;e.open(\"HEAD\",t,!1);try{e.send()}catch(t){}return e.status>=200&&e.status<=299}function s(t){try{t.dispatchEvent(new MouseEvent(\"click\"))}catch(r){var e=document.createEvent(\"MouseEvents\");e.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(e)}}var c,u,h=r.saveAs||(\"object\"!=typeof window||window!==r?function(){}:\"undefined\"!=typeof HTMLAnchorElement&&\"download\"in HTMLAnchorElement.prototype?function(t,e,n){var i=r.URL||r.webkitURL,c=document.createElement(\"a\");e=e||t.name||\"download\",c.download=e,c.rel=\"noopener\",\"string\"==typeof t?(c.href=t,c.origin!==location.origin?o(c.href)?a(t,e,n):s(c,c.target=\"_blank\"):s(c)):(c.href=i.createObjectURL(t),setTimeout((function(){i.revokeObjectURL(c.href)}),4e4),setTimeout((function(){s(c)}),0))}:\"msSaveOrOpenBlob\"in navigator?function(t,e,r){if(e=e||t.name||\"download\",\"string\"==typeof t)if(o(t))a(t,e,r);else{var n=document.createElement(\"a\");n.href=t,n.target=\"_blank\",setTimeout((function(){s(n)}))}else navigator.msSaveOrOpenBlob(function(t,e){return void 0===e?e={autoBom:!1}:\"object\"!=typeof e&&(i.warn(\"Deprecated: Expected third argument to be a object\"),e={autoBom:!e}),e.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(t.type)?new Blob([String.fromCharCode(65279),t],{type:t.type}):t}(t,r),e)}:function(t,e,n,i){if((i=i||open(\"\",\"_blank\"))&&(i.document.title=i.document.body.innerText=\"downloading...\"),\"string\"==typeof t)return a(t,e,n);var o=\"application/octet-stream\"===t.type,s=/constructor/i.test(r.HTMLElement)||r.safari,c=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((c||o&&s)&&\"object\"==typeof FileReader){var u=new FileReader;u.onloadend=function(){var t=u.result;t=c?t:t.replace(/^data:[^;]*;/,\"data:attachment/file;\"),i?i.location.href=t:location=t,i=null},u.readAsDataURL(t)}else{var h=r.URL||r.webkitURL,l=h.createObjectURL(t);i?i.location=l:location.href=l,i=null,setTimeout((function(){h.revokeObjectURL(l)}),4e4)}});\n/**\n * A class to parse color values\n * @author Stoyan Stefanov <sstoo@gmail.com>\n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */function l(t){var e;t=t||\"\",this.ok=!1,\"#\"==t.charAt(0)&&(t=t.substr(1,6));t={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dodgerblue:\"1e90ff\",feldspar:\"d19275\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgrey:\"d3d3d3\",lightgreen:\"90ee90\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslateblue:\"8470ff\",lightslategray:\"778899\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"00ff00\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"ff00ff\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370d8\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"d87093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",red:\"ff0000\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",violetred:\"d02090\",wheat:\"f5deb3\",white:\"ffffff\",whitesmoke:\"f5f5f5\",yellow:\"ffff00\",yellowgreen:\"9acd32\"}[t=(t=t.replace(/ /g,\"\")).toLowerCase()]||t;for(var r=[{re:/^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,example:[\"rgb(123, 234, 45)\",\"rgb(255,234,245)\"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\\w{2})(\\w{2})(\\w{2})$/,example:[\"#00ff00\",\"336699\"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\\w{1})(\\w{1})(\\w{1})$/,example:[\"#fb0\",\"f0f\"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],n=0;n<r.length;n++){var i=r[n].re,a=r[n].process,o=i.exec(t);o&&(e=a(o),this.r=e[0],this.g=e[1],this.b=e[2],this.ok=!0)}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.toRGB=function(){return\"rgb(\"+this.r+\", \"+this.g+\", \"+this.b+\")\"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),r=this.b.toString(16);return 1==t.length&&(t=\"0\"+t),1==e.length&&(e=\"0\"+e),1==r.length&&(r=\"0\"+r),\"#\"+t+e+r}}\n/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\nfunction f(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];r=p(r,n,i,a,e[0],7,-680876936),a=p(a,r,n,i,e[1],12,-389564586),i=p(i,a,r,n,e[2],17,606105819),n=p(n,i,a,r,e[3],22,-1044525330),r=p(r,n,i,a,e[4],7,-176418897),a=p(a,r,n,i,e[5],12,1200080426),i=p(i,a,r,n,e[6],17,-1473231341),n=p(n,i,a,r,e[7],22,-45705983),r=p(r,n,i,a,e[8],7,1770035416),a=p(a,r,n,i,e[9],12,-1958414417),i=p(i,a,r,n,e[10],17,-42063),n=p(n,i,a,r,e[11],22,-1990404162),r=p(r,n,i,a,e[12],7,1804603682),a=p(a,r,n,i,e[13],12,-40341101),i=p(i,a,r,n,e[14],17,-1502002290),r=g(r,n=p(n,i,a,r,e[15],22,1236535329),i,a,e[1],5,-165796510),a=g(a,r,n,i,e[6],9,-1069501632),i=g(i,a,r,n,e[11],14,643717713),n=g(n,i,a,r,e[0],20,-373897302),r=g(r,n,i,a,e[5],5,-701558691),a=g(a,r,n,i,e[10],9,38016083),i=g(i,a,r,n,e[15],14,-660478335),n=g(n,i,a,r,e[4],20,-405537848),r=g(r,n,i,a,e[9],5,568446438),a=g(a,r,n,i,e[14],9,-1019803690),i=g(i,a,r,n,e[3],14,-187363961),n=g(n,i,a,r,e[8],20,1163531501),r=g(r,n,i,a,e[13],5,-1444681467),a=g(a,r,n,i,e[2],9,-51403784),i=g(i,a,r,n,e[7],14,1735328473),r=m(r,n=g(n,i,a,r,e[12],20,-1926607734),i,a,e[5],4,-378558),a=m(a,r,n,i,e[8],11,-2022574463),i=m(i,a,r,n,e[11],16,1839030562),n=m(n,i,a,r,e[14],23,-35309556),r=m(r,n,i,a,e[1],4,-1530992060),a=m(a,r,n,i,e[4],11,1272893353),i=m(i,a,r,n,e[7],16,-155497632),n=m(n,i,a,r,e[10],23,-1094730640),r=m(r,n,i,a,e[13],4,681279174),a=m(a,r,n,i,e[0],11,-358537222),i=m(i,a,r,n,e[3],16,-722521979),n=m(n,i,a,r,e[6],23,76029189),r=m(r,n,i,a,e[9],4,-640364487),a=m(a,r,n,i,e[12],11,-421815835),i=m(i,a,r,n,e[15],16,530742520),r=v(r,n=m(n,i,a,r,e[2],23,-995338651),i,a,e[0],6,-198630844),a=v(a,r,n,i,e[7],10,1126891415),i=v(i,a,r,n,e[14],15,-1416354905),n=v(n,i,a,r,e[5],21,-57434055),r=v(r,n,i,a,e[12],6,1700485571),a=v(a,r,n,i,e[3],10,-1894986606),i=v(i,a,r,n,e[10],15,-1051523),n=v(n,i,a,r,e[1],21,-2054922799),r=v(r,n,i,a,e[8],6,1873313359),a=v(a,r,n,i,e[15],10,-30611744),i=v(i,a,r,n,e[6],15,-1560198380),n=v(n,i,a,r,e[13],21,1309151649),r=v(r,n,i,a,e[4],6,-145523070),a=v(a,r,n,i,e[11],10,-1120210379),i=v(i,a,r,n,e[2],15,718787259),n=v(n,i,a,r,e[9],21,-343485551),t[0]=S(r,t[0]),t[1]=S(n,t[1]),t[2]=S(i,t[2]),t[3]=S(a,t[3])}function d(t,e,r,n,i,a){return e=S(S(e,t),S(n,a)),S(e<<i|e>>>32-i,r)}function p(t,e,r,n,i,a,o){return d(e&r|~e&n,t,e,i,a,o)}function g(t,e,r,n,i,a,o){return d(e&n|r&~n,t,e,i,a,o)}function m(t,e,r,n,i,a,o){return d(e^r^n,t,e,i,a,o)}function v(t,e,r,n,i,a,o){return d(r^(e|~n),t,e,i,a,o)}function b(t){var e,r=t.length,n=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=t.length;e+=64)f(n,y(t.substring(e-64,e)));t=t.substring(e-64);var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<t.length;e++)i[e>>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(f(n,i),e=0;e<16;e++)i[e]=0;return i[14]=8*r,f(n,i),n}function y(t){var e,r=[];for(e=0;e<64;e+=4)r[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return r}c=r.atob.bind(r),u=r.btoa.bind(r);var w=\"0123456789abcdef\".split(\"\");function N(t){for(var e=\"\",r=0;r<4;r++)e+=w[t>>8*r+4&15]+w[t>>8*r&15];return e}function L(t){return String.fromCharCode((255&t)>>0,(65280&t)>>8,(16711680&t)>>16,(4278190080&t)>>24)}function A(t){return b(t).map(L).join(\"\")}var x=\"5d41402abc4b2a76b9719d911017c592\"!=function(t){for(var e=0;e<t.length;e++)t[e]=N(t[e]);return t.join(\"\")}(b(\"hello\"));function S(t,e){if(x){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}return t+e&4294967295}\n/**\n * @license\n * FPDF is released under a permissive license: there is no usage restriction.\n * You may embed it freely in your application (commercial or not), with or\n * without modifications.\n *\n * Reference: http://www.fpdf.org/en/script/script37.php\n */function _(t,e){var r,n,i,a;if(t!==r){for(var o=(i=t,a=1+(256/t.length>>0),new Array(a+1).join(i)),s=[],c=0;c<256;c++)s[c]=c;var u=0;for(c=0;c<256;c++){var h=s[c];u=(u+h+o.charCodeAt(c))%256,s[c]=s[u],s[u]=h}r=t,n=s}else s=n;var l=e.length,f=0,d=0,p=\"\";for(c=0;c<l;c++)d=(d+(h=s[f=(f+1)%256]))%256,s[f]=s[d],s[d]=h,o=s[(s[f]+s[d])%256],p+=String.fromCharCode(e.charCodeAt(c)^o);return p}\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n * Author: Owen Leong (@owenl131)\n * Date: 15 Oct 2020\n * References:\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\n * http://www.fpdf.org/en/script/script37.php\n */var P={print:4,modify:8,copy:16,\"annot-forms\":32};function k(t,e,r,n){this.v=1,this.r=2;var i=192;t.forEach((function(t){if(void 0!==P.perm)throw new Error(\"Invalid permission: \"+t);i+=P[t]})),this.padding=\"(¿N^NuŠAd\\0NVÿú\u0001\\b..\\0¶Ãh>€/\\f©þdSiz\";var a=(e+this.padding).substr(0,32),o=(r+this.padding).substr(0,32);this.O=this.processOwnerPassword(a,o),this.P=-(1+(255^i)),this.encryptionKey=A(a+this.O+this.lsbFirstWord(this.P)+this.hexToBytes(n)).substr(0,5),this.U=_(this.encryptionKey,this.padding)}function I(t){if(/[^\\u0000-\\u00ff]/.test(t))throw new Error(\"Invalid PDF Name Object: \"+t+\", Only accept ASCII characters.\");for(var e=\"\",r=t.length,n=0;n<r;n++){var i=t.charCodeAt(n);if(i<33||35===i||37===i||40===i||41===i||47===i||60===i||62===i||91===i||93===i||123===i||125===i||i>126)e+=\"#\"+(\"0\"+i.toString(16)).slice(-2);else e+=t[n]}return e}function F(t){if(\"object\"!=typeof t)throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");var e={};this.subscribe=function(t,r,n){if(n=n||!1,\"string\"!=typeof t||\"function\"!=typeof r||\"boolean\"!=typeof n)throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");e.hasOwnProperty(t)||(e[t]={});var i=Math.random().toString(35);return e[t][i]=[r,!!n],i},this.unsubscribe=function(t){for(var r in e)if(e[r][t])return delete e[r][t],0===Object.keys(e[r]).length&&delete e[r],!0;return!1},this.publish=function(n){if(e.hasOwnProperty(n)){var a=Array.prototype.slice.call(arguments,1),o=[];for(var s in e[n]){var c=e[n][s];try{c[0].apply(t,a)}catch(t){r.console&&i.error(\"jsPDF PubSub Error\",t.message,t)}c[1]&&o.push(s)}o.length&&o.forEach(this.unsubscribe)}},this.getTopics=function(){return e}}function C(t){if(!(this instanceof C))return new C(t);var e=\"opacity,stroke-opacity\".split(\",\");for(var r in t)t.hasOwnProperty(r)&&e.indexOf(r)>=0&&(this[r]=t[r]);this.id=\"\",this.objectNumber=-1}function j(t,e){this.gState=t,this.matrix=e,this.id=\"\",this.objectNumber=-1}function O(t,e,r,n,i){if(!(this instanceof O))return new O(t,e,r,n,i);this.type=\"axial\"===t?2:3,this.coords=e,this.colors=r,j.call(this,n,i)}function B(t,e,r,n,i){if(!(this instanceof B))return new B(t,e,r,n,i);this.boundingBox=t,this.xStep=e,this.yStep=r,this.stream=\"\",this.cloneIndex=0,j.call(this,n,i)}function M(t){var e,n=\"string\"==typeof arguments[0]?arguments[0]:\"p\",a=arguments[1],o=arguments[2],s=arguments[3],c=[],f=1,d=16,p=\"S\",g=null;\"object\"==typeof(t=t||{})&&(n=t.orientation,a=t.unit||a,o=t.format||o,s=t.compress||t.compressPdf||s,null!==(g=t.encryption||null)&&(g.userPassword=g.userPassword||\"\",g.ownerPassword=g.ownerPassword||\"\",g.userPermissions=g.userPermissions||[]),f=\"number\"==typeof t.userUnit?Math.abs(t.userUnit):1,void 0!==t.precision&&(e=t.precision),void 0!==t.floatPrecision&&(d=t.floatPrecision),p=t.defaultPathOperation||\"S\"),c=t.filters||(!0===s?[\"FlateEncode\"]:c),a=a||\"mm\",n=(\"\"+(n||\"P\")).toLowerCase();var m=t.putOnlyUsedFonts||!1,v={},b={internal:{},__private__:{}};b.__private__.PubSub=F;var y=\"1.3\",w=b.__private__.getPdfVersion=function(){return y};b.__private__.setPdfVersion=function(t){y=t};var N={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};b.__private__.getPageFormats=function(){return N};var L=b.__private__.getPageFormat=function(t){return N[t]};o=o||\"a4\";var A={COMPAT:\"compat\",ADVANCED:\"advanced\"},x=A.COMPAT;function S(){this.saveGraphicsState(),ht(new Wt(St,0,0,-St,0,Dr()*St).toString()+\" cm\"),this.setFontSize(this.getFontSize()/St),p=\"n\",x=A.ADVANCED}function _(){this.restoreGraphicsState(),p=\"S\",x=A.COMPAT}var P=b.__private__.combineFontStyleAndFontWeight=function(t,e){if(\"bold\"==t&&\"normal\"==e||\"bold\"==t&&400==e||\"normal\"==t&&\"italic\"==e||\"bold\"==t&&\"italic\"==e)throw new Error(\"Invalid Combination of fontweight and fontstyle\");return e&&(t=400==e||\"normal\"===e?\"italic\"===t?\"italic\":\"normal\":700!=e&&\"bold\"!==e||\"normal\"!==t?(700==e?\"bold\":e)+\"\"+t:\"bold\"),t};b.advancedAPI=function(t){var e=x===A.COMPAT;return e&&S.call(this),\"function\"!=typeof t||(t(this),e&&_.call(this)),this},b.compatAPI=function(t){var e=x===A.ADVANCED;return e&&_.call(this),\"function\"!=typeof t||(t(this),e&&S.call(this)),this},b.isAdvancedAPI=function(){return x===A.ADVANCED};var j,E=function(t){if(x!==A.ADVANCED)throw new Error(t+\" is only available in 'advanced' API mode. You need to call advancedAPI() first.\")},q=b.roundToPrecision=b.__private__.roundToPrecision=function(t,r){var n=e||r;if(isNaN(t)||isNaN(n))throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");return t.toFixed(n).replace(/0+$/,\"\")};j=b.hpf=b.__private__.hpf=\"number\"==typeof d?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return q(t,d)}:\"smart\"===d?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return q(t,t>-1&&t<1?16:5)}:function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return q(t,16)};var D=b.f2=b.__private__.f2=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return q(t,2)},R=b.__private__.f3=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f3\");return q(t,3)},T=b.scale=b.__private__.scale=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.scale\");return x===A.COMPAT?t*St:x===A.ADVANCED?t:void 0},z=function(t){return x===A.COMPAT?Dr()-t:x===A.ADVANCED?t:void 0},U=function(t){return T(z(t))};b.__private__.setPrecision=b.setPrecision=function(t){\"number\"==typeof parseInt(t,10)&&(e=parseInt(t,10))};var H,W=\"00000000000000000000000000000000\",V=b.__private__.getFileId=function(){return W},G=b.__private__.setFileId=function(t){return W=void 0!==t&&/^[a-fA-F0-9]{32}$/.test(t)?t.toUpperCase():W.split(\"\").map((function(){return\"ABCDEF0123456789\".charAt(Math.floor(16*Math.random()))})).join(\"\"),null!==g&&(Ge=new k(g.userPermissions,g.userPassword,g.ownerPassword,W)),W};b.setFileId=function(t){return G(t),this},b.getFileId=function(){return V()};var Y=b.__private__.convertDateToPDFDate=function(t){var e=t.getTimezoneOffset(),r=e<0?\"+\":\"-\",n=Math.floor(Math.abs(e/60)),i=Math.abs(e%60),a=[r,$(n),\"'\",$(i),\"'\"].join(\"\");return[\"D:\",t.getFullYear(),$(t.getMonth()+1),$(t.getDate()),$(t.getHours()),$(t.getMinutes()),$(t.getSeconds()),a].join(\"\")},J=b.__private__.convertPDFDateToDate=function(t){var e=parseInt(t.substr(2,4),10),r=parseInt(t.substr(6,2),10)-1,n=parseInt(t.substr(8,2),10),i=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),o=parseInt(t.substr(14,2),10);return new Date(e,r,n,i,a,o,0)},X=b.__private__.setCreationDate=function(t){var e;if(void 0===t&&(t=new Date),t instanceof Date)e=Y(t);else{if(!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(t))throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");e=t}return H=e},K=b.__private__.getCreationDate=function(t){var e=H;return\"jsDate\"===t&&(e=J(H)),e};b.setCreationDate=function(t){return X(t),this},b.getCreationDate=function(t){return K(t)};var Z,$=b.__private__.padd2=function(t){return(\"0\"+parseInt(t)).slice(-2)},Q=b.__private__.padd2Hex=function(t){return(\"00\"+(t=t.toString())).substr(t.length)},tt=0,et=[],rt=[],nt=0,it=[],at=[],ot=!1,st=rt,ct=function(){tt=0,nt=0,rt=[],et=[],it=[],$t=Xt(),Qt=Xt()};b.__private__.setCustomOutputDestination=function(t){ot=!0,st=t};var ut=function(t){ot||(st=t)};b.__private__.resetCustomOutputDestination=function(){ot=!1,st=rt};var ht=b.__private__.out=function(t){return t=t.toString(),nt+=t.length+1,st.push(t),st},lt=b.__private__.write=function(t){return ht(1===arguments.length?t.toString():Array.prototype.join.call(arguments,\" \"))},ft=b.__private__.getArrayBuffer=function(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r);e--;)n[e]=t.charCodeAt(e);return r},dt=[[\"Helvetica\",\"helvetica\",\"normal\",\"WinAnsiEncoding\"],[\"Helvetica-Bold\",\"helvetica\",\"bold\",\"WinAnsiEncoding\"],[\"Helvetica-Oblique\",\"helvetica\",\"italic\",\"WinAnsiEncoding\"],[\"Helvetica-BoldOblique\",\"helvetica\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Courier\",\"courier\",\"normal\",\"WinAnsiEncoding\"],[\"Courier-Bold\",\"courier\",\"bold\",\"WinAnsiEncoding\"],[\"Courier-Oblique\",\"courier\",\"italic\",\"WinAnsiEncoding\"],[\"Courier-BoldOblique\",\"courier\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Times-Roman\",\"times\",\"normal\",\"WinAnsiEncoding\"],[\"Times-Bold\",\"times\",\"bold\",\"WinAnsiEncoding\"],[\"Times-Italic\",\"times\",\"italic\",\"WinAnsiEncoding\"],[\"Times-BoldItalic\",\"times\",\"bolditalic\",\"WinAnsiEncoding\"],[\"ZapfDingbats\",\"zapfdingbats\",\"normal\",null],[\"Symbol\",\"symbol\",\"normal\",null]];b.__private__.getStandardFonts=function(){return dt};var pt=t.fontSize||16;b.__private__.setFontSize=b.setFontSize=function(t){return pt=x===A.ADVANCED?t/St:t,this};var gt,mt=b.__private__.getFontSize=b.getFontSize=function(){return x===A.COMPAT?pt:pt*St},vt=t.R2L||!1;b.__private__.setR2L=b.setR2L=function(t){return vt=t,this},b.__private__.getR2L=b.getR2L=function(){return vt};var bt,yt=b.__private__.setZoomMode=function(t){var e=[void 0,null,\"fullwidth\",\"fullheight\",\"fullpage\",\"original\"];if(/^\\d*\\.?\\d*%$/.test(t))gt=t;else if(isNaN(t)){if(-1===e.indexOf(t))throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"'+t+'\" is not recognized.');gt=t}else gt=parseInt(t,10)};b.__private__.getZoomMode=function(){return gt};var wt,Nt=b.__private__.setPageMode=function(t){if(-1==[void 0,null,\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"FullScreen\"].indexOf(t))throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"'+t+'\" is not recognized.');bt=t};b.__private__.getPageMode=function(){return bt};var Lt=b.__private__.setLayoutMode=function(t){if(-1==[void 0,null,\"continuous\",\"single\",\"twoleft\",\"tworight\",\"two\"].indexOf(t))throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"'+t+'\" is not recognized.');wt=t};b.__private__.getLayoutMode=function(){return wt},b.__private__.setDisplayMode=b.setDisplayMode=function(t,e,r){return yt(t),Lt(e),Nt(r),this};var At={title:\"\",subject:\"\",author:\"\",keywords:\"\",creator:\"\"};b.__private__.getDocumentProperty=function(t){if(-1===Object.keys(At).indexOf(t))throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");return At[t]},b.__private__.getDocumentProperties=function(){return At},b.__private__.setDocumentProperties=b.setProperties=b.setDocumentProperties=function(t){for(var e in At)At.hasOwnProperty(e)&&t[e]&&(At[e]=t[e]);return this},b.__private__.setDocumentProperty=function(t,e){if(-1===Object.keys(At).indexOf(t))throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");return At[t]=e};var xt,St,_t,Pt,kt,It={},Ft={},Ct=[],jt={},Ot={},Bt={},Mt={},Et=null,qt=0,Dt=[],Rt=new F(b),Tt=t.hotfixes||[],zt={},Ut={},Ht=[],Wt=function t(e,r,n,i,a,o){if(!(this instanceof t))return new t(e,r,n,i,a,o);isNaN(e)&&(e=1),isNaN(r)&&(r=0),isNaN(n)&&(n=0),isNaN(i)&&(i=1),isNaN(a)&&(a=0),isNaN(o)&&(o=0),this._matrix=[e,r,n,i,a,o]};Object.defineProperty(Wt.prototype,\"sx\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Wt.prototype,\"shy\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Wt.prototype,\"shx\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Wt.prototype,\"sy\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Wt.prototype,\"tx\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Wt.prototype,\"ty\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Wt.prototype,\"a\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Wt.prototype,\"b\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Wt.prototype,\"c\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Wt.prototype,\"d\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Wt.prototype,\"e\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Wt.prototype,\"f\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Wt.prototype,\"rotation\",{get:function(){return Math.atan2(this.shx,this.sx)}}),Object.defineProperty(Wt.prototype,\"scaleX\",{get:function(){return this.decompose().scale.sx}}),Object.defineProperty(Wt.prototype,\"scaleY\",{get:function(){return this.decompose().scale.sy}}),Object.defineProperty(Wt.prototype,\"isIdentity\",{get:function(){return 1===this.sx&&(0===this.shy&&(0===this.shx&&(1===this.sy&&(0===this.tx&&0===this.ty))))}}),Wt.prototype.join=function(t){return[this.sx,this.shy,this.shx,this.sy,this.tx,this.ty].map(j).join(t)},Wt.prototype.multiply=function(t){var e=t.sx*this.sx+t.shy*this.shx,r=t.sx*this.shy+t.shy*this.sy,n=t.shx*this.sx+t.sy*this.shx,i=t.shx*this.shy+t.sy*this.sy,a=t.tx*this.sx+t.ty*this.shx+this.tx,o=t.tx*this.shy+t.ty*this.sy+this.ty;return new Wt(e,r,n,i,a,o)},Wt.prototype.decompose=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=Math.sqrt(t*t+e*e),s=(t/=o)*r+(e/=o)*n;r-=t*s,n-=e*s;var c=Math.sqrt(r*r+n*n);return s/=c,t*(n/=c)<e*(r/=c)&&(t=-t,e=-e,s=-s,o=-o),{scale:new Wt(o,0,0,c,0,0),translate:new Wt(1,0,0,1,i,a),rotate:new Wt(t,e,-e,t,0,0),skew:new Wt(1,0,s,1,0,0)}},Wt.prototype.toString=function(t){return this.join(\" \")},Wt.prototype.inversed=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=1/(t*n-e*r),s=n*o,c=-e*o,u=-r*o,h=t*o;return new Wt(s,c,u,h,-s*i-u*a,-c*i-h*a)},Wt.prototype.applyToPoint=function(t){var e=t.x*this.sx+t.y*this.shx+this.tx,r=t.x*this.shy+t.y*this.sy+this.ty;return new Fr(e,r)},Wt.prototype.applyToRectangle=function(t){var e=this.applyToPoint(t),r=this.applyToPoint(new Fr(t.x+t.w,t.y+t.h));return new Cr(e.x,e.y,r.x-e.x,r.y-e.y)},Wt.prototype.clone=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty;return new Wt(t,e,r,n,i,a)},b.Matrix=Wt;var Vt=b.matrixMult=function(t,e){return e.multiply(t)},Gt=new Wt(1,0,0,1,0,0);b.unitMatrix=b.identityMatrix=Gt;var Yt=function(t,e){if(!Ot[t]){var r=(e instanceof O?\"Sh\":\"P\")+(Object.keys(jt).length+1).toString(10);e.id=r,Ot[t]=r,jt[r]=e,Rt.publish(\"addPattern\",e)}};b.ShadingPattern=O,b.TilingPattern=B,b.addShadingPattern=function(t,e){return E(\"addShadingPattern()\"),Yt(t,e),this},b.beginTilingPattern=function(t){E(\"beginTilingPattern()\"),Or(t.boundingBox[0],t.boundingBox[1],t.boundingBox[2]-t.boundingBox[0],t.boundingBox[3]-t.boundingBox[1],t.matrix)},b.endTilingPattern=function(t,e){E(\"endTilingPattern()\"),e.stream=at[Z].join(\"\\n\"),Yt(t,e),Rt.publish(\"endTilingPattern\",e),Ht.pop().restore()};var Jt=b.__private__.newObject=function(){var t=Xt();return Kt(t,!0),t},Xt=b.__private__.newObjectDeferred=function(){return tt++,et[tt]=function(){return nt},tt},Kt=function(t,e){return e=\"boolean\"==typeof e&&e,et[t]=nt,e&&ht(t+\" 0 obj\"),t},Zt=b.__private__.newAdditionalObject=function(){var t={objId:Xt(),content:\"\"};return it.push(t),t},$t=Xt(),Qt=Xt(),te=b.__private__.decodeColorString=function(t){var e=t.split(\" \");if(2!==e.length||\"g\"!==e[1]&&\"G\"!==e[1]){if(5===e.length&&(\"k\"===e[4]||\"K\"===e[4])){e=[(1-e[0])*(1-e[3]),(1-e[1])*(1-e[3]),(1-e[2])*(1-e[3]),\"r\"]}}else{var r=parseFloat(e[0]);e=[r,r,r,\"r\"]}for(var n=\"#\",i=0;i<3;i++)n+=(\"0\"+Math.floor(255*parseFloat(e[i])).toString(16)).slice(-2);return n},ee=b.__private__.encodeColorString=function(t){var e;\"string\"==typeof t&&(t={ch1:t});var r=t.ch1,n=t.ch2,i=t.ch3,a=t.ch4,o=\"draw\"===t.pdfColorType?[\"G\",\"RG\",\"K\"]:[\"g\",\"rg\",\"k\"];if(\"string\"==typeof r&&\"#\"!==r.charAt(0)){var s=new l(r);if(s.ok)r=s.toHex();else if(!/^\\d*\\.?\\d*$/.test(r))throw new Error('Invalid color \"'+r+'\" passed to jsPDF.encodeColorString.')}if(\"string\"==typeof r&&/^#[0-9A-Fa-f]{3}$/.test(r)&&(r=\"#\"+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]),\"string\"==typeof r&&/^#[0-9A-Fa-f]{6}$/.test(r)){var c=parseInt(r.substr(1),16);r=c>>16&255,n=c>>8&255,i=255&c}if(void 0===n||void 0===a&&r===n&&n===i)if(\"string\"==typeof r)e=r+\" \"+o[0];else switch(t.precision){case 2:e=D(r/255)+\" \"+o[0];break;case 3:default:e=R(r/255)+\" \"+o[0]}else if(void 0===a||\"object\"==typeof a){if(a&&!isNaN(a.a)&&0===a.a)return e=[\"1.\",\"1.\",\"1.\",o[1]].join(\" \");if(\"string\"==typeof r)e=[r,n,i,o[1]].join(\" \");else switch(t.precision){case 2:e=[D(r/255),D(n/255),D(i/255),o[1]].join(\" \");break;default:case 3:e=[R(r/255),R(n/255),R(i/255),o[1]].join(\" \")}}else if(\"string\"==typeof r)e=[r,n,i,a,o[2]].join(\" \");else switch(t.precision){case 2:e=[D(r),D(n),D(i),D(a),o[2]].join(\" \");break;case 3:default:e=[R(r),R(n),R(i),R(a),o[2]].join(\" \")}return e},re=b.__private__.getFilters=function(){return c},ne=b.__private__.putStream=function(t){var e=(t=t||{}).data||\"\",r=t.filters||re(),n=t.alreadyAppliedFilters||[],i=t.addLength1||!1,a=e.length,o=t.objectId,s=function(t){return t};if(null!==g&&void 0===o)throw new Error(\"ObjectId must be passed to putStream for file encryption\");null!==g&&(s=Ge.encryptor(o,0));var c={};!0===r&&(r=[\"FlateEncode\"]);var u=t.additionalKeyValues||[],h=(c=void 0!==M.API.processDataByFilters?M.API.processDataByFilters(e,r):{data:e,reverseChain:[]}).reverseChain+(Array.isArray(n)?n.join(\" \"):n.toString());if(0!==c.data.length&&(u.push({key:\"Length\",value:c.data.length}),!0===i&&u.push({key:\"Length1\",value:a})),0!=h.length)if(h.split(\"/\").length-1==1)u.push({key:\"Filter\",value:h});else{u.push({key:\"Filter\",value:\"[\"+h+\"]\"});for(var l=0;l<u.length;l+=1)if(\"DecodeParms\"===u[l].key){for(var f=[],d=0;d<c.reverseChain.split(\"/\").length-1;d+=1)f.push(\"null\");f.push(u[l].value),u[l].value=\"[\"+f.join(\" \")+\"]\"}}ht(\"<<\");for(var p=0;p<u.length;p++)ht(\"/\"+u[p].key+\" \"+u[p].value);ht(\">>\"),0!==c.data.length&&(ht(\"stream\"),ht(s(c.data)),ht(\"endstream\"))},ie=b.__private__.putPage=function(t){var e=t.number,r=t.data,n=t.objId,i=t.contentsObjId;Kt(n,!0),ht(\"<</Type /Page\"),ht(\"/Parent \"+t.rootDictionaryObjId+\" 0 R\"),ht(\"/Resources \"+t.resourceDictionaryObjId+\" 0 R\"),ht(\"/MediaBox [\"+parseFloat(j(t.mediaBox.bottomLeftX))+\" \"+parseFloat(j(t.mediaBox.bottomLeftY))+\" \"+j(t.mediaBox.topRightX)+\" \"+j(t.mediaBox.topRightY)+\"]\"),null!==t.cropBox&&ht(\"/CropBox [\"+j(t.cropBox.bottomLeftX)+\" \"+j(t.cropBox.bottomLeftY)+\" \"+j(t.cropBox.topRightX)+\" \"+j(t.cropBox.topRightY)+\"]\"),null!==t.bleedBox&&ht(\"/BleedBox [\"+j(t.bleedBox.bottomLeftX)+\" \"+j(t.bleedBox.bottomLeftY)+\" \"+j(t.bleedBox.topRightX)+\" \"+j(t.bleedBox.topRightY)+\"]\"),null!==t.trimBox&&ht(\"/TrimBox [\"+j(t.trimBox.bottomLeftX)+\" \"+j(t.trimBox.bottomLeftY)+\" \"+j(t.trimBox.topRightX)+\" \"+j(t.trimBox.topRightY)+\"]\"),null!==t.artBox&&ht(\"/ArtBox [\"+j(t.artBox.bottomLeftX)+\" \"+j(t.artBox.bottomLeftY)+\" \"+j(t.artBox.topRightX)+\" \"+j(t.artBox.topRightY)+\"]\"),\"number\"==typeof t.userUnit&&1!==t.userUnit&&ht(\"/UserUnit \"+t.userUnit),Rt.publish(\"putPage\",{objId:n,pageContext:Dt[e],pageNumber:e,page:r}),ht(\"/Contents \"+i+\" 0 R\"),ht(\">>\"),ht(\"endobj\");var a=r.join(\"\\n\");return x===A.ADVANCED&&(a+=\"\\nQ\"),Kt(i,!0),ne({data:a,filters:re(),objectId:i}),ht(\"endobj\"),n},ae=b.__private__.putPages=function(){var t,e,r=[];for(t=1;t<=qt;t++)Dt[t].objId=Xt(),Dt[t].contentsObjId=Xt();for(t=1;t<=qt;t++)r.push(ie({number:t,data:at[t],objId:Dt[t].objId,contentsObjId:Dt[t].contentsObjId,mediaBox:Dt[t].mediaBox,cropBox:Dt[t].cropBox,bleedBox:Dt[t].bleedBox,trimBox:Dt[t].trimBox,artBox:Dt[t].artBox,userUnit:Dt[t].userUnit,rootDictionaryObjId:$t,resourceDictionaryObjId:Qt}));Kt($t,!0),ht(\"<</Type /Pages\");var n=\"/Kids [\";for(e=0;e<qt;e++)n+=r[e]+\" 0 R \";ht(n+\"]\"),ht(\"/Count \"+qt),ht(\">>\"),ht(\"endobj\"),Rt.publish(\"postPutPages\")},oe=function(t){Rt.publish(\"putFont\",{font:t,out:ht,newObject:Jt,putStream:ne}),!0!==t.isAlreadyPutted&&(t.objectNumber=Jt(),ht(\"<<\"),ht(\"/Type /Font\"),ht(\"/BaseFont /\"+I(t.postScriptName)),ht(\"/Subtype /Type1\"),\"string\"==typeof t.encoding&&ht(\"/Encoding /\"+t.encoding),ht(\"/FirstChar 32\"),ht(\"/LastChar 255\"),ht(\">>\"),ht(\"endobj\"))},se=function(){for(var t in It)It.hasOwnProperty(t)&&(!1===m||!0===m&&v.hasOwnProperty(t))&&oe(It[t])},ce=function(t){t.objectNumber=Jt();var e=[];e.push({key:\"Type\",value:\"/XObject\"}),e.push({key:\"Subtype\",value:\"/Form\"}),e.push({key:\"BBox\",value:\"[\"+[j(t.x),j(t.y),j(t.x+t.width),j(t.y+t.height)].join(\" \")+\"]\"}),e.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"});var r=t.pages[1].join(\"\\n\");ne({data:r,additionalKeyValues:e,objectId:t.objectNumber}),ht(\"endobj\")},ue=function(){for(var t in zt)zt.hasOwnProperty(t)&&ce(zt[t])},he=function(t,e){var r,n=[],i=1/(e-1);for(r=0;r<1;r+=i)n.push(r);if(n.push(1),0!=t[0].offset){var a={offset:0,color:t[0].color};t.unshift(a)}if(1!=t[t.length-1].offset){var o={offset:1,color:t[t.length-1].color};t.push(o)}for(var s=\"\",c=0,u=0;u<n.length;u++){for(r=n[u];r>t[c+1].offset;)c++;var h=t[c].offset,l=(r-h)/(t[c+1].offset-h),f=t[c].color,d=t[c+1].color;s+=Q(Math.round((1-l)*f[0]+l*d[0]).toString(16))+Q(Math.round((1-l)*f[1]+l*d[1]).toString(16))+Q(Math.round((1-l)*f[2]+l*d[2]).toString(16))}return s.trim()},le=function(t,e){e||(e=21);var r=Jt(),n=he(t.colors,e),i=[];i.push({key:\"FunctionType\",value:\"0\"}),i.push({key:\"Domain\",value:\"[0.0 1.0]\"}),i.push({key:\"Size\",value:\"[\"+e+\"]\"}),i.push({key:\"BitsPerSample\",value:\"8\"}),i.push({key:\"Range\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),i.push({key:\"Decode\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),ne({data:n,additionalKeyValues:i,alreadyAppliedFilters:[\"/ASCIIHexDecode\"],objectId:r}),ht(\"endobj\"),t.objectNumber=Jt(),ht(\"<< /ShadingType \"+t.type),ht(\"/ColorSpace /DeviceRGB\");var a=\"/Coords [\"+j(parseFloat(t.coords[0]))+\" \"+j(parseFloat(t.coords[1]))+\" \";2===t.type?a+=j(parseFloat(t.coords[2]))+\" \"+j(parseFloat(t.coords[3])):a+=j(parseFloat(t.coords[2]))+\" \"+j(parseFloat(t.coords[3]))+\" \"+j(parseFloat(t.coords[4]))+\" \"+j(parseFloat(t.coords[5])),ht(a+=\"]\"),t.matrix&&ht(\"/Matrix [\"+t.matrix.toString()+\"]\"),ht(\"/Function \"+r+\" 0 R\"),ht(\"/Extend [true true]\"),ht(\">>\"),ht(\"endobj\")},fe=function(t,e){var r=Xt(),n=Jt();e.push({resourcesOid:r,objectOid:n}),t.objectNumber=n;var i=[];i.push({key:\"Type\",value:\"/Pattern\"}),i.push({key:\"PatternType\",value:\"1\"}),i.push({key:\"PaintType\",value:\"1\"}),i.push({key:\"TilingType\",value:\"1\"}),i.push({key:\"BBox\",value:\"[\"+t.boundingBox.map(j).join(\" \")+\"]\"}),i.push({key:\"XStep\",value:j(t.xStep)}),i.push({key:\"YStep\",value:j(t.yStep)}),i.push({key:\"Resources\",value:r+\" 0 R\"}),t.matrix&&i.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"}),ne({data:t.stream,additionalKeyValues:i,objectId:t.objectNumber}),ht(\"endobj\")},de=function(t){var e;for(e in jt)jt.hasOwnProperty(e)&&(jt[e]instanceof O?le(jt[e]):jt[e]instanceof B&&fe(jt[e],t))},pe=function(t){for(var e in t.objectNumber=Jt(),ht(\"<<\"),t)switch(e){case\"opacity\":ht(\"/ca \"+D(t[e]));break;case\"stroke-opacity\":ht(\"/CA \"+D(t[e]))}ht(\">>\"),ht(\"endobj\")},ge=function(){var t;for(t in Bt)Bt.hasOwnProperty(t)&&pe(Bt[t])},me=function(){for(var t in ht(\"/XObject <<\"),zt)zt.hasOwnProperty(t)&&zt[t].objectNumber>=0&&ht(\"/\"+t+\" \"+zt[t].objectNumber+\" 0 R\");Rt.publish(\"putXobjectDict\"),ht(\">>\")},ve=function(){Ge.oid=Jt(),ht(\"<<\"),ht(\"/Filter /Standard\"),ht(\"/V \"+Ge.v),ht(\"/R \"+Ge.r),ht(\"/U <\"+Ge.toHexString(Ge.U)+\">\"),ht(\"/O <\"+Ge.toHexString(Ge.O)+\">\"),ht(\"/P \"+Ge.P),ht(\">>\"),ht(\"endobj\")},be=function(){for(var t in ht(\"/Font <<\"),It)It.hasOwnProperty(t)&&(!1===m||!0===m&&v.hasOwnProperty(t))&&ht(\"/\"+t+\" \"+It[t].objectNumber+\" 0 R\");ht(\">>\")},ye=function(){if(Object.keys(jt).length>0){for(var t in ht(\"/Shading <<\"),jt)jt.hasOwnProperty(t)&&jt[t]instanceof O&&jt[t].objectNumber>=0&&ht(\"/\"+t+\" \"+jt[t].objectNumber+\" 0 R\");Rt.publish(\"putShadingPatternDict\"),ht(\">>\")}},we=function(t){if(Object.keys(jt).length>0){for(var e in ht(\"/Pattern <<\"),jt)jt.hasOwnProperty(e)&&jt[e]instanceof b.TilingPattern&&jt[e].objectNumber>=0&&jt[e].objectNumber<t&&ht(\"/\"+e+\" \"+jt[e].objectNumber+\" 0 R\");Rt.publish(\"putTilingPatternDict\"),ht(\">>\")}},Ne=function(){if(Object.keys(Bt).length>0){var t;for(t in ht(\"/ExtGState <<\"),Bt)Bt.hasOwnProperty(t)&&Bt[t].objectNumber>=0&&ht(\"/\"+t+\" \"+Bt[t].objectNumber+\" 0 R\");Rt.publish(\"putGStateDict\"),ht(\">>\")}},Le=function(t){Kt(t.resourcesOid,!0),ht(\"<<\"),ht(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"),be(),ye(),we(t.objectOid),Ne(),me(),ht(\">>\"),ht(\"endobj\")},Ae=function(){var t=[];se(),ge(),ue(),de(t),Rt.publish(\"putResources\"),t.forEach(Le),Le({resourcesOid:Qt,objectOid:Number.MAX_SAFE_INTEGER}),Rt.publish(\"postPutResources\")},xe=function(){Rt.publish(\"putAdditionalObjects\");for(var t=0;t<it.length;t++){var e=it[t];Kt(e.objId,!0),ht(e.content),ht(\"endobj\")}Rt.publish(\"postPutAdditionalObjects\")},Se=function(t){Ft[t.fontName]=Ft[t.fontName]||{},Ft[t.fontName][t.fontStyle]=t.id},_e=function(t,e,r,n,i){var a={id:\"F\"+(Object.keys(It).length+1).toString(10),postScriptName:t,fontName:e,fontStyle:r,encoding:n,isStandardFont:i||!1,metadata:{}};return Rt.publish(\"addFont\",{font:a,instance:this}),It[a.id]=a,Se(a),a.id},Pe=function(t){for(var e=0,r=dt.length;e<r;e++){var n=_e.call(this,t[e][0],t[e][1],t[e][2],dt[e][3],!0);!1===m&&(v[n]=!0);var i=t[e][0].split(\"-\");Se({id:n,fontName:i[0],fontStyle:i[1]||\"\"})}Rt.publish(\"addFonts\",{fonts:It,dictionary:Ft})},ke=function(t){return t.foo=function(){try{return t.apply(this,arguments)}catch(t){var e=t.stack||\"\";~e.indexOf(\" at \")&&(e=e.split(\" at \")[1]);var n=\"Error in function \"+e.split(\"\\n\")[0].split(\"<\")[0]+\": \"+t.message;if(!r.console)throw new Error(n);r.console.error(n,t),r.alert&&alert(n)}},t.foo.bar=t,t.foo},Ie=function(t,e){var r,n,i,a,o,s,c,u,h;if(i=(e=e||{}).sourceEncoding||\"Unicode\",o=e.outputEncoding,(e.autoencode||o)&&It[xt].metadata&&It[xt].metadata[i]&&It[xt].metadata[i].encoding&&(a=It[xt].metadata[i].encoding,!o&&It[xt].encoding&&(o=It[xt].encoding),!o&&a.codePages&&(o=a.codePages[0]),\"string\"==typeof o&&(o=a[o]),o)){for(c=!1,s=[],r=0,n=t.length;r<n;r++)(u=o[t.charCodeAt(r)])?s.push(String.fromCharCode(u)):s.push(t[r]),s[r].charCodeAt(0)>>8&&(c=!0);t=s.join(\"\")}for(r=t.length;void 0===c&&0!==r;)t.charCodeAt(r-1)>>8&&(c=!0),r--;if(!c)return t;for(s=e.noBOM?[]:[254,255],r=0,n=t.length;r<n;r++){if((h=(u=t.charCodeAt(r))>>8)>>8)throw new Error(\"Character at position \"+r+\" of string '\"+t+\"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");s.push(h),s.push(u-(h<<8))}return String.fromCharCode.apply(void 0,s)},Fe=b.__private__.pdfEscape=b.pdfEscape=function(t,e){return Ie(t,e).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},Ce=b.__private__.beginPage=function(t){at[++qt]=[],Dt[qt]={objId:0,contentsObjId:0,userUnit:Number(f),artBox:null,bleedBox:null,cropBox:null,trimBox:null,mediaBox:{bottomLeftX:0,bottomLeftY:0,topRightX:Number(t[0]),topRightY:Number(t[1])}},Be(qt),ut(at[Z])},je=function(t,e){var r,a,s;switch(n=e||n,\"string\"==typeof t&&(r=L(t.toLowerCase()),Array.isArray(r)&&(a=r[0],s=r[1])),Array.isArray(t)&&(a=t[0]*St,s=t[1]*St),isNaN(a)&&(a=o[0],s=o[1]),(a>14400||s>14400)&&(i.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"),a=Math.min(14400,a),s=Math.min(14400,s)),o=[a,s],n.substr(0,1)){case\"l\":s>a&&(o=[s,a]);break;case\"p\":a>s&&(o=[s,a])}Ce(o),dr(lr),ht(Nr),0!==Pr&&ht(Pr+\" J\"),0!==kr&&ht(kr+\" j\"),Rt.publish(\"addPage\",{pageNumber:qt})},Oe=function(t){t>0&&t<=qt&&(at.splice(t,1),Dt.splice(t,1),qt--,Z>qt&&(Z=qt),this.setPage(Z))},Be=function(t){t>0&&t<=qt&&(Z=t)},Me=b.__private__.getNumberOfPages=b.getNumberOfPages=function(){return at.length-1},Ee=function(t,e,r){var n,a=void 0;return r=r||{},t=void 0!==t?t:It[xt].fontName,e=void 0!==e?e:It[xt].fontStyle,n=t.toLowerCase(),void 0!==Ft[n]&&void 0!==Ft[n][e]?a=Ft[n][e]:void 0!==Ft[t]&&void 0!==Ft[t][e]?a=Ft[t][e]:!1===r.disableWarning&&i.warn(\"Unable to look up font label for font '\"+t+\"', '\"+e+\"'. Refer to getFontList() for available fonts.\"),a||r.noFallback||null==(a=Ft.times[e])&&(a=Ft.times.normal),a},qe=b.__private__.putInfo=function(){var t=Jt(),e=function(t){return t};for(var r in null!==g&&(e=Ge.encryptor(t,0)),ht(\"<<\"),ht(\"/Producer (\"+Fe(e(\"jsPDF \"+M.version))+\")\"),At)At.hasOwnProperty(r)&&At[r]&&ht(\"/\"+r.substr(0,1).toUpperCase()+r.substr(1)+\" (\"+Fe(e(At[r]))+\")\");ht(\"/CreationDate (\"+Fe(e(H))+\")\"),ht(\">>\"),ht(\"endobj\")},De=b.__private__.putCatalog=function(t){var e=(t=t||{}).rootDictionaryObjId||$t;switch(Jt(),ht(\"<<\"),ht(\"/Type /Catalog\"),ht(\"/Pages \"+e+\" 0 R\"),gt||(gt=\"fullwidth\"),gt){case\"fullwidth\":ht(\"/OpenAction [3 0 R /FitH null]\");break;case\"fullheight\":ht(\"/OpenAction [3 0 R /FitV null]\");break;case\"fullpage\":ht(\"/OpenAction [3 0 R /Fit]\");break;case\"original\":ht(\"/OpenAction [3 0 R /XYZ null null 1]\");break;default:var r=\"\"+gt;\"%\"===r.substr(r.length-1)&&(gt=parseInt(gt)/100),\"number\"==typeof gt&&ht(\"/OpenAction [3 0 R /XYZ null null \"+D(gt)+\"]\")}switch(wt||(wt=\"continuous\"),wt){case\"continuous\":ht(\"/PageLayout /OneColumn\");break;case\"single\":ht(\"/PageLayout /SinglePage\");break;case\"two\":case\"twoleft\":ht(\"/PageLayout /TwoColumnLeft\");break;case\"tworight\":ht(\"/PageLayout /TwoColumnRight\")}bt&&ht(\"/PageMode /\"+bt),Rt.publish(\"putCatalog\"),ht(\">>\"),ht(\"endobj\")},Re=b.__private__.putTrailer=function(){ht(\"trailer\"),ht(\"<<\"),ht(\"/Size \"+(tt+1)),ht(\"/Root \"+tt+\" 0 R\"),ht(\"/Info \"+(tt-1)+\" 0 R\"),null!==g&&ht(\"/Encrypt \"+Ge.oid+\" 0 R\"),ht(\"/ID [ <\"+W+\"> <\"+W+\"> ]\"),ht(\">>\")},Te=b.__private__.putHeader=function(){ht(\"%PDF-\"+y),ht(\"%ºß¬à \")},ze=b.__private__.putXRef=function(){var t=\"0000000000\";ht(\"xref\"),ht(\"0 \"+(tt+1)),ht(\"0000000000 65535 f \");for(var e=1;e<=tt;e++){\"function\"==typeof et[e]?ht((t+et[e]()).slice(-10)+\" 00000 n \"):void 0!==et[e]?ht((t+et[e]).slice(-10)+\" 00000 n \"):ht(\"0000000000 00000 n \")}},Ue=b.__private__.buildDocument=function(){ct(),ut(rt),Rt.publish(\"buildDocument\"),Te(),ae(),xe(),Ae(),null!==g&&ve(),qe(),De();var t=nt;return ze(),Re(),ht(\"startxref\"),ht(\"\"+t),ht(\"%%EOF\"),ut(at[Z]),rt.join(\"\\n\")},He=b.__private__.getBlob=function(t){return new Blob([ft(t)],{type:\"application/pdf\"})},We=b.output=b.__private__.output=ke((function(t,e){switch(\"string\"==typeof(e=e||{})?e={filename:e}:e.filename=e.filename||\"generated.pdf\",t){case void 0:return Ue();case\"save\":b.save(e.filename);break;case\"arraybuffer\":return ft(Ue());case\"blob\":return He(Ue());case\"bloburi\":case\"bloburl\":if(void 0!==r.URL&&\"function\"==typeof r.URL.createObjectURL)return r.URL&&r.URL.createObjectURL(He(Ue()))||void 0;i.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");break;case\"datauristring\":case\"dataurlstring\":var n=\"\",a=Ue();try{n=u(a)}catch(t){n=u(unescape(encodeURIComponent(a)))}return\"data:application/pdf;filename=\"+e.filename+\";base64,\"+n;case\"pdfobjectnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(r)){var o='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><script src=\"'+(e.pdfObjectUrl||\"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\")+'\"><\\/script><script >PDFObject.embed(\"'+this.output(\"dataurlstring\")+'\", '+JSON.stringify(e)+\");<\\/script></body></html>\",s=r.open();return null!==s&&s.document.write(o),s}throw new Error(\"The option pdfobjectnewwindow just works in a browser-environment.\");case\"pdfjsnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(r)){var c='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe id=\"pdfViewer\" src=\"'+(e.pdfJsUrl||\"examples/PDF.js/web/viewer.html\")+\"?file=&downloadName=\"+e.filename+'\" width=\"500px\" height=\"400px\" /></body></html>',h=r.open();if(null!==h){h.document.write(c);var l=this;h.document.documentElement.querySelector(\"#pdfViewer\").onload=function(){h.document.title=e.filename,h.document.documentElement.querySelector(\"#pdfViewer\").contentWindow.PDFViewerApplication.open(l.output(\"bloburl\"))}}return h}throw new Error(\"The option pdfjsnewwindow just works in a browser-environment.\");case\"dataurlnewwindow\":if(\"[object Window]\"!==Object.prototype.toString.call(r))throw new Error(\"The option dataurlnewwindow just works in a browser-environment.\");var f='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe src=\"'+this.output(\"datauristring\",e)+'\"></iframe></body></html>',d=r.open();if(null!==d&&(d.document.write(f),d.document.title=e.filename),d||\"undefined\"==typeof safari)return d;break;case\"datauri\":case\"dataurl\":return r.document.location.href=this.output(\"datauristring\",e);default:return null}})),Ve=function(t){return!0===Array.isArray(Tt)&&Tt.indexOf(t)>-1};switch(a){case\"pt\":St=1;break;case\"mm\":St=72/25.4;break;case\"cm\":St=72/2.54;break;case\"in\":St=72;break;case\"px\":St=1==Ve(\"px_scaling\")?.75:96/72;break;case\"pc\":case\"em\":St=12;break;case\"ex\":St=6;break;default:if(\"number\"!=typeof a)throw new Error(\"Invalid unit: \"+a);St=a}var Ge=null;X(),G();var Ye=function(t){return null!==g?Ge.encryptor(t,0):function(t){return t}},Je=b.__private__.getPageInfo=b.getPageInfo=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");return{objId:Dt[t].objId,pageNumber:t,pageContext:Dt[t]}},Xe=b.__private__.getPageInfoByObjId=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");for(var e in Dt)if(Dt[e].objId===t)break;return Je(e)},Ke=b.__private__.getCurrentPageInfo=b.getCurrentPageInfo=function(){return{objId:Dt[Z].objId,pageNumber:Z,pageContext:Dt[Z]}};b.addPage=function(){return je.apply(this,arguments),this},b.setPage=function(){return Be.apply(this,arguments),ut.call(this,at[Z]),this},b.insertPage=function(t){return this.addPage(),this.movePage(Z,t),this},b.movePage=function(t,e){var r,n;if(t>e){r=at[t],n=Dt[t];for(var i=t;i>e;i--)at[i]=at[i-1],Dt[i]=Dt[i-1];at[e]=r,Dt[e]=n,this.setPage(e)}else if(t<e){r=at[t],n=Dt[t];for(var a=t;a<e;a++)at[a]=at[a+1],Dt[a]=Dt[a+1];at[e]=r,Dt[e]=n,this.setPage(e)}return this},b.deletePage=function(){return Oe.apply(this,arguments),this},b.__private__.text=b.text=function(t,e,r,n,i){var a,o,s,c,u,h,l,f,d,p=(n=n||{}).scope||this;if(\"number\"==typeof t&&\"number\"==typeof e&&(\"string\"==typeof r||Array.isArray(r))){var g=r;r=e,e=t,t=g}if(arguments[3]instanceof Wt==!1?(s=arguments[4],c=arguments[5],\"object\"==typeof(l=arguments[3])&&null!==l||(\"string\"==typeof s&&(c=s,s=null),\"string\"==typeof l&&(c=l,l=null),\"number\"==typeof l&&(s=l,l=null),n={flags:l,angle:s,align:c})):(E(\"The transform parameter of text() with a Matrix value\"),d=i),isNaN(e)||isNaN(r)||null==t)throw new Error(\"Invalid arguments passed to jsPDF.text\");if(0===t.length)return p;var m=\"\",b=!1,y=\"number\"==typeof n.lineHeightFactor?n.lineHeightFactor:hr,w=p.internal.scaleFactor;function N(t){return t=t.split(\"\\t\").join(Array(n.TabLen||9).join(\" \")),Fe(t,l)}function L(t){for(var e,r=t.concat(),n=[],i=r.length;i--;)\"string\"==typeof(e=r.shift())?n.push(e):Array.isArray(t)&&(1===e.length||void 0===e[1]&&void 0===e[2])?n.push(e[0]):n.push([e[0],e[1],e[2]]);return n}function S(t,e){var r;if(\"string\"==typeof t)r=e(t)[0];else if(Array.isArray(t)){for(var n,i,a=t.concat(),o=[],s=a.length;s--;)\"string\"==typeof(n=a.shift())?o.push(e(n)[0]):Array.isArray(n)&&\"string\"==typeof n[0]&&(i=e(n[0],n[1],n[2]),o.push([i[0],i[1],i[2]]));r=o}return r}var _=!1,P=!0;if(\"string\"==typeof t)_=!0;else if(Array.isArray(t)){var k=t.concat();o=[];for(var I,F=k.length;F--;)(\"string\"!=typeof(I=k.shift())||Array.isArray(I)&&\"string\"!=typeof I[0])&&(P=!1);_=P}if(!1===_)throw new Error('Type of text must be string or Array. \"'+t+'\" is not recognized.');\"string\"==typeof t&&(t=t.match(/[\\r?\\n]/)?t.split(/\\r\\n|\\r|\\n/g):[t]);var C=pt/p.internal.scaleFactor,O=C*(y-1);switch(n.baseline){case\"bottom\":r-=O;break;case\"top\":r+=C-O;break;case\"hanging\":r+=C-2*O;break;case\"middle\":r+=C/2-O}if((h=n.maxWidth||0)>0&&(\"string\"==typeof t?t=p.splitTextToSize(t,h):\"[object Array]\"===Object.prototype.toString.call(t)&&(t=t.reduce((function(t,e){return t.concat(p.splitTextToSize(e,h))}),[]))),a={text:t,x:e,y:r,options:n,mutex:{pdfEscape:Fe,activeFontKey:xt,fonts:It,activeFontSize:pt}},Rt.publish(\"preProcessText\",a),t=a.text,s=(n=a.options).angle,d instanceof Wt==!1&&s&&\"number\"==typeof s){s*=Math.PI/180,0===n.rotationDirection&&(s=-s),x===A.ADVANCED&&(s=-s);var B=Math.cos(s),M=Math.sin(s);d=new Wt(B,M,-M,B,0,0)}else s&&s instanceof Wt&&(d=s);x!==A.ADVANCED||d||(d=Gt),void 0!==(u=n.charSpace||Sr)&&(m+=j(T(u))+\" Tc\\n\",this.setCharSpace(this.getCharSpace()||0)),void 0!==(f=n.horizontalScale)&&(m+=j(100*f)+\" Tz\\n\");n.lang;var q=-1,D=void 0!==n.renderingMode?n.renderingMode:n.stroke,R=p.internal.getCurrentPageInfo().pageContext;switch(D){case 0:case!1:case\"fill\":q=0;break;case 1:case!0:case\"stroke\":q=1;break;case 2:case\"fillThenStroke\":q=2;break;case 3:case\"invisible\":q=3;break;case 4:case\"fillAndAddForClipping\":q=4;break;case 5:case\"strokeAndAddPathForClipping\":q=5;break;case 6:case\"fillThenStrokeAndAddToPathForClipping\":q=6;break;case 7:case\"addToPathForClipping\":q=7}var z=void 0!==R.usedRenderingMode?R.usedRenderingMode:-1;-1!==q?m+=q+\" Tr\\n\":-1!==z&&(m+=\"0 Tr\\n\"),-1!==q&&(R.usedRenderingMode=q),c=n.align||\"left\";var U,H=pt*y,W=p.internal.pageSize.getWidth(),V=It[xt];u=n.charSpace||Sr,h=n.maxWidth||0,l=Object.assign({autoencode:!0,noBOM:!0},n.flags);var G=[];if(\"[object Array]\"===Object.prototype.toString.call(t)){var Y;o=L(t),\"left\"!==c&&(U=o.map((function(t){return p.getStringUnitWidth(t,{font:V,charSpace:u,fontSize:pt,doKerning:!1})*pt/w})));var J,X=0;if(\"right\"===c){e-=U[0],t=[],F=o.length;for(var K=0;K<F;K++)0===K?(J=vr(e),Y=br(r)):(J=T(X-U[K]),Y=-H),t.push([o[K],J,Y]),X=U[K]}else if(\"center\"===c){e-=U[0]/2,t=[],F=o.length;for(var Z=0;Z<F;Z++)0===Z?(J=vr(e),Y=br(r)):(J=T((X-U[Z])/2),Y=-H),t.push([o[Z],J,Y]),X=U[Z]}else if(\"left\"===c){t=[],F=o.length;for(var $=0;$<F;$++)t.push(o[$])}else{if(\"justify\"!==c)throw new Error('Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".');t=[],F=o.length,h=0!==h?h:W;for(var Q=0;Q<F;Q++)Y=0===Q?br(r):-H,J=0===Q?vr(e):0,Q<F-1?G.push(j(T((h-U[Q])/(o[Q].split(\" \").length-1)))):G.push(0),t.push([o[Q],J,Y])}}var tt=\"boolean\"==typeof n.R2L?n.R2L:vt;!0===tt&&(t=S(t,(function(t,e,r){return[t.split(\"\").reverse().join(\"\"),e,r]}))),a={text:t,x:e,y:r,options:n,mutex:{pdfEscape:Fe,activeFontKey:xt,fonts:It,activeFontSize:pt}},Rt.publish(\"postProcessText\",a),t=a.text,b=a.mutex.isHex||!1;var et=It[xt].encoding;\"WinAnsiEncoding\"!==et&&\"StandardEncoding\"!==et||(t=S(t,(function(t,e,r){return[N(t),e,r]}))),o=L(t),t=[];for(var rt,nt,it,at=0,ot=1,st=Array.isArray(o[0])?ot:at,ct=\"\",ut=function(t,e,r){var i=\"\";return r instanceof Wt?(r=\"number\"==typeof n.angle?Vt(r,new Wt(1,0,0,1,t,e)):Vt(new Wt(1,0,0,1,t,e),r),x===A.ADVANCED&&(r=Vt(new Wt(1,0,0,-1,0,0),r)),i=r.join(\" \")+\" Tm\\n\"):i=j(t)+\" \"+j(e)+\" Td\\n\",i},lt=0;lt<o.length;lt++){switch(ct=\"\",st){case ot:it=(b?\"<\":\"(\")+o[lt][0]+(b?\">\":\")\"),rt=parseFloat(o[lt][1]),nt=parseFloat(o[lt][2]);break;case at:it=(b?\"<\":\"(\")+o[lt]+(b?\">\":\")\"),rt=vr(e),nt=br(r)}void 0!==G&&void 0!==G[lt]&&(ct=G[lt]+\" Tw\\n\"),0===lt?t.push(ct+ut(rt,nt,d)+it):st===at?t.push(ct+it):st===ot&&t.push(ct+ut(rt,nt,d)+it)}t=st===at?t.join(\" Tj\\nT* \"):t.join(\" Tj\\n\"),t+=\" Tj\\n\";var ft=\"BT\\n/\";return ft+=xt+\" \"+pt+\" Tf\\n\",ft+=j(pt*y)+\" TL\\n\",ft+=Ar+\"\\n\",ft+=m,ft+=t,ht(ft+=\"ET\"),v[xt]=!0,p};var Ze=b.__private__.clip=b.clip=function(t){return ht(\"evenodd\"===t?\"W*\":\"W\"),this};b.clipEvenOdd=function(){return Ze(\"evenodd\")},b.__private__.discardPath=b.discardPath=function(){return ht(\"n\"),this};var $e=b.__private__.isValidStyle=function(t){var e=!1;return-1!==[void 0,null,\"S\",\"D\",\"F\",\"DF\",\"FD\",\"f\",\"f*\",\"B\",\"B*\",\"n\"].indexOf(t)&&(e=!0),e};b.__private__.setDefaultPathOperation=b.setDefaultPathOperation=function(t){return $e(t)&&(p=t),this};var Qe=b.__private__.getStyle=b.getStyle=function(t){var e=p;switch(t){case\"D\":case\"S\":e=\"S\";break;case\"F\":e=\"f\";break;case\"FD\":case\"DF\":e=\"B\";break;case\"f\":case\"f*\":case\"B\":case\"B*\":e=t}return e},tr=b.close=function(){return ht(\"h\"),this};b.stroke=function(){return ht(\"S\"),this},b.fill=function(t){return er(\"f\",t),this},b.fillEvenOdd=function(t){return er(\"f*\",t),this},b.fillStroke=function(t){return er(\"B\",t),this},b.fillStrokeEvenOdd=function(t){return er(\"B*\",t),this};var er=function(t,e){\"object\"==typeof e?ir(e,t):ht(t)},rr=function(t){null===t||x===A.ADVANCED&&void 0===t||(t=Qe(t),ht(t))};function nr(t,e,r,n,i){var a=new B(e||this.boundingBox,r||this.xStep,n||this.yStep,this.gState,i||this.matrix);a.stream=this.stream;var o=t+\"$$\"+this.cloneIndex+++\"$$\";return Yt(o,a),a}var ir=function(t,e){var r=Ot[t.key],n=jt[r];if(n instanceof O)ht(\"q\"),ht(ar(e)),n.gState&&b.setGState(n.gState),ht(t.matrix.toString()+\" cm\"),ht(\"/\"+r+\" sh\"),ht(\"Q\");else if(n instanceof B){var i=new Wt(1,0,0,-1,0,Dr());t.matrix&&(i=i.multiply(t.matrix||Gt),r=nr.call(n,t.key,t.boundingBox,t.xStep,t.yStep,i).id),ht(\"q\"),ht(\"/Pattern cs\"),ht(\"/\"+r+\" scn\"),n.gState&&b.setGState(n.gState),ht(e),ht(\"Q\")}},ar=function(t){switch(t){case\"f\":case\"F\":return\"W n\";case\"f*\":return\"W* n\";case\"B\":return\"W S\";case\"B*\":return\"W* S\";case\"S\":return\"W S\";case\"n\":return\"W n\"}},or=b.moveTo=function(t,e){return ht(j(T(t))+\" \"+j(U(e))+\" m\"),this},sr=b.lineTo=function(t,e){return ht(j(T(t))+\" \"+j(U(e))+\" l\"),this},cr=b.curveTo=function(t,e,r,n,i,a){return ht([j(T(t)),j(U(e)),j(T(r)),j(U(n)),j(T(i)),j(U(a)),\"c\"].join(\" \")),this};b.__private__.line=b.line=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!$e(i))throw new Error(\"Invalid arguments passed to jsPDF.line\");return x===A.COMPAT?this.lines([[r-t,n-e]],t,e,[1,1],i||\"S\"):this.lines([[r-t,n-e]],t,e,[1,1]).stroke()},b.__private__.lines=b.lines=function(t,e,r,n,i,a){var o,s,c,u,h,l,f,d,p,g,m,v;if(\"number\"==typeof t&&(v=r,r=e,e=t,t=v),n=n||[1,1],a=a||!1,isNaN(e)||isNaN(r)||!Array.isArray(t)||!Array.isArray(n)||!$e(i)||\"boolean\"!=typeof a)throw new Error(\"Invalid arguments passed to jsPDF.lines\");for(or(e,r),o=n[0],s=n[1],u=t.length,g=e,m=r,c=0;c<u;c++)2===(h=t[c]).length?(g=h[0]*o+g,m=h[1]*s+m,sr(g,m)):(l=h[0]*o+g,f=h[1]*s+m,d=h[2]*o+g,p=h[3]*s+m,g=h[4]*o+g,m=h[5]*s+m,cr(l,f,d,p,g,m));return a&&tr(),rr(i),this},b.path=function(t){for(var e=0;e<t.length;e++){var r=t[e],n=r.c;switch(r.op){case\"m\":or(n[0],n[1]);break;case\"l\":sr(n[0],n[1]);break;case\"c\":cr.apply(this,n);break;case\"h\":tr()}}return this},b.__private__.rect=b.rect=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!$e(i))throw new Error(\"Invalid arguments passed to jsPDF.rect\");return x===A.COMPAT&&(n=-n),ht([j(T(t)),j(U(e)),j(T(r)),j(T(n)),\"re\"].join(\" \")),rr(i),this},b.__private__.triangle=b.triangle=function(t,e,r,n,i,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a)||!$e(o))throw new Error(\"Invalid arguments passed to jsPDF.triangle\");return this.lines([[r-t,n-e],[i-r,a-n],[t-i,e-a]],t,e,[1,1],o,!0),this},b.__private__.roundedRect=b.roundedRect=function(t,e,r,n,i,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a)||!$e(o))throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");var s=4/3*(Math.SQRT2-1);return i=Math.min(i,.5*r),a=Math.min(a,.5*n),this.lines([[r-2*i,0],[i*s,0,i,a-a*s,i,a],[0,n-2*a],[0,a*s,-i*s,a,-i,a],[2*i-r,0],[-i*s,0,-i,-a*s,-i,-a],[0,2*a-n],[0,-a*s,i*s,-a,i,-a]],t+i,e,[1,1],o,!0),this},b.__private__.ellipse=b.ellipse=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!$e(i))throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");var a=4/3*(Math.SQRT2-1)*r,o=4/3*(Math.SQRT2-1)*n;return or(t+r,e),cr(t+r,e-o,t+a,e-n,t,e-n),cr(t-a,e-n,t-r,e-o,t-r,e),cr(t-r,e+o,t-a,e+n,t,e+n),cr(t+a,e+n,t+r,e+o,t+r,e),rr(i),this},b.__private__.circle=b.circle=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||!$e(n))throw new Error(\"Invalid arguments passed to jsPDF.circle\");return this.ellipse(t,e,r,r,n)},b.setFont=function(t,e,r){return r&&(e=P(e,r)),xt=Ee(t,e,{disableWarning:!1}),this};var ur=b.__private__.getFont=b.getFont=function(){return It[Ee.apply(b,arguments)]};b.__private__.getFontList=b.getFontList=function(){var t,e,r={};for(t in Ft)if(Ft.hasOwnProperty(t))for(e in r[t]=[],Ft[t])Ft[t].hasOwnProperty(e)&&r[t].push(e);return r},b.addFont=function(t,e,r,n,i){var a=[\"StandardEncoding\",\"MacRomanEncoding\",\"Identity-H\",\"WinAnsiEncoding\"];return arguments[3]&&-1!==a.indexOf(arguments[3])?i=arguments[3]:arguments[3]&&-1==a.indexOf(arguments[3])&&(r=P(r,n)),i=i||\"Identity-H\",_e.call(this,t,e,r,i)};var hr,lr=t.lineWidth||.200025,fr=b.__private__.getLineWidth=b.getLineWidth=function(){return lr},dr=b.__private__.setLineWidth=b.setLineWidth=function(t){return lr=t,ht(j(T(t))+\" w\"),this};b.__private__.setLineDash=M.API.setLineDash=M.API.setLineDashPattern=function(t,e){if(t=t||[],e=e||0,isNaN(e)||!Array.isArray(t))throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");return t=t.map((function(t){return j(T(t))})).join(\" \"),e=j(T(e)),ht(\"[\"+t+\"] \"+e+\" d\"),this};var pr=b.__private__.getLineHeight=b.getLineHeight=function(){return pt*hr};b.__private__.getLineHeight=b.getLineHeight=function(){return pt*hr};var gr=b.__private__.setLineHeightFactor=b.setLineHeightFactor=function(t){return\"number\"==typeof(t=t||1.15)&&(hr=t),this},mr=b.__private__.getLineHeightFactor=b.getLineHeightFactor=function(){return hr};gr(t.lineHeight);var vr=b.__private__.getHorizontalCoordinate=function(t){return T(t)},br=b.__private__.getVerticalCoordinate=function(t){return x===A.ADVANCED?t:Dt[Z].mediaBox.topRightY-Dt[Z].mediaBox.bottomLeftY-T(t)},yr=b.__private__.getHorizontalCoordinateString=b.getHorizontalCoordinateString=function(t){return j(vr(t))},wr=b.__private__.getVerticalCoordinateString=b.getVerticalCoordinateString=function(t){return j(br(t))},Nr=t.strokeColor||\"0 G\";b.__private__.getStrokeColor=b.getDrawColor=function(){return te(Nr)},b.__private__.setStrokeColor=b.setDrawColor=function(t,e,r,n){return Nr=ee({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"draw\",precision:2}),ht(Nr),this};var Lr=t.fillColor||\"0 g\";b.__private__.getFillColor=b.getFillColor=function(){return te(Lr)},b.__private__.setFillColor=b.setFillColor=function(t,e,r,n){return Lr=ee({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"fill\",precision:2}),ht(Lr),this};var Ar=t.textColor||\"0 g\",xr=b.__private__.getTextColor=b.getTextColor=function(){return te(Ar)};b.__private__.setTextColor=b.setTextColor=function(t,e,r,n){return Ar=ee({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"text\",precision:3}),this};var Sr=t.charSpace,_r=b.__private__.getCharSpace=b.getCharSpace=function(){return parseFloat(Sr||0)};b.__private__.setCharSpace=b.setCharSpace=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");return Sr=t,this};var Pr=0;b.CapJoinStyles={0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2},b.__private__.setLineCap=b.setLineCap=function(t){var e=b.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line cap style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return Pr=e,ht(e+\" J\"),this};var kr=0;b.__private__.setLineJoin=b.setLineJoin=function(t){var e=b.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line join style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return kr=e,ht(e+\" j\"),this},b.__private__.setLineMiterLimit=b.__private__.setMiterLimit=b.setLineMiterLimit=b.setMiterLimit=function(t){if(t=t||0,isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");return ht(j(T(t))+\" M\"),this},b.GState=C,b.setGState=function(t){(t=\"string\"==typeof t?Bt[Mt[t]]:Ir(null,t)).equals(Et)||(ht(\"/\"+t.id+\" gs\"),Et=t)};var Ir=function(t,e){if(!t||!Mt[t]){var r=!1;for(var n in Bt)if(Bt.hasOwnProperty(n)&&Bt[n].equals(e)){r=!0;break}if(r)e=Bt[n];else{var i=\"GS\"+(Object.keys(Bt).length+1).toString(10);Bt[i]=e,e.id=i}return t&&(Mt[t]=e.id),Rt.publish(\"addGState\",e),e}};b.addGState=function(t,e){return Ir(t,e),this},b.saveGraphicsState=function(){return ht(\"q\"),Ct.push({key:xt,size:pt,color:Ar}),this},b.restoreGraphicsState=function(){ht(\"Q\");var t=Ct.pop();return xt=t.key,pt=t.size,Ar=t.color,Et=null,this},b.setCurrentTransformationMatrix=function(t){return ht(t.toString()+\" cm\"),this},b.comment=function(t){return ht(\"#\"+t),this};var Fr=function(t,e){var r=t||0;Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return r},set:function(t){isNaN(t)||(r=parseFloat(t))}});var n=e||0;Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return n},set:function(t){isNaN(t)||(n=parseFloat(t))}});var i=\"pt\";return Object.defineProperty(this,\"type\",{enumerable:!0,get:function(){return i},set:function(t){i=t.toString()}}),this},Cr=function(t,e,r,n){Fr.call(this,t,e),this.type=\"rect\";var i=r||0;Object.defineProperty(this,\"w\",{enumerable:!0,get:function(){return i},set:function(t){isNaN(t)||(i=parseFloat(t))}});var a=n||0;return Object.defineProperty(this,\"h\",{enumerable:!0,get:function(){return a},set:function(t){isNaN(t)||(a=parseFloat(t))}}),this},jr=function(){this.page=qt,this.currentPage=Z,this.pages=at.slice(0),this.pagesContext=Dt.slice(0),this.x=_t,this.y=Pt,this.matrix=kt,this.width=Er(Z),this.height=Dr(Z),this.outputDestination=st,this.id=\"\",this.objectNumber=-1};jr.prototype.restore=function(){qt=this.page,Z=this.currentPage,Dt=this.pagesContext,at=this.pages,_t=this.x,Pt=this.y,kt=this.matrix,qr(Z,this.width),Rr(Z,this.height),st=this.outputDestination};var Or=function(t,e,r,n,i){Ht.push(new jr),qt=Z=0,at=[],_t=t,Pt=e,kt=i,Ce([r,n])},Br=function(t){if(Ut[t])Ht.pop().restore();else{var e=new jr,r=\"Xo\"+(Object.keys(zt).length+1).toString(10);e.id=r,Ut[t]=r,zt[r]=e,Rt.publish(\"addFormObject\",e),Ht.pop().restore()}};for(var Mr in b.beginFormObject=function(t,e,r,n,i){return Or(t,e,r,n,i),this},b.endFormObject=function(t){return Br(t),this},b.doFormObject=function(t,e){var r=zt[Ut[t]];return ht(\"q\"),ht(e.toString()+\" cm\"),ht(\"/\"+r.id+\" Do\"),ht(\"Q\"),this},b.getFormObject=function(t){var e=zt[Ut[t]];return{x:e.x,y:e.y,width:e.width,height:e.height,matrix:e.matrix}},b.save=function(t,e){return t=t||\"generated.pdf\",(e=e||{}).returnPromise=e.returnPromise||!1,!1===e.returnPromise?(h(He(Ue()),t),\"function\"==typeof h.unload&&r.setTimeout&&setTimeout(h.unload,911),this):new Promise((function(e,n){try{var i=h(He(Ue()),t);\"function\"==typeof h.unload&&r.setTimeout&&setTimeout(h.unload,911),e(i)}catch(t){n(t.message)}}))},M.API)M.API.hasOwnProperty(Mr)&&(\"events\"===Mr&&M.API.events.length?function(t,e){var r,n,i;for(i=e.length-1;-1!==i;i--)r=e[i][0],n=e[i][1],t.subscribe.apply(t,[r].concat(\"function\"==typeof n?[n]:n))}(Rt,M.API.events):b[Mr]=M.API[Mr]);var Er=b.getPageWidth=function(t){return(Dt[t=t||Z].mediaBox.topRightX-Dt[t].mediaBox.bottomLeftX)/St},qr=b.setPageWidth=function(t,e){Dt[t].mediaBox.topRightX=e*St+Dt[t].mediaBox.bottomLeftX},Dr=b.getPageHeight=function(t){return(Dt[t=t||Z].mediaBox.topRightY-Dt[t].mediaBox.bottomLeftY)/St},Rr=b.setPageHeight=function(t,e){Dt[t].mediaBox.topRightY=e*St+Dt[t].mediaBox.bottomLeftY};return b.internal={pdfEscape:Fe,getStyle:Qe,getFont:ur,getFontSize:mt,getCharSpace:_r,getTextColor:xr,getLineHeight:pr,getLineHeightFactor:mr,getLineWidth:fr,write:lt,getHorizontalCoordinate:vr,getVerticalCoordinate:br,getCoordinateString:yr,getVerticalCoordinateString:wr,collections:{},newObject:Jt,newAdditionalObject:Zt,newObjectDeferred:Xt,newObjectDeferredBegin:Kt,getFilters:re,putStream:ne,events:Rt,scaleFactor:St,pageSize:{getWidth:function(){return Er(Z)},setWidth:function(t){qr(Z,t)},getHeight:function(){return Dr(Z)},setHeight:function(t){Rr(Z,t)}},encryptionOptions:g,encryption:Ge,getEncryptor:Ye,output:We,getNumberOfPages:Me,pages:at,out:ht,f2:D,f3:R,getPageInfo:Je,getPageInfoByObjId:Xe,getCurrentPageInfo:Ke,getPDFVersion:w,Point:Fr,Rectangle:Cr,Matrix:Wt,hasHotfix:Ve},Object.defineProperty(b.internal.pageSize,\"width\",{get:function(){return Er(Z)},set:function(t){qr(Z,t)},enumerable:!0,configurable:!0}),Object.defineProperty(b.internal.pageSize,\"height\",{get:function(){return Dr(Z)},set:function(t){Rr(Z,t)},enumerable:!0,configurable:!0}),Pe.call(b,dt),xt=\"F1\",je(o,n),Rt.publish(\"initialized\"),b}k.prototype.lsbFirstWord=function(t){return String.fromCharCode(t>>0&255,t>>8&255,t>>16&255,t>>24&255)},k.prototype.toHexString=function(t){return t.split(\"\").map((function(t){return(\"0\"+(255&t.charCodeAt(0)).toString(16)).slice(-2)})).join(\"\")},k.prototype.hexToBytes=function(t){for(var e=[],r=0;r<t.length;r+=2)e.push(String.fromCharCode(parseInt(t.substr(r,2),16)));return e.join(\"\")},k.prototype.processOwnerPassword=function(t,e){return _(A(e).substr(0,5),t)},k.prototype.encryptor=function(t,e){var r=A(this.encryptionKey+String.fromCharCode(255&t,t>>8&255,t>>16&255,255&e,e>>8&255)).substr(0,10);return function(t){return _(r,t)}},C.prototype.equals=function(t){var e,r=\"id,objectNumber,equals\";if(!t||typeof t!=typeof this)return!1;var n=0;for(e in this)if(!(r.indexOf(e)>=0)){if(this.hasOwnProperty(e)&&!t.hasOwnProperty(e))return!1;if(this[e]!==t[e])return!1;n++}for(e in t)t.hasOwnProperty(e)&&r.indexOf(e)<0&&n--;return 0===n},M.API={events:[]},M.version=\"2.5.0\";var E=M.API,q=1,D=function(t){return t.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},R=function(t){return t.replace(/\\\\\\\\/g,\"\\\\\").replace(/\\\\\\(/g,\"(\").replace(/\\\\\\)/g,\")\")},T=function(t){return t.toFixed(2)},z=function(t){return t.toFixed(5)};E.__acroform__={};var U=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t},H=function(t){return t*q},W=function(t){var e=new ct,r=Lt.internal.getHeight(t)||0,n=Lt.internal.getWidth(t)||0;return e.BBox=[0,0,Number(T(n)),Number(T(r))],e},V=E.__acroform__.setBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBit\");return t|=1<<e},G=E.__acroform__.clearBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\");return t&=~(1<<e)},Y=E.__acroform__.getBit=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBit\");return 0==(t&1<<e)?0:1},J=E.__acroform__.getBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\");return Y(t,e-1)},X=E.__acroform__.setBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\");return V(t,e-1)},K=E.__acroform__.clearBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\");return G(t,e-1)},Z=E.__acroform__.calculateCoordinates=function(t,e){var r=e.internal.getHorizontalCoordinate,n=e.internal.getVerticalCoordinate,i=t[0],a=t[1],o=t[2],s=t[3],c={};return c.lowerLeft_X=r(i)||0,c.lowerLeft_Y=n(a+s)||0,c.upperRight_X=r(i+o)||0,c.upperRight_Y=n(a)||0,[Number(T(c.lowerLeft_X)),Number(T(c.lowerLeft_Y)),Number(T(c.upperRight_X)),Number(T(c.upperRight_Y))]},$=function(t){if(t.appearanceStreamContent)return t.appearanceStreamContent;if(t.V||t.DV){var e=[],r=t._V||t.DV,n=Q(t,r),i=t.scope.internal.getFont(t.fontName,t.fontStyle).id;e.push(\"/Tx BMC\"),e.push(\"q\"),e.push(\"BT\"),e.push(t.scope.__private__.encodeColorString(t.color)),e.push(\"/\"+i+\" \"+T(n.fontSize)+\" Tf\"),e.push(\"1 0 0 1 0 0 Tm\"),e.push(n.text),e.push(\"ET\"),e.push(\"Q\"),e.push(\"EMC\");var a=W(t);return a.scope=t.scope,a.stream=e.join(\"\\n\"),a}},Q=function(t,e){var r=0===t.fontSize?t.maxFontSize:t.fontSize,n={text:\"\",fontSize:\"\"},i=(e=\")\"==(e=\"(\"==e.substr(0,1)?e.substr(1):e).substr(e.length-1)?e.substr(0,e.length-1):e).split(\" \");i=t.multiline?i.map((function(t){return t.split(\"\\n\")})):i.map((function(t){return[t]}));var a=r,o=Lt.internal.getHeight(t)||0;o=o<0?-o:o;var s=Lt.internal.getWidth(t)||0;s=s<0?-s:s;var c=function(e,r,n){if(e+1<i.length){var a=r+\" \"+i[e+1][0];return tt(a,t,n).width<=s-4}return!1};a++;t:for(;a>0;){e=\"\",a--;var u,h,l=tt(\"3\",t,a).height,f=t.multiline?o-a:(o-l)/2,d=f+=2,p=0,g=0,m=0;if(a<=0){e=\"(...) Tj\\n\",e+=\"% Width of Text: \"+tt(e,t,a=12).width+\", FieldWidth:\"+s+\"\\n\";break}for(var v=\"\",b=0,y=0;y<i.length;y++)if(i.hasOwnProperty(y)){var w=!1;if(1!==i[y].length&&m!==i[y].length-1){if((l+2)*(b+2)+2>o)continue t;v+=i[y][m],w=!0,g=y,y--}else{v=\" \"==(v+=i[y][m]+\" \").substr(v.length-1)?v.substr(0,v.length-1):v;var N=parseInt(y),L=c(N,v,a),A=y>=i.length-1;if(L&&!A){v+=\" \",m=0;continue}if(L||A){if(A)g=N;else if(t.multiline&&(l+2)*(b+2)+2>o)continue t}else{if(!t.multiline)continue t;if((l+2)*(b+2)+2>o)continue t;g=N}}for(var x=\"\",S=p;S<=g;S++){var _=i[S];if(t.multiline){if(S===g){x+=_[m]+\" \",m=(m+1)%_.length;continue}if(S===p){x+=_[_.length-1]+\" \";continue}}x+=_[0]+\" \"}switch(x=\" \"==x.substr(x.length-1)?x.substr(0,x.length-1):x,h=tt(x,t,a).width,t.textAlign){case\"right\":u=s-h-2;break;case\"center\":u=(s-h)/2;break;case\"left\":default:u=2}e+=T(u)+\" \"+T(d)+\" Td\\n\",e+=\"(\"+D(x)+\") Tj\\n\",e+=-T(u)+\" 0 Td\\n\",d=-(a+2),h=0,p=w?g:g+1,b++,v=\"\"}else;break}return n.text=e,n.fontSize=a,n},tt=function(t,e,r){var n=e.scope.internal.getFont(e.fontName,e.fontStyle),i=e.scope.getStringUnitWidth(t,{font:n,fontSize:parseFloat(r),charSpace:0})*parseFloat(r);return{height:e.scope.getStringUnitWidth(\"3\",{font:n,fontSize:parseFloat(r),charSpace:0})*parseFloat(r)*1.5,width:i}},et={fields:[],xForms:[],acroFormDictionaryRoot:null,printedOut:!1,internal:null,isInitialized:!1},rt=function(t,e){var r={type:\"reference\",object:t};void 0===e.internal.getPageInfo(t.page).pageContext.annotations.find((function(t){return t.type===r.type&&t.object===r.object}))&&e.internal.getPageInfo(t.page).pageContext.annotations.push(r)},nt=function(t,e){for(var r in t)if(t.hasOwnProperty(r)){var n=r,i=t[r];e.internal.newObjectDeferredBegin(i.objId,!0),\"object\"==typeof i&&\"function\"==typeof i.putStream&&i.putStream(),delete t[n]}},it=function(t,e){if(e.scope=t,void 0!==t.internal&&(void 0===t.internal.acroformPlugin||!1===t.internal.acroformPlugin.isInitialized)){if(ht.FieldNum=0,t.internal.acroformPlugin=JSON.parse(JSON.stringify(et)),t.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"Exception while creating AcroformDictionary\");q=t.internal.scaleFactor,t.internal.acroformPlugin.acroFormDictionaryRoot=new ut,t.internal.acroformPlugin.acroFormDictionaryRoot.scope=t,t.internal.acroformPlugin.acroFormDictionaryRoot._eventID=t.internal.events.subscribe(\"postPutResources\",(function(){!function(t){t.internal.events.unsubscribe(t.internal.acroformPlugin.acroFormDictionaryRoot._eventID),delete t.internal.acroformPlugin.acroFormDictionaryRoot._eventID,t.internal.acroformPlugin.printedOut=!0}(t)})),t.internal.events.subscribe(\"buildDocument\",(function(){!function(t){t.internal.acroformPlugin.acroFormDictionaryRoot.objId=void 0;var e=t.internal.acroformPlugin.acroFormDictionaryRoot.Fields;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];n.objId=void 0,n.hasAnnotation&&rt(n,t)}}(t)})),t.internal.events.subscribe(\"putCatalog\",(function(){!function(t){if(void 0===t.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"putCatalogCallback: Root missing.\");t.internal.write(\"/AcroForm \"+t.internal.acroformPlugin.acroFormDictionaryRoot.objId+\" 0 R\")}(t)})),t.internal.events.subscribe(\"postPutPages\",(function(e){!function(t,e){var r=!t;for(var n in t||(e.internal.newObjectDeferredBegin(e.internal.acroformPlugin.acroFormDictionaryRoot.objId,!0),e.internal.acroformPlugin.acroFormDictionaryRoot.putStream()),t=t||e.internal.acroformPlugin.acroFormDictionaryRoot.Kids)if(t.hasOwnProperty(n)){var i=t[n],a=[],o=i.Rect;if(i.Rect&&(i.Rect=Z(i.Rect,e)),e.internal.newObjectDeferredBegin(i.objId,!0),i.DA=Lt.createDefaultAppearanceStream(i),\"object\"==typeof i&&\"function\"==typeof i.getKeyValueListForStream&&(a=i.getKeyValueListForStream()),i.Rect=o,i.hasAppearanceStream&&!i.appearanceStreamContent){var s=$(i);a.push({key:\"AP\",value:\"<</N \"+s+\">>\"}),e.internal.acroformPlugin.xForms.push(s)}if(i.appearanceStreamContent){var c=\"\";for(var u in i.appearanceStreamContent)if(i.appearanceStreamContent.hasOwnProperty(u)){var h=i.appearanceStreamContent[u];if(c+=\"/\"+u+\" \",c+=\"<<\",Object.keys(h).length>=1||Array.isArray(h)){for(var n in h)if(h.hasOwnProperty(n)){var l=h[n];\"function\"==typeof l&&(l=l.call(e,i)),c+=\"/\"+n+\" \"+l+\" \",e.internal.acroformPlugin.xForms.indexOf(l)>=0||e.internal.acroformPlugin.xForms.push(l)}}else\"function\"==typeof(l=h)&&(l=l.call(e,i)),c+=\"/\"+n+\" \"+l,e.internal.acroformPlugin.xForms.indexOf(l)>=0||e.internal.acroformPlugin.xForms.push(l);c+=\">>\"}a.push({key:\"AP\",value:\"<<\\n\"+c+\">>\"})}e.internal.putStream({additionalKeyValues:a,objectId:i.objId}),e.internal.out(\"endobj\")}r&&nt(e.internal.acroformPlugin.xForms,e)}(e,t)})),t.internal.acroformPlugin.isInitialized=!0}},at=E.__acroform__.arrayToPdfArray=function(t,e,r){var n=function(t){return t};if(Array.isArray(t)){for(var i=\"[\",a=0;a<t.length;a++)switch(0!==a&&(i+=\" \"),typeof t[a]){case\"boolean\":case\"number\":case\"object\":i+=t[a].toString();break;case\"string\":\"/\"!==t[a].substr(0,1)?(void 0!==e&&r&&(n=r.internal.getEncryptor(e)),i+=\"(\"+D(n(t[a].toString()))+\")\"):i+=t[a].toString()}return i+=\"]\"}throw new Error(\"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\")};var ot=function(t,e,r){var n=function(t){return t};return void 0!==e&&r&&(n=r.internal.getEncryptor(e)),(t=t||\"\").toString(),t=\"(\"+D(n(t))+\")\"},st=function(){this._objId=void 0,this._scope=void 0,Object.defineProperty(this,\"objId\",{get:function(){if(void 0===this._objId){if(void 0===this.scope)return;this._objId=this.scope.internal.newObjectDeferred()}return this._objId},set:function(t){this._objId=t}}),Object.defineProperty(this,\"scope\",{value:this._scope,writable:!0})};st.prototype.toString=function(){return this.objId+\" 0 R\"},st.prototype.putStream=function(){var t=this.getKeyValueListForStream();this.scope.internal.putStream({data:this.stream,additionalKeyValues:t,objectId:this.objId}),this.scope.internal.out(\"endobj\")},st.prototype.getKeyValueListForStream=function(){var t=[],e=Object.getOwnPropertyNames(this).filter((function(t){return\"content\"!=t&&\"appearanceStreamContent\"!=t&&\"scope\"!=t&&\"objId\"!=t&&\"_\"!=t.substring(0,1)}));for(var r in e)if(!1===Object.getOwnPropertyDescriptor(this,e[r]).configurable){var n=e[r],i=this[n];i&&(Array.isArray(i)?t.push({key:n,value:at(i,this.objId,this.scope)}):i instanceof st?(i.scope=this.scope,t.push({key:n,value:i.objId+\" 0 R\"})):\"function\"!=typeof i&&t.push({key:n,value:i}))}return t};var ct=function(){st.call(this),Object.defineProperty(this,\"Type\",{value:\"/XObject\",configurable:!1,writable:!0}),Object.defineProperty(this,\"Subtype\",{value:\"/Form\",configurable:!1,writable:!0}),Object.defineProperty(this,\"FormType\",{value:1,configurable:!1,writable:!0});var t,e=[];Object.defineProperty(this,\"BBox\",{configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"Resources\",{value:\"2 0 R\",configurable:!1,writable:!0}),Object.defineProperty(this,\"stream\",{enumerable:!1,configurable:!0,set:function(e){t=e.trim()},get:function(){return t||null}})};U(ct,st);var ut=function(){st.call(this);var t,e=[];Object.defineProperty(this,\"Kids\",{enumerable:!1,configurable:!0,get:function(){return e.length>0?e:void 0}}),Object.defineProperty(this,\"Fields\",{enumerable:!1,configurable:!1,get:function(){return e}}),Object.defineProperty(this,\"DA\",{enumerable:!1,configurable:!1,get:function(){if(t){var e=function(t){return t};return this.scope&&(e=this.scope.internal.getEncryptor(this.objId)),\"(\"+D(e(t))+\")\"}},set:function(e){t=e}})};U(ut,st);var ht=function t(){st.call(this);var e=4;Object.defineProperty(this,\"F\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute F supplied.');e=t}}),Object.defineProperty(this,\"showWhenPrinted\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(e,3))},set:function(t){!0===Boolean(t)?this.F=X(e,3):this.F=K(e,3)}});var r=0;Object.defineProperty(this,\"Ff\",{enumerable:!1,configurable:!1,get:function(){return r},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute Ff supplied.');r=t}});var n=[];Object.defineProperty(this,\"Rect\",{enumerable:!1,configurable:!1,get:function(){if(0!==n.length)return n},set:function(t){n=void 0!==t?t:[]}}),Object.defineProperty(this,\"x\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[0])?0:n[0]},set:function(t){n[0]=t}}),Object.defineProperty(this,\"y\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[1])?0:n[1]},set:function(t){n[1]=t}}),Object.defineProperty(this,\"width\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[2])?0:n[2]},set:function(t){n[2]=t}}),Object.defineProperty(this,\"height\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[3])?0:n[3]},set:function(t){n[3]=t}});var i=\"\";Object.defineProperty(this,\"FT\",{enumerable:!0,configurable:!1,get:function(){return i},set:function(t){switch(t){case\"/Btn\":case\"/Tx\":case\"/Ch\":case\"/Sig\":i=t;break;default:throw new Error('Invalid value \"'+t+'\" for attribute FT supplied.')}}});var a=null;Object.defineProperty(this,\"T\",{enumerable:!0,configurable:!1,get:function(){if(!a||a.length<1){if(this instanceof bt)return;a=\"FieldObject\"+t.FieldNum++}var e=function(t){return t};return this.scope&&(e=this.scope.internal.getEncryptor(this.objId)),\"(\"+D(e(a))+\")\"},set:function(t){a=t.toString()}}),Object.defineProperty(this,\"fieldName\",{configurable:!0,enumerable:!0,get:function(){return a},set:function(t){a=t}});var o=\"helvetica\";Object.defineProperty(this,\"fontName\",{enumerable:!0,configurable:!0,get:function(){return o},set:function(t){o=t}});var s=\"normal\";Object.defineProperty(this,\"fontStyle\",{enumerable:!0,configurable:!0,get:function(){return s},set:function(t){s=t}});var c=0;Object.defineProperty(this,\"fontSize\",{enumerable:!0,configurable:!0,get:function(){return c},set:function(t){c=t}});var u=void 0;Object.defineProperty(this,\"maxFontSize\",{enumerable:!0,configurable:!0,get:function(){return void 0===u?50/q:u},set:function(t){u=t}});var h=\"black\";Object.defineProperty(this,\"color\",{enumerable:!0,configurable:!0,get:function(){return h},set:function(t){h=t}});var l=\"/F1 0 Tf 0 g\";Object.defineProperty(this,\"DA\",{enumerable:!0,configurable:!1,get:function(){if(!(!l||this instanceof bt||this instanceof wt))return ot(l,this.objId,this.scope)},set:function(t){t=t.toString(),l=t}});var f=null;Object.defineProperty(this,\"DV\",{enumerable:!1,configurable:!1,get:function(){if(f)return this instanceof gt==!1?ot(f,this.objId,this.scope):f},set:function(t){t=t.toString(),f=this instanceof gt==!1?\"(\"===t.substr(0,1)?R(t.substr(1,t.length-2)):R(t):t}}),Object.defineProperty(this,\"defaultValue\",{enumerable:!0,configurable:!0,get:function(){return this instanceof gt==!0?R(f.substr(1,f.length-1)):f},set:function(t){t=t.toString(),f=this instanceof gt==!0?\"/\"+t:t}});var d=null;Object.defineProperty(this,\"_V\",{enumerable:!1,configurable:!1,get:function(){if(d)return d},set:function(t){this.V=t}}),Object.defineProperty(this,\"V\",{enumerable:!1,configurable:!1,get:function(){if(d)return this instanceof gt==!1?ot(d,this.objId,this.scope):d},set:function(t){t=t.toString(),d=this instanceof gt==!1?\"(\"===t.substr(0,1)?R(t.substr(1,t.length-2)):R(t):t}}),Object.defineProperty(this,\"value\",{enumerable:!0,configurable:!0,get:function(){return this instanceof gt==!0?R(d.substr(1,d.length-1)):d},set:function(t){t=t.toString(),d=this instanceof gt==!0?\"/\"+t:t}}),Object.defineProperty(this,\"hasAnnotation\",{enumerable:!0,configurable:!0,get:function(){return this.Rect}}),Object.defineProperty(this,\"Type\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Annot\":null}}),Object.defineProperty(this,\"Subtype\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Widget\":null}});var p,g=!1;Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return g},set:function(t){t=Boolean(t),g=t}}),Object.defineProperty(this,\"page\",{enumerable:!0,configurable:!0,get:function(){if(p)return p},set:function(t){p=t}}),Object.defineProperty(this,\"readOnly\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,1))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,1):this.Ff=K(this.Ff,1)}}),Object.defineProperty(this,\"required\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,2))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,2):this.Ff=K(this.Ff,2)}}),Object.defineProperty(this,\"noExport\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,3))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,3):this.Ff=K(this.Ff,3)}});var m=null;Object.defineProperty(this,\"Q\",{enumerable:!0,configurable:!1,get:function(){if(null!==m)return m},set:function(t){if(-1===[0,1,2].indexOf(t))throw new Error('Invalid value \"'+t+'\" for attribute Q supplied.');m=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){var t;switch(m){case 0:default:t=\"left\";break;case 1:t=\"center\";break;case 2:t=\"right\"}return t},configurable:!0,enumerable:!0,set:function(t){switch(t){case\"right\":case 2:m=2;break;case\"center\":case 1:m=1;break;case\"left\":case 0:default:m=0}}})};U(ht,st);var lt=function(){ht.call(this),this.FT=\"/Ch\",this.V=\"()\",this.fontName=\"zapfdingbats\";var t=0;Object.defineProperty(this,\"TI\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"topIndex\",{enumerable:!0,configurable:!0,get:function(){return t},set:function(e){t=e}});var e=[];Object.defineProperty(this,\"Opt\",{enumerable:!0,configurable:!1,get:function(){return at(e,this.objId,this.scope)},set:function(t){var r,n;n=[],\"string\"==typeof(r=t)&&(n=function(t,e,r){r||(r=1);for(var n,i=[];n=e.exec(t);)i.push(n[r]);return i}(r,/\\((.*?)\\)/g)),e=n}}),this.getOptions=function(){return e},this.setOptions=function(t){e=t,this.sort&&e.sort()},this.addOption=function(t){t=(t=t||\"\").toString(),e.push(t),this.sort&&e.sort()},this.removeOption=function(t,r){for(r=r||!1,t=(t=t||\"\").toString();-1!==e.indexOf(t)&&(e.splice(e.indexOf(t),1),!1!==r););},Object.defineProperty(this,\"combo\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,18))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,18):this.Ff=K(this.Ff,18)}}),Object.defineProperty(this,\"edit\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,19))},set:function(t){!0===this.combo&&(!0===Boolean(t)?this.Ff=X(this.Ff,19):this.Ff=K(this.Ff,19))}}),Object.defineProperty(this,\"sort\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,20))},set:function(t){!0===Boolean(t)?(this.Ff=X(this.Ff,20),e.sort()):this.Ff=K(this.Ff,20)}}),Object.defineProperty(this,\"multiSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,22))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,22):this.Ff=K(this.Ff,22)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,23):this.Ff=K(this.Ff,23)}}),Object.defineProperty(this,\"commitOnSelChange\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,27))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,27):this.Ff=K(this.Ff,27)}}),this.hasAppearanceStream=!1};U(lt,ht);var ft=function(){lt.call(this),this.fontName=\"helvetica\",this.combo=!1};U(ft,lt);var dt=function(){ft.call(this),this.combo=!0};U(dt,ft);var pt=function(){dt.call(this),this.edit=!0};U(pt,dt);var gt=function(){ht.call(this),this.FT=\"/Btn\",Object.defineProperty(this,\"noToggleToOff\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,15))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,15):this.Ff=K(this.Ff,15)}}),Object.defineProperty(this,\"radio\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,16))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,16):this.Ff=K(this.Ff,16)}}),Object.defineProperty(this,\"pushButton\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,17))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,17):this.Ff=K(this.Ff,17)}}),Object.defineProperty(this,\"radioIsUnison\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,26):this.Ff=K(this.Ff,26)}});var t,e={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t=function(t){return t};if(this.scope&&(t=this.scope.internal.getEncryptor(this.objId)),0!==Object.keys(e).length){var r,n=[];for(r in n.push(\"<<\"),e)n.push(\"/\"+r+\" (\"+D(t(e[r]))+\")\");return n.push(\">>\"),n.join(\"\\n\")}},set:function(t){\"object\"==typeof t&&(e=t)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return e.CA||\"\"},set:function(t){\"string\"==typeof t&&(e.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return t.substr(1,t.length-1)},set:function(e){t=\"/\"+e}})};U(gt,ht);var mt=function(){gt.call(this),this.pushButton=!0};U(mt,gt);var vt=function(){gt.call(this),this.radio=!0,this.pushButton=!1;var t=[];Object.defineProperty(this,\"Kids\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=void 0!==e?e:[]}})};U(vt,gt);var bt=function(){var t,e;ht.call(this),Object.defineProperty(this,\"Parent\",{enumerable:!1,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"optionName\",{enumerable:!1,configurable:!0,get:function(){return e},set:function(t){e=t}});var r,n={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t=function(t){return t};this.scope&&(t=this.scope.internal.getEncryptor(this.objId));var e,r=[];for(e in r.push(\"<<\"),n)r.push(\"/\"+e+\" (\"+D(t(n[e]))+\")\");return r.push(\">>\"),r.join(\"\\n\")},set:function(t){\"object\"==typeof t&&(n=t)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return n.CA||\"\"},set:function(t){\"string\"==typeof t&&(n.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return r},set:function(t){r=t}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return r.substr(1,r.length-1)},set:function(t){r=\"/\"+t}}),this.caption=\"l\",this.appearanceState=\"Off\",this._AppearanceType=Lt.RadioButton.Circle,this.appearanceStreamContent=this._AppearanceType.createAppearanceStream(this.optionName)};U(bt,ht),vt.prototype.setAppearance=function(t){if(!(\"createAppearanceStream\"in t)||!(\"getCA\"in t))throw new Error(\"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\");for(var e in this.Kids)if(this.Kids.hasOwnProperty(e)){var r=this.Kids[e];r.appearanceStreamContent=t.createAppearanceStream(r.optionName),r.caption=t.getCA()}},vt.prototype.createOption=function(t){var e=new bt;return e.Parent=this,e.optionName=t,this.Kids.push(e),At.call(this.scope,e),e};var yt=function(){gt.call(this),this.fontName=\"zapfdingbats\",this.caption=\"3\",this.appearanceState=\"On\",this.value=\"On\",this.textAlign=\"center\",this.appearanceStreamContent=Lt.CheckBox.createAppearanceStream()};U(yt,gt);var wt=function(){ht.call(this),this.FT=\"/Tx\",Object.defineProperty(this,\"multiline\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,13))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,13):this.Ff=K(this.Ff,13)}}),Object.defineProperty(this,\"fileSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,21))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,21):this.Ff=K(this.Ff,21)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,23):this.Ff=K(this.Ff,23)}}),Object.defineProperty(this,\"doNotScroll\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,24))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,24):this.Ff=K(this.Ff,24)}}),Object.defineProperty(this,\"comb\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,25))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,25):this.Ff=K(this.Ff,25)}}),Object.defineProperty(this,\"richText\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,26):this.Ff=K(this.Ff,26)}});var t=null;Object.defineProperty(this,\"MaxLen\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"maxLength\",{enumerable:!0,configurable:!0,get:function(){return t},set:function(e){Number.isInteger(e)&&(t=e)}}),Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return this.V||this.DV}})};U(wt,ht);var Nt=function(){wt.call(this),Object.defineProperty(this,\"password\",{enumerable:!0,configurable:!0,get:function(){return Boolean(J(this.Ff,14))},set:function(t){!0===Boolean(t)?this.Ff=X(this.Ff,14):this.Ff=K(this.Ff,14)}}),this.password=!0};U(Nt,wt);var Lt={CheckBox:{createAppearanceStream:function(){return{N:{On:Lt.CheckBox.YesNormal},D:{On:Lt.CheckBox.YesPushDown,Off:Lt.CheckBox.OffPushDown}}},YesPushDown:function(t){var e=W(t);e.scope=t.scope;var r=[],n=t.scope.internal.getFont(t.fontName,t.fontStyle).id,i=t.scope.__private__.encodeColorString(t.color),a=Q(t,t.caption);return r.push(\"0.749023 g\"),r.push(\"0 0 \"+T(Lt.internal.getWidth(t))+\" \"+T(Lt.internal.getHeight(t))+\" re\"),r.push(\"f\"),r.push(\"BMC\"),r.push(\"q\"),r.push(\"0 0 1 rg\"),r.push(\"/\"+n+\" \"+T(a.fontSize)+\" Tf \"+i),r.push(\"BT\"),r.push(a.text),r.push(\"ET\"),r.push(\"Q\"),r.push(\"EMC\"),e.stream=r.join(\"\\n\"),e},YesNormal:function(t){var e=W(t);e.scope=t.scope;var r=t.scope.internal.getFont(t.fontName,t.fontStyle).id,n=t.scope.__private__.encodeColorString(t.color),i=[],a=Lt.internal.getHeight(t),o=Lt.internal.getWidth(t),s=Q(t,t.caption);return i.push(\"1 g\"),i.push(\"0 0 \"+T(o)+\" \"+T(a)+\" re\"),i.push(\"f\"),i.push(\"q\"),i.push(\"0 0 1 rg\"),i.push(\"0 0 \"+T(o-1)+\" \"+T(a-1)+\" re\"),i.push(\"W\"),i.push(\"n\"),i.push(\"0 g\"),i.push(\"BT\"),i.push(\"/\"+r+\" \"+T(s.fontSize)+\" Tf \"+n),i.push(s.text),i.push(\"ET\"),i.push(\"Q\"),e.stream=i.join(\"\\n\"),e},OffPushDown:function(t){var e=W(t);e.scope=t.scope;var r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+T(Lt.internal.getWidth(t))+\" \"+T(Lt.internal.getHeight(t))+\" re\"),r.push(\"f\"),e.stream=r.join(\"\\n\"),e}},RadioButton:{Circle:{createAppearanceStream:function(t){var e={D:{Off:Lt.RadioButton.Circle.OffPushDown},N:{}};return e.N[t]=Lt.RadioButton.Circle.YesNormal,e.D[t]=Lt.RadioButton.Circle.YesPushDown,e},getCA:function(){return\"l\"},YesNormal:function(t){var e=W(t);e.scope=t.scope;var r=[],n=Lt.internal.getWidth(t)<=Lt.internal.getHeight(t)?Lt.internal.getWidth(t)/4:Lt.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Lt.internal.Bezier_C,a=Number((n*i).toFixed(5));return r.push(\"q\"),r.push(\"1 0 0 1 \"+z(Lt.internal.getWidth(t)/2)+\" \"+z(Lt.internal.getHeight(t)/2)+\" cm\"),r.push(n+\" 0 m\"),r.push(n+\" \"+a+\" \"+a+\" \"+n+\" 0 \"+n+\" c\"),r.push(\"-\"+a+\" \"+n+\" -\"+n+\" \"+a+\" -\"+n+\" 0 c\"),r.push(\"-\"+n+\" -\"+a+\" -\"+a+\" -\"+n+\" 0 -\"+n+\" c\"),r.push(a+\" -\"+n+\" \"+n+\" -\"+a+\" \"+n+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},YesPushDown:function(t){var e=W(t);e.scope=t.scope;var r=[],n=Lt.internal.getWidth(t)<=Lt.internal.getHeight(t)?Lt.internal.getWidth(t)/4:Lt.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Number((2*n).toFixed(5)),a=Number((i*Lt.internal.Bezier_C).toFixed(5)),o=Number((n*Lt.internal.Bezier_C).toFixed(5));return r.push(\"0.749023 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(Lt.internal.getWidth(t)/2)+\" \"+z(Lt.internal.getHeight(t)/2)+\" cm\"),r.push(i+\" 0 m\"),r.push(i+\" \"+a+\" \"+a+\" \"+i+\" 0 \"+i+\" c\"),r.push(\"-\"+a+\" \"+i+\" -\"+i+\" \"+a+\" -\"+i+\" 0 c\"),r.push(\"-\"+i+\" -\"+a+\" -\"+a+\" -\"+i+\" 0 -\"+i+\" c\"),r.push(a+\" -\"+i+\" \"+i+\" -\"+a+\" \"+i+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),r.push(\"0 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(Lt.internal.getWidth(t)/2)+\" \"+z(Lt.internal.getHeight(t)/2)+\" cm\"),r.push(n+\" 0 m\"),r.push(n+\" \"+o+\" \"+o+\" \"+n+\" 0 \"+n+\" c\"),r.push(\"-\"+o+\" \"+n+\" -\"+n+\" \"+o+\" -\"+n+\" 0 c\"),r.push(\"-\"+n+\" -\"+o+\" -\"+o+\" -\"+n+\" 0 -\"+n+\" c\"),r.push(o+\" -\"+n+\" \"+n+\" -\"+o+\" \"+n+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},OffPushDown:function(t){var e=W(t);e.scope=t.scope;var r=[],n=Lt.internal.getWidth(t)<=Lt.internal.getHeight(t)?Lt.internal.getWidth(t)/4:Lt.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Number((2*n).toFixed(5)),a=Number((i*Lt.internal.Bezier_C).toFixed(5));return r.push(\"0.749023 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(Lt.internal.getWidth(t)/2)+\" \"+z(Lt.internal.getHeight(t)/2)+\" cm\"),r.push(i+\" 0 m\"),r.push(i+\" \"+a+\" \"+a+\" \"+i+\" 0 \"+i+\" c\"),r.push(\"-\"+a+\" \"+i+\" -\"+i+\" \"+a+\" -\"+i+\" 0 c\"),r.push(\"-\"+i+\" -\"+a+\" -\"+a+\" -\"+i+\" 0 -\"+i+\" c\"),r.push(a+\" -\"+i+\" \"+i+\" -\"+a+\" \"+i+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e}},Cross:{createAppearanceStream:function(t){var e={D:{Off:Lt.RadioButton.Cross.OffPushDown},N:{}};return e.N[t]=Lt.RadioButton.Cross.YesNormal,e.D[t]=Lt.RadioButton.Cross.YesPushDown,e},getCA:function(){return\"8\"},YesNormal:function(t){var e=W(t);e.scope=t.scope;var r=[],n=Lt.internal.calculateCross(t);return r.push(\"q\"),r.push(\"1 1 \"+T(Lt.internal.getWidth(t)-2)+\" \"+T(Lt.internal.getHeight(t)-2)+\" re\"),r.push(\"W\"),r.push(\"n\"),r.push(T(n.x1.x)+\" \"+T(n.x1.y)+\" m\"),r.push(T(n.x2.x)+\" \"+T(n.x2.y)+\" l\"),r.push(T(n.x4.x)+\" \"+T(n.x4.y)+\" m\"),r.push(T(n.x3.x)+\" \"+T(n.x3.y)+\" l\"),r.push(\"s\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},YesPushDown:function(t){var e=W(t);e.scope=t.scope;var r=Lt.internal.calculateCross(t),n=[];return n.push(\"0.749023 g\"),n.push(\"0 0 \"+T(Lt.internal.getWidth(t))+\" \"+T(Lt.internal.getHeight(t))+\" re\"),n.push(\"f\"),n.push(\"q\"),n.push(\"1 1 \"+T(Lt.internal.getWidth(t)-2)+\" \"+T(Lt.internal.getHeight(t)-2)+\" re\"),n.push(\"W\"),n.push(\"n\"),n.push(T(r.x1.x)+\" \"+T(r.x1.y)+\" m\"),n.push(T(r.x2.x)+\" \"+T(r.x2.y)+\" l\"),n.push(T(r.x4.x)+\" \"+T(r.x4.y)+\" m\"),n.push(T(r.x3.x)+\" \"+T(r.x3.y)+\" l\"),n.push(\"s\"),n.push(\"Q\"),e.stream=n.join(\"\\n\"),e},OffPushDown:function(t){var e=W(t);e.scope=t.scope;var r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+T(Lt.internal.getWidth(t))+\" \"+T(Lt.internal.getHeight(t))+\" re\"),r.push(\"f\"),e.stream=r.join(\"\\n\"),e}}},createDefaultAppearanceStream:function(t){var e=t.scope.internal.getFont(t.fontName,t.fontStyle).id,r=t.scope.__private__.encodeColorString(t.color);return\"/\"+e+\" \"+t.fontSize+\" Tf \"+r}};Lt.internal={Bezier_C:.551915024494,calculateCross:function(t){var e=Lt.internal.getWidth(t),r=Lt.internal.getHeight(t),n=Math.min(e,r);return{x1:{x:(e-n)/2,y:(r-n)/2+n},x2:{x:(e-n)/2+n,y:(r-n)/2},x3:{x:(e-n)/2,y:(r-n)/2},x4:{x:(e-n)/2+n,y:(r-n)/2+n}}}},Lt.internal.getWidth=function(t){var e=0;return\"object\"==typeof t&&(e=H(t.Rect[2])),e},Lt.internal.getHeight=function(t){var e=0;return\"object\"==typeof t&&(e=H(t.Rect[3])),e};var At=E.addField=function(t){if(it(this,t),!(t instanceof ht))throw new Error(\"Invalid argument passed to jsPDF.addField.\");var e;return(e=t).scope.internal.acroformPlugin.printedOut&&(e.scope.internal.acroformPlugin.printedOut=!1,e.scope.internal.acroformPlugin.acroFormDictionaryRoot=null),e.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(e),t.page=t.scope.internal.getCurrentPageInfo().pageNumber,this};E.AcroFormChoiceField=lt,E.AcroFormListBox=ft,E.AcroFormComboBox=dt,E.AcroFormEditBox=pt,E.AcroFormButton=gt,E.AcroFormPushButton=mt,E.AcroFormRadioButton=vt,E.AcroFormCheckBox=yt,E.AcroFormTextField=wt,E.AcroFormPasswordField=Nt,E.AcroFormAppearance=Lt,E.AcroForm={ChoiceField:lt,ListBox:ft,ComboBox:dt,EditBox:pt,Button:gt,PushButton:mt,RadioButton:vt,CheckBox:yt,TextField:wt,PasswordField:Nt,Appearance:Lt},M.AcroForm={ChoiceField:lt,ListBox:ft,ComboBox:dt,EditBox:pt,Button:gt,PushButton:mt,RadioButton:vt,CheckBox:yt,TextField:wt,PasswordField:Nt,Appearance:Lt};var xt=M.AcroForm;\n/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */function St(t){return t.reduce((function(t,e,r){return t[e]=r,t}),{})}!function(t){t.__addimage__={};var e=\"UNKNOWN\",r={PNG:[[137,80,78,71]],TIFF:[[77,77,0,42],[73,73,42,0]],JPEG:[[255,216,255,224,void 0,void 0,74,70,73,70,0],[255,216,255,225,void 0,void 0,69,120,105,102,0,0],[255,216,255,219],[255,216,255,238]],JPEG2000:[[0,0,0,12,106,80,32,32]],GIF87a:[[71,73,70,56,55,97]],GIF89a:[[71,73,70,56,57,97]],WEBP:[[82,73,70,70,void 0,void 0,void 0,void 0,87,69,66,80]],BMP:[[66,77],[66,65],[67,73],[67,80],[73,67],[80,84]]},n=t.__addimage__.getImageFileTypeByImageData=function(t,n){var i,a,o,s,c,u=e;if(\"RGBA\"===(n=n||e)||void 0!==t.data&&t.data instanceof Uint8ClampedArray&&\"height\"in t&&\"width\"in t)return\"RGBA\";if(A(t))for(c in r)for(o=r[c],i=0;i<o.length;i+=1){for(s=!0,a=0;a<o[i].length;a+=1)if(void 0!==o[i][a]&&o[i][a]!==t[a]){s=!1;break}if(!0===s){u=c;break}}else for(c in r)for(o=r[c],i=0;i<o.length;i+=1){for(s=!0,a=0;a<o[i].length;a+=1)if(void 0!==o[i][a]&&o[i][a]!==t.charCodeAt(a)){s=!1;break}if(!0===s){u=c;break}}return u===e&&n!==e&&(u=n),u},i=function t(e){for(var r=this.internal.write,n=this.internal.putStream,i=(0,this.internal.getFilters)();-1!==i.indexOf(\"FlateEncode\");)i.splice(i.indexOf(\"FlateEncode\"),1);e.objectId=this.internal.newObject();var a=[];if(a.push({key:\"Type\",value:\"/XObject\"}),a.push({key:\"Subtype\",value:\"/Image\"}),a.push({key:\"Width\",value:e.width}),a.push({key:\"Height\",value:e.height}),e.colorSpace===v.INDEXED?a.push({key:\"ColorSpace\",value:\"[/Indexed /DeviceRGB \"+(e.palette.length/3-1)+\" \"+(\"sMask\"in e&&void 0!==e.sMask?e.objectId+2:e.objectId+1)+\" 0 R]\"}):(a.push({key:\"ColorSpace\",value:\"/\"+e.colorSpace}),e.colorSpace===v.DEVICE_CMYK&&a.push({key:\"Decode\",value:\"[1 0 1 0 1 0 1 0]\"})),a.push({key:\"BitsPerComponent\",value:e.bitsPerComponent}),\"decodeParameters\"in e&&void 0!==e.decodeParameters&&a.push({key:\"DecodeParms\",value:\"<<\"+e.decodeParameters+\">>\"}),\"transparency\"in e&&Array.isArray(e.transparency)){for(var o=\"\",s=0,c=e.transparency.length;s<c;s++)o+=e.transparency[s]+\" \"+e.transparency[s]+\" \";a.push({key:\"Mask\",value:\"[\"+o+\"]\"})}void 0!==e.sMask&&a.push({key:\"SMask\",value:e.objectId+1+\" 0 R\"});var u=void 0!==e.filter?[\"/\"+e.filter]:void 0;if(n({data:e.data,additionalKeyValues:a,alreadyAppliedFilters:u,objectId:e.objectId}),r(\"endobj\"),\"sMask\"in e&&void 0!==e.sMask){var h=\"/Predictor \"+e.predictor+\" /Colors 1 /BitsPerComponent \"+e.bitsPerComponent+\" /Columns \"+e.width,l={width:e.width,height:e.height,colorSpace:\"DeviceGray\",bitsPerComponent:e.bitsPerComponent,decodeParameters:h,data:e.sMask};\"filter\"in e&&(l.filter=e.filter),t.call(this,l)}if(e.colorSpace===v.INDEXED){var f=this.internal.newObject();n({data:S(new Uint8Array(e.palette)),objectId:f}),r(\"endobj\")}},a=function(){var t=this.internal.collections.addImage_images;for(var e in t)i.call(this,t[e])},o=function(){var t,e=this.internal.collections.addImage_images,r=this.internal.write;for(var n in e)r(\"/I\"+(t=e[n]).index,t.objectId,\"0\",\"R\")},s=function(){this.internal.collections.addImage_images||(this.internal.collections.addImage_images={},this.internal.events.subscribe(\"putResources\",a),this.internal.events.subscribe(\"putXobjectDict\",o))},u=function(){var t=this.internal.collections.addImage_images;return s.call(this),t},h=function(){return Object.keys(this.internal.collections.addImage_images).length},l=function(e){return\"function\"==typeof t[\"process\"+e.toUpperCase()]},f=function(t){return\"object\"==typeof t&&1===t.nodeType},d=function(e,r){if(\"IMG\"===e.nodeName&&e.hasAttribute(\"src\")){var n=\"\"+e.getAttribute(\"src\");if(0===n.indexOf(\"data:image/\"))return c(unescape(n).split(\"base64,\").pop());var i=t.loadFile(n,!0);if(void 0!==i)return i}if(\"CANVAS\"===e.nodeName){if(0===e.width||0===e.height)throw new Error(\"Given canvas must have data. Canvas width: \"+e.width+\", height: \"+e.height);var a;switch(r){case\"PNG\":a=\"image/png\";break;case\"WEBP\":a=\"image/webp\";break;case\"JPEG\":case\"JPG\":default:a=\"image/jpeg\"}return c(e.toDataURL(a,1).split(\"base64,\").pop())}},p=function(t){var e=this.internal.collections.addImage_images;if(e)for(var r in e)if(t===e[r].alias)return e[r]},g=function(t,e,r){return t||e||(t=-96,e=-96),t<0&&(t=-1*r.width*72/t/this.internal.scaleFactor),e<0&&(e=-1*r.height*72/e/this.internal.scaleFactor),0===t&&(t=e*r.width/r.height),0===e&&(e=t*r.height/r.width),[t,e]},m=function(t,e,r,n,i,a){var o=g.call(this,r,n,i),s=this.internal.getCoordinateString,c=this.internal.getVerticalCoordinateString,h=u.call(this);if(r=o[0],n=o[1],h[i.index]=i,a){a*=Math.PI/180;var l=Math.cos(a),f=Math.sin(a),d=function(t){return t.toFixed(4)},p=[d(l),d(f),d(-1*f),d(l),0,0,\"cm\"]}this.internal.write(\"q\"),a?(this.internal.write([1,\"0\",\"0\",1,s(t),c(e+n),\"cm\"].join(\" \")),this.internal.write(p.join(\" \")),this.internal.write([s(r),\"0\",\"0\",s(n),\"0\",\"0\",\"cm\"].join(\" \"))):this.internal.write([s(r),\"0\",\"0\",s(n),s(t),c(e+n),\"cm\"].join(\" \")),this.isAdvancedAPI()&&this.internal.write([1,0,0,-1,0,0,\"cm\"].join(\" \")),this.internal.write(\"/I\"+i.index+\" Do\"),this.internal.write(\"Q\")},v=t.color_spaces={DEVICE_RGB:\"DeviceRGB\",DEVICE_GRAY:\"DeviceGray\",DEVICE_CMYK:\"DeviceCMYK\",CAL_GREY:\"CalGray\",CAL_RGB:\"CalRGB\",LAB:\"Lab\",ICC_BASED:\"ICCBased\",INDEXED:\"Indexed\",PATTERN:\"Pattern\",SEPARATION:\"Separation\",DEVICE_N:\"DeviceN\"};t.decode={DCT_DECODE:\"DCTDecode\",FLATE_DECODE:\"FlateDecode\",LZW_DECODE:\"LZWDecode\",JPX_DECODE:\"JPXDecode\",JBIG2_DECODE:\"JBIG2Decode\",ASCII85_DECODE:\"ASCII85Decode\",ASCII_HEX_DECODE:\"ASCIIHexDecode\",RUN_LENGTH_DECODE:\"RunLengthDecode\",CCITT_FAX_DECODE:\"CCITTFaxDecode\"};var b=t.image_compression={NONE:\"NONE\",FAST:\"FAST\",MEDIUM:\"MEDIUM\",SLOW:\"SLOW\"},y=t.__addimage__.sHashCode=function(t){var e,r,n=0;if(\"string\"==typeof t)for(r=t.length,e=0;e<r;e++)n=(n<<5)-n+t.charCodeAt(e),n|=0;else if(A(t))for(r=t.byteLength/2,e=0;e<r;e++)n=(n<<5)-n+t[e],n|=0;return n},w=t.__addimage__.validateStringAsBase64=function(t){(t=t||\"\").toString().trim();var e=!0;return 0===t.length&&(e=!1),t.length%4!=0&&(e=!1),!1===/^[A-Za-z0-9+/]+$/.test(t.substr(0,t.length-2))&&(e=!1),!1===/^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(t.substr(-2))&&(e=!1),e},N=t.__addimage__.extractImageFromDataUrl=function(t){var e=(t=t||\"\").split(\"base64,\"),r=null;if(2===e.length){var n=/^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(e[0]);Array.isArray(n)&&(r={mimeType:n[1],charset:n[2],data:e[1]})}return r},L=t.__addimage__.supportsArrayBuffer=function(){return\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array};t.__addimage__.isArrayBuffer=function(t){return L()&&t instanceof ArrayBuffer};var A=t.__addimage__.isArrayBufferView=function(t){return L()&&\"undefined\"!=typeof Uint32Array&&(t instanceof Int8Array||t instanceof Uint8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)},x=t.__addimage__.binaryStringToUint8Array=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++)r[n]=t.charCodeAt(n);return r},S=t.__addimage__.arrayBufferToBinaryString=function(t){for(var e=\"\",r=A(t)?t:new Uint8Array(t),n=0;n<r.length;n+=8192)e+=String.fromCharCode.apply(null,r.subarray(n,n+8192));return e};t.addImage=function(){var t,r,n,i,a,o,c,u,h;if(\"number\"==typeof arguments[1]?(r=e,n=arguments[1],i=arguments[2],a=arguments[3],o=arguments[4],c=arguments[5],u=arguments[6],h=arguments[7]):(r=arguments[1],n=arguments[2],i=arguments[3],a=arguments[4],o=arguments[5],c=arguments[6],u=arguments[7],h=arguments[8]),\"object\"==typeof(t=arguments[0])&&!f(t)&&\"imageData\"in t){var l=t;t=l.imageData,r=l.format||r||e,n=l.x||n||0,i=l.y||i||0,a=l.w||l.width||a,o=l.h||l.height||o,c=l.alias||c,u=l.compression||u,h=l.rotation||l.angle||h}var d=this.internal.getFilters();if(void 0===u&&-1!==d.indexOf(\"FlateEncode\")&&(u=\"SLOW\"),isNaN(n)||isNaN(i))throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");s.call(this);var p=_.call(this,t,r,c,u);return m.call(this,n,i,a,o,p,h),this};var _=function(r,i,a,o){var s,c,u;if(\"string\"==typeof r&&n(r)===e){r=unescape(r);var g=P(r,!1);(\"\"!==g||void 0!==(g=t.loadFile(r,!0)))&&(r=g)}if(f(r)&&(r=d(r,i)),i=n(r,i),!l(i))throw new Error(\"addImage does not support files of type '\"+i+\"', please ensure that a plugin for '\"+i+\"' support is added.\");if((null==(u=a)||0===u.length)&&(a=function(t){return\"string\"==typeof t||A(t)?y(t):A(t.data)?y(t.data):null}(r)),(s=p.call(this,a))||(L()&&(r instanceof Uint8Array||\"RGBA\"===i||(c=r,r=x(r))),s=this[\"process\"+i.toUpperCase()](r,h.call(this),a,function(e){return e&&\"string\"==typeof e&&(e=e.toUpperCase()),e in t.image_compression?e:b.NONE}(o),c)),!s)throw new Error(\"An unknown error occurred whilst processing the image.\");return s},P=t.__addimage__.convertBase64ToBinaryString=function(t,e){var r;e=\"boolean\"!=typeof e||e;var n,i=\"\";if(\"string\"==typeof t){n=null!==(r=N(t))?r.data:t;try{i=c(n)}catch(t){if(e)throw w(n)?new Error(\"atob-Error in jsPDF.convertBase64ToBinaryString \"+t.message):new Error(\"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \")}}return i};t.getImageProperties=function(r){var i,a,o=\"\";if(f(r)&&(r=d(r)),\"string\"==typeof r&&n(r)===e&&(\"\"===(o=P(r,!1))&&(o=t.loadFile(r)||\"\"),r=o),a=n(r),!l(a))throw new Error(\"addImage does not support files of type '\"+a+\"', please ensure that a plugin for '\"+a+\"' support is added.\");if(!L()||r instanceof Uint8Array||(r=x(r)),!(i=this[\"process\"+a.toUpperCase()](r)))throw new Error(\"An unknown error occurred whilst processing the image\");return i.fileType=a,i}}(M.API),\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(t){if(void 0!==t&&\"\"!=t)return!0};M.API.events.push([\"addPage\",function(t){this.internal.getPageInfo(t.pageNumber).pageContext.annotations=[]}]),t.events.push([\"putPage\",function(t){for(var r,n,i,a=this.internal.getCoordinateString,o=this.internal.getVerticalCoordinateString,s=this.internal.getPageInfoByObjId(t.objId),c=t.pageContext.annotations,u=!1,h=0;h<c.length&&!u;h++)switch((r=c[h]).type){case\"link\":(e(r.options.url)||e(r.options.pageNumber))&&(u=!0);break;case\"reference\":case\"text\":case\"freetext\":u=!0}if(0!=u){this.internal.write(\"/Annots [\");for(var l=0;l<c.length;l++){r=c[l];var f=this.internal.pdfEscape,d=this.internal.getEncryptor(t.objId);switch(r.type){case\"reference\":this.internal.write(\" \"+r.object.objId+\" 0 R \");break;case\"text\":var p=this.internal.newAdditionalObject(),g=this.internal.newAdditionalObject(),m=this.internal.getEncryptor(p.objId),v=r.title||\"Note\";i=\"<</Type /Annot /Subtype /Text \"+(n=\"/Rect [\"+a(r.bounds.x)+\" \"+o(r.bounds.y+r.bounds.h)+\" \"+a(r.bounds.x+r.bounds.w)+\" \"+o(r.bounds.y)+\"] \")+\"/Contents (\"+f(m(r.contents))+\")\",i+=\" /Popup \"+g.objId+\" 0 R\",i+=\" /P \"+s.objId+\" 0 R\",i+=\" /T (\"+f(m(v))+\") >>\",p.content=i;var b=p.objId+\" 0 R\";i=\"<</Type /Annot /Subtype /Popup \"+(n=\"/Rect [\"+a(r.bounds.x+30)+\" \"+o(r.bounds.y+r.bounds.h)+\" \"+a(r.bounds.x+r.bounds.w+30)+\" \"+o(r.bounds.y)+\"] \")+\" /Parent \"+b,r.open&&(i+=\" /Open true\"),i+=\" >>\",g.content=i,this.internal.write(p.objId,\"0 R\",g.objId,\"0 R\");break;case\"freetext\":n=\"/Rect [\"+a(r.bounds.x)+\" \"+o(r.bounds.y)+\" \"+a(r.bounds.x+r.bounds.w)+\" \"+o(r.bounds.y+r.bounds.h)+\"] \";var y=r.color||\"#000000\";i=\"<</Type /Annot /Subtype /FreeText \"+n+\"/Contents (\"+f(d(r.contents))+\")\",i+=\" /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#\"+y+\")\",i+=\" /Border [0 0 0]\",i+=\" >>\",this.internal.write(i);break;case\"link\":if(r.options.name){var w=this.annotations._nameMap[r.options.name];r.options.pageNumber=w.page,r.options.top=w.y}else r.options.top||(r.options.top=0);if(n=\"/Rect [\"+r.finalBounds.x+\" \"+r.finalBounds.y+\" \"+r.finalBounds.w+\" \"+r.finalBounds.h+\"] \",i=\"\",r.options.url)i=\"<</Type /Annot /Subtype /Link \"+n+\"/Border [0 0 0] /A <</S /URI /URI (\"+f(d(r.options.url))+\") >>\";else if(r.options.pageNumber){switch(i=\"<</Type /Annot /Subtype /Link \"+n+\"/Border [0 0 0] /Dest [\"+this.internal.getPageInfo(r.options.pageNumber).objId+\" 0 R\",r.options.magFactor=r.options.magFactor||\"XYZ\",r.options.magFactor){case\"Fit\":i+=\" /Fit]\";break;case\"FitH\":i+=\" /FitH \"+r.options.top+\"]\";break;case\"FitV\":r.options.left=r.options.left||0,i+=\" /FitV \"+r.options.left+\"]\";break;case\"XYZ\":default:var N=o(r.options.top);r.options.left=r.options.left||0,void 0===r.options.zoom&&(r.options.zoom=0),i+=\" /XYZ \"+r.options.left+\" \"+N+\" \"+r.options.zoom+\"]\"}}\"\"!=i&&(i+=\" >>\",this.internal.write(i))}}this.internal.write(\"]\")}}]),t.createAnnotation=function(t){var e=this.internal.getCurrentPageInfo();switch(t.type){case\"link\":this.link(t.bounds.x,t.bounds.y,t.bounds.w,t.bounds.h,t);break;case\"text\":case\"freetext\":e.pageContext.annotations.push(t)}},t.link=function(t,e,r,n,i){var a=this.internal.getCurrentPageInfo(),o=this.internal.getCoordinateString,s=this.internal.getVerticalCoordinateString;a.pageContext.annotations.push({finalBounds:{x:o(t),y:s(e),w:o(t+r),h:s(e+n)},options:i,type:\"link\"})},t.textWithLink=function(t,e,r,n){var i,a,o=this.getTextWidth(t),s=this.internal.getLineHeight()/this.internal.scaleFactor;if(void 0!==n.maxWidth){a=n.maxWidth;var c=this.splitTextToSize(t,a).length;i=Math.ceil(s*c)}else a=o,i=s;return this.text(t,e,r,n),r+=.2*s,\"center\"===n.align&&(e-=o/2),\"right\"===n.align&&(e-=o),this.link(e,r-s,a,i,n),o},t.getTextWidth=function(t){var e=this.internal.getFontSize();return this.getStringUnitWidth(t)*e/this.internal.scaleFactor}}(M.API),\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e={1569:[65152],1570:[65153,65154],1571:[65155,65156],1572:[65157,65158],1573:[65159,65160],1574:[65161,65162,65163,65164],1575:[65165,65166],1576:[65167,65168,65169,65170],1577:[65171,65172],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194],1584:[65195,65196],1585:[65197,65198],1586:[65199,65200],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1649:[64336,64337],1655:[64477],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393],1676:[64388,64389],1677:[64386,64387],1678:[64390,64391],1681:[64396,64397],1688:[64394,64395],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421],1729:[64422,64423,64424,64425],1733:[64480,64481],1734:[64473,64474],1735:[64471,64472],1736:[64475,64476],1737:[64482,64483],1739:[64478,64479],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431],1747:[64432,64433]},r={65247:{65154:65269,65156:65271,65160:65273,65166:65275},65248:{65154:65270,65156:65272,65160:65274,65166:65276},65165:{65247:{65248:{65258:65010}}},1617:{1612:64606,1613:64607,1614:64608,1615:64609,1616:64610}},n={1612:64606,1613:64607,1614:64608,1615:64609,1616:64610},i=[1570,1571,1573,1575];t.__arabicParser__={};var a=t.__arabicParser__.isInArabicSubstitutionA=function(t){return void 0!==e[t.charCodeAt(0)]},o=t.__arabicParser__.isArabicLetter=function(t){return\"string\"==typeof t&&/^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(t)},s=t.__arabicParser__.isArabicEndLetter=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length<=2},c=t.__arabicParser__.isArabicAlfLetter=function(t){return o(t)&&i.indexOf(t.charCodeAt(0))>=0};t.__arabicParser__.arabicLetterHasIsolatedForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=1};var u=t.__arabicParser__.arabicLetterHasFinalForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=2};t.__arabicParser__.arabicLetterHasInitialForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=3};var h=t.__arabicParser__.arabicLetterHasMedialForm=function(t){return o(t)&&a(t)&&4==e[t.charCodeAt(0)].length},l=t.__arabicParser__.resolveLigatures=function(t){var e=0,n=r,i=\"\",a=0;for(e=0;e<t.length;e+=1)void 0!==n[t.charCodeAt(e)]?(a++,\"number\"==typeof(n=n[t.charCodeAt(e)])&&(i+=String.fromCharCode(n),n=r,a=0),e===t.length-1&&(n=r,i+=t.charAt(e-(a-1)),e-=a-1,a=0)):(n=r,i+=t.charAt(e-a),e-=a,a=0);return i};t.__arabicParser__.isArabicDiacritic=function(t){return void 0!==t&&void 0!==n[t.charCodeAt(0)]};var f=t.__arabicParser__.getCorrectForm=function(t,e,r){return o(t)?!1===a(t)?-1:!u(t)||!o(e)&&!o(r)||!o(r)&&s(e)||s(t)&&!o(e)||s(t)&&c(e)||s(t)&&s(e)?0:h(t)&&o(e)&&!s(e)&&o(r)&&u(r)?3:s(t)||!o(r)?1:2:-1},d=function(t){var r=0,n=0,i=0,a=\"\",s=\"\",c=\"\",u=(t=t||\"\").split(\"\\\\s+\"),h=[];for(r=0;r<u.length;r+=1){for(h.push(\"\"),n=0;n<u[r].length;n+=1)a=u[r][n],s=u[r][n-1],c=u[r][n+1],o(a)?(i=f(a,s,c),h[r]+=-1!==i?String.fromCharCode(e[a.charCodeAt(0)][i]):a):h[r]+=a;h[r]=l(h[r])}return h.join(\" \")},p=t.__arabicParser__.processArabic=t.processArabic=function(){var t,e=\"string\"==typeof arguments[0]?arguments[0]:arguments[0].text,r=[];if(Array.isArray(e)){var n=0;for(r=[],n=0;n<e.length;n+=1)Array.isArray(e[n])?r.push([d(e[n][0]),e[n][1],e[n][2]]):r.push([d(e[n])]);t=r}else t=d(e);return\"string\"==typeof arguments[0]?t:(arguments[0].text=t,arguments[0])};t.events.push([\"preProcessText\",p])}(M.API),M.API.autoPrint=function(t){var e;switch((t=t||{}).variant=t.variant||\"non-conform\",t.variant){case\"javascript\":this.addJS(\"print({});\");break;case\"non-conform\":default:this.internal.events.subscribe(\"postPutResources\",(function(){e=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /Named\"),this.internal.out(\"/Type /Action\"),this.internal.out(\"/N /Print\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")})),this.internal.events.subscribe(\"putCatalog\",(function(){this.internal.out(\"/OpenAction \"+e+\" 0 R\")}))}return this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(){var t=void 0;Object.defineProperty(this,\"pdf\",{get:function(){return t},set:function(e){t=e}});var e=150;Object.defineProperty(this,\"width\",{get:function(){return e},set:function(t){e=isNaN(t)||!1===Number.isInteger(t)||t<0?150:t,this.getContext(\"2d\").pageWrapXEnabled&&(this.getContext(\"2d\").pageWrapX=e+1)}});var r=300;Object.defineProperty(this,\"height\",{get:function(){return r},set:function(t){r=isNaN(t)||!1===Number.isInteger(t)||t<0?300:t,this.getContext(\"2d\").pageWrapYEnabled&&(this.getContext(\"2d\").pageWrapY=r+1)}});var n=[];Object.defineProperty(this,\"childNodes\",{get:function(){return n},set:function(t){n=t}});var i={};Object.defineProperty(this,\"style\",{get:function(){return i},set:function(t){i=t}}),Object.defineProperty(this,\"parentNode\",{})};e.prototype.getContext=function(t,e){var r;if(\"2d\"!==(t=t||\"2d\"))return null;for(r in e)this.pdf.context2d.hasOwnProperty(r)&&(this.pdf.context2d[r]=e[r]);return this.pdf.context2d._canvas=this,this.pdf.context2d},e.prototype.toDataURL=function(){throw new Error(\"toDataURL is not implemented.\")},t.events.push([\"initialized\",function(){this.canvas=new e,this.canvas.pdf=this}])}(M.API),\n/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){var e={left:0,top:0,bottom:0,right:0},r=!1,n=function(){void 0===this.internal.__cell__&&(this.internal.__cell__={},this.internal.__cell__.padding=3,this.internal.__cell__.headerFunction=void 0,this.internal.__cell__.margins=Object.assign({},e),this.internal.__cell__.margins.width=this.getPageWidth(),i.call(this))},i=function(){this.internal.__cell__.lastCell=new a,this.internal.__cell__.pages=1},a=function(){var t=arguments[0];Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return t},set:function(e){t=e}});var e=arguments[1];Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return e},set:function(t){e=t}});var r=arguments[2];Object.defineProperty(this,\"width\",{enumerable:!0,get:function(){return r},set:function(t){r=t}});var n=arguments[3];Object.defineProperty(this,\"height\",{enumerable:!0,get:function(){return n},set:function(t){n=t}});var i=arguments[4];Object.defineProperty(this,\"text\",{enumerable:!0,get:function(){return i},set:function(t){i=t}});var a=arguments[5];Object.defineProperty(this,\"lineNumber\",{enumerable:!0,get:function(){return a},set:function(t){a=t}});var o=arguments[6];return Object.defineProperty(this,\"align\",{enumerable:!0,get:function(){return o},set:function(t){o=t}}),this};a.prototype.clone=function(){return new a(this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align)},a.prototype.toArray=function(){return[this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align]},t.setHeaderFunction=function(t){return n.call(this),this.internal.__cell__.headerFunction=\"function\"==typeof t?t:void 0,this},t.getTextDimensions=function(t,e){n.call(this);var r=(e=e||{}).fontSize||this.getFontSize(),i=e.font||this.getFont(),a=e.scaleFactor||this.internal.scaleFactor,o=0,s=0,c=0,u=this;if(!Array.isArray(t)&&\"string\"!=typeof t){if(\"number\"!=typeof t)throw new Error(\"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\");t=String(t)}var h=e.maxWidth;h>0?\"string\"==typeof t?t=this.splitTextToSize(t,h):\"[object Array]\"===Object.prototype.toString.call(t)&&(t=t.reduce((function(t,e){return t.concat(u.splitTextToSize(e,h))}),[])):t=Array.isArray(t)?t:[t];for(var l=0;l<t.length;l++)o<(c=this.getStringUnitWidth(t[l],{font:i})*r)&&(o=c);return 0!==o&&(s=t.length),{w:o/=a,h:Math.max((s*r*this.getLineHeightFactor()-r*(this.getLineHeightFactor()-1))/a,0)}},t.cellAddPage=function(){n.call(this),this.addPage();var t=this.internal.__cell__.margins||e;return this.internal.__cell__.lastCell=new a(t.left,t.top,void 0,void 0),this.internal.__cell__.pages+=1,this};var o=t.cell=function(){var t;t=arguments[0]instanceof a?arguments[0]:new a(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]),n.call(this);var i=this.internal.__cell__.lastCell,o=this.internal.__cell__.padding,s=this.internal.__cell__.margins||e,c=this.internal.__cell__.tableHeaderRow,u=this.internal.__cell__.printHeaders;return void 0!==i.lineNumber&&(i.lineNumber===t.lineNumber?(t.x=(i.x||0)+(i.width||0),t.y=i.y||0):i.y+i.height+t.height+s.bottom>this.getPageHeight()?(this.cellAddPage(),t.y=s.top,u&&c&&(this.printHeaderRow(t.lineNumber,!0),t.y+=c[0].height)):t.y=i.y+i.height||t.y),void 0!==t.text[0]&&(this.rect(t.x,t.y,t.width,t.height,!0===r?\"FD\":void 0),\"right\"===t.align?this.text(t.text,t.x+t.width-o,t.y+o,{align:\"right\",baseline:\"top\"}):\"center\"===t.align?this.text(t.text,t.x+t.width/2,t.y+o,{align:\"center\",baseline:\"top\",maxWidth:t.width-o-o}):this.text(t.text,t.x+o,t.y+o,{align:\"left\",baseline:\"top\",maxWidth:t.width-o-o})),this.internal.__cell__.lastCell=t,this};t.table=function(t,r,c,u,h){if(n.call(this),!c)throw new Error(\"No data for PDF table.\");var l,f,d,p,g=[],m=[],v=[],b={},y={},w=[],N=[],L=(h=h||{}).autoSize||!1,A=!1!==h.printHeaders,x=h.css&&void 0!==h.css[\"font-size\"]?16*h.css[\"font-size\"]:h.fontSize||12,S=h.margins||Object.assign({width:this.getPageWidth()},e),_=\"number\"==typeof h.padding?h.padding:3,P=h.headerBackgroundColor||\"#c8c8c8\",k=h.headerTextColor||\"#000\";if(i.call(this),this.internal.__cell__.printHeaders=A,this.internal.__cell__.margins=S,this.internal.__cell__.table_font_size=x,this.internal.__cell__.padding=_,this.internal.__cell__.headerBackgroundColor=P,this.internal.__cell__.headerTextColor=k,this.setFontSize(x),null==u)m=g=Object.keys(c[0]),v=g.map((function(){return\"left\"}));else if(Array.isArray(u)&&\"object\"==typeof u[0])for(g=u.map((function(t){return t.name})),m=u.map((function(t){return t.prompt||t.name||\"\"})),v=u.map((function(t){return t.align||\"left\"})),l=0;l<u.length;l+=1)y[u[l].name]=u[l].width*(19.049976/25.4);else Array.isArray(u)&&\"string\"==typeof u[0]&&(m=g=u,v=g.map((function(){return\"left\"})));if(L||Array.isArray(u)&&\"string\"==typeof u[0])for(l=0;l<g.length;l+=1){for(b[p=g[l]]=c.map((function(t){return t[p]})),this.setFont(void 0,\"bold\"),w.push(this.getTextDimensions(m[l],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w),f=b[p],this.setFont(void 0,\"normal\"),d=0;d<f.length;d+=1)w.push(this.getTextDimensions(f[d],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w);y[p]=Math.max.apply(null,w)+_+_,w=[]}if(A){var I={};for(l=0;l<g.length;l+=1)I[g[l]]={},I[g[l]].text=m[l],I[g[l]].align=v[l];var F=s.call(this,I,y);N=g.map((function(e){return new a(t,r,y[e],F,I[e].text,void 0,I[e].align)})),this.setTableHeaderRow(N),this.printHeaderRow(1,!1)}var C=u.reduce((function(t,e){return t[e.name]=e.align,t}),{});for(l=0;l<c.length;l+=1){\"rowStart\"in h&&h.rowStart instanceof Function&&h.rowStart({row:l,data:c[l]},this);var j=s.call(this,c[l],y);for(d=0;d<g.length;d+=1){var O=c[l][g[d]];\"cellStart\"in h&&h.cellStart instanceof Function&&h.cellStart({row:l,col:d,data:O},this),o.call(this,new a(t,r,y[g[d]],j,O,l+2,C[g[d]]))}}return this.internal.__cell__.table_x=t,this.internal.__cell__.table_y=r,this};var s=function(t,e){var r=this.internal.__cell__.padding,n=this.internal.__cell__.table_font_size,i=this.internal.scaleFactor;return Object.keys(t).map((function(n){var i=t[n];return this.splitTextToSize(i.hasOwnProperty(\"text\")?i.text:i,e[n]-r-r)}),this).map((function(t){return this.getLineHeightFactor()*t.length*n/i+r+r}),this).reduce((function(t,e){return Math.max(t,e)}),0)};t.setTableHeaderRow=function(t){n.call(this),this.internal.__cell__.tableHeaderRow=t},t.printHeaderRow=function(t,e){if(n.call(this),!this.internal.__cell__.tableHeaderRow)throw new Error(\"Property tableHeaderRow does not exist.\");var i;if(r=!0,\"function\"==typeof this.internal.__cell__.headerFunction){var s=this.internal.__cell__.headerFunction(this,this.internal.__cell__.pages);this.internal.__cell__.lastCell=new a(s[0],s[1],s[2],s[3],void 0,-1)}this.setFont(void 0,\"bold\");for(var c=[],u=0;u<this.internal.__cell__.tableHeaderRow.length;u+=1){i=this.internal.__cell__.tableHeaderRow[u].clone(),e&&(i.y=this.internal.__cell__.margins.top||0,c.push(i)),i.lineNumber=t;var h=this.getTextColor();this.setTextColor(this.internal.__cell__.headerTextColor),this.setFillColor(this.internal.__cell__.headerBackgroundColor),o.call(this,i),this.setTextColor(h)}c.length>0&&this.setTableHeaderRow(c),this.setFont(void 0,\"normal\"),r=!1}}(M.API);var _t={italic:[\"italic\",\"oblique\",\"normal\"],oblique:[\"oblique\",\"italic\",\"normal\"],normal:[\"normal\",\"oblique\",\"italic\"]},Pt=[\"ultra-condensed\",\"extra-condensed\",\"condensed\",\"semi-condensed\",\"normal\",\"semi-expanded\",\"expanded\",\"extra-expanded\",\"ultra-expanded\"],kt=St(Pt),It=[100,200,300,400,500,600,700,800,900],Ft=St(It);function Ct(t){var e=t.family.replace(/\"|'/g,\"\").toLowerCase(),r=function(t){return _t[t=t||\"normal\"]?t:\"normal\"}(t.style),n=function(t){if(!t)return 400;if(\"number\"==typeof t)return t>=100&&t<=900&&t%100==0?t:400;if(/^\\d00$/.test(t))return parseInt(t);switch(t){case\"bold\":return 700;case\"normal\":default:return 400}}(t.weight),i=function(t){return\"number\"==typeof kt[t=t||\"normal\"]?t:\"normal\"}(t.stretch);return{family:e,style:r,weight:n,stretch:i,src:t.src||[],ref:t.ref||{name:e,style:[i,r,n].join(\" \")}}}function jt(t,e,r,n){var i;for(i=r;i>=0&&i<e.length;i+=n)if(t[e[i]])return t[e[i]];for(i=r;i>=0&&i<e.length;i-=n)if(t[e[i]])return t[e[i]]}var Ot={\"sans-serif\":\"helvetica\",fixed:\"courier\",monospace:\"courier\",terminal:\"courier\",cursive:\"times\",fantasy:\"times\",serif:\"times\"},Bt={caption:\"times\",icon:\"times\",menu:\"times\",\"message-box\":\"times\",\"small-caption\":\"times\",\"status-bar\":\"times\"};function Mt(t){return[t.stretch,t.style,t.weight,t.family].join(\" \")}function Et(t,e,r){for(var n=(r=r||{}).defaultFontFamily||\"times\",i=Object.assign({},Ot,r.genericFontFamilies||{}),a=null,o=null,s=0;s<e.length;++s)if(i[(a=Ct(e[s])).family]&&(a.family=i[a.family]),t.hasOwnProperty(a.family)){o=t[a.family];break}if(!(o=o||t[n]))throw new Error(\"Could not find a font-family for the rule '\"+Mt(a)+\"' and default family '\"+n+\"'.\");if(o=function(t,e){if(e[t])return e[t];var r=kt[t],n=r<=kt.normal?-1:1,i=jt(e,Pt,r,n);if(!i)throw new Error(\"Could not find a matching font-stretch value for \"+t);return i}(a.stretch,o),o=function(t,e){if(e[t])return e[t];for(var r=_t[t],n=0;n<r.length;++n)if(e[r[n]])return e[r[n]];throw new Error(\"Could not find a matching font-style for \"+t)}(a.style,o),!(o=function(t,e){if(e[t])return e[t];if(400===t&&e[500])return e[500];if(500===t&&e[400])return e[400];var r=Ft[t],n=jt(e,It,r,t<400?-1:1);if(!n)throw new Error(\"Could not find a matching font-weight for value \"+t);return n}(a.weight,o)))throw new Error(\"Failed to resolve a font for the rule '\"+Mt(a)+\"'.\");return o}function qt(t){return t.trimLeft()}function Dt(t,e){for(var r=0;r<t.length;){if(t.charAt(r)===e)return[t.substring(0,r),t.substring(r+1)];r+=1}return null}function Rt(t){var e=t.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);return null===e?null:[e[0],t.substring(e[0].length)]}var Tt,zt,Ut,Ht=[\"times\"];!function(t){var e,r,n,a,o,s,c,u,h,f=function(t){return t=t||{},this.isStrokeTransparent=t.isStrokeTransparent||!1,this.strokeOpacity=t.strokeOpacity||1,this.strokeStyle=t.strokeStyle||\"#000000\",this.fillStyle=t.fillStyle||\"#000000\",this.isFillTransparent=t.isFillTransparent||!1,this.fillOpacity=t.fillOpacity||1,this.font=t.font||\"10px sans-serif\",this.textBaseline=t.textBaseline||\"alphabetic\",this.textAlign=t.textAlign||\"left\",this.lineWidth=t.lineWidth||1,this.lineJoin=t.lineJoin||\"miter\",this.lineCap=t.lineCap||\"butt\",this.path=t.path||[],this.transform=void 0!==t.transform?t.transform.clone():new u,this.globalCompositeOperation=t.globalCompositeOperation||\"normal\",this.globalAlpha=t.globalAlpha||1,this.clip_path=t.clip_path||[],this.currentPoint=t.currentPoint||new s,this.miterLimit=t.miterLimit||10,this.lastPoint=t.lastPoint||new s,this.lineDashOffset=t.lineDashOffset||0,this.lineDash=t.lineDash||[],this.margin=t.margin||[0,0,0,0],this.prevPageLastElemOffset=t.prevPageLastElemOffset||0,this.ignoreClearRect=\"boolean\"!=typeof t.ignoreClearRect||t.ignoreClearRect,this};t.events.push([\"initialized\",function(){this.context2d=new d(this),e=this.internal.f2,r=this.internal.getCoordinateString,n=this.internal.getVerticalCoordinateString,a=this.internal.getHorizontalCoordinate,o=this.internal.getVerticalCoordinate,s=this.internal.Point,c=this.internal.Rectangle,u=this.internal.Matrix,h=new f}]);var d=function(t){Object.defineProperty(this,\"canvas\",{get:function(){return{parentNode:!1,style:!1}}});var e=t;Object.defineProperty(this,\"pdf\",{get:function(){return e}});var r=!1;Object.defineProperty(this,\"pageWrapXEnabled\",{get:function(){return r},set:function(t){r=Boolean(t)}});var n=!1;Object.defineProperty(this,\"pageWrapYEnabled\",{get:function(){return n},set:function(t){n=Boolean(t)}});var i=0;Object.defineProperty(this,\"posX\",{get:function(){return i},set:function(t){isNaN(t)||(i=t)}});var a=0;Object.defineProperty(this,\"posY\",{get:function(){return a},set:function(t){isNaN(t)||(a=t)}}),Object.defineProperty(this,\"margin\",{get:function(){return h.margin},set:function(t){var e;\"number\"==typeof t?e=[t,t,t,t]:((e=new Array(4))[0]=t[0],e[1]=t.length>=2?t[1]:e[0],e[2]=t.length>=3?t[2]:e[0],e[3]=t.length>=4?t[3]:e[1]),h.margin=e}});var o=!1;Object.defineProperty(this,\"autoPaging\",{get:function(){return o},set:function(t){o=t}});var s=0;Object.defineProperty(this,\"lastBreak\",{get:function(){return s},set:function(t){s=t}});var c=[];Object.defineProperty(this,\"pageBreaks\",{get:function(){return c},set:function(t){c=t}}),Object.defineProperty(this,\"ctx\",{get:function(){return h},set:function(t){t instanceof f&&(h=t)}}),Object.defineProperty(this,\"path\",{get:function(){return h.path},set:function(t){h.path=t}});var u=[];Object.defineProperty(this,\"ctxStack\",{get:function(){return u},set:function(t){u=t}}),Object.defineProperty(this,\"fillStyle\",{get:function(){return this.ctx.fillStyle},set:function(t){var e;e=p(t),this.ctx.fillStyle=e.style,this.ctx.isFillTransparent=0===e.a,this.ctx.fillOpacity=e.a,this.pdf.setFillColor(e.r,e.g,e.b,{a:e.a}),this.pdf.setTextColor(e.r,e.g,e.b,{a:e.a})}}),Object.defineProperty(this,\"strokeStyle\",{get:function(){return this.ctx.strokeStyle},set:function(t){var e=p(t);this.ctx.strokeStyle=e.style,this.ctx.isStrokeTransparent=0===e.a,this.ctx.strokeOpacity=e.a,0===e.a?this.pdf.setDrawColor(255,255,255):(e.a,this.pdf.setDrawColor(e.r,e.g,e.b))}}),Object.defineProperty(this,\"lineCap\",{get:function(){return this.ctx.lineCap},set:function(t){-1!==[\"butt\",\"round\",\"square\"].indexOf(t)&&(this.ctx.lineCap=t,this.pdf.setLineCap(t))}}),Object.defineProperty(this,\"lineWidth\",{get:function(){return this.ctx.lineWidth},set:function(t){isNaN(t)||(this.ctx.lineWidth=t,this.pdf.setLineWidth(t))}}),Object.defineProperty(this,\"lineJoin\",{get:function(){return this.ctx.lineJoin},set:function(t){-1!==[\"bevel\",\"round\",\"miter\"].indexOf(t)&&(this.ctx.lineJoin=t,this.pdf.setLineJoin(t))}}),Object.defineProperty(this,\"miterLimit\",{get:function(){return this.ctx.miterLimit},set:function(t){isNaN(t)||(this.ctx.miterLimit=t,this.pdf.setMiterLimit(t))}}),Object.defineProperty(this,\"textBaseline\",{get:function(){return this.ctx.textBaseline},set:function(t){this.ctx.textBaseline=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){return this.ctx.textAlign},set:function(t){-1!==[\"right\",\"end\",\"center\",\"left\",\"start\"].indexOf(t)&&(this.ctx.textAlign=t)}});var l=null;function d(t,e){if(null===l){var r=function(t){var e=[];return Object.keys(t).forEach((function(r){t[r].forEach((function(t){var n=null;switch(t){case\"bold\":n={family:r,weight:\"bold\"};break;case\"italic\":n={family:r,style:\"italic\"};break;case\"bolditalic\":n={family:r,weight:\"bold\",style:\"italic\"};break;case\"\":case\"normal\":n={family:r}}null!==n&&(n.ref={name:r,style:t},e.push(n))}))})),e}(t.getFontList());l=function(t){for(var e={},r=0;r<t.length;++r){var n=Ct(t[r]),i=n.family,a=n.stretch,o=n.style,s=n.weight;e[i]=e[i]||{},e[i][a]=e[i][a]||{},e[i][a][o]=e[i][a][o]||{},e[i][a][o][s]=n}return e}(r.concat(e))}return l}var g=null;Object.defineProperty(this,\"fontFaces\",{get:function(){return g},set:function(t){l=null,g=t}}),Object.defineProperty(this,\"font\",{get:function(){return this.ctx.font},set:function(t){var e;if(this.ctx.font=t,null!==(e=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i.exec(t))){var r=e[1],n=(e[2],e[3]),i=e[4],a=(e[5],e[6]),o=/^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(i)[2];i=\"px\"===o?Math.floor(parseFloat(i)*this.pdf.internal.scaleFactor):\"em\"===o?Math.floor(parseFloat(i)*this.pdf.getFontSize()):Math.floor(parseFloat(i)*this.pdf.internal.scaleFactor),this.pdf.setFontSize(i);var s=function(t){var e,r,n=[],i=t.trim();if(\"\"===i)return Ht;if(i in Bt)return[Bt[i]];for(;\"\"!==i;){switch(r=null,e=(i=qt(i)).charAt(0)){case'\"':case\"'\":r=Dt(i.substring(1),e);break;default:r=Rt(i)}if(null===r)return Ht;if(n.push(r[0]),\"\"!==(i=qt(r[1]))&&\",\"!==i.charAt(0))return Ht;i=i.replace(/^,/,\"\")}return n}(a);if(this.fontFaces){var c=Et(d(this.pdf,this.fontFaces),s.map((function(t){return{family:t,stretch:\"normal\",weight:n,style:r}})));this.pdf.setFont(c.ref.name,c.ref.style)}else{var u=\"\";(\"bold\"===n||parseInt(n,10)>=700||\"bold\"===r)&&(u=\"bold\"),\"italic\"===r&&(u+=\"italic\"),0===u.length&&(u=\"normal\");for(var h=\"\",l={arial:\"Helvetica\",Arial:\"Helvetica\",verdana:\"Helvetica\",Verdana:\"Helvetica\",helvetica:\"Helvetica\",Helvetica:\"Helvetica\",\"sans-serif\":\"Helvetica\",fixed:\"Courier\",monospace:\"Courier\",terminal:\"Courier\",cursive:\"Times\",fantasy:\"Times\",serif:\"Times\"},f=0;f<s.length;f++){if(void 0!==this.pdf.internal.getFont(s[f],u,{noFallback:!0,disableWarning:!0})){h=s[f];break}if(\"bolditalic\"===u&&void 0!==this.pdf.internal.getFont(s[f],\"bold\",{noFallback:!0,disableWarning:!0}))h=s[f],u=\"bold\";else if(void 0!==this.pdf.internal.getFont(s[f],\"normal\",{noFallback:!0,disableWarning:!0})){h=s[f],u=\"normal\";break}}if(\"\"===h)for(var p=0;p<s.length;p++)if(l[s[p]]){h=l[s[p]];break}h=\"\"===h?\"Times\":h,this.pdf.setFont(h,u)}}}}),Object.defineProperty(this,\"globalCompositeOperation\",{get:function(){return this.ctx.globalCompositeOperation},set:function(t){this.ctx.globalCompositeOperation=t}}),Object.defineProperty(this,\"globalAlpha\",{get:function(){return this.ctx.globalAlpha},set:function(t){this.ctx.globalAlpha=t}}),Object.defineProperty(this,\"lineDashOffset\",{get:function(){return this.ctx.lineDashOffset},set:function(t){this.ctx.lineDashOffset=t,R.call(this)}}),Object.defineProperty(this,\"lineDash\",{get:function(){return this.ctx.lineDash},set:function(t){this.ctx.lineDash=t,R.call(this)}}),Object.defineProperty(this,\"ignoreClearRect\",{get:function(){return this.ctx.ignoreClearRect},set:function(t){this.ctx.ignoreClearRect=Boolean(t)}})};d.prototype.setLineDash=function(t){this.lineDash=t},d.prototype.getLineDash=function(){return this.lineDash.length%2?this.lineDash.concat(this.lineDash):this.lineDash.slice()},d.prototype.fill=function(){L.call(this,\"fill\",!1)},d.prototype.stroke=function(){L.call(this,\"stroke\",!1)},d.prototype.beginPath=function(){this.path=[{type:\"begin\"}]},d.prototype.moveTo=function(t,e){if(isNaN(t)||isNaN(e))throw i.error(\"jsPDF.context2d.moveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");var r=this.ctx.transform.applyToPoint(new s(t,e));this.path.push({type:\"mt\",x:r.x,y:r.y}),this.ctx.lastPoint=new s(t,e)},d.prototype.closePath=function(){var t=new s(0,0),e=0;for(e=this.path.length-1;-1!==e;e--)if(\"begin\"===this.path[e].type&&\"object\"==typeof this.path[e+1]&&\"number\"==typeof this.path[e+1].x){t=new s(this.path[e+1].x,this.path[e+1].y);break}this.path.push({type:\"close\"}),this.ctx.lastPoint=new s(t.x,t.y)},d.prototype.lineTo=function(t,e){if(isNaN(t)||isNaN(e))throw i.error(\"jsPDF.context2d.lineTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");var r=this.ctx.transform.applyToPoint(new s(t,e));this.path.push({type:\"lt\",x:r.x,y:r.y}),this.ctx.lastPoint=new s(r.x,r.y)},d.prototype.clip=function(){this.ctx.clip_path=JSON.parse(JSON.stringify(this.path)),L.call(this,null,!0)},d.prototype.quadraticCurveTo=function(t,e,r,n){if(isNaN(r)||isNaN(n)||isNaN(t)||isNaN(e))throw i.error(\"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\");var a=this.ctx.transform.applyToPoint(new s(r,n)),o=this.ctx.transform.applyToPoint(new s(t,e));this.path.push({type:\"qct\",x1:o.x,y1:o.y,x:a.x,y:a.y}),this.ctx.lastPoint=new s(a.x,a.y)},d.prototype.bezierCurveTo=function(t,e,r,n,a,o){if(isNaN(a)||isNaN(o)||isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw i.error(\"jsPDF.context2d.bezierCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\");var c=this.ctx.transform.applyToPoint(new s(a,o)),u=this.ctx.transform.applyToPoint(new s(t,e)),h=this.ctx.transform.applyToPoint(new s(r,n));this.path.push({type:\"bct\",x1:u.x,y1:u.y,x2:h.x,y2:h.y,x:c.x,y:c.y}),this.ctx.lastPoint=new s(c.x,c.y)},d.prototype.arc=function(t,e,r,n,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(a))throw i.error(\"jsPDF.context2d.arc: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");if(o=Boolean(o),!this.ctx.transform.isIdentity){var c=this.ctx.transform.applyToPoint(new s(t,e));t=c.x,e=c.y;var u=this.ctx.transform.applyToPoint(new s(0,r)),h=this.ctx.transform.applyToPoint(new s(0,0));r=Math.sqrt(Math.pow(u.x-h.x,2)+Math.pow(u.y-h.y,2))}Math.abs(a-n)>=2*Math.PI&&(n=0,a=2*Math.PI),this.path.push({type:\"arc\",x:t,y:e,radius:r,startAngle:n,endAngle:a,counterclockwise:o})},d.prototype.arcTo=function(t,e,r,n,i){throw new Error(\"arcTo not implemented.\")},d.prototype.rect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw i.error(\"jsPDF.context2d.rect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");this.moveTo(t,e),this.lineTo(t+r,e),this.lineTo(t+r,e+n),this.lineTo(t,e+n),this.lineTo(t,e),this.lineTo(t+r,e),this.lineTo(t,e)},d.prototype.fillRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw i.error(\"jsPDF.context2d.fillRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");if(!g.call(this)){var a={};\"butt\"!==this.lineCap&&(a.lineCap=this.lineCap,this.lineCap=\"butt\"),\"miter\"!==this.lineJoin&&(a.lineJoin=this.lineJoin,this.lineJoin=\"miter\"),this.beginPath(),this.rect(t,e,r,n),this.fill(),a.hasOwnProperty(\"lineCap\")&&(this.lineCap=a.lineCap),a.hasOwnProperty(\"lineJoin\")&&(this.lineJoin=a.lineJoin)}},d.prototype.strokeRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw i.error(\"jsPDF.context2d.strokeRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");m.call(this)||(this.beginPath(),this.rect(t,e,r,n),this.stroke())},d.prototype.clearRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw i.error(\"jsPDF.context2d.clearRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");this.ignoreClearRect||(this.fillStyle=\"#ffffff\",this.fillRect(t,e,r,n))},d.prototype.save=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,r=0;r<this.pdf.internal.getNumberOfPages();r++)this.pdf.setPage(r+1),this.pdf.internal.out(\"q\");if(this.pdf.setPage(e),t){this.ctx.fontSize=this.pdf.internal.getFontSize();var n=new f(this.ctx);this.ctxStack.push(this.ctx),this.ctx=n}},d.prototype.restore=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,r=0;r<this.pdf.internal.getNumberOfPages();r++)this.pdf.setPage(r+1),this.pdf.internal.out(\"Q\");this.pdf.setPage(e),t&&0!==this.ctxStack.length&&(this.ctx=this.ctxStack.pop(),this.fillStyle=this.ctx.fillStyle,this.strokeStyle=this.ctx.strokeStyle,this.font=this.ctx.font,this.lineCap=this.ctx.lineCap,this.lineWidth=this.ctx.lineWidth,this.lineJoin=this.ctx.lineJoin,this.lineDash=this.ctx.lineDash,this.lineDashOffset=this.ctx.lineDashOffset)},d.prototype.toDataURL=function(){throw new Error(\"toDataUrl not implemented.\")};var p=function(t){var e,r,n,i;if(!0===t.isCanvasGradient&&(t=t.getColor()),!t)return{r:0,g:0,b:0,a:0,style:t};if(/transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/.test(t))e=0,r=0,n=0,i=0;else{var a=/rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/.exec(t);if(null!==a)e=parseInt(a[1]),r=parseInt(a[2]),n=parseInt(a[3]),i=1;else if(null!==(a=/rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/.exec(t)))e=parseInt(a[1]),r=parseInt(a[2]),n=parseInt(a[3]),i=parseFloat(a[4]);else{if(i=1,\"string\"==typeof t&&\"#\"!==t.charAt(0)){var o=new l(t);t=o.ok?o.toHex():\"#000000\"}4===t.length?(e=t.substring(1,2),e+=e,r=t.substring(2,3),r+=r,n=t.substring(3,4),n+=n):(e=t.substring(1,3),r=t.substring(3,5),n=t.substring(5,7)),e=parseInt(e,16),r=parseInt(r,16),n=parseInt(n,16)}}return{r:e,g:r,b:n,a:i,style:t}},g=function(){return this.ctx.isFillTransparent||0==this.globalAlpha},m=function(){return Boolean(this.ctx.isStrokeTransparent||0==this.globalAlpha)};d.prototype.fillText=function(t,e,r,n){if(isNaN(e)||isNaN(r)||\"string\"!=typeof t)throw i.error(\"jsPDF.context2d.fillText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");if(n=isNaN(n)?void 0:n,!g.call(this)){var a=E(this.ctx.transform.rotation),o=this.ctx.transform.scaleX;F.call(this,{text:t,x:e,y:r,scale:o,angle:a,align:this.textAlign,maxWidth:n})}},d.prototype.strokeText=function(t,e,r,n){if(isNaN(e)||isNaN(r)||\"string\"!=typeof t)throw i.error(\"jsPDF.context2d.strokeText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");if(!m.call(this)){n=isNaN(n)?void 0:n;var a=E(this.ctx.transform.rotation),o=this.ctx.transform.scaleX;F.call(this,{text:t,x:e,y:r,scale:o,renderingMode:\"stroke\",angle:a,align:this.textAlign,maxWidth:n})}},d.prototype.measureText=function(t){if(\"string\"!=typeof t)throw i.error(\"jsPDF.context2d.measureText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.measureText\");var e=this.pdf,r=this.pdf.internal.scaleFactor,n=e.internal.getFontSize(),a=e.getStringUnitWidth(t)*n/e.internal.scaleFactor,o=function(t){var e=(t=t||{}).width||0;return Object.defineProperty(this,\"width\",{get:function(){return e}}),this};return new o({width:a*=Math.round(96*r/72*1e4)/1e4})},d.prototype.scale=function(t,e){if(isNaN(t)||isNaN(e))throw i.error(\"jsPDF.context2d.scale: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");var r=new u(t,0,0,e,0,0);this.ctx.transform=this.ctx.transform.multiply(r)},d.prototype.rotate=function(t){if(isNaN(t))throw i.error(\"jsPDF.context2d.rotate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");var e=new u(Math.cos(t),Math.sin(t),-Math.sin(t),Math.cos(t),0,0);this.ctx.transform=this.ctx.transform.multiply(e)},d.prototype.translate=function(t,e){if(isNaN(t)||isNaN(e))throw i.error(\"jsPDF.context2d.translate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");var r=new u(1,0,0,1,t,e);this.ctx.transform=this.ctx.transform.multiply(r)},d.prototype.transform=function(t,e,r,n,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(a)||isNaN(o))throw i.error(\"jsPDF.context2d.transform: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");var s=new u(t,e,r,n,a,o);this.ctx.transform=this.ctx.transform.multiply(s)},d.prototype.setTransform=function(t,e,r,n,i,a){t=isNaN(t)?1:t,e=isNaN(e)?0:e,r=isNaN(r)?0:r,n=isNaN(n)?1:n,i=isNaN(i)?0:i,a=isNaN(a)?0:a,this.ctx.transform=new u(t,e,r,n,i,a)};var v=function(){return this.margin[0]>0||this.margin[1]>0||this.margin[2]>0||this.margin[3]>0};d.prototype.drawImage=function(t,e,r,n,i,a,o,s,h){var l=this.pdf.getImageProperties(t),f=1,d=1,p=1,g=1;void 0!==n&&void 0!==s&&(p=s/n,g=h/i,f=l.width/n*s/n,d=l.height/i*h/i),void 0===a&&(a=e,o=r,e=0,r=0),void 0!==n&&void 0===s&&(s=n,h=i),void 0===n&&void 0===s&&(s=l.width,h=l.height);for(var m,y=this.ctx.transform.decompose(),L=E(y.rotate.shx),x=new u,S=(x=(x=(x=x.multiply(y.translate)).multiply(y.skew)).multiply(y.scale)).applyToRectangle(new c(a-e*p,o-r*g,n*f,i*d)),_=b.call(this,S),P=[],k=0;k<_.length;k+=1)-1===P.indexOf(_[k])&&P.push(_[k]);if(N(P),this.autoPaging)for(var I=P[0],F=P[P.length-1],C=I;C<F+1;C++){this.pdf.setPage(C);var j=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],O=1===C?this.posY+this.margin[0]:this.margin[0],B=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],M=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],q=1===C?0:B+(C-2)*M;if(0!==this.ctx.clip_path.length){var D=this.path;m=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=w(m,this.posX+this.margin[3],-q+O+this.ctx.prevPageLastElemOffset),A.call(this,\"fill\",!0),this.path=D}var R=JSON.parse(JSON.stringify(S));R=w([R],this.posX+this.margin[3],-q+O+this.ctx.prevPageLastElemOffset)[0];var T=(C>I||C<F)&&v.call(this);T&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],j,M,null).clip().discardPath()),this.pdf.addImage(t,\"JPEG\",R.x,R.y,R.w,R.h,null,null,L),T&&this.pdf.restoreGraphicsState()}else this.pdf.addImage(t,\"JPEG\",S.x,S.y,S.w,S.h,null,null,L)};var b=function(t,e,r){var n=[];e=e||this.pdf.internal.pageSize.width,r=r||this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2];var i=this.posY+this.ctx.prevPageLastElemOffset;switch(t.type){default:case\"mt\":case\"lt\":n.push(Math.floor((t.y+i)/r)+1);break;case\"arc\":n.push(Math.floor((t.y+i-t.radius)/r)+1),n.push(Math.floor((t.y+i+t.radius)/r)+1);break;case\"qct\":var a=q(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x,t.y);n.push(Math.floor((a.y+i)/r)+1),n.push(Math.floor((a.y+a.h+i)/r)+1);break;case\"bct\":var o=D(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x2,t.y2,t.x,t.y);n.push(Math.floor((o.y+i)/r)+1),n.push(Math.floor((o.y+o.h+i)/r)+1);break;case\"rect\":n.push(Math.floor((t.y+i)/r)+1),n.push(Math.floor((t.y+t.h+i)/r)+1)}for(var s=0;s<n.length;s+=1)for(;this.pdf.internal.getNumberOfPages()<n[s];)y.call(this);return n},y=function(){var t=this.fillStyle,e=this.strokeStyle,r=this.font,n=this.lineCap,i=this.lineWidth,a=this.lineJoin;this.pdf.addPage(),this.fillStyle=t,this.strokeStyle=e,this.font=r,this.lineCap=n,this.lineWidth=i,this.lineJoin=a},w=function(t,e,r){for(var n=0;n<t.length;n++)switch(t[n].type){case\"bct\":t[n].x2+=e,t[n].y2+=r;case\"qct\":t[n].x1+=e,t[n].y1+=r;case\"mt\":case\"lt\":case\"arc\":default:t[n].x+=e,t[n].y+=r}return t},N=function(t){return t.sort((function(t,e){return t-e}))},L=function(t,e){for(var r,n,i=this.fillStyle,a=this.strokeStyle,o=this.lineCap,s=this.lineWidth,c=Math.abs(s*this.ctx.transform.scaleX),u=this.lineJoin,h=JSON.parse(JSON.stringify(this.path)),l=JSON.parse(JSON.stringify(this.path)),f=[],d=0;d<l.length;d++)if(void 0!==l[d].x)for(var p=b.call(this,l[d]),g=0;g<p.length;g+=1)-1===f.indexOf(p[g])&&f.push(p[g]);for(var m=0;m<f.length;m++)for(;this.pdf.internal.getNumberOfPages()<f[m];)y.call(this);if(N(f),this.autoPaging)for(var L=f[0],x=f[f.length-1],S=L;S<x+1;S++){this.pdf.setPage(S),this.fillStyle=i,this.strokeStyle=a,this.lineCap=o,this.lineWidth=c,this.lineJoin=u;var _=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],P=1===S?this.posY+this.margin[0]:this.margin[0],k=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],I=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],F=1===S?0:k+(S-2)*I;if(0!==this.ctx.clip_path.length){var C=this.path;r=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=w(r,this.posX+this.margin[3],-F+P+this.ctx.prevPageLastElemOffset),A.call(this,t,!0),this.path=C}if(n=JSON.parse(JSON.stringify(h)),this.path=w(n,this.posX+this.margin[3],-F+P+this.ctx.prevPageLastElemOffset),!1===e||0===S){var j=(S>L||S<x)&&v.call(this);j&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],_,I,null).clip().discardPath()),A.call(this,t,e),j&&this.pdf.restoreGraphicsState()}this.lineWidth=s}else this.lineWidth=c,A.call(this,t,e),this.lineWidth=s;this.path=h},A=function(t,e){if((\"stroke\"!==t||e||!m.call(this))&&(\"stroke\"===t||e||!g.call(this))){for(var r,n,i=[],a=this.path,o=0;o<a.length;o++){var s=a[o];switch(s.type){case\"begin\":i.push({begin:!0});break;case\"close\":i.push({close:!0});break;case\"mt\":i.push({start:s,deltas:[],abs:[]});break;case\"lt\":var c=i.length;if(a[o-1]&&!isNaN(a[o-1].x)&&(r=[s.x-a[o-1].x,s.y-a[o-1].y],c>0))for(;c>=0;c--)if(!0!==i[c-1].close&&!0!==i[c-1].begin){i[c-1].deltas.push(r),i[c-1].abs.push(s);break}break;case\"bct\":r=[s.x1-a[o-1].x,s.y1-a[o-1].y,s.x2-a[o-1].x,s.y2-a[o-1].y,s.x-a[o-1].x,s.y-a[o-1].y],i[i.length-1].deltas.push(r);break;case\"qct\":var u=a[o-1].x+2/3*(s.x1-a[o-1].x),h=a[o-1].y+2/3*(s.y1-a[o-1].y),l=s.x+2/3*(s.x1-s.x),f=s.y+2/3*(s.y1-s.y),d=s.x,p=s.y;r=[u-a[o-1].x,h-a[o-1].y,l-a[o-1].x,f-a[o-1].y,d-a[o-1].x,p-a[o-1].y],i[i.length-1].deltas.push(r);break;case\"arc\":i.push({deltas:[],abs:[],arc:!0}),Array.isArray(i[i.length-1].abs)&&i[i.length-1].abs.push(s)}}n=e?null:\"stroke\"===t?\"stroke\":\"fill\";for(var v=!1,b=0;b<i.length;b++)if(i[b].arc)for(var y=i[b].abs,w=0;w<y.length;w++){var N=y[w];\"arc\"===N.type?_.call(this,N.x,N.y,N.radius,N.startAngle,N.endAngle,N.counterclockwise,void 0,e,!v):C.call(this,N.x,N.y),v=!0}else if(!0===i[b].close)this.pdf.internal.out(\"h\"),v=!1;else if(!0!==i[b].begin){var L=i[b].start.x,A=i[b].start.y;j.call(this,i[b].deltas,L,A),v=!0}n&&P.call(this,n),e&&k.call(this)}},x=function(t){var e=this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor,r=e*(this.pdf.internal.getLineHeightFactor()-1);switch(this.ctx.textBaseline){case\"bottom\":return t-r;case\"top\":return t+e-r;case\"hanging\":return t+e-2*r;case\"middle\":return t+e/2-r;case\"ideographic\":return t;case\"alphabetic\":default:return t}},S=function(t){return t+this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor*(this.pdf.internal.getLineHeightFactor()-1)};d.prototype.createLinearGradient=function(){var t=function(){};return t.colorStops=[],t.addColorStop=function(t,e){this.colorStops.push([t,e])},t.getColor=function(){return 0===this.colorStops.length?\"#000000\":this.colorStops[0][1]},t.isCanvasGradient=!0,t},d.prototype.createPattern=function(){return this.createLinearGradient()},d.prototype.createRadialGradient=function(){return this.createLinearGradient()};var _=function(t,e,r,n,i,a,o,s,c){for(var u=B.call(this,r,n,i,a),h=0;h<u.length;h++){var l=u[h];0===h&&(c?I.call(this,l.x1+t,l.y1+e):C.call(this,l.x1+t,l.y1+e)),O.call(this,t,e,l.x2,l.y2,l.x3,l.y3,l.x4,l.y4)}s?k.call(this):P.call(this,o)},P=function(t){switch(t){case\"stroke\":this.pdf.internal.out(\"S\");break;case\"fill\":this.pdf.internal.out(\"f\")}},k=function(){this.pdf.clip(),this.pdf.discardPath()},I=function(t,e){this.pdf.internal.out(r(t)+\" \"+n(e)+\" m\")},F=function(t){var e;switch(t.align){case\"right\":case\"end\":e=\"right\";break;case\"center\":e=\"center\";break;case\"left\":case\"start\":default:e=\"left\"}var r=this.pdf.getTextDimensions(t.text),n=x.call(this,t.y),i=S.call(this,n)-r.h,a=this.ctx.transform.applyToPoint(new s(t.x,n)),o=this.ctx.transform.decompose(),h=new u;h=(h=(h=h.multiply(o.translate)).multiply(o.skew)).multiply(o.scale);for(var l,f,d,p=this.ctx.transform.applyToRectangle(new c(t.x,n,r.w,r.h)),g=h.applyToRectangle(new c(t.x,i,r.w,r.h)),m=b.call(this,g),y=[],L=0;L<m.length;L+=1)-1===y.indexOf(m[L])&&y.push(m[L]);if(N(y),this.autoPaging)for(var _=y[0],P=y[y.length-1],k=_;k<P+1;k++){this.pdf.setPage(k);var I=1===k?this.posY+this.margin[0]:this.margin[0],F=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],C=this.pdf.internal.pageSize.height-this.margin[2],j=C-this.margin[0],O=this.pdf.internal.pageSize.width-this.margin[1],B=O-this.margin[3],M=1===k?0:F+(k-2)*j;if(0!==this.ctx.clip_path.length){var E=this.path;l=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=w(l,this.posX+this.margin[3],-1*M+I),A.call(this,\"fill\",!0),this.path=E}var q=w([JSON.parse(JSON.stringify(g))],this.posX+this.margin[3],-M+I+this.ctx.prevPageLastElemOffset)[0];t.scale>=.01&&(f=this.pdf.internal.getFontSize(),this.pdf.setFontSize(f*t.scale),d=this.lineWidth,this.lineWidth=d*t.scale);var D=\"text\"!==this.autoPaging;if(D||q.y+q.h<=C){if(D||q.y>=I&&q.x<=O){var R=D?t.text:this.pdf.splitTextToSize(t.text,t.maxWidth||O-q.x)[0],T=w([JSON.parse(JSON.stringify(p))],this.posX+this.margin[3],-M+I+this.ctx.prevPageLastElemOffset)[0],z=D&&(k>_||k<P)&&v.call(this);z&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],B,j,null).clip().discardPath()),this.pdf.text(R,T.x,T.y,{angle:t.angle,align:e,renderingMode:t.renderingMode}),z&&this.pdf.restoreGraphicsState()}}else q.y<C&&(this.ctx.prevPageLastElemOffset+=C-q.y);t.scale>=.01&&(this.pdf.setFontSize(f),this.lineWidth=d)}else t.scale>=.01&&(f=this.pdf.internal.getFontSize(),this.pdf.setFontSize(f*t.scale),d=this.lineWidth,this.lineWidth=d*t.scale),this.pdf.text(t.text,a.x+this.posX,a.y+this.posY,{angle:t.angle,align:e,renderingMode:t.renderingMode,maxWidth:t.maxWidth}),t.scale>=.01&&(this.pdf.setFontSize(f),this.lineWidth=d)},C=function(t,e,i,a){i=i||0,a=a||0,this.pdf.internal.out(r(t+i)+\" \"+n(e+a)+\" l\")},j=function(t,e,r){return this.pdf.lines(t,e,r,null,null)},O=function(t,r,n,i,s,c,u,h){this.pdf.internal.out([e(a(n+t)),e(o(i+r)),e(a(s+t)),e(o(c+r)),e(a(u+t)),e(o(h+r)),\"c\"].join(\" \"))},B=function(t,e,r,n){for(var i=2*Math.PI,a=Math.PI/2;e>r;)e-=i;var o=Math.abs(r-e);o<i&&n&&(o=i-o);for(var s=[],c=n?-1:1,u=e;o>1e-5;){var h=u+c*Math.min(o,a);s.push(M.call(this,t,u,h)),o-=Math.abs(h-u),u=h}return s},M=function(t,e,r){var n=(r-e)/2,i=t*Math.cos(n),a=t*Math.sin(n),o=i,s=-a,c=o*o+s*s,u=c+o*i+s*a,h=4/3*(Math.sqrt(2*c*u)-u)/(o*a-s*i),l=o-h*s,f=s+h*o,d=l,p=-f,g=n+e,m=Math.cos(g),v=Math.sin(g);return{x1:t*Math.cos(e),y1:t*Math.sin(e),x2:l*m-f*v,y2:l*v+f*m,x3:d*m-p*v,y3:d*v+p*m,x4:t*Math.cos(r),y4:t*Math.sin(r)}},E=function(t){return 180*t/Math.PI},q=function(t,e,r,n,i,a){var o=t+.5*(r-t),s=e+.5*(n-e),u=i+.5*(r-i),h=a+.5*(n-a),l=Math.min(t,i,o,u),f=Math.max(t,i,o,u),d=Math.min(e,a,s,h),p=Math.max(e,a,s,h);return new c(l,d,f-l,p-d)},D=function(t,e,r,n,i,a,o,s){var u,h,l,f,d,p,g,m,v,b,y,w,N,L,A=r-t,x=n-e,S=i-r,_=a-n,P=o-i,k=s-a;for(h=0;h<41;h++)v=(g=(l=t+(u=h/40)*A)+u*((d=r+u*S)-l))+u*(d+u*(i+u*P-d)-g),b=(m=(f=e+u*x)+u*((p=n+u*_)-f))+u*(p+u*(a+u*k-p)-m),0==h?(y=v,w=b,N=v,L=b):(y=Math.min(y,v),w=Math.min(w,b),N=Math.max(N,v),L=Math.max(L,b));return new c(Math.round(y),Math.round(w),Math.round(N-y),Math.round(L-w))},R=function(){if(this.prevLineDash||this.ctx.lineDash.length||this.ctx.lineDashOffset){var t,e,r=(t=this.ctx.lineDash,e=this.ctx.lineDashOffset,JSON.stringify({lineDash:t,lineDashOffset:e}));this.prevLineDash!==r&&(this.pdf.setLineDash(this.ctx.lineDash,this.ctx.lineDashOffset),this.prevLineDash=r)}}}(M.API),\n/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(e){var r=function(t){var e,r,n,i,a,o,s,c,u,h;for(/[^\\x00-\\xFF]/.test(t),r=[],n=0,i=(t+=e=\"\\0\\0\\0\\0\".slice(t.length%4||4)).length;i>n;n+=4)0!==(a=(t.charCodeAt(n)<<24)+(t.charCodeAt(n+1)<<16)+(t.charCodeAt(n+2)<<8)+t.charCodeAt(n+3))?(o=(a=((a=((a=((a=(a-(h=a%85))/85)-(u=a%85))/85)-(c=a%85))/85)-(s=a%85))/85)%85,r.push(o+33,s+33,c+33,u+33,h+33)):r.push(122);return function(t,e){for(var r=e;r>0;r--)t.pop()}(r,e.length),String.fromCharCode.apply(String,r)+\"~>\"},n=function(t){var e,r,n,i,a,o=String,s=\"length\",c=255,u=\"charCodeAt\",h=\"slice\",l=\"replace\";for(t[h](-2),t=t[h](0,-2)[l](/\\s/g,\"\")[l](\"z\",\"!!!!!\"),n=[],i=0,a=(t+=e=\"uuuuu\"[h](t[s]%5||5))[s];a>i;i+=5)r=52200625*(t[u](i)-33)+614125*(t[u](i+1)-33)+7225*(t[u](i+2)-33)+85*(t[u](i+3)-33)+(t[u](i+4)-33),n.push(c&r>>24,c&r>>16,c&r>>8,c&r);return function(t,e){for(var r=e;r>0;r--)t.pop()}(n,e[s]),o.fromCharCode.apply(o,n)},i=function(t){var e=new RegExp(/^([0-9A-Fa-f]{2})+$/);if(-1!==(t=t.replace(/\\s/g,\"\")).indexOf(\">\")&&(t=t.substr(0,t.indexOf(\">\"))),t.length%2&&(t+=\"0\"),!1===e.test(t))return\"\";for(var r=\"\",n=0;n<t.length;n+=2)r+=String.fromCharCode(\"0x\"+(t[n]+t[n+1]));return r},a=function(e){for(var r=new Uint8Array(e.length),n=e.length;n--;)r[n]=e.charCodeAt(n);return e=(r=t(r)).reduce((function(t,e){return t+String.fromCharCode(e)}),\"\")};e.processDataByFilters=function(t,e){var o=0,s=t||\"\",c=[];for(\"string\"==typeof(e=e||[])&&(e=[e]),o=0;o<e.length;o+=1)switch(e[o]){case\"ASCII85Decode\":case\"/ASCII85Decode\":s=n(s),c.push(\"/ASCII85Encode\");break;case\"ASCII85Encode\":case\"/ASCII85Encode\":s=r(s),c.push(\"/ASCII85Decode\");break;case\"ASCIIHexDecode\":case\"/ASCIIHexDecode\":s=i(s),c.push(\"/ASCIIHexEncode\");break;case\"ASCIIHexEncode\":case\"/ASCIIHexEncode\":s=s.split(\"\").map((function(t){return(\"0\"+t.charCodeAt().toString(16)).slice(-2)})).join(\"\")+\">\",c.push(\"/ASCIIHexDecode\");break;case\"FlateEncode\":case\"/FlateEncode\":s=a(s),c.push(\"/FlateDecode\");break;default:throw new Error('The filter: \"'+e[o]+'\" is not implemented')}return{data:s,reverseChain:c.reverse().join(\" \")}}}(M.API),\n/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.loadFile=function(t,e,r){return function(t,e,r){e=!1!==e,r=\"function\"==typeof r?r:function(){};var n=void 0;try{n=function(t,e,r){var n=new XMLHttpRequest,i=0,a=function(t){var e=t.length,r=[],n=String.fromCharCode;for(i=0;i<e;i+=1)r.push(n(255&t.charCodeAt(i)));return r.join(\"\")};if(n.open(\"GET\",t,!e),n.overrideMimeType(\"text/plain; charset=x-user-defined\"),!1===e&&(n.onload=function(){200===n.status?r(a(this.responseText)):r(void 0)}),n.send(null),e&&200===n.status)return a(n.responseText)}(t,e,r)}catch(t){}return n}(t,e,r)},t.loadImageFile=t.loadFile}(M.API),\n/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){function e(){return(r.html2canvas?Promise.resolve(r.html2canvas):import(\"html2canvas\")).catch((function(t){return Promise.reject(new Error(\"Could not load html2canvas: \"+t))})).then((function(t){return t.default?t.default:t}))}function n(){return(r.DOMPurify?Promise.resolve(r.DOMPurify):import(\"dompurify\")).catch((function(t){return Promise.reject(new Error(\"Could not load dompurify: \"+t))})).then((function(t){return t.default?t.default:t}))}var i=function(t){var e=typeof t;return\"undefined\"===e?\"undefined\":\"string\"===e||t instanceof String?\"string\":\"number\"===e||t instanceof Number?\"number\":\"function\"===e||t instanceof Function?\"function\":t&&t.constructor===Array?\"array\":t&&1===t.nodeType?\"element\":\"object\"===e?\"object\":\"unknown\"},a=function(t,e){var r=document.createElement(t);for(var n in e.className&&(r.className=e.className),e.innerHTML&&e.dompurify&&(r.innerHTML=e.dompurify.sanitize(e.innerHTML)),e.style)r.style[n]=e.style[n];return r},o=function t(e){var r=Object.assign(t.convert(Promise.resolve()),JSON.parse(JSON.stringify(t.template))),n=t.convert(Promise.resolve(),r);return n=(n=n.setProgress(1,t,1,[t])).set(e)};(o.prototype=Object.create(Promise.prototype)).constructor=o,o.convert=function(t,e){return t.__proto__=e||o.prototype,t},o.template={prop:{src:null,container:null,overlay:null,canvas:null,img:null,pdf:null,pageSize:null,callback:function(){}},progress:{val:0,state:null,n:0,stack:[]},opt:{filename:\"file.pdf\",margin:[0,0,0,0],enableLinks:!0,x:0,y:0,html2canvas:{},jsPDF:{},backgroundColor:\"transparent\"}},o.prototype.from=function(t,e){return this.then((function(){switch(e=e||function(t){switch(i(t)){case\"string\":return\"string\";case\"element\":return\"canvas\"===t.nodeName.toLowerCase()?\"canvas\":\"element\";default:return\"unknown\"}}(t)){case\"string\":return this.then(n).then((function(e){return this.set({src:a(\"div\",{innerHTML:t,dompurify:e})})}));case\"element\":return this.set({src:t});case\"canvas\":return this.set({canvas:t});case\"img\":return this.set({img:t});default:return this.error(\"Unknown source type.\")}}))},o.prototype.to=function(t){switch(t){case\"container\":return this.toContainer();case\"canvas\":return this.toCanvas();case\"img\":return this.toImg();case\"pdf\":return this.toPdf();default:return this.error(\"Invalid target.\")}},o.prototype.toContainer=function(){return this.thenList([function(){return this.prop.src||this.error(\"Cannot duplicate - no source HTML.\")},function(){return this.prop.pageSize||this.setPageSize()}]).then((function(){var t={position:\"relative\",display:\"inline-block\",width:(\"number\"!=typeof this.opt.width||isNaN(this.opt.width)||\"number\"!=typeof this.opt.windowWidth||isNaN(this.opt.windowWidth)?Math.max(this.prop.src.clientWidth,this.prop.src.scrollWidth,this.prop.src.offsetWidth):this.opt.windowWidth)+\"px\",left:0,right:0,top:0,margin:\"auto\",backgroundColor:this.opt.backgroundColor},e=function t(e,r){for(var n=3===e.nodeType?document.createTextNode(e.nodeValue):e.cloneNode(!1),i=e.firstChild;i;i=i.nextSibling)!0!==r&&1===i.nodeType&&\"SCRIPT\"===i.nodeName||n.appendChild(t(i,r));return 1===e.nodeType&&(\"CANVAS\"===e.nodeName?(n.width=e.width,n.height=e.height,n.getContext(\"2d\").drawImage(e,0,0)):\"TEXTAREA\"!==e.nodeName&&\"SELECT\"!==e.nodeName||(n.value=e.value),n.addEventListener(\"load\",(function(){n.scrollTop=e.scrollTop,n.scrollLeft=e.scrollLeft}),!0)),n}(this.prop.src,this.opt.html2canvas.javascriptEnabled);\"BODY\"===e.tagName&&(t.height=Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight)+\"px\"),this.prop.overlay=a(\"div\",{className:\"html2pdf__overlay\",style:{position:\"fixed\",overflow:\"hidden\",zIndex:1e3,left:\"-100000px\",right:0,bottom:0,top:0}}),this.prop.container=a(\"div\",{className:\"html2pdf__container\",style:t}),this.prop.container.appendChild(e),this.prop.container.firstChild.appendChild(a(\"div\",{style:{clear:\"both\",border:\"0 none transparent\",margin:0,padding:0,height:0}})),this.prop.container.style.float=\"none\",this.prop.overlay.appendChild(this.prop.container),document.body.appendChild(this.prop.overlay),this.prop.container.firstChild.style.position=\"relative\",this.prop.container.height=Math.max(this.prop.container.firstChild.clientHeight,this.prop.container.firstChild.scrollHeight,this.prop.container.firstChild.offsetHeight)+\"px\"}))},o.prototype.toCanvas=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(e).then((function(t){var e=Object.assign({},this.opt.html2canvas);return delete e.onrendered,t(this.prop.container,e)})).then((function(t){(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)}))},o.prototype.toContext2d=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(e).then((function(t){var e=this.opt.jsPDF,r=this.opt.fontFaces,n=\"number\"!=typeof this.opt.width||isNaN(this.opt.width)||\"number\"!=typeof this.opt.windowWidth||isNaN(this.opt.windowWidth)?1:this.opt.width/this.opt.windowWidth,i=Object.assign({async:!0,allowTaint:!0,scale:n,scrollX:this.opt.scrollX||0,scrollY:this.opt.scrollY||0,backgroundColor:\"#ffffff\",imageTimeout:15e3,logging:!0,proxy:null,removeContainer:!0,foreignObjectRendering:!1,useCORS:!1},this.opt.html2canvas);if(delete i.onrendered,e.context2d.autoPaging=void 0===this.opt.autoPaging||this.opt.autoPaging,e.context2d.posX=this.opt.x,e.context2d.posY=this.opt.y,e.context2d.margin=this.opt.margin,e.context2d.fontFaces=r,r)for(var a=0;a<r.length;++a){var o=r[a],s=o.src.find((function(t){return\"truetype\"===t.format}));s&&e.addFont(s.url,o.ref.name,o.ref.style)}return i.windowHeight=i.windowHeight||0,i.windowHeight=0==i.windowHeight?Math.max(this.prop.container.clientHeight,this.prop.container.scrollHeight,this.prop.container.offsetHeight):i.windowHeight,e.context2d.save(!0),t(this.prop.container,i)})).then((function(t){this.opt.jsPDF.context2d.restore(!0),(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)}))},o.prototype.toImg=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then((function(){var t=this.prop.canvas.toDataURL(\"image/\"+this.opt.image.type,this.opt.image.quality);this.prop.img=document.createElement(\"img\"),this.prop.img.src=t}))},o.prototype.toPdf=function(){return this.thenList([function(){return this.toContext2d()}]).then((function(){this.prop.pdf=this.prop.pdf||this.opt.jsPDF}))},o.prototype.output=function(t,e,r){return\"img\"===(r=r||\"pdf\").toLowerCase()||\"image\"===r.toLowerCase()?this.outputImg(t,e):this.outputPdf(t,e)},o.prototype.outputPdf=function(t,e){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then((function(){return this.prop.pdf.output(t,e)}))},o.prototype.outputImg=function(t){return this.thenList([function(){return this.prop.img||this.toImg()}]).then((function(){switch(t){case void 0:case\"img\":return this.prop.img;case\"datauristring\":case\"dataurlstring\":return this.prop.img.src;case\"datauri\":case\"dataurl\":return document.location.href=this.prop.img.src;default:throw'Image output type \"'+t+'\" is not supported.'}}))},o.prototype.save=function(t){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).set(t?{filename:t}:null).then((function(){this.prop.pdf.save(this.opt.filename)}))},o.prototype.doCallback=function(){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then((function(){this.prop.callback(this.prop.pdf)}))},o.prototype.set=function(t){if(\"object\"!==i(t))return this;var e=Object.keys(t||{}).map((function(e){if(e in o.template.prop)return function(){this.prop[e]=t[e]};switch(e){case\"margin\":return this.setMargin.bind(this,t.margin);case\"jsPDF\":return function(){return this.opt.jsPDF=t.jsPDF,this.setPageSize()};case\"pageSize\":return this.setPageSize.bind(this,t.pageSize);default:return function(){this.opt[e]=t[e]}}}),this);return this.then((function(){return this.thenList(e)}))},o.prototype.get=function(t,e){return this.then((function(){var r=t in o.template.prop?this.prop[t]:this.opt[t];return e?e(r):r}))},o.prototype.setMargin=function(t){return this.then((function(){switch(i(t)){case\"number\":t=[t,t,t,t];case\"array\":if(2===t.length&&(t=[t[0],t[1],t[0],t[1]]),4===t.length)break;default:return this.error(\"Invalid margin array.\")}this.opt.margin=t})).then(this.setPageSize)},o.prototype.setPageSize=function(t){function e(t,e){return Math.floor(t*e/72*96)}return this.then((function(){(t=t||M.getPageSize(this.opt.jsPDF)).hasOwnProperty(\"inner\")||(t.inner={width:t.width-this.opt.margin[1]-this.opt.margin[3],height:t.height-this.opt.margin[0]-this.opt.margin[2]},t.inner.px={width:e(t.inner.width,t.k),height:e(t.inner.height,t.k)},t.inner.ratio=t.inner.height/t.inner.width),this.prop.pageSize=t}))},o.prototype.setProgress=function(t,e,r,n){return null!=t&&(this.progress.val=t),null!=e&&(this.progress.state=e),null!=r&&(this.progress.n=r),null!=n&&(this.progress.stack=n),this.progress.ratio=this.progress.val/this.progress.state,this},o.prototype.updateProgress=function(t,e,r,n){return this.setProgress(t?this.progress.val+t:null,e||null,r?this.progress.n+r:null,n?this.progress.stack.concat(n):null)},o.prototype.then=function(t,e){var r=this;return this.thenCore(t,e,(function(t,e){return r.updateProgress(null,null,1,[t]),Promise.prototype.then.call(this,(function(e){return r.updateProgress(null,t),e})).then(t,e).then((function(t){return r.updateProgress(1),t}))}))},o.prototype.thenCore=function(t,e,r){r=r||Promise.prototype.then;t&&(t=t.bind(this)),e&&(e=e.bind(this));var n=-1!==Promise.toString().indexOf(\"[native code]\")&&\"Promise\"===Promise.name?this:o.convert(Object.assign({},this),Promise.prototype),i=r.call(n,t,e);return o.convert(i,this.__proto__)},o.prototype.thenExternal=function(t,e){return Promise.prototype.then.call(this,t,e)},o.prototype.thenList=function(t){var e=this;return t.forEach((function(t){e=e.thenCore(t)})),e},o.prototype.catch=function(t){t&&(t=t.bind(this));var e=Promise.prototype.catch.call(this,t);return o.convert(e,this)},o.prototype.catchExternal=function(t){return Promise.prototype.catch.call(this,t)},o.prototype.error=function(t){return this.then((function(){throw new Error(t)}))},o.prototype.using=o.prototype.set,o.prototype.saveAs=o.prototype.save,o.prototype.export=o.prototype.output,o.prototype.run=o.prototype.then,M.getPageSize=function(t,e,r){if(\"object\"==typeof t){var n=t;t=n.orientation,e=n.unit||e,r=n.format||r}e=e||\"mm\",r=r||\"a4\",t=(\"\"+(t||\"P\")).toLowerCase();var i,a=(\"\"+r).toLowerCase(),o={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};switch(e){case\"pt\":i=1;break;case\"mm\":i=72/25.4;break;case\"cm\":i=72/2.54;break;case\"in\":i=72;break;case\"px\":i=.75;break;case\"pc\":case\"em\":i=12;break;case\"ex\":i=6;break;default:throw\"Invalid unit: \"+e}var s,c=0,u=0;if(o.hasOwnProperty(a))c=o[a][1]/i,u=o[a][0]/i;else try{c=r[1],u=r[0]}catch(t){throw new Error(\"Invalid format: \"+r)}if(\"p\"===t||\"portrait\"===t)t=\"p\",u>c&&(s=u,u=c,c=s);else{if(\"l\"!==t&&\"landscape\"!==t)throw\"Invalid orientation: \"+t;t=\"l\",c>u&&(s=u,u=c,c=s)}return{width:u,height:c,unit:e,k:i,orientation:t}},t.html=function(t,e){(e=e||{}).callback=e.callback||function(){},e.html2canvas=e.html2canvas||{},e.html2canvas.canvas=e.html2canvas.canvas||this.canvas,e.jsPDF=e.jsPDF||this,e.fontFaces=e.fontFaces?e.fontFaces.map(Ct):null;var r=new o(e);return e.worker?r:r.from(t).doCallback()}}(M.API),M.API.addJS=function(t){return Ut=t,this.internal.events.subscribe(\"postPutResources\",(function(){Tt=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/Names [(EmbeddedJS) \"+(Tt+1)+\" 0 R]\"),this.internal.out(\">>\"),this.internal.out(\"endobj\"),zt=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /JavaScript\"),this.internal.out(\"/JS (\"+Ut+\")\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")})),this.internal.events.subscribe(\"putCatalog\",(function(){void 0!==Tt&&void 0!==zt&&this.internal.out(\"/Names <</JavaScript \"+Tt+\" 0 R>>\")})),this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e;t.events.push([\"postPutResources\",function(){var t=this,r=/^(\\d+) 0 obj$/;if(this.outline.root.children.length>0)for(var n=t.outline.render().split(/\\r\\n/),i=0;i<n.length;i++){var a=n[i],o=r.exec(a);if(null!=o){var s=o[1];t.internal.newObjectDeferredBegin(s,!1)}t.internal.write(a)}if(this.outline.createNamedDestinations){var c=this.internal.pages.length,u=[];for(i=0;i<c;i++){var h=t.internal.newObject();u.push(h);var l=t.internal.getPageInfo(i+1);t.internal.write(\"<< /D[\"+l.objId+\" 0 R /XYZ null null null]>> endobj\")}var f=t.internal.newObject();t.internal.write(\"<< /Names [ \");for(i=0;i<u.length;i++)t.internal.write(\"(page_\"+(i+1)+\")\"+u[i]+\" 0 R\");t.internal.write(\" ] >>\",\"endobj\"),e=t.internal.newObject(),t.internal.write(\"<< /Dests \"+f+\" 0 R\"),t.internal.write(\">>\",\"endobj\")}}]),t.events.push([\"putCatalog\",function(){this.outline.root.children.length>0&&(this.internal.write(\"/Outlines\",this.outline.makeRef(this.outline.root)),this.outline.createNamedDestinations&&this.internal.write(\"/Names \"+e+\" 0 R\"))}]),t.events.push([\"initialized\",function(){var t=this;t.outline={createNamedDestinations:!1,root:{children:[]}},t.outline.add=function(t,e,r){var n={title:e,options:r,children:[]};return null==t&&(t=this.root),t.children.push(n),n},t.outline.render=function(){return this.ctx={},this.ctx.val=\"\",this.ctx.pdf=t,this.genIds_r(this.root),this.renderRoot(this.root),this.renderItems(this.root),this.ctx.val},t.outline.genIds_r=function(e){e.id=t.internal.newObjectDeferred();for(var r=0;r<e.children.length;r++)this.genIds_r(e.children[r])},t.outline.renderRoot=function(t){this.objStart(t),this.line(\"/Type /Outlines\"),t.children.length>0&&(this.line(\"/First \"+this.makeRef(t.children[0])),this.line(\"/Last \"+this.makeRef(t.children[t.children.length-1]))),this.line(\"/Count \"+this.count_r({count:0},t)),this.objEnd()},t.outline.renderItems=function(e){for(var r=this.ctx.pdf.internal.getVerticalCoordinateString,n=0;n<e.children.length;n++){var i=e.children[n];this.objStart(i),this.line(\"/Title \"+this.makeString(i.title)),this.line(\"/Parent \"+this.makeRef(e)),n>0&&this.line(\"/Prev \"+this.makeRef(e.children[n-1])),n<e.children.length-1&&this.line(\"/Next \"+this.makeRef(e.children[n+1])),i.children.length>0&&(this.line(\"/First \"+this.makeRef(i.children[0])),this.line(\"/Last \"+this.makeRef(i.children[i.children.length-1])));var a=this.count=this.count_r({count:0},i);if(a>0&&this.line(\"/Count \"+a),i.options&&i.options.pageNumber){var o=t.internal.getPageInfo(i.options.pageNumber);this.line(\"/Dest [\"+o.objId+\" 0 R /XYZ 0 \"+r(0)+\" 0]\")}this.objEnd()}for(var s=0;s<e.children.length;s++)this.renderItems(e.children[s])},t.outline.line=function(t){this.ctx.val+=t+\"\\r\\n\"},t.outline.makeRef=function(t){return t.id+\" 0 R\"},t.outline.makeString=function(e){return\"(\"+t.internal.pdfEscape(e)+\")\"},t.outline.objStart=function(t){this.ctx.val+=\"\\r\\n\"+t.id+\" 0 obj\\r\\n<<\\r\\n\"},t.outline.objEnd=function(){this.ctx.val+=\">> \\r\\nendobj\\r\\n\"},t.outline.count_r=function(t,e){for(var r=0;r<e.children.length;r++)t.count++,this.count_r(t,e.children[r]);return t.count}}])}(M.API),\n/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=[192,193,194,195,196,197,198,199];t.processJPEG=function(t,r,n,i,a,o){var s,c=this.decode.DCT_DECODE,u=null;if(\"string\"==typeof t||this.__addimage__.isArrayBuffer(t)||this.__addimage__.isArrayBufferView(t)){switch(t=a||t,t=this.__addimage__.isArrayBuffer(t)?new Uint8Array(t):t,(s=function(t){for(var r,n=256*t.charCodeAt(4)+t.charCodeAt(5),i=t.length,a={width:0,height:0,numcomponents:1},o=4;o<i;o+=2){if(o+=n,-1!==e.indexOf(t.charCodeAt(o+1))){r=256*t.charCodeAt(o+5)+t.charCodeAt(o+6),a={width:256*t.charCodeAt(o+7)+t.charCodeAt(o+8),height:r,numcomponents:t.charCodeAt(o+9)};break}n=256*t.charCodeAt(o+2)+t.charCodeAt(o+3)}return a}(t=this.__addimage__.isArrayBufferView(t)?this.__addimage__.arrayBufferToBinaryString(t):t)).numcomponents){case 1:o=this.color_spaces.DEVICE_GRAY;break;case 4:o=this.color_spaces.DEVICE_CMYK;break;case 3:o=this.color_spaces.DEVICE_RGB}u={data:t,width:s.width,height:s.height,colorSpace:o,bitsPerComponent:8,filter:c,index:r,alias:n}}return u}}(M.API);var Wt,Vt,Gt,Yt,Jt,Xt=function(){var t,n,i;function a(t){var e,r,n,i,a,o,s,c,u,h,l,f,d,p;for(this.data=t,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.animation=null,this.text={},o=null;;){switch(e=this.readUInt32(),u=function(){var t,e;for(e=[],t=0;t<4;++t)e.push(String.fromCharCode(this.data[this.pos++]));return e}.call(this).join(\"\")){case\"IHDR\":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case\"acTL\":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||1/0,frames:[]};break;case\"PLTE\":this.palette=this.read(e);break;case\"fcTL\":o&&this.animation.frames.push(o),this.pos+=4,o={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()},a=this.readUInt16(),i=this.readUInt16()||100,o.delay=1e3*a/i,o.disposeOp=this.data[this.pos++],o.blendOp=this.data[this.pos++],o.data=[];break;case\"IDAT\":case\"fdAT\":for(\"fdAT\"===u&&(this.pos+=4,e-=4),t=(null!=o?o.data:void 0)||this.imgData,f=0;0<=e?f<e:f>e;0<=e?++f:--f)t.push(this.data[this.pos++]);break;case\"tRNS\":switch(this.transparency={},this.colorType){case 3:if(n=this.palette.length/3,this.transparency.indexed=this.read(e),this.transparency.indexed.length>n)throw new Error(\"More transparent colors than palette size\");if((h=n-this.transparency.indexed.length)>0)for(d=0;0<=h?d<h:d>h;0<=h?++d:--d)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(e)[0];break;case 2:this.transparency.rgb=this.read(e)}break;case\"tEXt\":s=(l=this.read(e)).indexOf(0),c=String.fromCharCode.apply(String,l.slice(0,s)),this.text[c]=String.fromCharCode.apply(String,l.slice(s+1));break;case\"IEND\":return o&&this.animation.frames.push(o),this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(p=this.colorType)||6===p,r=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*r,this.colorSpace=function(){switch(this.colors){case 1:return\"DeviceGray\";case 3:return\"DeviceRGB\"}}.call(this),void(this.imgData=new Uint8Array(this.imgData));default:this.pos+=e}if(this.pos+=4,this.pos>this.data.length)throw new Error(\"Incomplete or corrupt PNG file\")}}a.prototype.read=function(t){var e,r;for(r=[],e=0;0<=t?e<t:e>t;0<=t?++e:--e)r.push(this.data[this.pos++]);return r},a.prototype.readUInt32=function(){return this.data[this.pos++]<<24|this.data[this.pos++]<<16|this.data[this.pos++]<<8|this.data[this.pos++]},a.prototype.readUInt16=function(){return this.data[this.pos++]<<8|this.data[this.pos++]},a.prototype.decodePixels=function(t){var r=this.pixelBitlength/8,n=new Uint8Array(this.width*this.height*r),i=0,a=this;if(null==t&&(t=this.imgData),0===t.length)return new Uint8Array(0);function o(e,o,s,c){var u,h,l,f,d,p,g,m,v,b,y,w,N,L,A,x,S,_,P,k,I,F=Math.ceil((a.width-e)/s),C=Math.ceil((a.height-o)/c),j=a.width==F&&a.height==C;for(L=r*F,w=j?n:new Uint8Array(L*C),p=t.length,N=0,h=0;N<C&&i<p;){switch(t[i++]){case 0:for(f=S=0;S<L;f=S+=1)w[h++]=t[i++];break;case 1:for(f=_=0;_<L;f=_+=1)u=t[i++],d=f<r?0:w[h-r],w[h++]=(u+d)%256;break;case 2:for(f=P=0;P<L;f=P+=1)u=t[i++],l=(f-f%r)/r,A=N&&w[(N-1)*L+l*r+f%r],w[h++]=(A+u)%256;break;case 3:for(f=k=0;k<L;f=k+=1)u=t[i++],l=(f-f%r)/r,d=f<r?0:w[h-r],A=N&&w[(N-1)*L+l*r+f%r],w[h++]=(u+Math.floor((d+A)/2))%256;break;case 4:for(f=I=0;I<L;f=I+=1)u=t[i++],l=(f-f%r)/r,d=f<r?0:w[h-r],0===N?A=x=0:(A=w[(N-1)*L+l*r+f%r],x=l&&w[(N-1)*L+(l-1)*r+f%r]),g=d+A-x,m=Math.abs(g-d),b=Math.abs(g-A),y=Math.abs(g-x),v=m<=b&&m<=y?d:b<=y?A:x,w[h++]=(u+v)%256;break;default:throw new Error(\"Invalid filter algorithm: \"+t[i-1])}if(!j){var O=((o+N*c)*a.width+e)*r,B=N*L;for(f=0;f<F;f+=1){for(var M=0;M<r;M+=1)n[O++]=w[B++];O+=(s-1)*r}}N++}}return t=e(t),1==a.interlaceMethod?(o(0,0,8,8),o(4,0,8,8),o(0,4,4,8),o(2,0,4,4),o(0,2,2,4),o(1,0,2,2),o(0,1,1,2)):o(0,0,1,1),n},a.prototype.decodePalette=function(){var t,e,r,n,i,a,o,s,c;for(r=this.palette,a=this.transparency.indexed||[],i=new Uint8Array((a.length||0)+r.length),n=0,t=0,e=o=0,s=r.length;o<s;e=o+=3)i[n++]=r[e],i[n++]=r[e+1],i[n++]=r[e+2],i[n++]=null!=(c=a[t++])?c:255;return i},a.prototype.copyToImageData=function(t,e){var r,n,i,a,o,s,c,u,h,l,f;if(n=this.colors,h=null,r=this.hasAlphaChannel,this.palette.length&&(h=null!=(f=this._decodedPalette)?f:this._decodedPalette=this.decodePalette(),n=4,r=!0),u=(i=t.data||t).length,o=h||e,a=s=0,1===n)for(;a<u;)c=h?4*e[a/4]:s,l=o[c++],i[a++]=l,i[a++]=l,i[a++]=l,i[a++]=r?o[c++]:255,s=c;else for(;a<u;)c=h?4*e[a/4]:s,i[a++]=o[c++],i[a++]=o[c++],i[a++]=o[c++],i[a++]=r?o[c++]:255,s=c},a.prototype.decode=function(){var t;return t=new Uint8Array(this.width*this.height*4),this.copyToImageData(t,this.decodePixels()),t};var o=function(){if(\"[object Window]\"===Object.prototype.toString.call(r)){try{n=r.document.createElement(\"canvas\"),i=n.getContext(\"2d\")}catch(t){return!1}return!0}return!1};return o(),t=function(t){var e;if(!0===o())return i.width=t.width,i.height=t.height,i.clearRect(0,0,t.width,t.height),i.putImageData(t,0,0),(e=new Image).src=n.toDataURL(),e;throw new Error(\"This method requires a Browser with Canvas-capability.\")},a.prototype.decodeFrames=function(e){var r,n,i,a,o,s,c,u;if(this.animation){for(u=[],n=o=0,s=(c=this.animation.frames).length;o<s;n=++o)r=c[n],i=e.createImageData(r.width,r.height),a=this.decodePixels(new Uint8Array(r.data)),this.copyToImageData(i,a),r.imageData=i,u.push(r.image=t(i));return u}},a.prototype.renderFrame=function(t,e){var r,n,i;return r=(n=this.animation.frames)[e],i=n[e-1],0===e&&t.clearRect(0,0,this.width,this.height),1===(null!=i?i.disposeOp:void 0)?t.clearRect(i.xOffset,i.yOffset,i.width,i.height):2===(null!=i?i.disposeOp:void 0)&&t.putImageData(i.imageData,i.xOffset,i.yOffset),0===r.blendOp&&t.clearRect(r.xOffset,r.yOffset,r.width,r.height),t.drawImage(r.image,r.xOffset,r.yOffset)},a.prototype.animate=function(t){var e,r,n,i,a,o,s=this;return r=0,o=this.animation,i=o.numFrames,n=o.frames,a=o.numPlays,(e=function(){var o,c;if(o=r++%i,c=n[o],s.renderFrame(t,o),i>1&&r/i<a)return s.animation._timeout=setTimeout(e,c.delay)})()},a.prototype.stopAnimation=function(){var t;return clearTimeout(null!=(t=this.animation)?t._timeout:void 0)},a.prototype.render=function(t){var e,r;return t._png&&t._png.stopAnimation(),t._png=this,t.width=this.width,t.height=this.height,e=t.getContext(\"2d\"),this.animation?(this.decodeFrames(e),this.animate(e)):(r=e.createImageData(this.width,this.height),this.copyToImageData(r,this.decodePixels()),e.putImageData(r,0,0))},a}();\n/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n/**\n * @license\n * (c) Dean McNamee <dean@gmail.com>, 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\nfunction Kt(t){var e=0;if(71!==t[e++]||73!==t[e++]||70!==t[e++]||56!==t[e++]||56!=(t[e++]+1&253)||97!==t[e++])throw new Error(\"Invalid GIF 87a/89a header.\");var r=t[e++]|t[e++]<<8,n=t[e++]|t[e++]<<8,i=t[e++],a=i>>7,o=1<<(7&i)+1;t[e++];t[e++];var s=null,c=null;a&&(s=e,c=o,e+=3*o);var u=!0,h=[],l=0,f=null,d=0,p=null;for(this.width=r,this.height=n;u&&e<t.length;)switch(t[e++]){case 33:switch(t[e++]){case 255:if(11!==t[e]||78==t[e+1]&&69==t[e+2]&&84==t[e+3]&&83==t[e+4]&&67==t[e+5]&&65==t[e+6]&&80==t[e+7]&&69==t[e+8]&&50==t[e+9]&&46==t[e+10]&&48==t[e+11]&&3==t[e+12]&&1==t[e+13]&&0==t[e+16])e+=14,p=t[e++]|t[e++]<<8,e++;else for(e+=12;;){if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}break;case 249:if(4!==t[e++]||0!==t[e+4])throw new Error(\"Invalid graphics extension block.\");var g=t[e++];l=t[e++]|t[e++]<<8,f=t[e++],0==(1&g)&&(f=null),d=g>>2&7,e++;break;case 254:for(;;){if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}break;default:throw new Error(\"Unknown graphic control label: 0x\"+t[e-1].toString(16))}break;case 44:var m=t[e++]|t[e++]<<8,v=t[e++]|t[e++]<<8,b=t[e++]|t[e++]<<8,y=t[e++]|t[e++]<<8,w=t[e++],N=w>>6&1,L=1<<(7&w)+1,A=s,x=c,S=!1;if(w>>7){S=!0;A=e,x=L,e+=3*L}var _=e;for(e++;;){var P;if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}h.push({x:m,y:v,width:b,height:y,has_local_palette:S,palette_offset:A,palette_size:x,data_offset:_,data_length:e-_,transparent_index:f,interlaced:!!N,delay:l,disposal:d});break;case 59:u=!1;break;default:throw new Error(\"Unknown gif block: 0x\"+t[e-1].toString(16))}this.numFrames=function(){return h.length},this.loopCount=function(){return p},this.frameInfo=function(t){if(t<0||t>=h.length)throw new Error(\"Frame index out of range.\");return h[t]},this.decodeAndBlitFrameBGRA=function(e,n){var i=this.frameInfo(e),a=i.width*i.height,o=new Uint8Array(a);Zt(t,i.data_offset,o,a);var s=i.palette_offset,c=i.transparent_index;null===c&&(c=256);var u=i.width,h=r-u,l=u,f=4*(i.y*r+i.x),d=4*((i.y+i.height)*r+i.x),p=f,g=4*h;!0===i.interlaced&&(g+=4*r*7);for(var m=8,v=0,b=o.length;v<b;++v){var y=o[v];if(0===l&&(l=u,(p+=g)>=d&&(g=4*h+4*r*(m-1),p=f+(u+h)*(m<<1),m>>=1)),y===c)p+=4;else{var w=t[s+3*y],N=t[s+3*y+1],L=t[s+3*y+2];n[p++]=L,n[p++]=N,n[p++]=w,n[p++]=255}--l}},this.decodeAndBlitFrameRGBA=function(e,n){var i=this.frameInfo(e),a=i.width*i.height,o=new Uint8Array(a);Zt(t,i.data_offset,o,a);var s=i.palette_offset,c=i.transparent_index;null===c&&(c=256);var u=i.width,h=r-u,l=u,f=4*(i.y*r+i.x),d=4*((i.y+i.height)*r+i.x),p=f,g=4*h;!0===i.interlaced&&(g+=4*r*7);for(var m=8,v=0,b=o.length;v<b;++v){var y=o[v];if(0===l&&(l=u,(p+=g)>=d&&(g=4*h+4*r*(m-1),p=f+(u+h)*(m<<1),m>>=1)),y===c)p+=4;else{var w=t[s+3*y],N=t[s+3*y+1],L=t[s+3*y+2];n[p++]=w,n[p++]=N,n[p++]=L,n[p++]=255}--l}}}function Zt(t,e,r,n){for(var a=t[e++],o=1<<a,s=o+1,c=s+1,u=a+1,h=(1<<u)-1,l=0,f=0,d=0,p=t[e++],g=new Int32Array(4096),m=null;;){for(;l<16&&0!==p;)f|=t[e++]<<l,l+=8,1===p?p=t[e++]:--p;if(l<u)break;var v=f&h;if(f>>=u,l-=u,v!==o){if(v===s)break;for(var b=v<c?v:m,y=0,w=b;w>o;)w=g[w]>>8,++y;var N=w;if(d+y+(b!==v?1:0)>n)return void i.log(\"Warning, gif stream longer than expected.\");r[d++]=N;var L=d+=y;for(b!==v&&(r[d++]=N),w=b;y--;)w=g[w],r[--L]=255&w,w>>=8;null!==m&&c<4096&&(g[c++]=m<<8|N,c>=h+1&&u<12&&(++u,h=h<<1|1)),m=v}else c=s+1,h=(1<<(u=a+1))-1,m=null}return d!==n&&i.log(\"Warning, gif stream shorter than expected.\"),r}\n/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/function $t(t){var e,r,n,i,a,o=Math.floor,s=new Array(64),c=new Array(64),u=new Array(64),h=new Array(64),l=new Array(65535),f=new Array(65535),d=new Array(64),p=new Array(64),g=[],m=0,v=7,b=new Array(64),y=new Array(64),w=new Array(64),N=new Array(256),L=new Array(2048),A=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],x=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],S=[0,1,2,3,4,5,6,7,8,9,10,11],_=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],P=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],k=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],I=[0,1,2,3,4,5,6,7,8,9,10,11],F=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],C=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];function j(t,e){for(var r=0,n=0,i=new Array,a=1;a<=16;a++){for(var o=1;o<=t[a];o++)i[e[n]]=[],i[e[n]][0]=r,i[e[n]][1]=a,n++,r++;r*=2}return i}function O(t){for(var e=t[0],r=t[1]-1;r>=0;)e&1<<r&&(m|=1<<v),r--,--v<0&&(255==m?(B(255),B(0)):B(m),v=7,m=0)}function B(t){g.push(t)}function M(t){B(t>>8&255),B(255&t)}function E(t,e,r,n,i){for(var a,o=i[0],s=i[240],c=function(t,e){var r,n,i,a,o,s,c,u,h,l,f=0;for(h=0;h<8;++h){r=t[f],n=t[f+1],i=t[f+2],a=t[f+3],o=t[f+4],s=t[f+5],c=t[f+6];var p=r+(u=t[f+7]),g=r-u,m=n+c,v=n-c,b=i+s,y=i-s,w=a+o,N=a-o,L=p+w,A=p-w,x=m+b,S=m-b;t[f]=L+x,t[f+4]=L-x;var _=.707106781*(S+A);t[f+2]=A+_,t[f+6]=A-_;var P=.382683433*((L=N+y)-(S=v+g)),k=.5411961*L+P,I=1.306562965*S+P,F=.707106781*(x=y+v),C=g+F,j=g-F;t[f+5]=j+k,t[f+3]=j-k,t[f+1]=C+I,t[f+7]=C-I,f+=8}for(f=0,h=0;h<8;++h){r=t[f],n=t[f+8],i=t[f+16],a=t[f+24],o=t[f+32],s=t[f+40],c=t[f+48];var O=r+(u=t[f+56]),B=r-u,M=n+c,E=n-c,q=i+s,D=i-s,R=a+o,T=a-o,z=O+R,U=O-R,H=M+q,W=M-q;t[f]=z+H,t[f+32]=z-H;var V=.707106781*(W+U);t[f+16]=U+V,t[f+48]=U-V;var G=.382683433*((z=T+D)-(W=E+B)),Y=.5411961*z+G,J=1.306562965*W+G,X=.707106781*(H=D+E),K=B+X,Z=B-X;t[f+40]=Z+Y,t[f+24]=Z-Y,t[f+8]=K+J,t[f+56]=K-J,f++}for(h=0;h<64;++h)l=t[h]*e[h],d[h]=l>0?l+.5|0:l-.5|0;return d}(t,e),u=0;u<64;++u)p[A[u]]=c[u];var h=p[0]-r;r=p[0],0==h?O(n[0]):(O(n[f[a=32767+h]]),O(l[a]));for(var g=63;g>0&&0==p[g];)g--;if(0==g)return O(o),r;for(var m,v=1;v<=g;){for(var b=v;0==p[v]&&v<=g;)++v;var y=v-b;if(y>=16){m=y>>4;for(var w=1;w<=m;++w)O(s);y&=15}a=32767+p[v],O(i[(y<<4)+f[a]]),O(l[a]),v++}return 63!=g&&O(o),r}function q(t){(t=Math.min(Math.max(t,1),100),a!=t)&&(!function(t){for(var e=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],r=0;r<64;r++){var n=o((e[r]*t+50)/100);n=Math.min(Math.max(n,1),255),s[A[r]]=n}for(var i=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],a=0;a<64;a++){var l=o((i[a]*t+50)/100);l=Math.min(Math.max(l,1),255),c[A[a]]=l}for(var f=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],d=0,p=0;p<8;p++)for(var g=0;g<8;g++)u[d]=1/(s[A[d]]*f[p]*f[g]*8),h[d]=1/(c[A[d]]*f[p]*f[g]*8),d++}(t<50?Math.floor(5e3/t):Math.floor(200-2*t)),a=t)}this.encode=function(t,a){a&&q(a),g=new Array,m=0,v=7,M(65496),M(65504),M(16),B(74),B(70),B(73),B(70),B(0),B(1),B(1),B(0),M(1),M(1),B(0),B(0),function(){M(65499),M(132),B(0);for(var t=0;t<64;t++)B(s[t]);B(1);for(var e=0;e<64;e++)B(c[e])}(),function(t,e){M(65472),M(17),B(8),M(e),M(t),B(3),B(1),B(17),B(0),B(2),B(17),B(1),B(3),B(17),B(1)}(t.width,t.height),function(){M(65476),M(418),B(0);for(var t=0;t<16;t++)B(x[t+1]);for(var e=0;e<=11;e++)B(S[e]);B(16);for(var r=0;r<16;r++)B(_[r+1]);for(var n=0;n<=161;n++)B(P[n]);B(1);for(var i=0;i<16;i++)B(k[i+1]);for(var a=0;a<=11;a++)B(I[a]);B(17);for(var o=0;o<16;o++)B(F[o+1]);for(var s=0;s<=161;s++)B(C[s])}(),M(65498),M(12),B(3),B(1),B(0),B(2),B(17),B(3),B(17),B(0),B(63),B(0);var o=0,l=0,f=0;m=0,v=7,this.encode.displayName=\"_encode_\";for(var d,p,N,A,j,D,R,T,z,U=t.data,H=t.width,W=t.height,V=4*H,G=0;G<W;){for(d=0;d<V;){for(j=V*G+d,R=-1,T=0,z=0;z<64;z++)D=j+(T=z>>3)*V+(R=4*(7&z)),G+T>=W&&(D-=V*(G+1+T-W)),d+R>=V&&(D-=d+R-V+4),p=U[D++],N=U[D++],A=U[D++],b[z]=(L[p]+L[N+256>>0]+L[A+512>>0]>>16)-128,y[z]=(L[p+768>>0]+L[N+1024>>0]+L[A+1280>>0]>>16)-128,w[z]=(L[p+1280>>0]+L[N+1536>>0]+L[A+1792>>0]>>16)-128;o=E(b,u,o,e,n),l=E(y,h,l,r,i),f=E(w,h,f,r,i),d+=32}G+=8}if(v>=0){var Y=[];Y[1]=v+1,Y[0]=(1<<v+1)-1,O(Y)}return M(65497),new Uint8Array(g)},t=t||50,function(){for(var t=String.fromCharCode,e=0;e<256;e++)N[e]=t(e)}(),e=j(x,S),r=j(k,I),n=j(_,P),i=j(F,C),function(){for(var t=1,e=2,r=1;r<=15;r++){for(var n=t;n<e;n++)f[32767+n]=r,l[32767+n]=[],l[32767+n][1]=r,l[32767+n][0]=n;for(var i=-(e-1);i<=-t;i++)f[32767+i]=r,l[32767+i]=[],l[32767+i][1]=r,l[32767+i][0]=e-1+i;t<<=1,e<<=1}}(),function(){for(var t=0;t<256;t++)L[t]=19595*t,L[t+256>>0]=38470*t,L[t+512>>0]=7471*t+32768,L[t+768>>0]=-11059*t,L[t+1024>>0]=-21709*t,L[t+1280>>0]=32768*t+8421375,L[t+1536>>0]=-27439*t,L[t+1792>>0]=-5329*t}(),q(t)}\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */function Qt(t,e){if(this.pos=0,this.buffer=t,this.datav=new DataView(t.buffer),this.is_with_alpha=!!e,this.bottom_up=!0,this.flag=String.fromCharCode(this.buffer[0])+String.fromCharCode(this.buffer[1]),this.pos+=2,-1===[\"BM\",\"BA\",\"CI\",\"CP\",\"IC\",\"PT\"].indexOf(this.flag))throw new Error(\"Invalid BMP File\");this.parseHeader(),this.parseBGR()}function te(t){function e(t){if(!t)throw Error(\"assert :P\")}function r(t,e,r){for(var n=0;4>n;n++)if(t[e+n]!=r.charCodeAt(n))return!0;return!1}function n(t,e,r,n,i){for(var a=0;a<i;a++)t[e+a]=r[n+a]}function i(t,e,r,n){for(var i=0;i<n;i++)t[e+i]=r}function a(t){return new Int32Array(t)}function o(t,e){for(var r=[],n=0;n<t;n++)r.push(new e);return r}function s(t,e){var r=[];return function t(r,n,i){for(var a=i[n],o=0;o<a&&(r.push(i.length>n+1?[]:new e),!(i.length<n+1));o++)t(r[o],n+1,i)}(r,0,t),r}var c=function(){var t=this;function c(t,e){for(var r=1<<e-1>>>0;t&r;)r>>>=1;return r?(t&r-1)+r:t}function u(t,r,n,i,a){e(!(i%n));do{t[r+(i-=n)]=a}while(0<i)}function h(t,r,n,i,o){if(e(2328>=o),512>=o)var s=a(512);else if(null==(s=a(o)))return 0;return function(t,r,n,i,o,s){var h,f,d=r,p=1<<n,g=a(16),m=a(16);for(e(0!=o),e(null!=i),e(null!=t),e(0<n),f=0;f<o;++f){if(15<i[f])return 0;++g[i[f]]}if(g[0]==o)return 0;for(m[1]=0,h=1;15>h;++h){if(g[h]>1<<h)return 0;m[h+1]=m[h]+g[h]}for(f=0;f<o;++f)h=i[f],0<i[f]&&(s[m[h]++]=f);if(1==m[15])return(i=new l).g=0,i.value=s[0],u(t,d,1,p,i),p;var v,b=-1,y=p-1,w=0,N=1,L=1,A=1<<n;for(f=0,h=1,o=2;h<=n;++h,o<<=1){if(N+=L<<=1,0>(L-=g[h]))return 0;for(;0<g[h];--g[h])(i=new l).g=h,i.value=s[f++],u(t,d+w,o,A,i),w=c(w,h)}for(h=n+1,o=2;15>=h;++h,o<<=1){if(N+=L<<=1,0>(L-=g[h]))return 0;for(;0<g[h];--g[h]){if(i=new l,(w&y)!=b){for(d+=A,v=1<<(b=h)-n;15>b&&!(0>=(v-=g[b]));)++b,v<<=1;p+=A=1<<(v=b-n),t[r+(b=w&y)].g=v+n,t[r+b].value=d-r-b}i.g=h-n,i.value=s[f++],u(t,d+(w>>n),o,A,i),w=c(w,h)}}return N!=2*m[15]-1?0:p}(t,r,n,i,o,s)}function l(){this.value=this.g=0}function f(){this.value=this.g=0}function d(){this.G=o(5,l),this.H=a(5),this.jc=this.Qb=this.qb=this.nd=0,this.pd=o(Dr,f)}function p(t,r,n,i){e(null!=t),e(null!=r),e(2147483648>i),t.Ca=254,t.I=0,t.b=-8,t.Ka=0,t.oa=r,t.pa=n,t.Jd=r,t.Yc=n+i,t.Zc=4<=i?n+i-4+1:n,_(t)}function g(t,e){for(var r=0;0<e--;)r|=k(t,128)<<e;return r}function m(t,e){var r=g(t,e);return P(t)?-r:r}function v(t,r,n,i){var a,o=0;for(e(null!=t),e(null!=r),e(4294967288>i),t.Sb=i,t.Ra=0,t.u=0,t.h=0,4<i&&(i=4),a=0;a<i;++a)o+=r[n+a]<<8*a;t.Ra=o,t.bb=i,t.oa=r,t.pa=n}function b(t){for(;8<=t.u&&t.bb<t.Sb;)t.Ra>>>=8,t.Ra+=t.oa[t.pa+t.bb]<<zr-8>>>0,++t.bb,t.u-=8;A(t)&&(t.h=1,t.u=0)}function y(t,r){if(e(0<=r),!t.h&&r<=Tr){var n=L(t)&Rr[r];return t.u+=r,b(t),n}return t.h=1,t.u=0}function w(){this.b=this.Ca=this.I=0,this.oa=[],this.pa=0,this.Jd=[],this.Yc=0,this.Zc=[],this.Ka=0}function N(){this.Ra=0,this.oa=[],this.h=this.u=this.bb=this.Sb=this.pa=0}function L(t){return t.Ra>>>(t.u&zr-1)>>>0}function A(t){return e(t.bb<=t.Sb),t.h||t.bb==t.Sb&&t.u>zr}function x(t,e){t.u=e,t.h=A(t)}function S(t){t.u>=Ur&&(e(t.u>=Ur),b(t))}function _(t){e(null!=t&&null!=t.oa),t.pa<t.Zc?(t.I=(t.oa[t.pa++]|t.I<<8)>>>0,t.b+=8):(e(null!=t&&null!=t.oa),t.pa<t.Yc?(t.b+=8,t.I=t.oa[t.pa++]|t.I<<8):t.Ka?t.b=0:(t.I<<=8,t.b+=8,t.Ka=1))}function P(t){return g(t,1)}function k(t,e){var r=t.Ca;0>t.b&&_(t);var n=t.b,i=r*e>>>8,a=(t.I>>>n>i)+0;for(a?(r-=i,t.I-=i+1<<n>>>0):r=i+1,n=r,i=0;256<=n;)i+=8,n>>=8;return n=7^i+Hr[n],t.b-=n,t.Ca=(r<<n)-1,a}function I(t,e,r){t[e+0]=r>>24&255,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=r>>0&255}function F(t,e){return t[e+0]<<0|t[e+1]<<8}function C(t,e){return F(t,e)|t[e+2]<<16}function j(t,e){return F(t,e)|F(t,e+2)<<16}function O(t,r){var n=1<<r;return e(null!=t),e(0<r),t.X=a(n),null==t.X?0:(t.Mb=32-r,t.Xa=r,1)}function B(t,r){e(null!=t),e(null!=r),e(t.Xa==r.Xa),n(r.X,0,t.X,0,1<<r.Xa)}function M(){this.X=[],this.Xa=this.Mb=0}function E(t,r,n,i){e(null!=n),e(null!=i);var a=n[0],o=i[0];return 0==a&&(a=(t*o+r/2)/r),0==o&&(o=(r*a+t/2)/t),0>=a||0>=o?0:(n[0]=a,i[0]=o,1)}function q(t,e){return t+(1<<e)-1>>>e}function D(t,e){return((4278255360&t)+(4278255360&e)>>>0&4278255360)+((16711935&t)+(16711935&e)>>>0&16711935)>>>0}function R(e,r){t[r]=function(r,n,i,a,o,s,c){var u;for(u=0;u<o;++u){var h=t[e](s[c+u-1],i,a+u);s[c+u]=D(r[n+u],h)}}}function T(){this.ud=this.hd=this.jd=0}function z(t,e){return((4278124286&(t^e))>>>1)+(t&e)>>>0}function U(t){return 0<=t&&256>t?t:0>t?0:255<t?255:void 0}function H(t,e){return U(t+(t-e+.5>>1))}function W(t,e,r){return Math.abs(e-r)-Math.abs(t-r)}function V(t,e,r,n,i,a,o){for(n=a[o-1],r=0;r<i;++r)a[o+r]=n=D(t[e+r],n)}function G(t,e,r,n,i){var a;for(a=0;a<r;++a){var o=t[e+a],s=o>>8&255,c=16711935&(c=(c=16711935&o)+((s<<16)+s));n[i+a]=(4278255360&o)+c>>>0}}function Y(t,e){e.jd=t>>0&255,e.hd=t>>8&255,e.ud=t>>16&255}function J(t,e,r,n,i,a){var o;for(o=0;o<n;++o){var s=e[r+o],c=s>>>8,u=s,h=255&(h=(h=s>>>16)+((t.jd<<24>>24)*(c<<24>>24)>>>5));u=255&(u=(u=u+((t.hd<<24>>24)*(c<<24>>24)>>>5))+((t.ud<<24>>24)*(h<<24>>24)>>>5));i[a+o]=(4278255360&s)+(h<<16)+u}}function X(e,r,n,i,a){t[r]=function(t,e,r,n,o,s,c,u,h){for(n=c;n<u;++n)for(c=0;c<h;++c)o[s++]=a(r[i(t[e++])])},t[e]=function(e,r,o,s,c,u,h){var l=8>>e.b,f=e.Ea,d=e.K[0],p=e.w;if(8>l)for(e=(1<<e.b)-1,p=(1<<l)-1;r<o;++r){var g,m=0;for(g=0;g<f;++g)g&e||(m=i(s[c++])),u[h++]=a(d[m&p]),m>>=l}else t[\"VP8LMapColor\"+n](s,c,d,p,u,h,r,o,f)}}function K(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=a>>0&255}}function Z(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=a>>0&255,n[i++]=a>>24&255}}function $(t,e,r,n,i){for(r=e+r;e<r;){var a=(o=t[e++])>>16&240|o>>12&15,o=o>>0&240|o>>28&15;n[i++]=a,n[i++]=o}}function Q(t,e,r,n,i){for(r=e+r;e<r;){var a=(o=t[e++])>>16&248|o>>13&7,o=o>>5&224|o>>3&31;n[i++]=a,n[i++]=o}}function tt(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>0&255,n[i++]=a>>8&255,n[i++]=a>>16&255}}function et(t,e,r,i,a,o){if(0==o)for(r=e+r;e<r;)I(i,((o=t[e++])[0]>>24|o[1]>>8&65280|o[2]<<8&16711680|o[3]<<24)>>>0),a+=32;else n(i,a,t,e,r)}function rt(e,r){t[r][0]=t[e+\"0\"],t[r][1]=t[e+\"1\"],t[r][2]=t[e+\"2\"],t[r][3]=t[e+\"3\"],t[r][4]=t[e+\"4\"],t[r][5]=t[e+\"5\"],t[r][6]=t[e+\"6\"],t[r][7]=t[e+\"7\"],t[r][8]=t[e+\"8\"],t[r][9]=t[e+\"9\"],t[r][10]=t[e+\"10\"],t[r][11]=t[e+\"11\"],t[r][12]=t[e+\"12\"],t[r][13]=t[e+\"13\"],t[r][14]=t[e+\"0\"],t[r][15]=t[e+\"0\"]}function nt(t){return t==Hn||t==Wn||t==Vn||t==Gn}function it(){this.eb=[],this.size=this.A=this.fb=0}function at(){this.y=[],this.f=[],this.ea=[],this.F=[],this.Tc=this.Ed=this.Cd=this.Fd=this.lb=this.Db=this.Ab=this.fa=this.J=this.W=this.N=this.O=0}function ot(){this.Rd=this.height=this.width=this.S=0,this.f={},this.f.RGBA=new it,this.f.kb=new at,this.sd=null}function st(){this.width=[0],this.height=[0],this.Pd=[0],this.Qd=[0],this.format=[0]}function ct(){this.Id=this.fd=this.Md=this.hb=this.ib=this.da=this.bd=this.cd=this.j=this.v=this.Da=this.Sd=this.ob=0}function ut(t){return alert(\"todo:WebPSamplerProcessPlane\"),t.T}function ht(t,e){var r=t.T,i=e.ba.f.RGBA,a=i.eb,o=i.fb+t.ka*i.A,s=vi[e.ba.S],c=t.y,u=t.O,h=t.f,l=t.N,f=t.ea,d=t.W,p=e.cc,g=e.dc,m=e.Mc,v=e.Nc,b=t.ka,y=t.ka+t.T,w=t.U,N=w+1>>1;for(0==b?s(c,u,null,null,h,l,f,d,h,l,f,d,a,o,null,null,w):(s(e.ec,e.fc,c,u,p,g,m,v,h,l,f,d,a,o-i.A,a,o,w),++r);b+2<y;b+=2)p=h,g=l,m=f,v=d,l+=t.Rc,d+=t.Rc,o+=2*i.A,s(c,(u+=2*t.fa)-t.fa,c,u,p,g,m,v,h,l,f,d,a,o-i.A,a,o,w);return u+=t.fa,t.j+y<t.o?(n(e.ec,e.fc,c,u,w),n(e.cc,e.dc,h,l,N),n(e.Mc,e.Nc,f,d,N),r--):1&y||s(c,u,null,null,h,l,f,d,h,l,f,d,a,o+i.A,null,null,w),r}function lt(t,r,n){var i=t.F,a=[t.J];if(null!=i){var o=t.U,s=r.ba.S,c=s==Tn||s==Vn;r=r.ba.f.RGBA;var u=[0],h=t.ka;u[0]=t.T,t.Kb&&(0==h?--u[0]:(--h,a[0]-=t.width),t.j+t.ka+t.T==t.o&&(u[0]=t.o-t.j-h));var l=r.eb;h=r.fb+h*r.A;t=Sn(i,a[0],t.width,o,u,l,h+(c?0:3),r.A),e(n==u),t&&nt(s)&&An(l,h,c,o,u,r.A)}return 0}function ft(t){var e=t.ma,r=e.ba.S,n=11>r,i=r==qn||r==Rn||r==Tn||r==zn||12==r||nt(r);if(e.memory=null,e.Ib=null,e.Jb=null,e.Nd=null,!Mr(e.Oa,t,i?11:12))return 0;if(i&&nt(r)&&br(),t.da)alert(\"todo:use_scaling\");else{if(n){if(e.Ib=ut,t.Kb){if(r=t.U+1>>1,e.memory=a(t.U+2*r),null==e.memory)return 0;e.ec=e.memory,e.fc=0,e.cc=e.ec,e.dc=e.fc+t.U,e.Mc=e.cc,e.Nc=e.dc+r,e.Ib=ht,br()}}else alert(\"todo:EmitYUV\");i&&(e.Jb=lt,n&&mr())}if(n&&!Ci){for(t=0;256>t;++t)ji[t]=89858*(t-128)+_i>>Si,Mi[t]=-22014*(t-128)+_i,Bi[t]=-45773*(t-128),Oi[t]=113618*(t-128)+_i>>Si;for(t=Pi;t<ki;++t)e=76283*(t-16)+_i>>Si,Ei[t-Pi]=Vt(e,255),qi[t-Pi]=Vt(e+8>>4,15);Ci=1}return 1}function dt(t){var r=t.ma,n=t.U,i=t.T;return e(!(1&t.ka)),0>=n||0>=i?0:(n=r.Ib(t,r),null!=r.Jb&&r.Jb(t,r,n),r.Dc+=n,1)}function pt(t){t.ma.memory=null}function gt(t,e,r,n){return 47!=y(t,8)?0:(e[0]=y(t,14)+1,r[0]=y(t,14)+1,n[0]=y(t,1),0!=y(t,3)?0:!t.h)}function mt(t,e){if(4>t)return t+1;var r=t-2>>1;return(2+(1&t)<<r)+y(e,r)+1}function vt(t,e){return 120<e?e-120:1<=(r=((r=$n[e-1])>>4)*t+(8-(15&r)))?r:1;var r}function bt(t,e,r){var n=L(r),i=t[e+=255&n].g-8;return 0<i&&(x(r,r.u+8),n=L(r),e+=t[e].value,e+=n&(1<<i)-1),x(r,r.u+t[e].g),t[e].value}function yt(t,r,n){return n.g+=t.g,n.value+=t.value<<r>>>0,e(8>=n.g),t.g}function wt(t,r,n){var i=t.xc;return e((r=0==i?0:t.vc[t.md*(n>>i)+(r>>i)])<t.Wb),t.Ya[r]}function Nt(t,r,i,a){var o=t.ab,s=t.c*r,c=t.C;r=c+r;var u=i,h=a;for(a=t.Ta,i=t.Ua;0<o--;){var l=t.gc[o],f=c,d=r,p=u,g=h,m=(h=a,u=i,l.Ea);switch(e(f<d),e(d<=l.nc),l.hc){case 2:Gr(p,g,(d-f)*m,h,u);break;case 0:var v=f,b=d,y=h,w=u,N=(_=l).Ea;0==v&&(Wr(p,g,null,null,1,y,w),V(p,g+1,0,0,N-1,y,w+1),g+=N,w+=N,++v);for(var L=1<<_.b,A=L-1,x=q(N,_.b),S=_.K,_=_.w+(v>>_.b)*x;v<b;){var P=S,k=_,I=1;for(Vr(p,g,y,w-N,1,y,w);I<N;){var F=(I&~A)+L;F>N&&(F=N),(0,Zr[P[k++]>>8&15])(p,g+ +I,y,w+I-N,F-I,y,w+I),I=F}g+=N,w+=N,++v&A||(_+=x)}d!=l.nc&&n(h,u-m,h,u+(d-f-1)*m,m);break;case 1:for(m=p,b=g,N=(p=l.Ea)-(w=p&~(y=(g=1<<l.b)-1)),v=q(p,l.b),L=l.K,l=l.w+(f>>l.b)*v;f<d;){for(A=L,x=l,S=new T,_=b+w,P=b+p;b<_;)Y(A[x++],S),$r(S,m,b,g,h,u),b+=g,u+=g;b<P&&(Y(A[x++],S),$r(S,m,b,N,h,u),b+=N,u+=N),++f&y||(l+=v)}break;case 3:if(p==h&&g==u&&0<l.b){for(b=h,p=m=u+(d-f)*m-(w=(d-f)*q(l.Ea,l.b)),g=h,y=u,v=[],w=(N=w)-1;0<=w;--w)v[w]=g[y+w];for(w=N-1;0<=w;--w)b[p+w]=v[w];Yr(l,f,d,h,m,h,u)}else Yr(l,f,d,p,g,h,u)}u=a,h=i}h!=i&&n(a,i,u,h,s)}function Lt(t,r){var n=t.V,i=t.Ba+t.c*t.C,a=r-t.C;if(e(r<=t.l.o),e(16>=a),0<a){var o=t.l,s=t.Ta,c=t.Ua,u=o.width;if(Nt(t,a,n,i),a=c=[c],e((n=t.C)<(i=r)),e(o.v<o.va),i>o.o&&(i=o.o),n<o.j){var h=o.j-n;n=o.j;a[0]+=h*u}if(n>=i?n=0:(a[0]+=4*o.v,o.ka=n-o.j,o.U=o.va-o.v,o.T=i-n,n=1),n){if(c=c[0],11>(n=t.ca).S){var l=n.f.RGBA,f=(i=n.S,a=o.U,o=o.T,h=l.eb,l.A),d=o;for(l=l.fb+t.Ma*l.A;0<d--;){var p=s,g=c,m=a,v=h,b=l;switch(i){case En:Qr(p,g,m,v,b);break;case qn:tn(p,g,m,v,b);break;case Hn:tn(p,g,m,v,b),An(v,b,0,m,1,0);break;case Dn:nn(p,g,m,v,b);break;case Rn:et(p,g,m,v,b,1);break;case Wn:et(p,g,m,v,b,1),An(v,b,0,m,1,0);break;case Tn:et(p,g,m,v,b,0);break;case Vn:et(p,g,m,v,b,0),An(v,b,1,m,1,0);break;case zn:en(p,g,m,v,b);break;case Gn:en(p,g,m,v,b),xn(v,b,m,1,0);break;case Un:rn(p,g,m,v,b);break;default:e(0)}c+=u,l+=f}t.Ma+=o}else alert(\"todo:EmitRescaledRowsYUVA\");e(t.Ma<=n.height)}}t.C=r,e(t.C<=t.i)}function At(t){var e;if(0<t.ua)return 0;for(e=0;e<t.Wb;++e){var r=t.Ya[e].G,n=t.Ya[e].H;if(0<r[1][n[1]+0].g||0<r[2][n[2]+0].g||0<r[3][n[3]+0].g)return 0}return 1}function xt(t,r,n,i,a,o){if(0!=t.Z){var s=t.qd,c=t.rd;for(e(null!=mi[t.Z]);r<n;++r)mi[t.Z](s,c,i,a,i,a,o),s=i,c=a,a+=o;t.qd=s,t.rd=c}}function St(t,r){var n=t.l.ma,i=0==n.Z||1==n.Z?t.l.j:t.C;i=t.C<i?i:t.C;if(e(r<=t.l.o),r>i){var a=t.l.width,o=n.ca,s=n.tb+a*i,c=t.V,u=t.Ba+t.c*i,h=t.gc;e(1==t.ab),e(3==h[0].hc),Xr(h[0],i,r,c,u,o,s),xt(n,i,r,o,s,a)}t.C=t.Ma=r}function _t(t,r,n,i,a,o,s){var c=t.$/i,u=t.$%i,h=t.m,l=t.s,f=n+t.$,d=f;a=n+i*a;var p=n+i*o,g=280+l.ua,m=t.Pb?c:16777216,v=0<l.ua?l.Wa:null,b=l.wc,y=f<p?wt(l,u,c):null;e(t.C<o),e(p<=a);var w=!1;t:for(;;){for(;w||f<p;){var N=0;if(c>=m){var _=f-n;e((m=t).Pb),m.wd=m.m,m.xd=_,0<m.s.ua&&B(m.s.Wa,m.s.vb),m=c+ti}if(u&b||(y=wt(l,u,c)),e(null!=y),y.Qb&&(r[f]=y.qb,w=!0),!w)if(S(h),y.jc){N=h,_=r;var P=f,k=y.pd[L(N)&Dr-1];e(y.jc),256>k.g?(x(N,N.u+k.g),_[P]=k.value,N=0):(x(N,N.u+k.g-256),e(256<=k.value),N=k.value),0==N&&(w=!0)}else N=bt(y.G[0],y.H[0],h);if(h.h)break;if(w||256>N){if(!w)if(y.nd)r[f]=(y.qb|N<<8)>>>0;else{if(S(h),w=bt(y.G[1],y.H[1],h),S(h),_=bt(y.G[2],y.H[2],h),P=bt(y.G[3],y.H[3],h),h.h)break;r[f]=(P<<24|w<<16|N<<8|_)>>>0}if(w=!1,++f,++u>=i&&(u=0,++c,null!=s&&c<=o&&!(c%16)&&s(t,c),null!=v))for(;d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N}else if(280>N){if(N=mt(N-256,h),_=bt(y.G[4],y.H[4],h),S(h),_=vt(i,_=mt(_,h)),h.h)break;if(f-n<_||a-f<N)break t;for(P=0;P<N;++P)r[f+P]=r[f+P-_];for(f+=N,u+=N;u>=i;)u-=i,++c,null!=s&&c<=o&&!(c%16)&&s(t,c);if(e(f<=a),u&b&&(y=wt(l,u,c)),null!=v)for(;d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N}else{if(!(N<g))break t;for(w=N-280,e(null!=v);d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N;N=f,e(!(w>>>(_=v).Xa)),r[N]=_.X[w],w=!0}w||e(h.h==A(h))}if(t.Pb&&h.h&&f<a)e(t.m.h),t.a=5,t.m=t.wd,t.$=t.xd,0<t.s.ua&&B(t.s.vb,t.s.Wa);else{if(h.h)break t;null!=s&&s(t,c>o?o:c),t.a=0,t.$=f-n}return 1}return t.a=3,0}function Pt(t){e(null!=t),t.vc=null,t.yc=null,t.Ya=null;var r=t.Wa;null!=r&&(r.X=null),t.vb=null,e(null!=t)}function kt(){var e=new or;return null==e?null:(e.a=0,e.xb=gi,rt(\"Predictor\",\"VP8LPredictors\"),rt(\"Predictor\",\"VP8LPredictors_C\"),rt(\"PredictorAdd\",\"VP8LPredictorsAdd\"),rt(\"PredictorAdd\",\"VP8LPredictorsAdd_C\"),Gr=G,$r=J,Qr=K,tn=Z,en=$,rn=Q,nn=tt,t.VP8LMapColor32b=Jr,t.VP8LMapColor8b=Kr,e)}function It(t,r,n,s,c){var u=1,f=[t],p=[r],g=s.m,m=s.s,v=null,b=0;t:for(;;){if(n)for(;u&&y(g,1);){var w=f,N=p,A=s,_=1,P=A.m,k=A.gc[A.ab],I=y(P,2);if(A.Oc&1<<I)u=0;else{switch(A.Oc|=1<<I,k.hc=I,k.Ea=w[0],k.nc=N[0],k.K=[null],++A.ab,e(4>=A.ab),I){case 0:case 1:k.b=y(P,3)+2,_=It(q(k.Ea,k.b),q(k.nc,k.b),0,A,k.K),k.K=k.K[0];break;case 3:var F,C=y(P,8)+1,j=16<C?0:4<C?1:2<C?2:3;if(w[0]=q(k.Ea,j),k.b=j,F=_=It(C,1,0,A,k.K)){var B,M=C,E=k,R=1<<(8>>E.b),T=a(R);if(null==T)F=0;else{var z=E.K[0],U=E.w;for(T[0]=E.K[0][0],B=1;B<1*M;++B)T[B]=D(z[U+B],T[B-1]);for(;B<4*R;++B)T[B]=0;E.K[0]=null,E.K[0]=T,F=1}}_=F;break;case 2:break;default:e(0)}u=_}}if(f=f[0],p=p[0],u&&y(g,1)&&!(u=1<=(b=y(g,4))&&11>=b)){s.a=3;break t}var H;if(H=u)e:{var W,V,G,Y=s,J=f,X=p,K=b,Z=n,$=Y.m,Q=Y.s,tt=[null],et=1,rt=0,nt=Qn[K];r:for(;;){if(Z&&y($,1)){var it=y($,3)+2,at=q(J,it),ot=q(X,it),st=at*ot;if(!It(at,ot,0,Y,tt))break r;for(tt=tt[0],Q.xc=it,W=0;W<st;++W){var ct=tt[W]>>8&65535;tt[W]=ct,ct>=et&&(et=ct+1)}}if($.h)break r;for(V=0;5>V;++V){var ut=Xn[V];!V&&0<K&&(ut+=1<<K),rt<ut&&(rt=ut)}var ht=o(et*nt,l),lt=et,ft=o(lt,d);if(null==ft)var dt=null;else e(65536>=lt),dt=ft;var pt=a(rt);if(null==dt||null==pt||null==ht){Y.a=1;break r}var gt=ht;for(W=G=0;W<et;++W){var mt=dt[W],vt=mt.G,bt=mt.H,wt=0,Nt=1,Lt=0;for(V=0;5>V;++V){ut=Xn[V],vt[V]=gt,bt[V]=G,!V&&0<K&&(ut+=1<<K);n:{var At,xt=ut,St=Y,kt=pt,Ft=gt,Ct=G,jt=0,Ot=St.m,Bt=y(Ot,1);if(i(kt,0,0,xt),Bt){var Mt=y(Ot,1)+1,Et=y(Ot,1),qt=y(Ot,0==Et?1:8);kt[qt]=1,2==Mt&&(kt[qt=y(Ot,8)]=1);var Dt=1}else{var Rt=a(19),Tt=y(Ot,4)+4;if(19<Tt){St.a=3;var zt=0;break n}for(At=0;At<Tt;++At)Rt[Zn[At]]=y(Ot,3);var Ut=void 0,Ht=void 0,Wt=St,Vt=Rt,Gt=xt,Yt=kt,Jt=0,Xt=Wt.m,Kt=8,Zt=o(128,l);i:for(;h(Zt,0,7,Vt,19);){if(y(Xt,1)){var $t=2+2*y(Xt,3);if((Ut=2+y(Xt,$t))>Gt)break i}else Ut=Gt;for(Ht=0;Ht<Gt&&Ut--;){S(Xt);var Qt=Zt[0+(127&L(Xt))];x(Xt,Xt.u+Qt.g);var te=Qt.value;if(16>te)Yt[Ht++]=te,0!=te&&(Kt=te);else{var ee=16==te,re=te-16,ne=Jn[re],ie=y(Xt,Yn[re])+ne;if(Ht+ie>Gt)break i;for(var ae=ee?Kt:0;0<ie--;)Yt[Ht++]=ae}}Jt=1;break i}Jt||(Wt.a=3),Dt=Jt}(Dt=Dt&&!Ot.h)&&(jt=h(Ft,Ct,8,kt,xt)),Dt&&0!=jt?zt=jt:(St.a=3,zt=0)}if(0==zt)break r;if(Nt&&1==Kn[V]&&(Nt=0==gt[G].g),wt+=gt[G].g,G+=zt,3>=V){var oe,se=pt[0];for(oe=1;oe<ut;++oe)pt[oe]>se&&(se=pt[oe]);Lt+=se}}if(mt.nd=Nt,mt.Qb=0,Nt&&(mt.qb=(vt[3][bt[3]+0].value<<24|vt[1][bt[1]+0].value<<16|vt[2][bt[2]+0].value)>>>0,0==wt&&256>vt[0][bt[0]+0].value&&(mt.Qb=1,mt.qb+=vt[0][bt[0]+0].value<<8)),mt.jc=!mt.Qb&&6>Lt,mt.jc){var ce,ue=mt;for(ce=0;ce<Dr;++ce){var he=ce,le=ue.pd[he],fe=ue.G[0][ue.H[0]+he];256<=fe.value?(le.g=fe.g+256,le.value=fe.value):(le.g=0,le.value=0,he>>=yt(fe,8,le),he>>=yt(ue.G[1][ue.H[1]+he],16,le),he>>=yt(ue.G[2][ue.H[2]+he],0,le),yt(ue.G[3][ue.H[3]+he],24,le))}}}Q.vc=tt,Q.Wb=et,Q.Ya=dt,Q.yc=ht,H=1;break e}H=0}if(!(u=H)){s.a=3;break t}if(0<b){if(m.ua=1<<b,!O(m.Wa,b)){s.a=1,u=0;break t}}else m.ua=0;var de=s,pe=f,ge=p,me=de.s,ve=me.xc;if(de.c=pe,de.i=ge,me.md=q(pe,ve),me.wc=0==ve?-1:(1<<ve)-1,n){s.xb=pi;break t}if(null==(v=a(f*p))){s.a=1,u=0;break t}u=(u=_t(s,v,0,f,p,p,null))&&!g.h;break t}return u?(null!=c?c[0]=v:(e(null==v),e(n)),s.$=0,n||Pt(m)):Pt(m),u}function Ft(t,r){var n=t.c*t.i,i=n+r+16*r;return e(t.c<=r),t.V=a(i),null==t.V?(t.Ta=null,t.Ua=0,t.a=1,0):(t.Ta=t.V,t.Ua=t.Ba+n+r,1)}function Ct(t,r){var n=t.C,i=r-n,a=t.V,o=t.Ba+t.c*n;for(e(r<=t.l.o);0<i;){var s=16<i?16:i,c=t.l.ma,u=t.l.width,h=u*s,l=c.ca,f=c.tb+u*n,d=t.Ta,p=t.Ua;Nt(t,s,a,o),_n(d,p,l,f,h),xt(c,n,n+s,l,f,u),i-=s,a+=s*t.c,n+=s}e(n==r),t.C=t.Ma=r}function jt(){this.ub=this.yd=this.td=this.Rb=0}function Ot(){this.Kd=this.Ld=this.Ud=this.Td=this.i=this.c=0}function Bt(){this.Fb=this.Bb=this.Cb=0,this.Zb=a(4),this.Lb=a(4)}function Mt(){this.Yb=function(){var t=[];return function t(e,r,n){for(var i=n[r],a=0;a<i&&(e.push(n.length>r+1?[]:0),!(n.length<r+1));a++)t(e[a],r+1,n)}(t,0,[3,11]),t}()}function Et(){this.jb=a(3),this.Wc=s([4,8],Mt),this.Xc=s([4,17],Mt)}function qt(){this.Pc=this.wb=this.Tb=this.zd=0,this.vd=new a(4),this.od=new a(4)}function Dt(){this.ld=this.La=this.dd=this.tc=0}function Rt(){this.Na=this.la=0}function Tt(){this.Sc=[0,0],this.Eb=[0,0],this.Qc=[0,0],this.ia=this.lc=0}function zt(){this.ad=a(384),this.Za=0,this.Ob=a(16),this.$b=this.Ad=this.ia=this.Gc=this.Hc=this.Dd=0}function Ut(){this.uc=this.M=this.Nb=0,this.wa=Array(new Dt),this.Y=0,this.ya=Array(new zt),this.aa=0,this.l=new Gt}function Ht(){this.y=a(16),this.f=a(8),this.ea=a(8)}function Wt(){this.cb=this.a=0,this.sc=\"\",this.m=new w,this.Od=new jt,this.Kc=new Ot,this.ed=new qt,this.Qa=new Bt,this.Ic=this.$c=this.Aa=0,this.D=new Ut,this.Xb=this.Va=this.Hb=this.zb=this.yb=this.Ub=this.za=0,this.Jc=o(8,w),this.ia=0,this.pb=o(4,Tt),this.Pa=new Et,this.Bd=this.kc=0,this.Ac=[],this.Bc=0,this.zc=[0,0,0,0],this.Gd=Array(new Ht),this.Hd=0,this.rb=Array(new Rt),this.sb=0,this.wa=Array(new Dt),this.Y=0,this.oc=[],this.pc=0,this.sa=[],this.ta=0,this.qa=[],this.ra=0,this.Ha=[],this.B=this.R=this.Ia=0,this.Ec=[],this.M=this.ja=this.Vb=this.Fc=0,this.ya=Array(new zt),this.L=this.aa=0,this.gd=s([4,2],Dt),this.ga=null,this.Fa=[],this.Cc=this.qc=this.P=0,this.Gb=[],this.Uc=0,this.mb=[],this.nb=0,this.rc=[],this.Ga=this.Vc=0}function Vt(t,e){return 0>t?0:t>e?e:t}function Gt(){this.T=this.U=this.ka=this.height=this.width=0,this.y=[],this.f=[],this.ea=[],this.Rc=this.fa=this.W=this.N=this.O=0,this.ma=\"void\",this.put=\"VP8IoPutHook\",this.ac=\"VP8IoSetupHook\",this.bc=\"VP8IoTeardownHook\",this.ha=this.Kb=0,this.data=[],this.hb=this.ib=this.da=this.o=this.j=this.va=this.v=this.Da=this.ob=this.w=0,this.F=[],this.J=0}function Yt(){var t=new Wt;return null!=t&&(t.a=0,t.sc=\"OK\",t.cb=0,t.Xb=0,ni||(ni=Zt)),t}function Jt(t,e,r){return 0==t.a&&(t.a=e,t.sc=r,t.cb=0),0}function Xt(t,e,r){return 3<=r&&157==t[e+0]&&1==t[e+1]&&42==t[e+2]}function Kt(t,r){if(null==t)return 0;if(t.a=0,t.sc=\"OK\",null==r)return Jt(t,2,\"null VP8Io passed to VP8GetHeaders()\");var n=r.data,a=r.w,o=r.ha;if(4>o)return Jt(t,7,\"Truncated header.\");var s=n[a+0]|n[a+1]<<8|n[a+2]<<16,c=t.Od;if(c.Rb=!(1&s),c.td=s>>1&7,c.yd=s>>4&1,c.ub=s>>5,3<c.td)return Jt(t,3,\"Incorrect keyframe parameters.\");if(!c.yd)return Jt(t,4,\"Frame not displayable.\");a+=3,o-=3;var u=t.Kc;if(c.Rb){if(7>o)return Jt(t,7,\"cannot parse picture header\");if(!Xt(n,a,o))return Jt(t,3,\"Bad code word\");u.c=16383&(n[a+4]<<8|n[a+3]),u.Td=n[a+4]>>6,u.i=16383&(n[a+6]<<8|n[a+5]),u.Ud=n[a+6]>>6,a+=7,o-=7,t.za=u.c+15>>4,t.Ub=u.i+15>>4,r.width=u.c,r.height=u.i,r.Da=0,r.j=0,r.v=0,r.va=r.width,r.o=r.height,r.da=0,r.ib=r.width,r.hb=r.height,r.U=r.width,r.T=r.height,i((s=t.Pa).jb,0,255,s.jb.length),e(null!=(s=t.Qa)),s.Cb=0,s.Bb=0,s.Fb=1,i(s.Zb,0,0,s.Zb.length),i(s.Lb,0,0,s.Lb)}if(c.ub>o)return Jt(t,7,\"bad partition length\");p(s=t.m,n,a,c.ub),a+=c.ub,o-=c.ub,c.Rb&&(u.Ld=P(s),u.Kd=P(s)),u=t.Qa;var h,l=t.Pa;if(e(null!=s),e(null!=u),u.Cb=P(s),u.Cb){if(u.Bb=P(s),P(s)){for(u.Fb=P(s),h=0;4>h;++h)u.Zb[h]=P(s)?m(s,7):0;for(h=0;4>h;++h)u.Lb[h]=P(s)?m(s,6):0}if(u.Bb)for(h=0;3>h;++h)l.jb[h]=P(s)?g(s,8):255}else u.Bb=0;if(s.Ka)return Jt(t,3,\"cannot parse segment header\");if((u=t.ed).zd=P(s),u.Tb=g(s,6),u.wb=g(s,3),u.Pc=P(s),u.Pc&&P(s)){for(l=0;4>l;++l)P(s)&&(u.vd[l]=m(s,6));for(l=0;4>l;++l)P(s)&&(u.od[l]=m(s,6))}if(t.L=0==u.Tb?0:u.zd?1:2,s.Ka)return Jt(t,3,\"cannot parse filter header\");var f=o;if(o=h=a,a=h+f,u=f,t.Xb=(1<<g(t.m,2))-1,f<3*(l=t.Xb))n=7;else{for(h+=3*l,u-=3*l,f=0;f<l;++f){var d=n[o+0]|n[o+1]<<8|n[o+2]<<16;d>u&&(d=u),p(t.Jc[+f],n,h,d),h+=d,u-=d,o+=3}p(t.Jc[+l],n,h,u),n=h<a?0:5}if(0!=n)return Jt(t,n,\"cannot parse partitions\");for(n=g(h=t.m,7),o=P(h)?m(h,4):0,a=P(h)?m(h,4):0,u=P(h)?m(h,4):0,l=P(h)?m(h,4):0,h=P(h)?m(h,4):0,f=t.Qa,d=0;4>d;++d){if(f.Cb){var v=f.Zb[d];f.Fb||(v+=n)}else{if(0<d){t.pb[d]=t.pb[0];continue}v=n}var b=t.pb[d];b.Sc[0]=ei[Vt(v+o,127)],b.Sc[1]=ri[Vt(v+0,127)],b.Eb[0]=2*ei[Vt(v+a,127)],b.Eb[1]=101581*ri[Vt(v+u,127)]>>16,8>b.Eb[1]&&(b.Eb[1]=8),b.Qc[0]=ei[Vt(v+l,117)],b.Qc[1]=ri[Vt(v+h,127)],b.lc=v+h}if(!c.Rb)return Jt(t,4,\"Not a key frame.\");for(P(s),c=t.Pa,n=0;4>n;++n){for(o=0;8>o;++o)for(a=0;3>a;++a)for(u=0;11>u;++u)l=k(s,ui[n][o][a][u])?g(s,8):si[n][o][a][u],c.Wc[n][o].Yb[a][u]=l;for(o=0;17>o;++o)c.Xc[n][o]=c.Wc[n][hi[o]]}return t.kc=P(s),t.kc&&(t.Bd=g(s,8)),t.cb=1}function Zt(t,e,r,n,i,a,o){var s=e[i].Yb[r];for(r=0;16>i;++i){if(!k(t,s[r+0]))return i;for(;!k(t,s[r+1]);)if(s=e[++i].Yb[0],r=0,16==i)return 16;var c=e[i+1].Yb;if(k(t,s[r+2])){var u=t,h=0;if(k(u,(f=s)[(l=r)+3]))if(k(u,f[l+6])){for(s=0,l=2*(h=k(u,f[l+8]))+(f=k(u,f[l+9+h])),h=0,f=ii[l];f[s];++s)h+=h+k(u,f[s]);h+=3+(8<<l)}else k(u,f[l+7])?(h=7+2*k(u,165),h+=k(u,145)):h=5+k(u,159);else h=k(u,f[l+4])?3+k(u,f[l+5]):2;s=c[2]}else h=1,s=c[1];c=o+ai[i],0>(u=t).b&&_(u);var l,f=u.b,d=(l=u.Ca>>1)-(u.I>>f)>>31;--u.b,u.Ca+=d,u.Ca|=1,u.I-=(l+1&d)<<f,a[c]=((h^d)-d)*n[(0<i)+0]}return 16}function $t(t){var e=t.rb[t.sb-1];e.la=0,e.Na=0,i(t.zc,0,0,t.zc.length),t.ja=0}function Qt(t,r){if(null==t)return 0;if(null==r)return Jt(t,2,\"NULL VP8Io parameter in VP8Decode().\");if(!t.cb&&!Kt(t,r))return 0;if(e(t.cb),null==r.ac||r.ac(r)){r.ob&&(t.L=0);var s=Ri[t.L];if(2==t.L?(t.yb=0,t.zb=0):(t.yb=r.v-s>>4,t.zb=r.j-s>>4,0>t.yb&&(t.yb=0),0>t.zb&&(t.zb=0)),t.Va=r.o+15+s>>4,t.Hb=r.va+15+s>>4,t.Hb>t.za&&(t.Hb=t.za),t.Va>t.Ub&&(t.Va=t.Ub),0<t.L){var c=t.ed;for(s=0;4>s;++s){var u;if(t.Qa.Cb){var h=t.Qa.Lb[s];t.Qa.Fb||(h+=c.Tb)}else h=c.Tb;for(u=0;1>=u;++u){var l=t.gd[s][u],f=h;if(c.Pc&&(f+=c.vd[0],u&&(f+=c.od[0])),0<(f=0>f?0:63<f?63:f)){var d=f;0<c.wb&&((d=4<c.wb?d>>2:d>>1)>9-c.wb&&(d=9-c.wb)),1>d&&(d=1),l.dd=d,l.tc=2*f+d,l.ld=40<=f?2:15<=f?1:0}else l.tc=0;l.La=u}}}s=0}else Jt(t,6,\"Frame setup failed\"),s=t.a;if(s=0==s){if(s){t.$c=0,0<t.Aa||(t.Ic=zi);t:{s=t.Ic;c=4*(d=t.za);var p=32*d,g=d+1,m=0<t.L?d*(0<t.Aa?2:1):0,v=(2==t.Aa?2:1)*d;if((l=c+832+(u=3*(16*s+Ri[t.L])/2*p)+(h=null!=t.Fa&&0<t.Fa.length?t.Kc.c*t.Kc.i:0))!=l)s=0;else{if(l>t.Vb){if(t.Vb=0,t.Ec=a(l),t.Fc=0,null==t.Ec){s=Jt(t,1,\"no memory during frame initialization.\");break t}t.Vb=l}l=t.Ec,f=t.Fc,t.Ac=l,t.Bc=f,f+=c,t.Gd=o(p,Ht),t.Hd=0,t.rb=o(g+1,Rt),t.sb=1,t.wa=m?o(m,Dt):null,t.Y=0,t.D.Nb=0,t.D.wa=t.wa,t.D.Y=t.Y,0<t.Aa&&(t.D.Y+=d),e(!0),t.oc=l,t.pc=f,f+=832,t.ya=o(v,zt),t.aa=0,t.D.ya=t.ya,t.D.aa=t.aa,2==t.Aa&&(t.D.aa+=d),t.R=16*d,t.B=8*d,d=(p=Ri[t.L])*t.R,p=p/2*t.B,t.sa=l,t.ta=f+d,t.qa=t.sa,t.ra=t.ta+16*s*t.R+p,t.Ha=t.qa,t.Ia=t.ra+8*s*t.B+p,t.$c=0,f+=u,t.mb=h?l:null,t.nb=h?f:null,e(f+h<=t.Fc+t.Vb),$t(t),i(t.Ac,t.Bc,0,c),s=1}}if(s){if(r.ka=0,r.y=t.sa,r.O=t.ta,r.f=t.qa,r.N=t.ra,r.ea=t.Ha,r.Vd=t.Ia,r.fa=t.R,r.Rc=t.B,r.F=null,r.J=0,!Cn){for(s=-255;255>=s;++s)Pn[255+s]=0>s?-s:s;for(s=-1020;1020>=s;++s)kn[1020+s]=-128>s?-128:127<s?127:s;for(s=-112;112>=s;++s)In[112+s]=-16>s?-16:15<s?15:s;for(s=-255;510>=s;++s)Fn[255+s]=0>s?0:255<s?255:s;Cn=1}an=ue,on=ae,cn=oe,un=se,hn=ce,sn=ie,ln=Je,fn=Xe,dn=$e,pn=Qe,gn=Ke,mn=Ze,vn=tr,bn=er,yn=Ue,wn=He,Nn=We,Ln=Ve,fi[0]=xe,fi[1]=le,fi[2]=Le,fi[3]=Ae,fi[4]=Se,fi[5]=Pe,fi[6]=_e,fi[7]=ke,fi[8]=Fe,fi[9]=Ie,li[0]=ve,li[1]=de,li[2]=pe,li[3]=ge,li[4]=be,li[5]=ye,li[6]=we,di[0]=Be,di[1]=fe,di[2]=Ce,di[3]=je,di[4]=Ee,di[5]=Me,di[6]=qe,s=1}else s=0}s&&(s=function(t,r){for(t.M=0;t.M<t.Va;++t.M){var o,s=t.Jc[t.M&t.Xb],c=t.m,u=t;for(o=0;o<u.za;++o){var h=c,l=u,f=l.Ac,d=l.Bc+4*o,p=l.zc,g=l.ya[l.aa+o];if(l.Qa.Bb?g.$b=k(h,l.Pa.jb[0])?2+k(h,l.Pa.jb[2]):k(h,l.Pa.jb[1]):g.$b=0,l.kc&&(g.Ad=k(h,l.Bd)),g.Za=!k(h,145)+0,g.Za){var m=g.Ob,v=0;for(l=0;4>l;++l){var b,y=p[0+l];for(b=0;4>b;++b){y=ci[f[d+b]][y];for(var w=oi[k(h,y[0])];0<w;)w=oi[2*w+k(h,y[w])];y=-w,f[d+b]=y}n(m,v,f,d,4),v+=4,p[0+l]=y}}else y=k(h,156)?k(h,128)?1:3:k(h,163)?2:0,g.Ob[0]=y,i(f,d,y,4),i(p,0,y,4);g.Dd=k(h,142)?k(h,114)?k(h,183)?1:3:2:0}if(u.m.Ka)return Jt(t,7,\"Premature end-of-partition0 encountered.\");for(;t.ja<t.za;++t.ja){if(u=s,h=(c=t).rb[c.sb-1],f=c.rb[c.sb+c.ja],o=c.ya[c.aa+c.ja],d=c.kc?o.Ad:0)h.la=f.la=0,o.Za||(h.Na=f.Na=0),o.Hc=0,o.Gc=0,o.ia=0;else{var N,L;h=f,f=u,d=c.Pa.Xc,p=c.ya[c.aa+c.ja],g=c.pb[p.$b];if(l=p.ad,m=0,v=c.rb[c.sb-1],y=b=0,i(l,m,0,384),p.Za)var A=0,x=d[3];else{w=a(16);var S=h.Na+v.Na;if(S=ni(f,d[1],S,g.Eb,0,w,0),h.Na=v.Na=(0<S)+0,1<S)an(w,0,l,m);else{var _=w[0]+3>>3;for(w=0;256>w;w+=16)l[m+w]=_}A=1,x=d[0]}var P=15&h.la,I=15&v.la;for(w=0;4>w;++w){var F=1&I;for(_=L=0;4>_;++_)P=P>>1|(F=(S=ni(f,x,S=F+(1&P),g.Sc,A,l,m))>A)<<7,L=L<<2|(3<S?3:1<S?2:0!=l[m+0]),m+=16;P>>=4,I=I>>1|F<<7,b=(b<<8|L)>>>0}for(x=P,A=I>>4,N=0;4>N;N+=2){for(L=0,P=h.la>>4+N,I=v.la>>4+N,w=0;2>w;++w){for(F=1&I,_=0;2>_;++_)S=F+(1&P),P=P>>1|(F=0<(S=ni(f,d[2],S,g.Qc,0,l,m)))<<3,L=L<<2|(3<S?3:1<S?2:0!=l[m+0]),m+=16;P>>=2,I=I>>1|F<<5}y|=L<<4*N,x|=P<<4<<N,A|=(240&I)<<N}h.la=x,v.la=A,p.Hc=b,p.Gc=y,p.ia=43690&y?0:g.ia,d=!(b|y)}if(0<c.L&&(c.wa[c.Y+c.ja]=c.gd[o.$b][o.Za],c.wa[c.Y+c.ja].La|=!d),u.Ka)return Jt(t,7,\"Premature end-of-file encountered.\")}if($t(t),c=r,u=1,o=(s=t).D,h=0<s.L&&s.M>=s.zb&&s.M<=s.Va,0==s.Aa)t:{if(o.M=s.M,o.uc=h,Or(s,o),u=1,o=(L=s.D).Nb,h=(y=Ri[s.L])*s.R,f=y/2*s.B,w=16*o*s.R,_=8*o*s.B,d=s.sa,p=s.ta-h+w,g=s.qa,l=s.ra-f+_,m=s.Ha,v=s.Ia-f+_,I=0==(P=L.M),b=P>=s.Va-1,2==s.Aa&&Or(s,L),L.uc)for(F=(S=s).D.M,e(S.D.uc),L=S.yb;L<S.Hb;++L){A=L,x=F;var C=(j=(z=S).D).Nb;N=z.R;var j=j.wa[j.Y+A],O=z.sa,B=z.ta+16*C*N+16*A,M=j.dd,E=j.tc;if(0!=E)if(e(3<=E),1==z.L)0<A&&wn(O,B,N,E+4),j.La&&Ln(O,B,N,E),0<x&&yn(O,B,N,E+4),j.La&&Nn(O,B,N,E);else{var q=z.B,D=z.qa,R=z.ra+8*C*q+8*A,T=z.Ha,z=z.Ia+8*C*q+8*A;C=j.ld;0<A&&(fn(O,B,N,E+4,M,C),pn(D,R,T,z,q,E+4,M,C)),j.La&&(mn(O,B,N,E,M,C),bn(D,R,T,z,q,E,M,C)),0<x&&(ln(O,B,N,E+4,M,C),dn(D,R,T,z,q,E+4,M,C)),j.La&&(gn(O,B,N,E,M,C),vn(D,R,T,z,q,E,M,C))}}if(s.ia&&alert(\"todo:DitherRow\"),null!=c.put){if(L=16*P,P=16*(P+1),I?(c.y=s.sa,c.O=s.ta+w,c.f=s.qa,c.N=s.ra+_,c.ea=s.Ha,c.W=s.Ia+_):(L-=y,c.y=d,c.O=p,c.f=g,c.N=l,c.ea=m,c.W=v),b||(P-=y),P>c.o&&(P=c.o),c.F=null,c.J=null,null!=s.Fa&&0<s.Fa.length&&L<P&&(c.J=lr(s,c,L,P-L),c.F=s.mb,null==c.F&&0==c.F.length)){u=Jt(s,3,\"Could not decode alpha data.\");break t}L<c.j&&(y=c.j-L,L=c.j,e(!(1&y)),c.O+=s.R*y,c.N+=s.B*(y>>1),c.W+=s.B*(y>>1),null!=c.F&&(c.J+=c.width*y)),L<P&&(c.O+=c.v,c.N+=c.v>>1,c.W+=c.v>>1,null!=c.F&&(c.J+=c.v),c.ka=L-c.j,c.U=c.va-c.v,c.T=P-L,u=c.put(c))}o+1!=s.Ic||b||(n(s.sa,s.ta-h,d,p+16*s.R,h),n(s.qa,s.ra-f,g,l+8*s.B,f),n(s.Ha,s.Ia-f,m,v+8*s.B,f))}if(!u)return Jt(t,6,\"Output aborted.\")}return 1}(t,r)),null!=r.bc&&r.bc(r),s&=1}return s?(t.cb=0,s):0}function te(t,e,r,n,i){i=t[e+r+32*n]+(i>>3),t[e+r+32*n]=-256&i?0>i?0:255:i}function ee(t,e,r,n,i,a){te(t,e,0,r,n+i),te(t,e,1,r,n+a),te(t,e,2,r,n-a),te(t,e,3,r,n-i)}function re(t){return(20091*t>>16)+t}function ne(t,e,r,n){var i,o=0,s=a(16);for(i=0;4>i;++i){var c=t[e+0]+t[e+8],u=t[e+0]-t[e+8],h=(35468*t[e+4]>>16)-re(t[e+12]),l=re(t[e+4])+(35468*t[e+12]>>16);s[o+0]=c+l,s[o+1]=u+h,s[o+2]=u-h,s[o+3]=c-l,o+=4,e++}for(i=o=0;4>i;++i)c=(t=s[o+0]+4)+s[o+8],u=t-s[o+8],h=(35468*s[o+4]>>16)-re(s[o+12]),te(r,n,0,0,c+(l=re(s[o+4])+(35468*s[o+12]>>16))),te(r,n,1,0,u+h),te(r,n,2,0,u-h),te(r,n,3,0,c-l),o++,n+=32}function ie(t,e,r,n){var i=t[e+0]+4,a=35468*t[e+4]>>16,o=re(t[e+4]),s=35468*t[e+1]>>16;ee(r,n,0,i+o,t=re(t[e+1]),s),ee(r,n,1,i+a,t,s),ee(r,n,2,i-a,t,s),ee(r,n,3,i-o,t,s)}function ae(t,e,r,n,i){ne(t,e,r,n),i&&ne(t,e+16,r,n+4)}function oe(t,e,r,n){on(t,e+0,r,n,1),on(t,e+32,r,n+128,1)}function se(t,e,r,n){var i;for(t=t[e+0]+4,i=0;4>i;++i)for(e=0;4>e;++e)te(r,n,e,i,t)}function ce(t,e,r,n){t[e+0]&&un(t,e+0,r,n),t[e+16]&&un(t,e+16,r,n+4),t[e+32]&&un(t,e+32,r,n+128),t[e+48]&&un(t,e+48,r,n+128+4)}function ue(t,e,r,n){var i,o=a(16);for(i=0;4>i;++i){var s=t[e+0+i]+t[e+12+i],c=t[e+4+i]+t[e+8+i],u=t[e+4+i]-t[e+8+i],h=t[e+0+i]-t[e+12+i];o[0+i]=s+c,o[8+i]=s-c,o[4+i]=h+u,o[12+i]=h-u}for(i=0;4>i;++i)s=(t=o[0+4*i]+3)+o[3+4*i],c=o[1+4*i]+o[2+4*i],u=o[1+4*i]-o[2+4*i],h=t-o[3+4*i],r[n+0]=s+c>>3,r[n+16]=h+u>>3,r[n+32]=s-c>>3,r[n+48]=h-u>>3,n+=64}function he(t,e,r){var n,i=e-32,a=Bn,o=255-t[i-1];for(n=0;n<r;++n){var s,c=a,u=o+t[e-1];for(s=0;s<r;++s)t[e+s]=c[u+t[i+s]];e+=32}}function le(t,e){he(t,e,4)}function fe(t,e){he(t,e,8)}function de(t,e){he(t,e,16)}function pe(t,e){var r;for(r=0;16>r;++r)n(t,e+32*r,t,e-32,16)}function ge(t,e){var r;for(r=16;0<r;--r)i(t,e,t[e-1],16),e+=32}function me(t,e,r){var n;for(n=0;16>n;++n)i(e,r+32*n,t,16)}function ve(t,e){var r,n=16;for(r=0;16>r;++r)n+=t[e-1+32*r]+t[e+r-32];me(n>>5,t,e)}function be(t,e){var r,n=8;for(r=0;16>r;++r)n+=t[e-1+32*r];me(n>>4,t,e)}function ye(t,e){var r,n=8;for(r=0;16>r;++r)n+=t[e+r-32];me(n>>4,t,e)}function we(t,e){me(128,t,e)}function Ne(t,e,r){return t+2*e+r+2>>2}function Le(t,e){var r,i=e-32;i=new Uint8Array([Ne(t[i-1],t[i+0],t[i+1]),Ne(t[i+0],t[i+1],t[i+2]),Ne(t[i+1],t[i+2],t[i+3]),Ne(t[i+2],t[i+3],t[i+4])]);for(r=0;4>r;++r)n(t,e+32*r,i,0,i.length)}function Ae(t,e){var r=t[e-1],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96];I(t,e+0,16843009*Ne(t[e-1-32],r,n)),I(t,e+32,16843009*Ne(r,n,i)),I(t,e+64,16843009*Ne(n,i,a)),I(t,e+96,16843009*Ne(i,a,a))}function xe(t,e){var r,n=4;for(r=0;4>r;++r)n+=t[e+r-32]+t[e-1+32*r];for(n>>=3,r=0;4>r;++r)i(t,e+32*r,n,4)}function Se(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1-32],o=t[e+0-32],s=t[e+1-32],c=t[e+2-32],u=t[e+3-32];t[e+0+96]=Ne(n,i,t[e-1+96]),t[e+1+96]=t[e+0+64]=Ne(r,n,i),t[e+2+96]=t[e+1+64]=t[e+0+32]=Ne(a,r,n),t[e+3+96]=t[e+2+64]=t[e+1+32]=t[e+0+0]=Ne(o,a,r),t[e+3+64]=t[e+2+32]=t[e+1+0]=Ne(s,o,a),t[e+3+32]=t[e+2+0]=Ne(c,s,o),t[e+3+0]=Ne(u,c,s)}function _e(t,e){var r=t[e+1-32],n=t[e+2-32],i=t[e+3-32],a=t[e+4-32],o=t[e+5-32],s=t[e+6-32],c=t[e+7-32];t[e+0+0]=Ne(t[e+0-32],r,n),t[e+1+0]=t[e+0+32]=Ne(r,n,i),t[e+2+0]=t[e+1+32]=t[e+0+64]=Ne(n,i,a),t[e+3+0]=t[e+2+32]=t[e+1+64]=t[e+0+96]=Ne(i,a,o),t[e+3+32]=t[e+2+64]=t[e+1+96]=Ne(a,o,s),t[e+3+64]=t[e+2+96]=Ne(o,s,c),t[e+3+96]=Ne(s,c,c)}function Pe(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1-32],o=t[e+0-32],s=t[e+1-32],c=t[e+2-32],u=t[e+3-32];t[e+0+0]=t[e+1+64]=a+o+1>>1,t[e+1+0]=t[e+2+64]=o+s+1>>1,t[e+2+0]=t[e+3+64]=s+c+1>>1,t[e+3+0]=c+u+1>>1,t[e+0+96]=Ne(i,n,r),t[e+0+64]=Ne(n,r,a),t[e+0+32]=t[e+1+96]=Ne(r,a,o),t[e+1+32]=t[e+2+96]=Ne(a,o,s),t[e+2+32]=t[e+3+96]=Ne(o,s,c),t[e+3+32]=Ne(s,c,u)}function ke(t,e){var r=t[e+0-32],n=t[e+1-32],i=t[e+2-32],a=t[e+3-32],o=t[e+4-32],s=t[e+5-32],c=t[e+6-32],u=t[e+7-32];t[e+0+0]=r+n+1>>1,t[e+1+0]=t[e+0+64]=n+i+1>>1,t[e+2+0]=t[e+1+64]=i+a+1>>1,t[e+3+0]=t[e+2+64]=a+o+1>>1,t[e+0+32]=Ne(r,n,i),t[e+1+32]=t[e+0+96]=Ne(n,i,a),t[e+2+32]=t[e+1+96]=Ne(i,a,o),t[e+3+32]=t[e+2+96]=Ne(a,o,s),t[e+3+64]=Ne(o,s,c),t[e+3+96]=Ne(s,c,u)}function Ie(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96];t[e+0+0]=r+n+1>>1,t[e+2+0]=t[e+0+32]=n+i+1>>1,t[e+2+32]=t[e+0+64]=i+a+1>>1,t[e+1+0]=Ne(r,n,i),t[e+3+0]=t[e+1+32]=Ne(n,i,a),t[e+3+32]=t[e+1+64]=Ne(i,a,a),t[e+3+64]=t[e+2+64]=t[e+0+96]=t[e+1+96]=t[e+2+96]=t[e+3+96]=a}function Fe(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96],o=t[e-1-32],s=t[e+0-32],c=t[e+1-32],u=t[e+2-32];t[e+0+0]=t[e+2+32]=r+o+1>>1,t[e+0+32]=t[e+2+64]=n+r+1>>1,t[e+0+64]=t[e+2+96]=i+n+1>>1,t[e+0+96]=a+i+1>>1,t[e+3+0]=Ne(s,c,u),t[e+2+0]=Ne(o,s,c),t[e+1+0]=t[e+3+32]=Ne(r,o,s),t[e+1+32]=t[e+3+64]=Ne(n,r,o),t[e+1+64]=t[e+3+96]=Ne(i,n,r),t[e+1+96]=Ne(a,i,n)}function Ce(t,e){var r;for(r=0;8>r;++r)n(t,e+32*r,t,e-32,8)}function je(t,e){var r;for(r=0;8>r;++r)i(t,e,t[e-1],8),e+=32}function Oe(t,e,r){var n;for(n=0;8>n;++n)i(e,r+32*n,t,8)}function Be(t,e){var r,n=8;for(r=0;8>r;++r)n+=t[e+r-32]+t[e-1+32*r];Oe(n>>4,t,e)}function Me(t,e){var r,n=4;for(r=0;8>r;++r)n+=t[e+r-32];Oe(n>>3,t,e)}function Ee(t,e){var r,n=4;for(r=0;8>r;++r)n+=t[e-1+32*r];Oe(n>>3,t,e)}function qe(t,e){Oe(128,t,e)}function De(t,e,r){var n=t[e-r],i=t[e+0],a=3*(i-n)+jn[1020+t[e-2*r]-t[e+r]],o=On[112+(a+4>>3)];t[e-r]=Bn[255+n+On[112+(a+3>>3)]],t[e+0]=Bn[255+i-o]}function Re(t,e,r,n){var i=t[e+0],a=t[e+r];return Mn[255+t[e-2*r]-t[e-r]]>n||Mn[255+a-i]>n}function Te(t,e,r,n){return 4*Mn[255+t[e-r]-t[e+0]]+Mn[255+t[e-2*r]-t[e+r]]<=n}function ze(t,e,r,n,i){var a=t[e-3*r],o=t[e-2*r],s=t[e-r],c=t[e+0],u=t[e+r],h=t[e+2*r],l=t[e+3*r];return 4*Mn[255+s-c]+Mn[255+o-u]>n?0:Mn[255+t[e-4*r]-a]<=i&&Mn[255+a-o]<=i&&Mn[255+o-s]<=i&&Mn[255+l-h]<=i&&Mn[255+h-u]<=i&&Mn[255+u-c]<=i}function Ue(t,e,r,n){var i=2*n+1;for(n=0;16>n;++n)Te(t,e+n,r,i)&&De(t,e+n,r)}function He(t,e,r,n){var i=2*n+1;for(n=0;16>n;++n)Te(t,e+n*r,1,i)&&De(t,e+n*r,1)}function We(t,e,r,n){var i;for(i=3;0<i;--i)Ue(t,e+=4*r,r,n)}function Ve(t,e,r,n){var i;for(i=3;0<i;--i)He(t,e+=4,r,n)}function Ge(t,e,r,n,i,a,o,s){for(a=2*a+1;0<i--;){if(ze(t,e,r,a,o))if(Re(t,e,r,s))De(t,e,r);else{var c=t,u=e,h=r,l=c[u-2*h],f=c[u-h],d=c[u+0],p=c[u+h],g=c[u+2*h],m=27*(b=jn[1020+3*(d-f)+jn[1020+l-p]])+63>>7,v=18*b+63>>7,b=9*b+63>>7;c[u-3*h]=Bn[255+c[u-3*h]+b],c[u-2*h]=Bn[255+l+v],c[u-h]=Bn[255+f+m],c[u+0]=Bn[255+d-m],c[u+h]=Bn[255+p-v],c[u+2*h]=Bn[255+g-b]}e+=n}}function Ye(t,e,r,n,i,a,o,s){for(a=2*a+1;0<i--;){if(ze(t,e,r,a,o))if(Re(t,e,r,s))De(t,e,r);else{var c=t,u=e,h=r,l=c[u-h],f=c[u+0],d=c[u+h],p=On[112+((g=3*(f-l))+4>>3)],g=On[112+(g+3>>3)],m=p+1>>1;c[u-2*h]=Bn[255+c[u-2*h]+m],c[u-h]=Bn[255+l+g],c[u+0]=Bn[255+f-p],c[u+h]=Bn[255+d-m]}e+=n}}function Je(t,e,r,n,i,a){Ge(t,e,r,1,16,n,i,a)}function Xe(t,e,r,n,i,a){Ge(t,e,1,r,16,n,i,a)}function Ke(t,e,r,n,i,a){var o;for(o=3;0<o;--o)Ye(t,e+=4*r,r,1,16,n,i,a)}function Ze(t,e,r,n,i,a){var o;for(o=3;0<o;--o)Ye(t,e+=4,1,r,16,n,i,a)}function $e(t,e,r,n,i,a,o,s){Ge(t,e,i,1,8,a,o,s),Ge(r,n,i,1,8,a,o,s)}function Qe(t,e,r,n,i,a,o,s){Ge(t,e,1,i,8,a,o,s),Ge(r,n,1,i,8,a,o,s)}function tr(t,e,r,n,i,a,o,s){Ye(t,e+4*i,i,1,8,a,o,s),Ye(r,n+4*i,i,1,8,a,o,s)}function er(t,e,r,n,i,a,o,s){Ye(t,e+4,1,i,8,a,o,s),Ye(r,n+4,1,i,8,a,o,s)}function rr(){this.ba=new ot,this.ec=[],this.cc=[],this.Mc=[],this.Dc=this.Nc=this.dc=this.fc=0,this.Oa=new ct,this.memory=0,this.Ib=\"OutputFunc\",this.Jb=\"OutputAlphaFunc\",this.Nd=\"OutputRowFunc\"}function nr(){this.data=[],this.offset=this.kd=this.ha=this.w=0,this.na=[],this.xa=this.gb=this.Ja=this.Sa=this.P=0}function ir(){this.nc=this.Ea=this.b=this.hc=0,this.K=[],this.w=0}function ar(){this.ua=0,this.Wa=new M,this.vb=new M,this.md=this.xc=this.wc=0,this.vc=[],this.Wb=0,this.Ya=new d,this.yc=new l}function or(){this.xb=this.a=0,this.l=new Gt,this.ca=new ot,this.V=[],this.Ba=0,this.Ta=[],this.Ua=0,this.m=new N,this.Pb=0,this.wd=new N,this.Ma=this.$=this.C=this.i=this.c=this.xd=0,this.s=new ar,this.ab=0,this.gc=o(4,ir),this.Oc=0}function sr(){this.Lc=this.Z=this.$a=this.i=this.c=0,this.l=new Gt,this.ic=0,this.ca=[],this.tb=0,this.qd=null,this.rd=0}function cr(t,e,r,n,i,a,o){for(t=null==t?0:t[e+0],e=0;e<o;++e)i[a+e]=t+r[n+e]&255,t=i[a+e]}function ur(t,e,r,n,i,a,o){var s;if(null==t)cr(null,null,r,n,i,a,o);else for(s=0;s<o;++s)i[a+s]=t[e+s]+r[n+s]&255}function hr(t,e,r,n,i,a,o){if(null==t)cr(null,null,r,n,i,a,o);else{var s,c=t[e+0],u=c,h=c;for(s=0;s<o;++s)u=h+(c=t[e+s])-u,h=r[n+s]+(-256&u?0>u?0:255:u)&255,u=c,i[a+s]=h}}function lr(t,r,i,o){var s=r.width,c=r.o;if(e(null!=t&&null!=r),0>i||0>=o||i+o>c)return null;if(!t.Cc){if(null==t.ga){var u;if(t.ga=new sr,(u=null==t.ga)||(u=r.width*r.o,e(0==t.Gb.length),t.Gb=a(u),t.Uc=0,null==t.Gb?u=0:(t.mb=t.Gb,t.nb=t.Uc,t.rc=null,u=1),u=!u),!u){u=t.ga;var h=t.Fa,l=t.P,f=t.qc,d=t.mb,p=t.nb,g=l+1,m=f-1,b=u.l;if(e(null!=h&&null!=d&&null!=r),mi[0]=null,mi[1]=cr,mi[2]=ur,mi[3]=hr,u.ca=d,u.tb=p,u.c=r.width,u.i=r.height,e(0<u.c&&0<u.i),1>=f)r=0;else if(u.$a=h[l+0]>>0&3,u.Z=h[l+0]>>2&3,u.Lc=h[l+0]>>4&3,l=h[l+0]>>6&3,0>u.$a||1<u.$a||4<=u.Z||1<u.Lc||l)r=0;else if(b.put=dt,b.ac=ft,b.bc=pt,b.ma=u,b.width=r.width,b.height=r.height,b.Da=r.Da,b.v=r.v,b.va=r.va,b.j=r.j,b.o=r.o,u.$a)t:{e(1==u.$a),r=kt();e:for(;;){if(null==r){r=0;break t}if(e(null!=u),u.mc=r,r.c=u.c,r.i=u.i,r.l=u.l,r.l.ma=u,r.l.width=u.c,r.l.height=u.i,r.a=0,v(r.m,h,g,m),!It(u.c,u.i,1,r,null))break e;if(1==r.ab&&3==r.gc[0].hc&&At(r.s)?(u.ic=1,h=r.c*r.i,r.Ta=null,r.Ua=0,r.V=a(h),r.Ba=0,null==r.V?(r.a=1,r=0):r=1):(u.ic=0,r=Ft(r,u.c)),!r)break e;r=1;break t}u.mc=null,r=0}else r=m>=u.c*u.i;u=!r}if(u)return null;1!=t.ga.Lc?t.Ga=0:o=c-i}e(null!=t.ga),e(i+o<=c);t:{if(r=(h=t.ga).c,c=h.l.o,0==h.$a){if(g=t.rc,m=t.Vc,b=t.Fa,l=t.P+1+i*r,f=t.mb,d=t.nb+i*r,e(l<=t.P+t.qc),0!=h.Z)for(e(null!=mi[h.Z]),u=0;u<o;++u)mi[h.Z](g,m,b,l,f,d,r),g=f,m=d,d+=r,l+=r;else for(u=0;u<o;++u)n(f,d,b,l,r),g=f,m=d,d+=r,l+=r;t.rc=g,t.Vc=m}else{if(e(null!=h.mc),r=i+o,e(null!=(u=h.mc)),e(r<=u.i),u.C>=r)r=1;else if(h.ic||mr(),h.ic){h=u.V,g=u.Ba,m=u.c;var y=u.i,w=(b=1,l=u.$/m,f=u.$%m,d=u.m,p=u.s,u.$),N=m*y,L=m*r,x=p.wc,_=w<L?wt(p,f,l):null;e(w<=N),e(r<=y),e(At(p));e:for(;;){for(;!d.h&&w<L;){if(f&x||(_=wt(p,f,l)),e(null!=_),S(d),256>(y=bt(_.G[0],_.H[0],d)))h[g+w]=y,++w,++f>=m&&(f=0,++l<=r&&!(l%16)&&St(u,l));else{if(!(280>y)){b=0;break e}y=mt(y-256,d);var P,k=bt(_.G[4],_.H[4],d);if(S(d),!(w>=(k=vt(m,k=mt(k,d)))&&N-w>=y)){b=0;break e}for(P=0;P<y;++P)h[g+w+P]=h[g+w+P-k];for(w+=y,f+=y;f>=m;)f-=m,++l<=r&&!(l%16)&&St(u,l);w<L&&f&x&&(_=wt(p,f,l))}e(d.h==A(d))}St(u,l>r?r:l);break e}!b||d.h&&w<N?(b=0,u.a=d.h?5:3):u.$=w,r=b}else r=_t(u,u.V,u.Ba,u.c,u.i,r,Ct);if(!r){o=0;break t}}i+o>=c&&(t.Cc=1),o=1}if(!o)return null;if(t.Cc&&(null!=(o=t.ga)&&(o.mc=null),t.ga=null,0<t.Ga))return alert(\"todo:WebPDequantizeLevels\"),null}return t.nb+i*s}function fr(t,e,r,n,i,a){for(;0<i--;){var o,s=t,c=e+(r?1:0),u=t,h=e+(r?0:3);for(o=0;o<n;++o){var l=u[h+4*o];255!=l&&(l*=32897,s[c+4*o+0]=s[c+4*o+0]*l>>23,s[c+4*o+1]=s[c+4*o+1]*l>>23,s[c+4*o+2]=s[c+4*o+2]*l>>23)}e+=a}}function dr(t,e,r,n,i){for(;0<n--;){var a;for(a=0;a<r;++a){var o=t[e+2*a+0],s=15&(u=t[e+2*a+1]),c=4369*s,u=(240&u|u>>4)*c>>16;t[e+2*a+0]=(240&o|o>>4)*c>>16&240|(15&o|o<<4)*c>>16>>4&15,t[e+2*a+1]=240&u|s}e+=i}}function pr(t,e,r,n,i,a,o,s){var c,u,h=255;for(u=0;u<i;++u){for(c=0;c<n;++c){var l=t[e+c];a[o+4*c]=l,h&=l}e+=r,o+=s}return 255!=h}function gr(t,e,r,n,i){var a;for(a=0;a<i;++a)r[n+a]=t[e+a]>>8}function mr(){An=fr,xn=dr,Sn=pr,_n=gr}function vr(r,n,i){t[r]=function(t,r,a,o,s,c,u,h,l,f,d,p,g,m,v,b,y){var w,N=y-1>>1,L=s[c+0]|u[h+0]<<16,A=l[f+0]|d[p+0]<<16;e(null!=t);var x=3*L+A+131074>>2;for(n(t[r+0],255&x,x>>16,g,m),null!=a&&(x=3*A+L+131074>>2,n(a[o+0],255&x,x>>16,v,b)),w=1;w<=N;++w){var S=s[c+w]|u[h+w]<<16,_=l[f+w]|d[p+w]<<16,P=L+S+A+_+524296,k=P+2*(S+A)>>3;x=k+L>>1,L=(P=P+2*(L+_)>>3)+S>>1,n(t[r+2*w-1],255&x,x>>16,g,m+(2*w-1)*i),n(t[r+2*w-0],255&L,L>>16,g,m+(2*w-0)*i),null!=a&&(x=P+A>>1,L=k+_>>1,n(a[o+2*w-1],255&x,x>>16,v,b+(2*w-1)*i),n(a[o+2*w+0],255&L,L>>16,v,b+(2*w+0)*i)),L=S,A=_}1&y||(x=3*L+A+131074>>2,n(t[r+y-1],255&x,x>>16,g,m+(y-1)*i),null!=a&&(x=3*A+L+131074>>2,n(a[o+y-1],255&x,x>>16,v,b+(y-1)*i)))}}function br(){vi[En]=bi,vi[qn]=wi,vi[Dn]=yi,vi[Rn]=Ni,vi[Tn]=Li,vi[zn]=Ai,vi[Un]=xi,vi[Hn]=wi,vi[Wn]=Ni,vi[Vn]=Li,vi[Gn]=Ai}function yr(t){return t&~Fi?0>t?0:255:t>>Ii}function wr(t,e){return yr((19077*t>>8)+(26149*e>>8)-14234)}function Nr(t,e,r){return yr((19077*t>>8)-(6419*e>>8)-(13320*r>>8)+8708)}function Lr(t,e){return yr((19077*t>>8)+(33050*e>>8)-17685)}function Ar(t,e,r,n,i){n[i+0]=wr(t,r),n[i+1]=Nr(t,e,r),n[i+2]=Lr(t,e)}function xr(t,e,r,n,i){n[i+0]=Lr(t,e),n[i+1]=Nr(t,e,r),n[i+2]=wr(t,r)}function Sr(t,e,r,n,i){var a=Nr(t,e,r);e=a<<3&224|Lr(t,e)>>3,n[i+0]=248&wr(t,r)|a>>5,n[i+1]=e}function _r(t,e,r,n,i){var a=240&Lr(t,e)|15;n[i+0]=240&wr(t,r)|Nr(t,e,r)>>4,n[i+1]=a}function Pr(t,e,r,n,i){n[i+0]=255,Ar(t,e,r,n,i+1)}function kr(t,e,r,n,i){xr(t,e,r,n,i),n[i+3]=255}function Ir(t,e,r,n,i){Ar(t,e,r,n,i),n[i+3]=255}function Vt(t,e){return 0>t?0:t>e?e:t}function Fr(e,r,n){t[e]=function(t,e,i,a,o,s,c,u,h){for(var l=u+(-2&h)*n;u!=l;)r(t[e+0],i[a+0],o[s+0],c,u),r(t[e+1],i[a+0],o[s+0],c,u+n),e+=2,++a,++s,u+=2*n;1&h&&r(t[e+0],i[a+0],o[s+0],c,u)}}function Cr(t,e,r){return 0==r?0==t?0==e?6:5:0==e?4:0:r}function jr(t,e,r,n,i){switch(t>>>30){case 3:on(e,r,n,i,0);break;case 2:sn(e,r,n,i);break;case 1:un(e,r,n,i)}}function Or(t,e){var r,a,o=e.M,s=e.Nb,c=t.oc,u=t.pc+40,h=t.oc,l=t.pc+584,f=t.oc,d=t.pc+600;for(r=0;16>r;++r)c[u+32*r-1]=129;for(r=0;8>r;++r)h[l+32*r-1]=129,f[d+32*r-1]=129;for(0<o?c[u-1-32]=h[l-1-32]=f[d-1-32]=129:(i(c,u-32-1,127,21),i(h,l-32-1,127,9),i(f,d-32-1,127,9)),a=0;a<t.za;++a){var p=e.ya[e.aa+a];if(0<a){for(r=-1;16>r;++r)n(c,u+32*r-4,c,u+32*r+12,4);for(r=-1;8>r;++r)n(h,l+32*r-4,h,l+32*r+4,4),n(f,d+32*r-4,f,d+32*r+4,4)}var g=t.Gd,m=t.Hd+a,v=p.ad,b=p.Hc;if(0<o&&(n(c,u-32,g[m].y,0,16),n(h,l-32,g[m].f,0,8),n(f,d-32,g[m].ea,0,8)),p.Za){var y=c,w=u-32+16;for(0<o&&(a>=t.za-1?i(y,w,g[m].y[15],4):n(y,w,g[m+1].y,0,4)),r=0;4>r;r++)y[w+128+r]=y[w+256+r]=y[w+384+r]=y[w+0+r];for(r=0;16>r;++r,b<<=2)y=c,w=u+Di[r],fi[p.Ob[r]](y,w),jr(b,v,16*+r,y,w)}else if(y=Cr(a,o,p.Ob[0]),li[y](c,u),0!=b)for(r=0;16>r;++r,b<<=2)jr(b,v,16*+r,c,u+Di[r]);for(r=p.Gc,y=Cr(a,o,p.Dd),di[y](h,l),di[y](f,d),b=v,y=h,w=l,255&(p=r>>0)&&(170&p?cn(b,256,y,w):hn(b,256,y,w)),p=f,b=d,255&(r>>=8)&&(170&r?cn(v,320,p,b):hn(v,320,p,b)),o<t.Ub-1&&(n(g[m].y,0,c,u+480,16),n(g[m].f,0,h,l+224,8),n(g[m].ea,0,f,d+224,8)),r=8*s*t.B,g=t.sa,m=t.ta+16*a+16*s*t.R,v=t.qa,p=t.ra+8*a+r,b=t.Ha,y=t.Ia+8*a+r,r=0;16>r;++r)n(g,m+r*t.R,c,u+32*r,16);for(r=0;8>r;++r)n(v,p+r*t.B,h,l+32*r,8),n(b,y+r*t.B,f,d+32*r,8)}}function Br(t,n,i,a,o,s,c,u,h){var l=[0],f=[0],d=0,p=null!=h?h.kd:0,g=null!=h?h:new nr;if(null==t||12>i)return 7;g.data=t,g.w=n,g.ha=i,n=[n],i=[i],g.gb=[g.gb];t:{var m=n,b=i,y=g.gb;if(e(null!=t),e(null!=b),e(null!=y),y[0]=0,12<=b[0]&&!r(t,m[0],\"RIFF\")){if(r(t,m[0]+8,\"WEBP\")){y=3;break t}var w=j(t,m[0]+4);if(12>w||4294967286<w){y=3;break t}if(p&&w>b[0]-8){y=7;break t}y[0]=w,m[0]+=12,b[0]-=12}y=0}if(0!=y)return y;for(w=0<g.gb[0],i=i[0];;){t:{var L=t;b=n,y=i;var A=l,x=f,S=m=[0];if((k=d=[d])[0]=0,8>y[0])y=7;else{if(!r(L,b[0],\"VP8X\")){if(10!=j(L,b[0]+4)){y=3;break t}if(18>y[0]){y=7;break t}var _=j(L,b[0]+8),P=1+C(L,b[0]+12);if(2147483648<=P*(L=1+C(L,b[0]+15))){y=3;break t}null!=S&&(S[0]=_),null!=A&&(A[0]=P),null!=x&&(x[0]=L),b[0]+=18,y[0]-=18,k[0]=1}y=0}}if(d=d[0],m=m[0],0!=y)return y;if(b=!!(2&m),!w&&d)return 3;if(null!=s&&(s[0]=!!(16&m)),null!=c&&(c[0]=b),null!=u&&(u[0]=0),c=l[0],m=f[0],d&&b&&null==h){y=0;break}if(4>i){y=7;break}if(w&&d||!w&&!d&&!r(t,n[0],\"ALPH\")){i=[i],g.na=[g.na],g.P=[g.P],g.Sa=[g.Sa];t:{_=t,y=n,w=i;var k=g.gb;A=g.na,x=g.P,S=g.Sa;P=22,e(null!=_),e(null!=w),L=y[0];var I=w[0];for(e(null!=A),e(null!=S),A[0]=null,x[0]=null,S[0]=0;;){if(y[0]=L,w[0]=I,8>I){y=7;break t}var F=j(_,L+4);if(4294967286<F){y=3;break t}var O=8+F+1&-2;if(P+=O,0<k&&P>k){y=3;break t}if(!r(_,L,\"VP8 \")||!r(_,L,\"VP8L\")){y=0;break t}if(I[0]<O){y=7;break t}r(_,L,\"ALPH\")||(A[0]=_,x[0]=L+8,S[0]=F),L+=O,I-=O}}if(i=i[0],g.na=g.na[0],g.P=g.P[0],g.Sa=g.Sa[0],0!=y)break}i=[i],g.Ja=[g.Ja],g.xa=[g.xa];t:if(k=t,y=n,w=i,A=g.gb[0],x=g.Ja,S=g.xa,_=y[0],L=!r(k,_,\"VP8 \"),P=!r(k,_,\"VP8L\"),e(null!=k),e(null!=w),e(null!=x),e(null!=S),8>w[0])y=7;else{if(L||P){if(k=j(k,_+4),12<=A&&k>A-12){y=3;break t}if(p&&k>w[0]-8){y=7;break t}x[0]=k,y[0]+=8,w[0]-=8,S[0]=P}else S[0]=5<=w[0]&&47==k[_+0]&&!(k[_+4]>>5),x[0]=w[0];y=0}if(i=i[0],g.Ja=g.Ja[0],g.xa=g.xa[0],n=n[0],0!=y)break;if(4294967286<g.Ja)return 3;if(null==u||b||(u[0]=g.xa?2:1),c=[c],m=[m],g.xa){if(5>i){y=7;break}u=c,p=m,b=s,null==t||5>i?t=0:5<=i&&47==t[n+0]&&!(t[n+4]>>5)?(w=[0],k=[0],A=[0],v(x=new N,t,n,i),gt(x,w,k,A)?(null!=u&&(u[0]=w[0]),null!=p&&(p[0]=k[0]),null!=b&&(b[0]=A[0]),t=1):t=0):t=0}else{if(10>i){y=7;break}u=m,null==t||10>i||!Xt(t,n+3,i-3)?t=0:(p=t[n+0]|t[n+1]<<8|t[n+2]<<16,b=16383&(t[n+7]<<8|t[n+6]),t=16383&(t[n+9]<<8|t[n+8]),1&p||3<(p>>1&7)||!(p>>4&1)||p>>5>=g.Ja||!b||!t?t=0:(c&&(c[0]=b),u&&(u[0]=t),t=1))}if(!t)return 3;if(c=c[0],m=m[0],d&&(l[0]!=c||f[0]!=m))return 3;null!=h&&(h[0]=g,h.offset=n-h.w,e(4294967286>n-h.w),e(h.offset==h.ha-i));break}return 0==y||7==y&&d&&null==h?(null!=s&&(s[0]|=null!=g.na&&0<g.na.length),null!=a&&(a[0]=c),null!=o&&(o[0]=m),0):y}function Mr(t,e,r){var n=e.width,i=e.height,a=0,o=0,s=n,c=i;if(e.Da=null!=t&&0<t.Da,e.Da&&(s=t.cd,c=t.bd,a=t.v,o=t.j,11>r||(a&=-2,o&=-2),0>a||0>o||0>=s||0>=c||a+s>n||o+c>i))return 0;if(e.v=a,e.j=o,e.va=a+s,e.o=o+c,e.U=s,e.T=c,e.da=null!=t&&0<t.da,e.da){if(!E(s,c,r=[t.ib],a=[t.hb]))return 0;e.ib=r[0],e.hb=a[0]}return e.ob=null!=t&&t.ob,e.Kb=null==t||!t.Sd,e.da&&(e.ob=e.ib<3*n/4&&e.hb<3*i/4,e.Kb=0),1}function Er(t){if(null==t)return 2;if(11>t.S){var e=t.f.RGBA;e.fb+=(t.height-1)*e.A,e.A=-e.A}else e=t.f.kb,t=t.height,e.O+=(t-1)*e.fa,e.fa=-e.fa,e.N+=(t-1>>1)*e.Ab,e.Ab=-e.Ab,e.W+=(t-1>>1)*e.Db,e.Db=-e.Db,null!=e.F&&(e.J+=(t-1)*e.lb,e.lb=-e.lb);return 0}function qr(t,e,r,n){if(null==n||0>=t||0>=e)return 2;if(null!=r){if(r.Da){var i=r.cd,o=r.bd,s=-2&r.v,c=-2&r.j;if(0>s||0>c||0>=i||0>=o||s+i>t||c+o>e)return 2;t=i,e=o}if(r.da){if(!E(t,e,i=[r.ib],o=[r.hb]))return 2;t=i[0],e=o[0]}}n.width=t,n.height=e;t:{var u=n.width,h=n.height;if(t=n.S,0>=u||0>=h||!(t>=En&&13>t))t=2;else{if(0>=n.Rd&&null==n.sd){s=o=i=e=0;var l=(c=u*Ui[t])*h;if(11>t||(o=(h+1)/2*(e=(u+1)/2),12==t&&(s=(i=u)*h)),null==(h=a(l+2*o+s))){t=1;break t}n.sd=h,11>t?((u=n.f.RGBA).eb=h,u.fb=0,u.A=c,u.size=l):((u=n.f.kb).y=h,u.O=0,u.fa=c,u.Fd=l,u.f=h,u.N=0+l,u.Ab=e,u.Cd=o,u.ea=h,u.W=0+l+o,u.Db=e,u.Ed=o,12==t&&(u.F=h,u.J=0+l+2*o),u.Tc=s,u.lb=i)}if(e=1,i=n.S,o=n.width,s=n.height,i>=En&&13>i)if(11>i)t=n.f.RGBA,e&=(c=Math.abs(t.A))*(s-1)+o<=t.size,e&=c>=o*Ui[i],e&=null!=t.eb;else{t=n.f.kb,c=(o+1)/2,l=(s+1)/2,u=Math.abs(t.fa);h=Math.abs(t.Ab);var f=Math.abs(t.Db),d=Math.abs(t.lb),p=d*(s-1)+o;e&=u*(s-1)+o<=t.Fd,e&=h*(l-1)+c<=t.Cd,e=(e&=f*(l-1)+c<=t.Ed)&u>=o&h>=c&f>=c,e&=null!=t.y,e&=null!=t.f,e&=null!=t.ea,12==i&&(e&=d>=o,e&=p<=t.Tc,e&=null!=t.F)}else e=0;t=e?0:2}}return 0!=t||null!=r&&r.fd&&(t=Er(n)),t}var Dr=64,Rr=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],Tr=24,zr=32,Ur=8,Hr=[0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7];R(\"Predictor0\",\"PredictorAdd0\"),t.Predictor0=function(){return 4278190080},t.Predictor1=function(t){return t},t.Predictor2=function(t,e,r){return e[r+0]},t.Predictor3=function(t,e,r){return e[r+1]},t.Predictor4=function(t,e,r){return e[r-1]},t.Predictor5=function(t,e,r){return z(z(t,e[r+1]),e[r+0])},t.Predictor6=function(t,e,r){return z(t,e[r-1])},t.Predictor7=function(t,e,r){return z(t,e[r+0])},t.Predictor8=function(t,e,r){return z(e[r-1],e[r+0])},t.Predictor9=function(t,e,r){return z(e[r+0],e[r+1])},t.Predictor10=function(t,e,r){return z(z(t,e[r-1]),z(e[r+0],e[r+1]))},t.Predictor11=function(t,e,r){var n=e[r+0];return 0>=W(n>>24&255,t>>24&255,(e=e[r-1])>>24&255)+W(n>>16&255,t>>16&255,e>>16&255)+W(n>>8&255,t>>8&255,e>>8&255)+W(255&n,255&t,255&e)?n:t},t.Predictor12=function(t,e,r){var n=e[r+0];return(U((t>>24&255)+(n>>24&255)-((e=e[r-1])>>24&255))<<24|U((t>>16&255)+(n>>16&255)-(e>>16&255))<<16|U((t>>8&255)+(n>>8&255)-(e>>8&255))<<8|U((255&t)+(255&n)-(255&e)))>>>0},t.Predictor13=function(t,e,r){var n=e[r-1];return(H((t=z(t,e[r+0]))>>24&255,n>>24&255)<<24|H(t>>16&255,n>>16&255)<<16|H(t>>8&255,n>>8&255)<<8|H(t>>0&255,n>>0&255))>>>0};var Wr=t.PredictorAdd0;t.PredictorAdd1=V,R(\"Predictor2\",\"PredictorAdd2\"),R(\"Predictor3\",\"PredictorAdd3\"),R(\"Predictor4\",\"PredictorAdd4\"),R(\"Predictor5\",\"PredictorAdd5\"),R(\"Predictor6\",\"PredictorAdd6\"),R(\"Predictor7\",\"PredictorAdd7\"),R(\"Predictor8\",\"PredictorAdd8\"),R(\"Predictor9\",\"PredictorAdd9\"),R(\"Predictor10\",\"PredictorAdd10\"),R(\"Predictor11\",\"PredictorAdd11\"),R(\"Predictor12\",\"PredictorAdd12\"),R(\"Predictor13\",\"PredictorAdd13\");var Vr=t.PredictorAdd2;X(\"ColorIndexInverseTransform\",\"MapARGB\",\"32b\",(function(t){return t>>8&255}),(function(t){return t})),X(\"VP8LColorIndexInverseTransformAlpha\",\"MapAlpha\",\"8b\",(function(t){return t}),(function(t){return t>>8&255}));var Gr,Yr=t.ColorIndexInverseTransform,Jr=t.MapARGB,Xr=t.VP8LColorIndexInverseTransformAlpha,Kr=t.MapAlpha,Zr=t.VP8LPredictorsAdd=[];Zr.length=16,(t.VP8LPredictors=[]).length=16,(t.VP8LPredictorsAdd_C=[]).length=16,(t.VP8LPredictors_C=[]).length=16;var $r,Qr,tn,en,rn,nn,an,on,sn,cn,un,hn,ln,fn,dn,pn,gn,mn,vn,bn,yn,wn,Nn,Ln,An,xn,Sn,_n,Pn=a(511),kn=a(2041),In=a(225),Fn=a(767),Cn=0,jn=kn,On=In,Bn=Fn,Mn=Pn,En=0,qn=1,Dn=2,Rn=3,Tn=4,zn=5,Un=6,Hn=7,Wn=8,Vn=9,Gn=10,Yn=[2,3,7],Jn=[3,3,11],Xn=[280,256,256,256,40],Kn=[0,1,1,1,0],Zn=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],$n=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Qn=[2954,2956,2958,2962,2970,2986,3018,3082,3212,3468,3980,5004],ti=8,ei=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],ri=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],ni=null,ii=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],ai=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],oi=[-0,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],si=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128,128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128,128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]],[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22,100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13,224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255,255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,255,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216,205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],ci=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111,32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22,64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73,154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192],[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160,1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,1,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80,126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],ui=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241,252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255,255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,255,255,255,255,255,255,255,255],[248,254,253,255,255,255,255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]],hi=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],li=[],fi=[],di=[],pi=1,gi=2,mi=[],vi=[];vr(\"UpsampleRgbLinePair\",Ar,3),vr(\"UpsampleBgrLinePair\",xr,3),vr(\"UpsampleRgbaLinePair\",Ir,4),vr(\"UpsampleBgraLinePair\",kr,4),vr(\"UpsampleArgbLinePair\",Pr,4),vr(\"UpsampleRgba4444LinePair\",_r,2),vr(\"UpsampleRgb565LinePair\",Sr,2);var bi=t.UpsampleRgbLinePair,yi=t.UpsampleBgrLinePair,wi=t.UpsampleRgbaLinePair,Ni=t.UpsampleBgraLinePair,Li=t.UpsampleArgbLinePair,Ai=t.UpsampleRgba4444LinePair,xi=t.UpsampleRgb565LinePair,Si=16,_i=1<<Si-1,Pi=-227,ki=482,Ii=6,Fi=(256<<Ii)-1,Ci=0,ji=a(256),Oi=a(256),Bi=a(256),Mi=a(256),Ei=a(ki-Pi),qi=a(ki-Pi);Fr(\"YuvToRgbRow\",Ar,3),Fr(\"YuvToBgrRow\",xr,3),Fr(\"YuvToRgbaRow\",Ir,4),Fr(\"YuvToBgraRow\",kr,4),Fr(\"YuvToArgbRow\",Pr,4),Fr(\"YuvToRgba4444Row\",_r,2),Fr(\"YuvToRgb565Row\",Sr,2);var Di=[0,4,8,12,128,132,136,140,256,260,264,268,384,388,392,396],Ri=[0,2,8],Ti=[8,7,6,4,4,2,2,2,1,1,1,1],zi=1;this.WebPDecodeRGBA=function(t,r,n,i,a){var o=qn,s=new rr,c=new ot;s.ba=c,c.S=o,c.width=[c.width],c.height=[c.height];var u=c.width,h=c.height,l=new st;if(null==l||null==t)var f=2;else e(null!=l),f=Br(t,r,n,l.width,l.height,l.Pd,l.Qd,l.format,null);if(0!=f?u=0:(null!=u&&(u[0]=l.width[0]),null!=h&&(h[0]=l.height[0]),u=1),u){c.width=c.width[0],c.height=c.height[0],null!=i&&(i[0]=c.width),null!=a&&(a[0]=c.height);t:{if(i=new Gt,(a=new nr).data=t,a.w=r,a.ha=n,a.kd=1,r=[0],e(null!=a),(0==(t=Br(a.data,a.w,a.ha,null,null,null,r,null,a))||7==t)&&r[0]&&(t=4),0==(r=t)){if(e(null!=s),i.data=a.data,i.w=a.w+a.offset,i.ha=a.ha-a.offset,i.put=dt,i.ac=ft,i.bc=pt,i.ma=s,a.xa){if(null==(t=kt())){s=1;break t}if(function(t,r){var n=[0],i=[0],a=[0];e:for(;;){if(null==t)return 0;if(null==r)return t.a=2,0;if(t.l=r,t.a=0,v(t.m,r.data,r.w,r.ha),!gt(t.m,n,i,a)){t.a=3;break e}if(t.xb=gi,r.width=n[0],r.height=i[0],!It(n[0],i[0],1,t,null))break e;return 1}return e(0!=t.a),0}(t,i)){if(i=0==(r=qr(i.width,i.height,s.Oa,s.ba))){e:{i=t;r:for(;;){if(null==i){i=0;break e}if(e(null!=i.s.yc),e(null!=i.s.Ya),e(0<i.s.Wb),e(null!=(n=i.l)),e(null!=(a=n.ma)),0!=i.xb){if(i.ca=a.ba,i.tb=a.tb,e(null!=i.ca),!Mr(a.Oa,n,Rn)){i.a=2;break r}if(!Ft(i,n.width))break r;if(n.da)break r;if((n.da||nt(i.ca.S))&&mr(),11>i.ca.S||(alert(\"todo:WebPInitConvertARGBToYUV\"),null!=i.ca.f.kb.F&&mr()),i.Pb&&0<i.s.ua&&null==i.s.vb.X&&!O(i.s.vb,i.s.Wa.Xa)){i.a=1;break r}i.xb=0}if(!_t(i,i.V,i.Ba,i.c,i.i,n.o,Lt))break r;a.Dc=i.Ma,i=1;break e}e(0!=i.a),i=0}i=!i}i&&(r=t.a)}else r=t.a}else{if(null==(t=new Yt)){s=1;break t}if(t.Fa=a.na,t.P=a.P,t.qc=a.Sa,Kt(t,i)){if(0==(r=qr(i.width,i.height,s.Oa,s.ba))){if(t.Aa=0,n=s.Oa,e(null!=(a=t)),null!=n){if(0<(u=0>(u=n.Md)?0:100<u?255:255*u/100)){for(h=l=0;4>h;++h)12>(f=a.pb[h]).lc&&(f.ia=u*Ti[0>f.lc?0:f.lc]>>3),l|=f.ia;l&&(alert(\"todo:VP8InitRandom\"),a.ia=1)}a.Ga=n.Id,100<a.Ga?a.Ga=100:0>a.Ga&&(a.Ga=0)}Qt(t,i)||(r=t.a)}}else r=t.a}0==r&&null!=s.Oa&&s.Oa.fd&&(r=Er(s.ba))}s=r}o=0!=s?null:11>o?c.f.RGBA.eb:c.f.kb.y}else o=null;return o};var Ui=[3,4,3,4,4,2,2,4,4,4,2,1,1]};function u(t,e){for(var r=\"\",n=0;n<4;n++)r+=String.fromCharCode(t[e++]);return r}function h(t,e){return(t[e+0]<<0|t[e+1]<<8|t[e+2]<<16)>>>0}function l(t,e){return(t[e+0]<<0|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}new c;var f=[0],d=[0],p=[],g=new c,m=t,v=function(t,e){var r={},n=0,i=!1,a=0,o=0;if(r.frames=[],!\n/** @license\n * Copyright (c) 2017 Dominik Homberger\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n https://webpjs.appspot.com\n WebPRiffParser dominikhlbg@gmail.com\n */\nfunction(t,e,r,n){for(var i=0;i<n;i++)if(t[e+i]!=r.charCodeAt(i))return!0;return!1}(t,e,\"RIFF\",4)){var s,c;l(t,e+=4);for(e+=8;e<t.length;){var f=u(t,e),d=l(t,e+=4);e+=4;var p=d+(1&d);switch(f){case\"VP8 \":case\"VP8L\":void 0===r.frames[n]&&(r.frames[n]={});(v=r.frames[n]).src_off=i?o:e-8,v.src_size=a+d+8,n++,i&&(i=!1,a=0,o=0);break;case\"VP8X\":(v=r.header={}).feature_flags=t[e];var g=e+4;v.canvas_width=1+h(t,g);g+=3;v.canvas_height=1+h(t,g);g+=3;break;case\"ALPH\":i=!0,a=p+8,o=e-8;break;case\"ANIM\":(v=r.header).bgcolor=l(t,e);g=e+4;v.loop_count=(s=t)[(c=g)+0]<<0|s[c+1]<<8;g+=2;break;case\"ANMF\":var m,v;(v=r.frames[n]={}).offset_x=2*h(t,e),e+=3,v.offset_y=2*h(t,e),e+=3,v.width=1+h(t,e),e+=3,v.height=1+h(t,e),e+=3,v.duration=h(t,e),e+=3,m=t[e++],v.dispose=1&m,v.blend=m>>1&1}\"ANMF\"!=f&&(e+=p)}return r}}(m,0);v.response=m,v.rgbaoutput=!0,v.dataurl=!1;var b=v.header?v.header:null,y=v.frames?v.frames:null;if(b){b.loop_counter=b.loop_count,f=[b.canvas_height],d=[b.canvas_width];for(var w=0;w<y.length&&0!=y[w].blend;w++);}var N=y[0],L=g.WebPDecodeRGBA(m,N.src_off,N.src_size,d,f);N.rgba=L,N.imgwidth=d[0],N.imgheight=f[0];for(var A=0;A<d[0]*f[0]*4;A++)p[A]=L[A];return this.width=d,this.height=f,this.data=p,this}!function(e){var r=function(){return\"function\"==typeof t},n=function(r,n,a,h){var l=4,f=s;switch(h){case e.image_compression.FAST:l=1,f=o;break;case e.image_compression.MEDIUM:l=6,f=c;break;case e.image_compression.SLOW:l=9,f=u}r=i(r,n,a,f);var d=t(r,{level:l});return e.__addimage__.arrayBufferToBinaryString(d)},i=function(t,e,r,n){for(var i,a,o,s=t.length/e,c=new Uint8Array(t.length+s),u=l(),h=0;h<s;h+=1){if(o=h*e,i=t.subarray(o,o+e),n)c.set(n(i,r,a),o+h);else{for(var d,p=u.length,g=[];d<p;d+=1)g[d]=u[d](i,r,a);var m=f(g.concat());c.set(g[m],o+h)}a=i}return c},a=function(t){var e=Array.apply([],t);return e.unshift(0),e},o=function(t,e){var r,n=[],i=t.length;n[0]=1;for(var a=0;a<i;a+=1)r=t[a-e]||0,n[a+1]=t[a]-r+256&255;return n},s=function(t,e,r){var n,i=[],a=t.length;i[0]=2;for(var o=0;o<a;o+=1)n=r&&r[o]||0,i[o+1]=t[o]-n+256&255;return i},c=function(t,e,r){var n,i,a=[],o=t.length;a[0]=3;for(var s=0;s<o;s+=1)n=t[s-e]||0,i=r&&r[s]||0,a[s+1]=t[s]+256-(n+i>>>1)&255;return a},u=function(t,e,r){var n,i,a,o,s=[],c=t.length;s[0]=4;for(var u=0;u<c;u+=1)n=t[u-e]||0,i=r&&r[u]||0,a=r&&r[u-e]||0,o=h(n,i,a),s[u+1]=t[u]-o+256&255;return s},h=function(t,e,r){if(t===e&&e===r)return t;var n=Math.abs(e-r),i=Math.abs(t-r),a=Math.abs(t+e-r-r);return n<=i&&n<=a?t:i<=a?e:r},l=function(){return[a,o,s,c,u]},f=function(t){var e=t.map((function(t){return t.reduce((function(t,e){return t+Math.abs(e)}),0)}));return e.indexOf(Math.min.apply(null,e))};e.processPNG=function(t,i,a,o){var s,c,u,h,l,f,d,p,g,m,v,b,y,w,N,L=this.decode.FLATE_DECODE,A=\"\";if(this.__addimage__.isArrayBuffer(t)&&(t=new Uint8Array(t)),this.__addimage__.isArrayBufferView(t)){if(t=(u=new Xt(t)).imgData,c=u.bits,s=u.colorSpace,l=u.colors,-1!==[4,6].indexOf(u.colorType)){if(8===u.bits){g=(p=32==u.pixelBitlength?new Uint32Array(u.decodePixels().buffer):16==u.pixelBitlength?new Uint16Array(u.decodePixels().buffer):new Uint8Array(u.decodePixels().buffer)).length,v=new Uint8Array(g*u.colors),m=new Uint8Array(g);var x,S=u.pixelBitlength-u.bits;for(w=0,N=0;w<g;w++){for(y=p[w],x=0;x<S;)v[N++]=y>>>x&255,x+=u.bits;m[w]=y>>>x&255}}if(16===u.bits){g=(p=new Uint32Array(u.decodePixels().buffer)).length,v=new Uint8Array(g*(32/u.pixelBitlength)*u.colors),m=new Uint8Array(g*(32/u.pixelBitlength)),b=u.colors>1,w=0,N=0;for(var _=0;w<g;)y=p[w++],v[N++]=y>>>0&255,b&&(v[N++]=y>>>16&255,y=p[w++],v[N++]=y>>>0&255),m[_++]=y>>>16&255;c=8}o!==e.image_compression.NONE&&r()?(t=n(v,u.width*u.colors,u.colors,o),d=n(m,u.width,1,o)):(t=v,d=m,L=void 0)}if(3===u.colorType&&(s=this.color_spaces.INDEXED,f=u.palette,u.transparency.indexed)){var P=u.transparency.indexed,k=0;for(w=0,g=P.length;w<g;++w)k+=P[w];if((k/=255)===g-1&&-1!==P.indexOf(0))h=[P.indexOf(0)];else if(k!==g){for(p=u.decodePixels(),m=new Uint8Array(p.length),w=0,g=p.length;w<g;w++)m[w]=P[p[w]];d=n(m,u.width,1)}}var I=function(t){var r;switch(t){case e.image_compression.FAST:r=11;break;case e.image_compression.MEDIUM:r=13;break;case e.image_compression.SLOW:r=14;break;default:r=12}return r}(o);return L===this.decode.FLATE_DECODE&&(A=\"/Predictor \"+I+\" \"),A+=\"/Colors \"+l+\" /BitsPerComponent \"+c+\" /Columns \"+u.width,(this.__addimage__.isArrayBuffer(t)||this.__addimage__.isArrayBufferView(t))&&(t=this.__addimage__.arrayBufferToBinaryString(t)),(d&&this.__addimage__.isArrayBuffer(d)||this.__addimage__.isArrayBufferView(d))&&(d=this.__addimage__.arrayBufferToBinaryString(d)),{alias:a,data:t,index:i,filter:L,decodeParameters:A,transparency:h,palette:f,sMask:d,predictor:I,width:u.width,height:u.height,bitsPerComponent:c,colorSpace:s}}}}(M.API),function(t){t.processGIF89A=function(e,r,n,i){var a=new Kt(e),o=a.width,s=a.height,c=[];a.decodeAndBlitFrameRGBA(0,c);var u={data:c,width:o,height:s},h=new $t(100).encode(u,100);return t.processJPEG.call(this,h,r,n,i)},t.processGIF87A=t.processGIF89A}(M.API),Qt.prototype.parseHeader=function(){if(this.fileSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.reserved=this.datav.getUint32(this.pos,!0),this.pos+=4,this.offset=this.datav.getUint32(this.pos,!0),this.pos+=4,this.headerSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.width=this.datav.getUint32(this.pos,!0),this.pos+=4,this.height=this.datav.getInt32(this.pos,!0),this.pos+=4,this.planes=this.datav.getUint16(this.pos,!0),this.pos+=2,this.bitPP=this.datav.getUint16(this.pos,!0),this.pos+=2,this.compress=this.datav.getUint32(this.pos,!0),this.pos+=4,this.rawSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.hr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.vr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.colors=this.datav.getUint32(this.pos,!0),this.pos+=4,this.importantColors=this.datav.getUint32(this.pos,!0),this.pos+=4,16===this.bitPP&&this.is_with_alpha&&(this.bitPP=15),this.bitPP<15){var t=0===this.colors?1<<this.bitPP:this.colors;this.palette=new Array(t);for(var e=0;e<t;e++){var r=this.datav.getUint8(this.pos++,!0),n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0);this.palette[e]={red:i,green:n,blue:r,quad:a}}}this.height<0&&(this.height*=-1,this.bottom_up=!1)},Qt.prototype.parseBGR=function(){this.pos=this.offset;try{var t=\"bit\"+this.bitPP,e=this.width*this.height*4;this.data=new Uint8Array(e),this[t]()}catch(t){i.log(\"bit decode error:\"+t)}},Qt.prototype.bit1=function(){var t,e=Math.ceil(this.width/8),r=e%4;for(t=this.height-1;t>=0;t--){for(var n=this.bottom_up?t:this.height-1-t,i=0;i<e;i++)for(var a=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+8*i*4,s=0;s<8&&8*i+s<this.width;s++){var c=this.palette[a>>7-s&1];this.data[o+4*s]=c.blue,this.data[o+4*s+1]=c.green,this.data[o+4*s+2]=c.red,this.data[o+4*s+3]=255}0!==r&&(this.pos+=4-r)}},Qt.prototype.bit4=function(){for(var t=Math.ceil(this.width/2),e=t%4,r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<t;i++){var a=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+2*i*4,s=a>>4,c=15&a,u=this.palette[s];if(this.data[o]=u.blue,this.data[o+1]=u.green,this.data[o+2]=u.red,this.data[o+3]=255,2*i+1>=this.width)break;u=this.palette[c],this.data[o+4]=u.blue,this.data[o+4+1]=u.green,this.data[o+4+2]=u.red,this.data[o+4+3]=255}0!==e&&(this.pos+=4-e)}},Qt.prototype.bit8=function(){for(var t=this.width%4,e=this.height-1;e>=0;e--){for(var r=this.bottom_up?e:this.height-1-e,n=0;n<this.width;n++){var i=this.datav.getUint8(this.pos++,!0),a=r*this.width*4+4*n;if(i<this.palette.length){var o=this.palette[i];this.data[a]=o.red,this.data[a+1]=o.green,this.data[a+2]=o.blue,this.data[a+3]=255}else this.data[a]=255,this.data[a+1]=255,this.data[a+2]=255,this.data[a+3]=255}0!==t&&(this.pos+=4-t)}},Qt.prototype.bit15=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<this.width;i++){var a=this.datav.getUint16(this.pos,!0);this.pos+=2;var o=(a&e)/e*255|0,s=(a>>5&e)/e*255|0,c=(a>>10&e)/e*255|0,u=a>>15?255:0,h=n*this.width*4+4*i;this.data[h]=c,this.data[h+1]=s,this.data[h+2]=o,this.data[h+3]=u}this.pos+=t}},Qt.prototype.bit16=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),r=parseInt(\"111111\",2),n=this.height-1;n>=0;n--){for(var i=this.bottom_up?n:this.height-1-n,a=0;a<this.width;a++){var o=this.datav.getUint16(this.pos,!0);this.pos+=2;var s=(o&e)/e*255|0,c=(o>>5&r)/r*255|0,u=(o>>11)/e*255|0,h=i*this.width*4+4*a;this.data[h]=u,this.data[h+1]=c,this.data[h+2]=s,this.data[h+3]=255}this.pos+=t}},Qt.prototype.bit24=function(){for(var t=this.height-1;t>=0;t--){for(var e=this.bottom_up?t:this.height-1-t,r=0;r<this.width;r++){var n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),o=e*this.width*4+4*r;this.data[o]=a,this.data[o+1]=i,this.data[o+2]=n,this.data[o+3]=255}this.pos+=this.width%4}},Qt.prototype.bit32=function(){for(var t=this.height-1;t>=0;t--)for(var e=this.bottom_up?t:this.height-1-t,r=0;r<this.width;r++){var n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),o=this.datav.getUint8(this.pos++,!0),s=e*this.width*4+4*r;this.data[s]=a,this.data[s+1]=i,this.data[s+2]=n,this.data[s+3]=o}},Qt.prototype.getData=function(){return this.data},\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.processBMP=function(e,r,n,i){var a=new Qt(e,!1),o=a.width,s=a.height,c={data:a.getData(),width:o,height:s},u=new $t(100).encode(c,100);return t.processJPEG.call(this,u,r,n,i)}}(M.API),te.prototype.getData=function(){return this.data},\n/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.processWEBP=function(e,r,n,i){var a=new te(e,!1),o=a.width,s=a.height,c={data:a.getData(),width:o,height:s},u=new $t(100).encode(c,100);return t.processJPEG.call(this,u,r,n,i)}}(M.API),M.API.processRGBA=function(t,e,r){for(var n=t.data,i=n.length,a=new Uint8Array(i/4*3),o=new Uint8Array(i/4),s=0,c=0,u=0;u<i;u+=4){var h=n[u],l=n[u+1],f=n[u+2],d=n[u+3];a[s++]=h,a[s++]=l,a[s++]=f,o[c++]=d}var p=this.__addimage__.arrayBufferToBinaryString(a);return{alpha:this.__addimage__.arrayBufferToBinaryString(o),data:p,index:e,alias:r,colorSpace:\"DeviceRGB\",bitsPerComponent:8,width:t.width,height:t.height}},M.API.setLanguage=function(t){return void 0===this.internal.languageSettings&&(this.internal.languageSettings={},this.internal.languageSettings.isSubscribed=!1),void 0!=={af:\"Afrikaans\",sq:\"Albanian\",ar:\"Arabic (Standard)\",\"ar-DZ\":\"Arabic (Algeria)\",\"ar-BH\":\"Arabic (Bahrain)\",\"ar-EG\":\"Arabic (Egypt)\",\"ar-IQ\":\"Arabic (Iraq)\",\"ar-JO\":\"Arabic (Jordan)\",\"ar-KW\":\"Arabic (Kuwait)\",\"ar-LB\":\"Arabic (Lebanon)\",\"ar-LY\":\"Arabic (Libya)\",\"ar-MA\":\"Arabic (Morocco)\",\"ar-OM\":\"Arabic (Oman)\",\"ar-QA\":\"Arabic (Qatar)\",\"ar-SA\":\"Arabic (Saudi Arabia)\",\"ar-SY\":\"Arabic (Syria)\",\"ar-TN\":\"Arabic (Tunisia)\",\"ar-AE\":\"Arabic (U.A.E.)\",\"ar-YE\":\"Arabic (Yemen)\",an:\"Aragonese\",hy:\"Armenian\",as:\"Assamese\",ast:\"Asturian\",az:\"Azerbaijani\",eu:\"Basque\",be:\"Belarusian\",bn:\"Bengali\",bs:\"Bosnian\",br:\"Breton\",bg:\"Bulgarian\",my:\"Burmese\",ca:\"Catalan\",ch:\"Chamorro\",ce:\"Chechen\",zh:\"Chinese\",\"zh-HK\":\"Chinese (Hong Kong)\",\"zh-CN\":\"Chinese (PRC)\",\"zh-SG\":\"Chinese (Singapore)\",\"zh-TW\":\"Chinese (Taiwan)\",cv:\"Chuvash\",co:\"Corsican\",cr:\"Cree\",hr:\"Croatian\",cs:\"Czech\",da:\"Danish\",nl:\"Dutch (Standard)\",\"nl-BE\":\"Dutch (Belgian)\",en:\"English\",\"en-AU\":\"English (Australia)\",\"en-BZ\":\"English (Belize)\",\"en-CA\":\"English (Canada)\",\"en-IE\":\"English (Ireland)\",\"en-JM\":\"English (Jamaica)\",\"en-NZ\":\"English (New Zealand)\",\"en-PH\":\"English (Philippines)\",\"en-ZA\":\"English (South Africa)\",\"en-TT\":\"English (Trinidad & Tobago)\",\"en-GB\":\"English (United Kingdom)\",\"en-US\":\"English (United States)\",\"en-ZW\":\"English (Zimbabwe)\",eo:\"Esperanto\",et:\"Estonian\",fo:\"Faeroese\",fj:\"Fijian\",fi:\"Finnish\",fr:\"French (Standard)\",\"fr-BE\":\"French (Belgium)\",\"fr-CA\":\"French (Canada)\",\"fr-FR\":\"French (France)\",\"fr-LU\":\"French (Luxembourg)\",\"fr-MC\":\"French (Monaco)\",\"fr-CH\":\"French (Switzerland)\",fy:\"Frisian\",fur:\"Friulian\",gd:\"Gaelic (Scots)\",\"gd-IE\":\"Gaelic (Irish)\",gl:\"Galacian\",ka:\"Georgian\",de:\"German (Standard)\",\"de-AT\":\"German (Austria)\",\"de-DE\":\"German (Germany)\",\"de-LI\":\"German (Liechtenstein)\",\"de-LU\":\"German (Luxembourg)\",\"de-CH\":\"German (Switzerland)\",el:\"Greek\",gu:\"Gujurati\",ht:\"Haitian\",he:\"Hebrew\",hi:\"Hindi\",hu:\"Hungarian\",is:\"Icelandic\",id:\"Indonesian\",iu:\"Inuktitut\",ga:\"Irish\",it:\"Italian (Standard)\",\"it-CH\":\"Italian (Switzerland)\",ja:\"Japanese\",kn:\"Kannada\",ks:\"Kashmiri\",kk:\"Kazakh\",km:\"Khmer\",ky:\"Kirghiz\",tlh:\"Klingon\",ko:\"Korean\",\"ko-KP\":\"Korean (North Korea)\",\"ko-KR\":\"Korean (South Korea)\",la:\"Latin\",lv:\"Latvian\",lt:\"Lithuanian\",lb:\"Luxembourgish\",mk:\"North Macedonia\",ms:\"Malay\",ml:\"Malayalam\",mt:\"Maltese\",mi:\"Maori\",mr:\"Marathi\",mo:\"Moldavian\",nv:\"Navajo\",ng:\"Ndonga\",ne:\"Nepali\",no:\"Norwegian\",nb:\"Norwegian (Bokmal)\",nn:\"Norwegian (Nynorsk)\",oc:\"Occitan\",or:\"Oriya\",om:\"Oromo\",fa:\"Persian\",\"fa-IR\":\"Persian/Iran\",pl:\"Polish\",pt:\"Portuguese\",\"pt-BR\":\"Portuguese (Brazil)\",pa:\"Punjabi\",\"pa-IN\":\"Punjabi (India)\",\"pa-PK\":\"Punjabi (Pakistan)\",qu:\"Quechua\",rm:\"Rhaeto-Romanic\",ro:\"Romanian\",\"ro-MO\":\"Romanian (Moldavia)\",ru:\"Russian\",\"ru-MO\":\"Russian (Moldavia)\",sz:\"Sami (Lappish)\",sg:\"Sango\",sa:\"Sanskrit\",sc:\"Sardinian\",sd:\"Sindhi\",si:\"Singhalese\",sr:\"Serbian\",sk:\"Slovak\",sl:\"Slovenian\",so:\"Somani\",sb:\"Sorbian\",es:\"Spanish\",\"es-AR\":\"Spanish (Argentina)\",\"es-BO\":\"Spanish (Bolivia)\",\"es-CL\":\"Spanish (Chile)\",\"es-CO\":\"Spanish (Colombia)\",\"es-CR\":\"Spanish (Costa Rica)\",\"es-DO\":\"Spanish (Dominican Republic)\",\"es-EC\":\"Spanish (Ecuador)\",\"es-SV\":\"Spanish (El Salvador)\",\"es-GT\":\"Spanish (Guatemala)\",\"es-HN\":\"Spanish (Honduras)\",\"es-MX\":\"Spanish (Mexico)\",\"es-NI\":\"Spanish (Nicaragua)\",\"es-PA\":\"Spanish (Panama)\",\"es-PY\":\"Spanish (Paraguay)\",\"es-PE\":\"Spanish (Peru)\",\"es-PR\":\"Spanish (Puerto Rico)\",\"es-ES\":\"Spanish (Spain)\",\"es-UY\":\"Spanish (Uruguay)\",\"es-VE\":\"Spanish (Venezuela)\",sx:\"Sutu\",sw:\"Swahili\",sv:\"Swedish\",\"sv-FI\":\"Swedish (Finland)\",\"sv-SV\":\"Swedish (Sweden)\",ta:\"Tamil\",tt:\"Tatar\",te:\"Teluga\",th:\"Thai\",tig:\"Tigre\",ts:\"Tsonga\",tn:\"Tswana\",tr:\"Turkish\",tk:\"Turkmen\",uk:\"Ukrainian\",hsb:\"Upper Sorbian\",ur:\"Urdu\",ve:\"Venda\",vi:\"Vietnamese\",vo:\"Volapuk\",wa:\"Walloon\",cy:\"Welsh\",xh:\"Xhosa\",ji:\"Yiddish\",zu:\"Zulu\"}[t]&&(this.internal.languageSettings.languageCode=t,!1===this.internal.languageSettings.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",(function(){this.internal.write(\"/Lang (\"+this.internal.languageSettings.languageCode+\")\")})),this.internal.languageSettings.isSubscribed=!0)),this},\n/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nWt=M.API,Vt=Wt.getCharWidthsArray=function(t,e){var r,n,i=(e=e||{}).font||this.internal.getFont(),a=e.fontSize||this.internal.getFontSize(),o=e.charSpace||this.internal.getCharSpace(),s=e.widths?e.widths:i.metadata.Unicode.widths,c=s.fof?s.fof:1,u=e.kerning?e.kerning:i.metadata.Unicode.kerning,h=u.fof?u.fof:1,l=!1!==e.doKerning,f=0,d=t.length,p=0,g=s[0]||c,m=[];for(r=0;r<d;r++)n=t.charCodeAt(r),\"function\"==typeof i.metadata.widthOfString?m.push((i.metadata.widthOfGlyph(i.metadata.characterToGlyph(n))+o*(1e3/a)||0)/1e3):(f=l&&\"object\"==typeof u[n]&&!isNaN(parseInt(u[n][p],10))?u[n][p]/h:0,m.push((s[n]||g)/c+f)),p=n;return m},Gt=Wt.getStringUnitWidth=function(t,e){var r=(e=e||{}).fontSize||this.internal.getFontSize(),n=e.font||this.internal.getFont(),i=e.charSpace||this.internal.getCharSpace();return Wt.processArabic&&(t=Wt.processArabic(t)),\"function\"==typeof n.metadata.widthOfString?n.metadata.widthOfString(t,r,i)/r:Vt.apply(this,arguments).reduce((function(t,e){return t+e}),0)},Yt=function(t,e,r,n){for(var i=[],a=0,o=t.length,s=0;a!==o&&s+e[a]<r;)s+=e[a],a++;i.push(t.slice(0,a));var c=a;for(s=0;a!==o;)s+e[a]>n&&(i.push(t.slice(c,a)),s=0,c=a),s+=e[a],a++;return c!==a&&i.push(t.slice(c,a)),i},Jt=function(t,e,r){r||(r={});var n,i,a,o,s,c,u,h=[],l=[h],f=r.textIndent||0,d=0,p=0,g=t.split(\" \"),m=Vt.apply(this,[\" \",r])[0];if(c=-1===r.lineIndent?g[0].length+2:r.lineIndent||0){var v=Array(c).join(\" \"),b=[];g.map((function(t){(t=t.split(/\\s*\\n/)).length>1?b=b.concat(t.map((function(t,e){return(e&&t.length?\"\\n\":\"\")+t}))):b.push(t[0])})),g=b,c=Gt.apply(this,[v,r])}for(a=0,o=g.length;a<o;a++){var y=0;if(n=g[a],c&&\"\\n\"==n[0]&&(n=n.substr(1),y=1),f+d+(p=(i=Vt.apply(this,[n,r])).reduce((function(t,e){return t+e}),0))>e||y){if(p>e){for(s=Yt.apply(this,[n,i,e-(f+d),e]),h.push(s.shift()),h=[s.pop()];s.length;)l.push([s.shift()]);p=i.slice(n.length-(h[0]?h[0].length:0)).reduce((function(t,e){return t+e}),0)}else h=[n];l.push(h),f=p+c,d=m}else h.push(n),f+=d+p,d=m}return u=c?function(t,e){return(e?v:\"\")+t.join(\" \")}:function(t){return t.join(\" \")},l.map(u)},Wt.splitTextToSize=function(t,e,r){var n,i=(r=r||{}).fontSize||this.internal.getFontSize(),a=function(t){if(t.widths&&t.kerning)return{widths:t.widths,kerning:t.kerning};var e=this.internal.getFont(t.fontName,t.fontStyle);return e.metadata.Unicode?{widths:e.metadata.Unicode.widths||{0:1},kerning:e.metadata.Unicode.kerning||{}}:{font:e.metadata,fontSize:this.internal.getFontSize(),charSpace:this.internal.getCharSpace()}}.call(this,r);n=Array.isArray(t)?t:String(t).split(/\\r?\\n/);var o=1*this.internal.scaleFactor*e/i;a.textIndent=r.textIndent?1*r.textIndent*this.internal.scaleFactor/i:0,a.lineIndent=r.lineIndent;var s,c,u=[];for(s=0,c=n.length;s<c;s++)u=u.concat(Jt.apply(this,[n[s],o,a]));return u},\n/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){t.__fontmetrics__=t.__fontmetrics__||{};for(var e=\"klmnopqrstuvwxyz\",r={},n={},i=0;i<e.length;i++)r[e[i]]=\"0123456789abcdef\"[i],n[\"0123456789abcdef\"[i]]=e[i];var a=function(t){return\"0x\"+parseInt(t,10).toString(16)},o=t.__fontmetrics__.compress=function(t){var e,r,i,s,c=[\"{\"];for(var u in t){if(e=t[u],isNaN(parseInt(u,10))?r=\"'\"+u+\"'\":(u=parseInt(u,10),r=(r=a(u).slice(2)).slice(0,-1)+n[r.slice(-1)]),\"number\"==typeof e)e<0?(i=a(e).slice(3),s=\"-\"):(i=a(e).slice(2),s=\"\"),i=s+i.slice(0,-1)+n[i.slice(-1)];else{if(\"object\"!=typeof e)throw new Error(\"Don't know what to do with value type \"+typeof e+\".\");i=o(e)}c.push(r+i)}return c.push(\"}\"),c.join(\"\")},s=t.__fontmetrics__.uncompress=function(t){if(\"string\"!=typeof t)throw new Error(\"Invalid argument passed to uncompress.\");for(var e,n,i,a,o={},s=1,c=o,u=[],h=\"\",l=\"\",f=t.length-1,d=1;d<f;d+=1)\"'\"==(a=t[d])?e?(i=e.join(\"\"),e=void 0):e=[]:e?e.push(a):\"{\"==a?(u.push([c,i]),c={},i=void 0):\"}\"==a?((n=u.pop())[0][n[1]]=c,i=void 0,c=n[0]):\"-\"==a?s=-1:void 0===i?r.hasOwnProperty(a)?(h+=r[a],i=parseInt(h,16)*s,s=1,h=\"\"):h+=a:r.hasOwnProperty(a)?(l+=r[a],c[i]=parseInt(l,16)*s,s=1,i=void 0,l=\"\"):l+=a;return o},c={codePages:[\"WinAnsiEncoding\"],WinAnsiEncoding:s(\"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\")},u={Unicode:{Courier:c,\"Courier-Bold\":c,\"Courier-BoldOblique\":c,\"Courier-Oblique\":c,Helvetica:c,\"Helvetica-Bold\":c,\"Helvetica-BoldOblique\":c,\"Helvetica-Oblique\":c,\"Times-Roman\":c,\"Times-Bold\":c,\"Times-BoldItalic\":c,\"Times-Italic\":c}},h={Unicode:{\"Courier-Oblique\":s(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-BoldItalic\":s(\"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"),\"Helvetica-Bold\":s(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),Courier:s(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-BoldOblique\":s(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Bold\":s(\"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"),Symbol:s(\"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"),Helvetica:s(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"),\"Helvetica-BoldOblique\":s(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),ZapfDingbats:s(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-Bold\":s(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Italic\":s(\"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"),\"Times-Roman\":s(\"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"),\"Helvetica-Oblique\":s(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\")}};t.events.push([\"addFont\",function(t){var e=t.font,r=h.Unicode[e.postScriptName];r&&(e.metadata.Unicode={},e.metadata.Unicode.widths=r.widths,e.metadata.Unicode.kerning=r.kerning);var n=u.Unicode[e.postScriptName];n&&(e.metadata.Unicode.encoding=n,e.encoding=n.codePages[0])}])}(M.API),\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++)r[n]=t.charCodeAt(n);return r};t.API.events.push([\"addFont\",function(r){var n=void 0,i=r.font,a=r.instance;if(!i.isStandardFont){if(void 0===a)throw new Error(\"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\"+i.postScriptName+\"').\");if(\"string\"!=typeof(n=!1===a.existsFileInVFS(i.postScriptName)?a.loadFile(i.postScriptName):a.getFileFromVFS(i.postScriptName)))throw new Error(\"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\"+i.postScriptName+\"').\");!function(r,n){n=/^\\x00\\x01\\x00\\x00/.test(n)?e(n):e(c(n)),r.metadata=t.API.TTFFont.open(n),r.metadata.Unicode=r.metadata.Unicode||{encoding:{},kerning:{},widths:[]},r.metadata.glyIdsUsed=[0]}(i,n)}}])}(M),\n/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){function e(){return(r.canvg?Promise.resolve(r.canvg):import(\"canvg\")).catch((function(t){return Promise.reject(new Error(\"Could not load canvg: \"+t))})).then((function(t){return t.default?t.default:t}))}M.API.addSvgAsImage=function(t,r,n,a,o,s,c,u){if(isNaN(r)||isNaN(n))throw i.error(\"jsPDF.addSvgAsImage: Invalid coordinates\",arguments),new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");if(isNaN(a)||isNaN(o))throw i.error(\"jsPDF.addSvgAsImage: Invalid measurements\",arguments),new Error(\"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\");var h=document.createElement(\"canvas\");h.width=a,h.height=o;var l=h.getContext(\"2d\");l.fillStyle=\"#fff\",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error(\"Could not load canvg.\"))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL(\"image/jpeg\",1),r,n,a,o,c,u)}))}}(),M.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,\"g\"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),\"g\"),r=this.pdfEscape16(this.internal.getNumberOfPages()+\"\",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},M.API.viewerPreferences=function(t,e){var r;t=t||{},e=e||!1;var n,i,a,o={HideToolbar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:\"UseNone\",value:\"UseNone\",type:\"name\",explicitSet:!1,valueSet:[\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"UseOC\"],pdfVersion:1.3},Direction:{defaultValue:\"L2R\",value:\"L2R\",type:\"name\",explicitSet:!1,valueSet:[\"L2R\",\"R2L\"],pdfVersion:1.3},ViewArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},ViewClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintScaling:{defaultValue:\"AppDefault\",value:\"AppDefault\",type:\"name\",explicitSet:!1,valueSet:[\"AppDefault\",\"None\"],pdfVersion:1.6},Duplex:{defaultValue:\"\",value:\"none\",type:\"name\",explicitSet:!1,valueSet:[\"Simplex\",\"DuplexFlipShortEdge\",\"DuplexFlipLongEdge\",\"none\"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:\"\",value:\"\",type:\"array\",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:\"integer\",explicitSet:!1,valueSet:null,pdfVersion:1.7}},s=Object.keys(o),c=[],u=0,h=0,l=0;function f(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(o)),this.internal.viewerpreferences.isSubscribed=!1),r=this.internal.viewerpreferences.configuration,\"reset\"===t||!0===e){var d=s.length;for(l=0;l<d;l+=1)r[s[l]].value=r[s[l]].defaultValue,r[s[l]].explicitSet=!1}if(\"object\"==typeof t)for(i in t)if(a=t[i],f(s,i)&&void 0!==a){if(\"boolean\"===r[i].type&&\"boolean\"==typeof a)r[i].value=a;else if(\"name\"===r[i].type&&f(r[i].valueSet,a))r[i].value=a;else if(\"integer\"===r[i].type&&Number.isInteger(a))r[i].value=a;else if(\"array\"===r[i].type){for(u=0;u<a.length;u+=1)if(n=!0,1===a[u].length&&\"number\"==typeof a[u][0])c.push(String(a[u]-1));else if(a[u].length>1){for(h=0;h<a[u].length;h+=1)\"number\"!=typeof a[u][h]&&(n=!1);!0===n&&c.push([a[u][0]-1,a[u][1]-1].join(\" \"))}r[i].value=\"[\"+c.join(\" \")+\"]\"}else r[i].value=r[i].defaultValue;r[i].explicitSet=!0}return!1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",(function(){var t,e=[];for(t in r)!0===r[t].explicitSet&&(\"name\"===r[t].type?e.push(\"/\"+t+\" /\"+r[t].value):e.push(\"/\"+t+\" \"+r[t].value));0!==e.length&&this.internal.write(\"/ViewerPreferences\\n<<\\n\"+e.join(\"\\n\")+\"\\n>>\")})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=r,this},\n/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){var e=function(){var t='<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><rdf:Description rdf:about=\"\" xmlns:jspdf=\"'+this.internal.__metadata__.namespaceuri+'\"><jspdf:metadata>',e=unescape(encodeURIComponent('<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">')),r=unescape(encodeURIComponent(t)),n=unescape(encodeURIComponent(this.internal.__metadata__.metadata)),i=unescape(encodeURIComponent(\"</jspdf:metadata></rdf:Description></rdf:RDF>\")),a=unescape(encodeURIComponent(\"</x:xmpmeta>\")),o=r.length+n.length+i.length+e.length+a.length;this.internal.__metadata__.metadata_object_number=this.internal.newObject(),this.internal.write(\"<< /Type /Metadata /Subtype /XML /Length \"+o+\" >>\"),this.internal.write(\"stream\"),this.internal.write(e+r+n+i+a),this.internal.write(\"endstream\"),this.internal.write(\"endobj\")},r=function(){this.internal.__metadata__.metadata_object_number&&this.internal.write(\"/Metadata \"+this.internal.__metadata__.metadata_object_number+\" 0 R\")};t.addMetadata=function(t,n){return void 0===this.internal.__metadata__&&(this.internal.__metadata__={metadata:t,namespaceuri:n||\"http://jspdf.default.namespaceuri/\"},this.internal.events.subscribe(\"putCatalog\",r),this.internal.events.subscribe(\"postPutResources\",e)),this}}(M.API),function(t){var e=t.API,r=e.pdfEscape16=function(t,e){for(var r,n=e.metadata.Unicode.widths,i=[\"\",\"0\",\"00\",\"000\",\"0000\"],a=[\"\"],o=0,s=t.length;o<s;++o){if(r=e.metadata.characterToGlyph(t.charCodeAt(o)),e.metadata.glyIdsUsed.push(r),e.metadata.toUnicode[r]=t.charCodeAt(o),-1==n.indexOf(r)&&(n.push(r),n.push([parseInt(e.metadata.widthOfGlyph(r),10)])),\"0\"==r)return a.join(\"\");r=r.toString(16),a.push(i[4-r.length],r)}return a.join(\"\")},n=function(t){var e,r,n,i,a,o,s;for(a=\"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\",n=[],o=0,s=(r=Object.keys(t).sort((function(t,e){return t-e}))).length;o<s;o++)e=r[o],n.length>=100&&(a+=\"\\n\"+n.length+\" beginbfchar\\n\"+n.join(\"\\n\")+\"\\nendbfchar\",n=[]),void 0!==t[e]&&null!==t[e]&&\"function\"==typeof t[e].toString&&(i=(\"0000\"+t[e].toString(16)).slice(-4),e=(\"0000\"+(+e).toString(16)).slice(-4),n.push(\"<\"+e+\"><\"+i+\">\"));return n.length&&(a+=\"\\n\"+n.length+\" beginbfchar\\n\"+n.join(\"\\n\")+\"\\nendbfchar\\n\"),a+=\"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\"};e.events.push([\"putFont\",function(e){!function(e){var r=e.font,i=e.out,a=e.newObject,o=e.putStream;if(r.metadata instanceof t.API.TTFFont&&\"Identity-H\"===r.encoding){for(var s=r.metadata.Unicode.widths,c=r.metadata.subset.encode(r.metadata.glyIdsUsed,1),u=\"\",h=0;h<c.length;h++)u+=String.fromCharCode(c[h]);var l=a();o({data:u,addLength1:!0,objectId:l}),i(\"endobj\");var f=a();o({data:n(r.metadata.toUnicode),addLength1:!0,objectId:f}),i(\"endobj\");var d=a();i(\"<<\"),i(\"/Type /FontDescriptor\"),i(\"/FontName /\"+I(r.fontName)),i(\"/FontFile2 \"+l+\" 0 R\"),i(\"/FontBBox \"+t.API.PDFObject.convert(r.metadata.bbox)),i(\"/Flags \"+r.metadata.flags),i(\"/StemV \"+r.metadata.stemV),i(\"/ItalicAngle \"+r.metadata.italicAngle),i(\"/Ascent \"+r.metadata.ascender),i(\"/Descent \"+r.metadata.decender),i(\"/CapHeight \"+r.metadata.capHeight),i(\">>\"),i(\"endobj\");var p=a();i(\"<<\"),i(\"/Type /Font\"),i(\"/BaseFont /\"+I(r.fontName)),i(\"/FontDescriptor \"+d+\" 0 R\"),i(\"/W \"+t.API.PDFObject.convert(s)),i(\"/CIDToGIDMap /Identity\"),i(\"/DW 1000\"),i(\"/Subtype /CIDFontType2\"),i(\"/CIDSystemInfo\"),i(\"<<\"),i(\"/Supplement 0\"),i(\"/Registry (Adobe)\"),i(\"/Ordering (\"+r.encoding+\")\"),i(\">>\"),i(\">>\"),i(\"endobj\"),r.objectNumber=a(),i(\"<<\"),i(\"/Type /Font\"),i(\"/Subtype /Type0\"),i(\"/ToUnicode \"+f+\" 0 R\"),i(\"/BaseFont /\"+I(r.fontName)),i(\"/Encoding /\"+r.encoding),i(\"/DescendantFonts [\"+p+\" 0 R]\"),i(\">>\"),i(\"endobj\"),r.isAlreadyPutted=!0}}(e)}]);e.events.push([\"putFont\",function(e){!function(e){var r=e.font,i=e.out,a=e.newObject,o=e.putStream;if(r.metadata instanceof t.API.TTFFont&&\"WinAnsiEncoding\"===r.encoding){for(var s=r.metadata.rawData,c=\"\",u=0;u<s.length;u++)c+=String.fromCharCode(s[u]);var h=a();o({data:c,addLength1:!0,objectId:h}),i(\"endobj\");var l=a();o({data:n(r.metadata.toUnicode),addLength1:!0,objectId:l}),i(\"endobj\");var f=a();i(\"<<\"),i(\"/Descent \"+r.metadata.decender),i(\"/CapHeight \"+r.metadata.capHeight),i(\"/StemV \"+r.metadata.stemV),i(\"/Type /FontDescriptor\"),i(\"/FontFile2 \"+h+\" 0 R\"),i(\"/Flags 96\"),i(\"/FontBBox \"+t.API.PDFObject.convert(r.metadata.bbox)),i(\"/FontName /\"+I(r.fontName)),i(\"/ItalicAngle \"+r.metadata.italicAngle),i(\"/Ascent \"+r.metadata.ascender),i(\">>\"),i(\"endobj\"),r.objectNumber=a();for(var d=0;d<r.metadata.hmtx.widths.length;d++)r.metadata.hmtx.widths[d]=parseInt(r.metadata.hmtx.widths[d]*(1e3/r.metadata.head.unitsPerEm));i(\"<</Subtype/TrueType/Type/Font/ToUnicode \"+l+\" 0 R/BaseFont/\"+I(r.fontName)+\"/FontDescriptor \"+f+\" 0 R/Encoding/\"+r.encoding+\" /FirstChar 29 /LastChar 255 /Widths \"+t.API.PDFObject.convert(r.metadata.hmtx.widths)+\">>\"),i(\"endobj\"),r.isAlreadyPutted=!0}}(e)}]);var i=function(t){var e,n=t.text||\"\",i=t.x,a=t.y,o=t.options||{},s=t.mutex||{},c=s.pdfEscape,u=s.activeFontKey,h=s.fonts,l=u,f=\"\",d=0,p=\"\",g=h[l].encoding;if(\"Identity-H\"!==h[l].encoding)return{text:n,x:i,y:a,options:o,mutex:s};for(p=n,l=u,Array.isArray(n)&&(p=n[0]),d=0;d<p.length;d+=1)h[l].metadata.hasOwnProperty(\"cmap\")&&(e=h[l].metadata.cmap.unicode.codeMap[p[d].charCodeAt(0)]),e||p[d].charCodeAt(0)<256&&h[l].metadata.hasOwnProperty(\"Unicode\")?f+=p[d]:f+=\"\";var m=\"\";return parseInt(l.slice(1))<14||\"WinAnsiEncoding\"===g?m=c(f,l).split(\"\").map((function(t){return t.charCodeAt(0).toString(16)})).join(\"\"):\"Identity-H\"===g&&(m=r(f,h[l])),s.isHex=!0,{text:m,x:i,y:a,options:o,mutex:s}};e.events.push([\"postProcessText\",function(t){var e=t.text||\"\",r=[],n={text:e,x:t.x,y:t.y,options:t.options,mutex:t.mutex};if(Array.isArray(e)){var a=0;for(a=0;a<e.length;a+=1)Array.isArray(e[a])&&3===e[a].length?r.push([i(Object.assign({},n,{text:e[a][0]})).text,e[a][1],e[a][2]]):r.push(i(Object.assign({},n,{text:e[a]})).text);t.text=r}else t.text=i(Object.assign({},n,{text:e})).text}])}(M),\n/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(){return void 0===this.internal.vFS&&(this.internal.vFS={}),!0};t.existsFileInVFS=function(t){return e.call(this),void 0!==this.internal.vFS[t]},t.addFileToVFS=function(t,r){return e.call(this),this.internal.vFS[t]=r,this},t.getFileFromVFS=function(t){return e.call(this),void 0!==this.internal.vFS[t]?this.internal.vFS[t]:null}}(M.API),\n/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\nfunction(t){t.__bidiEngine__=t.prototype.__bidiEngine__=function(t){var r,n,i,a,o,s,c,u=e,h=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],l=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],f={L:0,R:1,EN:2,AN:3,N:4,B:5,S:6},d={0:0,5:1,6:2,7:3,32:4,251:5,254:6,255:7},p=[\"(\",\")\",\"(\",\"<\",\">\",\"<\",\"[\",\"]\",\"[\",\"{\",\"}\",\"{\",\"«\",\"»\",\"«\",\"‹\",\"›\",\"‹\",\"â…\",\"â†\",\"â…\",\"â½\",\"â¾\",\"â½\",\"â‚\",\"â‚Ž\",\"â‚\",\"≤\",\"≥\",\"≤\",\"〈\",\"〉\",\"〈\",\"ï¹™\",\"﹚\",\"ï¹™\",\"ï¹›\",\"﹜\",\"ï¹›\",\"ï¹\",\"﹞\",\"ï¹\",\"﹤\",\"ï¹¥\",\"﹤\"],g=new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/),m=!1,v=0;this.__bidiEngine__={};var b=function(t){var e=t.charCodeAt(),r=e>>8,n=d[r];return void 0!==n?u[256*n+(255&e)]:252===r||253===r?\"AL\":g.test(r)?\"L\":8===r?\"R\":\"N\"},y=function(t){for(var e,r=0;r<t.length;r++){if(\"L\"===(e=b(t.charAt(r))))return!1;if(\"R\"===e)return!0}return!1},w=function(t,e,o,s){var c,u,h,l,f=e[s];switch(f){case\"L\":case\"R\":m=!1;break;case\"N\":case\"AN\":break;case\"EN\":m&&(f=\"AN\");break;case\"AL\":m=!0,f=\"R\";break;case\"WS\":f=\"N\";break;case\"CS\":s<1||s+1>=e.length||\"EN\"!==(c=o[s-1])&&\"AN\"!==c||\"EN\"!==(u=e[s+1])&&\"AN\"!==u?f=\"N\":m&&(u=\"AN\"),f=u===c?u:\"N\";break;case\"ES\":f=\"EN\"===(c=s>0?o[s-1]:\"B\")&&s+1<e.length&&\"EN\"===e[s+1]?\"EN\":\"N\";break;case\"ET\":if(s>0&&\"EN\"===o[s-1]){f=\"EN\";break}if(m){f=\"N\";break}for(h=s+1,l=e.length;h<l&&\"ET\"===e[h];)h++;f=h<l&&\"EN\"===e[h]?\"EN\":\"N\";break;case\"NSM\":if(i&&!a){for(l=e.length,h=s+1;h<l&&\"NSM\"===e[h];)h++;if(h<l){var d=t[s],p=d>=1425&&d<=2303||64286===d;if(c=e[h],p&&(\"R\"===c||\"AL\"===c)){f=\"R\";break}}}f=s<1||\"B\"===(c=e[s-1])?\"N\":o[s-1];break;case\"B\":m=!1,r=!0,f=v;break;case\"S\":n=!0,f=\"N\";break;case\"LRE\":case\"RLE\":case\"LRO\":case\"RLO\":case\"PDF\":m=!1;break;case\"BN\":f=\"N\"}return f},N=function(t,e,r){var n=t.split(\"\");return r&&L(n,r,{hiLevel:v}),n.reverse(),e&&e.reverse(),n.join(\"\")},L=function(t,e,i){var a,o,s,c,u,d=-1,p=t.length,g=0,y=[],N=v?l:h,L=[];for(m=!1,r=!1,n=!1,o=0;o<p;o++)L[o]=b(t[o]);for(s=0;s<p;s++){if(u=g,y[s]=w(t,L,y,s),a=240&(g=N[u][f[y[s]]]),g&=15,e[s]=c=N[g][5],a>0)if(16===a){for(o=d;o<s;o++)e[o]=1;d=-1}else d=-1;if(N[g][6])-1===d&&(d=s);else if(d>-1){for(o=d;o<s;o++)e[o]=c;d=-1}\"B\"===L[s]&&(e[s]=0),i.hiLevel|=c}n&&function(t,e,r){for(var n=0;n<r;n++)if(\"S\"===t[n]){e[n]=v;for(var i=n-1;i>=0&&\"WS\"===t[i];i--)e[i]=v}}(L,e,p)},A=function(t,e,n,i,a){if(!(a.hiLevel<t)){if(1===t&&1===v&&!r)return e.reverse(),void(n&&n.reverse());for(var o,s,c,u,h=e.length,l=0;l<h;){if(i[l]>=t){for(c=l+1;c<h&&i[c]>=t;)c++;for(u=l,s=c-1;u<s;u++,s--)o=e[u],e[u]=e[s],e[s]=o,n&&(o=n[u],n[u]=n[s],n[s]=o);l=c}l++}}},x=function(t,e,r){var n=t.split(\"\"),i={hiLevel:v};return r||(r=[]),L(n,r,i),function(t,e,r){if(0!==r.hiLevel&&c)for(var n,i=0;i<t.length;i++)1===e[i]&&(n=p.indexOf(t[i]))>=0&&(t[i]=p[n+1])}(n,r,i),A(2,n,e,r,i),A(1,n,e,r,i),n.join(\"\")};return this.__bidiEngine__.doBidiReorder=function(t,e,r){if(function(t,e){if(e)for(var r=0;r<t.length;r++)e[r]=r;void 0===a&&(a=y(t)),void 0===s&&(s=y(t))}(t,e),i||!o||s)if(i&&o&&a^s)v=a?1:0,t=N(t,e,r);else if(!i&&o&&s)v=a?1:0,t=x(t,e,r),t=N(t,e);else if(!i||a||o||s){if(i&&!o&&a^s)t=N(t,e),a?(v=0,t=x(t,e,r)):(v=1,t=x(t,e,r),t=N(t,e));else if(i&&a&&!o&&s)v=1,t=x(t,e,r),t=N(t,e);else if(!i&&!o&&a^s){var n=c;a?(v=1,t=x(t,e,r),v=0,c=!1,t=x(t,e,r),c=n):(v=0,t=x(t,e,r),t=N(t,e),v=1,c=!1,t=x(t,e,r),c=n,t=N(t,e))}}else v=0,t=x(t,e,r);else v=a?1:0,t=x(t,e,r);return t},this.__bidiEngine__.setOptions=function(t){t&&(i=t.isInputVisual,o=t.isOutputVisual,a=t.isInputRtl,s=t.isOutputRtl,c=t.isSymmetricSwapping)},this.__bidiEngine__.setOptions(t),this.__bidiEngine__};var e=[\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"S\",\"B\",\"S\",\"WS\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"B\",\"B\",\"S\",\"WS\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"CS\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"L\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"ET\",\"ET\",\"EN\",\"EN\",\"N\",\"L\",\"N\",\"N\",\"N\",\"EN\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"N\",\"N\",\"AL\",\"ET\",\"ET\",\"AL\",\"CS\",\"AL\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"ET\",\"AN\",\"AN\",\"AL\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"BN\",\"BN\",\"BN\",\"L\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"B\",\"LRE\",\"RLE\",\"PDF\",\"LRO\",\"RLO\",\"CS\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"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\",\"WS\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"N\",\"LRI\",\"RLI\",\"FSI\",\"PDI\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"EN\",\"L\",\"N\",\"N\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"L\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"NSM\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"ES\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"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\",\"CS\",\"N\",\"CS\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"N\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"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\"],r=new t.__bidiEngine__({isInputVisual:!0});t.API.events.push([\"postProcessText\",function(t){var e=t.text,n=(t.x,t.y,t.options||{}),i=(t.mutex,n.lang,[]);if(n.isInputVisual=\"boolean\"!=typeof n.isInputVisual||n.isInputVisual,r.setOptions(n),\"[object Array]\"===Object.prototype.toString.call(e)){var a=0;for(i=[],a=0;a<e.length;a+=1)\"[object Array]\"===Object.prototype.toString.call(e[a])?i.push([r.doBidiReorder(e[a][0]),e[a][1],e[a][2]]):i.push([r.doBidiReorder(e[a])]);t.text=i}else t.text=r.doBidiReorder(e);r.setOptions({isInputVisual:!0})}])}(M),M.API.TTFFont=function(){function t(t){var e;if(this.rawData=t,e=this.contents=new re(t),this.contents.pos=4,\"ttcf\"===e.readString(4))throw new Error(\"TTCF not supported.\");e.pos=0,this.parse(),this.subset=new Ne(this),this.registerTTF()}return t.open=function(e){return new t(e)},t.prototype.parse=function(){return this.directory=new ne(this.contents),this.head=new oe(this),this.name=new de(this),this.cmap=new ce(this),this.toUnicode={},this.hhea=new ue(this),this.maxp=new pe(this),this.hmtx=new ge(this),this.post=new le(this),this.os2=new he(this),this.loca=new we(this),this.glyf=new ve(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},t.prototype.registerTTF=function(){var t,e,r,n,i;if(this.scaleFactor=1e3/this.head.unitsPerEm,this.bbox=function(){var e,r,n,i;for(i=[],e=0,r=(n=this.bbox).length;e<r;e++)t=n[e],i.push(Math.round(t*this.scaleFactor));return i}.call(this),this.stemV=0,this.post.exists?(r=255&(n=this.post.italic_angle),0!=(32768&(e=n>>16))&&(e=-(1+(65535^e))),this.italicAngle=+(e+\".\"+r)):this.italicAngle=0,this.ascender=Math.round(this.ascender*this.scaleFactor),this.decender=Math.round(this.decender*this.scaleFactor),this.lineGap=Math.round(this.lineGap*this.scaleFactor),this.capHeight=this.os2.exists&&this.os2.capHeight||this.ascender,this.xHeight=this.os2.exists&&this.os2.xHeight||0,this.familyClass=(this.os2.exists&&this.os2.familyClass||0)>>8,this.isSerif=1===(i=this.familyClass)||2===i||3===i||4===i||5===i||7===i,this.isScript=10===this.familyClass,this.flags=0,this.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.cmap.unicode)throw new Error(\"No unicode cmap for font\")},t.prototype.characterToGlyph=function(t){var e;return(null!=(e=this.cmap.unicode)?e.codeMap[t]:void 0)||0},t.prototype.widthOfGlyph=function(t){var e;return e=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(t).advance*e},t.prototype.widthOfString=function(t,e,r){var n,i,a,o;for(a=0,i=0,o=(t=\"\"+t).length;0<=o?i<o:i>o;i=0<=o?++i:--i)n=t.charCodeAt(i),a+=this.widthOfGlyph(this.characterToGlyph(n))+r*(1e3/e)||0;return a*(e/1e3)},t.prototype.lineHeight=function(t,e){var r;return null==e&&(e=!1),r=e?this.lineGap:0,(this.ascender+r-this.decender)/1e3*t},t}();var ee,re=function(){function t(t){this.data=null!=t?t:[],this.pos=0,this.length=this.data.length}return t.prototype.readByte=function(){return this.data[this.pos++]},t.prototype.writeByte=function(t){return this.data[this.pos++]=t},t.prototype.readUInt32=function(){return 16777216*this.readByte()+(this.readByte()<<16)+(this.readByte()<<8)+this.readByte()},t.prototype.writeUInt32=function(t){return this.writeByte(t>>>24&255),this.writeByte(t>>16&255),this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt32=function(){var t;return(t=this.readUInt32())>=2147483648?t-4294967296:t},t.prototype.writeInt32=function(t){return t<0&&(t+=4294967296),this.writeUInt32(t)},t.prototype.readUInt16=function(){return this.readByte()<<8|this.readByte()},t.prototype.writeUInt16=function(t){return this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt16=function(){var t;return(t=this.readUInt16())>=32768?t-65536:t},t.prototype.writeInt16=function(t){return t<0&&(t+=65536),this.writeUInt16(t)},t.prototype.readString=function(t){var e,r;for(r=[],e=0;0<=t?e<t:e>t;e=0<=t?++e:--e)r[e]=String.fromCharCode(this.readByte());return r.join(\"\")},t.prototype.writeString=function(t){var e,r,n;for(n=[],e=0,r=t.length;0<=r?e<r:e>r;e=0<=r?++e:--e)n.push(this.writeByte(t.charCodeAt(e)));return n},t.prototype.readShort=function(){return this.readInt16()},t.prototype.writeShort=function(t){return this.writeInt16(t)},t.prototype.readLongLong=function(){var t,e,r,n,i,a,o,s;return t=this.readByte(),e=this.readByte(),r=this.readByte(),n=this.readByte(),i=this.readByte(),a=this.readByte(),o=this.readByte(),s=this.readByte(),128&t?-1*(72057594037927940*(255^t)+281474976710656*(255^e)+1099511627776*(255^r)+4294967296*(255^n)+16777216*(255^i)+65536*(255^a)+256*(255^o)+(255^s)+1):72057594037927940*t+281474976710656*e+1099511627776*r+4294967296*n+16777216*i+65536*a+256*o+s},t.prototype.writeLongLong=function(t){var e,r;return e=Math.floor(t/4294967296),r=4294967295&t,this.writeByte(e>>24&255),this.writeByte(e>>16&255),this.writeByte(e>>8&255),this.writeByte(255&e),this.writeByte(r>>24&255),this.writeByte(r>>16&255),this.writeByte(r>>8&255),this.writeByte(255&r)},t.prototype.readInt=function(){return this.readInt32()},t.prototype.writeInt=function(t){return this.writeInt32(t)},t.prototype.read=function(t){var e,r;for(e=[],r=0;0<=t?r<t:r>t;r=0<=t?++r:--r)e.push(this.readByte());return e},t.prototype.write=function(t){var e,r,n,i;for(i=[],r=0,n=t.length;r<n;r++)e=t[r],i.push(this.writeByte(e));return i},t}(),ne=function(){var t;function e(t){var e,r,n;for(this.scalarType=t.readInt(),this.tableCount=t.readShort(),this.searchRange=t.readShort(),this.entrySelector=t.readShort(),this.rangeShift=t.readShort(),this.tables={},r=0,n=this.tableCount;0<=n?r<n:r>n;r=0<=n?++r:--r)e={tag:t.readString(4),checksum:t.readInt(),offset:t.readInt(),length:t.readInt()},this.tables[e.tag]=e}return e.prototype.encode=function(e){var r,n,i,a,o,s,c,u,h,l,f,d,p;for(p in f=Object.keys(e).length,s=Math.log(2),h=16*Math.floor(Math.log(f)/s),a=Math.floor(h/s),u=16*f-h,(n=new re).writeInt(this.scalarType),n.writeShort(f),n.writeShort(h),n.writeShort(a),n.writeShort(u),i=16*f,c=n.pos+i,o=null,d=[],e)for(l=e[p],n.writeString(p),n.writeInt(t(l)),n.writeInt(c),n.writeInt(l.length),d=d.concat(l),\"head\"===p&&(o=c),c+=l.length;c%4;)d.push(0),c++;return n.write(d),r=2981146554-t(n.data),n.pos=o+8,n.writeUInt32(r),n.data},t=function(t){var e,r,n,i;for(t=me.call(t);t.length%4;)t.push(0);for(n=new re(t),r=0,e=0,i=t.length;e<i;e=e+=4)r+=n.readUInt32();return 4294967295&r},e}(),ie={}.hasOwnProperty,ae=function(t,e){for(var r in e)ie.call(e,r)&&(t[r]=e[r]);function n(){this.constructor=t}return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};ee=function(){function t(t){var e;this.file=t,e=this.file.directory.tables[this.tag],this.exists=!!e,e&&(this.offset=e.offset,this.length=e.length,this.parse(this.file.contents))}return t.prototype.parse=function(){},t.prototype.encode=function(){},t.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},t}();var oe=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"head\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.revision=t.readInt(),this.checkSumAdjustment=t.readInt(),this.magicNumber=t.readInt(),this.flags=t.readShort(),this.unitsPerEm=t.readShort(),this.created=t.readLongLong(),this.modified=t.readLongLong(),this.xMin=t.readShort(),this.yMin=t.readShort(),this.xMax=t.readShort(),this.yMax=t.readShort(),this.macStyle=t.readShort(),this.lowestRecPPEM=t.readShort(),this.fontDirectionHint=t.readShort(),this.indexToLocFormat=t.readShort(),this.glyphDataFormat=t.readShort()},e.prototype.encode=function(t){var e;return(e=new re).writeInt(this.version),e.writeInt(this.revision),e.writeInt(this.checkSumAdjustment),e.writeInt(this.magicNumber),e.writeShort(this.flags),e.writeShort(this.unitsPerEm),e.writeLongLong(this.created),e.writeLongLong(this.modified),e.writeShort(this.xMin),e.writeShort(this.yMin),e.writeShort(this.xMax),e.writeShort(this.yMax),e.writeShort(this.macStyle),e.writeShort(this.lowestRecPPEM),e.writeShort(this.fontDirectionHint),e.writeShort(t),e.writeShort(this.glyphDataFormat),e.data},e}(),se=function(){function t(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m,v,b;switch(this.platformID=t.readUInt16(),this.encodingID=t.readShort(),this.offset=e+t.readInt(),h=t.pos,t.pos=this.offset,this.format=t.readUInt16(),this.length=t.readUInt16(),this.language=t.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(s=0;s<256;++s)this.codeMap[s]=t.readByte();break;case 4:for(f=t.readUInt16(),l=f/2,t.pos+=6,i=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),t.pos+=2,p=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),c=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),u=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),n=(this.length-t.pos+this.offset)/2,o=function(){var e,r;for(r=[],s=e=0;0<=n?e<n:e>n;s=0<=n?++e:--e)r.push(t.readUInt16());return r}(),s=m=0,b=i.length;m<b;s=++m)for(g=i[s],r=v=d=p[s];d<=g?v<=g:v>=g;r=d<=g?++v:--v)0===u[s]?a=r+c[s]:0!==(a=o[u[s]/2+(r-d)-(l-s)]||0)&&(a+=c[s]),this.codeMap[r]=65535&a}t.pos=h}return t.encode=function(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m,v,b,y,w,N,L,A,x,S,_,P,k,I,F,C,j,O,B,M,E,q,D,R,T,z,U,H,W,V,G,Y;switch(I=new re,a=Object.keys(t).sort((function(t,e){return t-e})),e){case\"macroman\":for(p=0,g=function(){var t=[];for(d=0;d<256;++d)t.push(0);return t}(),v={0:0},i={},F=0,B=a.length;F<B;F++)null==v[W=t[n=a[F]]]&&(v[W]=++p),i[n]={old:t[n],new:v[t[n]]},g[n]=v[t[n]];return I.writeUInt16(1),I.writeUInt16(0),I.writeUInt32(12),I.writeUInt16(0),I.writeUInt16(262),I.writeUInt16(0),I.write(g),{charMap:i,subtable:I.data,maxGlyphID:p+1};case\"unicode\":for(P=[],h=[],b=0,v={},r={},m=c=null,C=0,M=a.length;C<M;C++)null==v[w=t[n=a[C]]]&&(v[w]=++b),r[n]={old:w,new:v[w]},o=v[w]-n,null!=m&&o===c||(m&&h.push(m),P.push(n),c=o),m=n;for(m&&h.push(m),h.push(65535),P.push(65535),S=2*(x=P.length),A=2*Math.pow(Math.log(x)/Math.LN2,2),l=Math.log(A/2)/Math.LN2,L=2*x-A,s=[],N=[],f=[],d=j=0,E=P.length;j<E;d=++j){if(_=P[d],u=h[d],65535===_){s.push(0),N.push(0);break}if(_-(k=r[_].new)>=32768)for(s.push(0),N.push(2*(f.length+x-d)),n=O=_;_<=u?O<=u:O>=u;n=_<=u?++O:--O)f.push(r[n].new);else s.push(k-_),N.push(0)}for(I.writeUInt16(3),I.writeUInt16(1),I.writeUInt32(12),I.writeUInt16(4),I.writeUInt16(16+8*x+2*f.length),I.writeUInt16(0),I.writeUInt16(S),I.writeUInt16(A),I.writeUInt16(l),I.writeUInt16(L),U=0,q=h.length;U<q;U++)n=h[U],I.writeUInt16(n);for(I.writeUInt16(0),H=0,D=P.length;H<D;H++)n=P[H],I.writeUInt16(n);for(V=0,R=s.length;V<R;V++)o=s[V],I.writeUInt16(o);for(G=0,T=N.length;G<T;G++)y=N[G],I.writeUInt16(y);for(Y=0,z=f.length;Y<z;Y++)p=f[Y],I.writeUInt16(p);return{charMap:r,subtable:I.data,maxGlyphID:b+1}}},t}(),ce=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"cmap\",e.prototype.parse=function(t){var e,r,n;for(t.pos=this.offset,this.version=t.readUInt16(),n=t.readUInt16(),this.tables=[],this.unicode=null,r=0;0<=n?r<n:r>n;r=0<=n?++r:--r)e=new se(t,this.offset),this.tables.push(e),e.isUnicode&&null==this.unicode&&(this.unicode=e);return!0},e.encode=function(t,e){var r,n;return null==e&&(e=\"macroman\"),r=se.encode(t,e),(n=new re).writeUInt16(0),n.writeUInt16(1),r.table=n.data.concat(r.subtable),r},e}(),ue=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"hhea\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.ascender=t.readShort(),this.decender=t.readShort(),this.lineGap=t.readShort(),this.advanceWidthMax=t.readShort(),this.minLeftSideBearing=t.readShort(),this.minRightSideBearing=t.readShort(),this.xMaxExtent=t.readShort(),this.caretSlopeRise=t.readShort(),this.caretSlopeRun=t.readShort(),this.caretOffset=t.readShort(),t.pos+=8,this.metricDataFormat=t.readShort(),this.numberOfMetrics=t.readUInt16()},e}(),he=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"OS/2\",e.prototype.parse=function(t){if(t.pos=this.offset,this.version=t.readUInt16(),this.averageCharWidth=t.readShort(),this.weightClass=t.readUInt16(),this.widthClass=t.readUInt16(),this.type=t.readShort(),this.ySubscriptXSize=t.readShort(),this.ySubscriptYSize=t.readShort(),this.ySubscriptXOffset=t.readShort(),this.ySubscriptYOffset=t.readShort(),this.ySuperscriptXSize=t.readShort(),this.ySuperscriptYSize=t.readShort(),this.ySuperscriptXOffset=t.readShort(),this.ySuperscriptYOffset=t.readShort(),this.yStrikeoutSize=t.readShort(),this.yStrikeoutPosition=t.readShort(),this.familyClass=t.readShort(),this.panose=function(){var e,r;for(r=[],e=0;e<10;++e)r.push(t.readByte());return r}(),this.charRange=function(){var e,r;for(r=[],e=0;e<4;++e)r.push(t.readInt());return r}(),this.vendorID=t.readString(4),this.selection=t.readShort(),this.firstCharIndex=t.readShort(),this.lastCharIndex=t.readShort(),this.version>0&&(this.ascent=t.readShort(),this.descent=t.readShort(),this.lineGap=t.readShort(),this.winAscent=t.readShort(),this.winDescent=t.readShort(),this.codePageRange=function(){var e,r;for(r=[],e=0;e<2;e=++e)r.push(t.readInt());return r}(),this.version>1))return this.xHeight=t.readShort(),this.capHeight=t.readShort(),this.defaultChar=t.readShort(),this.breakChar=t.readShort(),this.maxContext=t.readShort()},e}(),le=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"post\",e.prototype.parse=function(t){var e,r,n;switch(t.pos=this.offset,this.format=t.readInt(),this.italicAngle=t.readInt(),this.underlinePosition=t.readShort(),this.underlineThickness=t.readShort(),this.isFixedPitch=t.readInt(),this.minMemType42=t.readInt(),this.maxMemType42=t.readInt(),this.minMemType1=t.readInt(),this.maxMemType1=t.readInt(),this.format){case 65536:break;case 131072:var i;for(r=t.readUInt16(),this.glyphNameIndex=[],i=0;0<=r?i<r:i>r;i=0<=r?++i:--i)this.glyphNameIndex.push(t.readUInt16());for(this.names=[],n=[];t.pos<this.offset+this.length;)e=t.readByte(),n.push(this.names.push(t.readString(e)));return n;case 151552:return r=t.readUInt16(),this.offsets=t.read(r);case 196608:break;case 262144:return this.map=function(){var e,r,n;for(n=[],i=e=0,r=this.file.maxp.numGlyphs;0<=r?e<r:e>r;i=0<=r?++e:--e)n.push(t.readUInt32());return n}.call(this)}},e}(),fe=function(t,e){this.raw=t,this.length=t.length,this.platformID=e.platformID,this.encodingID=e.encodingID,this.languageID=e.languageID},de=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"name\",e.prototype.parse=function(t){var e,r,n,i,a,o,s,c,u,h,l;for(t.pos=this.offset,t.readShort(),e=t.readShort(),o=t.readShort(),r=[],i=0;0<=e?i<e:i>e;i=0<=e?++i:--i)r.push({platformID:t.readShort(),encodingID:t.readShort(),languageID:t.readShort(),nameID:t.readShort(),length:t.readShort(),offset:this.offset+o+t.readShort()});for(s={},i=u=0,h=r.length;u<h;i=++u)n=r[i],t.pos=n.offset,c=t.readString(n.length),a=new fe(c,n),null==s[l=n.nameID]&&(s[l]=[]),s[n.nameID].push(a);this.strings=s,this.copyright=s[0],this.fontFamily=s[1],this.fontSubfamily=s[2],this.uniqueSubfamily=s[3],this.fontName=s[4],this.version=s[5];try{this.postscriptName=s[6][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}catch(t){this.postscriptName=s[4][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}return this.trademark=s[7],this.manufacturer=s[8],this.designer=s[9],this.description=s[10],this.vendorUrl=s[11],this.designerUrl=s[12],this.license=s[13],this.licenseUrl=s[14],this.preferredFamily=s[15],this.preferredSubfamily=s[17],this.compatibleFull=s[18],this.sampleText=s[19]},e}(),pe=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"maxp\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.numGlyphs=t.readUInt16(),this.maxPoints=t.readUInt16(),this.maxContours=t.readUInt16(),this.maxCompositePoints=t.readUInt16(),this.maxComponentContours=t.readUInt16(),this.maxZones=t.readUInt16(),this.maxTwilightPoints=t.readUInt16(),this.maxStorage=t.readUInt16(),this.maxFunctionDefs=t.readUInt16(),this.maxInstructionDefs=t.readUInt16(),this.maxStackElements=t.readUInt16(),this.maxSizeOfInstructions=t.readUInt16(),this.maxComponentElements=t.readUInt16(),this.maxComponentDepth=t.readUInt16()},e}(),ge=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"hmtx\",e.prototype.parse=function(t){var e,r,n,i,a,o,s;for(t.pos=this.offset,this.metrics=[],e=0,o=this.file.hhea.numberOfMetrics;0<=o?e<o:e>o;e=0<=o?++e:--e)this.metrics.push({advance:t.readUInt16(),lsb:t.readInt16()});for(n=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var r,i;for(i=[],e=r=0;0<=n?r<n:r>n;e=0<=n?++r:--r)i.push(t.readInt16());return i}(),this.widths=function(){var t,e,r,n;for(n=[],t=0,e=(r=this.metrics).length;t<e;t++)i=r[t],n.push(i.advance);return n}.call(this),r=this.widths[this.widths.length-1],s=[],e=a=0;0<=n?a<n:a>n;e=0<=n?++a:--a)s.push(this.widths.push(r));return s},e.prototype.forGlyph=function(t){return t in this.metrics?this.metrics[t]:{advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[t-this.metrics.length]}},e}(),me=[].slice,ve=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"glyf\",e.prototype.parse=function(){return this.cache={}},e.prototype.glyphFor=function(t){var e,r,n,i,a,o,s,c,u,h;return t in this.cache?this.cache[t]:(i=this.file.loca,e=this.file.contents,r=i.indexOf(t),0===(n=i.lengthOf(t))?this.cache[t]=null:(e.pos=this.offset+r,a=(o=new re(e.read(n))).readShort(),c=o.readShort(),h=o.readShort(),s=o.readShort(),u=o.readShort(),this.cache[t]=-1===a?new ye(o,c,h,s,u):new be(o,a,c,h,s,u),this.cache[t]))},e.prototype.encode=function(t,e,r){var n,i,a,o,s;for(a=[],i=[],o=0,s=e.length;o<s;o++)n=t[e[o]],i.push(a.length),n&&(a=a.concat(n.encode(r)));return i.push(a.length),{table:a,offsets:i}},e}(),be=function(){function t(t,e,r,n,i,a){this.raw=t,this.numberOfContours=e,this.xMin=r,this.yMin=n,this.xMax=i,this.yMax=a,this.compound=!1}return t.prototype.encode=function(){return this.raw.data},t}(),ye=function(){function t(t,e,r,n,i){var a,o;for(this.raw=t,this.xMin=e,this.yMin=r,this.xMax=n,this.yMax=i,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],a=this.raw;o=a.readShort(),this.glyphOffsets.push(a.pos),this.glyphIDs.push(a.readUInt16()),32&o;)a.pos+=1&o?4:2,128&o?a.pos+=8:64&o?a.pos+=4:8&o&&(a.pos+=2)}return 1,8,32,64,128,t.prototype.encode=function(){var t,e,r;for(e=new re(me.call(this.raw.data)),t=0,r=this.glyphIDs.length;t<r;++t)e.pos=this.glyphOffsets[t];return e.data},t}(),we=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return ae(e,ee),e.prototype.tag=\"loca\",e.prototype.parse=function(t){var e,r;return t.pos=this.offset,e=this.file.head.indexToLocFormat,this.offsets=0===e?function(){var e,n;for(n=[],r=0,e=this.length;r<e;r+=2)n.push(2*t.readUInt16());return n}.call(this):function(){var e,n;for(n=[],r=0,e=this.length;r<e;r+=4)n.push(t.readUInt32());return n}.call(this)},e.prototype.indexOf=function(t){return this.offsets[t]},e.prototype.lengthOf=function(t){return this.offsets[t+1]-this.offsets[t]},e.prototype.encode=function(t,e){for(var r=new Uint32Array(this.offsets.length),n=0,i=0,a=0;a<r.length;++a)if(r[a]=n,i<e.length&&e[i]==a){++i,r[a]=n;var o=this.offsets[a],s=this.offsets[a+1]-o;s>0&&(n+=s)}for(var c=new Array(4*r.length),u=0;u<r.length;++u)c[4*u+3]=255&r[u],c[4*u+2]=(65280&r[u])>>8,c[4*u+1]=(16711680&r[u])>>16,c[4*u]=(4278190080&r[u])>>24;return c},e}(),Ne=function(){function t(t){this.font=t,this.subset={},this.unicodes={},this.next=33}return t.prototype.generateCmap=function(){var t,e,r,n,i;for(e in n=this.font.cmap.tables[0].codeMap,t={},i=this.subset)r=i[e],t[e]=n[r];return t},t.prototype.glyphsFor=function(t){var e,r,n,i,a,o,s;for(n={},a=0,o=t.length;a<o;a++)n[i=t[a]]=this.font.glyf.glyphFor(i);for(i in e=[],n)(null!=(r=n[i])?r.compound:void 0)&&e.push.apply(e,r.glyphIDs);if(e.length>0)for(i in s=this.glyphsFor(e))r=s[i],n[i]=r;return n},t.prototype.encode=function(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m;for(n in r=ce.encode(this.generateCmap(),\"unicode\"),a=this.glyphsFor(t),f={0:0},m=r.charMap)f[(s=m[n]).old]=s.new;for(d in l=r.maxGlyphID,a)d in f||(f[d]=l++);return u=function(t){var e,r;for(e in r={},t)r[t[e]]=e;return r}(f),h=Object.keys(u).sort((function(t,e){return t-e})),p=function(){var t,e,r;for(r=[],t=0,e=h.length;t<e;t++)o=h[t],r.push(u[o]);return r}(),i=this.font.glyf.encode(a,p,f),c=this.font.loca.encode(i.offsets,p),g={cmap:this.font.cmap.raw(),glyf:i.table,loca:c,hmtx:this.font.hmtx.raw(),hhea:this.font.hhea.raw(),maxp:this.font.maxp.raw(),post:this.font.post.raw(),name:this.font.name.raw(),head:this.font.head.encode(e)},this.font.os2.exists&&(g[\"OS/2\"]=this.font.os2.raw()),this.font.directory.encode(g)},t}();M.API.PDFObject=function(){var t;function e(){}return t=function(t,e){return(Array(e+1).join(\"0\")+t).slice(-e)},e.convert=function(r){var n,i,a,o;if(Array.isArray(r))return\"[\"+function(){var t,i,a;for(a=[],t=0,i=r.length;t<i;t++)n=r[t],a.push(e.convert(n));return a}().join(\" \")+\"]\";if(\"string\"==typeof r)return\"/\"+r;if(null!=r?r.isString:void 0)return\"(\"+r+\")\";if(r instanceof Date)return\"(D:\"+t(r.getUTCFullYear(),4)+t(r.getUTCMonth(),2)+t(r.getUTCDate(),2)+t(r.getUTCHours(),2)+t(r.getUTCMinutes(),2)+t(r.getUTCSeconds(),2)+\"Z)\";if(\"[object Object]\"==={}.toString.call(r)){for(i in a=[\"<<\"],r)o=r[i],a.push(\"/\"+i+\" \"+e.convert(o));return a.push(\">>\"),a.join(\"\\n\")}return\"\"+r},e}();export default M;export{xt as AcroForm,Lt as AcroFormAppearance,gt as AcroFormButton,yt as AcroFormCheckBox,lt as AcroFormChoiceField,dt as AcroFormComboBox,pt as AcroFormEditBox,ft as AcroFormListBox,Nt as AcroFormPasswordField,mt as AcroFormPushButton,vt as AcroFormRadioButton,wt as AcroFormTextField,C as GState,O as ShadingPattern,B as TilingPattern,M as jsPDF};\n//# sourceMappingURL=jspdf.es.min.js.map\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var u = ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([c], { type: 'text/javascript' })));\n var w = new Worker(u);\n w.onerror = function (e) { return cb(e.error, null); };\n w.onmessage = function (e) { return cb(null, e.data); };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = 0xFFFFFFFF;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return c ^ 0xFFFFFFFF; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32)\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n if (!opts.consume)\n dat = new u8(dat);\n w.postMessage([dat, opts], [dat.buffer]);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (t)\n throw 'stream finished';\n if (!strm.ondata)\n throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16)) + (d[b + 3] << 23) * 2; };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + (2 * (d[l - 1] << 23));\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) >> 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = gzs(this.p);\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n throw 'no stream handler';\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k;\n if (val instanceof u8)\n t[n] = [val, o];\n else if (Array.isArray(val))\n t[n] = [val[0], mrg(o, val[1])];\n else\n fltn(val, n + '/', t, o);\n }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n;\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n};\n// write zip header\nvar wzh = function (d, b, c, cmp, su, fn, u, o, ce, t) {\n var fl = fn.length, l = cmp.length;\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b] = 20, b += 2;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0)), d[b++] = u && 8;\n d[b] = t, b += 2;\n var dt = new Date(o.mtime || Date.now()), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n throw 'date not in range 1980-2099';\n wbytes(d, b, ((y << 24) * 2) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1));\n b += 4;\n wbytes(d, b, c);\n wbytes(d, b + 4, l);\n wbytes(d, b + 8, su);\n wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n if (ce != null)\n wbytes(d, b += 10, ce), b += 4;\n d.set(fn, b);\n b += fl;\n if (ce == null)\n d.set(cmp, b);\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n }\n catch (e) {\n return cb(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), m = file.length;\n c.p(file);\n var n = strToU8(fn), s = n.length;\n var t = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n var l = d.length;\n files[i] = {\n t: t,\n d: d,\n m: m,\n c: c.d(),\n u: fn.length != l,\n n: n,\n p: p\n };\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n if (!--lft)\n cbf();\n }\n };\n if (n.length > 65535)\n cbl('filename too long', null);\n if (!t)\n cbl(null, file);\n else if (m < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var t = p.level == 0 ? 0 : 8;\n var n = strToU8(fn), s = n.length;\n if (n.length > 65535)\n throw 'filename too long';\n var d = t ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push({\n t: t,\n d: d,\n m: file.length,\n c: c.d(),\n u: fn.length != s,\n n: n,\n o: o,\n p: p\n });\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\nexport function unzip(data, cb) {\n if (typeof cb != 'function')\n throw 'no callback';\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (!lft)\n cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var _loop_2 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n files[fn] = d;\n if (!--lft)\n cb(null, files);\n }\n };\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl('unknown compression type ' + c_1, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_2(i);\n }\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n throw 'invalid zip file';\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n throw 'unknown compression type ' + c_2;\n }\n return files;\n}\n","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<section id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":13},\"end\":{\"line\":1,\"column\":19}}}) : helper)))\n + \"\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":28},\"end\":{\"line\":1,\"column\":34}}}) : helper)))\n + \" modal fade\\\" data-keyboard=\\\"false\\\" tabindex=\\\"-1\\\" role=\\\"dialog\\\" aria-hidden=\\\"true\\\">\\n\t<button type=\\\"button\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":30},\"end\":{\"line\":2,\"column\":36}}}) : helper)))\n + \"-close btn btn--borderless\\\" data-dismiss=\\\"modal\\\" aria-label=\\\"Close\\\">\\n\t\t<i class=\\\"icon icon-close\\\"></i>\\n\t</button>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":13},\"end\":{\"line\":5,\"column\":19}}}) : helper)))\n + \"-dialog modal-dialog modal-lg\\\" role=\\\"document\\\">\\n\t\t<div class=\\\"modal-content\\\">\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":15},\"end\":{\"line\":7,\"column\":21}}}) : helper)))\n + \"-body modal-body\\\">\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":16},\"end\":{\"line\":8,\"column\":22}}}) : helper)))\n + \"-shareSwatch\\\">\\n\t\t\t\t\t<h4 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":16},\"end\":{\"line\":9,\"column\":22}}}) : helper)))\n + \"-shareSwatch-title\\\">Change Moodboard Title</h4>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":17},\"end\":{\"line\":10,\"column\":23}}}) : helper)))\n + \"-shareSwatch-textInput-container\\\">\\n\t\t\t\t\t\t<input type=\\\"email\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":33},\"end\":{\"line\":11,\"column\":39}}}) : helper)))\n + \"-shareSwatch-textInput\\\" placeholder=\\\"Insert new moodboard title\\\">\\n\t\t\t\t\t</div>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":17},\"end\":{\"line\":13,\"column\":23}}}) : helper)))\n + \"-shareSwatch-buttons\\\">\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":21},\"end\":{\"line\":14,\"column\":27}}}) : helper)))\n + \"-updateBtn btn disabled\\\" data-dismiss=\\\"modal\\\">Update</button>\\n\t\t\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":21},\"end\":{\"line\":15,\"column\":27}}}) : helper)))\n + \"-cancelBtn btn\\\" data-dismiss=\\\"modal\\\">Cancel</button>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\t\t\t</div>\\n\t\t</div>\\n\t</div>\\n</section>\";\n},\"useData\":true});","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<section id=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":13},\"end\":{\"line\":1,\"column\":19}}}) : helper)))\n + \"\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":28},\"end\":{\"line\":1,\"column\":34}}}) : helper)))\n + \" modal fade\\\" data-keyboard=\\\"false\\\" tabindex=\\\"-1\\\" role=\\\"dialog\\\" aria-hidden=\\\"true\\\">\\n\t<button type=\\\"button\\\" class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":30},\"end\":{\"line\":2,\"column\":36}}}) : helper)))\n + \"-close btn btn--borderless\\\" data-dismiss=\\\"modal\\\" aria-label=\\\"Close\\\">\\n\t\t<i class=\\\"icon icon-close\\\"></i>\\n\t</button>\\n\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":13},\"end\":{\"line\":5,\"column\":19}}}) : helper)))\n + \"-dialog modal-dialog modal-lg\\\" role=\\\"document\\\">\\n\t\t<div class=\\\"modal-content\\\">\\n\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":15},\"end\":{\"line\":7,\"column\":21}}}) : helper)))\n + \"-body modal-body\\\">\\n\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":16},\"end\":{\"line\":8,\"column\":22}}}) : helper)))\n + \"-panels\\\">\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":17},\"end\":{\"line\":9,\"column\":23}}}) : helper)))\n + \"-panel\\\">\\n\t\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":18},\"end\":{\"line\":10,\"column\":24}}}) : helper)))\n + \"-panel-image\\\"></div>\\n\t\t\t\t\t\t<h3 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":17},\"end\":{\"line\":11,\"column\":23}}}) : helper)))\n + \"-panel-title\\\">My Swatches</h3>\\n\t\t\t\t\t\t<p class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":12,\"column\":16},\"end\":{\"line\":12,\"column\":22}}}) : helper)))\n + \"-panel-text\\\">Collect inspiring swatches and get in-touch with</br>their suppliers.</p>\\n\t\t\t\t\t</div>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":17},\"end\":{\"line\":14,\"column\":23}}}) : helper)))\n + \"-panel\\\">\\n\t\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":18},\"end\":{\"line\":15,\"column\":24}}}) : helper)))\n + \"-panel-image\\\"></div>\\n\t\t\t\t\t\t<h3 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":17},\"end\":{\"line\":16,\"column\":23}}}) : helper)))\n + \"-panel-title\\\">My Moodboard</h3>\\n\t\t\t\t\t\t<p class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":17,\"column\":16},\"end\":{\"line\":17,\"column\":22}}}) : helper)))\n + \"-panel-text\\\">Visualise your creative ideas by making your</br>own moodboard.</p>\\n\t\t\t\t\t</div>\\n\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":19,\"column\":17},\"end\":{\"line\":19,\"column\":23}}}) : helper)))\n + \"-panel\\\">\\n\t\t\t\t\t\t<div class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":20,\"column\":18},\"end\":{\"line\":20,\"column\":24}}}) : helper)))\n + \"-panel-image\\\"></div>\\n\t\t\t\t\t\t<h3 class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":21,\"column\":17},\"end\":{\"line\":21,\"column\":23}}}) : helper)))\n + \"-panel-title\\\">Add to both</h3>\\n\t\t\t\t\t\t<p class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":22,\"column\":16},\"end\":{\"line\":22,\"column\":22}}}) : helper)))\n + \"-panel-text\\\">Select both 'My Swatches' and 'My Moodboard',</br>then hit 'Save'.</p>\\n\t\t\t\t\t</div>\\n\t\t\t\t</div>\\n\t\t\t\t<button class=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"wg\") || (depth0 != null ? lookupProperty(depth0,\"wg\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"wg\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":25,\"column\":19},\"end\":{\"line\":25,\"column\":25}}}) : helper)))\n + \"-okayBtn btn btn--rounded\\\" data-dismiss=\\\"modal\\\">Okay, Got it</button>\\n\t\t\t</div>\\n\t\t</div>\\n\t</div>\\n</section>\";\n},\"useData\":true});","import { Konva } from './Global.js';\nexport class Transform {\n constructor(m = [1, 0, 0, 1, 0, 0]) {\n this.dirty = false;\n this.m = (m && m.slice()) || [1, 0, 0, 1, 0, 0];\n }\n reset() {\n this.m[0] = 1;\n this.m[1] = 0;\n this.m[2] = 0;\n this.m[3] = 1;\n this.m[4] = 0;\n this.m[5] = 0;\n }\n copy() {\n return new Transform(this.m);\n }\n copyInto(tr) {\n tr.m[0] = this.m[0];\n tr.m[1] = this.m[1];\n tr.m[2] = this.m[2];\n tr.m[3] = this.m[3];\n tr.m[4] = this.m[4];\n tr.m[5] = this.m[5];\n }\n point(point) {\n var m = this.m;\n return {\n x: m[0] * point.x + m[2] * point.y + m[4],\n y: m[1] * point.x + m[3] * point.y + m[5],\n };\n }\n translate(x, y) {\n this.m[4] += this.m[0] * x + this.m[2] * y;\n this.m[5] += this.m[1] * x + this.m[3] * y;\n return this;\n }\n scale(sx, sy) {\n this.m[0] *= sx;\n this.m[1] *= sx;\n this.m[2] *= sy;\n this.m[3] *= sy;\n return this;\n }\n rotate(rad) {\n var c = Math.cos(rad);\n var s = Math.sin(rad);\n var m11 = this.m[0] * c + this.m[2] * s;\n var m12 = this.m[1] * c + this.m[3] * s;\n var m21 = this.m[0] * -s + this.m[2] * c;\n var m22 = this.m[1] * -s + this.m[3] * c;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n getTranslation() {\n return {\n x: this.m[4],\n y: this.m[5],\n };\n }\n skew(sx, sy) {\n var m11 = this.m[0] + this.m[2] * sy;\n var m12 = this.m[1] + this.m[3] * sy;\n var m21 = this.m[2] + this.m[0] * sx;\n var m22 = this.m[3] + this.m[1] * sx;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n multiply(matrix) {\n var m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n var m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n var m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n var m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n var dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n var dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n this.m[4] = dx;\n this.m[5] = dy;\n return this;\n }\n invert() {\n var d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n var m0 = this.m[3] * d;\n var m1 = -this.m[1] * d;\n var m2 = -this.m[2] * d;\n var m3 = this.m[0] * d;\n var m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n var m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);\n this.m[0] = m0;\n this.m[1] = m1;\n this.m[2] = m2;\n this.m[3] = m3;\n this.m[4] = m4;\n this.m[5] = m5;\n return this;\n }\n getMatrix() {\n return this.m;\n }\n decompose() {\n var a = this.m[0];\n var b = this.m[1];\n var c = this.m[2];\n var d = this.m[3];\n var e = this.m[4];\n var f = this.m[5];\n var delta = a * d - b * c;\n let result = {\n x: e,\n y: f,\n rotation: 0,\n scaleX: 0,\n scaleY: 0,\n skewX: 0,\n skewY: 0,\n };\n if (a != 0 || b != 0) {\n var r = Math.sqrt(a * a + b * b);\n result.rotation = b > 0 ? Math.acos(a / r) : -Math.acos(a / r);\n result.scaleX = r;\n result.scaleY = delta / r;\n result.skewX = (a * c + b * d) / delta;\n result.skewY = 0;\n }\n else if (c != 0 || d != 0) {\n var s = Math.sqrt(c * c + d * d);\n result.rotation =\n Math.PI / 2 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));\n result.scaleX = delta / s;\n result.scaleY = s;\n result.skewX = 0;\n result.skewY = (a * c + b * d) / delta;\n }\n else {\n }\n result.rotation = Util._getRotation(result.rotation);\n return result;\n }\n}\nvar OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', RGB_PAREN = 'rgb(', COLORS = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 132, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 255, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 203],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [119, 128, 144],\n slategrey: [119, 128, 144],\n snow: [255, 255, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n transparent: [255, 255, 255, 0],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 5],\n}, RGB_REGEX = /rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/, animQueue = [];\nconst req = (typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame) ||\n function (f) {\n setTimeout(f, 60);\n };\nexport const Util = {\n _isElement(obj) {\n return !!(obj && obj.nodeType == 1);\n },\n _isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n _isPlainObject(obj) {\n return !!obj && obj.constructor === Object;\n },\n _isArray(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_ARRAY;\n },\n _isNumber(obj) {\n return (Object.prototype.toString.call(obj) === OBJECT_NUMBER &&\n !isNaN(obj) &&\n isFinite(obj));\n },\n _isString(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_STRING;\n },\n _isBoolean(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;\n },\n isObject(val) {\n return val instanceof Object;\n },\n isValidSelector(selector) {\n if (typeof selector !== 'string') {\n return false;\n }\n var firstChar = selector[0];\n return (firstChar === '#' ||\n firstChar === '.' ||\n firstChar === firstChar.toUpperCase());\n },\n _sign(number) {\n if (number === 0) {\n return 1;\n }\n if (number > 0) {\n return 1;\n }\n else {\n return -1;\n }\n },\n requestAnimFrame(callback) {\n animQueue.push(callback);\n if (animQueue.length === 1) {\n req(function () {\n const queue = animQueue;\n animQueue = [];\n queue.forEach(function (cb) {\n cb();\n });\n });\n }\n },\n createCanvasElement() {\n var canvas = document.createElement('canvas');\n try {\n canvas.style = canvas.style || {};\n }\n catch (e) { }\n return canvas;\n },\n createImageElement() {\n return document.createElement('img');\n },\n _isInDocument(el) {\n while ((el = el.parentNode)) {\n if (el == document) {\n return true;\n }\n }\n return false;\n },\n _urlToImage(url, callback) {\n var imageObj = Util.createImageElement();\n imageObj.onload = function () {\n callback(imageObj);\n };\n imageObj.src = url;\n },\n _rgbToHex(r, g, b) {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n },\n _hexToRgb(hex) {\n hex = hex.replace(HASH, EMPTY_STRING);\n var bigint = parseInt(hex, 16);\n return {\n r: (bigint >> 16) & 255,\n g: (bigint >> 8) & 255,\n b: bigint & 255,\n };\n },\n getRandomColor() {\n var randColor = ((Math.random() * 0xffffff) << 0).toString(16);\n while (randColor.length < 6) {\n randColor = ZERO + randColor;\n }\n return HASH + randColor;\n },\n getRGB(color) {\n var rgb;\n if (color in COLORS) {\n rgb = COLORS[color];\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n };\n }\n else if (color[0] === HASH) {\n return this._hexToRgb(color.substring(1));\n }\n else if (color.substr(0, 4) === RGB_PAREN) {\n rgb = RGB_REGEX.exec(color.replace(/ /g, ''));\n return {\n r: parseInt(rgb[1], 10),\n g: parseInt(rgb[2], 10),\n b: parseInt(rgb[3], 10),\n };\n }\n else {\n return {\n r: 0,\n g: 0,\n b: 0,\n };\n }\n },\n colorToRGBA(str) {\n str = str || 'black';\n return (Util._namedColorToRBA(str) ||\n Util._hex3ColorToRGBA(str) ||\n Util._hex4ColorToRGBA(str) ||\n Util._hex6ColorToRGBA(str) ||\n Util._hex8ColorToRGBA(str) ||\n Util._rgbColorToRGBA(str) ||\n Util._rgbaColorToRGBA(str) ||\n Util._hslColorToRGBA(str));\n },\n _namedColorToRBA(str) {\n var c = COLORS[str.toLowerCase()];\n if (!c) {\n return null;\n }\n return {\n r: c[0],\n g: c[1],\n b: c[2],\n a: 1,\n };\n },\n _rgbColorToRGBA(str) {\n if (str.indexOf('rgb(') === 0) {\n str = str.match(/rgb\\(([^)]+)\\)/)[1];\n var parts = str.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: 1,\n };\n }\n },\n _rgbaColorToRGBA(str) {\n if (str.indexOf('rgba(') === 0) {\n str = str.match(/rgba\\(([^)]+)\\)/)[1];\n var parts = str.split(/ *, */).map((n, index) => {\n if (n.slice(-1) === '%') {\n return index === 3 ? parseInt(n) / 100 : (parseInt(n) / 100) * 255;\n }\n return Number(n);\n });\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: parts[3],\n };\n }\n },\n _hex8ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 9) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: parseInt(str.slice(7, 9), 16) / 0xff,\n };\n }\n },\n _hex6ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 7) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: 1,\n };\n }\n },\n _hex4ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 5) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: parseInt(str[4] + str[4], 16) / 0xff,\n };\n }\n },\n _hex3ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 4) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: 1,\n };\n }\n },\n _hslColorToRGBA(str) {\n if (/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.test(str)) {\n const [_, ...hsl] = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(str);\n const h = Number(hsl[0]) / 360;\n const s = Number(hsl[1]) / 100;\n const l = Number(hsl[2]) / 100;\n let t2;\n let t3;\n let val;\n if (s === 0) {\n val = l * 255;\n return {\n r: Math.round(val),\n g: Math.round(val),\n b: Math.round(val),\n a: 1,\n };\n }\n if (l < 0.5) {\n t2 = l * (1 + s);\n }\n else {\n t2 = l + s - l * s;\n }\n const t1 = 2 * l - t2;\n const rgb = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n t3 = h + (1 / 3) * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n }\n else if (2 * t3 < 1) {\n val = t2;\n }\n else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n }\n else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return {\n r: Math.round(rgb[0]),\n g: Math.round(rgb[1]),\n b: Math.round(rgb[2]),\n a: 1,\n };\n }\n },\n haveIntersection(r1, r2) {\n return !(r2.x > r1.x + r1.width ||\n r2.x + r2.width < r1.x ||\n r2.y > r1.y + r1.height ||\n r2.y + r2.height < r1.y);\n },\n cloneObject(obj) {\n var retObj = {};\n for (var key in obj) {\n if (this._isPlainObject(obj[key])) {\n retObj[key] = this.cloneObject(obj[key]);\n }\n else if (this._isArray(obj[key])) {\n retObj[key] = this.cloneArray(obj[key]);\n }\n else {\n retObj[key] = obj[key];\n }\n }\n return retObj;\n },\n cloneArray(arr) {\n return arr.slice(0);\n },\n degToRad(deg) {\n return deg * PI_OVER_DEG180;\n },\n radToDeg(rad) {\n return rad * DEG180_OVER_PI;\n },\n _degToRad(deg) {\n Util.warn('Util._degToRad is removed. Please use public Util.degToRad instead.');\n return Util.degToRad(deg);\n },\n _radToDeg(rad) {\n Util.warn('Util._radToDeg is removed. Please use public Util.radToDeg instead.');\n return Util.radToDeg(rad);\n },\n _getRotation(radians) {\n return Konva.angleDeg ? Util.radToDeg(radians) : radians;\n },\n _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n },\n throw(str) {\n throw new Error(KONVA_ERROR + str);\n },\n error(str) {\n console.error(KONVA_ERROR + str);\n },\n warn(str) {\n if (!Konva.showWarnings) {\n return;\n }\n console.warn(KONVA_WARNING + str);\n },\n each(obj, func) {\n for (var key in obj) {\n func(key, obj[key]);\n }\n },\n _inRange(val, left, right) {\n return left <= val && val < right;\n },\n _getProjectionToSegment(x1, y1, x2, y2, x3, y3) {\n var x, y, dist;\n var pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n if (pd2 == 0) {\n x = x1;\n y = y1;\n dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);\n }\n else {\n var u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;\n if (u < 0) {\n x = x1;\n y = y1;\n dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);\n }\n else if (u > 1.0) {\n x = x2;\n y = y2;\n dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);\n }\n else {\n x = x1 + u * (x2 - x1);\n y = y1 + u * (y2 - y1);\n dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);\n }\n }\n return [x, y, dist];\n },\n _getProjectionToLine(pt, line, isClosed) {\n var pc = Util.cloneObject(pt);\n var dist = Number.MAX_VALUE;\n line.forEach(function (p1, i) {\n if (!isClosed && i === line.length - 1) {\n return;\n }\n var p2 = line[(i + 1) % line.length];\n var proj = Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n var px = proj[0], py = proj[1], pdist = proj[2];\n if (pdist < dist) {\n pc.x = px;\n pc.y = py;\n dist = pdist;\n }\n });\n return pc;\n },\n _prepareArrayForTween(startArray, endArray, isClosed) {\n var n, start = [], end = [];\n if (startArray.length > endArray.length) {\n var temp = endArray;\n endArray = startArray;\n startArray = temp;\n }\n for (n = 0; n < startArray.length; n += 2) {\n start.push({\n x: startArray[n],\n y: startArray[n + 1],\n });\n }\n for (n = 0; n < endArray.length; n += 2) {\n end.push({\n x: endArray[n],\n y: endArray[n + 1],\n });\n }\n var newStart = [];\n end.forEach(function (point) {\n var pr = Util._getProjectionToLine(point, start, isClosed);\n newStart.push(pr.x);\n newStart.push(pr.y);\n });\n return newStart;\n },\n _prepareToStringify(obj) {\n var desc;\n obj.visitedByCircularReferenceRemoval = true;\n for (var key in obj) {\n if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {\n continue;\n }\n desc = Object.getOwnPropertyDescriptor(obj, key);\n if (obj[key].visitedByCircularReferenceRemoval ||\n Util._isElement(obj[key])) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n else if (Util._prepareToStringify(obj[key]) === null) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n }\n delete obj.visitedByCircularReferenceRemoval;\n return obj;\n },\n _assign(target, source) {\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n },\n _getFirstPointerId(evt) {\n if (!evt.touches) {\n return evt.pointerId || 999;\n }\n else {\n return evt.changedTouches[0].identifier;\n }\n },\n releaseCanvas(...canvases) {\n if (!Konva.releaseCanvasOnDestroy)\n return;\n canvases.forEach(c => {\n c.width = 0;\n c.height = 0;\n });\n },\n drawRoundedRectPath(context, width, height, cornerRadius) {\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft = topRight = bottomLeft = bottomRight = Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.moveTo(topLeft, 0);\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n }\n};\n","import { Konva } from './Global.js';\nimport { Util } from './Util.js';\nfunction _formatValue(val) {\n if (Util._isString(val)) {\n return '\"' + val + '\"';\n }\n if (Object.prototype.toString.call(val) === '[object Number]') {\n return val;\n }\n if (Util._isBoolean(val)) {\n return val;\n }\n return Object.prototype.toString.call(val);\n}\nexport function RGBComponent(val) {\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n return Math.round(val);\n}\nexport function alphaComponent(val) {\n if (val > 1) {\n return 1;\n }\n else if (val < 0.0001) {\n return 0.0001;\n }\n return val;\n}\nexport function getNumberValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isNumber(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number.');\n }\n return val;\n };\n }\n}\nexport function getNumberOrArrayOfNumbersValidator(noOfElements) {\n if (Konva.isUnminified) {\n return function (val, attr) {\n let isNumber = Util._isNumber(val);\n let isValidArray = Util._isArray(val) && val.length == noOfElements;\n if (!isNumber && !isValidArray) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or Array<number>(' +\n noOfElements +\n ')');\n }\n return val;\n };\n }\n}\nexport function getNumberOrAutoValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n var isNumber = Util._isNumber(val);\n var isAuto = val === 'auto';\n if (!(isNumber || isAuto)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or \"auto\".');\n }\n return val;\n };\n }\n}\nexport function getStringValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isString(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string.');\n }\n return val;\n };\n }\n}\nexport function getStringOrGradientValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n const isString = Util._isString(val);\n const isGradient = Object.prototype.toString.call(val) === '[object CanvasGradient]' ||\n (val && val.addColorStop);\n if (!(isString || isGradient)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string or a native gradient.');\n }\n return val;\n };\n }\n}\nexport function getFunctionValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isFunction(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a function.');\n }\n return val;\n };\n }\n}\nexport function getNumberArrayValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n const TypedArray = Int8Array ? Object.getPrototypeOf(Int8Array) : null;\n if (TypedArray && val instanceof TypedArray) {\n return val;\n }\n if (!Util._isArray(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a array of numbers.');\n }\n else {\n val.forEach(function (item) {\n if (!Util._isNumber(item)) {\n Util.warn('\"' +\n attr +\n '\" attribute has non numeric element ' +\n item +\n '. Make sure that all elements are numbers.');\n }\n });\n }\n return val;\n };\n }\n}\nexport function getBooleanValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n var isBool = val === true || val === false;\n if (!isBool) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a boolean.');\n }\n return val;\n };\n }\n}\nexport function getComponentValidator(components) {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (val === undefined || val === null) {\n return val;\n }\n if (!Util.isObject(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be an object with properties ' +\n components);\n }\n return val;\n };\n }\n}\n","import { Util } from './Util.js';\nimport { getComponentValidator } from './Validators.js';\nvar GET = 'get', SET = 'set';\nexport const Factory = {\n addGetterSetter(constructor, attr, def, validator, after) {\n Factory.addGetter(constructor, attr, def);\n Factory.addSetter(constructor, attr, validator, after);\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addGetter(constructor, attr, def) {\n var method = GET + Util._capitalize(attr);\n constructor.prototype[method] =\n constructor.prototype[method] ||\n function () {\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n },\n addSetter(constructor, attr, validator, after) {\n var method = SET + Util._capitalize(attr);\n if (!constructor.prototype[method]) {\n Factory.overWriteSetter(constructor, attr, validator, after);\n }\n },\n overWriteSetter(constructor, attr, validator, after) {\n var method = SET + Util._capitalize(attr);\n constructor.prototype[method] = function (val) {\n if (validator && val !== undefined && val !== null) {\n val = validator.call(this, val, attr);\n }\n this._setAttr(attr, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n },\n addComponentsGetterSetter(constructor, attr, components, validator, after) {\n var len = components.length, capitalize = Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr), n, component;\n constructor.prototype[getter] = function () {\n var ret = {};\n for (n = 0; n < len; n++) {\n component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n var basicValidator = getComponentValidator(components);\n constructor.prototype[setter] = function (val) {\n var oldVal = this.attrs[attr], key;\n if (validator) {\n val = validator.call(this, val);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (key in val) {\n if (!val.hasOwnProperty(key)) {\n continue;\n }\n this._setAttr(attr + capitalize(key), val[key]);\n }\n if (!val) {\n components.forEach((component) => {\n this._setAttr(attr + capitalize(component), undefined);\n });\n }\n this._fireChangeEvent(attr, oldVal, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addOverloadedGetterSetter(constructor, attr) {\n var capitalizedAttr = Util._capitalize(attr), setter = SET + capitalizedAttr, getter = GET + capitalizedAttr;\n constructor.prototype[attr] = function () {\n if (arguments.length) {\n this[setter](arguments[0]);\n return this;\n }\n return this[getter]();\n };\n },\n addDeprecatedGetterSetter(constructor, attr, def, validator) {\n Util.error('Adding deprecated ' + attr);\n var method = GET + Util._capitalize(attr);\n var message = attr +\n ' property is deprecated and will be removed soon. Look at Konva change log for more information.';\n constructor.prototype[method] = function () {\n Util.error(message);\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n Factory.addSetter(constructor, attr, validator, function () {\n Util.error(message);\n });\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n backCompat(constructor, methods) {\n Util.each(methods, function (oldMethodName, newMethodName) {\n var method = constructor.prototype[newMethodName];\n var oldGetter = GET + Util._capitalize(oldMethodName);\n var oldSetter = SET + Util._capitalize(oldMethodName);\n function deprecated() {\n method.apply(this, arguments);\n Util.error('\"' +\n oldMethodName +\n '\" method is deprecated and will be removed soon. Use \"\"' +\n newMethodName +\n '\" instead.');\n }\n constructor.prototype[oldMethodName] = deprecated;\n constructor.prototype[oldGetter] = deprecated;\n constructor.prototype[oldSetter] = deprecated;\n });\n },\n afterSetFilter() {\n this._filterUpToDate = false;\n },\n};\n","import { Util } from './Util.js';\nimport { Konva } from './Global.js';\nfunction simplifyArray(arr) {\n var retArr = [], len = arr.length, util = Util, n, val;\n for (n = 0; n < len; n++) {\n val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n }\n else if (!util._isString(val)) {\n val = val + '';\n }\n retArr.push(val);\n }\n return retArr;\n}\nvar COMMA = ',', OPEN_PAREN = '(', CLOSE_PAREN = ')', OPEN_PAREN_BRACKET = '([', CLOSE_BRACKET_PAREN = '])', SEMICOLON = ';', DOUBLE_PAREN = '()', EQUALS = '=', CONTEXT_METHODS = [\n 'arc',\n 'arcTo',\n 'beginPath',\n 'bezierCurveTo',\n 'clearRect',\n 'clip',\n 'closePath',\n 'createLinearGradient',\n 'createPattern',\n 'createRadialGradient',\n 'drawImage',\n 'ellipse',\n 'fill',\n 'fillText',\n 'getImageData',\n 'createImageData',\n 'lineTo',\n 'moveTo',\n 'putImageData',\n 'quadraticCurveTo',\n 'rect',\n 'restore',\n 'rotate',\n 'save',\n 'scale',\n 'setLineDash',\n 'setTransform',\n 'stroke',\n 'strokeText',\n 'transform',\n 'translate',\n];\nvar CONTEXT_PROPERTIES = [\n 'fillStyle',\n 'strokeStyle',\n 'shadowColor',\n 'shadowBlur',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'lineCap',\n 'lineDashOffset',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit',\n 'font',\n 'textAlign',\n 'textBaseline',\n 'globalAlpha',\n 'globalCompositeOperation',\n 'imageSmoothingEnabled',\n];\nconst traceArrMax = 100;\nexport class Context {\n constructor(canvas) {\n this.canvas = canvas;\n if (Konva.enableTrace) {\n this.traceArr = [];\n this._enableTrace();\n }\n }\n fillShape(shape) {\n if (shape.fillEnabled()) {\n this._fill(shape);\n }\n }\n _fill(shape) {\n }\n strokeShape(shape) {\n if (shape.hasStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n }\n fillStrokeShape(shape) {\n if (shape.attrs.fillAfterStrokeEnabled) {\n this.strokeShape(shape);\n this.fillShape(shape);\n }\n else {\n this.fillShape(shape);\n this.strokeShape(shape);\n }\n }\n getTrace(relaxed, rounded) {\n var traceArr = this.traceArr, len = traceArr.length, str = '', n, trace, method, args;\n for (n = 0; n < len; n++) {\n trace = traceArr[n];\n method = trace.method;\n if (method) {\n args = trace.args;\n str += method;\n if (relaxed) {\n str += DOUBLE_PAREN;\n }\n else {\n if (Util._isArray(args[0])) {\n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;\n }\n else {\n if (rounded) {\n args = args.map((a) => typeof a === 'number' ? Math.floor(a) : a);\n }\n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;\n }\n }\n }\n else {\n str += trace.property;\n if (!relaxed) {\n str += EQUALS + trace.val;\n }\n }\n str += SEMICOLON;\n }\n return str;\n }\n clearTrace() {\n this.traceArr = [];\n }\n _trace(str) {\n var traceArr = this.traceArr, len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n }\n reset() {\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);\n }\n getCanvas() {\n return this.canvas;\n }\n clear(bounds) {\n var canvas = this.getCanvas();\n if (bounds) {\n this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);\n }\n else {\n this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);\n }\n }\n _applyLineCap(shape) {\n const lineCap = shape.attrs.lineCap;\n if (lineCap) {\n this.setAttr('lineCap', lineCap);\n }\n }\n _applyOpacity(shape) {\n var absOpacity = shape.getAbsoluteOpacity();\n if (absOpacity !== 1) {\n this.setAttr('globalAlpha', absOpacity);\n }\n }\n _applyLineJoin(shape) {\n const lineJoin = shape.attrs.lineJoin;\n if (lineJoin) {\n this.setAttr('lineJoin', lineJoin);\n }\n }\n setAttr(attr, val) {\n this._context[attr] = val;\n }\n arc(a0, a1, a2, a3, a4, a5) {\n this._context.arc(a0, a1, a2, a3, a4, a5);\n }\n arcTo(a0, a1, a2, a3, a4) {\n this._context.arcTo(a0, a1, a2, a3, a4);\n }\n beginPath() {\n this._context.beginPath();\n }\n bezierCurveTo(a0, a1, a2, a3, a4, a5) {\n this._context.bezierCurveTo(a0, a1, a2, a3, a4, a5);\n }\n clearRect(a0, a1, a2, a3) {\n this._context.clearRect(a0, a1, a2, a3);\n }\n clip() {\n this._context.clip();\n }\n closePath() {\n this._context.closePath();\n }\n createImageData(a0, a1) {\n var a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(a0, a1);\n }\n else if (a.length === 1) {\n return this._context.createImageData(a0);\n }\n }\n createLinearGradient(a0, a1, a2, a3) {\n return this._context.createLinearGradient(a0, a1, a2, a3);\n }\n createPattern(a0, a1) {\n return this._context.createPattern(a0, a1);\n }\n createRadialGradient(a0, a1, a2, a3, a4, a5) {\n return this._context.createRadialGradient(a0, a1, a2, a3, a4, a5);\n }\n drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n var a = arguments, _context = this._context;\n if (a.length === 3) {\n _context.drawImage(a0, a1, a2);\n }\n else if (a.length === 5) {\n _context.drawImage(a0, a1, a2, a3, a4);\n }\n else if (a.length === 9) {\n _context.drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8);\n }\n }\n ellipse(a0, a1, a2, a3, a4, a5, a6, a7) {\n this._context.ellipse(a0, a1, a2, a3, a4, a5, a6, a7);\n }\n isPointInPath(x, y, path, fillRule) {\n if (path) {\n return this._context.isPointInPath(path, x, y, fillRule);\n }\n return this._context.isPointInPath(x, y, fillRule);\n }\n fill(path2d) {\n if (path2d) {\n this._context.fill(path2d);\n }\n else {\n this._context.fill();\n }\n }\n fillRect(x, y, width, height) {\n this._context.fillRect(x, y, width, height);\n }\n strokeRect(x, y, width, height) {\n this._context.strokeRect(x, y, width, height);\n }\n fillText(text, x, y, maxWidth) {\n if (maxWidth) {\n this._context.fillText(text, x, y, maxWidth);\n }\n else {\n this._context.fillText(text, x, y);\n }\n }\n measureText(text) {\n return this._context.measureText(text);\n }\n getImageData(a0, a1, a2, a3) {\n return this._context.getImageData(a0, a1, a2, a3);\n }\n lineTo(a0, a1) {\n this._context.lineTo(a0, a1);\n }\n moveTo(a0, a1) {\n this._context.moveTo(a0, a1);\n }\n rect(a0, a1, a2, a3) {\n this._context.rect(a0, a1, a2, a3);\n }\n putImageData(a0, a1, a2) {\n this._context.putImageData(a0, a1, a2);\n }\n quadraticCurveTo(a0, a1, a2, a3) {\n this._context.quadraticCurveTo(a0, a1, a2, a3);\n }\n restore() {\n this._context.restore();\n }\n rotate(a0) {\n this._context.rotate(a0);\n }\n save() {\n this._context.save();\n }\n scale(a0, a1) {\n this._context.scale(a0, a1);\n }\n setLineDash(a0) {\n if (this._context.setLineDash) {\n this._context.setLineDash(a0);\n }\n else if ('mozDash' in this._context) {\n this._context['mozDash'] = a0;\n }\n else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = a0;\n }\n }\n getLineDash() {\n return this._context.getLineDash();\n }\n setTransform(a0, a1, a2, a3, a4, a5) {\n this._context.setTransform(a0, a1, a2, a3, a4, a5);\n }\n stroke(path2d) {\n if (path2d) {\n this._context.stroke(path2d);\n }\n else {\n this._context.stroke();\n }\n }\n strokeText(a0, a1, a2, a3) {\n this._context.strokeText(a0, a1, a2, a3);\n }\n transform(a0, a1, a2, a3, a4, a5) {\n this._context.transform(a0, a1, a2, a3, a4, a5);\n }\n translate(a0, a1) {\n this._context.translate(a0, a1);\n }\n _enableTrace() {\n var that = this, len = CONTEXT_METHODS.length, origSetter = this.setAttr, n, args;\n var func = function (methodName) {\n var origMethod = that[methodName], ret;\n that[methodName] = function () {\n args = simplifyArray(Array.prototype.slice.call(arguments, 0));\n ret = origMethod.apply(that, arguments);\n that._trace({\n method: methodName,\n args: args,\n });\n return ret;\n };\n };\n for (n = 0; n < len; n++) {\n func(CONTEXT_METHODS[n]);\n }\n that.setAttr = function () {\n origSetter.apply(that, arguments);\n var prop = arguments[0];\n var val = arguments[1];\n if (prop === 'shadowOffsetX' ||\n prop === 'shadowOffsetY' ||\n prop === 'shadowBlur') {\n val = val / this.canvas.getPixelRatio();\n }\n that._trace({\n property: prop,\n val: val,\n });\n };\n }\n _applyGlobalCompositeOperation(node) {\n const op = node.attrs.globalCompositeOperation;\n var def = !op || op === 'source-over';\n if (!def) {\n this.setAttr('globalCompositeOperation', op);\n }\n }\n}\nCONTEXT_PROPERTIES.forEach(function (prop) {\n Object.defineProperty(Context.prototype, prop, {\n get() {\n return this._context[prop];\n },\n set(val) {\n this._context[prop] = val;\n },\n });\n});\nexport class SceneContext extends Context {\n constructor(canvas) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d');\n }\n _fillColor(shape) {\n var fill = shape.fill();\n this.setAttr('fillStyle', fill);\n shape._fillFunc(this);\n }\n _fillPattern(shape) {\n this.setAttr('fillStyle', shape._getFillPattern());\n shape._fillFunc(this);\n }\n _fillLinearGradient(shape) {\n var grd = shape._getLinearGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fillRadialGradient(shape) {\n const grd = shape._getRadialGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fill(shape) {\n const hasColor = shape.fill(), fillPriority = shape.getFillPriority();\n if (hasColor && fillPriority === 'color') {\n this._fillColor(shape);\n return;\n }\n const hasPattern = shape.getFillPatternImage();\n if (hasPattern && fillPriority === 'pattern') {\n this._fillPattern(shape);\n return;\n }\n const hasLinearGradient = shape.getFillLinearGradientColorStops();\n if (hasLinearGradient && fillPriority === 'linear-gradient') {\n this._fillLinearGradient(shape);\n return;\n }\n const hasRadialGradient = shape.getFillRadialGradientColorStops();\n if (hasRadialGradient && fillPriority === 'radial-gradient') {\n this._fillRadialGradient(shape);\n return;\n }\n if (hasColor) {\n this._fillColor(shape);\n }\n else if (hasPattern) {\n this._fillPattern(shape);\n }\n else if (hasLinearGradient) {\n this._fillLinearGradient(shape);\n }\n else if (hasRadialGradient) {\n this._fillRadialGradient(shape);\n }\n }\n _strokeLinearGradient(shape) {\n const start = shape.getStrokeLinearGradientStartPoint(), end = shape.getStrokeLinearGradientEndPoint(), colorStops = shape.getStrokeLinearGradientColorStops(), grd = this.createLinearGradient(start.x, start.y, end.x, end.y);\n if (colorStops) {\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n this.setAttr('strokeStyle', grd);\n }\n }\n _stroke(shape) {\n var dash = shape.dash(), strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n if (dash && shape.dashEnabled()) {\n this.setLineDash(dash);\n this.setAttr('lineDashOffset', shape.dashOffset());\n }\n this.setAttr('lineWidth', shape.strokeWidth());\n if (!shape.getShadowForStrokeEnabled()) {\n this.setAttr('shadowColor', 'rgba(0,0,0,0)');\n }\n var hasLinearGradient = shape.getStrokeLinearGradientColorStops();\n if (hasLinearGradient) {\n this._strokeLinearGradient(shape);\n }\n else {\n this.setAttr('strokeStyle', shape.stroke());\n }\n shape._strokeFunc(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n _applyShadow(shape) {\n var _a, _b, _c;\n var color = (_a = shape.getShadowRGBA()) !== null && _a !== void 0 ? _a : 'black', blur = (_b = shape.getShadowBlur()) !== null && _b !== void 0 ? _b : 5, offset = (_c = shape.getShadowOffset()) !== null && _c !== void 0 ? _c : {\n x: 0,\n y: 0,\n }, scale = shape.getAbsoluteScale(), ratio = this.canvas.getPixelRatio(), scaleX = scale.x * ratio, scaleY = scale.y * ratio;\n this.setAttr('shadowColor', color);\n this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));\n this.setAttr('shadowOffsetX', offset.x * scaleX);\n this.setAttr('shadowOffsetY', offset.y * scaleY);\n }\n}\nexport class HitContext extends Context {\n constructor(canvas) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently: true,\n });\n }\n _fill(shape) {\n this.save();\n this.setAttr('fillStyle', shape.colorKey);\n shape._fillFuncHit(this);\n this.restore();\n }\n strokeShape(shape) {\n if (shape.hasHitStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n if (shape.hasHitStroke()) {\n const strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (!strokeScaleEnabled) {\n this.save();\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n var hitStrokeWidth = shape.hitStrokeWidth();\n var strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;\n this.setAttr('lineWidth', strokeWidth);\n this.setAttr('strokeStyle', shape.colorKey);\n shape._strokeFuncHit(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n}\n","import { Util } from './Util.js';\nimport { SceneContext, HitContext } from './Context.js';\nimport { Konva } from './Global.js';\nimport { Factory } from './Factory.js';\nimport { getNumberValidator } from './Validators.js';\nvar _pixelRatio;\nfunction getDevicePixelRatio() {\n if (_pixelRatio) {\n return _pixelRatio;\n }\n var canvas = Util.createCanvasElement();\n var context = canvas.getContext('2d');\n _pixelRatio = (function () {\n var devicePixelRatio = Konva._global.devicePixelRatio || 1, backingStoreRatio = context.webkitBackingStorePixelRatio ||\n context.mozBackingStorePixelRatio ||\n context.msBackingStorePixelRatio ||\n context.oBackingStorePixelRatio ||\n context.backingStorePixelRatio ||\n 1;\n return devicePixelRatio / backingStoreRatio;\n })();\n Util.releaseCanvas(canvas);\n return _pixelRatio;\n}\nexport class Canvas {\n constructor(config) {\n this.pixelRatio = 1;\n this.width = 0;\n this.height = 0;\n this.isCache = false;\n var conf = config || {};\n var pixelRatio = conf.pixelRatio || Konva.pixelRatio || getDevicePixelRatio();\n this.pixelRatio = pixelRatio;\n this._canvas = Util.createCanvasElement();\n this._canvas.style.padding = '0';\n this._canvas.style.margin = '0';\n this._canvas.style.border = '0';\n this._canvas.style.background = 'transparent';\n this._canvas.style.position = 'absolute';\n this._canvas.style.top = '0';\n this._canvas.style.left = '0';\n }\n getContext() {\n return this.context;\n }\n getPixelRatio() {\n return this.pixelRatio;\n }\n setPixelRatio(pixelRatio) {\n var previousRatio = this.pixelRatio;\n this.pixelRatio = pixelRatio;\n this.setSize(this.getWidth() / previousRatio, this.getHeight() / previousRatio);\n }\n setWidth(width) {\n this.width = this._canvas.width = width * this.pixelRatio;\n this._canvas.style.width = width + 'px';\n var pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n setHeight(height) {\n this.height = this._canvas.height = height * this.pixelRatio;\n this._canvas.style.height = height + 'px';\n var pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n getWidth() {\n return this.width;\n }\n getHeight() {\n return this.height;\n }\n setSize(width, height) {\n this.setWidth(width || 0);\n this.setHeight(height || 0);\n }\n toDataURL(mimeType, quality) {\n try {\n return this._canvas.toDataURL(mimeType, quality);\n }\n catch (e) {\n try {\n return this._canvas.toDataURL();\n }\n catch (err) {\n Util.error('Unable to get data URL. ' +\n err.message +\n ' For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n return '';\n }\n }\n }\n}\nFactory.addGetterSetter(Canvas, 'pixelRatio', undefined, getNumberValidator());\nexport class SceneCanvas extends Canvas {\n constructor(config = { width: 0, height: 0 }) {\n super(config);\n this.context = new SceneContext(this);\n this.setSize(config.width, config.height);\n }\n}\nexport class HitCanvas extends Canvas {\n constructor(config = { width: 0, height: 0 }) {\n super(config);\n this.hitCanvas = true;\n this.context = new HitContext(this);\n this.setSize(config.width, config.height);\n }\n}\n","import { Konva } from './Global.js';\nimport { Util } from './Util.js';\nexport const DD = {\n get isDragging() {\n var flag = false;\n DD._dragElements.forEach((elem) => {\n if (elem.dragStatus === 'dragging') {\n flag = true;\n }\n });\n return flag;\n },\n justDragged: false,\n get node() {\n var node;\n DD._dragElements.forEach((elem) => {\n node = elem.node;\n });\n return node;\n },\n _dragElements: new Map(),\n _drag(evt) {\n const nodesToFireEvents = [];\n DD._dragElements.forEach((elem, key) => {\n const { node } = elem;\n const stage = node.getStage();\n stage.setPointersPositions(evt);\n if (elem.pointerId === undefined) {\n elem.pointerId = Util._getFirstPointerId(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus !== 'dragging') {\n var dragDistance = node.dragDistance();\n var distance = Math.max(Math.abs(pos.x - elem.startPointerPos.x), Math.abs(pos.y - elem.startPointerPos.y));\n if (distance < dragDistance) {\n return;\n }\n node.startDrag({ evt });\n if (!node.isDragging()) {\n return;\n }\n }\n node._setDragPosition(evt, elem);\n nodesToFireEvents.push(node);\n });\n nodesToFireEvents.forEach((node) => {\n node.fire('dragmove', {\n type: 'dragmove',\n target: node,\n evt: evt,\n }, true);\n });\n },\n _endDragBefore(evt) {\n const drawNodes = [];\n DD._dragElements.forEach((elem) => {\n const { node } = elem;\n const stage = node.getStage();\n if (evt) {\n stage.setPointersPositions(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus === 'dragging' || elem.dragStatus === 'stopped') {\n DD.justDragged = true;\n Konva._mouseListenClick = false;\n Konva._touchListenClick = false;\n Konva._pointerListenClick = false;\n elem.dragStatus = 'stopped';\n }\n const drawNode = elem.node.getLayer() ||\n (elem.node instanceof Konva['Stage'] && elem.node);\n if (drawNode && drawNodes.indexOf(drawNode) === -1) {\n drawNodes.push(drawNode);\n }\n });\n drawNodes.forEach((drawNode) => {\n drawNode.draw();\n });\n },\n _endDragAfter(evt) {\n DD._dragElements.forEach((elem, key) => {\n if (elem.dragStatus === 'stopped') {\n elem.node.fire('dragend', {\n type: 'dragend',\n target: elem.node,\n evt: evt,\n }, true);\n }\n if (elem.dragStatus !== 'dragging') {\n DD._dragElements.delete(key);\n }\n });\n },\n};\nif (Konva.isBrowser) {\n window.addEventListener('mouseup', DD._endDragBefore, true);\n window.addEventListener('touchend', DD._endDragBefore, true);\n window.addEventListener('mousemove', DD._drag);\n window.addEventListener('touchmove', DD._drag);\n window.addEventListener('mouseup', DD._endDragAfter, false);\n window.addEventListener('touchend', DD._endDragAfter, false);\n}\n","import { Util, Transform } from './Util.js';\nimport { Factory } from './Factory.js';\nimport { SceneCanvas, HitCanvas } from './Canvas.js';\nimport { Konva } from './Global.js';\nimport { DD } from './DragAndDrop.js';\nimport { getNumberValidator, getStringValidator, getBooleanValidator, } from './Validators.js';\nvar ABSOLUTE_OPACITY = 'absoluteOpacity', ALL_LISTENERS = 'allEventListeners', ABSOLUTE_TRANSFORM = 'absoluteTransform', ABSOLUTE_SCALE = 'absoluteScale', CANVAS = 'canvas', CHANGE = 'Change', CHILDREN = 'children', KONVA = 'konva', LISTENING = 'listening', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', SET = 'set', SHAPE = 'Shape', SPACE = ' ', STAGE = 'stage', TRANSFORM = 'transform', UPPER_STAGE = 'Stage', VISIBLE = 'visible', TRANSFORM_CHANGE_STR = [\n 'xChange.konva',\n 'yChange.konva',\n 'scaleXChange.konva',\n 'scaleYChange.konva',\n 'skewXChange.konva',\n 'skewYChange.konva',\n 'rotationChange.konva',\n 'offsetXChange.konva',\n 'offsetYChange.konva',\n 'transformsEnabledChange.konva',\n].join(SPACE);\nlet idCounter = 1;\nexport class Node {\n constructor(config) {\n this._id = idCounter++;\n this.eventListeners = {};\n this.attrs = {};\n this.index = 0;\n this._allEventListeners = null;\n this.parent = null;\n this._cache = new Map();\n this._attachedDepsListeners = new Map();\n this._lastPos = null;\n this._batchingTransformChange = false;\n this._needClearTransformCache = false;\n this._filterUpToDate = false;\n this._isUnderCache = false;\n this._dragEventId = null;\n this._shouldFireChangeEvents = false;\n this.setAttrs(config);\n this._shouldFireChangeEvents = true;\n }\n hasChildren() {\n return false;\n }\n _clearCache(attr) {\n if ((attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM) &&\n this._cache.get(attr)) {\n this._cache.get(attr).dirty = true;\n }\n else if (attr) {\n this._cache.delete(attr);\n }\n else {\n this._cache.clear();\n }\n }\n _getCache(attr, privateGetter) {\n var cache = this._cache.get(attr);\n var isTransform = attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM;\n var invalid = cache === undefined || (isTransform && cache.dirty === true);\n if (invalid) {\n cache = privateGetter.call(this);\n this._cache.set(attr, cache);\n }\n return cache;\n }\n _calculate(name, deps, getter) {\n if (!this._attachedDepsListeners.get(name)) {\n const depsString = deps.map((dep) => dep + 'Change.konva').join(SPACE);\n this.on(depsString, () => {\n this._clearCache(name);\n });\n this._attachedDepsListeners.set(name, true);\n }\n return this._getCache(name, getter);\n }\n _getCanvasCache() {\n return this._cache.get(CANVAS);\n }\n _clearSelfAndDescendantCache(attr) {\n this._clearCache(attr);\n if (attr === ABSOLUTE_TRANSFORM) {\n this.fire('absoluteTransformChange');\n }\n }\n clearCache() {\n if (this._cache.has(CANVAS)) {\n const { scene, filter, hit } = this._cache.get(CANVAS);\n Util.releaseCanvas(scene, filter, hit);\n this._cache.delete(CANVAS);\n }\n this._clearSelfAndDescendantCache();\n this._requestDraw();\n return this;\n }\n cache(config) {\n var conf = config || {};\n var rect = {};\n if (conf.x === undefined ||\n conf.y === undefined ||\n conf.width === undefined ||\n conf.height === undefined) {\n rect = this.getClientRect({\n skipTransform: true,\n relativeTo: this.getParent(),\n });\n }\n var width = Math.ceil(conf.width || rect.width), height = Math.ceil(conf.height || rect.height), pixelRatio = conf.pixelRatio, x = conf.x === undefined ? Math.floor(rect.x) : conf.x, y = conf.y === undefined ? Math.floor(rect.y) : conf.y, offset = conf.offset || 0, drawBorder = conf.drawBorder || false, hitCanvasPixelRatio = conf.hitCanvasPixelRatio || 1;\n if (!width || !height) {\n Util.error('Can not cache the node. Width or height of the node equals 0. Caching is skipped.');\n return;\n }\n width += offset * 2 + 1;\n height += offset * 2 + 1;\n x -= offset;\n y -= offset;\n var cachedSceneCanvas = new SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height,\n }), cachedFilterCanvas = new SceneCanvas({\n pixelRatio: pixelRatio,\n width: 0,\n height: 0,\n }), cachedHitCanvas = new HitCanvas({\n pixelRatio: hitCanvasPixelRatio,\n width: width,\n height: height,\n }), sceneContext = cachedSceneCanvas.getContext(), hitContext = cachedHitCanvas.getContext();\n cachedHitCanvas.isCache = true;\n cachedSceneCanvas.isCache = true;\n this._cache.delete(CANVAS);\n this._filterUpToDate = false;\n if (conf.imageSmoothingEnabled === false) {\n cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;\n }\n sceneContext.save();\n hitContext.save();\n sceneContext.translate(-x, -y);\n hitContext.translate(-x, -y);\n this._isUnderCache = true;\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this.drawScene(cachedSceneCanvas, this);\n this.drawHit(cachedHitCanvas, this);\n this._isUnderCache = false;\n sceneContext.restore();\n hitContext.restore();\n if (drawBorder) {\n sceneContext.save();\n sceneContext.beginPath();\n sceneContext.rect(0, 0, width, height);\n sceneContext.closePath();\n sceneContext.setAttr('strokeStyle', 'red');\n sceneContext.setAttr('lineWidth', 5);\n sceneContext.stroke();\n sceneContext.restore();\n }\n this._cache.set(CANVAS, {\n scene: cachedSceneCanvas,\n filter: cachedFilterCanvas,\n hit: cachedHitCanvas,\n x: x,\n y: y,\n });\n this._requestDraw();\n return this;\n }\n isCached() {\n return this._cache.has(CANVAS);\n }\n getClientRect(config) {\n throw new Error('abstract \"getClientRect\" method call');\n }\n _transformedRect(rect, top) {\n var points = [\n { x: rect.x, y: rect.y },\n { x: rect.x + rect.width, y: rect.y },\n { x: rect.x + rect.width, y: rect.y + rect.height },\n { x: rect.x, y: rect.y + rect.height },\n ];\n var minX, minY, maxX, maxY;\n var trans = this.getAbsoluteTransform(top);\n points.forEach(function (point) {\n var transformed = trans.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n _drawCachedSceneCanvas(context) {\n context.save();\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n const canvasCache = this._getCanvasCache();\n context.translate(canvasCache.x, canvasCache.y);\n var cacheCanvas = this._getCachedSceneCanvas();\n var ratio = cacheCanvas.pixelRatio;\n context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);\n context.restore();\n }\n _drawCachedHitCanvas(context) {\n var canvasCache = this._getCanvasCache(), hitCanvas = canvasCache.hit;\n context.save();\n context.translate(canvasCache.x, canvasCache.y);\n context.drawImage(hitCanvas._canvas, 0, 0, hitCanvas.width / hitCanvas.pixelRatio, hitCanvas.height / hitCanvas.pixelRatio);\n context.restore();\n }\n _getCachedSceneCanvas() {\n var filters = this.filters(), cachedCanvas = this._getCanvasCache(), sceneCanvas = cachedCanvas.scene, filterCanvas = cachedCanvas.filter, filterContext = filterCanvas.getContext(), len, imageData, n, filter;\n if (filters) {\n if (!this._filterUpToDate) {\n var ratio = sceneCanvas.pixelRatio;\n filterCanvas.setSize(sceneCanvas.width / sceneCanvas.pixelRatio, sceneCanvas.height / sceneCanvas.pixelRatio);\n try {\n len = filters.length;\n filterContext.clear();\n filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);\n imageData = filterContext.getImageData(0, 0, filterCanvas.getWidth(), filterCanvas.getHeight());\n for (n = 0; n < len; n++) {\n filter = filters[n];\n if (typeof filter !== 'function') {\n Util.error('Filter should be type of function, but got ' +\n typeof filter +\n ' instead. Please check correct filters');\n continue;\n }\n filter.call(this, imageData);\n filterContext.putImageData(imageData, 0, 0);\n }\n }\n catch (e) {\n Util.error('Unable to apply filter. ' +\n e.message +\n ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n }\n this._filterUpToDate = true;\n }\n return filterCanvas;\n }\n return sceneCanvas;\n }\n on(evtStr, handler) {\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (arguments.length === 3) {\n return this._delegate.apply(this, arguments);\n }\n var events = evtStr.split(SPACE), len = events.length, n, event, parts, baseEvent, name;\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1] || '';\n if (!this.eventListeners[baseEvent]) {\n this.eventListeners[baseEvent] = [];\n }\n this.eventListeners[baseEvent].push({\n name: name,\n handler: handler,\n });\n }\n return this;\n }\n off(evtStr, callback) {\n var events = (evtStr || '').split(SPACE), len = events.length, n, t, event, parts, baseEvent, name;\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (!evtStr) {\n for (t in this.eventListeners) {\n this._off(t);\n }\n }\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1];\n if (baseEvent) {\n if (this.eventListeners[baseEvent]) {\n this._off(baseEvent, name, callback);\n }\n }\n else {\n for (t in this.eventListeners) {\n this._off(t, name, callback);\n }\n }\n }\n return this;\n }\n dispatchEvent(evt) {\n var e = {\n target: this,\n type: evt.type,\n evt: evt,\n };\n this.fire(evt.type, e);\n return this;\n }\n addEventListener(type, handler) {\n this.on(type, function (evt) {\n handler.call(this, evt.evt);\n });\n return this;\n }\n removeEventListener(type) {\n this.off(type);\n return this;\n }\n _delegate(event, selector, handler) {\n var stopNode = this;\n this.on(event, function (evt) {\n var targets = evt.target.findAncestors(selector, true, stopNode);\n for (var i = 0; i < targets.length; i++) {\n evt = Util.cloneObject(evt);\n evt.currentTarget = targets[i];\n handler.call(targets[i], evt);\n }\n });\n }\n remove() {\n if (this.isDragging()) {\n this.stopDrag();\n }\n DD._dragElements.delete(this._id);\n this._remove();\n return this;\n }\n _clearCaches() {\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this._clearSelfAndDescendantCache(STAGE);\n this._clearSelfAndDescendantCache(VISIBLE);\n this._clearSelfAndDescendantCache(LISTENING);\n }\n _remove() {\n this._clearCaches();\n var parent = this.getParent();\n if (parent && parent.children) {\n parent.children.splice(this.index, 1);\n parent._setChildrenIndices();\n this.parent = null;\n }\n }\n destroy() {\n this.remove();\n this.clearCache();\n return this;\n }\n getAttr(attr) {\n var method = 'get' + Util._capitalize(attr);\n if (Util._isFunction(this[method])) {\n return this[method]();\n }\n return this.attrs[attr];\n }\n getAncestors() {\n var parent = this.getParent(), ancestors = [];\n while (parent) {\n ancestors.push(parent);\n parent = parent.getParent();\n }\n return ancestors;\n }\n getAttrs() {\n return this.attrs || {};\n }\n setAttrs(config) {\n this._batchTransformChanges(() => {\n var key, method;\n if (!config) {\n return this;\n }\n for (key in config) {\n if (key === CHILDREN) {\n continue;\n }\n method = SET + Util._capitalize(key);\n if (Util._isFunction(this[method])) {\n this[method](config[key]);\n }\n else {\n this._setAttr(key, config[key]);\n }\n }\n });\n return this;\n }\n isListening() {\n return this._getCache(LISTENING, this._isListening);\n }\n _isListening(relativeTo) {\n const listening = this.listening();\n if (!listening) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isListening(relativeTo);\n }\n else {\n return true;\n }\n }\n isVisible() {\n return this._getCache(VISIBLE, this._isVisible);\n }\n _isVisible(relativeTo) {\n const visible = this.visible();\n if (!visible) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isVisible(relativeTo);\n }\n else {\n return true;\n }\n }\n shouldDrawHit(top, skipDragCheck = false) {\n if (top) {\n return this._isVisible(top) && this._isListening(top);\n }\n var layer = this.getLayer();\n var layerUnderDrag = false;\n DD._dragElements.forEach((elem) => {\n if (elem.dragStatus !== 'dragging') {\n return;\n }\n else if (elem.node.nodeType === 'Stage') {\n layerUnderDrag = true;\n }\n else if (elem.node.getLayer() === layer) {\n layerUnderDrag = true;\n }\n });\n var dragSkip = !skipDragCheck && !Konva.hitOnDragEnabled && layerUnderDrag;\n return this.isListening() && this.isVisible() && !dragSkip;\n }\n show() {\n this.visible(true);\n return this;\n }\n hide() {\n this.visible(false);\n return this;\n }\n getZIndex() {\n return this.index || 0;\n }\n getAbsoluteZIndex() {\n var depth = this.getDepth(), that = this, index = 0, nodes, len, n, child;\n function addChildren(children) {\n nodes = [];\n len = children.length;\n for (n = 0; n < len; n++) {\n child = children[n];\n index++;\n if (child.nodeType !== SHAPE) {\n nodes = nodes.concat(child.getChildren().slice());\n }\n if (child._id === that._id) {\n n = len;\n }\n }\n if (nodes.length > 0 && nodes[0].getDepth() <= depth) {\n addChildren(nodes);\n }\n }\n if (that.nodeType !== UPPER_STAGE) {\n addChildren(that.getStage().getChildren());\n }\n return index;\n }\n getDepth() {\n var depth = 0, parent = this.parent;\n while (parent) {\n depth++;\n parent = parent.parent;\n }\n return depth;\n }\n _batchTransformChanges(func) {\n this._batchingTransformChange = true;\n func();\n this._batchingTransformChange = false;\n if (this._needClearTransformCache) {\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n }\n this._needClearTransformCache = false;\n }\n setPosition(pos) {\n this._batchTransformChanges(() => {\n this.x(pos.x);\n this.y(pos.y);\n });\n return this;\n }\n getPosition() {\n return {\n x: this.x(),\n y: this.y(),\n };\n }\n getRelativePointerPosition() {\n if (!this.getStage()) {\n return null;\n }\n var pos = this.getStage().getPointerPosition();\n if (!pos) {\n return null;\n }\n var transform = this.getAbsoluteTransform().copy();\n transform.invert();\n return transform.point(pos);\n }\n getAbsolutePosition(top) {\n let haveCachedParent = false;\n let parent = this.parent;\n while (parent) {\n if (parent.isCached()) {\n haveCachedParent = true;\n break;\n }\n parent = parent.parent;\n }\n if (haveCachedParent && !top) {\n top = true;\n }\n var absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(), absoluteTransform = new Transform(), offset = this.offset();\n absoluteTransform.m = absoluteMatrix.slice();\n absoluteTransform.translate(offset.x, offset.y);\n return absoluteTransform.getTranslation();\n }\n setAbsolutePosition(pos) {\n var origTrans = this._clearTransform();\n this.attrs.x = origTrans.x;\n this.attrs.y = origTrans.y;\n delete origTrans.x;\n delete origTrans.y;\n this._clearCache(TRANSFORM);\n var it = this._getAbsoluteTransform().copy();\n it.invert();\n it.translate(pos.x, pos.y);\n pos = {\n x: this.attrs.x + it.getTranslation().x,\n y: this.attrs.y + it.getTranslation().y,\n };\n this._setTransform(origTrans);\n this.setPosition({ x: pos.x, y: pos.y });\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n return this;\n }\n _setTransform(trans) {\n var key;\n for (key in trans) {\n this.attrs[key] = trans[key];\n }\n }\n _clearTransform() {\n var trans = {\n x: this.x(),\n y: this.y(),\n rotation: this.rotation(),\n scaleX: this.scaleX(),\n scaleY: this.scaleY(),\n offsetX: this.offsetX(),\n offsetY: this.offsetY(),\n skewX: this.skewX(),\n skewY: this.skewY(),\n };\n this.attrs.x = 0;\n this.attrs.y = 0;\n this.attrs.rotation = 0;\n this.attrs.scaleX = 1;\n this.attrs.scaleY = 1;\n this.attrs.offsetX = 0;\n this.attrs.offsetY = 0;\n this.attrs.skewX = 0;\n this.attrs.skewY = 0;\n return trans;\n }\n move(change) {\n var changeX = change.x, changeY = change.y, x = this.x(), y = this.y();\n if (changeX !== undefined) {\n x += changeX;\n }\n if (changeY !== undefined) {\n y += changeY;\n }\n this.setPosition({ x: x, y: y });\n return this;\n }\n _eachAncestorReverse(func, top) {\n var family = [], parent = this.getParent(), len, n;\n if (top && top._id === this._id) {\n return;\n }\n family.unshift(this);\n while (parent && (!top || parent._id !== top._id)) {\n family.unshift(parent);\n parent = parent.parent;\n }\n len = family.length;\n for (n = 0; n < len; n++) {\n func(family[n]);\n }\n }\n rotate(theta) {\n this.rotation(this.rotation() + theta);\n return this;\n }\n moveToTop() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveToTop function is ignored.');\n return false;\n }\n var index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.push(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveUp() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveUp function is ignored.');\n return false;\n }\n var index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index + 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveDown() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveDown function is ignored.');\n return false;\n }\n var index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index - 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveToBottom function is ignored.');\n return false;\n }\n var index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.unshift(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n setZIndex(zIndex) {\n if (!this.parent) {\n Util.warn('Node has no parent. zIndex parameter is ignored.');\n return this;\n }\n if (zIndex < 0 || zIndex >= this.parent.children.length) {\n Util.warn('Unexpected value ' +\n zIndex +\n ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +\n (this.parent.children.length - 1) +\n '.');\n }\n var index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.splice(zIndex, 0, this);\n this.parent._setChildrenIndices();\n return this;\n }\n getAbsoluteOpacity() {\n return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);\n }\n _getAbsoluteOpacity() {\n var absOpacity = this.opacity();\n var parent = this.getParent();\n if (parent && !parent._isUnderCache) {\n absOpacity *= parent.getAbsoluteOpacity();\n }\n return absOpacity;\n }\n moveTo(newContainer) {\n if (this.getParent() !== newContainer) {\n this._remove();\n newContainer.add(this);\n }\n return this;\n }\n toObject() {\n var obj = {}, attrs = this.getAttrs(), key, val, getter, defaultValue, nonPlainObject;\n obj.attrs = {};\n for (key in attrs) {\n val = attrs[key];\n nonPlainObject =\n Util.isObject(val) && !Util._isPlainObject(val) && !Util._isArray(val);\n if (nonPlainObject) {\n continue;\n }\n getter = typeof this[key] === 'function' && this[key];\n delete attrs[key];\n defaultValue = getter ? getter.call(this) : null;\n attrs[key] = val;\n if (defaultValue !== val) {\n obj.attrs[key] = val;\n }\n }\n obj.className = this.getClassName();\n return Util._prepareToStringify(obj);\n }\n toJSON() {\n return JSON.stringify(this.toObject());\n }\n getParent() {\n return this.parent;\n }\n findAncestors(selector, includeSelf, stopNode) {\n var res = [];\n if (includeSelf && this._isMatch(selector)) {\n res.push(this);\n }\n var ancestor = this.parent;\n while (ancestor) {\n if (ancestor === stopNode) {\n return res;\n }\n if (ancestor._isMatch(selector)) {\n res.push(ancestor);\n }\n ancestor = ancestor.parent;\n }\n return res;\n }\n isAncestorOf(node) {\n return false;\n }\n findAncestor(selector, includeSelf, stopNode) {\n return this.findAncestors(selector, includeSelf, stopNode)[0];\n }\n _isMatch(selector) {\n if (!selector) {\n return false;\n }\n if (typeof selector === 'function') {\n return selector(this);\n }\n var selectorArr = selector.replace(/ /g, '').split(','), len = selectorArr.length, n, sel;\n for (n = 0; n < len; n++) {\n sel = selectorArr[n];\n if (!Util.isValidSelector(sel)) {\n Util.warn('Selector \"' +\n sel +\n '\" is invalid. Allowed selectors examples are \"#foo\", \".bar\" or \"Group\".');\n Util.warn('If you have a custom shape with such className, please change it to start with upper letter like \"Triangle\".');\n Util.warn('Konva is awesome, right?');\n }\n if (sel.charAt(0) === '#') {\n if (this.id() === sel.slice(1)) {\n return true;\n }\n }\n else if (sel.charAt(0) === '.') {\n if (this.hasName(sel.slice(1))) {\n return true;\n }\n }\n else if (this.className === sel || this.nodeType === sel) {\n return true;\n }\n }\n return false;\n }\n getLayer() {\n var parent = this.getParent();\n return parent ? parent.getLayer() : null;\n }\n getStage() {\n return this._getCache(STAGE, this._getStage);\n }\n _getStage() {\n var parent = this.getParent();\n if (parent) {\n return parent.getStage();\n }\n else {\n return undefined;\n }\n }\n fire(eventType, evt = {}, bubble) {\n evt.target = evt.target || this;\n if (bubble) {\n this._fireAndBubble(eventType, evt);\n }\n else {\n this._fire(eventType, evt);\n }\n return this;\n }\n getAbsoluteTransform(top) {\n if (top) {\n return this._getAbsoluteTransform(top);\n }\n else {\n return this._getCache(ABSOLUTE_TRANSFORM, this._getAbsoluteTransform);\n }\n }\n _getAbsoluteTransform(top) {\n var at;\n if (top) {\n at = new Transform();\n this._eachAncestorReverse(function (node) {\n var transformsEnabled = node.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(node.getTransform());\n }\n else if (transformsEnabled === 'position') {\n at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());\n }\n }, top);\n return at;\n }\n else {\n at = this._cache.get(ABSOLUTE_TRANSFORM) || new Transform();\n if (this.parent) {\n this.parent.getAbsoluteTransform().copyInto(at);\n }\n else {\n at.reset();\n }\n var transformsEnabled = this.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(this.getTransform());\n }\n else if (transformsEnabled === 'position') {\n const x = this.attrs.x || 0;\n const y = this.attrs.y || 0;\n const offsetX = this.attrs.offsetX || 0;\n const offsetY = this.attrs.offsetY || 0;\n at.translate(x - offsetX, y - offsetY);\n }\n at.dirty = false;\n return at;\n }\n }\n getAbsoluteScale(top) {\n var parent = this;\n while (parent) {\n if (parent._isUnderCache) {\n top = parent;\n }\n parent = parent.getParent();\n }\n const transform = this.getAbsoluteTransform(top);\n const attrs = transform.decompose();\n return {\n x: attrs.scaleX,\n y: attrs.scaleY,\n };\n }\n getAbsoluteRotation() {\n return this.getAbsoluteTransform().decompose().rotation;\n }\n getTransform() {\n return this._getCache(TRANSFORM, this._getTransform);\n }\n _getTransform() {\n var _a, _b;\n var m = this._cache.get(TRANSFORM) || new Transform();\n m.reset();\n var x = this.x(), y = this.y(), rotation = Konva.getAngle(this.rotation()), scaleX = (_a = this.attrs.scaleX) !== null && _a !== void 0 ? _a : 1, scaleY = (_b = this.attrs.scaleY) !== null && _b !== void 0 ? _b : 1, skewX = this.attrs.skewX || 0, skewY = this.attrs.skewY || 0, offsetX = this.attrs.offsetX || 0, offsetY = this.attrs.offsetY || 0;\n if (x !== 0 || y !== 0) {\n m.translate(x, y);\n }\n if (rotation !== 0) {\n m.rotate(rotation);\n }\n if (skewX !== 0 || skewY !== 0) {\n m.skew(skewX, skewY);\n }\n if (scaleX !== 1 || scaleY !== 1) {\n m.scale(scaleX, scaleY);\n }\n if (offsetX !== 0 || offsetY !== 0) {\n m.translate(-1 * offsetX, -1 * offsetY);\n }\n m.dirty = false;\n return m;\n }\n clone(obj) {\n var attrs = Util.cloneObject(this.attrs), key, allListeners, len, n, listener;\n for (key in obj) {\n attrs[key] = obj[key];\n }\n var node = new this.constructor(attrs);\n for (key in this.eventListeners) {\n allListeners = this.eventListeners[key];\n len = allListeners.length;\n for (n = 0; n < len; n++) {\n listener = allListeners[n];\n if (listener.name.indexOf(KONVA) < 0) {\n if (!node.eventListeners[key]) {\n node.eventListeners[key] = [];\n }\n node.eventListeners[key].push(listener);\n }\n }\n }\n return node;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n var box = this.getClientRect();\n var stage = this.getStage(), x = config.x !== undefined ? config.x : Math.floor(box.x), y = config.y !== undefined ? config.y : Math.floor(box.y), pixelRatio = config.pixelRatio || 1, canvas = new SceneCanvas({\n width: config.width || Math.ceil(box.width) || (stage ? stage.width() : 0),\n height: config.height ||\n Math.ceil(box.height) ||\n (stage ? stage.height() : 0),\n pixelRatio: pixelRatio,\n }), context = canvas.getContext();\n if (config.imageSmoothingEnabled === false) {\n context._context.imageSmoothingEnabled = false;\n }\n context.save();\n if (x || y) {\n context.translate(-1 * x, -1 * y);\n }\n this.drawScene(canvas);\n context.restore();\n return canvas;\n }\n toCanvas(config) {\n return this._toKonvaCanvas(config)._canvas;\n }\n toDataURL(config) {\n config = config || {};\n var mimeType = config.mimeType || null, quality = config.quality || null;\n var url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);\n if (config.callback) {\n config.callback(url);\n }\n return url;\n }\n toImage(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n Util._urlToImage(this.toDataURL(config), function (img) {\n resolve(img);\n callback === null || callback === void 0 ? void 0 : callback(img);\n });\n }\n catch (err) {\n reject(err);\n }\n });\n }\n toBlob(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n this.toCanvas(config).toBlob((blob) => {\n resolve(blob);\n callback === null || callback === void 0 ? void 0 : callback(blob);\n });\n }\n catch (err) {\n reject(err);\n }\n });\n }\n setSize(size) {\n this.width(size.width);\n this.height(size.height);\n return this;\n }\n getSize() {\n return {\n width: this.width(),\n height: this.height(),\n };\n }\n getClassName() {\n return this.className || this.nodeType;\n }\n getType() {\n return this.nodeType;\n }\n getDragDistance() {\n if (this.attrs.dragDistance !== undefined) {\n return this.attrs.dragDistance;\n }\n else if (this.parent) {\n return this.parent.getDragDistance();\n }\n else {\n return Konva.dragDistance;\n }\n }\n _off(type, name, callback) {\n var evtListeners = this.eventListeners[type], i, evtName, handler;\n for (i = 0; i < evtListeners.length; i++) {\n evtName = evtListeners[i].name;\n handler = evtListeners[i].handler;\n if ((evtName !== 'konva' || name === 'konva') &&\n (!name || evtName === name) &&\n (!callback || callback === handler)) {\n evtListeners.splice(i, 1);\n if (evtListeners.length === 0) {\n delete this.eventListeners[type];\n break;\n }\n i--;\n }\n }\n }\n _fireChangeEvent(attr, oldVal, newVal) {\n this._fire(attr + CHANGE, {\n oldVal: oldVal,\n newVal: newVal,\n });\n }\n addName(name) {\n if (!this.hasName(name)) {\n var oldName = this.name();\n var newName = oldName ? oldName + ' ' + name : name;\n this.name(newName);\n }\n return this;\n }\n hasName(name) {\n if (!name) {\n return false;\n }\n const fullName = this.name();\n if (!fullName) {\n return false;\n }\n var names = (fullName || '').split(/\\s/g);\n return names.indexOf(name) !== -1;\n }\n removeName(name) {\n var names = (this.name() || '').split(/\\s/g);\n var index = names.indexOf(name);\n if (index !== -1) {\n names.splice(index, 1);\n this.name(names.join(' '));\n }\n return this;\n }\n setAttr(attr, val) {\n var func = this[SET + Util._capitalize(attr)];\n if (Util._isFunction(func)) {\n func.call(this, val);\n }\n else {\n this._setAttr(attr, val);\n }\n return this;\n }\n _requestDraw() {\n if (Konva.autoDrawEnabled) {\n const drawNode = this.getLayer() || this.getStage();\n drawNode === null || drawNode === void 0 ? void 0 : drawNode.batchDraw();\n }\n }\n _setAttr(key, val) {\n var oldVal = this.attrs[key];\n if (oldVal === val && !Util.isObject(val)) {\n return;\n }\n if (val === undefined || val === null) {\n delete this.attrs[key];\n }\n else {\n this.attrs[key] = val;\n }\n if (this._shouldFireChangeEvents) {\n this._fireChangeEvent(key, oldVal, val);\n }\n this._requestDraw();\n }\n _setComponentAttr(key, component, val) {\n var oldVal;\n if (val !== undefined) {\n oldVal = this.attrs[key];\n if (!oldVal) {\n this.attrs[key] = this.getAttr(key);\n }\n this.attrs[key][component] = val;\n this._fireChangeEvent(key, oldVal, val);\n }\n }\n _fireAndBubble(eventType, evt, compareShape) {\n if (evt && this.nodeType === SHAPE) {\n evt.target = this;\n }\n var shouldStop = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&\n ((compareShape &&\n (this === compareShape ||\n (this.isAncestorOf && this.isAncestorOf(compareShape)))) ||\n (this.nodeType === 'Stage' && !compareShape));\n if (!shouldStop) {\n this._fire(eventType, evt);\n var stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&\n compareShape &&\n compareShape.isAncestorOf &&\n compareShape.isAncestorOf(this) &&\n !compareShape.isAncestorOf(this.parent);\n if (((evt && !evt.cancelBubble) || !evt) &&\n this.parent &&\n this.parent.isListening() &&\n !stopBubble) {\n if (compareShape && compareShape.parent) {\n this._fireAndBubble.call(this.parent, eventType, evt, compareShape);\n }\n else {\n this._fireAndBubble.call(this.parent, eventType, evt);\n }\n }\n }\n }\n _getProtoListeners(eventType) {\n let listeners = this._cache.get(ALL_LISTENERS);\n if (!listeners) {\n listeners = {};\n let obj = Object.getPrototypeOf(this);\n while (obj) {\n if (!obj.eventListeners) {\n obj = Object.getPrototypeOf(obj);\n continue;\n }\n for (var event in obj.eventListeners) {\n const newEvents = obj.eventListeners[event];\n const oldEvents = listeners[event] || [];\n listeners[event] = newEvents.concat(oldEvents);\n }\n obj = Object.getPrototypeOf(obj);\n }\n this._cache.set(ALL_LISTENERS, listeners);\n }\n return listeners[eventType];\n }\n _fire(eventType, evt) {\n evt = evt || {};\n evt.currentTarget = this;\n evt.type = eventType;\n const topListeners = this._getProtoListeners(eventType);\n if (topListeners) {\n for (var i = 0; i < topListeners.length; i++) {\n topListeners[i].handler.call(this, evt);\n }\n }\n const selfListeners = this.eventListeners[eventType];\n if (selfListeners) {\n for (var i = 0; i < selfListeners.length; i++) {\n selfListeners[i].handler.call(this, evt);\n }\n }\n }\n draw() {\n this.drawScene();\n this.drawHit();\n return this;\n }\n _createDragElement(evt) {\n var pointerId = evt ? evt.pointerId : undefined;\n var stage = this.getStage();\n var ap = this.getAbsolutePosition();\n var pos = stage._getPointerById(pointerId) ||\n stage._changedPointerPositions[0] ||\n ap;\n DD._dragElements.set(this._id, {\n node: this,\n startPointerPos: pos,\n offset: {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n },\n dragStatus: 'ready',\n pointerId,\n });\n }\n startDrag(evt, bubbleEvent = true) {\n if (!DD._dragElements.has(this._id)) {\n this._createDragElement(evt);\n }\n const elem = DD._dragElements.get(this._id);\n elem.dragStatus = 'dragging';\n this.fire('dragstart', {\n type: 'dragstart',\n target: this,\n evt: evt && evt.evt,\n }, bubbleEvent);\n }\n _setDragPosition(evt, elem) {\n const pos = this.getStage()._getPointerById(elem.pointerId);\n if (!pos) {\n return;\n }\n var newNodePos = {\n x: pos.x - elem.offset.x,\n y: pos.y - elem.offset.y,\n };\n var dbf = this.dragBoundFunc();\n if (dbf !== undefined) {\n const bounded = dbf.call(this, newNodePos, evt);\n if (!bounded) {\n Util.warn('dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.');\n }\n else {\n newNodePos = bounded;\n }\n }\n if (!this._lastPos ||\n this._lastPos.x !== newNodePos.x ||\n this._lastPos.y !== newNodePos.y) {\n this.setAbsolutePosition(newNodePos);\n this._requestDraw();\n }\n this._lastPos = newNodePos;\n }\n stopDrag(evt) {\n const elem = DD._dragElements.get(this._id);\n if (elem) {\n elem.dragStatus = 'stopped';\n }\n DD._endDragBefore(evt);\n DD._endDragAfter(evt);\n }\n setDraggable(draggable) {\n this._setAttr('draggable', draggable);\n this._dragChange();\n }\n isDragging() {\n const elem = DD._dragElements.get(this._id);\n return elem ? elem.dragStatus === 'dragging' : false;\n }\n _listenDrag() {\n this._dragCleanup();\n this.on('mousedown.konva touchstart.konva', function (evt) {\n var shouldCheckButton = evt.evt['button'] !== undefined;\n var canDrag = !shouldCheckButton || Konva.dragButtons.indexOf(evt.evt['button']) >= 0;\n if (!canDrag) {\n return;\n }\n if (this.isDragging()) {\n return;\n }\n var hasDraggingChild = false;\n DD._dragElements.forEach((elem) => {\n if (this.isAncestorOf(elem.node)) {\n hasDraggingChild = true;\n }\n });\n if (!hasDraggingChild) {\n this._createDragElement(evt);\n }\n });\n }\n _dragChange() {\n if (this.attrs.draggable) {\n this._listenDrag();\n }\n else {\n this._dragCleanup();\n var stage = this.getStage();\n if (!stage) {\n return;\n }\n const dragElement = DD._dragElements.get(this._id);\n const isDragging = dragElement && dragElement.dragStatus === 'dragging';\n const isReady = dragElement && dragElement.dragStatus === 'ready';\n if (isDragging) {\n this.stopDrag();\n }\n else if (isReady) {\n DD._dragElements.delete(this._id);\n }\n }\n }\n _dragCleanup() {\n this.off('mousedown.konva');\n this.off('touchstart.konva');\n }\n isClientRectOnScreen(margin = { x: 0, y: 0 }) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const screenRect = {\n x: -margin.x,\n y: -margin.y,\n width: stage.width() + 2 * margin.x,\n height: stage.height() + 2 * margin.y,\n };\n return Util.haveIntersection(screenRect, this.getClientRect());\n }\n static create(data, container) {\n if (Util._isString(data)) {\n data = JSON.parse(data);\n }\n return this._createNode(data, container);\n }\n static _createNode(obj, container) {\n var className = Node.prototype.getClassName.call(obj), children = obj.children, no, len, n;\n if (container) {\n obj.attrs.container = container;\n }\n if (!Konva[className]) {\n Util.warn('Can not find a node with class name \"' +\n className +\n '\". Fallback to \"Shape\".');\n className = 'Shape';\n }\n const Class = Konva[className];\n no = new Class(obj.attrs);\n if (children) {\n len = children.length;\n for (n = 0; n < len; n++) {\n no.add(Node._createNode(children[n]));\n }\n }\n return no;\n }\n}\nNode.prototype.nodeType = 'Node';\nNode.prototype._attrsAffectingSize = [];\nNode.prototype.eventListeners = {};\nNode.prototype.on.call(Node.prototype, TRANSFORM_CHANGE_STR, function () {\n if (this._batchingTransformChange) {\n this._needClearTransformCache = true;\n return;\n }\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n});\nNode.prototype.on.call(Node.prototype, 'visibleChange.konva', function () {\n this._clearSelfAndDescendantCache(VISIBLE);\n});\nNode.prototype.on.call(Node.prototype, 'listeningChange.konva', function () {\n this._clearSelfAndDescendantCache(LISTENING);\n});\nNode.prototype.on.call(Node.prototype, 'opacityChange.konva', function () {\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n});\nconst addGetterSetter = Factory.addGetterSetter;\naddGetterSetter(Node, 'zIndex');\naddGetterSetter(Node, 'absolutePosition');\naddGetterSetter(Node, 'position');\naddGetterSetter(Node, 'x', 0, getNumberValidator());\naddGetterSetter(Node, 'y', 0, getNumberValidator());\naddGetterSetter(Node, 'globalCompositeOperation', 'source-over', getStringValidator());\naddGetterSetter(Node, 'opacity', 1, getNumberValidator());\naddGetterSetter(Node, 'name', '', getStringValidator());\naddGetterSetter(Node, 'id', '', getStringValidator());\naddGetterSetter(Node, 'rotation', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);\naddGetterSetter(Node, 'scaleX', 1, getNumberValidator());\naddGetterSetter(Node, 'scaleY', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);\naddGetterSetter(Node, 'skewX', 0, getNumberValidator());\naddGetterSetter(Node, 'skewY', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);\naddGetterSetter(Node, 'offsetX', 0, getNumberValidator());\naddGetterSetter(Node, 'offsetY', 0, getNumberValidator());\naddGetterSetter(Node, 'dragDistance', null, getNumberValidator());\naddGetterSetter(Node, 'width', 0, getNumberValidator());\naddGetterSetter(Node, 'height', 0, getNumberValidator());\naddGetterSetter(Node, 'listening', true, getBooleanValidator());\naddGetterSetter(Node, 'preventDefault', true, getBooleanValidator());\naddGetterSetter(Node, 'filters', null, function (val) {\n this._filterUpToDate = false;\n return val;\n});\naddGetterSetter(Node, 'visible', true, getBooleanValidator());\naddGetterSetter(Node, 'transformsEnabled', 'all', getStringValidator());\naddGetterSetter(Node, 'size');\naddGetterSetter(Node, 'dragBoundFunc');\naddGetterSetter(Node, 'draggable', false, getBooleanValidator());\nFactory.backCompat(Node, {\n rotateDeg: 'rotate',\n setRotationDeg: 'setRotation',\n getRotationDeg: 'getRotation',\n});\n","import { Factory } from './Factory.js';\nimport { Node } from './Node.js';\nimport { getNumberValidator } from './Validators.js';\nexport class Container extends Node {\n constructor() {\n super(...arguments);\n this.children = [];\n }\n getChildren(filterFunc) {\n if (!filterFunc) {\n return this.children || [];\n }\n const children = this.children || [];\n var results = [];\n children.forEach(function (child) {\n if (filterFunc(child)) {\n results.push(child);\n }\n });\n return results;\n }\n hasChildren() {\n return this.getChildren().length > 0;\n }\n removeChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.remove();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n destroyChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.destroy();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n add(...children) {\n if (children.length === 0) {\n return this;\n }\n if (children.length > 1) {\n for (var i = 0; i < children.length; i++) {\n this.add(children[i]);\n }\n return this;\n }\n const child = children[0];\n if (child.getParent()) {\n child.moveTo(this);\n return this;\n }\n this._validateAdd(child);\n child.index = this.getChildren().length;\n child.parent = this;\n child._clearCaches();\n this.getChildren().push(child);\n this._fire('add', {\n child: child,\n });\n this._requestDraw();\n return this;\n }\n destroy() {\n if (this.hasChildren()) {\n this.destroyChildren();\n }\n super.destroy();\n return this;\n }\n find(selector) {\n return this._generalFind(selector, false);\n }\n findOne(selector) {\n var result = this._generalFind(selector, true);\n return result.length > 0 ? result[0] : undefined;\n }\n _generalFind(selector, findOne) {\n var retArr = [];\n this._descendants((node) => {\n const valid = node._isMatch(selector);\n if (valid) {\n retArr.push(node);\n }\n if (valid && findOne) {\n return true;\n }\n return false;\n });\n return retArr;\n }\n _descendants(fn) {\n let shouldStop = false;\n const children = this.getChildren();\n for (const child of children) {\n shouldStop = fn(child);\n if (shouldStop) {\n return true;\n }\n if (!child.hasChildren()) {\n continue;\n }\n shouldStop = child._descendants(fn);\n if (shouldStop) {\n return true;\n }\n }\n return false;\n }\n toObject() {\n var obj = Node.prototype.toObject.call(this);\n obj.children = [];\n this.getChildren().forEach((child) => {\n obj.children.push(child.toObject());\n });\n return obj;\n }\n isAncestorOf(node) {\n var parent = node.getParent();\n while (parent) {\n if (parent._id === this._id) {\n return true;\n }\n parent = parent.getParent();\n }\n return false;\n }\n clone(obj) {\n var node = Node.prototype.clone.call(this, obj);\n this.getChildren().forEach(function (no) {\n node.add(no.clone());\n });\n return node;\n }\n getAllIntersections(pos) {\n var arr = [];\n this.find('Shape').forEach(function (shape) {\n if (shape.isVisible() && shape.intersects(pos)) {\n arr.push(shape);\n }\n });\n return arr;\n }\n _clearSelfAndDescendantCache(attr) {\n var _a;\n super._clearSelfAndDescendantCache(attr);\n if (this.isCached()) {\n return;\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (node) {\n node._clearSelfAndDescendantCache(attr);\n });\n }\n _setChildrenIndices() {\n var _a;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child, n) {\n child.index = n;\n });\n this._requestDraw();\n }\n drawScene(can, top) {\n var layer = this.getLayer(), canvas = can || (layer && layer.getCanvas()), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;\n var caching = canvas && canvas.isCache;\n if (!this.isVisible() && !caching) {\n return this;\n }\n if (cachedSceneCanvas) {\n context.save();\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawScene', canvas, top);\n }\n return this;\n }\n drawHit(can, top) {\n if (!this.shouldDrawHit(top)) {\n return this;\n }\n var layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (cachedHitCanvas) {\n context.save();\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawHit', canvas, top);\n }\n return this;\n }\n _drawChildren(drawMethod, canvas, top) {\n var _a;\n var context = canvas && canvas.getContext(), clipWidth = this.clipWidth(), clipHeight = this.clipHeight(), clipFunc = this.clipFunc(), hasClip = (clipWidth && clipHeight) || clipFunc;\n const selfCache = top === this;\n if (hasClip) {\n context.save();\n var transform = this.getAbsoluteTransform(top);\n var m = transform.getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n context.beginPath();\n if (clipFunc) {\n clipFunc.call(this, context, this);\n }\n else {\n var clipX = this.clipX();\n var clipY = this.clipY();\n context.rect(clipX, clipY, clipWidth, clipHeight);\n }\n context.clip();\n m = transform.copy().invert().getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n var hasComposition = !selfCache &&\n this.globalCompositeOperation() !== 'source-over' &&\n drawMethod === 'drawScene';\n if (hasComposition) {\n context.save();\n context._applyGlobalCompositeOperation(this);\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n child[drawMethod](canvas, top);\n });\n if (hasComposition) {\n context.restore();\n }\n if (hasClip) {\n context.restore();\n }\n }\n getClientRect(config) {\n var _a;\n config = config || {};\n var skipTransform = config.skipTransform;\n var relativeTo = config.relativeTo;\n var minX, minY, maxX, maxY;\n var selfRect = {\n x: Infinity,\n y: Infinity,\n width: 0,\n height: 0,\n };\n var that = this;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n if (!child.visible()) {\n return;\n }\n var rect = child.getClientRect({\n relativeTo: that,\n skipShadow: config.skipShadow,\n skipStroke: config.skipStroke,\n });\n if (rect.width === 0 && rect.height === 0) {\n return;\n }\n if (minX === undefined) {\n minX = rect.x;\n minY = rect.y;\n maxX = rect.x + rect.width;\n maxY = rect.y + rect.height;\n }\n else {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n });\n var shapes = this.find('Shape');\n var hasVisible = false;\n for (var i = 0; i < shapes.length; i++) {\n var shape = shapes[i];\n if (shape._isVisible(this)) {\n hasVisible = true;\n break;\n }\n }\n if (hasVisible && minX !== undefined) {\n selfRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n else {\n selfRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n if (!skipTransform) {\n return this._transformedRect(selfRect, relativeTo);\n }\n return selfRect;\n }\n}\nFactory.addComponentsGetterSetter(Container, 'clip', [\n 'x',\n 'y',\n 'width',\n 'height',\n]);\nFactory.addGetterSetter(Container, 'clipX', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipY', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipWidth', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipHeight', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipFunc');\n","import { Konva } from './Global.js';\nconst Captures = new Map();\nconst SUPPORT_POINTER_EVENTS = Konva._global['PointerEvent'] !== undefined;\nexport function getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nexport function createEvent(evt) {\n return {\n evt,\n pointerId: evt.pointerId,\n };\n}\nexport function hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nexport function setPointerCapture(pointerId, shape) {\n releaseCapture(pointerId);\n const stage = shape.getStage();\n if (!stage)\n return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nexport function releaseCapture(pointerId, target) {\n const shape = Captures.get(pointerId);\n if (!shape)\n return;\n const stage = shape.getStage();\n if (stage && stage.content) {\n }\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\n","import { Util } from './Util.js';\nimport { Factory } from './Factory.js';\nimport { Container } from './Container.js';\nimport { Konva } from './Global.js';\nimport { SceneCanvas, HitCanvas } from './Canvas.js';\nimport { DD } from './DragAndDrop.js';\nimport { _registerNode } from './Global.js';\nimport * as PointerEvents from './PointerEvents.js';\nvar STAGE = 'Stage', STRING = 'string', PX = 'px', MOUSEOUT = 'mouseout', MOUSELEAVE = 'mouseleave', MOUSEOVER = 'mouseover', MOUSEENTER = 'mouseenter', MOUSEMOVE = 'mousemove', MOUSEDOWN = 'mousedown', MOUSEUP = 'mouseup', POINTERMOVE = 'pointermove', POINTERDOWN = 'pointerdown', POINTERUP = 'pointerup', POINTERCANCEL = 'pointercancel', LOSTPOINTERCAPTURE = 'lostpointercapture', POINTEROUT = 'pointerout', POINTERLEAVE = 'pointerleave', POINTEROVER = 'pointerover', POINTERENTER = 'pointerenter', CONTEXTMENU = 'contextmenu', TOUCHSTART = 'touchstart', TOUCHEND = 'touchend', TOUCHMOVE = 'touchmove', TOUCHCANCEL = 'touchcancel', WHEEL = 'wheel', MAX_LAYERS_NUMBER = 5, EVENTS = [\n [MOUSEENTER, '_pointerenter'],\n [MOUSEDOWN, '_pointerdown'],\n [MOUSEMOVE, '_pointermove'],\n [MOUSEUP, '_pointerup'],\n [MOUSELEAVE, '_pointerleave'],\n [TOUCHSTART, '_pointerdown'],\n [TOUCHMOVE, '_pointermove'],\n [TOUCHEND, '_pointerup'],\n [TOUCHCANCEL, '_pointercancel'],\n [MOUSEOVER, '_pointerover'],\n [WHEEL, '_wheel'],\n [CONTEXTMENU, '_contextmenu'],\n [POINTERDOWN, '_pointerdown'],\n [POINTERMOVE, '_pointermove'],\n [POINTERUP, '_pointerup'],\n [POINTERCANCEL, '_pointercancel'],\n [LOSTPOINTERCAPTURE, '_lostpointercapture'],\n];\nconst EVENTS_MAP = {\n mouse: {\n [POINTEROUT]: MOUSEOUT,\n [POINTERLEAVE]: MOUSELEAVE,\n [POINTEROVER]: MOUSEOVER,\n [POINTERENTER]: MOUSEENTER,\n [POINTERMOVE]: MOUSEMOVE,\n [POINTERDOWN]: MOUSEDOWN,\n [POINTERUP]: MOUSEUP,\n [POINTERCANCEL]: 'mousecancel',\n pointerclick: 'click',\n pointerdblclick: 'dblclick',\n },\n touch: {\n [POINTEROUT]: 'touchout',\n [POINTERLEAVE]: 'touchleave',\n [POINTEROVER]: 'touchover',\n [POINTERENTER]: 'touchenter',\n [POINTERMOVE]: TOUCHMOVE,\n [POINTERDOWN]: TOUCHSTART,\n [POINTERUP]: TOUCHEND,\n [POINTERCANCEL]: TOUCHCANCEL,\n pointerclick: 'tap',\n pointerdblclick: 'dbltap',\n },\n pointer: {\n [POINTEROUT]: POINTEROUT,\n [POINTERLEAVE]: POINTERLEAVE,\n [POINTEROVER]: POINTEROVER,\n [POINTERENTER]: POINTERENTER,\n [POINTERMOVE]: POINTERMOVE,\n [POINTERDOWN]: POINTERDOWN,\n [POINTERUP]: POINTERUP,\n [POINTERCANCEL]: POINTERCANCEL,\n pointerclick: 'pointerclick',\n pointerdblclick: 'pointerdblclick',\n },\n};\nconst getEventType = (type) => {\n if (type.indexOf('pointer') >= 0) {\n return 'pointer';\n }\n if (type.indexOf('touch') >= 0) {\n return 'touch';\n }\n return 'mouse';\n};\nconst getEventsMap = (eventType) => {\n const type = getEventType(eventType);\n if (type === 'pointer') {\n return Konva.pointerEventsEnabled && EVENTS_MAP.pointer;\n }\n if (type === 'touch') {\n return EVENTS_MAP.touch;\n }\n if (type === 'mouse') {\n return EVENTS_MAP.mouse;\n }\n};\nfunction checkNoClip(attrs = {}) {\n if (attrs.clipFunc || attrs.clipWidth || attrs.clipHeight) {\n Util.warn('Stage does not support clipping. Please use clip for Layers or Groups.');\n }\n return attrs;\n}\nconst NO_POINTERS_MESSAGE = `Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);`;\nexport const stages = [];\nexport class Stage extends Container {\n constructor(config) {\n super(checkNoClip(config));\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n this._buildDOM();\n this._bindContentEvents();\n stages.push(this);\n this.on('widthChange.konva heightChange.konva', this._resizeDOM);\n this.on('visibleChange.konva', this._checkVisibility);\n this.on('clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva', () => {\n checkNoClip(this.attrs);\n });\n this._checkVisibility();\n }\n _validateAdd(child) {\n const isLayer = child.getType() === 'Layer';\n const isFastLayer = child.getType() === 'FastLayer';\n const valid = isLayer || isFastLayer;\n if (!valid) {\n Util.throw('You may only add layers to the stage.');\n }\n }\n _checkVisibility() {\n if (!this.content) {\n return;\n }\n const style = this.visible() ? '' : 'none';\n this.content.style.display = style;\n }\n setContainer(container) {\n if (typeof container === STRING) {\n if (container.charAt(0) === '.') {\n var className = container.slice(1);\n container = document.getElementsByClassName(className)[0];\n }\n else {\n var id;\n if (container.charAt(0) !== '#') {\n id = container;\n }\n else {\n id = container.slice(1);\n }\n container = document.getElementById(id);\n }\n if (!container) {\n throw 'Can not find container in document with id ' + id;\n }\n }\n this._setAttr('container', container);\n if (this.content) {\n if (this.content.parentElement) {\n this.content.parentElement.removeChild(this.content);\n }\n container.appendChild(this.content);\n }\n return this;\n }\n shouldDrawHit() {\n return true;\n }\n clear() {\n var layers = this.children, len = layers.length, n;\n for (n = 0; n < len; n++) {\n layers[n].clear();\n }\n return this;\n }\n clone(obj) {\n if (!obj) {\n obj = {};\n }\n obj.container =\n typeof document !== 'undefined' && document.createElement('div');\n return Container.prototype.clone.call(this, obj);\n }\n destroy() {\n super.destroy();\n var content = this.content;\n if (content && Util._isInDocument(content)) {\n this.container().removeChild(content);\n }\n var index = stages.indexOf(this);\n if (index > -1) {\n stages.splice(index, 1);\n }\n Util.releaseCanvas(this.bufferCanvas._canvas, this.bufferHitCanvas._canvas);\n return this;\n }\n getPointerPosition() {\n const pos = this._pointerPositions[0] || this._changedPointerPositions[0];\n if (!pos) {\n Util.warn(NO_POINTERS_MESSAGE);\n return null;\n }\n return {\n x: pos.x,\n y: pos.y,\n };\n }\n _getPointerById(id) {\n return this._pointerPositions.find((p) => p.id === id);\n }\n getPointersPositions() {\n return this._pointerPositions;\n }\n getStage() {\n return this;\n }\n getContent() {\n return this.content;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n config.x = config.x || 0;\n config.y = config.y || 0;\n config.width = config.width || this.width();\n config.height = config.height || this.height();\n var canvas = new SceneCanvas({\n width: config.width,\n height: config.height,\n pixelRatio: config.pixelRatio || 1,\n });\n var _context = canvas.getContext()._context;\n var layers = this.children;\n if (config.x || config.y) {\n _context.translate(-1 * config.x, -1 * config.y);\n }\n layers.forEach(function (layer) {\n if (!layer.isVisible()) {\n return;\n }\n var layerCanvas = layer._toKonvaCanvas(config);\n _context.drawImage(layerCanvas._canvas, config.x, config.y, layerCanvas.getWidth() / layerCanvas.getPixelRatio(), layerCanvas.getHeight() / layerCanvas.getPixelRatio());\n });\n return canvas;\n }\n getIntersection(pos) {\n if (!pos) {\n return null;\n }\n var layers = this.children, len = layers.length, end = len - 1, n;\n for (n = end; n >= 0; n--) {\n const shape = layers[n].getIntersection(pos);\n if (shape) {\n return shape;\n }\n }\n return null;\n }\n _resizeDOM() {\n var width = this.width();\n var height = this.height();\n if (this.content) {\n this.content.style.width = width + PX;\n this.content.style.height = height + PX;\n }\n this.bufferCanvas.setSize(width, height);\n this.bufferHitCanvas.setSize(width, height);\n this.children.forEach((layer) => {\n layer.setSize({ width, height });\n layer.draw();\n });\n }\n add(layer, ...rest) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n super.add(layer);\n var length = this.children.length;\n if (length > MAX_LAYERS_NUMBER) {\n Util.warn('The stage has ' +\n length +\n ' layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.');\n }\n layer.setSize({ width: this.width(), height: this.height() });\n layer.draw();\n if (Konva.isBrowser) {\n this.content.appendChild(layer.canvas._canvas);\n }\n return this;\n }\n getParent() {\n return null;\n }\n getLayer() {\n return null;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n getLayers() {\n return this.children;\n }\n _bindContentEvents() {\n if (!Konva.isBrowser) {\n return;\n }\n EVENTS.forEach(([event, methodName]) => {\n this.content.addEventListener(event, (evt) => {\n this[methodName](evt);\n }, { passive: false });\n });\n }\n _pointerenter(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n this._fire(events.pointerenter, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n _pointerover(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n _getTargetShape(evenType) {\n let shape = this[evenType + 'targetShape'];\n if (shape && !shape.getStage()) {\n shape = null;\n }\n return shape;\n }\n _pointerleave(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n var targetShape = this._getTargetShape(eventType);\n var eventsEnabled = !DD.isDragging || Konva.hitOnDragEnabled;\n if (targetShape && eventsEnabled) {\n targetShape._fireAndBubble(events.pointerout, { evt: evt });\n targetShape._fireAndBubble(events.pointerleave, { evt: evt });\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this[eventType + 'targetShape'] = null;\n }\n else if (eventsEnabled) {\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this._fire(events.pointerout, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n this.pointerPos = undefined;\n this._pointerPositions = [];\n }\n _pointerdown(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n var triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n var shape = this.getIntersection(pos);\n DD.justDragged = false;\n Konva['_' + eventType + 'ListenClick'] = true;\n const hasShape = shape && shape.isListening();\n if (!hasShape) {\n return;\n }\n if (Konva.capturePointerEventsEnabled) {\n shape.setPointerCapture(pos.id);\n }\n this[eventType + 'ClickStartShape'] = shape;\n shape._fireAndBubble(events.pointerdown, {\n evt: evt,\n pointerId: pos.id,\n });\n triggeredOnShape = true;\n const isTouch = evt.type.indexOf('touch') >= 0;\n if (shape.preventDefault() && evt.cancelable && isTouch) {\n evt.preventDefault();\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerdown, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._pointerPositions[0].id,\n });\n }\n }\n _pointermove(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n if (DD.isDragging && DD.node.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n this.setPointersPositions(evt);\n var eventsEnabled = !DD.isDragging || Konva.hitOnDragEnabled;\n if (!eventsEnabled) {\n return;\n }\n var processedShapesIds = {};\n let triggeredOnShape = false;\n var targetShape = this._getTargetShape(eventType);\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n var differentTarget = targetShape !== shape;\n if (differentTarget && targetShape) {\n targetShape._fireAndBubble(events.pointerout, Object.assign({}, event), shape);\n targetShape._fireAndBubble(events.pointerleave, Object.assign({}, event), shape);\n }\n if (shape) {\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n if (differentTarget) {\n shape._fireAndBubble(events.pointerover, Object.assign({}, event), targetShape);\n shape._fireAndBubble(events.pointerenter, Object.assign({}, event), targetShape);\n this[eventType + 'targetShape'] = shape;\n }\n shape._fireAndBubble(events.pointermove, Object.assign({}, event));\n }\n else {\n if (targetShape) {\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n this[eventType + 'targetShape'] = null;\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointermove, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n }\n _pointerup(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n const clickStartShape = this[eventType + 'ClickStartShape'];\n const clickEndShape = this[eventType + 'ClickEndShape'];\n var processedShapesIds = {};\n let triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n if (shape) {\n shape.releaseCapture(pos.id);\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n let fireDblClick = false;\n if (Konva['_' + eventType + 'InDblClickWindow']) {\n fireDblClick = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n else if (!DD.justDragged) {\n Konva['_' + eventType + 'InDblClickWindow'] = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n this[eventType + 'DblTimeout'] = setTimeout(function () {\n Konva['_' + eventType + 'InDblClickWindow'] = false;\n }, Konva.dblClickWindow);\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n this[eventType + 'ClickEndShape'] = shape;\n shape._fireAndBubble(events.pointerup, Object.assign({}, event));\n if (Konva['_' + eventType + 'ListenClick'] &&\n clickStartShape &&\n clickStartShape === shape) {\n shape._fireAndBubble(events.pointerclick, Object.assign({}, event));\n if (fireDblClick && clickEndShape && clickEndShape === shape) {\n shape._fireAndBubble(events.pointerdblclick, Object.assign({}, event));\n }\n }\n }\n else {\n this[eventType + 'ClickEndShape'] = null;\n if (Konva['_' + eventType + 'ListenClick']) {\n this._fire(events.pointerclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n if (fireDblClick) {\n this._fire(events.pointerdblclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerup, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n Konva['_' + eventType + 'ListenClick'] = false;\n if (evt.cancelable && eventType !== 'touch') {\n evt.preventDefault();\n }\n }\n _contextmenu(evt) {\n this.setPointersPositions(evt);\n var shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(CONTEXTMENU, { evt: evt });\n }\n else {\n this._fire(CONTEXTMENU, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _wheel(evt) {\n this.setPointersPositions(evt);\n var shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(WHEEL, { evt: evt });\n }\n else {\n this._fire(WHEEL, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _pointercancel(evt) {\n this.setPointersPositions(evt);\n const shape = PointerEvents.getCapturedShape(evt.pointerId) ||\n this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERUP, PointerEvents.createEvent(evt));\n }\n PointerEvents.releaseCapture(evt.pointerId);\n }\n _lostpointercapture(evt) {\n PointerEvents.releaseCapture(evt.pointerId);\n }\n setPointersPositions(evt) {\n var contentPosition = this._getContentPosition(), x = null, y = null;\n evt = evt ? evt : window.event;\n if (evt.touches !== undefined) {\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n Array.prototype.forEach.call(evt.touches, (touch) => {\n this._pointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n Array.prototype.forEach.call(evt.changedTouches || evt.touches, (touch) => {\n this._changedPointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n }\n else {\n x = (evt.clientX - contentPosition.left) / contentPosition.scaleX;\n y = (evt.clientY - contentPosition.top) / contentPosition.scaleY;\n this.pointerPos = {\n x: x,\n y: y,\n };\n this._pointerPositions = [{ x, y, id: Util._getFirstPointerId(evt) }];\n this._changedPointerPositions = [\n { x, y, id: Util._getFirstPointerId(evt) },\n ];\n }\n }\n _setPointerPosition(evt) {\n Util.warn('Method _setPointerPosition is deprecated. Use \"stage.setPointersPositions(event)\" instead.');\n this.setPointersPositions(evt);\n }\n _getContentPosition() {\n if (!this.content || !this.content.getBoundingClientRect) {\n return {\n top: 0,\n left: 0,\n scaleX: 1,\n scaleY: 1,\n };\n }\n var rect = this.content.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n scaleX: rect.width / this.content.clientWidth || 1,\n scaleY: rect.height / this.content.clientHeight || 1,\n };\n }\n _buildDOM() {\n this.bufferCanvas = new SceneCanvas({\n width: this.width(),\n height: this.height(),\n });\n this.bufferHitCanvas = new HitCanvas({\n pixelRatio: 1,\n width: this.width(),\n height: this.height(),\n });\n if (!Konva.isBrowser) {\n return;\n }\n var container = this.container();\n if (!container) {\n throw 'Stage has no container. A container is required.';\n }\n container.innerHTML = '';\n this.content = document.createElement('div');\n this.content.style.position = 'relative';\n this.content.style.userSelect = 'none';\n this.content.className = 'konvajs-content';\n this.content.setAttribute('role', 'presentation');\n container.appendChild(this.content);\n this._resizeDOM();\n }\n cache() {\n Util.warn('Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.');\n return this;\n }\n clearCache() {\n return this;\n }\n batchDraw() {\n this.getChildren().forEach(function (layer) {\n layer.batchDraw();\n });\n return this;\n }\n}\nStage.prototype.nodeType = STAGE;\n_registerNode(Stage);\nFactory.addGetterSetter(Stage, 'container');\n","import { Konva } from './Global.js';\nimport { Transform, Util } from './Util.js';\nimport { Factory } from './Factory.js';\nimport { Node } from './Node.js';\nimport { getNumberValidator, getNumberOrAutoValidator, getStringValidator, getBooleanValidator, getStringOrGradientValidator, } from './Validators.js';\nimport { _registerNode } from './Global.js';\nimport * as PointerEvents from './PointerEvents.js';\nvar HAS_SHADOW = 'hasShadow';\nvar SHADOW_RGBA = 'shadowRGBA';\nvar patternImage = 'patternImage';\nvar linearGradient = 'linearGradient';\nvar radialGradient = 'radialGradient';\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util.createCanvasElement().getContext('2d');\n return dummyContext;\n}\nexport const shapes = {};\nfunction _fillFunc(context) {\n context.fill();\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n context.fill();\n}\nfunction _strokeFuncHit(context) {\n context.stroke();\n}\nfunction _clearHasShadowCache() {\n this._clearCache(HAS_SHADOW);\n}\nfunction _clearGetShadowRGBACache() {\n this._clearCache(SHADOW_RGBA);\n}\nfunction _clearFillPatternCache() {\n this._clearCache(patternImage);\n}\nfunction _clearLinearGradientCache() {\n this._clearCache(linearGradient);\n}\nfunction _clearRadialGradientCache() {\n this._clearCache(radialGradient);\n}\nexport class Shape extends Node {\n constructor(config) {\n super(config);\n let key;\n while (true) {\n key = Util.getRandomColor();\n if (key && !(key in shapes)) {\n break;\n }\n }\n this.colorKey = key;\n shapes[key] = this;\n }\n getContext() {\n Util.warn('shape.getContext() method is deprecated. Please do not use it.');\n return this.getLayer().getContext();\n }\n getCanvas() {\n Util.warn('shape.getCanvas() method is deprecated. Please do not use it.');\n return this.getLayer().getCanvas();\n }\n getSceneFunc() {\n return this.attrs.sceneFunc || this['_sceneFunc'];\n }\n getHitFunc() {\n return this.attrs.hitFunc || this['_hitFunc'];\n }\n hasShadow() {\n return this._getCache(HAS_SHADOW, this._hasShadow);\n }\n _hasShadow() {\n return (this.shadowEnabled() &&\n this.shadowOpacity() !== 0 &&\n !!(this.shadowColor() ||\n this.shadowBlur() ||\n this.shadowOffsetX() ||\n this.shadowOffsetY()));\n }\n _getFillPattern() {\n return this._getCache(patternImage, this.__getFillPattern);\n }\n __getFillPattern() {\n if (this.fillPatternImage()) {\n var ctx = getDummyContext();\n const pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');\n if (pattern && pattern.setTransform) {\n const tr = new Transform();\n tr.translate(this.fillPatternX(), this.fillPatternY());\n tr.rotate(Konva.getAngle(this.fillPatternRotation()));\n tr.scale(this.fillPatternScaleX(), this.fillPatternScaleY());\n tr.translate(-1 * this.fillPatternOffsetX(), -1 * this.fillPatternOffsetY());\n const m = tr.getMatrix();\n const matrix = typeof DOMMatrix === 'undefined'\n ? {\n a: m[0],\n b: m[1],\n c: m[2],\n d: m[3],\n e: m[4],\n f: m[5],\n }\n : new DOMMatrix(m);\n pattern.setTransform(matrix);\n }\n return pattern;\n }\n }\n _getLinearGradient() {\n return this._getCache(linearGradient, this.__getLinearGradient);\n }\n __getLinearGradient() {\n var colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillLinearGradientStartPoint();\n var end = this.fillLinearGradientEndPoint();\n var grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n _getRadialGradient() {\n return this._getCache(radialGradient, this.__getRadialGradient);\n }\n __getRadialGradient() {\n var colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillRadialGradientStartPoint();\n var end = this.fillRadialGradientEndPoint();\n var grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n getShadowRGBA() {\n return this._getCache(SHADOW_RGBA, this._getShadowRGBA);\n }\n _getShadowRGBA() {\n if (!this.hasShadow()) {\n return;\n }\n var rgba = Util.colorToRGBA(this.shadowColor());\n if (rgba) {\n return ('rgba(' +\n rgba.r +\n ',' +\n rgba.g +\n ',' +\n rgba.b +\n ',' +\n rgba.a * (this.shadowOpacity() || 1) +\n ')');\n }\n }\n hasFill() {\n return this._calculate('hasFill', [\n 'fillEnabled',\n 'fill',\n 'fillPatternImage',\n 'fillLinearGradientColorStops',\n 'fillRadialGradientColorStops',\n ], () => {\n return (this.fillEnabled() &&\n !!(this.fill() ||\n this.fillPatternImage() ||\n this.fillLinearGradientColorStops() ||\n this.fillRadialGradientColorStops()));\n });\n }\n hasStroke() {\n return this._calculate('hasStroke', [\n 'strokeEnabled',\n 'strokeWidth',\n 'stroke',\n 'strokeLinearGradientColorStops',\n ], () => {\n return (this.strokeEnabled() &&\n this.strokeWidth() &&\n !!(this.stroke() || this.strokeLinearGradientColorStops()));\n });\n }\n hasHitStroke() {\n const width = this.hitStrokeWidth();\n if (width === 'auto') {\n return this.hasStroke();\n }\n return this.strokeEnabled() && !!width;\n }\n intersects(point) {\n var stage = this.getStage(), bufferHitCanvas = stage.bufferHitCanvas, p;\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas, null, true);\n p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;\n return p[3] > 0;\n }\n destroy() {\n Node.prototype.destroy.call(this);\n delete shapes[this.colorKey];\n delete this.colorKey;\n return this;\n }\n _useBufferCanvas(forceFill) {\n var _a;\n if (!this.getStage()) {\n return false;\n }\n const perfectDrawEnabled = (_a = this.attrs.perfectDrawEnabled) !== null && _a !== void 0 ? _a : true;\n if (!perfectDrawEnabled) {\n return false;\n }\n const hasFill = forceFill || this.hasFill();\n const hasStroke = this.hasStroke();\n const isTransparent = this.getAbsoluteOpacity() !== 1;\n if (hasFill && hasStroke && isTransparent) {\n return true;\n }\n const hasShadow = this.hasShadow();\n const strokeForShadow = this.shadowForStrokeEnabled();\n if (hasFill && hasStroke && hasShadow && strokeForShadow) {\n return true;\n }\n return false;\n }\n setStrokeHitEnabled(val) {\n Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');\n if (val) {\n this.hitStrokeWidth('auto');\n }\n else {\n this.hitStrokeWidth(0);\n }\n }\n getStrokeHitEnabled() {\n if (this.hitStrokeWidth() === 0) {\n return false;\n }\n else {\n return true;\n }\n }\n getSelfRect() {\n var size = this.size();\n return {\n x: this._centroid ? -size.width / 2 : 0,\n y: this._centroid ? -size.height / 2 : 0,\n width: size.width,\n height: size.height,\n };\n }\n getClientRect(config = {}) {\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo;\n const fillRect = this.getSelfRect();\n const applyStroke = !config.skipStroke && this.hasStroke();\n const strokeWidth = (applyStroke && this.strokeWidth()) || 0;\n const fillAndStrokeWidth = fillRect.width + strokeWidth;\n const fillAndStrokeHeight = fillRect.height + strokeWidth;\n const applyShadow = !config.skipShadow && this.hasShadow();\n const shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;\n const shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;\n const preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);\n const preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);\n const blurRadius = (applyShadow && this.shadowBlur()) || 0;\n const width = preWidth + blurRadius * 2;\n const height = preHeight + blurRadius * 2;\n const rect = {\n width: width,\n height: height,\n x: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetX, 0) +\n fillRect.x,\n y: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetY, 0) +\n fillRect.y,\n };\n if (!skipTransform) {\n return this._transformedRect(rect, relativeTo);\n }\n return rect;\n }\n drawScene(can, top) {\n var layer = this.getLayer(), canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.getSceneFunc(), hasShadow = this.hasShadow(), stage, bufferCanvas, bufferContext;\n var skipBuffer = canvas.isCache;\n var cachingSelf = top === this;\n if (!this.isVisible() && !cachingSelf) {\n return this;\n }\n if (cachedCanvas) {\n context.save();\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n if (this._useBufferCanvas() && !skipBuffer) {\n stage = this.getStage();\n bufferCanvas = stage.bufferCanvas;\n bufferContext = bufferCanvas.getContext();\n bufferContext.clear();\n bufferContext.save();\n bufferContext._applyLineJoin(this);\n var o = this.getAbsoluteTransform(top).getMatrix();\n bufferContext.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n drawFunc.call(this, bufferContext, this);\n bufferContext.restore();\n var ratio = bufferCanvas.pixelRatio;\n if (hasShadow) {\n context._applyShadow(this);\n }\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bufferCanvas._canvas, 0, 0, bufferCanvas.width / ratio, bufferCanvas.height / ratio);\n }\n else {\n context._applyLineJoin(this);\n if (!cachingSelf) {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n if (hasShadow) {\n context._applyShadow(this);\n }\n drawFunc.call(this, context, this);\n }\n context.restore();\n return this;\n }\n drawHit(can, top, skipDragCheck = false) {\n if (!this.shouldDrawHit(top, skipDragCheck)) {\n return this;\n }\n var layer = this.getLayer(), canvas = can || layer.hitCanvas, context = canvas && canvas.getContext(), drawFunc = this.hitFunc() || this.sceneFunc(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (!this.colorKey) {\n Util.warn('Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()');\n }\n if (cachedHitCanvas) {\n context.save();\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n context._applyLineJoin(this);\n const selfCache = this === top;\n if (!selfCache) {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n drawFunc.call(this, context, this);\n context.restore();\n return this;\n }\n drawHitFromCache(alphaThreshold = 0) {\n var cachedCanvas = this._getCanvasCache(), sceneCanvas = this._getCachedSceneCanvas(), hitCanvas = cachedCanvas.hit, hitContext = hitCanvas.getContext(), hitWidth = hitCanvas.getWidth(), hitHeight = hitCanvas.getHeight(), hitImageData, hitData, len, rgbColorKey, i, alpha;\n hitContext.clear();\n hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);\n try {\n hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);\n hitData = hitImageData.data;\n len = hitData.length;\n rgbColorKey = Util._hexToRgb(this.colorKey);\n for (i = 0; i < len; i += 4) {\n alpha = hitData[i + 3];\n if (alpha > alphaThreshold) {\n hitData[i] = rgbColorKey.r;\n hitData[i + 1] = rgbColorKey.g;\n hitData[i + 2] = rgbColorKey.b;\n hitData[i + 3] = 255;\n }\n else {\n hitData[i + 3] = 0;\n }\n }\n hitContext.putImageData(hitImageData, 0, 0);\n }\n catch (e) {\n Util.error('Unable to draw hit graph from cached scene canvas. ' + e.message);\n }\n return this;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n}\nShape.prototype._fillFunc = _fillFunc;\nShape.prototype._strokeFunc = _strokeFunc;\nShape.prototype._fillFuncHit = _fillFuncHit;\nShape.prototype._strokeFuncHit = _strokeFuncHit;\nShape.prototype._centroid = false;\nShape.prototype.nodeType = 'Shape';\n_registerNode(Shape);\nShape.prototype.eventListeners = {};\nShape.prototype.on.call(Shape.prototype, 'shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearHasShadowCache);\nShape.prototype.on.call(Shape.prototype, 'shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearGetShadowRGBACache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva', _clearFillPatternCache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva', _clearLinearGradientCache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva', _clearRadialGradientCache);\nFactory.addGetterSetter(Shape, 'stroke', undefined, getStringOrGradientValidator());\nFactory.addGetterSetter(Shape, 'strokeWidth', 2, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillAfterStrokeEnabled', false);\nFactory.addGetterSetter(Shape, 'hitStrokeWidth', 'auto', getNumberOrAutoValidator());\nFactory.addGetterSetter(Shape, 'strokeHitEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'perfectDrawEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'shadowForStrokeEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'lineJoin');\nFactory.addGetterSetter(Shape, 'lineCap');\nFactory.addGetterSetter(Shape, 'sceneFunc');\nFactory.addGetterSetter(Shape, 'hitFunc');\nFactory.addGetterSetter(Shape, 'dash');\nFactory.addGetterSetter(Shape, 'dashOffset', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowColor', undefined, getStringValidator());\nFactory.addGetterSetter(Shape, 'shadowBlur', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowOpacity', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'shadowOffset', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'shadowOffsetX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowOffsetY', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternImage');\nFactory.addGetterSetter(Shape, 'fill', undefined, getStringOrGradientValidator());\nFactory.addGetterSetter(Shape, 'fillPatternX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternY', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillLinearGradientColorStops');\nFactory.addGetterSetter(Shape, 'strokeLinearGradientColorStops');\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartRadius', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndRadius', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientColorStops');\nFactory.addGetterSetter(Shape, 'fillPatternRepeat', 'repeat');\nFactory.addGetterSetter(Shape, 'fillEnabled', true);\nFactory.addGetterSetter(Shape, 'strokeEnabled', true);\nFactory.addGetterSetter(Shape, 'shadowEnabled', true);\nFactory.addGetterSetter(Shape, 'dashEnabled', true);\nFactory.addGetterSetter(Shape, 'strokeScaleEnabled', true);\nFactory.addGetterSetter(Shape, 'fillPriority', 'color');\nFactory.addComponentsGetterSetter(Shape, 'fillPatternOffset', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'fillPatternOffsetX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternOffsetY', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'fillPatternScale', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'fillPatternScaleX', 1, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternScaleY', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'fillLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillLinearGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'fillLinearGradientStartPointY', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientStartPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillLinearGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'fillLinearGradientEndPointY', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientEndPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillRadialGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndPointY', 0);\nFactory.addGetterSetter(Shape, 'fillPatternRotation', 0);\nFactory.backCompat(Shape, {\n dashArray: 'dash',\n getDashArray: 'getDash',\n setDashArray: 'getDash',\n drawFunc: 'sceneFunc',\n getDrawFunc: 'getSceneFunc',\n setDrawFunc: 'setSceneFunc',\n drawHitFunc: 'hitFunc',\n getDrawHitFunc: 'getHitFunc',\n setDrawHitFunc: 'setHitFunc',\n});\n","import { Util } from './Util.js';\nimport { Container } from './Container.js';\nimport { Node } from './Node.js';\nimport { Factory } from './Factory.js';\nimport { SceneCanvas, HitCanvas } from './Canvas.js';\nimport { getBooleanValidator } from './Validators.js';\nimport { shapes } from './Shape.js';\nimport { _registerNode } from './Global.js';\nvar HASH = '#', BEFORE_DRAW = 'beforeDraw', DRAW = 'draw', INTERSECTION_OFFSETS = [\n { x: 0, y: 0 },\n { x: -1, y: -1 },\n { x: 1, y: -1 },\n { x: 1, y: 1 },\n { x: -1, y: 1 },\n], INTERSECTION_OFFSETS_LEN = INTERSECTION_OFFSETS.length;\nexport class Layer extends Container {\n constructor(config) {\n super(config);\n this.canvas = new SceneCanvas();\n this.hitCanvas = new HitCanvas({\n pixelRatio: 1,\n });\n this._waitingForDraw = false;\n this.on('visibleChange.konva', this._checkVisibility);\n this._checkVisibility();\n this.on('imageSmoothingEnabledChange.konva', this._setSmoothEnabled);\n this._setSmoothEnabled();\n }\n createPNGStream() {\n const c = this.canvas._canvas;\n return c.createPNGStream();\n }\n getCanvas() {\n return this.canvas;\n }\n getNativeCanvasElement() {\n return this.canvas._canvas;\n }\n getHitCanvas() {\n return this.hitCanvas;\n }\n getContext() {\n return this.getCanvas().getContext();\n }\n clear(bounds) {\n this.getContext().clear(bounds);\n this.getHitCanvas().getContext().clear(bounds);\n return this;\n }\n setZIndex(index) {\n super.setZIndex(index);\n var stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n if (index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n }\n return this;\n }\n moveToTop() {\n Node.prototype.moveToTop.call(this);\n var stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveUp() {\n var moved = Node.prototype.moveUp.call(this);\n if (!moved) {\n return false;\n }\n var stage = this.getStage();\n if (!stage || !stage.content) {\n return false;\n }\n stage.content.removeChild(this.getNativeCanvasElement());\n if (this.index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[this.index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveDown() {\n if (Node.prototype.moveDown.call(this)) {\n var stage = this.getStage();\n if (stage) {\n var children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[this.index + 1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (Node.prototype.moveToBottom.call(this)) {\n var stage = this.getStage();\n if (stage) {\n var children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n getLayer() {\n return this;\n }\n remove() {\n var _canvas = this.getNativeCanvasElement();\n Node.prototype.remove.call(this);\n if (_canvas && _canvas.parentNode && Util._isInDocument(_canvas)) {\n _canvas.parentNode.removeChild(_canvas);\n }\n return this;\n }\n getStage() {\n return this.parent;\n }\n setSize({ width, height }) {\n this.canvas.setSize(width, height);\n this.hitCanvas.setSize(width, height);\n this._setSmoothEnabled();\n return this;\n }\n _validateAdd(child) {\n var type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util.throw('You may only add groups and shapes to a layer.');\n }\n }\n _toKonvaCanvas(config) {\n config = config || {};\n config.width = config.width || this.getWidth();\n config.height = config.height || this.getHeight();\n config.x = config.x !== undefined ? config.x : this.x();\n config.y = config.y !== undefined ? config.y : this.y();\n return Node.prototype._toKonvaCanvas.call(this, config);\n }\n _checkVisibility() {\n const visible = this.visible();\n if (visible) {\n this.canvas._canvas.style.display = 'block';\n }\n else {\n this.canvas._canvas.style.display = 'none';\n }\n }\n _setSmoothEnabled() {\n this.getContext()._context.imageSmoothingEnabled =\n this.imageSmoothingEnabled();\n }\n getWidth() {\n if (this.parent) {\n return this.parent.width();\n }\n }\n setWidth() {\n Util.warn('Can not change width of layer. Use \"stage.width(value)\" function instead.');\n }\n getHeight() {\n if (this.parent) {\n return this.parent.height();\n }\n }\n setHeight() {\n Util.warn('Can not change height of layer. Use \"stage.height(value)\" function instead.');\n }\n batchDraw() {\n if (!this._waitingForDraw) {\n this._waitingForDraw = true;\n Util.requestAnimFrame(() => {\n this.draw();\n this._waitingForDraw = false;\n });\n }\n return this;\n }\n getIntersection(pos) {\n if (!this.isListening() || !this.isVisible()) {\n return null;\n }\n var spiralSearchDistance = 1;\n var continueSearch = false;\n while (true) {\n for (let i = 0; i < INTERSECTION_OFFSETS_LEN; i++) {\n const intersectionOffset = INTERSECTION_OFFSETS[i];\n const obj = this._getIntersection({\n x: pos.x + intersectionOffset.x * spiralSearchDistance,\n y: pos.y + intersectionOffset.y * spiralSearchDistance,\n });\n const shape = obj.shape;\n if (shape) {\n return shape;\n }\n continueSearch = !!obj.antialiased;\n if (!obj.antialiased) {\n break;\n }\n }\n if (continueSearch) {\n spiralSearchDistance += 1;\n }\n else {\n return null;\n }\n }\n }\n _getIntersection(pos) {\n const ratio = this.hitCanvas.pixelRatio;\n const p = this.hitCanvas.context.getImageData(Math.round(pos.x * ratio), Math.round(pos.y * ratio), 1, 1).data;\n const p3 = p[3];\n if (p3 === 255) {\n const colorKey = Util._rgbToHex(p[0], p[1], p[2]);\n const shape = shapes[HASH + colorKey];\n if (shape) {\n return {\n shape: shape,\n };\n }\n return {\n antialiased: true,\n };\n }\n else if (p3 > 0) {\n return {\n antialiased: true,\n };\n }\n return {};\n }\n drawScene(can, top) {\n var layer = this.getLayer(), canvas = can || (layer && layer.getCanvas());\n this._fire(BEFORE_DRAW, {\n node: this,\n });\n if (this.clearBeforeDraw()) {\n canvas.getContext().clear();\n }\n Container.prototype.drawScene.call(this, canvas, top);\n this._fire(DRAW, {\n node: this,\n });\n return this;\n }\n drawHit(can, top) {\n var layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas);\n if (layer && layer.clearBeforeDraw()) {\n layer.getHitCanvas().getContext().clear();\n }\n Container.prototype.drawHit.call(this, canvas, top);\n return this;\n }\n enableHitGraph() {\n this.hitGraphEnabled(true);\n return this;\n }\n disableHitGraph() {\n this.hitGraphEnabled(false);\n return this;\n }\n setHitGraphEnabled(val) {\n Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n this.listening(val);\n }\n getHitGraphEnabled(val) {\n Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n return this.listening();\n }\n toggleHitCanvas() {\n if (!this.parent || !this.parent['content']) {\n return;\n }\n var parent = this.parent;\n var added = !!this.hitCanvas._canvas.parentNode;\n if (added) {\n parent.content.removeChild(this.hitCanvas._canvas);\n }\n else {\n parent.content.appendChild(this.hitCanvas._canvas);\n }\n }\n destroy() {\n Util.releaseCanvas(this.getNativeCanvasElement(), this.getHitCanvas()._canvas);\n return super.destroy();\n }\n}\nLayer.prototype.nodeType = 'Layer';\n_registerNode(Layer);\nFactory.addGetterSetter(Layer, 'imageSmoothingEnabled', true);\nFactory.addGetterSetter(Layer, 'clearBeforeDraw', true);\nFactory.addGetterSetter(Layer, 'hitGraphEnabled', true, getBooleanValidator());\n","import { Util } from './Util.js';\nimport { Layer } from './Layer.js';\nimport { _registerNode } from './Global.js';\nexport class FastLayer extends Layer {\n constructor(attrs) {\n super(attrs);\n this.listening(false);\n Util.warn('Konva.Fast layer is deprecated. Please use \"new Konva.Layer({ listening: false })\" instead.');\n }\n}\nFastLayer.prototype.nodeType = 'FastLayer';\n_registerNode(FastLayer);\n","import { Util } from './Util.js';\nimport { Container } from './Container.js';\nimport { _registerNode } from './Global.js';\nexport class Group extends Container {\n _validateAdd(child) {\n var type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util.throw('You may only add groups and shapes to groups.');\n }\n }\n}\nGroup.prototype.nodeType = 'Group';\n_registerNode(Group);\n","import { glob } from './Global.js';\nimport { Util } from './Util.js';\nvar now = (function () {\n if (glob.performance && glob.performance.now) {\n return function () {\n return glob.performance.now();\n };\n }\n return function () {\n return new Date().getTime();\n };\n})();\nexport class Animation {\n constructor(func, layers) {\n this.id = Animation.animIdCounter++;\n this.frame = {\n time: 0,\n timeDiff: 0,\n lastTime: now(),\n frameRate: 0,\n };\n this.func = func;\n this.setLayers(layers);\n }\n setLayers(layers) {\n var lays = [];\n if (!layers) {\n lays = [];\n }\n else if (layers.length > 0) {\n lays = layers;\n }\n else {\n lays = [layers];\n }\n this.layers = lays;\n return this;\n }\n getLayers() {\n return this.layers;\n }\n addLayer(layer) {\n var layers = this.layers, len = layers.length, n;\n for (n = 0; n < len; n++) {\n if (layers[n]._id === layer._id) {\n return false;\n }\n }\n this.layers.push(layer);\n return true;\n }\n isRunning() {\n var a = Animation, animations = a.animations, len = animations.length, n;\n for (n = 0; n < len; n++) {\n if (animations[n].id === this.id) {\n return true;\n }\n }\n return false;\n }\n start() {\n this.stop();\n this.frame.timeDiff = 0;\n this.frame.lastTime = now();\n Animation._addAnimation(this);\n return this;\n }\n stop() {\n Animation._removeAnimation(this);\n return this;\n }\n _updateFrameObject(time) {\n this.frame.timeDiff = time - this.frame.lastTime;\n this.frame.lastTime = time;\n this.frame.time += this.frame.timeDiff;\n this.frame.frameRate = 1000 / this.frame.timeDiff;\n }\n static _addAnimation(anim) {\n this.animations.push(anim);\n this._handleAnimation();\n }\n static _removeAnimation(anim) {\n var id = anim.id, animations = this.animations, len = animations.length, n;\n for (n = 0; n < len; n++) {\n if (animations[n].id === id) {\n this.animations.splice(n, 1);\n break;\n }\n }\n }\n static _runFrames() {\n var layerHash = {}, animations = this.animations, anim, layers, func, n, i, layersLen, layer, key, needRedraw;\n for (n = 0; n < animations.length; n++) {\n anim = animations[n];\n layers = anim.layers;\n func = anim.func;\n anim._updateFrameObject(now());\n layersLen = layers.length;\n if (func) {\n needRedraw = func.call(anim, anim.frame) !== false;\n }\n else {\n needRedraw = true;\n }\n if (!needRedraw) {\n continue;\n }\n for (i = 0; i < layersLen; i++) {\n layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].batchDraw();\n }\n }\n static _animationLoop() {\n var Anim = Animation;\n if (Anim.animations.length) {\n Anim._runFrames();\n Util.requestAnimFrame(Anim._animationLoop);\n }\n else {\n Anim.animRunning = false;\n }\n }\n static _handleAnimation() {\n if (!this.animRunning) {\n this.animRunning = true;\n Util.requestAnimFrame(this._animationLoop);\n }\n }\n}\nAnimation.animations = [];\nAnimation.animIdCounter = 0;\nAnimation.animRunning = false;\n","import { Util } from './Util.js';\nimport { Animation } from './Animation.js';\nimport { Node } from './Node.js';\nimport { Konva } from './Global.js';\nvar blacklist = {\n node: 1,\n duration: 1,\n easing: 1,\n onFinish: 1,\n yoyo: 1,\n}, PAUSED = 1, PLAYING = 2, REVERSING = 3, idCounter = 0, colorAttrs = ['fill', 'stroke', 'shadowColor'];\nclass TweenEngine {\n constructor(prop, propFunc, func, begin, finish, duration, yoyo) {\n this.prop = prop;\n this.propFunc = propFunc;\n this.begin = begin;\n this._pos = begin;\n this.duration = duration;\n this._change = 0;\n this.prevPos = 0;\n this.yoyo = yoyo;\n this._time = 0;\n this._position = 0;\n this._startTime = 0;\n this._finish = 0;\n this.func = func;\n this._change = finish - this.begin;\n this.pause();\n }\n fire(str) {\n var handler = this[str];\n if (handler) {\n handler();\n }\n }\n setTime(t) {\n if (t > this.duration) {\n if (this.yoyo) {\n this._time = this.duration;\n this.reverse();\n }\n else {\n this.finish();\n }\n }\n else if (t < 0) {\n if (this.yoyo) {\n this._time = 0;\n this.play();\n }\n else {\n this.reset();\n }\n }\n else {\n this._time = t;\n this.update();\n }\n }\n getTime() {\n return this._time;\n }\n setPosition(p) {\n this.prevPos = this._pos;\n this.propFunc(p);\n this._pos = p;\n }\n getPosition(t) {\n if (t === undefined) {\n t = this._time;\n }\n return this.func(t, this.begin, this._change, this.duration);\n }\n play() {\n this.state = PLAYING;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onPlay');\n }\n reverse() {\n this.state = REVERSING;\n this._time = this.duration - this._time;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onReverse');\n }\n seek(t) {\n this.pause();\n this._time = t;\n this.update();\n this.fire('onSeek');\n }\n reset() {\n this.pause();\n this._time = 0;\n this.update();\n this.fire('onReset');\n }\n finish() {\n this.pause();\n this._time = this.duration;\n this.update();\n this.fire('onFinish');\n }\n update() {\n this.setPosition(this.getPosition(this._time));\n this.fire('onUpdate');\n }\n onEnterFrame() {\n var t = this.getTimer() - this._startTime;\n if (this.state === PLAYING) {\n this.setTime(t);\n }\n else if (this.state === REVERSING) {\n this.setTime(this.duration - t);\n }\n }\n pause() {\n this.state = PAUSED;\n this.fire('onPause');\n }\n getTimer() {\n return new Date().getTime();\n }\n}\nexport class Tween {\n constructor(config) {\n var that = this, node = config.node, nodeId = node._id, duration, easing = config.easing || Easings.Linear, yoyo = !!config.yoyo, key;\n if (typeof config.duration === 'undefined') {\n duration = 0.3;\n }\n else if (config.duration === 0) {\n duration = 0.001;\n }\n else {\n duration = config.duration;\n }\n this.node = node;\n this._id = idCounter++;\n var layers = node.getLayer() ||\n (node instanceof Konva['Stage'] ? node.getLayers() : null);\n if (!layers) {\n Util.error('Tween constructor have `node` that is not in a layer. Please add node into layer first.');\n }\n this.anim = new Animation(function () {\n that.tween.onEnterFrame();\n }, layers);\n this.tween = new TweenEngine(key, function (i) {\n that._tweenFunc(i);\n }, easing, 0, 1, duration * 1000, yoyo);\n this._addListeners();\n if (!Tween.attrs[nodeId]) {\n Tween.attrs[nodeId] = {};\n }\n if (!Tween.attrs[nodeId][this._id]) {\n Tween.attrs[nodeId][this._id] = {};\n }\n if (!Tween.tweens[nodeId]) {\n Tween.tweens[nodeId] = {};\n }\n for (key in config) {\n if (blacklist[key] === undefined) {\n this._addAttr(key, config[key]);\n }\n }\n this.reset();\n this.onFinish = config.onFinish;\n this.onReset = config.onReset;\n this.onUpdate = config.onUpdate;\n }\n _addAttr(key, end) {\n var node = this.node, nodeId = node._id, start, diff, tweenId, n, len, trueEnd, trueStart, endRGBA;\n tweenId = Tween.tweens[nodeId][key];\n if (tweenId) {\n delete Tween.attrs[nodeId][tweenId][key];\n }\n start = node.getAttr(key);\n if (Util._isArray(end)) {\n diff = [];\n len = Math.max(end.length, start.length);\n if (key === 'points' && end.length !== start.length) {\n if (end.length > start.length) {\n trueStart = start;\n start = Util._prepareArrayForTween(start, end, node.closed());\n }\n else {\n trueEnd = end;\n end = Util._prepareArrayForTween(end, start, node.closed());\n }\n }\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n diff.push(end[n] - start[n]);\n }\n else {\n var startRGBA = Util.colorToRGBA(start[n]);\n endRGBA = Util.colorToRGBA(end[n]);\n start[n] = startRGBA;\n diff.push({\n r: endRGBA.r - startRGBA.r,\n g: endRGBA.g - startRGBA.g,\n b: endRGBA.b - startRGBA.b,\n a: endRGBA.a - startRGBA.a,\n });\n }\n }\n }\n else {\n for (n = 0; n < len; n++) {\n diff.push(end[n] - start[n]);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n start = Util.colorToRGBA(start);\n endRGBA = Util.colorToRGBA(end);\n diff = {\n r: endRGBA.r - start.r,\n g: endRGBA.g - start.g,\n b: endRGBA.b - start.b,\n a: endRGBA.a - start.a,\n };\n }\n else {\n diff = end - start;\n }\n Tween.attrs[nodeId][this._id][key] = {\n start: start,\n diff: diff,\n end: end,\n trueEnd: trueEnd,\n trueStart: trueStart,\n };\n Tween.tweens[nodeId][key] = this._id;\n }\n _tweenFunc(i) {\n var node = this.node, attrs = Tween.attrs[node._id][this._id], key, attr, start, diff, newVal, n, len, end;\n for (key in attrs) {\n attr = attrs[key];\n start = attr.start;\n diff = attr.diff;\n end = attr.end;\n if (Util._isArray(start)) {\n newVal = [];\n len = Math.max(start.length, end.length);\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n else {\n newVal.push('rgba(' +\n Math.round(start[n].r + diff[n].r * i) +\n ',' +\n Math.round(start[n].g + diff[n].g * i) +\n ',' +\n Math.round(start[n].b + diff[n].b * i) +\n ',' +\n (start[n].a + diff[n].a * i) +\n ')');\n }\n }\n }\n else {\n for (n = 0; n < len; n++) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n newVal =\n 'rgba(' +\n Math.round(start.r + diff.r * i) +\n ',' +\n Math.round(start.g + diff.g * i) +\n ',' +\n Math.round(start.b + diff.b * i) +\n ',' +\n (start.a + diff.a * i) +\n ')';\n }\n else {\n newVal = start + diff * i;\n }\n node.setAttr(key, newVal);\n }\n }\n _addListeners() {\n this.tween.onPlay = () => {\n this.anim.start();\n };\n this.tween.onReverse = () => {\n this.anim.start();\n };\n this.tween.onPause = () => {\n this.anim.stop();\n };\n this.tween.onFinish = () => {\n var node = this.node;\n var attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueEnd) {\n node.setAttr('points', attrs.points.trueEnd);\n }\n if (this.onFinish) {\n this.onFinish.call(this);\n }\n };\n this.tween.onReset = () => {\n var node = this.node;\n var attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueStart) {\n node.points(attrs.points.trueStart);\n }\n if (this.onReset) {\n this.onReset();\n }\n };\n this.tween.onUpdate = () => {\n if (this.onUpdate) {\n this.onUpdate.call(this);\n }\n };\n }\n play() {\n this.tween.play();\n return this;\n }\n reverse() {\n this.tween.reverse();\n return this;\n }\n reset() {\n this.tween.reset();\n return this;\n }\n seek(t) {\n this.tween.seek(t * 1000);\n return this;\n }\n pause() {\n this.tween.pause();\n return this;\n }\n finish() {\n this.tween.finish();\n return this;\n }\n destroy() {\n var nodeId = this.node._id, thisId = this._id, attrs = Tween.tweens[nodeId], key;\n this.pause();\n for (key in attrs) {\n delete Tween.tweens[nodeId][key];\n }\n delete Tween.attrs[nodeId][thisId];\n }\n}\nTween.attrs = {};\nTween.tweens = {};\nNode.prototype.to = function (params) {\n var onFinish = params.onFinish;\n params.node = this;\n params.onFinish = function () {\n this.destroy();\n if (onFinish) {\n onFinish();\n }\n };\n var tween = new Tween(params);\n tween.play();\n};\nexport const Easings = {\n BackEaseIn(t, b, c, d) {\n var s = 1.70158;\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n BackEaseOut(t, b, c, d) {\n var s = 1.70158;\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n BackEaseInOut(t, b, c, d) {\n var s = 1.70158;\n if ((t /= d / 2) < 1) {\n return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n }\n return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n },\n ElasticEaseIn(t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (-(a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) + b);\n },\n ElasticEaseOut(t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) +\n c +\n b);\n },\n ElasticEaseInOut(t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n if (t < 1) {\n return (-0.5 *\n (a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +\n b);\n }\n return (a *\n Math.pow(2, -10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p) *\n 0.5 +\n c +\n b);\n },\n BounceEaseOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n }\n else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n }\n else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n }\n else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n BounceEaseIn(t, b, c, d) {\n return c - Easings.BounceEaseOut(d - t, 0, c, d) + b;\n },\n BounceEaseInOut(t, b, c, d) {\n if (t < d / 2) {\n return Easings.BounceEaseIn(t * 2, 0, c, d) * 0.5 + b;\n }\n else {\n return Easings.BounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n },\n EaseIn(t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n EaseOut(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n EaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t + b;\n }\n return (-c / 2) * (--t * (t - 2) - 1) + b;\n },\n StrongEaseIn(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n },\n StrongEaseOut(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n StrongEaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t * t * t * t + b;\n }\n return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;\n },\n Linear(t, b, c, d) {\n return (c * t) / d + b;\n },\n};\n","import { Konva as Global } from './Global.js';\nimport { Util, Transform } from './Util.js';\nimport { Node } from './Node.js';\nimport { Container } from './Container.js';\nimport { Stage, stages } from './Stage.js';\nimport { Layer } from './Layer.js';\nimport { FastLayer } from './FastLayer.js';\nimport { Group } from './Group.js';\nimport { DD } from './DragAndDrop.js';\nimport { Shape, shapes } from './Shape.js';\nimport { Animation } from './Animation.js';\nimport { Tween, Easings } from './Tween.js';\nimport { Context } from './Context.js';\nimport { Canvas } from './Canvas.js';\nexport const Konva = Util._assign(Global, {\n Util,\n Transform,\n Node,\n Container,\n Stage,\n stages,\n Layer,\n FastLayer,\n Group,\n DD,\n Shape,\n shapes,\n Animation,\n Tween,\n Easings,\n Context,\n Canvas,\n});\nexport default Konva;\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Konva } from '../Global.js';\nimport { getNumberValidator, getBooleanValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Arc extends Shape {\n _sceneFunc(context) {\n var angle = Konva.getAngle(this.angle()), clockwise = this.clockwise();\n context.beginPath();\n context.arc(0, 0, this.outerRadius(), 0, angle, clockwise);\n context.arc(0, 0, this.innerRadius(), angle, 0, !clockwise);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n getSelfRect() {\n const innerRadius = this.innerRadius();\n const outerRadius = this.outerRadius();\n const clockwise = this.clockwise();\n const angle = Konva.getAngle(clockwise ? 360 - this.angle() : this.angle());\n const boundLeftRatio = Math.cos(Math.min(angle, Math.PI));\n const boundRightRatio = 1;\n const boundTopRatio = Math.sin(Math.min(Math.max(Math.PI, angle), (3 * Math.PI) / 2));\n const boundBottomRatio = Math.sin(Math.min(angle, Math.PI / 2));\n const boundLeft = boundLeftRatio * (boundLeftRatio > 0 ? innerRadius : outerRadius);\n const boundRight = boundRightRatio * (boundRightRatio > 0 ? outerRadius : innerRadius);\n const boundTop = boundTopRatio * (boundTopRatio > 0 ? innerRadius : outerRadius);\n const boundBottom = boundBottomRatio * (boundBottomRatio > 0 ? outerRadius : innerRadius);\n return {\n x: boundLeft,\n y: clockwise ? -1 * boundBottom : boundTop,\n width: boundRight - boundLeft,\n height: boundBottom - boundTop,\n };\n }\n}\nArc.prototype._centroid = true;\nArc.prototype.className = 'Arc';\nArc.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n_registerNode(Arc);\nFactory.addGetterSetter(Arc, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'outerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'angle', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'clockwise', false, getBooleanValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator, getNumberArrayValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nfunction getControlPoints(x0, y0, x1, y1, x2, y2, t) {\n var d01 = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)), d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)), fa = (t * d01) / (d01 + d12), fb = (t * d12) / (d01 + d12), p1x = x1 - fa * (x2 - x0), p1y = y1 - fa * (y2 - y0), p2x = x1 + fb * (x2 - x0), p2y = y1 + fb * (y2 - y0);\n return [p1x, p1y, p2x, p2y];\n}\nfunction expandPoints(p, tension) {\n var len = p.length, allPoints = [], n, cp;\n for (n = 2; n < len - 2; n += 2) {\n cp = getControlPoints(p[n - 2], p[n - 1], p[n], p[n + 1], p[n + 2], p[n + 3], tension);\n if (isNaN(cp[0])) {\n continue;\n }\n allPoints.push(cp[0]);\n allPoints.push(cp[1]);\n allPoints.push(p[n]);\n allPoints.push(p[n + 1]);\n allPoints.push(cp[2]);\n allPoints.push(cp[3]);\n }\n return allPoints;\n}\nexport class Line extends Shape {\n constructor(config) {\n super(config);\n this.on('pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva', function () {\n this._clearCache('tensionPoints');\n });\n }\n _sceneFunc(context) {\n var points = this.points(), length = points.length, tension = this.tension(), closed = this.closed(), bezier = this.bezier(), tp, len, n;\n if (!length) {\n return;\n }\n context.beginPath();\n context.moveTo(points[0], points[1]);\n if (tension !== 0 && length > 4) {\n tp = this.getTensionPoints();\n len = tp.length;\n n = closed ? 0 : 4;\n if (!closed) {\n context.quadraticCurveTo(tp[0], tp[1], tp[2], tp[3]);\n }\n while (n < len - 2) {\n context.bezierCurveTo(tp[n++], tp[n++], tp[n++], tp[n++], tp[n++], tp[n++]);\n }\n if (!closed) {\n context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);\n }\n }\n else if (bezier) {\n n = 2;\n while (n < length) {\n context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);\n }\n }\n else {\n for (n = 2; n < length; n += 2) {\n context.lineTo(points[n], points[n + 1]);\n }\n }\n if (closed) {\n context.closePath();\n context.fillStrokeShape(this);\n }\n else {\n context.strokeShape(this);\n }\n }\n getTensionPoints() {\n return this._getCache('tensionPoints', this._getTensionPoints);\n }\n _getTensionPoints() {\n if (this.closed()) {\n return this._getTensionPointsClosed();\n }\n else {\n return expandPoints(this.points(), this.tension());\n }\n }\n _getTensionPointsClosed() {\n var p = this.points(), len = p.length, tension = this.tension(), firstControlPoints = getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension), lastControlPoints = getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension), middle = expandPoints(p, tension), tp = [firstControlPoints[2], firstControlPoints[3]]\n .concat(middle)\n .concat([\n lastControlPoints[0],\n lastControlPoints[1],\n p[len - 2],\n p[len - 1],\n lastControlPoints[2],\n lastControlPoints[3],\n firstControlPoints[0],\n firstControlPoints[1],\n p[0],\n p[1],\n ]);\n return tp;\n }\n getWidth() {\n return this.getSelfRect().width;\n }\n getHeight() {\n return this.getSelfRect().height;\n }\n getSelfRect() {\n var points = this.points();\n if (points.length < 4) {\n return {\n x: points[0] || 0,\n y: points[1] || 0,\n width: 0,\n height: 0,\n };\n }\n if (this.tension() !== 0) {\n points = [\n points[0],\n points[1],\n ...this._getTensionPoints(),\n points[points.length - 2],\n points[points.length - 1],\n ];\n }\n else {\n points = this.points();\n }\n var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n}\nLine.prototype.className = 'Line';\nLine.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];\n_registerNode(Line);\nFactory.addGetterSetter(Line, 'closed', false);\nFactory.addGetterSetter(Line, 'bezier', false);\nFactory.addGetterSetter(Line, 'tension', 0, getNumberValidator());\nFactory.addGetterSetter(Line, 'points', [], getNumberArrayValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { _registerNode } from '../Global.js';\nexport class Path extends Shape {\n constructor(config) {\n super(config);\n this.dataArray = [];\n this.pathLength = 0;\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = 0;\n for (var i = 0; i < this.dataArray.length; ++i) {\n this.pathLength += this.dataArray[i].pathLength;\n }\n this.on('dataChange.konva', function () {\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = 0;\n for (var i = 0; i < this.dataArray.length; ++i) {\n this.pathLength += this.dataArray[i].pathLength;\n }\n });\n }\n _sceneFunc(context) {\n var ca = this.dataArray;\n context.beginPath();\n var isClosed = false;\n for (var n = 0; n < ca.length; n++) {\n var c = ca[n].command;\n var p = ca[n].points;\n switch (c) {\n case 'L':\n context.lineTo(p[0], p[1]);\n break;\n case 'M':\n context.moveTo(p[0], p[1]);\n break;\n case 'C':\n context.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);\n break;\n case 'Q':\n context.quadraticCurveTo(p[0], p[1], p[2], p[3]);\n break;\n case 'A':\n var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6], fs = p[7];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(psi);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, theta, theta + dTheta, 1 - fs);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-psi);\n context.translate(-cx, -cy);\n break;\n case 'z':\n isClosed = true;\n context.closePath();\n break;\n }\n }\n if (!isClosed && !this.hasFill()) {\n context.strokeShape(this);\n }\n else {\n context.fillStrokeShape(this);\n }\n }\n getSelfRect() {\n var points = [];\n this.dataArray.forEach(function (data) {\n if (data.command === 'A') {\n var start = data.points[4];\n var dTheta = data.points[5];\n var end = data.points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n if (dTheta < 0) {\n for (let t = start - inc; t > end; t -= inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n else {\n for (let t = start + inc; t < end; t += inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n }\n else if (data.command === 'C') {\n for (let t = 0.0; t <= 1; t += 0.01) {\n const point = Path.getPointOnCubicBezier(t, data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3], data.points[4], data.points[5]);\n points.push(point.x, point.y);\n }\n }\n else {\n points = points.concat(data.points);\n }\n });\n var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n if (!isNaN(x)) {\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n }\n if (!isNaN(y)) {\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getLength() {\n return this.pathLength;\n }\n getPointAtLength(length) {\n var point, i = 0, ii = this.dataArray.length;\n if (!ii) {\n return null;\n }\n while (i < ii && length > this.dataArray[i].pathLength) {\n length -= this.dataArray[i].pathLength;\n ++i;\n }\n if (i === ii) {\n point = this.dataArray[i - 1].points.slice(-2);\n return {\n x: point[0],\n y: point[1],\n };\n }\n if (length < 0.01) {\n point = this.dataArray[i].points.slice(0, 2);\n return {\n x: point[0],\n y: point[1],\n };\n }\n var cp = this.dataArray[i];\n var p = cp.points;\n switch (cp.command) {\n case 'L':\n return Path.getPointOnLine(length, cp.start.x, cp.start.y, p[0], p[1]);\n case 'C':\n return Path.getPointOnCubicBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3], p[4], p[5]);\n case 'Q':\n return Path.getPointOnQuadraticBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3]);\n case 'A':\n var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6];\n theta += (dTheta * length) / cp.pathLength;\n return Path.getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi);\n }\n return null;\n }\n static getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n static getPointOnLine(dist, P1x, P1y, P2x, P2y, fromX, fromY) {\n if (fromX === undefined) {\n fromX = P1x;\n }\n if (fromY === undefined) {\n fromY = P1y;\n }\n var m = (P2y - P1y) / (P2x - P1x + 0.00000001);\n var run = Math.sqrt((dist * dist) / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n var rise = m * run;\n var pt;\n if (P2x === P1x) {\n pt = {\n x: fromX,\n y: fromY + rise,\n };\n }\n else if ((fromY - P1y) / (fromX - P1x + 0.00000001) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise,\n };\n }\n else {\n var ix, iy;\n var len = this.getLineLength(P1x, P1y, P2x, P2y);\n var u = (fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y);\n u = u / (len * len);\n ix = P1x + u * (P2x - P1x);\n iy = P1y + u * (P2y - P1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt((pRun * pRun) / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise,\n };\n }\n return pt;\n }\n static getPointOnCubicBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y, P4x, P4y) {\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n var x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);\n var y = P4y * CB1(pct) + P3y * CB2(pct) + P2y * CB3(pct) + P1y * CB4(pct);\n return {\n x: x,\n y: y,\n };\n }\n static getPointOnQuadraticBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y) {\n function QB1(t) {\n return t * t;\n }\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n var x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);\n var y = P3y * QB1(pct) + P2y * QB2(pct) + P1y * QB3(pct);\n return {\n x: x,\n y: y,\n };\n }\n static getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi), sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta),\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi),\n };\n }\n static parsePathData(data) {\n if (!data) {\n return [];\n }\n var cs = data;\n var cc = [\n 'm',\n 'M',\n 'l',\n 'L',\n 'v',\n 'V',\n 'h',\n 'H',\n 'z',\n 'Z',\n 'c',\n 'C',\n 'q',\n 'Q',\n 't',\n 'T',\n 's',\n 'S',\n 'a',\n 'A',\n ];\n cs = cs.replace(new RegExp(' ', 'g'), ',');\n for (var n = 0; n < cc.length; n++) {\n cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n }\n var arr = cs.split('|');\n var ca = [];\n var coords = [];\n var cpx = 0;\n var cpy = 0;\n var re = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:e[-+]?\\d+)?)/gi;\n var match;\n for (n = 1; n < arr.length; n++) {\n var str = arr[n];\n var c = str.charAt(0);\n str = str.slice(1);\n coords.length = 0;\n while ((match = re.exec(str))) {\n coords.push(match[0]);\n }\n var p = [];\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n if (coords[j] === '00') {\n p.push(0, 0);\n continue;\n }\n var parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n p.push(parsed);\n }\n else {\n p.push(0);\n }\n }\n while (p.length > 0) {\n if (isNaN(p[0])) {\n break;\n }\n var cmd = null;\n var points = [];\n var startX = cpx, startY = cpy;\n var prevCmd, ctlPtx, ctlPty;\n var rx, ry, psi, fa, fs, x1, y1;\n switch (c) {\n case 'l':\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'L':\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'm':\n var dx = p.shift();\n var dy = p.shift();\n cpx += dx;\n cpy += dy;\n cmd = 'M';\n if (ca.length > 2 && ca[ca.length - 1].command === 'z') {\n for (var idx = ca.length - 2; idx >= 0; idx--) {\n if (ca[idx].command === 'M') {\n cpx = ca[idx].points[0] + dx;\n cpy = ca[idx].points[1] + dy;\n break;\n }\n }\n }\n points.push(cpx, cpy);\n c = 'l';\n break;\n case 'M':\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'M';\n points.push(cpx, cpy);\n c = 'L';\n break;\n case 'h':\n cpx += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'H':\n cpx = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'v':\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'V':\n cpy = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'C':\n points.push(p.shift(), p.shift(), p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'c':\n points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'Q':\n points.push(p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'q':\n points.push(cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n case 'a':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n }\n ca.push({\n command: cmd || c,\n points: points,\n start: {\n x: startX,\n y: startY,\n },\n pathLength: this.calcLength(startX, startY, cmd || c, points),\n });\n }\n if (c === 'z' || c === 'Z') {\n ca.push({\n command: 'z',\n points: [],\n start: undefined,\n pathLength: 0,\n });\n }\n }\n return ca;\n }\n static calcLength(x, y, cmd, points) {\n var len, p1, p2, t;\n var path = Path;\n switch (cmd) {\n case 'L':\n return path.getLineLength(x, y, points[0], points[1]);\n case 'C':\n len = 0.0;\n p1 = path.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = path.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n return len;\n case 'Q':\n len = 0.0;\n p1 = path.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = path.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n return len;\n case 'A':\n len = 0.0;\n var start = points[4];\n var dTheta = points[5];\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n p1 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n if (dTheta < 0) {\n for (t = start - inc; t > end; t -= inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n else {\n for (t = start + inc; t < end; t += inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n return 0;\n }\n static convertEndpointToCenterParameterization(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {\n var psi = psiDeg * (Math.PI / 180.0);\n var xp = (Math.cos(psi) * (x1 - x2)) / 2.0 + (Math.sin(psi) * (y1 - y2)) / 2.0;\n var yp = (-1 * Math.sin(psi) * (x1 - x2)) / 2.0 +\n (Math.cos(psi) * (y1 - y2)) / 2.0;\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) /\n (rx * rx * (yp * yp) + ry * ry * (xp * xp)));\n if (fa === fs) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n var cxp = (f * rx * yp) / ry;\n var cyp = (f * -ry * xp) / rx;\n var cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;\n var vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n };\n var vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n };\n var vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n };\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n return [cx, cy, rx, ry, theta, dTheta, psi, fs];\n }\n}\nPath.prototype.className = 'Path';\nPath.prototype._attrsAffectingSize = ['data'];\n_registerNode(Path);\nFactory.addGetterSetter(Path, 'data');\n","import { Factory } from '../Factory.js';\nimport { Line } from './Line.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nimport { Path } from './Path.js';\nexport class Arrow extends Line {\n _sceneFunc(ctx) {\n super._sceneFunc(ctx);\n var PI2 = Math.PI * 2;\n var points = this.points();\n var tp = points;\n var fromTension = this.tension() !== 0 && points.length > 4;\n if (fromTension) {\n tp = this.getTensionPoints();\n }\n var length = this.pointerLength();\n var n = points.length;\n var dx, dy;\n if (fromTension) {\n const lp = [\n tp[tp.length - 4],\n tp[tp.length - 3],\n tp[tp.length - 2],\n tp[tp.length - 1],\n points[n - 2],\n points[n - 1],\n ];\n const lastLength = Path.calcLength(tp[tp.length - 4], tp[tp.length - 3], 'C', lp);\n const previous = Path.getPointOnQuadraticBezier(Math.min(1, 1 - length / lastLength), lp[0], lp[1], lp[2], lp[3], lp[4], lp[5]);\n dx = points[n - 2] - previous.x;\n dy = points[n - 1] - previous.y;\n }\n else {\n dx = points[n - 2] - points[n - 4];\n dy = points[n - 1] - points[n - 3];\n }\n var radians = (Math.atan2(dy, dx) + PI2) % PI2;\n var width = this.pointerWidth();\n if (this.pointerAtEnding()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[n - 2], points[n - 1]);\n ctx.rotate(radians);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n if (this.pointerAtBeginning()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[0], points[1]);\n if (fromTension) {\n dx = (tp[0] + tp[2]) / 2 - points[0];\n dy = (tp[1] + tp[3]) / 2 - points[1];\n }\n else {\n dx = points[2] - points[0];\n dy = points[3] - points[1];\n }\n ctx.rotate((Math.atan2(-dy, -dx) + PI2) % PI2);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n }\n __fillStroke(ctx) {\n var isDashEnabled = this.dashEnabled();\n if (isDashEnabled) {\n this.attrs.dashEnabled = false;\n ctx.setLineDash([]);\n }\n ctx.fillStrokeShape(this);\n if (isDashEnabled) {\n this.attrs.dashEnabled = true;\n }\n }\n getSelfRect() {\n const lineRect = super.getSelfRect();\n const offset = this.pointerWidth() / 2;\n return {\n x: lineRect.x - offset,\n y: lineRect.y - offset,\n width: lineRect.width + offset * 2,\n height: lineRect.height + offset * 2,\n };\n }\n}\nArrow.prototype.className = 'Arrow';\n_registerNode(Arrow);\nFactory.addGetterSetter(Arrow, 'pointerLength', 10, getNumberValidator());\nFactory.addGetterSetter(Arrow, 'pointerWidth', 10, getNumberValidator());\nFactory.addGetterSetter(Arrow, 'pointerAtBeginning', false);\nFactory.addGetterSetter(Arrow, 'pointerAtEnding', true);\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Circle extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.attrs.radius || 0, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n if (this.radius() !== width / 2) {\n this.radius(width / 2);\n }\n }\n setHeight(height) {\n if (this.radius() !== height / 2) {\n this.radius(height / 2);\n }\n }\n}\nCircle.prototype._centroid = true;\nCircle.prototype.className = 'Circle';\nCircle.prototype._attrsAffectingSize = ['radius'];\n_registerNode(Circle);\nFactory.addGetterSetter(Circle, 'radius', 0, getNumberValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Ellipse extends Shape {\n _sceneFunc(context) {\n var rx = this.radiusX(), ry = this.radiusY();\n context.beginPath();\n context.save();\n if (rx !== ry) {\n context.scale(1, ry / rx);\n }\n context.arc(0, 0, rx, 0, Math.PI * 2, false);\n context.restore();\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radiusX() * 2;\n }\n getHeight() {\n return this.radiusY() * 2;\n }\n setWidth(width) {\n this.radiusX(width / 2);\n }\n setHeight(height) {\n this.radiusY(height / 2);\n }\n}\nEllipse.prototype.className = 'Ellipse';\nEllipse.prototype._centroid = true;\nEllipse.prototype._attrsAffectingSize = ['radiusX', 'radiusY'];\n_registerNode(Ellipse);\nFactory.addComponentsGetterSetter(Ellipse, 'radius', ['x', 'y']);\nFactory.addGetterSetter(Ellipse, 'radiusX', 0, getNumberValidator());\nFactory.addGetterSetter(Ellipse, 'radiusY', 0, getNumberValidator());\n","import { Util } from '../Util.js';\nimport { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { _registerNode } from '../Global.js';\nimport { getNumberOrArrayOfNumbersValidator, getNumberValidator, } from '../Validators.js';\nexport class Image extends Shape {\n constructor(attrs) {\n super(attrs);\n this.on('imageChange.konva', () => {\n this._setImageLoad();\n });\n this._setImageLoad();\n }\n _setImageLoad() {\n const image = this.image();\n if (image && image.complete) {\n return;\n }\n if (image && image.readyState === 4) {\n return;\n }\n if (image && image['addEventListener']) {\n image['addEventListener']('load', () => {\n this._requestDraw();\n });\n }\n }\n _useBufferCanvas() {\n return super._useBufferCanvas(true);\n }\n _sceneFunc(context) {\n const width = this.getWidth();\n const height = this.getHeight();\n const cornerRadius = this.cornerRadius();\n const image = this.attrs.image;\n let params;\n if (image) {\n const cropWidth = this.attrs.cropWidth;\n const cropHeight = this.attrs.cropHeight;\n if (cropWidth && cropHeight) {\n params = [\n image,\n this.cropX(),\n this.cropY(),\n cropWidth,\n cropHeight,\n 0,\n 0,\n width,\n height,\n ];\n }\n else {\n params = [image, 0, 0, width, height];\n }\n }\n if (this.hasFill() || this.hasStroke() || cornerRadius) {\n context.beginPath();\n cornerRadius\n ? Util.drawRoundedRectPath(context, width, height, cornerRadius)\n : context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (cornerRadius) {\n context.clip();\n }\n context.drawImage.apply(context, params);\n }\n }\n _hitFunc(context) {\n var width = this.width(), height = this.height(), cornerRadius = this.cornerRadius();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n Util.drawRoundedRectPath(context, width, height, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n var _a, _b;\n return (_a = this.attrs.width) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.width;\n }\n getHeight() {\n var _a, _b;\n return (_a = this.attrs.height) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.height;\n }\n static fromURL(url, callback, onError = null) {\n var img = Util.createImageElement();\n img.onload = function () {\n var image = new Image({\n image: img,\n });\n callback(image);\n };\n img.onerror = onError;\n img.crossOrigin = 'Anonymous';\n img.src = url;\n }\n}\nImage.prototype.className = 'Image';\n_registerNode(Image);\nFactory.addGetterSetter(Image, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\nFactory.addGetterSetter(Image, 'image');\nFactory.addComponentsGetterSetter(Image, 'crop', ['x', 'y', 'width', 'height']);\nFactory.addGetterSetter(Image, 'cropX', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropY', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropWidth', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropHeight', 0, getNumberValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Group } from '../Group.js';\nimport { getNumberOrArrayOfNumbersValidator, getNumberValidator, } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nvar ATTR_CHANGE_LIST = [\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'padding',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'pointerDirection',\n 'pointerWidth',\n 'pointerHeight',\n], CHANGE_KONVA = 'Change.konva', NONE = 'none', UP = 'up', RIGHT = 'right', DOWN = 'down', LEFT = 'left', attrChangeListLen = ATTR_CHANGE_LIST.length;\nexport class Label extends Group {\n constructor(config) {\n super(config);\n this.on('add.konva', function (evt) {\n this._addListeners(evt.child);\n this._sync();\n });\n }\n getText() {\n return this.find('Text')[0];\n }\n getTag() {\n return this.find('Tag')[0];\n }\n _addListeners(text) {\n var that = this, n;\n var func = function () {\n that._sync();\n };\n for (n = 0; n < attrChangeListLen; n++) {\n text.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, func);\n }\n }\n getWidth() {\n return this.getText().width();\n }\n getHeight() {\n return this.getText().height();\n }\n _sync() {\n var text = this.getText(), tag = this.getTag(), width, height, pointerDirection, pointerWidth, x, y, pointerHeight;\n if (text && tag) {\n width = text.width();\n height = text.height();\n pointerDirection = tag.pointerDirection();\n pointerWidth = tag.pointerWidth();\n pointerHeight = tag.pointerHeight();\n x = 0;\n y = 0;\n switch (pointerDirection) {\n case UP:\n x = width / 2;\n y = -1 * pointerHeight;\n break;\n case RIGHT:\n x = width + pointerWidth;\n y = height / 2;\n break;\n case DOWN:\n x = width / 2;\n y = height + pointerHeight;\n break;\n case LEFT:\n x = -1 * pointerWidth;\n y = height / 2;\n break;\n }\n tag.setAttrs({\n x: -1 * x,\n y: -1 * y,\n width: width,\n height: height,\n });\n text.setAttrs({\n x: -1 * x,\n y: -1 * y,\n });\n }\n }\n}\nLabel.prototype.className = 'Label';\n_registerNode(Label);\nexport class Tag extends Shape {\n _sceneFunc(context) {\n var width = this.width(), height = this.height(), pointerDirection = this.pointerDirection(), pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), cornerRadius = this.cornerRadius();\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft =\n topRight =\n bottomLeft =\n bottomRight =\n Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.beginPath();\n context.moveTo(topLeft, 0);\n if (pointerDirection === UP) {\n context.lineTo((width - pointerWidth) / 2, 0);\n context.lineTo(width / 2, -1 * pointerHeight);\n context.lineTo((width + pointerWidth) / 2, 0);\n }\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n if (pointerDirection === RIGHT) {\n context.lineTo(width, (height - pointerHeight) / 2);\n context.lineTo(width + pointerWidth, height / 2);\n context.lineTo(width, (height + pointerHeight) / 2);\n }\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n if (pointerDirection === DOWN) {\n context.lineTo((width + pointerWidth) / 2, height);\n context.lineTo(width / 2, height + pointerHeight);\n context.lineTo((width - pointerWidth) / 2, height);\n }\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n if (pointerDirection === LEFT) {\n context.lineTo(0, (height + pointerHeight) / 2);\n context.lineTo(-1 * pointerWidth, height / 2);\n context.lineTo(0, (height - pointerHeight) / 2);\n }\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getSelfRect() {\n var x = 0, y = 0, pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), direction = this.pointerDirection(), width = this.width(), height = this.height();\n if (direction === UP) {\n y -= pointerHeight;\n height += pointerHeight;\n }\n else if (direction === DOWN) {\n height += pointerHeight;\n }\n else if (direction === LEFT) {\n x -= pointerWidth * 1.5;\n width += pointerWidth;\n }\n else if (direction === RIGHT) {\n width += pointerWidth * 1.5;\n }\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n };\n }\n}\nTag.prototype.className = 'Tag';\n_registerNode(Tag);\nFactory.addGetterSetter(Tag, 'pointerDirection', NONE);\nFactory.addGetterSetter(Tag, 'pointerWidth', 0, getNumberValidator());\nFactory.addGetterSetter(Tag, 'pointerHeight', 0, getNumberValidator());\nFactory.addGetterSetter(Tag, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { _registerNode } from '../Global.js';\nimport { Util } from '../Util.js';\nimport { getNumberOrArrayOfNumbersValidator } from '../Validators.js';\nexport class Rect extends Shape {\n _sceneFunc(context) {\n var cornerRadius = this.cornerRadius(), width = this.width(), height = this.height();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n Util.drawRoundedRectPath(context, width, height, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n}\nRect.prototype.className = 'Rect';\n_registerNode(Rect);\nFactory.addGetterSetter(Rect, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class RegularPolygon extends Shape {\n _sceneFunc(context) {\n const points = this._getPoints();\n context.beginPath();\n context.moveTo(points[0].x, points[0].y);\n for (var n = 1; n < points.length; n++) {\n context.lineTo(points[n].x, points[n].y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n _getPoints() {\n const sides = this.attrs.sides;\n const radius = this.attrs.radius || 0;\n const points = [];\n for (var n = 0; n < sides; n++) {\n points.push({\n x: radius * Math.sin((n * 2 * Math.PI) / sides),\n y: -1 * radius * Math.cos((n * 2 * Math.PI) / sides),\n });\n }\n return points;\n }\n getSelfRect() {\n const points = this._getPoints();\n var minX = points[0].x;\n var maxX = points[0].y;\n var minY = points[0].x;\n var maxY = points[0].y;\n points.forEach((point) => {\n minX = Math.min(minX, point.x);\n maxX = Math.max(maxX, point.x);\n minY = Math.min(minY, point.y);\n maxY = Math.max(maxY, point.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nRegularPolygon.prototype.className = 'RegularPolygon';\nRegularPolygon.prototype._centroid = true;\nRegularPolygon.prototype._attrsAffectingSize = ['radius'];\n_registerNode(RegularPolygon);\nFactory.addGetterSetter(RegularPolygon, 'radius', 0, getNumberValidator());\nFactory.addGetterSetter(RegularPolygon, 'sides', 0, getNumberValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nvar PIx2 = Math.PI * 2;\nexport class Ring extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.innerRadius(), 0, PIx2, false);\n context.moveTo(this.outerRadius(), 0);\n context.arc(0, 0, this.outerRadius(), PIx2, 0, true);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nRing.prototype.className = 'Ring';\nRing.prototype._centroid = true;\nRing.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n_registerNode(Ring);\nFactory.addGetterSetter(Ring, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Ring, 'outerRadius', 0, getNumberValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Animation } from '../Animation.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Sprite extends Shape {\n constructor(config) {\n super(config);\n this._updated = true;\n this.anim = new Animation(() => {\n var updated = this._updated;\n this._updated = false;\n return updated;\n });\n this.on('animationChange.konva', function () {\n this.frameIndex(0);\n });\n this.on('frameIndexChange.konva', function () {\n this._updated = true;\n });\n this.on('frameRateChange.konva', function () {\n if (!this.anim.isRunning()) {\n return;\n }\n clearInterval(this.interval);\n this._setInterval();\n });\n }\n _sceneFunc(context) {\n var anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), x = set[ix4 + 0], y = set[ix4 + 1], width = set[ix4 + 2], height = set[ix4 + 3], image = this.image();\n if (this.hasFill() || this.hasStroke()) {\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (offsets) {\n var offset = offsets[anim], ix2 = index * 2;\n context.drawImage(image, x, y, width, height, offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.drawImage(image, x, y, width, height, 0, 0, width, height);\n }\n }\n }\n _hitFunc(context) {\n var anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), width = set[ix4 + 2], height = set[ix4 + 3];\n context.beginPath();\n if (offsets) {\n var offset = offsets[anim];\n var ix2 = index * 2;\n context.rect(offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.rect(0, 0, width, height);\n }\n context.closePath();\n context.fillShape(this);\n }\n _useBufferCanvas() {\n return super._useBufferCanvas(true);\n }\n _setInterval() {\n var that = this;\n this.interval = setInterval(function () {\n that._updateIndex();\n }, 1000 / this.frameRate());\n }\n start() {\n if (this.isRunning()) {\n return;\n }\n var layer = this.getLayer();\n this.anim.setLayers(layer);\n this._setInterval();\n this.anim.start();\n }\n stop() {\n this.anim.stop();\n clearInterval(this.interval);\n }\n isRunning() {\n return this.anim.isRunning();\n }\n _updateIndex() {\n var index = this.frameIndex(), animation = this.animation(), animations = this.animations(), anim = animations[animation], len = anim.length / 4;\n if (index < len - 1) {\n this.frameIndex(index + 1);\n }\n else {\n this.frameIndex(0);\n }\n }\n}\nSprite.prototype.className = 'Sprite';\n_registerNode(Sprite);\nFactory.addGetterSetter(Sprite, 'animation');\nFactory.addGetterSetter(Sprite, 'animations');\nFactory.addGetterSetter(Sprite, 'frameOffsets');\nFactory.addGetterSetter(Sprite, 'image');\nFactory.addGetterSetter(Sprite, 'frameIndex', 0, getNumberValidator());\nFactory.addGetterSetter(Sprite, 'frameRate', 17, getNumberValidator());\nFactory.backCompat(Sprite, {\n index: 'frameIndex',\n getIndex: 'getFrameIndex',\n setIndex: 'setFrameIndex',\n});\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Star extends Shape {\n _sceneFunc(context) {\n var innerRadius = this.innerRadius(), outerRadius = this.outerRadius(), numPoints = this.numPoints();\n context.beginPath();\n context.moveTo(0, 0 - outerRadius);\n for (var n = 1; n < numPoints * 2; n++) {\n var radius = n % 2 === 0 ? outerRadius : innerRadius;\n var x = radius * Math.sin((n * Math.PI) / numPoints);\n var y = -1 * radius * Math.cos((n * Math.PI) / numPoints);\n context.lineTo(x, y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nStar.prototype.className = 'Star';\nStar.prototype._centroid = true;\nStar.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n_registerNode(Star);\nFactory.addGetterSetter(Star, 'numPoints', 5, getNumberValidator());\nFactory.addGetterSetter(Star, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Star, 'outerRadius', 0, getNumberValidator());\n","import { Util } from '../Util.js';\nimport { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator, getStringValidator, getNumberOrAutoValidator, getBooleanValidator, } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport function stringToArray(string) {\n return Array.from(string);\n}\nvar AUTO = 'auto', CENTER = 'center', JUSTIFY = 'justify', CHANGE_KONVA = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT = 'left', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE = ' ', RIGHT = 'right', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontVariant',\n 'padding',\n 'align',\n 'verticalAlign',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'wrap',\n 'ellipsis',\n 'letterSpacing',\n], attrChangeListLen = ATTR_CHANGE_LIST.length;\nfunction normalizeFontFamily(fontFamily) {\n return fontFamily\n .split(',')\n .map((family) => {\n family = family.trim();\n const hasSpace = family.indexOf(' ') >= 0;\n const hasQuotes = family.indexOf('\"') >= 0 || family.indexOf(\"'\") >= 0;\n if (hasSpace && !hasQuotes) {\n family = `\"${family}\"`;\n }\n return family;\n })\n .join(', ');\n}\nvar dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util.createCanvasElement().getContext(CONTEXT_2D);\n return dummyContext;\n}\nfunction _fillFunc(context) {\n context.fillText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction checkDefaultFill(config) {\n config = config || {};\n if (!config.fillLinearGradientColorStops &&\n !config.fillRadialGradientColorStops &&\n !config.fillPatternImage) {\n config.fill = config.fill || 'black';\n }\n return config;\n}\nexport class Text extends Shape {\n constructor(config) {\n super(checkDefaultFill(config));\n this._partialTextX = 0;\n this._partialTextY = 0;\n for (var n = 0; n < attrChangeListLen; n++) {\n this.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, this._setTextData);\n }\n this._setTextData();\n }\n _sceneFunc(context) {\n var textArr = this.textArr, textArrLen = textArr.length;\n if (!this.text()) {\n return;\n }\n var padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, verticalAlign = this.verticalAlign(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), fill = this.fill(), textDecoration = this.textDecoration(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, n;\n var translateY = 0;\n var translateY = lineHeightPx / 2;\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', MIDDLE);\n context.setAttr('textAlign', LEFT);\n if (verticalAlign === MIDDLE) {\n alignY = (this.getHeight() - textArrLen * lineHeightPx - padding * 2) / 2;\n }\n else if (verticalAlign === BOTTOM) {\n alignY = this.getHeight() - textArrLen * lineHeightPx - padding * 2;\n }\n context.translate(padding, alignY + padding);\n for (n = 0; n < textArrLen; n++) {\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n var obj = textArr[n], text = obj.text, width = obj.width, lastLine = obj.lastInParagraph, spacesNumber, oneWord, lineWidth;\n context.save();\n if (align === RIGHT) {\n lineTranslateX += totalWidth - width - padding * 2;\n }\n else if (align === CENTER) {\n lineTranslateX += (totalWidth - width - padding * 2) / 2;\n }\n if (shouldUnderline) {\n context.save();\n context.beginPath();\n context.moveTo(lineTranslateX, translateY + lineTranslateY + Math.round(fontSize / 2));\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && !lastLine ? totalWidth - padding * 2 : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY + Math.round(fontSize / 2));\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n if (shouldLineThrough) {\n context.save();\n context.beginPath();\n context.moveTo(lineTranslateX, translateY + lineTranslateY);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && lastLine && !oneWord\n ? totalWidth - padding * 2\n : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY);\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n if (letterSpacing !== 0 || align === JUSTIFY) {\n spacesNumber = text.split(' ').length - 1;\n var array = stringToArray(text);\n for (var li = 0; li < array.length; li++) {\n var letter = array[li];\n if (letter === ' ' && !lastLine && align === JUSTIFY) {\n lineTranslateX += (totalWidth - padding * 2 - width) / spacesNumber;\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = letter;\n context.fillStrokeShape(this);\n lineTranslateX += this.measureSize(letter).width + letterSpacing;\n }\n }\n else {\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = text;\n context.fillStrokeShape(this);\n }\n context.restore();\n if (textArrLen > 1) {\n translateY += lineHeightPx;\n }\n }\n }\n _hitFunc(context) {\n var width = this.getWidth(), height = this.getHeight();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n setText(text) {\n var str = Util._isString(text)\n ? text\n : text === null || text === undefined\n ? ''\n : text + '';\n this._setAttr(TEXT, str);\n return this;\n }\n getWidth() {\n var isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;\n return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;\n }\n getHeight() {\n var isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;\n return isAuto\n ? this.fontSize() * this.textArr.length * this.lineHeight() +\n this.padding() * 2\n : this.attrs.height;\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n measureSize(text) {\n var _context = getDummyContext(), fontSize = this.fontSize(), metrics;\n _context.save();\n _context.font = this._getContextFont();\n metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: fontSize,\n };\n }\n _getContextFont() {\n return (this.fontStyle() +\n SPACE +\n this.fontVariant() +\n SPACE +\n (this.fontSize() + PX_SPACE) +\n normalizeFontFamily(this.fontFamily()));\n }\n _addTextLine(line) {\n const align = this.align();\n if (align === JUSTIFY) {\n line = line.trim();\n }\n var width = this._getTextWidth(line);\n return this.textArr.push({\n text: line,\n width: width,\n lastInParagraph: false,\n });\n }\n _getTextWidth(text) {\n var letterSpacing = this.letterSpacing();\n var length = text.length;\n return (getDummyContext().measureText(text).width +\n (length ? letterSpacing * (length - 1) : 0));\n }\n _setTextData() {\n var lines = this.text().split('\\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(), shouldWrap = wrap !== NONE, wrapAtWord = wrap !== CHAR && shouldWrap, shouldAddEllipsis = this.ellipsis();\n this.textArr = [];\n getDummyContext().font = this._getContextFont();\n var additionalWidth = shouldAddEllipsis ? this._getTextWidth(ELLIPSIS) : 0;\n for (var i = 0, max = lines.length; i < max; ++i) {\n var line = lines[i];\n var lineWidth = this._getTextWidth(line);\n if (fixedWidth && lineWidth > maxWidth) {\n while (line.length > 0) {\n var low = 0, high = line.length, match = '', matchWidth = 0;\n while (low < high) {\n var mid = (low + high) >>> 1, substr = line.slice(0, mid + 1), substrWidth = this._getTextWidth(substr) + additionalWidth;\n if (substrWidth <= maxWidth) {\n low = mid + 1;\n match = substr;\n matchWidth = substrWidth;\n }\n else {\n high = mid;\n }\n }\n if (match) {\n if (wrapAtWord) {\n var wrapIndex;\n var nextChar = line[match.length];\n var nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;\n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {\n wrapIndex = match.length;\n }\n else {\n wrapIndex =\n Math.max(match.lastIndexOf(SPACE), match.lastIndexOf(DASH)) +\n 1;\n }\n if (wrapIndex > 0) {\n low = wrapIndex;\n match = match.slice(0, low);\n matchWidth = this._getTextWidth(match);\n }\n }\n match = match.trimRight();\n this._addTextLine(match);\n textWidth = Math.max(textWidth, matchWidth);\n currentHeightPx += lineHeightPx;\n var shouldHandleEllipsis = this._shouldHandleEllipsis(currentHeightPx);\n if (shouldHandleEllipsis) {\n this._tryToAddEllipsisToLastLine();\n break;\n }\n line = line.slice(low);\n line = line.trimLeft();\n if (line.length > 0) {\n lineWidth = this._getTextWidth(line);\n if (lineWidth <= maxWidth) {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n break;\n }\n }\n }\n else {\n break;\n }\n }\n }\n else {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n if (this._shouldHandleEllipsis(currentHeightPx) && i < max - 1) {\n this._tryToAddEllipsisToLastLine();\n }\n }\n if (this.textArr[this.textArr.length - 1]) {\n this.textArr[this.textArr.length - 1].lastInParagraph = true;\n }\n if (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n }\n this.textHeight = fontSize;\n this.textWidth = textWidth;\n }\n _shouldHandleEllipsis(currentHeightPx) {\n var fontSize = +this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, height = this.attrs.height, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxHeightPx = height - padding * 2, wrap = this.wrap(), shouldWrap = wrap !== NONE;\n return (!shouldWrap ||\n (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx));\n }\n _tryToAddEllipsisToLastLine() {\n var width = this.attrs.width, fixedWidth = width !== AUTO && width !== undefined, padding = this.padding(), maxWidth = width - padding * 2, shouldAddEllipsis = this.ellipsis();\n var lastLine = this.textArr[this.textArr.length - 1];\n if (!lastLine || !shouldAddEllipsis) {\n return;\n }\n if (fixedWidth) {\n var haveSpace = this._getTextWidth(lastLine.text + ELLIPSIS) < maxWidth;\n if (!haveSpace) {\n lastLine.text = lastLine.text.slice(0, lastLine.text.length - 3);\n }\n }\n this.textArr.splice(this.textArr.length - 1, 1);\n this._addTextLine(lastLine.text + ELLIPSIS);\n }\n getStrokeScaleEnabled() {\n return true;\n }\n}\nText.prototype._fillFunc = _fillFunc;\nText.prototype._strokeFunc = _strokeFunc;\nText.prototype.className = TEXT_UPPER;\nText.prototype._attrsAffectingSize = [\n 'text',\n 'fontSize',\n 'padding',\n 'wrap',\n 'lineHeight',\n 'letterSpacing',\n];\n_registerNode(Text);\nFactory.overWriteSetter(Text, 'width', getNumberOrAutoValidator());\nFactory.overWriteSetter(Text, 'height', getNumberOrAutoValidator());\nFactory.addGetterSetter(Text, 'fontFamily', 'Arial');\nFactory.addGetterSetter(Text, 'fontSize', 12, getNumberValidator());\nFactory.addGetterSetter(Text, 'fontStyle', NORMAL);\nFactory.addGetterSetter(Text, 'fontVariant', NORMAL);\nFactory.addGetterSetter(Text, 'padding', 0, getNumberValidator());\nFactory.addGetterSetter(Text, 'align', LEFT);\nFactory.addGetterSetter(Text, 'verticalAlign', TOP);\nFactory.addGetterSetter(Text, 'lineHeight', 1, getNumberValidator());\nFactory.addGetterSetter(Text, 'wrap', WORD);\nFactory.addGetterSetter(Text, 'ellipsis', false, getBooleanValidator());\nFactory.addGetterSetter(Text, 'letterSpacing', 0, getNumberValidator());\nFactory.addGetterSetter(Text, 'text', '', getStringValidator());\nFactory.addGetterSetter(Text, 'textDecoration', '');\n","import { Util } from '../Util.js';\nimport { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Path } from './Path.js';\nimport { Text, stringToArray } from './Text.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nvar EMPTY_STRING = '', NORMAL = 'normal';\nfunction _fillFunc(context) {\n context.fillText(this.partialText, 0, 0);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this.partialText, 0, 0);\n}\nexport class TextPath extends Shape {\n constructor(config) {\n super(config);\n this.dummyCanvas = Util.createCanvasElement();\n this.dataArray = [];\n this.dataArray = Path.parsePathData(this.attrs.data);\n this.on('dataChange.konva', function () {\n this.dataArray = Path.parsePathData(this.attrs.data);\n this._setTextData();\n });\n this.on('textChange.konva alignChange.konva letterSpacingChange.konva kerningFuncChange.konva fontSizeChange.konva fontFamilyChange.konva', this._setTextData);\n this._setTextData();\n }\n _sceneFunc(context) {\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', this.textBaseline());\n context.setAttr('textAlign', 'left');\n context.save();\n var textDecoration = this.textDecoration();\n var fill = this.fill();\n var fontSize = this.fontSize();\n var glyphInfo = this.glyphInfo;\n if (textDecoration === 'underline') {\n context.beginPath();\n }\n for (var i = 0; i < glyphInfo.length; i++) {\n context.save();\n var p0 = glyphInfo[i].p0;\n context.translate(p0.x, p0.y);\n context.rotate(glyphInfo[i].rotation);\n this.partialText = glyphInfo[i].text;\n context.fillStrokeShape(this);\n if (textDecoration === 'underline') {\n if (i === 0) {\n context.moveTo(0, fontSize / 2 + 1);\n }\n context.lineTo(fontSize, fontSize / 2 + 1);\n }\n context.restore();\n }\n if (textDecoration === 'underline') {\n context.strokeStyle = fill;\n context.lineWidth = fontSize / 20;\n context.stroke();\n }\n context.restore();\n }\n _hitFunc(context) {\n context.beginPath();\n var glyphInfo = this.glyphInfo;\n if (glyphInfo.length >= 1) {\n var p0 = glyphInfo[0].p0;\n context.moveTo(p0.x, p0.y);\n }\n for (var i = 0; i < glyphInfo.length; i++) {\n var p1 = glyphInfo[i].p1;\n context.lineTo(p1.x, p1.y);\n }\n context.setAttr('lineWidth', this.fontSize());\n context.setAttr('strokeStyle', this.colorKey);\n context.stroke();\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n setText(text) {\n return Text.prototype.setText.call(this, text);\n }\n _getContextFont() {\n return Text.prototype._getContextFont.call(this);\n }\n _getTextSize(text) {\n var dummyCanvas = this.dummyCanvas;\n var _context = dummyCanvas.getContext('2d');\n _context.save();\n _context.font = this._getContextFont();\n var metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: parseInt(this.attrs.fontSize, 10),\n };\n }\n _setTextData() {\n var that = this;\n var size = this._getTextSize(this.attrs.text);\n var letterSpacing = this.letterSpacing();\n var align = this.align();\n var kerningFunc = this.kerningFunc();\n this.textWidth = size.width;\n this.textHeight = size.height;\n var textFullWidth = Math.max(this.textWidth + ((this.attrs.text || '').length - 1) * letterSpacing, 0);\n this.glyphInfo = [];\n var fullPathWidth = 0;\n for (var l = 0; l < that.dataArray.length; l++) {\n if (that.dataArray[l].pathLength > 0) {\n fullPathWidth += that.dataArray[l].pathLength;\n }\n }\n var offset = 0;\n if (align === 'center') {\n offset = Math.max(0, fullPathWidth / 2 - textFullWidth / 2);\n }\n if (align === 'right') {\n offset = Math.max(0, fullPathWidth - textFullWidth);\n }\n var charArr = stringToArray(this.text());\n var spacesNumber = this.text().split(' ').length - 1;\n var p0, p1, pathCmd;\n var pIndex = -1;\n var currentT = 0;\n var getNextPathSegment = function () {\n currentT = 0;\n var pathData = that.dataArray;\n for (var j = pIndex + 1; j < pathData.length; j++) {\n if (pathData[j].pathLength > 0) {\n pIndex = j;\n return pathData[j];\n }\n else if (pathData[j].command === 'M') {\n p0 = {\n x: pathData[j].points[0],\n y: pathData[j].points[1],\n };\n }\n }\n return {};\n };\n var findSegmentToFitCharacter = function (c) {\n var glyphWidth = that._getTextSize(c).width + letterSpacing;\n if (c === ' ' && align === 'justify') {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n var currLen = 0;\n var attempts = 0;\n p1 = undefined;\n while (Math.abs(glyphWidth - currLen) / glyphWidth > 0.01 &&\n attempts < 20) {\n attempts++;\n var cumulativePathLength = currLen;\n while (pathCmd === undefined) {\n pathCmd = getNextPathSegment();\n if (pathCmd &&\n cumulativePathLength + pathCmd.pathLength < glyphWidth) {\n cumulativePathLength += pathCmd.pathLength;\n pathCmd = undefined;\n }\n }\n if (Object.keys(pathCmd).length === 0 || p0 === undefined) {\n return undefined;\n }\n var needNewSegment = false;\n switch (pathCmd.command) {\n case 'L':\n if (Path.getLineLength(p0.x, p0.y, pathCmd.points[0], pathCmd.points[1]) > glyphWidth) {\n p1 = Path.getPointOnLine(glyphWidth, p0.x, p0.y, pathCmd.points[0], pathCmd.points[1], p0.x, p0.y);\n }\n else {\n pathCmd = undefined;\n }\n break;\n case 'A':\n var start = pathCmd.points[4];\n var dTheta = pathCmd.points[5];\n var end = pathCmd.points[4] + dTheta;\n if (currentT === 0) {\n currentT = start + 0.00000001;\n }\n else if (glyphWidth > currLen) {\n currentT += ((Math.PI / 180.0) * dTheta) / Math.abs(dTheta);\n }\n else {\n currentT -= ((Math.PI / 360.0) * dTheta) / Math.abs(dTheta);\n }\n if ((dTheta < 0 && currentT < end) ||\n (dTheta >= 0 && currentT > end)) {\n currentT = end;\n needNewSegment = true;\n }\n p1 = Path.getPointOnEllipticalArc(pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], currentT, pathCmd.points[6]);\n break;\n case 'C':\n if (currentT === 0) {\n if (glyphWidth > pathCmd.pathLength) {\n currentT = 0.00000001;\n }\n else {\n currentT = glyphWidth / pathCmd.pathLength;\n }\n }\n else if (glyphWidth > currLen) {\n currentT += (glyphWidth - currLen) / pathCmd.pathLength / 2;\n }\n else {\n currentT = Math.max(currentT - (currLen - glyphWidth) / pathCmd.pathLength / 2, 0);\n }\n if (currentT > 1.0) {\n currentT = 1.0;\n needNewSegment = true;\n }\n p1 = Path.getPointOnCubicBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], pathCmd.points[4], pathCmd.points[5]);\n break;\n case 'Q':\n if (currentT === 0) {\n currentT = glyphWidth / pathCmd.pathLength;\n }\n else if (glyphWidth > currLen) {\n currentT += (glyphWidth - currLen) / pathCmd.pathLength;\n }\n else {\n currentT -= (currLen - glyphWidth) / pathCmd.pathLength;\n }\n if (currentT > 1.0) {\n currentT = 1.0;\n needNewSegment = true;\n }\n p1 = Path.getPointOnQuadraticBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3]);\n break;\n }\n if (p1 !== undefined) {\n currLen = Path.getLineLength(p0.x, p0.y, p1.x, p1.y);\n }\n if (needNewSegment) {\n needNewSegment = false;\n pathCmd = undefined;\n }\n }\n };\n var testChar = 'C';\n var glyphWidth = that._getTextSize(testChar).width + letterSpacing;\n var lettersInOffset = offset / glyphWidth - 1;\n for (var k = 0; k < lettersInOffset; k++) {\n findSegmentToFitCharacter(testChar);\n if (p0 === undefined || p1 === undefined) {\n break;\n }\n p0 = p1;\n }\n for (var i = 0; i < charArr.length; i++) {\n findSegmentToFitCharacter(charArr[i]);\n if (p0 === undefined || p1 === undefined) {\n break;\n }\n var width = Path.getLineLength(p0.x, p0.y, p1.x, p1.y);\n var kern = 0;\n if (kerningFunc) {\n try {\n kern = kerningFunc(charArr[i - 1], charArr[i]) * this.fontSize();\n }\n catch (e) {\n kern = 0;\n }\n }\n p0.x += kern;\n p1.x += kern;\n this.textWidth += kern;\n var midpoint = Path.getPointOnLine(kern + width / 2.0, p0.x, p0.y, p1.x, p1.y);\n var rotation = Math.atan2(p1.y - p0.y, p1.x - p0.x);\n this.glyphInfo.push({\n transposeX: midpoint.x,\n transposeY: midpoint.y,\n text: charArr[i],\n rotation: rotation,\n p0: p0,\n p1: p1,\n });\n p0 = p1;\n }\n }\n getSelfRect() {\n if (!this.glyphInfo.length) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n var points = [];\n this.glyphInfo.forEach(function (info) {\n points.push(info.p0.x);\n points.push(info.p0.y);\n points.push(info.p1.x);\n points.push(info.p1.y);\n });\n var minX = points[0] || 0;\n var maxX = points[0] || 0;\n var minY = points[1] || 0;\n var maxY = points[1] || 0;\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n var fontSize = this.fontSize();\n return {\n x: minX - fontSize / 2,\n y: minY - fontSize / 2,\n width: maxX - minX + fontSize,\n height: maxY - minY + fontSize,\n };\n }\n destroy() {\n Util.releaseCanvas(this.dummyCanvas);\n return super.destroy();\n }\n}\nTextPath.prototype._fillFunc = _fillFunc;\nTextPath.prototype._strokeFunc = _strokeFunc;\nTextPath.prototype._fillFuncHit = _fillFunc;\nTextPath.prototype._strokeFuncHit = _strokeFunc;\nTextPath.prototype.className = 'TextPath';\nTextPath.prototype._attrsAffectingSize = ['text', 'fontSize', 'data'];\n_registerNode(TextPath);\nFactory.addGetterSetter(TextPath, 'data');\nFactory.addGetterSetter(TextPath, 'fontFamily', 'Arial');\nFactory.addGetterSetter(TextPath, 'fontSize', 12, getNumberValidator());\nFactory.addGetterSetter(TextPath, 'fontStyle', NORMAL);\nFactory.addGetterSetter(TextPath, 'align', 'left');\nFactory.addGetterSetter(TextPath, 'letterSpacing', 0, getNumberValidator());\nFactory.addGetterSetter(TextPath, 'textBaseline', 'middle');\nFactory.addGetterSetter(TextPath, 'fontVariant', NORMAL);\nFactory.addGetterSetter(TextPath, 'text', EMPTY_STRING);\nFactory.addGetterSetter(TextPath, 'textDecoration', null);\nFactory.addGetterSetter(TextPath, 'kerningFunc', null);\n","import { Util, Transform } from '../Util.js';\nimport { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { Shape } from '../Shape.js';\nimport { Rect } from './Rect.js';\nimport { Group } from '../Group.js';\nimport { Konva } from '../Global.js';\nimport { getBooleanValidator, getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nvar EVENTS_NAME = 'tr-konva';\nvar ATTR_CHANGE_LIST = [\n 'resizeEnabledChange',\n 'rotateAnchorOffsetChange',\n 'rotateEnabledChange',\n 'enabledAnchorsChange',\n 'anchorSizeChange',\n 'borderEnabledChange',\n 'borderStrokeChange',\n 'borderStrokeWidthChange',\n 'borderDashChange',\n 'anchorStrokeChange',\n 'anchorStrokeWidthChange',\n 'anchorFillChange',\n 'anchorCornerRadiusChange',\n 'ignoreStrokeChange',\n]\n .map((e) => e + `.${EVENTS_NAME}`)\n .join(' ');\nvar NODES_RECT = 'nodesRect';\nvar TRANSFORM_CHANGE_STR = [\n 'widthChange',\n 'heightChange',\n 'scaleXChange',\n 'scaleYChange',\n 'skewXChange',\n 'skewYChange',\n 'rotationChange',\n 'offsetXChange',\n 'offsetYChange',\n 'transformsEnabledChange',\n 'strokeWidthChange',\n];\nvar ANGLES = {\n 'top-left': -45,\n 'top-center': 0,\n 'top-right': 45,\n 'middle-right': -90,\n 'middle-left': 90,\n 'bottom-left': -135,\n 'bottom-center': 180,\n 'bottom-right': 135,\n};\nconst TOUCH_DEVICE = 'ontouchstart' in Konva._global;\nfunction getCursor(anchorName, rad) {\n if (anchorName === 'rotater') {\n return 'crosshair';\n }\n rad += Util.degToRad(ANGLES[anchorName] || 0);\n var angle = ((Util.radToDeg(rad) % 360) + 360) % 360;\n if (Util._inRange(angle, 315 + 22.5, 360) || Util._inRange(angle, 0, 22.5)) {\n return 'ns-resize';\n }\n else if (Util._inRange(angle, 45 - 22.5, 45 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util._inRange(angle, 90 - 22.5, 90 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util._inRange(angle, 135 - 22.5, 135 + 22.5)) {\n return 'nwse-resize';\n }\n else if (Util._inRange(angle, 180 - 22.5, 180 + 22.5)) {\n return 'ns-resize';\n }\n else if (Util._inRange(angle, 225 - 22.5, 225 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util._inRange(angle, 270 - 22.5, 270 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util._inRange(angle, 315 - 22.5, 315 + 22.5)) {\n return 'nwse-resize';\n }\n else {\n Util.error('Transformer has unknown angle for cursor detection: ' + angle);\n return 'pointer';\n }\n}\nvar ANCHORS_NAMES = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'middle-right',\n 'middle-left',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n];\nvar MAX_SAFE_INTEGER = 100000000;\nfunction getCenter(shape) {\n return {\n x: shape.x +\n (shape.width / 2) * Math.cos(shape.rotation) +\n (shape.height / 2) * Math.sin(-shape.rotation),\n y: shape.y +\n (shape.height / 2) * Math.cos(shape.rotation) +\n (shape.width / 2) * Math.sin(shape.rotation),\n };\n}\nfunction rotateAroundPoint(shape, angleRad, point) {\n const x = point.x +\n (shape.x - point.x) * Math.cos(angleRad) -\n (shape.y - point.y) * Math.sin(angleRad);\n const y = point.y +\n (shape.x - point.x) * Math.sin(angleRad) +\n (shape.y - point.y) * Math.cos(angleRad);\n return Object.assign(Object.assign({}, shape), { rotation: shape.rotation + angleRad, x,\n y });\n}\nfunction rotateAroundCenter(shape, deltaRad) {\n const center = getCenter(shape);\n return rotateAroundPoint(shape, deltaRad, center);\n}\nfunction getSnap(snaps, newRotationRad, tol) {\n let snapped = newRotationRad;\n for (let i = 0; i < snaps.length; i++) {\n const angle = Konva.getAngle(snaps[i]);\n const absDiff = Math.abs(angle - newRotationRad) % (Math.PI * 2);\n const dif = Math.min(absDiff, Math.PI * 2 - absDiff);\n if (dif < tol) {\n snapped = angle;\n }\n }\n return snapped;\n}\nexport class Transformer extends Group {\n constructor(config) {\n super(config);\n this._transforming = false;\n this._createElements();\n this._handleMouseMove = this._handleMouseMove.bind(this);\n this._handleMouseUp = this._handleMouseUp.bind(this);\n this.update = this.update.bind(this);\n this.on(ATTR_CHANGE_LIST, this.update);\n if (this.getNode()) {\n this.update();\n }\n }\n attachTo(node) {\n this.setNode(node);\n return this;\n }\n setNode(node) {\n Util.warn('tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.');\n return this.setNodes([node]);\n }\n getNode() {\n return this._nodes && this._nodes[0];\n }\n _getEventNamespace() {\n return EVENTS_NAME + this._id;\n }\n setNodes(nodes = []) {\n if (this._nodes && this._nodes.length) {\n this.detach();\n }\n const filteredNodes = nodes.filter((node) => {\n if (node.isAncestorOf(this)) {\n Util.error('Konva.Transformer cannot be an a child of the node you are trying to attach');\n return false;\n }\n return true;\n });\n this._nodes = nodes = filteredNodes;\n if (nodes.length === 1 && this.useSingleNodeRotation()) {\n this.rotation(nodes[0].getAbsoluteRotation());\n }\n else {\n this.rotation(0);\n }\n this._nodes.forEach((node) => {\n const onChange = () => {\n if (this.nodes().length === 1 && this.useSingleNodeRotation()) {\n this.rotation(this.nodes()[0].getAbsoluteRotation());\n }\n this._resetTransformCache();\n if (!this._transforming && !this.isDragging()) {\n this.update();\n }\n };\n const additionalEvents = node._attrsAffectingSize\n .map((prop) => prop + 'Change.' + this._getEventNamespace())\n .join(' ');\n node.on(additionalEvents, onChange);\n node.on(TRANSFORM_CHANGE_STR.map((e) => e + `.${this._getEventNamespace()}`).join(' '), onChange);\n node.on(`absoluteTransformChange.${this._getEventNamespace()}`, onChange);\n this._proxyDrag(node);\n });\n this._resetTransformCache();\n var elementsCreated = !!this.findOne('.top-left');\n if (elementsCreated) {\n this.update();\n }\n return this;\n }\n _proxyDrag(node) {\n let lastPos;\n node.on(`dragstart.${this._getEventNamespace()}`, (e) => {\n lastPos = node.getAbsolutePosition();\n if (!this.isDragging() && node !== this.findOne('.back')) {\n this.startDrag(e, false);\n }\n });\n node.on(`dragmove.${this._getEventNamespace()}`, (e) => {\n if (!lastPos) {\n return;\n }\n const abs = node.getAbsolutePosition();\n const dx = abs.x - lastPos.x;\n const dy = abs.y - lastPos.y;\n this.nodes().forEach((otherNode) => {\n if (otherNode === node) {\n return;\n }\n if (otherNode.isDragging()) {\n return;\n }\n const otherAbs = otherNode.getAbsolutePosition();\n otherNode.setAbsolutePosition({\n x: otherAbs.x + dx,\n y: otherAbs.y + dy,\n });\n otherNode.startDrag(e);\n });\n lastPos = null;\n });\n }\n getNodes() {\n return this._nodes || [];\n }\n getActiveAnchor() {\n return this._movingAnchorName;\n }\n detach() {\n if (this._nodes) {\n this._nodes.forEach((node) => {\n node.off('.' + this._getEventNamespace());\n });\n }\n this._nodes = [];\n this._resetTransformCache();\n }\n _resetTransformCache() {\n this._clearCache(NODES_RECT);\n this._clearCache('transform');\n this._clearSelfAndDescendantCache('absoluteTransform');\n }\n _getNodeRect() {\n return this._getCache(NODES_RECT, this.__getNodeRect);\n }\n __getNodeShape(node, rot = this.rotation(), relative) {\n var rect = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n var absScale = node.getAbsoluteScale(relative);\n var absPos = node.getAbsolutePosition(relative);\n var dx = rect.x * absScale.x - node.offsetX() * absScale.x;\n var dy = rect.y * absScale.y - node.offsetY() * absScale.y;\n const rotation = (Konva.getAngle(node.getAbsoluteRotation()) + Math.PI * 2) %\n (Math.PI * 2);\n const box = {\n x: absPos.x + dx * Math.cos(rotation) + dy * Math.sin(-rotation),\n y: absPos.y + dy * Math.cos(rotation) + dx * Math.sin(rotation),\n width: rect.width * absScale.x,\n height: rect.height * absScale.y,\n rotation: rotation,\n };\n return rotateAroundPoint(box, -Konva.getAngle(rot), {\n x: 0,\n y: 0,\n });\n }\n __getNodeRect() {\n var node = this.getNode();\n if (!node) {\n return {\n x: -MAX_SAFE_INTEGER,\n y: -MAX_SAFE_INTEGER,\n width: 0,\n height: 0,\n rotation: 0,\n };\n }\n const totalPoints = [];\n this.nodes().map((node) => {\n const box = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n var points = [\n { x: box.x, y: box.y },\n { x: box.x + box.width, y: box.y },\n { x: box.x + box.width, y: box.y + box.height },\n { x: box.x, y: box.y + box.height },\n ];\n var trans = node.getAbsoluteTransform();\n points.forEach(function (point) {\n var transformed = trans.point(point);\n totalPoints.push(transformed);\n });\n });\n const tr = new Transform();\n tr.rotate(-Konva.getAngle(this.rotation()));\n var minX, minY, maxX, maxY;\n totalPoints.forEach(function (point) {\n var transformed = tr.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n tr.invert();\n const p = tr.point({ x: minX, y: minY });\n return {\n x: p.x,\n y: p.y,\n width: maxX - minX,\n height: maxY - minY,\n rotation: Konva.getAngle(this.rotation()),\n };\n }\n getX() {\n return this._getNodeRect().x;\n }\n getY() {\n return this._getNodeRect().y;\n }\n getWidth() {\n return this._getNodeRect().width;\n }\n getHeight() {\n return this._getNodeRect().height;\n }\n _createElements() {\n this._createBack();\n ANCHORS_NAMES.forEach(function (name) {\n this._createAnchor(name);\n }.bind(this));\n this._createAnchor('rotater');\n }\n _createAnchor(name) {\n var anchor = new Rect({\n stroke: 'rgb(0, 161, 255)',\n fill: 'white',\n strokeWidth: 1,\n name: name + ' _anchor',\n dragDistance: 0,\n draggable: true,\n hitStrokeWidth: TOUCH_DEVICE ? 10 : 'auto',\n });\n var self = this;\n anchor.on('mousedown touchstart', function (e) {\n self._handleMouseDown(e);\n });\n anchor.on('dragstart', (e) => {\n anchor.stopDrag();\n e.cancelBubble = true;\n });\n anchor.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n anchor.on('mouseenter', () => {\n var rad = Konva.getAngle(this.rotation());\n var cursor = getCursor(name, rad);\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = cursor);\n this._cursorChange = true;\n });\n anchor.on('mouseout', () => {\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = '');\n this._cursorChange = false;\n });\n this.add(anchor);\n }\n _createBack() {\n var back = new Shape({\n name: 'back',\n width: 0,\n height: 0,\n draggable: true,\n sceneFunc(ctx) {\n var tr = this.getParent();\n var padding = tr.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, this.width() + padding * 2, this.height() + padding * 2);\n ctx.moveTo(this.width() / 2, -padding);\n if (tr.rotateEnabled()) {\n ctx.lineTo(this.width() / 2, -tr.rotateAnchorOffset() * Util._sign(this.height()) - padding);\n }\n ctx.fillStrokeShape(this);\n },\n hitFunc: (ctx, shape) => {\n if (!this.shouldOverdrawWholeArea()) {\n return;\n }\n var padding = this.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);\n ctx.fillStrokeShape(shape);\n },\n });\n this.add(back);\n this._proxyDrag(back);\n back.on('dragstart', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragmove', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n this.on('dragmove', (e) => {\n this.update();\n });\n }\n _handleMouseDown(e) {\n this._movingAnchorName = e.target.name().split(' ')[0];\n var attrs = this._getNodeRect();\n var width = attrs.width;\n var height = attrs.height;\n var hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));\n this.sin = Math.abs(height / hypotenuse);\n this.cos = Math.abs(width / hypotenuse);\n if (typeof window !== 'undefined') {\n window.addEventListener('mousemove', this._handleMouseMove);\n window.addEventListener('touchmove', this._handleMouseMove);\n window.addEventListener('mouseup', this._handleMouseUp, true);\n window.addEventListener('touchend', this._handleMouseUp, true);\n }\n this._transforming = true;\n var ap = e.target.getAbsolutePosition();\n var pos = e.target.getStage().getPointerPosition();\n this._anchorDragOffset = {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n };\n this._fire('transformstart', { evt: e.evt, target: this.getNode() });\n this._nodes.forEach((target) => {\n target._fire('transformstart', { evt: e.evt, target });\n });\n }\n _handleMouseMove(e) {\n var x, y, newHypotenuse;\n var anchorNode = this.findOne('.' + this._movingAnchorName);\n var stage = anchorNode.getStage();\n stage.setPointersPositions(e);\n const pp = stage.getPointerPosition();\n let newNodePos = {\n x: pp.x - this._anchorDragOffset.x,\n y: pp.y - this._anchorDragOffset.y,\n };\n const oldAbs = anchorNode.getAbsolutePosition();\n if (this.anchorDragBoundFunc()) {\n newNodePos = this.anchorDragBoundFunc()(oldAbs, newNodePos, e);\n }\n anchorNode.setAbsolutePosition(newNodePos);\n const newAbs = anchorNode.getAbsolutePosition();\n if (oldAbs.x === newAbs.x && oldAbs.y === newAbs.y) {\n return;\n }\n if (this._movingAnchorName === 'rotater') {\n var attrs = this._getNodeRect();\n x = anchorNode.x() - attrs.width / 2;\n y = -anchorNode.y() + attrs.height / 2;\n let delta = Math.atan2(-y, x) + Math.PI / 2;\n if (attrs.height < 0) {\n delta -= Math.PI;\n }\n var oldRotation = Konva.getAngle(this.rotation());\n const newRotation = oldRotation + delta;\n const tol = Konva.getAngle(this.rotationSnapTolerance());\n const snappedRot = getSnap(this.rotationSnaps(), newRotation, tol);\n const diff = snappedRot - attrs.rotation;\n const shape = rotateAroundCenter(attrs, diff);\n this._fitNodesInto(shape, e);\n return;\n }\n var keepProportion = this.keepRatio() || e.shiftKey;\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (this._movingAnchorName === 'top-left') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-right').x(),\n y: this.findOne('.bottom-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n var reverseX = this.findOne('.top-left').x() > comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.top-left').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-left').x(comparePoint.x - x);\n this.findOne('.top-left').y(comparePoint.y - y);\n }\n }\n else if (this._movingAnchorName === 'top-center') {\n this.findOne('.top-left').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'top-right') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-left').x(),\n y: this.findOne('.bottom-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n var reverseX = this.findOne('.top-right').x() < comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.top-right').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-right').x(comparePoint.x + x);\n this.findOne('.top-right').y(comparePoint.y - y);\n }\n var pos = anchorNode.position();\n this.findOne('.top-left').y(pos.y);\n this.findOne('.bottom-right').x(pos.x);\n }\n else if (this._movingAnchorName === 'middle-left') {\n this.findOne('.top-left').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'middle-right') {\n this.findOne('.bottom-right').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'bottom-left') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-right').x(),\n y: this.findOne('.top-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n var reverseX = comparePoint.x < anchorNode.x() ? -1 : 1;\n var reverseY = anchorNode.y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n anchorNode.x(comparePoint.x - x);\n anchorNode.y(comparePoint.y + y);\n }\n pos = anchorNode.position();\n this.findOne('.top-left').x(pos.x);\n this.findOne('.bottom-right').y(pos.y);\n }\n else if (this._movingAnchorName === 'bottom-center') {\n this.findOne('.bottom-right').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'bottom-right') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-left').x(),\n y: this.findOne('.top-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n var reverseX = this.findOne('.bottom-right').x() < comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.bottom-right').y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.bottom-right').x(comparePoint.x + x);\n this.findOne('.bottom-right').y(comparePoint.y + y);\n }\n }\n else {\n console.error(new Error('Wrong position argument of selection resizer: ' +\n this._movingAnchorName));\n }\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (centeredScaling) {\n var topLeft = this.findOne('.top-left');\n var bottomRight = this.findOne('.bottom-right');\n var topOffsetX = topLeft.x();\n var topOffsetY = topLeft.y();\n var bottomOffsetX = this.getWidth() - bottomRight.x();\n var bottomOffsetY = this.getHeight() - bottomRight.y();\n bottomRight.move({\n x: -topOffsetX,\n y: -topOffsetY,\n });\n topLeft.move({\n x: bottomOffsetX,\n y: bottomOffsetY,\n });\n }\n var absPos = this.findOne('.top-left').getAbsolutePosition();\n x = absPos.x;\n y = absPos.y;\n var width = this.findOne('.bottom-right').x() - this.findOne('.top-left').x();\n var height = this.findOne('.bottom-right').y() - this.findOne('.top-left').y();\n this._fitNodesInto({\n x: x,\n y: y,\n width: width,\n height: height,\n rotation: Konva.getAngle(this.rotation()),\n }, e);\n }\n _handleMouseUp(e) {\n this._removeEvents(e);\n }\n getAbsoluteTransform() {\n return this.getTransform();\n }\n _removeEvents(e) {\n if (this._transforming) {\n this._transforming = false;\n if (typeof window !== 'undefined') {\n window.removeEventListener('mousemove', this._handleMouseMove);\n window.removeEventListener('touchmove', this._handleMouseMove);\n window.removeEventListener('mouseup', this._handleMouseUp, true);\n window.removeEventListener('touchend', this._handleMouseUp, true);\n }\n var node = this.getNode();\n this._fire('transformend', { evt: e, target: node });\n if (node) {\n this._nodes.forEach((target) => {\n target._fire('transformend', { evt: e, target });\n });\n }\n this._movingAnchorName = null;\n }\n }\n _fitNodesInto(newAttrs, evt) {\n var oldAttrs = this._getNodeRect();\n const minSize = 1;\n if (Util._inRange(newAttrs.width, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n if (Util._inRange(newAttrs.height, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n const allowNegativeScale = this.flipEnabled();\n var t = new Transform();\n t.rotate(Konva.getAngle(this.rotation()));\n if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('left') >= 0) {\n const offset = t.point({\n x: -this.padding() * 2,\n y: 0,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n newAttrs.width += this.padding() * 2;\n this._movingAnchorName = this._movingAnchorName.replace('left', 'right');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n if (!allowNegativeScale) {\n this.update();\n return;\n }\n }\n else if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('right') >= 0) {\n const offset = t.point({\n x: this.padding() * 2,\n y: 0,\n });\n this._movingAnchorName = this._movingAnchorName.replace('right', 'left');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.width += this.padding() * 2;\n if (!allowNegativeScale) {\n this.update();\n return;\n }\n }\n if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('top') >= 0) {\n const offset = t.point({\n x: 0,\n y: -this.padding() * 2,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n this._movingAnchorName = this._movingAnchorName.replace('top', 'bottom');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.height += this.padding() * 2;\n if (!allowNegativeScale) {\n this.update();\n return;\n }\n }\n else if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('bottom') >= 0) {\n const offset = t.point({\n x: 0,\n y: this.padding() * 2,\n });\n this._movingAnchorName = this._movingAnchorName.replace('bottom', 'top');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.height += this.padding() * 2;\n if (!allowNegativeScale) {\n this.update();\n return;\n }\n }\n if (this.boundBoxFunc()) {\n const bounded = this.boundBoxFunc()(oldAttrs, newAttrs);\n if (bounded) {\n newAttrs = bounded;\n }\n else {\n Util.warn('boundBoxFunc returned falsy. You should return new bound rect from it!');\n }\n }\n const baseSize = 10000000;\n const oldTr = new Transform();\n oldTr.translate(oldAttrs.x, oldAttrs.y);\n oldTr.rotate(oldAttrs.rotation);\n oldTr.scale(oldAttrs.width / baseSize, oldAttrs.height / baseSize);\n const newTr = new Transform();\n newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.scale(newAttrs.width / baseSize, newAttrs.height / baseSize);\n const delta = newTr.multiply(oldTr.invert());\n this._nodes.forEach((node) => {\n var _a;\n const parentTransform = node.getParent().getAbsoluteTransform();\n const localTransform = node.getTransform().copy();\n localTransform.translate(node.offsetX(), node.offsetY());\n const newLocalTransform = new Transform();\n newLocalTransform\n .multiply(parentTransform.copy().invert())\n .multiply(delta)\n .multiply(parentTransform)\n .multiply(localTransform);\n const attrs = newLocalTransform.decompose();\n node.setAttrs(attrs);\n this._fire('transform', { evt: evt, target: node });\n node._fire('transform', { evt: evt, target: node });\n (_a = node.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n });\n this.rotation(Util._getRotation(newAttrs.rotation));\n this._resetTransformCache();\n this.update();\n this.getLayer().batchDraw();\n }\n forceUpdate() {\n this._resetTransformCache();\n this.update();\n }\n _batchChangeChild(selector, attrs) {\n const anchor = this.findOne(selector);\n anchor.setAttrs(attrs);\n }\n update() {\n var _a;\n var attrs = this._getNodeRect();\n this.rotation(Util._getRotation(attrs.rotation));\n var width = attrs.width;\n var height = attrs.height;\n var enabledAnchors = this.enabledAnchors();\n var resizeEnabled = this.resizeEnabled();\n var padding = this.padding();\n var anchorSize = this.anchorSize();\n this.find('._anchor').forEach((node) => {\n node.setAttrs({\n width: anchorSize,\n height: anchorSize,\n offsetX: anchorSize / 2,\n offsetY: anchorSize / 2,\n stroke: this.anchorStroke(),\n strokeWidth: this.anchorStrokeWidth(),\n fill: this.anchorFill(),\n cornerRadius: this.anchorCornerRadius(),\n });\n });\n this._batchChangeChild('.top-left', {\n x: 0,\n y: 0,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-left') >= 0,\n });\n this._batchChangeChild('.top-center', {\n x: width / 2,\n y: 0,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-center') >= 0,\n });\n this._batchChangeChild('.top-right', {\n x: width,\n y: 0,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-right') >= 0,\n });\n this._batchChangeChild('.middle-left', {\n x: 0,\n y: height / 2,\n offsetX: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-left') >= 0,\n });\n this._batchChangeChild('.middle-right', {\n x: width,\n y: height / 2,\n offsetX: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-right') >= 0,\n });\n this._batchChangeChild('.bottom-left', {\n x: 0,\n y: height,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-left') >= 0,\n });\n this._batchChangeChild('.bottom-center', {\n x: width / 2,\n y: height,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-center') >= 0,\n });\n this._batchChangeChild('.bottom-right', {\n x: width,\n y: height,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-right') >= 0,\n });\n this._batchChangeChild('.rotater', {\n x: width / 2,\n y: -this.rotateAnchorOffset() * Util._sign(height) - padding,\n visible: this.rotateEnabled(),\n });\n this._batchChangeChild('.back', {\n width: width,\n height: height,\n visible: this.borderEnabled(),\n stroke: this.borderStroke(),\n strokeWidth: this.borderStrokeWidth(),\n dash: this.borderDash(),\n x: 0,\n y: 0,\n });\n (_a = this.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n }\n isTransforming() {\n return this._transforming;\n }\n stopTransform() {\n if (this._transforming) {\n this._removeEvents();\n var anchorNode = this.findOne('.' + this._movingAnchorName);\n if (anchorNode) {\n anchorNode.stopDrag();\n }\n }\n }\n destroy() {\n if (this.getStage() && this._cursorChange) {\n this.getStage().content && (this.getStage().content.style.cursor = '');\n }\n Group.prototype.destroy.call(this);\n this.detach();\n this._removeEvents();\n return this;\n }\n toObject() {\n return Node.prototype.toObject.call(this);\n }\n clone(obj) {\n var node = Node.prototype.clone.call(this, obj);\n return node;\n }\n getClientRect() {\n if (this.nodes().length > 0) {\n return super.getClientRect();\n }\n else {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n }\n}\nfunction validateAnchors(val) {\n if (!(val instanceof Array)) {\n Util.warn('enabledAnchors value should be an array');\n }\n if (val instanceof Array) {\n val.forEach(function (name) {\n if (ANCHORS_NAMES.indexOf(name) === -1) {\n Util.warn('Unknown anchor name: ' +\n name +\n '. Available names are: ' +\n ANCHORS_NAMES.join(', '));\n }\n });\n }\n return val || [];\n}\nTransformer.prototype.className = 'Transformer';\n_registerNode(Transformer);\nFactory.addGetterSetter(Transformer, 'enabledAnchors', ANCHORS_NAMES, validateAnchors);\nFactory.addGetterSetter(Transformer, 'flipEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Transformer, 'resizeEnabled', true);\nFactory.addGetterSetter(Transformer, 'anchorSize', 10, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'rotateEnabled', true);\nFactory.addGetterSetter(Transformer, 'rotationSnaps', []);\nFactory.addGetterSetter(Transformer, 'rotateAnchorOffset', 50, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'rotationSnapTolerance', 5, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderEnabled', true);\nFactory.addGetterSetter(Transformer, 'anchorStroke', 'rgb(0, 161, 255)');\nFactory.addGetterSetter(Transformer, 'anchorStrokeWidth', 1, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'anchorFill', 'white');\nFactory.addGetterSetter(Transformer, 'anchorCornerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderStroke', 'rgb(0, 161, 255)');\nFactory.addGetterSetter(Transformer, 'borderStrokeWidth', 1, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderDash');\nFactory.addGetterSetter(Transformer, 'keepRatio', true);\nFactory.addGetterSetter(Transformer, 'centeredScaling', false);\nFactory.addGetterSetter(Transformer, 'ignoreStroke', false);\nFactory.addGetterSetter(Transformer, 'padding', 0, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'node');\nFactory.addGetterSetter(Transformer, 'nodes');\nFactory.addGetterSetter(Transformer, 'boundBoxFunc');\nFactory.addGetterSetter(Transformer, 'anchorDragBoundFunc');\nFactory.addGetterSetter(Transformer, 'shouldOverdrawWholeArea', false);\nFactory.addGetterSetter(Transformer, 'useSingleNodeRotation', true);\nFactory.backCompat(Transformer, {\n lineEnabled: 'borderEnabled',\n rotateHandlerOffset: 'rotateAnchorOffset',\n enabledHandlers: 'enabledAnchors',\n});\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Konva } from '../Global.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Wedge extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.radius(), 0, Konva.getAngle(this.angle()), this.clockwise());\n context.lineTo(0, 0);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nWedge.prototype.className = 'Wedge';\nWedge.prototype._centroid = true;\nWedge.prototype._attrsAffectingSize = ['radius'];\n_registerNode(Wedge);\nFactory.addGetterSetter(Wedge, 'radius', 0, getNumberValidator());\nFactory.addGetterSetter(Wedge, 'angle', 0, getNumberValidator());\nFactory.addGetterSetter(Wedge, 'clockwise', false);\nFactory.backCompat(Wedge, {\n angleDeg: 'angle',\n getAngleDeg: 'getAngle',\n setAngleDeg: 'setAngle',\n});\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nfunction BlurStack() {\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n}\nvar mul_table = [\n 512,\n 512,\n 456,\n 512,\n 328,\n 456,\n 335,\n 512,\n 405,\n 328,\n 271,\n 456,\n 388,\n 335,\n 292,\n 512,\n 454,\n 405,\n 364,\n 328,\n 298,\n 271,\n 496,\n 456,\n 420,\n 388,\n 360,\n 335,\n 312,\n 292,\n 273,\n 512,\n 482,\n 454,\n 428,\n 405,\n 383,\n 364,\n 345,\n 328,\n 312,\n 298,\n 284,\n 271,\n 259,\n 496,\n 475,\n 456,\n 437,\n 420,\n 404,\n 388,\n 374,\n 360,\n 347,\n 335,\n 323,\n 312,\n 302,\n 292,\n 282,\n 273,\n 265,\n 512,\n 497,\n 482,\n 468,\n 454,\n 441,\n 428,\n 417,\n 405,\n 394,\n 383,\n 373,\n 364,\n 354,\n 345,\n 337,\n 328,\n 320,\n 312,\n 305,\n 298,\n 291,\n 284,\n 278,\n 271,\n 265,\n 259,\n 507,\n 496,\n 485,\n 475,\n 465,\n 456,\n 446,\n 437,\n 428,\n 420,\n 412,\n 404,\n 396,\n 388,\n 381,\n 374,\n 367,\n 360,\n 354,\n 347,\n 341,\n 335,\n 329,\n 323,\n 318,\n 312,\n 307,\n 302,\n 297,\n 292,\n 287,\n 282,\n 278,\n 273,\n 269,\n 265,\n 261,\n 512,\n 505,\n 497,\n 489,\n 482,\n 475,\n 468,\n 461,\n 454,\n 447,\n 441,\n 435,\n 428,\n 422,\n 417,\n 411,\n 405,\n 399,\n 394,\n 389,\n 383,\n 378,\n 373,\n 368,\n 364,\n 359,\n 354,\n 350,\n 345,\n 341,\n 337,\n 332,\n 328,\n 324,\n 320,\n 316,\n 312,\n 309,\n 305,\n 301,\n 298,\n 294,\n 291,\n 287,\n 284,\n 281,\n 278,\n 274,\n 271,\n 268,\n 265,\n 262,\n 259,\n 257,\n 507,\n 501,\n 496,\n 491,\n 485,\n 480,\n 475,\n 470,\n 465,\n 460,\n 456,\n 451,\n 446,\n 442,\n 437,\n 433,\n 428,\n 424,\n 420,\n 416,\n 412,\n 408,\n 404,\n 400,\n 396,\n 392,\n 388,\n 385,\n 381,\n 377,\n 374,\n 370,\n 367,\n 363,\n 360,\n 357,\n 354,\n 350,\n 347,\n 344,\n 341,\n 338,\n 335,\n 332,\n 329,\n 326,\n 323,\n 320,\n 318,\n 315,\n 312,\n 310,\n 307,\n 304,\n 302,\n 299,\n 297,\n 294,\n 292,\n 289,\n 287,\n 285,\n 282,\n 280,\n 278,\n 275,\n 273,\n 271,\n 269,\n 267,\n 265,\n 263,\n 261,\n 259,\n];\nvar shg_table = [\n 9,\n 11,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 16,\n 17,\n 17,\n 17,\n 17,\n 17,\n 17,\n 17,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n];\nfunction filterGaussBlurRGBA(imageData, radius) {\n var pixels = imageData.data, width = imageData.width, height = imageData.height;\n var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum, r_out_sum, g_out_sum, b_out_sum, a_out_sum, r_in_sum, g_in_sum, b_in_sum, a_in_sum, pr, pg, pb, pa, rbs;\n var div = radius + radius + 1, widthMinus1 = width - 1, heightMinus1 = height - 1, radiusPlus1 = radius + 1, sumFactor = (radiusPlus1 * (radiusPlus1 + 1)) / 2, stackStart = new BlurStack(), stackEnd = null, stack = stackStart, stackIn = null, stackOut = null, mul_sum = mul_table[radius], shg_sum = shg_table[radius];\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n stack.next = stackStart;\n yw = yi = 0;\n for (y = 0; y < height; y++) {\n r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[p + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[p + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[p + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n }\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++) {\n pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa !== 0) {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n r_in_sum += stackIn.r = pixels[p];\n g_in_sum += stackIn.g = pixels[p + 1];\n b_in_sum += stackIn.b = pixels[p + 2];\n a_in_sum += stackIn.a = pixels[p + 3];\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += 4;\n }\n yw += width;\n }\n for (x = 0; x < width; x++) {\n g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n yp = width;\n for (i = 1; i <= radius; i++) {\n yi = (yp + x) << 2;\n r_sum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[yi + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[yi + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[yi + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n if (i < heightMinus1) {\n yp += width;\n }\n }\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p =\n (x +\n ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width) <<\n 2;\n r_sum += r_in_sum += stackIn.r = pixels[p];\n g_sum += g_in_sum += stackIn.g = pixels[p + 1];\n b_sum += b_in_sum += stackIn.b = pixels[p + 2];\n a_sum += a_in_sum += stackIn.a = pixels[p + 3];\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n}\nexport const Blur = function Blur(imageData) {\n var radius = Math.round(this.blurRadius());\n if (radius > 0) {\n filterGaussBlurRGBA(imageData, radius);\n }\n};\nFactory.addGetterSetter(Node, 'blurRadius', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Brighten = function (imageData) {\n var brightness = this.brightness() * 255, data = imageData.data, len = data.length, i;\n for (i = 0; i < len; i += 4) {\n data[i] += brightness;\n data[i + 1] += brightness;\n data[i + 2] += brightness;\n }\n};\nFactory.addGetterSetter(Node, 'brightness', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Contrast = function (imageData) {\n var adjust = Math.pow((this.contrast() + 100) / 100, 2);\n var data = imageData.data, nPixels = data.length, red = 150, green = 150, blue = 150, i;\n for (i = 0; i < nPixels; i += 4) {\n red = data[i];\n green = data[i + 1];\n blue = data[i + 2];\n red /= 255;\n red -= 0.5;\n red *= adjust;\n red += 0.5;\n red *= 255;\n green /= 255;\n green -= 0.5;\n green *= adjust;\n green += 0.5;\n green *= 255;\n blue /= 255;\n blue -= 0.5;\n blue *= adjust;\n blue += 0.5;\n blue *= 255;\n red = red < 0 ? 0 : red > 255 ? 255 : red;\n green = green < 0 ? 0 : green > 255 ? 255 : green;\n blue = blue < 0 ? 0 : blue > 255 ? 255 : blue;\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n }\n};\nFactory.addGetterSetter(Node, 'contrast', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nfunction remap(fromValue, fromMin, fromMax, toMin, toMax) {\n var fromRange = fromMax - fromMin, toRange = toMax - toMin, toValue;\n if (fromRange === 0) {\n return toMin + toRange / 2;\n }\n if (toRange === 0) {\n return toMin;\n }\n toValue = (fromValue - fromMin) / fromRange;\n toValue = toRange * toValue + toMin;\n return toValue;\n}\nexport const Enhance = function (imageData) {\n var data = imageData.data, nSubPixels = data.length, rMin = data[0], rMax = rMin, r, gMin = data[1], gMax = gMin, g, bMin = data[2], bMax = bMin, b, i;\n var enhanceAmount = this.enhance();\n if (enhanceAmount === 0) {\n return;\n }\n for (i = 0; i < nSubPixels; i += 4) {\n r = data[i + 0];\n if (r < rMin) {\n rMin = r;\n }\n else if (r > rMax) {\n rMax = r;\n }\n g = data[i + 1];\n if (g < gMin) {\n gMin = g;\n }\n else if (g > gMax) {\n gMax = g;\n }\n b = data[i + 2];\n if (b < bMin) {\n bMin = b;\n }\n else if (b > bMax) {\n bMax = b;\n }\n }\n if (rMax === rMin) {\n rMax = 255;\n rMin = 0;\n }\n if (gMax === gMin) {\n gMax = 255;\n gMin = 0;\n }\n if (bMax === bMin) {\n bMax = 255;\n bMin = 0;\n }\n var rMid, rGoalMax, rGoalMin, gMid, gGoalMax, gGoalMin, bMid, bGoalMax, bGoalMin;\n if (enhanceAmount > 0) {\n rGoalMax = rMax + enhanceAmount * (255 - rMax);\n rGoalMin = rMin - enhanceAmount * (rMin - 0);\n gGoalMax = gMax + enhanceAmount * (255 - gMax);\n gGoalMin = gMin - enhanceAmount * (gMin - 0);\n bGoalMax = bMax + enhanceAmount * (255 - bMax);\n bGoalMin = bMin - enhanceAmount * (bMin - 0);\n }\n else {\n rMid = (rMax + rMin) * 0.5;\n rGoalMax = rMax + enhanceAmount * (rMax - rMid);\n rGoalMin = rMin + enhanceAmount * (rMin - rMid);\n gMid = (gMax + gMin) * 0.5;\n gGoalMax = gMax + enhanceAmount * (gMax - gMid);\n gGoalMin = gMin + enhanceAmount * (gMin - gMid);\n bMid = (bMax + bMin) * 0.5;\n bGoalMax = bMax + enhanceAmount * (bMax - bMid);\n bGoalMin = bMin + enhanceAmount * (bMin - bMid);\n }\n for (i = 0; i < nSubPixels; i += 4) {\n data[i + 0] = remap(data[i + 0], rMin, rMax, rGoalMin, rGoalMax);\n data[i + 1] = remap(data[i + 1], gMin, gMax, gGoalMin, gGoalMax);\n data[i + 2] = remap(data[i + 2], bMin, bMax, bGoalMin, bGoalMax);\n }\n};\nFactory.addGetterSetter(Node, 'enhance', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { Util } from '../Util.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Emboss = function (imageData) {\n var strength = this.embossStrength() * 10, greyLevel = this.embossWhiteLevel() * 255, direction = this.embossDirection(), blend = this.embossBlend(), dirY = 0, dirX = 0, data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, y = h;\n switch (direction) {\n case 'top-left':\n dirY = -1;\n dirX = -1;\n break;\n case 'top':\n dirY = -1;\n dirX = 0;\n break;\n case 'top-right':\n dirY = -1;\n dirX = 1;\n break;\n case 'right':\n dirY = 0;\n dirX = 1;\n break;\n case 'bottom-right':\n dirY = 1;\n dirX = 1;\n break;\n case 'bottom':\n dirY = 1;\n dirX = 0;\n break;\n case 'bottom-left':\n dirY = 1;\n dirX = -1;\n break;\n case 'left':\n dirY = 0;\n dirX = -1;\n break;\n default:\n Util.error('Unknown emboss direction: ' + direction);\n }\n do {\n var offsetY = (y - 1) * w4;\n var otherY = dirY;\n if (y + otherY < 1) {\n otherY = 0;\n }\n if (y + otherY > h) {\n otherY = 0;\n }\n var offsetYOther = (y - 1 + otherY) * w * 4;\n var x = w;\n do {\n var offset = offsetY + (x - 1) * 4;\n var otherX = dirX;\n if (x + otherX < 1) {\n otherX = 0;\n }\n if (x + otherX > w) {\n otherX = 0;\n }\n var offsetOther = offsetYOther + (x - 1 + otherX) * 4;\n var dR = data[offset] - data[offsetOther];\n var dG = data[offset + 1] - data[offsetOther + 1];\n var dB = data[offset + 2] - data[offsetOther + 2];\n var dif = dR;\n var absDif = dif > 0 ? dif : -dif;\n var absG = dG > 0 ? dG : -dG;\n var absB = dB > 0 ? dB : -dB;\n if (absG > absDif) {\n dif = dG;\n }\n if (absB > absDif) {\n dif = dB;\n }\n dif *= strength;\n if (blend) {\n var r = data[offset] + dif;\n var g = data[offset + 1] + dif;\n var b = data[offset + 2] + dif;\n data[offset] = r > 255 ? 255 : r < 0 ? 0 : r;\n data[offset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;\n data[offset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;\n }\n else {\n var grey = greyLevel - dif;\n if (grey < 0) {\n grey = 0;\n }\n else if (grey > 255) {\n grey = 255;\n }\n data[offset] = data[offset + 1] = data[offset + 2] = grey;\n }\n } while (--x);\n } while (--y);\n};\nFactory.addGetterSetter(Node, 'embossStrength', 0.5, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossWhiteLevel', 0.5, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossDirection', 'top-left', null, Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossBlend', false, null, Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nFactory.addGetterSetter(Node, 'hue', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'saturation', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'luminance', 0, getNumberValidator(), Factory.afterSetFilter);\nexport const HSL = function (imageData) {\n var data = imageData.data, nPixels = data.length, v = 1, s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, l = this.luminance() * 127, i;\n var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n var r, g, b, a;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b + l;\n data[i + 1] = gr * r + gg * g + gb * b + l;\n data[i + 2] = br * r + bg * g + bb * b + l;\n data[i + 3] = a;\n }\n};\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const HSV = function (imageData) {\n var data = imageData.data, nPixels = data.length, v = Math.pow(2, this.value()), s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, i;\n var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n var r, g, b, a;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b;\n data[i + 1] = gr * r + gg * g + gb * b;\n data[i + 2] = br * r + bg * g + bb * b;\n data[i + 3] = a;\n }\n};\nFactory.addGetterSetter(Node, 'hue', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'saturation', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'value', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nfunction pixelAt(idata, x, y) {\n var idx = (y * idata.width + x) * 4;\n var d = [];\n d.push(idata.data[idx++], idata.data[idx++], idata.data[idx++], idata.data[idx++]);\n return d;\n}\nfunction rgbDistance(p1, p2) {\n return Math.sqrt(Math.pow(p1[0] - p2[0], 2) +\n Math.pow(p1[1] - p2[1], 2) +\n Math.pow(p1[2] - p2[2], 2));\n}\nfunction rgbMean(pTab) {\n var m = [0, 0, 0];\n for (var i = 0; i < pTab.length; i++) {\n m[0] += pTab[i][0];\n m[1] += pTab[i][1];\n m[2] += pTab[i][2];\n }\n m[0] /= pTab.length;\n m[1] /= pTab.length;\n m[2] /= pTab.length;\n return m;\n}\nfunction backgroundMask(idata, threshold) {\n var rgbv_no = pixelAt(idata, 0, 0);\n var rgbv_ne = pixelAt(idata, idata.width - 1, 0);\n var rgbv_so = pixelAt(idata, 0, idata.height - 1);\n var rgbv_se = pixelAt(idata, idata.width - 1, idata.height - 1);\n var thres = threshold || 10;\n if (rgbDistance(rgbv_no, rgbv_ne) < thres &&\n rgbDistance(rgbv_ne, rgbv_se) < thres &&\n rgbDistance(rgbv_se, rgbv_so) < thres &&\n rgbDistance(rgbv_so, rgbv_no) < thres) {\n var mean = rgbMean([rgbv_ne, rgbv_no, rgbv_se, rgbv_so]);\n var mask = [];\n for (var i = 0; i < idata.width * idata.height; i++) {\n var d = rgbDistance(mean, [\n idata.data[i * 4],\n idata.data[i * 4 + 1],\n idata.data[i * 4 + 2],\n ]);\n mask[i] = d < thres ? 0 : 255;\n }\n return mask;\n }\n}\nfunction applyMask(idata, mask) {\n for (var i = 0; i < idata.width * idata.height; i++) {\n idata.data[4 * i + 3] = mask[i];\n }\n}\nfunction erodeMask(mask, sw, sh) {\n var weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a === 255 * 8 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction dilateMask(mask, sw, sh) {\n var weights = [1, 1, 1, 1, 1, 1, 1, 1, 1];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a >= 255 * 4 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction smoothEdgeMask(mask, sw, sh) {\n var weights = [1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a;\n }\n }\n return maskResult;\n}\nexport const Mask = function (imageData) {\n var threshold = this.threshold(), mask = backgroundMask(imageData, threshold);\n if (mask) {\n mask = erodeMask(mask, imageData.width, imageData.height);\n mask = dilateMask(mask, imageData.width, imageData.height);\n mask = smoothEdgeMask(mask, imageData.width, imageData.height);\n applyMask(imageData, mask);\n }\n return imageData;\n};\nFactory.addGetterSetter(Node, 'threshold', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { Util } from '../Util.js';\nimport { getNumberValidator } from '../Validators.js';\nvar ToPolar = function (src, dst, opt) {\n var srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, r = 0, g = 0, b = 0, a = 0;\n var rad, rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n x = xSize - xMid;\n y = ySize - yMid;\n rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n var rSize = ySize, tSize = xSize, radius, theta;\n var conversion = ((360 / tSize) * Math.PI) / 180, sin, cos;\n for (theta = 0; theta < tSize; theta += 1) {\n sin = Math.sin(theta * conversion);\n cos = Math.cos(theta * conversion);\n for (radius = 0; radius < rSize; radius += 1) {\n x = Math.floor(xMid + ((rMax * radius) / rSize) * cos);\n y = Math.floor(yMid + ((rMax * radius) / rSize) * sin);\n i = (y * xSize + x) * 4;\n r = srcPixels[i + 0];\n g = srcPixels[i + 1];\n b = srcPixels[i + 2];\n a = srcPixels[i + 3];\n i = (theta + radius * xSize) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nvar FromPolar = function (src, dst, opt) {\n var srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, dx, dy, r = 0, g = 0, b = 0, a = 0;\n var rad, rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n x = xSize - xMid;\n y = ySize - yMid;\n rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n var rSize = ySize, tSize = xSize, radius, theta, phaseShift = opt.polarRotation || 0;\n var x1, y1;\n for (x = 0; x < xSize; x += 1) {\n for (y = 0; y < ySize; y += 1) {\n dx = x - xMid;\n dy = y - yMid;\n radius = (Math.sqrt(dx * dx + dy * dy) * rSize) / rMax;\n theta = ((Math.atan2(dy, dx) * 180) / Math.PI + 360 + phaseShift) % 360;\n theta = (theta * tSize) / 360;\n x1 = Math.floor(theta);\n y1 = Math.floor(radius);\n i = (y1 * xSize + x1) * 4;\n r = srcPixels[i + 0];\n g = srcPixels[i + 1];\n b = srcPixels[i + 2];\n a = srcPixels[i + 3];\n i = (y * xSize + x) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nexport const Kaleidoscope = function (imageData) {\n var xSize = imageData.width, ySize = imageData.height;\n var x, y, xoff, i, r, g, b, a, srcPos, dstPos;\n var power = Math.round(this.kaleidoscopePower());\n var angle = Math.round(this.kaleidoscopeAngle());\n var offset = Math.floor((xSize * (angle % 360)) / 360);\n if (power < 1) {\n return;\n }\n var tempCanvas = Util.createCanvasElement();\n tempCanvas.width = xSize;\n tempCanvas.height = ySize;\n var scratchData = tempCanvas\n .getContext('2d')\n .getImageData(0, 0, xSize, ySize);\n Util.releaseCanvas(tempCanvas);\n ToPolar(imageData, scratchData, {\n polarCenterX: xSize / 2,\n polarCenterY: ySize / 2,\n });\n var minSectionSize = xSize / Math.pow(2, power);\n while (minSectionSize <= 8) {\n minSectionSize = minSectionSize * 2;\n power -= 1;\n }\n minSectionSize = Math.ceil(minSectionSize);\n var sectionSize = minSectionSize;\n var xStart = 0, xEnd = sectionSize, xDelta = 1;\n if (offset + minSectionSize > xSize) {\n xStart = sectionSize;\n xEnd = 0;\n xDelta = -1;\n }\n for (y = 0; y < ySize; y += 1) {\n for (x = xStart; x !== xEnd; x += xDelta) {\n xoff = Math.round(x + offset) % xSize;\n srcPos = (xSize * y + xoff) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + x) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n }\n for (y = 0; y < ySize; y += 1) {\n sectionSize = Math.floor(minSectionSize);\n for (i = 0; i < power; i += 1) {\n for (x = 0; x < sectionSize + 1; x += 1) {\n srcPos = (xSize * y + x) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + sectionSize * 2 - x - 1) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n sectionSize *= 2;\n }\n }\n FromPolar(scratchData, imageData, { polarRotation: 0 });\n};\nFactory.addGetterSetter(Node, 'kaleidoscopePower', 2, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'kaleidoscopeAngle', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Noise = function (imageData) {\n var amount = this.noise() * 255, data = imageData.data, nPixels = data.length, half = amount / 2, i;\n for (i = 0; i < nPixels; i += 4) {\n data[i + 0] += half - 2 * half * Math.random();\n data[i + 1] += half - 2 * half * Math.random();\n data[i + 2] += half - 2 * half * Math.random();\n }\n};\nFactory.addGetterSetter(Node, 'noise', 0.2, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Util } from '../Util.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Pixelate = function (imageData) {\n var pixelSize = Math.ceil(this.pixelSize()), width = imageData.width, height = imageData.height, x, y, i, red, green, blue, alpha, nBinsX = Math.ceil(width / pixelSize), nBinsY = Math.ceil(height / pixelSize), xBinStart, xBinEnd, yBinStart, yBinEnd, xBin, yBin, pixelsInBin, data = imageData.data;\n if (pixelSize <= 0) {\n Util.error('pixelSize value can not be <= 0');\n return;\n }\n for (xBin = 0; xBin < nBinsX; xBin += 1) {\n for (yBin = 0; yBin < nBinsY; yBin += 1) {\n red = 0;\n green = 0;\n blue = 0;\n alpha = 0;\n xBinStart = xBin * pixelSize;\n xBinEnd = xBinStart + pixelSize;\n yBinStart = yBin * pixelSize;\n yBinEnd = yBinStart + pixelSize;\n pixelsInBin = 0;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n red += data[i + 0];\n green += data[i + 1];\n blue += data[i + 2];\n alpha += data[i + 3];\n pixelsInBin += 1;\n }\n }\n red = red / pixelsInBin;\n green = green / pixelsInBin;\n blue = blue / pixelsInBin;\n alpha = alpha / pixelsInBin;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n data[i + 0] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = alpha;\n }\n }\n }\n }\n};\nFactory.addGetterSetter(Node, 'pixelSize', 8, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Posterize = function (imageData) {\n var levels = Math.round(this.levels() * 254) + 1, data = imageData.data, len = data.length, scale = 255 / levels, i;\n for (i = 0; i < len; i += 1) {\n data[i] = Math.floor(data[i] / scale) * scale;\n }\n};\nFactory.addGetterSetter(Node, 'levels', 0.5, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { RGBComponent } from '../Validators.js';\nexport const RGB = function (imageData) {\n var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), i, brightness;\n for (i = 0; i < nPixels; i += 4) {\n brightness =\n (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;\n data[i] = brightness * red;\n data[i + 1] = brightness * green;\n data[i + 2] = brightness * blue;\n data[i + 3] = data[i + 3];\n }\n};\nFactory.addGetterSetter(Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'blue', 0, RGBComponent, Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { RGBComponent } from '../Validators.js';\nexport const RGBA = function (imageData) {\n var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha(), i, ia;\n for (i = 0; i < nPixels; i += 4) {\n ia = 1 - alpha;\n data[i] = red * alpha + data[i] * ia;\n data[i + 1] = green * alpha + data[i + 1] * ia;\n data[i + 2] = blue * alpha + data[i + 2] * ia;\n }\n};\nFactory.addGetterSetter(Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'blue', 0, RGBComponent, Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'alpha', 1, function (val) {\n this._filterUpToDate = false;\n if (val > 1) {\n return 1;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return val;\n }\n});\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Threshold = function (imageData) {\n var level = this.threshold() * 255, data = imageData.data, len = data.length, i;\n for (i = 0; i < len; i += 1) {\n data[i] = data[i] < level ? 0 : 255;\n }\n};\nFactory.addGetterSetter(Node, 'threshold', 0.5, getNumberValidator(), Factory.afterSetFilter);\n","import { Konva as Core } from './_CoreInternals.js';\nimport { Arc } from './shapes/Arc.js';\nimport { Arrow } from './shapes/Arrow.js';\nimport { Circle } from './shapes/Circle.js';\nimport { Ellipse } from './shapes/Ellipse.js';\nimport { Image } from './shapes/Image.js';\nimport { Label, Tag } from './shapes/Label.js';\nimport { Line } from './shapes/Line.js';\nimport { Path } from './shapes/Path.js';\nimport { Rect } from './shapes/Rect.js';\nimport { RegularPolygon } from './shapes/RegularPolygon.js';\nimport { Ring } from './shapes/Ring.js';\nimport { Sprite } from './shapes/Sprite.js';\nimport { Star } from './shapes/Star.js';\nimport { Text } from './shapes/Text.js';\nimport { TextPath } from './shapes/TextPath.js';\nimport { Transformer } from './shapes/Transformer.js';\nimport { Wedge } from './shapes/Wedge.js';\nimport { Blur } from './filters/Blur.js';\nimport { Brighten } from './filters/Brighten.js';\nimport { Contrast } from './filters/Contrast.js';\nimport { Emboss } from './filters/Emboss.js';\nimport { Enhance } from './filters/Enhance.js';\nimport { Grayscale } from './filters/Grayscale.js';\nimport { HSL } from './filters/HSL.js';\nimport { HSV } from './filters/HSV.js';\nimport { Invert } from './filters/Invert.js';\nimport { Kaleidoscope } from './filters/Kaleidoscope.js';\nimport { Mask } from './filters/Mask.js';\nimport { Noise } from './filters/Noise.js';\nimport { Pixelate } from './filters/Pixelate.js';\nimport { Posterize } from './filters/Posterize.js';\nimport { RGB } from './filters/RGB.js';\nimport { RGBA } from './filters/RGBA.js';\nimport { Sepia } from './filters/Sepia.js';\nimport { Solarize } from './filters/Solarize.js';\nimport { Threshold } from './filters/Threshold.js';\nexport const Konva = Core.Util._assign(Core, {\n Arc,\n Arrow,\n Circle,\n Ellipse,\n Image,\n Label,\n Tag,\n Line,\n Path,\n Rect,\n RegularPolygon,\n Ring,\n Sprite,\n Star,\n Text,\n TextPath,\n Transformer,\n Wedge,\n Filters: {\n Blur,\n Brighten,\n Contrast,\n Emboss,\n Enhance,\n Grayscale,\n HSL,\n HSV,\n Invert,\n Kaleidoscope,\n Mask,\n Noise,\n Pixelate,\n Posterize,\n RGB,\n RGBA,\n Sepia,\n Solarize,\n Threshold,\n },\n});\n","export const Grayscale = function (imageData) {\n var data = imageData.data, len = data.length, i, brightness;\n for (i = 0; i < len; i += 4) {\n brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];\n data[i] = brightness;\n data[i + 1] = brightness;\n data[i + 2] = brightness;\n }\n};\n","export const Invert = function (imageData) {\n var data = imageData.data, len = data.length, i;\n for (i = 0; i < len; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n }\n};\n","export const Sepia = function (imageData) {\n var data = imageData.data, nPixels = data.length, i, r, g, b;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n data[i + 0] = Math.min(255, r * 0.393 + g * 0.769 + b * 0.189);\n data[i + 1] = Math.min(255, r * 0.349 + g * 0.686 + b * 0.168);\n data[i + 2] = Math.min(255, r * 0.272 + g * 0.534 + b * 0.131);\n }\n};\n","export const Solarize = function (imageData) {\n var data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, y = h;\n do {\n var offsetY = (y - 1) * w4;\n var x = w;\n do {\n var offset = offsetY + (x - 1) * 4;\n var r = data[offset];\n var g = data[offset + 1];\n var b = data[offset + 2];\n if (r > 127) {\n r = 255 - r;\n }\n if (g > 127) {\n g = 255 - g;\n }\n if (b > 127) {\n b = 255 - b;\n }\n data[offset] = r;\n data[offset + 1] = g;\n data[offset + 2] = b;\n } while (--x);\n } while (--y);\n};\n","import { Konva } from './_FullInternals.js';\nexport default Konva;\n","function noop() {}\n\nfunction assign(tar, src) {\n\tfor (var k in src) tar[k] = src[k];\n\treturn tar;\n}\n\nfunction appendNode(node, target) {\n\ttarget.appendChild(node);\n}\n\nfunction insertNode(node, target, anchor) {\n\ttarget.insertBefore(node, anchor);\n}\n\nfunction detachNode(node) {\n\tnode.parentNode.removeChild(node);\n}\n\nfunction detachBetween(before, after) {\n\twhile (before.nextSibling && before.nextSibling !== after) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction detachBefore(after) {\n\twhile (after.previousSibling) {\n\t\tafter.parentNode.removeChild(after.previousSibling);\n\t}\n}\n\nfunction detachAfter(before) {\n\twhile (before.nextSibling) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction reinsertBetween(before, after, target) {\n\twhile (before.nextSibling && before.nextSibling !== after) {\n\t\ttarget.appendChild(before.parentNode.removeChild(before.nextSibling));\n\t}\n}\n\nfunction reinsertChildren(parent, target) {\n\twhile (parent.firstChild) target.appendChild(parent.firstChild);\n}\n\nfunction reinsertAfter(before, target) {\n\twhile (before.nextSibling) target.appendChild(before.nextSibling);\n}\n\nfunction reinsertBefore(after, target) {\n\tvar parent = after.parentNode;\n\twhile (parent.firstChild !== after) target.appendChild(parent.firstChild);\n}\n\nfunction destroyEach(iterations) {\n\tfor (var i = 0; i < iterations.length; i += 1) {\n\t\tif (iterations[i]) iterations[i].d();\n\t}\n}\n\nfunction createFragment() {\n\treturn document.createDocumentFragment();\n}\n\nfunction createElement(name) {\n\treturn document.createElement(name);\n}\n\nfunction createSvgElement(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\nfunction createText(data) {\n\treturn document.createTextNode(data);\n}\n\nfunction createComment() {\n\treturn document.createComment('');\n}\n\nfunction addListener(node, event, handler) {\n\tnode.addEventListener(event, handler, false);\n}\n\nfunction removeListener(node, event, handler) {\n\tnode.removeEventListener(event, handler, false);\n}\n\nfunction setAttribute(node, attribute, value) {\n\tnode.setAttribute(attribute, value);\n}\n\nfunction setAttributes(node, attributes) {\n\tfor (var key in attributes) {\n\t\tif (key in node) {\n\t\t\tnode[key] = attributes[key];\n\t\t} else {\n\t\t\tif (attributes[key] === undefined) removeAttribute(node, key);\n\t\t\telse setAttribute(node, key, attributes[key]);\n\t\t}\n\t}\n}\n\nfunction removeAttribute(node, attribute) {\n\tnode.removeAttribute(attribute);\n}\n\nfunction setXlinkAttribute(node, attribute, value) {\n\tnode.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\nfunction getBindingGroupValue(group) {\n\tvar value = [];\n\tfor (var i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) value.push(group[i].__value);\n\t}\n\treturn value;\n}\n\nfunction toNumber(value) {\n\treturn value === '' ? undefined : +value;\n}\n\nfunction timeRangesToArray(ranges) {\n\tvar array = [];\n\tfor (var i = 0; i < ranges.length; i += 1) {\n\t\tarray.push({ start: ranges.start(i), end: ranges.end(i) });\n\t}\n\treturn array;\n}\n\nfunction children (element) {\n\treturn Array.from(element.childNodes);\n}\n\nfunction claimElement (nodes, name, attributes, svg) {\n\tfor (var i = 0; i < nodes.length; i += 1) {\n\t\tvar node = nodes[i];\n\t\tif (node.nodeName === name) {\n\t\t\tfor (var j = 0; j < node.attributes.length; j += 1) {\n\t\t\t\tvar attribute = node.attributes[j];\n\t\t\t\tif (!attributes[attribute.name]) node.removeAttribute(attribute.name);\n\t\t\t}\n\t\t\treturn nodes.splice(i, 1)[0]; // TODO strip unwanted attributes\n\t\t}\n\t}\n\n\treturn svg ? createSvgElement(name) : createElement(name);\n}\n\nfunction claimText (nodes, data) {\n\tfor (var i = 0; i < nodes.length; i += 1) {\n\t\tvar node = nodes[i];\n\t\tif (node.nodeType === 3) {\n\t\t\tnode.data = data;\n\t\t\treturn nodes.splice(i, 1)[0];\n\t\t}\n\t}\n\n\treturn createText(data);\n}\n\nfunction setInputType(input, type) {\n\ttry {\n\t\tinput.type = type;\n\t} catch (e) {}\n}\n\nfunction setStyle(node, key, value) {\n\tnode.style.setProperty(key, value);\n}\n\nfunction selectOption(select, value) {\n\tfor (var i = 0; i < select.options.length; i += 1) {\n\t\tvar option = select.options[i];\n\n\t\tif (option.__value === value) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nfunction selectOptions(select, value) {\n\tfor (var i = 0; i < select.options.length; i += 1) {\n\t\tvar option = select.options[i];\n\t\toption.selected = ~value.indexOf(option.__value);\n\t}\n}\n\nfunction selectValue(select) {\n\tvar selectedOption = select.querySelector(':checked') || select.options[0];\n\treturn selectedOption && selectedOption.__value;\n}\n\nfunction selectMultipleValue(select) {\n\treturn [].map.call(select.querySelectorAll(':checked'), function(option) {\n\t\treturn option.__value;\n\t});\n}\n\nfunction destroyBlock(block, lookup) {\n\tblock.u();\n\tblock.d();\n\tlookup[block.key] = null;\n}\n\nfunction outroAndDestroyBlock(block, lookup) {\n\tblock.o(function() {\n\t\tdestroyBlock(block, lookup);\n\t});\n}\n\nfunction updateKeyedEach(old_blocks, component, changed, key_prop, dynamic, list, lookup, node, has_outro, create_each_block, intro_method, next, get_context) {\n\tvar o = old_blocks.length;\n\tvar n = list.length;\n\n\tvar i = o;\n\tvar old_indexes = {};\n\twhile (i--) old_indexes[old_blocks[i].key] = i;\n\n\tvar new_blocks = [];\n\tvar new_lookup = {};\n\tvar deltas = {};\n\n\tvar i = n;\n\twhile (i--) {\n\t\tvar key = list[i][key_prop];\n\t\tvar block = lookup[key];\n\n\t\tif (!block) {\n\t\t\tblock = create_each_block(component, key, get_context(i));\n\t\t\tblock.c();\n\t\t} else if (dynamic) {\n\t\t\tblock.p(changed, get_context(i));\n\t\t}\n\n\t\tnew_blocks[i] = new_lookup[key] = block;\n\n\t\tif (key in old_indexes) deltas[key] = Math.abs(i - old_indexes[key]);\n\t}\n\n\tvar will_move = {};\n\tvar did_move = {};\n\n\tvar destroy = has_outro ? outroAndDestroyBlock : destroyBlock;\n\n\tfunction insert(block) {\n\t\tblock[intro_method](node, next);\n\t\tlookup[block.key] = block;\n\t\tnext = block.first;\n\t\tn--;\n\t}\n\n\twhile (o && n) {\n\t\tvar new_block = new_blocks[n - 1];\n\t\tvar old_block = old_blocks[o - 1];\n\t\tvar new_key = new_block.key;\n\t\tvar old_key = old_block.key;\n\n\t\tif (new_block === old_block) {\n\t\t\t// do nothing\n\t\t\tnext = new_block.first;\n\t\t\to--;\n\t\t\tn--;\n\t\t}\n\n\t\telse if (!new_lookup[old_key]) {\n\t\t\t// remove old block\n\t\t\tdestroy(old_block, lookup);\n\t\t\to--;\n\t\t}\n\n\t\telse if (!lookup[new_key] || will_move[new_key]) {\n\t\t\tinsert(new_block);\n\t\t}\n\n\t\telse if (did_move[old_key]) {\n\t\t\to--;\n\n\t\t} else if (deltas[new_key] > deltas[old_key]) {\n\t\t\tdid_move[new_key] = true;\n\t\t\tinsert(new_block);\n\n\t\t} else {\n\t\t\twill_move[old_key] = true;\n\t\t\to--;\n\t\t}\n\t}\n\n\twhile (o--) {\n\t\tvar old_block = old_blocks[o];\n\t\tif (!new_lookup[old_block.key]) destroy(old_block, lookup);\n\t}\n\n\twhile (n) insert(new_blocks[n - 1]);\n\n\treturn new_blocks;\n}\n\nfunction getSpreadUpdate(levels, updates) {\n\tvar update = {};\n\n\tvar to_null_out = {};\n\tvar accounted_for = {};\n\n\tvar i = levels.length;\n\twhile (i--) {\n\t\tvar o = levels[i];\n\t\tvar n = updates[i];\n\n\t\tif (n) {\n\t\t\tfor (var key in o) {\n\t\t\t\tif (!(key in n)) to_null_out[key] = 1;\n\t\t\t}\n\n\t\t\tfor (var key in n) {\n\t\t\t\tif (!accounted_for[key]) {\n\t\t\t\t\tupdate[key] = n[key];\n\t\t\t\t\taccounted_for[key] = 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlevels[i] = n;\n\t\t} else {\n\t\t\tfor (var key in o) {\n\t\t\t\taccounted_for[key] = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var key in to_null_out) {\n\t\tif (!(key in update)) update[key] = undefined;\n\t}\n\n\treturn update;\n}\n\nfunction linear(t) {\n\treturn t;\n}\n\nfunction generateRule(\n\ta,\n\tb,\n\tdelta,\n\tduration,\n\tease,\n\tfn\n) {\n\tvar keyframes = '{\\n';\n\n\tfor (var p = 0; p <= 1; p += 16.666 / duration) {\n\t\tvar t = a + delta * ease(p);\n\t\tkeyframes += p * 100 + '%{' + fn(t) + '}\\n';\n\t}\n\n\treturn keyframes + '100% {' + fn(b) + '}\\n}';\n}\n\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n\tvar hash = 5381;\n\tvar i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn hash >>> 0;\n}\n\nfunction wrapTransition(component, node, fn, params, intro, outgroup) {\n\tvar obj = fn(node, params);\n\tvar duration = obj.duration || 300;\n\tvar ease = obj.easing || linear;\n\tvar cssText;\n\n\t// TODO share <style> tag between all transitions?\n\tif (obj.css && !transitionManager.stylesheet) {\n\t\tvar style = createElement('style');\n\t\tdocument.head.appendChild(style);\n\t\ttransitionManager.stylesheet = style.sheet;\n\t}\n\n\tif (intro) {\n\t\tif (obj.css && obj.delay) {\n\t\t\tcssText = node.style.cssText;\n\t\t\tnode.style.cssText += obj.css(0);\n\t\t}\n\n\t\tif (obj.tick) obj.tick(0);\n\t}\n\n\treturn {\n\t\tt: intro ? 0 : 1,\n\t\trunning: false,\n\t\tprogram: null,\n\t\tpending: null,\n\t\trun: function(intro, callback) {\n\t\t\tvar program = {\n\t\t\t\tstart: window.performance.now() + (obj.delay || 0),\n\t\t\t\tintro: intro,\n\t\t\t\tcallback: callback\n\t\t\t};\n\n\t\t\tif (obj.delay) {\n\t\t\t\tthis.pending = program;\n\t\t\t} else {\n\t\t\t\tthis.start(program);\n\t\t\t}\n\n\t\t\tif (!this.running) {\n\t\t\t\tthis.running = true;\n\t\t\t\ttransitionManager.add(this);\n\t\t\t}\n\t\t},\n\t\tstart: function(program) {\n\t\t\tcomponent.fire(program.intro ? 'intro.start' : 'outro.start', { node: node });\n\n\t\t\tprogram.a = this.t;\n\t\t\tprogram.b = program.intro ? 1 : 0;\n\t\t\tprogram.delta = program.b - program.a;\n\t\t\tprogram.duration = duration * Math.abs(program.b - program.a);\n\t\t\tprogram.end = program.start + program.duration;\n\n\t\t\tif (obj.css) {\n\t\t\t\tif (obj.delay) node.style.cssText = cssText;\n\n\t\t\t\tprogram.rule = generateRule(\n\t\t\t\t\tprogram.a,\n\t\t\t\t\tprogram.b,\n\t\t\t\t\tprogram.delta,\n\t\t\t\t\tprogram.duration,\n\t\t\t\t\tease,\n\t\t\t\t\tobj.css\n\t\t\t\t);\n\n\t\t\t\ttransitionManager.addRule(program.rule, program.name = '__svelte_' + hash(program.rule));\n\n\t\t\t\tnode.style.animation = (node.style.animation || '')\n\t\t\t\t\t.split(', ')\n\t\t\t\t\t.filter(function(anim) {\n\t\t\t\t\t\t// when introing, discard old animations if there are any\n\t\t\t\t\t\treturn anim && (program.delta < 0 || !/__svelte/.test(anim));\n\t\t\t\t\t})\n\t\t\t\t\t.concat(program.name + ' ' + program.duration + 'ms linear 1 forwards')\n\t\t\t\t\t.join(', ');\n\t\t\t}\n\n\t\t\tthis.program = program;\n\t\t\tthis.pending = null;\n\t\t},\n\t\tupdate: function(now) {\n\t\t\tvar program = this.program;\n\t\t\tif (!program) return;\n\n\t\t\tvar p = now - program.start;\n\t\t\tthis.t = program.a + program.delta * ease(p / program.duration);\n\t\t\tif (obj.tick) obj.tick(this.t);\n\t\t},\n\t\tdone: function() {\n\t\t\tvar program = this.program;\n\t\t\tthis.t = program.b;\n\t\t\tif (obj.tick) obj.tick(this.t);\n\t\t\tif (obj.css) transitionManager.deleteRule(node, program.name);\n\t\t\tprogram.callback();\n\t\t\tprogram = null;\n\t\t\tthis.running = !!this.pending;\n\t\t},\n\t\tabort: function() {\n\t\t\tif (obj.tick) obj.tick(1);\n\t\t\tif (obj.css) transitionManager.deleteRule(node, this.program.name);\n\t\t\tthis.program = this.pending = null;\n\t\t\tthis.running = false;\n\t\t}\n\t};\n}\n\nvar transitionManager = {\n\trunning: false,\n\ttransitions: [],\n\tbound: null,\n\tstylesheet: null,\n\tactiveRules: {},\n\n\tadd: function(transition) {\n\t\tthis.transitions.push(transition);\n\n\t\tif (!this.running) {\n\t\t\tthis.running = true;\n\t\t\trequestAnimationFrame(this.bound || (this.bound = this.next.bind(this)));\n\t\t}\n\t},\n\n\taddRule: function(rule, name) {\n\t\tif (!this.activeRules[name]) {\n\t\t\tthis.activeRules[name] = true;\n\t\t\tthis.stylesheet.insertRule('@keyframes ' + name + ' ' + rule, this.stylesheet.cssRules.length);\n\t\t}\n\t},\n\n\tnext: function() {\n\t\tthis.running = false;\n\n\t\tvar now = window.performance.now();\n\t\tvar i = this.transitions.length;\n\n\t\twhile (i--) {\n\t\t\tvar transition = this.transitions[i];\n\n\t\t\tif (transition.program && now >= transition.program.end) {\n\t\t\t\ttransition.done();\n\t\t\t}\n\n\t\t\tif (transition.pending && now >= transition.pending.start) {\n\t\t\t\ttransition.start(transition.pending);\n\t\t\t}\n\n\t\t\tif (transition.running) {\n\t\t\t\ttransition.update(now);\n\t\t\t\tthis.running = true;\n\t\t\t} else if (!transition.pending) {\n\t\t\t\tthis.transitions.splice(i, 1);\n\t\t\t}\n\t\t}\n\n\t\tif (this.running) {\n\t\t\trequestAnimationFrame(this.bound);\n\t\t} else if (this.stylesheet) {\n\t\t\tvar i = this.stylesheet.cssRules.length;\n\t\t\twhile (i--) this.stylesheet.deleteRule(i);\n\t\t\tthis.activeRules = {};\n\t\t}\n\t},\n\n\tdeleteRule: function(node, name) {\n\t\tnode.style.animation = node.style.animation\n\t\t\t.split(', ')\n\t\t\t.filter(function(anim) {\n\t\t\t\treturn anim.indexOf(name) === -1;\n\t\t\t})\n\t\t\t.join(', ');\n\t}\n};\n\nfunction blankObject() {\n\treturn Object.create(null);\n}\n\nfunction destroy(detach) {\n\tthis.destroy = noop;\n\tthis.fire('destroy');\n\tthis.set = this.get = noop;\n\n\tif (detach !== false) this._fragment.u();\n\tthis._fragment.d();\n\tthis._fragment = this._state = null;\n}\n\nfunction destroyDev(detach) {\n\tdestroy.call(this, detach);\n\tthis.destroy = function() {\n\t\tconsole.warn('Component was already destroyed');\n\t};\n}\n\nfunction _differs(a, b) {\n\treturn a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\n\nfunction _differsImmutable(a, b) {\n\treturn a != a ? b == b : a !== b;\n}\n\nfunction fire(eventName, data) {\n\tvar handlers =\n\t\teventName in this._handlers && this._handlers[eventName].slice();\n\tif (!handlers) return;\n\n\tfor (var i = 0; i < handlers.length; i += 1) {\n\t\tvar handler = handlers[i];\n\n\t\tif (!handler.__calling) {\n\t\t\thandler.__calling = true;\n\t\t\thandler.call(this, data);\n\t\t\thandler.__calling = false;\n\t\t}\n\t}\n}\n\nfunction getDev(key) {\n\tif (key) console.warn(\"`let x = component.get('x')` is deprecated. Use `let { x } = component.get()` instead\");\n\treturn get.call(this, key);\n}\n\nfunction get(key) {\n\treturn key ? this._state[key] : this._state;\n}\n\nfunction init(component, options) {\n\tcomponent._handlers = blankObject();\n\tcomponent._bind = options._bind;\n\n\tcomponent.options = options;\n\tcomponent.root = options.root || component;\n\tcomponent.store = component.root.store || options.store;\n}\n\nfunction observe(key, callback, options) {\n\tvar fn = callback.bind(this);\n\n\tif (!options || options.init !== false) {\n\t\tfn(this.get()[key], undefined);\n\t}\n\n\treturn this.on(options && options.defer ? 'update' : 'state', function(event) {\n\t\tif (event.changed[key]) fn(event.current[key], event.previous && event.previous[key]);\n\t});\n}\n\nfunction observeDev(key, callback, options) {\n\tconsole.warn(\"this.observe(key, (newValue, oldValue) => {...}) is deprecated. Use\\n\\n // runs before DOM updates\\n this.on('state', ({ changed, current, previous }) => {...});\\n\\n // runs after DOM updates\\n this.on('update', ...);\\n\\n...or add the observe method from the svelte-extras package\");\n\n\tvar c = (key = '' + key).search(/[.[]/);\n\tif (c > -1) {\n\t\tvar message =\n\t\t\t'The first argument to component.observe(...) must be the name of a top-level property';\n\t\tif (c > 0)\n\t\t\tmessage += \", i.e. '\" + key.slice(0, c) + \"' rather than '\" + key + \"'\";\n\n\t\tthrow new Error(message);\n\t}\n\n\treturn observe.call(this, key, callback, options);\n}\n\nfunction on(eventName, handler) {\n\tif (eventName === 'teardown') return this.on('destroy', handler);\n\n\tvar handlers = this._handlers[eventName] || (this._handlers[eventName] = []);\n\thandlers.push(handler);\n\n\treturn {\n\t\tcancel: function() {\n\t\t\tvar index = handlers.indexOf(handler);\n\t\t\tif (~index) handlers.splice(index, 1);\n\t\t}\n\t};\n}\n\nfunction onDev(eventName, handler) {\n\tif (eventName === 'teardown') {\n\t\tconsole.warn(\n\t\t\t\"Use component.on('destroy', ...) instead of component.on('teardown', ...) which has been deprecated and will be unsupported in Svelte 2\"\n\t\t);\n\t\treturn this.on('destroy', handler);\n\t}\n\n\treturn on.call(this, eventName, handler);\n}\n\nfunction run(fn) {\n\tfn();\n}\n\nfunction set(newState) {\n\tthis._set(assign({}, newState));\n\tif (this.root._lock) return;\n\tthis.root._lock = true;\n\tcallAll(this.root._beforecreate);\n\tcallAll(this.root._oncreate);\n\tcallAll(this.root._aftercreate);\n\tthis.root._lock = false;\n}\n\nfunction _set(newState) {\n\tvar oldState = this._state,\n\t\tchanged = {},\n\t\tdirty = false;\n\n\tfor (var key in newState) {\n\t\tif (this._differs(newState[key], oldState[key])) changed[key] = dirty = true;\n\t}\n\tif (!dirty) return;\n\n\tthis._state = assign(assign({}, oldState), newState);\n\tthis._recompute(changed, this._state);\n\tif (this._bind) this._bind(changed, this._state);\n\n\tif (this._fragment) {\n\t\tthis.fire(\"state\", { changed: changed, current: this._state, previous: oldState });\n\t\tthis._fragment.p(changed, this._state);\n\t\tthis.fire(\"update\", { changed: changed, current: this._state, previous: oldState });\n\t}\n}\n\nfunction setDev(newState) {\n\tif (typeof newState !== 'object') {\n\t\tthrow new Error(\n\t\t\tthis._debugName + '.set was called without an object of data key-values to update.'\n\t\t);\n\t}\n\n\tthis._checkReadOnly(newState);\n\tset.call(this, newState);\n}\n\nfunction callAll(fns) {\n\twhile (fns && fns.length) fns.shift()();\n}\n\nfunction _mount(target, anchor) {\n\tthis._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null);\n}\n\nfunction _unmount() {\n\tif (this._fragment) this._fragment.u();\n}\n\nfunction isPromise(value) {\n\treturn value && typeof value.then === 'function';\n}\n\nvar PENDING = {};\nvar SUCCESS = {};\nvar FAILURE = {};\n\nfunction removeFromStore() {\n\tthis.store._remove(this);\n}\n\nvar proto = {\n\tdestroy: destroy,\n\tget: get,\n\tfire: fire,\n\tobserve: observe,\n\ton: on,\n\tset: set,\n\tteardown: destroy,\n\t_recompute: noop,\n\t_set: _set,\n\t_mount: _mount,\n\t_unmount: _unmount,\n\t_differs: _differs\n};\n\nvar protoDev = {\n\tdestroy: destroyDev,\n\tget: getDev,\n\tfire: fire,\n\tobserve: observeDev,\n\ton: onDev,\n\tset: setDev,\n\tteardown: destroyDev,\n\t_recompute: noop,\n\t_set: _set,\n\t_mount: _mount,\n\t_unmount: _unmount,\n\t_differs: _differs\n};\n\nexport { blankObject, destroy, destroyDev, _differs, _differsImmutable, fire, getDev, get, init, observe, observeDev, on, onDev, run, set, _set, setDev, callAll, _mount, _unmount, isPromise, PENDING, SUCCESS, FAILURE, removeFromStore, proto, protoDev, appendNode, insertNode, detachNode, detachBetween, detachBefore, detachAfter, reinsertBetween, reinsertChildren, reinsertAfter, reinsertBefore, destroyEach, createFragment, createElement, createSvgElement, createText, createComment, addListener, removeListener, setAttribute, setAttributes, removeAttribute, setXlinkAttribute, getBindingGroupValue, toNumber, timeRangesToArray, children, claimElement, claimText, setInputType, setStyle, selectOption, selectOptions, selectValue, selectMultipleValue, destroyBlock, outroAndDestroyBlock, updateKeyedEach, getSpreadUpdate, linear, generateRule, hash, wrapTransition, transitionManager, noop, assign };\n","/* src/svelte/SearchBar.html generated by Svelte v1.64.1 */\nimport { addListener, appendNode, assign, createElement, createText, destroyEach, detachNode, init, insertNode, noop, proto, removeListener, setAttribute } from \"svelte/shared.js\";\n\nfunction apiUrl(apiEndpoint, keyword) {\n return `${apiEndpoint}?keyword=${keyword}`;\n};\n\nfunction hasEnoughChars( keyword ) {\n return keyword.length >= 2;\n};\n\nfunction data() {\n return {\n // Public\n placeHolder: \"Search\"\n , apiEndpoint: \"\"\n , results: []\n\t\t\t\t, searchUrl: \"\"\n\n // Private\n\t\t\t\t, wg: \"searchBar\"\n , keyword: \"\"\n , isResultsHidden: true\n };\n};\n\nvar methods = {\n\n handleOnClick(event) {\n event.stopPropagation();\n this.set({ isResultsHidden: false });\n },\n\n\t\t\thandleOnSubmit(event) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tconst {searchUrl, keyword} = this.get();\n\t\t\t\twindow.location.href = `${searchUrl}?keyword=${keyword}`;\n\t\t\t},\n\n updateList(event) {\n\t\t\t\tconst keyCode = event.keyCode;\n\t\t\t\tconst {keyword, apiUrl, hasEnoughChars} = this.get();\n\n\t\t\t\tkeyCode == 13 ? this.handleOnSubmit(event) :\n\n hasEnoughChars ?\n\n\t\t\t\t\tfetch(apiUrl).then(response => {\n\t\t\t\t\t\t// Convert to JSON\n\t\t\t\t\t\treturn response.json();\n\t\t\t\t\t}).then(json => {\n\t\t\t\t\t\tconst data = json.Results;\n\n\t\t\t\t\t\tlet dataTransformed = [];\n\t\t\t\t\t\tdata.forEach(item => {\n\t\t\t\t\t\t\tlet newItem = item;\n\t\t\t\t\t\t\tconst index = newItem.Title.toLowerCase().indexOf(keyword.toLowerCase());\n\t\t\t\t\t\t\tconst length = keyword.length;\n\t\t\t\t\t\t\tif(index >= 0) {\n\t\t\t\t\t\t\t\tconst replaceStr = newItem.Title.substring(index, index + length);\n\t\t\t\t\t\t\t\tnewItem.Title = newItem.Title.replace(replaceStr, `<strong>${replaceStr}</strong>`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdataTransformed.push(newItem);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.set({\n\t\t\t\t\t\t\tresults: dataTransformed,\n\t\t\t\t\t\t\tisResultsHidden: false\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}).catch(err => {\n\t\t\t\t\t\tconsole.log(`SearchBar: No Results found`)\n\t\t\t\t\t})\n\n\t\t\t\t\t: this.set({\n\t\t\t\t\t \tresults: [],\n\t\t\t\t\t\tisResultsHidden: true\n\t\t\t\t\t});\n }\n};\n\nfunction create_main_fragment(component, state) {\n\tvar div, div_1, div_2, div_3, button, button_class_value, div_3_class_value, text_2, input, input_updating = false, input_class_value, text_3, div_4, div_4_class_value, text_7, div_5, div_5_class_value;\n\n\tfunction onwindowclick(event) {\n\t\tcomponent.set({ isResultsHidden: true });\n\t}\n\twindow.addEventListener(\"click\", onwindowclick);\n\n\tfunction click_handler(event) {\n\t\tcomponent.handleOnSubmit(event);\n\t}\n\n\tfunction input_input_handler() {\n\t\tinput_updating = true;\n\t\tcomponent.set({ keyword: input.value });\n\t\tinput_updating = false;\n\t}\n\n\tfunction keyup_handler(event) {\n\t\tcomponent.updateList(event);\n\t}\n\n\tfunction touchend_handler(event) {\n\t\tcomponent.updateList(event);\n\t}\n\n\tvar each_value = state.results;\n\n\tvar each_blocks = [];\n\n\tfor (var i = 0; i < each_value.length; i += 1) {\n\t\teach_blocks[i] = create_each_block(component, assign(assign({}, state), {\n\t\t\teach_value: each_value,\n\t\t\tresult: each_value[i],\n\t\t\tresult_index: i\n\t\t}));\n\t}\n\n\treturn {\n\t\tc: function create() {\n\t\t\tdiv = createElement(\"div\");\n\t\t\tdiv_1 = createElement(\"div\");\n\t\t\tdiv_2 = createElement(\"div\");\n\t\t\tdiv_3 = createElement(\"div\");\n\t\t\tbutton = createElement(\"button\");\n\t\t\tbutton.innerHTML = \"<span class=\\\"icon-search\\\"></span>\";\n\t\t\ttext_2 = createText(\"\\n\\t\\t\\t\");\n\t\t\tinput = createElement(\"input\");\n\t\t\ttext_3 = createText(\"\\n\\t\\t\\t\");\n\t\t\tdiv_4 = createElement(\"div\");\n\n\t\t\tfor (var i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].c();\n\t\t\t}\n\n\t\t\ttext_7 = createText(\"\\n\\t\");\n\t\t\tdiv_5 = createElement(\"div\");\n\t\t\tdiv_5.innerHTML = \"<span class=\\\"icon-close\\\"></span>\";\n\t\t\tthis.h();\n\t\t},\n\n\t\th: function hydrate() {\n\t\t\taddListener(button, \"click\", click_handler);\n\t\t\tbutton.className = button_class_value = \"\" + state.wg + \"-btnSearch\";\n\t\t\tbutton.type = \"button\";\n\t\t\tdiv_3.className = div_3_class_value = \"\" + state.wg + \"-search\";\n\t\t\taddListener(input, \"input\", input_input_handler);\n\t\t\taddListener(input, \"keyup\", keyup_handler);\n\t\t\taddListener(input, \"touchend\", touchend_handler);\n\t\t\tinput.className = input_class_value = \"\" + state.wg + \"-input\";\n\t\t\tsetAttribute(input, \"type\", \"text\");\n\t\t\tinput.placeholder = state.placeHolder;\n\t\t\tdiv_4.className = div_4_class_value = \"\" + state.wg + \"-results \" + (state.isResultsHidden ? '' : 'has-results');\n\t\t\tdiv_2.className = \"col-12 col-lg-6\";\n\t\t\tdiv_1.className = \"row justify-content-center\";\n\t\t\tdiv_5.className = div_5_class_value = \"\" + state.wg + \"-close toggle-searchBar\";\n\t\t\tdiv.className = \"container position-relative\";\n\t\t},\n\n\t\tm: function mount(target, anchor) {\n\t\t\tinsertNode(div, target, anchor);\n\t\t\tappendNode(div_1, div);\n\t\t\tappendNode(div_2, div_1);\n\t\t\tappendNode(div_3, div_2);\n\t\t\tappendNode(button, div_3);\n\t\t\tappendNode(text_2, div_2);\n\t\t\tappendNode(input, div_2);\n\n\t\t\tinput.value = state.keyword;\n\n\t\t\tappendNode(text_3, div_2);\n\t\t\tappendNode(div_4, div_2);\n\n\t\t\tfor (var i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].m(div_4, null);\n\t\t\t}\n\n\t\t\tappendNode(text_7, div);\n\t\t\tappendNode(div_5, div);\n\t\t},\n\n\t\tp: function update(changed, state) {\n\t\t\tif ((changed.wg) && button_class_value !== (button_class_value = \"\" + state.wg + \"-btnSearch\")) {\n\t\t\t\tbutton.className = button_class_value;\n\t\t\t}\n\n\t\t\tif ((changed.wg) && div_3_class_value !== (div_3_class_value = \"\" + state.wg + \"-search\")) {\n\t\t\t\tdiv_3.className = div_3_class_value;\n\t\t\t}\n\n\t\t\tif (!input_updating) input.value = state.keyword;\n\t\t\tif ((changed.wg) && input_class_value !== (input_class_value = \"\" + state.wg + \"-input\")) {\n\t\t\t\tinput.className = input_class_value;\n\t\t\t}\n\n\t\t\tif (changed.placeHolder) {\n\t\t\t\tinput.placeholder = state.placeHolder;\n\t\t\t}\n\n\t\t\tvar each_value = state.results;\n\n\t\t\tif (changed.wg || changed.results) {\n\t\t\t\tfor (var i = 0; i < each_value.length; i += 1) {\n\t\t\t\t\tvar each_context = assign(assign({}, state), {\n\t\t\t\t\t\teach_value: each_value,\n\t\t\t\t\t\tresult: each_value[i],\n\t\t\t\t\t\tresult_index: i\n\t\t\t\t\t});\n\n\t\t\t\t\tif (each_blocks[i]) {\n\t\t\t\t\t\teach_blocks[i].p(changed, each_context);\n\t\t\t\t\t} else {\n\t\t\t\t\t\teach_blocks[i] = create_each_block(component, each_context);\n\t\t\t\t\t\teach_blocks[i].c();\n\t\t\t\t\t\teach_blocks[i].m(div_4, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (; i < each_blocks.length; i += 1) {\n\t\t\t\t\teach_blocks[i].u();\n\t\t\t\t\teach_blocks[i].d();\n\t\t\t\t}\n\t\t\t\teach_blocks.length = each_value.length;\n\t\t\t}\n\n\t\t\tif ((changed.wg || changed.isResultsHidden) && div_4_class_value !== (div_4_class_value = \"\" + state.wg + \"-results \" + (state.isResultsHidden ? '' : 'has-results'))) {\n\t\t\t\tdiv_4.className = div_4_class_value;\n\t\t\t}\n\n\t\t\tif ((changed.wg) && div_5_class_value !== (div_5_class_value = \"\" + state.wg + \"-close toggle-searchBar\")) {\n\t\t\t\tdiv_5.className = div_5_class_value;\n\t\t\t}\n\t\t},\n\n\t\tu: function unmount() {\n\t\t\tdetachNode(div);\n\n\t\t\tfor (var i = 0; i < each_blocks.length; i += 1) {\n\t\t\t\teach_blocks[i].u();\n\t\t\t}\n\t\t},\n\n\t\td: function destroy() {\n\t\t\twindow.removeEventListener(\"click\", onwindowclick);\n\n\t\t\tremoveListener(button, \"click\", click_handler);\n\t\t\tremoveListener(input, \"input\", input_input_handler);\n\t\t\tremoveListener(input, \"keyup\", keyup_handler);\n\t\t\tremoveListener(input, \"touchend\", touchend_handler);\n\n\t\t\tdestroyEach(each_blocks);\n\t\t}\n\t};\n}\n\n// (18:4) {{#each results as result}}\nfunction create_each_block(component, state) {\n\tvar result = state.result, each_value = state.each_value, result_index = state.result_index;\n\tvar div, span, span_class_value, text, a, raw_value = result.Title, a_href_value, div_class_value;\n\n\treturn {\n\t\tc: function create() {\n\t\t\tdiv = createElement(\"div\");\n\t\t\tspan = createElement(\"span\");\n\t\t\ttext = createText(\"\\n\\t\\t\\t\\t\\t\\t\");\n\t\t\ta = createElement(\"a\");\n\t\t\tthis.h();\n\t\t},\n\n\t\th: function hydrate() {\n\t\t\tspan.className = span_class_value = \"\" + state.wg + \"-resultIcon icon-search mr-2\";\n\t\t\ta.href = a_href_value = result.Url;\n\t\t\tdiv.className = div_class_value = \"\" + state.wg + \"-result\";\n\t\t},\n\n\t\tm: function mount(target, anchor) {\n\t\t\tinsertNode(div, target, anchor);\n\t\t\tappendNode(span, div);\n\t\t\tappendNode(text, div);\n\t\t\tappendNode(a, div);\n\t\t\ta.innerHTML = raw_value;\n\t\t},\n\n\t\tp: function update(changed, state) {\n\t\t\tresult = state.result;\n\t\t\teach_value = state.each_value;\n\t\t\tresult_index = state.result_index;\n\t\t\tif ((changed.wg) && span_class_value !== (span_class_value = \"\" + state.wg + \"-resultIcon icon-search mr-2\")) {\n\t\t\t\tspan.className = span_class_value;\n\t\t\t}\n\n\t\t\tif ((changed.results) && raw_value !== (raw_value = result.Title)) {\n\t\t\t\ta.innerHTML = raw_value;\n\t\t\t}\n\n\t\t\tif ((changed.results) && a_href_value !== (a_href_value = result.Url)) {\n\t\t\t\ta.href = a_href_value;\n\t\t\t}\n\n\t\t\tif ((changed.wg) && div_class_value !== (div_class_value = \"\" + state.wg + \"-result\")) {\n\t\t\t\tdiv.className = div_class_value;\n\t\t\t}\n\t\t},\n\n\t\tu: function unmount() {\n\t\t\ta.innerHTML = '';\n\n\t\t\tdetachNode(div);\n\t\t},\n\n\t\td: noop\n\t};\n}\n\nfunction SvelteComponent(options) {\n\tinit(this, options);\n\tthis._state = assign(data(), options.data);\n\tthis._recompute({ apiEndpoint: 1, keyword: 1 }, this._state);\n\n\tthis._fragment = create_main_fragment(this, this._state);\n\n\tif (options.target) {\n\t\tthis._fragment.c();\n\t\tthis._mount(options.target, options.anchor);\n\t}\n}\n\nassign(SvelteComponent.prototype, proto);\nassign(SvelteComponent.prototype, methods);\n\nSvelteComponent.prototype._recompute = function _recompute(changed, state) {\n\tif (changed.apiEndpoint || changed.keyword) {\n\t\tif (this._differs(state.apiUrl, (state.apiUrl = apiUrl(state.apiEndpoint, state.keyword)))) changed.apiUrl = true;\n\t}\n\n\tif (changed.keyword) {\n\t\tif (this._differs(state.hasEnoughChars, (state.hasEnoughChars = hasEnoughChars(state.keyword)))) changed.hasEnoughChars = true;\n\t}\n}\nexport default SvelteComponent;","export { default as WGSearchBar } from './svelte/SearchBar';\n","/* eslint-disable max-len */\n/* eslint-disable no-invalid-this */\n/* eslint-disable comma-dangle */\n\nconst BIOPAGECLS = '.bioPage-';\n\n// imports\nimport utils from './utils';\n\nexport function initPageLoader(self) {\n\tconst This = self;\n\tlet currentScrollPosition;\n\n\tThis.linkTrigger.on('click', function(e) {\n\t\te.preventDefault();\n\n\t\tlet url = $(this).attr('href');\n\n\t\tcurrentScrollPosition = document.documentElement.scrollTop || document.body.scrollTop;\n\n\t\tThis.loadingSpinner.addClass('is-active bioLoader');\n\n\t\t// set the hash\n\t\twindow.location.hash = This.name;\n\n\t\t// check if the page was loaded\n\t\tif (!This.pageLoaded) {\n\t\t\tThis.$wg.find(This.WG + 'page').load(`${url} main`, function() {\n\t\t\t\tThis.bioPage = This.$wg.find('.bioPage');\n\n\t\t\t\t// load all js needed for widgets / blocks\n\t\t\t\tloadJS(This);\n\n\t\t\t\t// in case it had the standalone class\n\t\t\t\tThis.bioPage.removeClass('is-standalone');\n\n\t\t\t\tThis.bioPage.addClass('active');\n\n\t\t\t\t$('body').css({\n\t\t\t\t\t'overflow': 'hidden',\n\t\t\t\t\t'height': '100vh',\n\t\t\t\t});\n\n\t\t\t\tThis.pageLoaded = true;\n\n\t\t\t\t// carousel stuff (fix width issues)\n\t\t\t\t// timeout, because css animation is set to 0.5s\n\t\t\t\tif (This.bioPage.find('.slick-initialized').length > 0) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tThis.bioPage.find('.slick-initialized').each(function() {\n\t\t\t\t\t\t\t$(this).slick('setPosition');\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t$(document).trigger('resize');\n\t\t\t\t\t}, 750);\n\t\t\t\t}\n\n\t\t\t\t// css transition time\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tfixOverFlow(This);\n\t\t\t\t\tscrollSpy(This);\n\n\t\t\t\t\tThis.loadingSpinner.removeClass('is-active bioLoader');\n\t\t\t\t}, 500);\n\n\t\t\t\tThis.bioPage.on('scroll', function() {\n\t\t\t\t\t$(window).trigger('scroll');\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\t$('body').css({\n\t\t\t\t'overflow': 'hidden',\n\t\t\t\t'height': '100vh',\n\t\t\t});\n\n\t\t\t// css transition\n\t\t\tsetTimeout(() => {\n\t\t\t\tfixOverFlow(This);\n\t\t\t\tscrollSpy(This);\n\n\t\t\t\tThis.loadingSpinner.removeClass('is-active bioLoader');\n\t\t\t}, 500);\n\n\t\t\tThis.bioPage.addClass('active');\n\t\t}\n\t});\n\n\tThis.$wg.on('click', BIOPAGECLS + 'close', function() {\n\t\tfixOverFlow(This, false);\n\n\t\t// clear hash\n\t\twindow.location.hash = '';\n\n\t\tThis.bioPage.removeClass('active');\n\n\t\t$('body').css({\n\t\t\t'overflow': '',\n\t\t\t'height': '',\n\t\t});\n\n\t\tdocument.documentElement.scrollTop = currentScrollPosition;\n\n\t\tsetTimeout(() => {\n\t\t\tThis.bioPage[0].scrollTop = 0;\n\t\t}, 500);\n\t});\n\n\t// on load, check if name is the same as the hash value\n\t// if it's, trigger a click manually\n\n\tlet nameFromHash = window.location.hash.split('#')[1] || '';\n\n\tnameFromHash = decodeURIComponent(nameFromHash);\n\n\tif (This.name && This.name !== '' && (nameFromHash === This.name)) {\n\t\tif (This.linkTrigger.closest('.judgesContainerBlock').length == 0) {\n\t\t\tThis.linkTrigger.trigger('click');\n\t\t} else {\n\t\t\tThis.linkTrigger.closest('.judgesContainerBlock').find(`[data-name=\"${nameFromHash}\"]:not(.slick-cloned) .judgeItemBlock-link`).trigger('click');\n\t\t}\n\t\t// This.linkTrigger.trigger('click');\n\t}\n}\n\nfunction loadJS(This) {\n\tThis.bioPage.find('[data-wg]').each(function() {\n\t\tconst $wg = $(this);\n\t\tconst path = lowerCaseFirstLetter($wg.data('wg'));\n\t\tconst name = $wg.data('wg');\n\n\t\ttry {\n\t\t\tconst Partial = require(`./widgets/${path}`);\n\n\t\t\t// init a new instance of the partial\n\t\t\tconst PartialClass = new Partial[name]($wg);\n\n\t\t\t// call init function\n\t\t\tPartialClass.init();\n\t\t} catch (err) {\n\t\t\t// error\n\t\t}\n\t});\n}\n\nfunction lowerCaseFirstLetter(string) {\n\treturn string.charAt(0).toLowerCase() + string.slice(1);\n}\n\nfunction fixOverFlow(This, state = true) {\n\t// fix overflow\n\tif (state) {\n\t\tThis.bioPage.parents().not('body').addClass('overflow-visible no-transform');\n\t} else {\n\t\tThis.bioPage.parents().not('body').removeClass('overflow-visible no-transform');\n\t}\n}\n\nfunction scrollSpy(This) {\n\tlet profileImage = This.bioPage.find(BIOPAGECLS + 'profileImage');\n\tlet offsetTop = (profileImage.offset().top - $(window).scrollTop()) || 120;\n\n\t$(window).resize(() => {\n\t\taffixImg(This, profileImage, offsetTop);\n\t});\n\n\tif (!utils.isSmallerThanTablet()) {\n\t\tThis.bioPage.on('scroll', function() {\n\t\t\tprofileImage.trigger('sticky_kit:recalc');\n\t\t});\n\t}\n\n\taffixImg(This, profileImage, offsetTop);\n}\n\nfunction affixImg(This, profileImage, offsetTop) {\n\tif (!utils.isSmallerThanTablet()) {\n\t\tprofileImage.stick_in_parent({\n\t\t\toffset_top: offsetTop,\n\t\t});\n\n\t\tThis.bioPage.trigger('scroll');\n\t}\n}\n","// CONSTANTS are all caps.\nconst NS = \"ContactUsLocation\";\nconst CLS = \"contactUsLocation\";\nconst WG = \".\" + CLS + \"-\";\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/contactUsLocation.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\n\n\nexport class ContactUsLocation {\n\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadContactUsLocation function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setContactUsLocation();\n\t}\n\n\tsetContactUsLocation() {\n\t\t// Add Some logic here\n\t}\n\n\t//Add more functions like on above here\n\n}\n","/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-unused-vars */\n// CONSTANTS are all caps.\nconst NS = 'KeyDateItemBlock';\nconst CLS = 'keyDateItemBlock';\nconst WG = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out src/scripts/loadWg/keyDateItemBlock.js using Webpack dynamic imports as chunks.\n// import $ from 'jquery'\nimport moment from 'moment';\n\nexport class KeyDateItemBlock {\n\tconstructor($el) {\n\t\t// $el is the widget node return by the loadKeyDateItemBlock function\n\t\tthis.$el = $el;\n\t}\n\n\tinit() {\n\t\tthis.setKeyDateItemBlock();\n\t}\n\n\tsetKeyDateItemBlock() {\n\t\t// Add Some logic here\n\t\tconst This = this;\n\t\tconst $wg = $(this.$el);\n\t\tlet keyDate = $wg.data('keyDate');\n\t\tlet todayMoment = moment.utc();\n\t\tlet keyDateMoment = moment(keyDate, 'DD-MM-YYYY');\n\t\tlet day = keyDateMoment.format('DD');\n\t\tlet month = keyDateMoment.format('MMM');\n\t\tlet year = keyDateMoment.format('YYYY');\n\t\t$wg.find(WG + 'date').html(`\n\t\t\t<div>${day}</div>\n\t\t\t<div>${month}</div>\n\t\t\t<div>${year}</div>\n\t\t`);\n\n\t\t// check if it has passed\n\t\tif (todayMoment.isSameOrAfter(keyDateMoment)) {\n\t\t\t$wg.addClass('is-reached');\n\t\t}\n\t}\n\n\t// Add more functions like on above here\n}\n","var map = {\n\t\"./ShopVideoBlock\": 533,\n\t\"./ShopVideoBlock.js\": 533,\n\t\"./aboutCompetitionBlock\": 540,\n\t\"./aboutCompetitionBlock.js\": 540,\n\t\"./articleGallery\": 515,\n\t\"./articleGallery.js\": 515,\n\t\"./articleList\": 548,\n\t\"./articleList.js\": 548,\n\t\"./bioListBlock\": 553,\n\t\"./bioListBlock.js\": 553,\n\t\"./bioListItem\": 575,\n\t\"./bioListItem.js\": 575,\n\t\"./cardsContainerBlock\": 541,\n\t\"./cardsContainerBlock.js\": 541,\n\t\"./careSlider\": 506,\n\t\"./careSlider.js\": 506,\n\t\"./careSliderItem\": 754,\n\t\"./careSliderItem.js\": 754,\n\t\"./careculator\": 554,\n\t\"./careculator.js\": 554,\n\t\"./chatbotButton\": 525,\n\t\"./chatbotButton.js\": 525,\n\t\"./collageImageGridItemBlock\": 528,\n\t\"./collageImageGridItemBlock.js\": 528,\n\t\"./contactUsLocation\": 837,\n\t\"./contactUsLocation.js\": 837,\n\t\"./contactUsSearchBlock\": 520,\n\t\"./contactUsSearchBlock.js\": 520,\n\t\"./countdownTimerBlock\": 542,\n\t\"./countdownTimerBlock.js\": 542,\n\t\"./downloadBriefBlock\": 543,\n\t\"./downloadBriefBlock.js\": 543,\n\t\"./ecommerceBlock\": 552,\n\t\"./ecommerceBlock.js\": 552,\n\t\"./eventTemplate\": 517,\n\t\"./eventTemplate.js\": 517,\n\t\"./farmItem\": 799,\n\t\"./farmItem.js\": 799,\n\t\"./featureArticleHero\": 511,\n\t\"./featureArticleHero.js\": 511,\n\t\"./featureBlock\": 555,\n\t\"./featureBlock.js\": 555,\n\t\"./galleryCarousel\": 505,\n\t\"./galleryCarousel.js\": 505,\n\t\"./gridContainerBlock\": 556,\n\t\"./gridContainerBlock.js\": 556,\n\t\"./horizontalGalleryBlock\": 557,\n\t\"./horizontalGalleryBlock.js\": 557,\n\t\"./horizontalScrollBlock\": 558,\n\t\"./horizontalScrollBlock.js\": 558,\n\t\"./horizontalYoutubeGalleryBlock\": 559,\n\t\"./horizontalYoutubeGalleryBlock.js\": 559,\n\t\"./hotspotBlock\": 560,\n\t\"./hotspotBlock.js\": 560,\n\t\"./hubGrid\": 504,\n\t\"./hubGrid.js\": 504,\n\t\"./hubHero\": 501,\n\t\"./hubHero.js\": 501,\n\t\"./imageSlider\": 513,\n\t\"./imageSlider.js\": 513,\n\t\"./imageSliderItem\": 755,\n\t\"./imageSliderItem.js\": 755,\n\t\"./instagramBlock\": 514,\n\t\"./instagramBlock.js\": 514,\n\t\"./iwpApplicationForm\": 561,\n\t\"./iwpApplicationForm.js\": 561,\n\t\"./judgeItemBlock\": 576,\n\t\"./judgeItemBlock.js\": 576,\n\t\"./judgesContainerBlock\": 544,\n\t\"./judgesContainerBlock.js\": 544,\n\t\"./keyDateItemBlock\": 838,\n\t\"./keyDateItemBlock.js\": 838,\n\t\"./magnifyingGallery\": 518,\n\t\"./magnifyingGallery.js\": 518,\n\t\"./myAccountUpdateProfilePage\": 562,\n\t\"./myAccountUpdateProfilePage.js\": 562,\n\t\"./navigator\": 519,\n\t\"./navigator.js\": 519,\n\t\"./newsTemplate\": 512,\n\t\"./newsTemplate.js\": 512,\n\t\"./newsroomBlock\": 563,\n\t\"./newsroomBlock.js\": 563,\n\t\"./pageFilter\": 507,\n\t\"./pageFilter.js\": 507,\n\t\"./parallaxFullWidthBlock\": 564,\n\t\"./parallaxFullWidthBlock.js\": 564,\n\t\"./productItemCarouselWidget\": 551,\n\t\"./productItemCarouselWidget.js\": 551,\n\t\"./productItemWidget\": 121,\n\t\"./productItemWidget.js\": 121,\n\t\"./profileDetailBlock\": 537,\n\t\"./profileDetailBlock.js\": 537,\n\t\"./profileListingBlock\": 534,\n\t\"./profileListingBlock.js\": 534,\n\t\"./profileListingItemBlock\": 497,\n\t\"./profileListingItemBlock.js\": 497,\n\t\"./provenceMap\": 770,\n\t\"./provenceMap.js\": 770,\n\t\"./provenceMapSlider\": 510,\n\t\"./provenceMapSlider.js\": 510,\n\t\"./quoteBlock\": 565,\n\t\"./quoteBlock.js\": 565,\n\t\"./readingTab\": 509,\n\t\"./readingTab.js\": 509,\n\t\"./renewalForm\": 521,\n\t\"./renewalForm.js\": 521,\n\t\"./searchBar\": 756,\n\t\"./searchBar.js\": 756,\n\t\"./shopFeaturedGridItemBlock\": 529,\n\t\"./shopFeaturedGridItemBlock.js\": 529,\n\t\"./shopItemsCarouselWidget\": 550,\n\t\"./shopItemsCarouselWidget.js\": 550,\n\t\"./shopItemsWidget\": 549,\n\t\"./shopItemsWidget.js\": 549,\n\t\"./shopListingBlock\": 532,\n\t\"./shopListingBlock.js\": 532,\n\t\"./shopListingByCategoryBlock\": 531,\n\t\"./shopListingByCategoryBlock.js\": 531,\n\t\"./shopListingProductBlock\": 494,\n\t\"./shopListingProductBlock.js\": 494,\n\t\"./shopProductBlock\": 530,\n\t\"./shopProductBlock.js\": 530,\n\t\"./siteFooter\": 522,\n\t\"./siteFooter.js\": 522,\n\t\"./siteFooterSitemap\": 524,\n\t\"./siteFooterSitemap.js\": 524,\n\t\"./siteFooterWoolLab\": 523,\n\t\"./siteFooterWoolLab.js\": 523,\n\t\"./siteHeader\": 502,\n\t\"./siteHeader.js\": 502,\n\t\"./siteHeaderWoolLab\": 503,\n\t\"./siteHeaderWoolLab.js\": 503,\n\t\"./socialBar\": 516,\n\t\"./socialBar.js\": 516,\n\t\"./sourcingGuideBlock\": 536,\n\t\"./sourcingGuideBlock.js\": 536,\n\t\"./sourcingGuideItemBlock\": 499,\n\t\"./sourcingGuideItemBlock.js\": 499,\n\t\"./stepByStepContainerBlock\": 546,\n\t\"./stepByStepContainerBlock.js\": 546,\n\t\"./stepByStepItemBlock\": 545,\n\t\"./stepByStepItemBlock.js\": 545,\n\t\"./supplierListingBlock\": 535,\n\t\"./supplierListingBlock.js\": 535,\n\t\"./supplierListingItemBlock\": 498,\n\t\"./supplierListingItemBlock.js\": 498,\n\t\"./tabContainer\": 527,\n\t\"./tabContainer.js\": 527,\n\t\"./tabbedPartnerContainerBlock\": 539,\n\t\"./tabbedPartnerContainerBlock.js\": 539,\n\t\"./textFeature\": 508,\n\t\"./textFeature.js\": 508,\n\t\"./timelineCarousel\": 526,\n\t\"./timelineCarousel.js\": 526,\n\t\"./upcomingEventsContainerBlock\": 547,\n\t\"./upcomingEventsContainerBlock.js\": 547,\n\t\"./videoBlock\": 500,\n\t\"./videoBlock.js\": 500,\n\t\"./videoListingBlock\": 538,\n\t\"./videoListingBlock.js\": 538,\n\t\"./welcomeBannerModal\": 566,\n\t\"./welcomeBannerModal.js\": 566,\n\t\"./woolLabImageBlock\": 567,\n\t\"./woolLabImageBlock.js\": 567,\n\t\"./woolLabInteractiveMoodboardBlock\": 568,\n\t\"./woolLabInteractiveMoodboardBlock.js\": 568,\n\t\"./woolLabMyMoodboardsBlock\": 569,\n\t\"./woolLabMyMoodboardsBlock.js\": 569,\n\t\"./woolLabMySwatchesBlock\": 570,\n\t\"./woolLabMySwatchesBlock.js\": 570,\n\t\"./woolLabOnboardingBlock\": 571,\n\t\"./woolLabOnboardingBlock.js\": 571,\n\t\"./woolLabPersistentSwatchDrawer\": 572,\n\t\"./woolLabPersistentSwatchDrawer.js\": 572,\n\t\"./woolLabRenameMoodboardModalBlock\": 757,\n\t\"./woolLabRenameMoodboardModalBlock.js\": 757,\n\t\"./woolLabSaveToMoodboardModalBlock\": 590,\n\t\"./woolLabSaveToMoodboardModalBlock.js\": 590,\n\t\"./woolLabShareSwatchModalBlock\": 603,\n\t\"./woolLabShareSwatchModalBlock.js\": 603,\n\t\"./woolLabSwatchBlock\": 496,\n\t\"./woolLabSwatchBlock.js\": 496,\n\t\"./woolLabSwatchDetailModalBlock\": 495,\n\t\"./woolLabSwatchDetailModalBlock.js\": 495,\n\t\"./woolLabSwatchLibraryHelpModalBlock\": 762,\n\t\"./woolLabSwatchLibraryHelpModalBlock.js\": 762,\n\t\"./woolLabSwatchLibrarySearchBlock\": 573,\n\t\"./woolLabSwatchLibrarySearchBlock.js\": 573,\n\t\"./woolLabThemesBlock\": 574,\n\t\"./woolLabThemesBlock.js\": 574\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 895;"],"sourceRoot":""}