{"version":3,"sources":["webpack://CovestroUi/webpack/universalModuleDefinition","webpack://CovestroUi/webpack/bootstrap","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/events/js/events.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/tracking/js/tracking.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/breakpoints/js/breakpoints.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/scroll-to/js/scroll-to.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/form-control/js/form-control.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/hashscrolling/js/hashscrolling.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/overlays/js/overlays.ts","webpack://CovestroUi/./src/lib/molecules/favourites-action/js/favourites-action.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/product-compare/js/product-compare.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/body-state/js/body-state.ts","webpack://CovestroUi/./src/lib/molecules/marketo-form-global/js/marketo-form-global.ts","webpack://CovestroUi/./src/lib/molecules/event-list/js/event-list.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/burger/js/burger.ts","webpack://CovestroUi/./src/lib/molecules/favourite-button/js/favourite-button.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/labels/js/labels.ts","webpack://CovestroUi/./src/public_api.ui.ts","webpack://CovestroUi/./src/lib/base/security/js/security.ts","webpack://CovestroUi/./src/lib/atoms/burger/js/burger.ts","webpack://CovestroUi/./src/lib/atoms/button/js/button.ts","webpack://CovestroUi/./src/lib/atoms/definitionlist/js/definitionlist.ts","webpack://CovestroUi/./src/lib/atoms/heading/js/heading.ts","webpack://CovestroUi/./src/lib/atoms/image/js/image.ts","webpack://CovestroUi/./src/lib/atoms/video/js/video.ts","webpack://CovestroUi/./src/lib/atoms/input/js/input.ts","webpack://CovestroUi/./src/lib/atoms/input-autocomplete/js/input-autocomplete.ts","webpack://CovestroUi/./src/lib/atoms/input-checkbox/js/input-checkbox.ts","webpack://CovestroUi/./src/lib/atoms/input-date/js/input-date.ts","webpack://CovestroUi/./src/lib/atoms/input-range-slider/js/input-range-slider.ts","webpack://CovestroUi/./src/lib/atoms/input-search/js/input-search.ts","webpack://CovestroUi/./src/lib/atoms/input-select/js/input-select.ts","webpack://CovestroUi/D:/a/1/s/frontend/packages/shared/utils/highlight/js/highlight.ts","webpack://CovestroUi/./src/lib/atoms/input-textarea/js/input-textarea.ts","webpack://CovestroUi/./src/lib/atoms/label/js/label.ts","webpack://CovestroUi/./src/lib/atoms/link/js/link.ts","webpack://CovestroUi/./src/lib/atoms/imageWithLink/js/imageWithLink.ts","webpack://CovestroUi/./src/lib/atoms/list-unordered/js/list-unordered.ts","webpack://CovestroUi/./src/lib/atoms/loading-indicator/js/loading-indicator.ts","webpack://CovestroUi/./src/lib/atoms/search-trigger/js/search-trigger.ts","webpack://CovestroUi/./src/lib/atoms/tag-filter/js/tag-filter.ts","webpack://CovestroUi/./src/lib/atoms/validation-summary/js/validation-summary.ts","webpack://CovestroUi/./src/lib/molecules/accordion/js/accordion.ts","webpack://CovestroUi/./src/lib/molecules/brand-benefit-list/js/brand-benefit-list.ts","webpack://CovestroUi/./src/lib/molecules/brand-product-accordion/js/brand-product-accordion.ts","webpack://CovestroUi/./src/lib/molecules/breadcrumb/js/breadcrumb.ts","webpack://CovestroUi/./src/lib/molecules/campaign-download/js/campaign-download.ts","webpack://CovestroUi/./src/lib/molecules/category-tags/js/category-tags.ts","webpack://CovestroUi/./src/lib/organisms/inquiry-contact-teaser/js/inquiry-contact-teaser.ts","webpack://CovestroUi/./src/lib/molecules/contact-teaser-buttons/js/contact-teaser-buttons.ts","webpack://CovestroUi/./src/lib/molecules/region-lightbox/js/region-lightbox.ts","webpack://CovestroUi/./src/lib/molecules/datasheet/js/datasheet.ts","webpack://CovestroUi/./src/lib/molecules/download-item/js/download-item.ts","webpack://CovestroUi/./src/lib/molecules/download-list/js/download-list.ts","webpack://CovestroUi/./src/lib/molecules/download-table/js/download-table.ts","webpack://CovestroUi/./src/lib/molecules/favourite-layer/js/favourite-layer.ts","webpack://CovestroUi/./src/lib/molecules/featured-download/js/featured-download.ts","webpack://CovestroUi/./src/lib/molecules/filter-market-switch/js/filter-market-switch.ts","webpack://CovestroUi/./src/lib/molecules/filter-multiselect/js/filter-multiselect.ts","webpack://CovestroUi/./src/lib/molecules/filter-productsearch/js/filter-productsearch.ts","webpack://CovestroUi/./src/lib/molecules/filter-keywordsearch/js/filter-keywordsearch.ts","webpack://CovestroUi/./src/lib/molecules/filter-categorysearch/js/filter-categorysearch.ts","webpack://CovestroUi/./src/lib/molecules/filter-categorysearch-singlelevel/js/filter-categorysearch-singlelevel.ts","webpack://CovestroUi/./src/lib/molecules/favourites-entry-table/js/favourites-entry-table.ts","webpack://CovestroUi/./src/lib/molecules/favourites-list/js/favourites-list.ts","webpack://CovestroUi/./src/lib/molecules/filter-singleselect/js/filter-singleselect.ts","webpack://CovestroUi/./src/lib/molecules/filter-two-level-multiselect/js/filter-two-level-multiselect.ts","webpack://CovestroUi/./src/lib/molecules/filter-wrapper/js/filter-wrapper.ts","webpack://CovestroUi/./src/lib/molecules/product-filter/js/product-filter.ts","webpack://CovestroUi/./src/lib/molecules/technical-property-popup/js/technical-property-popup.ts","webpack://CovestroUi/./src/lib/molecules/form-order/js/form-order.ts","webpack://CovestroUi/./src/lib/molecules/global-contact/js/global-contact.ts","webpack://CovestroUi/./src/lib/molecules/hazardous-substances/js/hazardous-substances.ts","webpack://CovestroUi/./src/lib/molecules/iframe/js/iframeResizer.js","webpack://CovestroUi/./src/lib/molecules/iframe/js/iframe.ts","webpack://CovestroUi/./src/lib/molecules/list-icons/js/list-icons.ts","webpack://CovestroUi/./src/lib/molecules/market-switch/js/market-switch.ts","webpack://CovestroUi/./src/lib/molecules/marketo-form/js/marketo-form.ts","webpack://CovestroUi/./src/lib/molecules/modal-overlay/js/modal-overlay.ts","webpack://CovestroUi/./src/lib/molecules/modal-actions/js/modal-actions.ts","webpack://CovestroUi/./src/lib/molecules/navigation-in-page/js/navigation-in-page.ts","webpack://CovestroUi/./src/lib/molecules/navigation-main/js/navigation-main.ts","webpack://CovestroUi/./src/lib/molecules/navigation-meta/js/navigation-meta.ts","webpack://CovestroUi/./src/lib/molecules/navigation-wrapper/js/navigation-wrapper.ts","webpack://CovestroUi/./src/lib/molecules/new-event/js/new-event.ts","webpack://CovestroUi/./src/lib/molecules/ordering-platform/js/ordering-platform.ts","webpack://CovestroUi/./src/lib/molecules/page-share/js/page-share.ts","webpack://CovestroUi/./src/lib/molecules/product-compare-button/js/product-compare-button.ts","webpack://CovestroUi/./src/lib/molecules/product-compare-layer/js/product-compare-layer.ts","webpack://CovestroUi/./src/lib/molecules/product-finder-teaser/js/product-finder-teaser.ts","webpack://CovestroUi/./src/lib/molecules/product-finder-teaser-V2/js/product-finder-teaser-V2.ts","webpack://CovestroUi/./src/lib/molecules/product-list/js/product-list.ts","webpack://CovestroUi/./src/lib/molecules/product-table/js/product-table.ts","webpack://CovestroUi/./src/lib/molecules/prompt-box/js/prompt-box.ts","webpack://CovestroUi/./src/lib/molecules/slider-gallery/js/slider-gallery.ts","webpack://CovestroUi/./src/lib/molecules/slider-stage/js/slider-stage.ts","webpack://CovestroUi/./src/lib/molecules/stage-brand/js/stage-brand.ts","webpack://CovestroUi/./src/lib/molecules/stage-keyvisual/js/stage-keyvisual.ts","webpack://CovestroUi/./src/lib/molecules/stage-keyvisual-carousel/js/stage-keyvisual-carousel.ts","webpack://CovestroUi/./src/lib/molecules/stage-product/js/stage-product.ts","webpack://CovestroUi/./src/lib/molecules/stage-content/js/stage-content.ts","webpack://CovestroUi/./src/lib/molecules/stage-compact/js/stage-compact.ts","webpack://CovestroUi/./src/lib/molecules/stage-campaign/js/stage-campaign.ts","webpack://CovestroUi/./src/lib/molecules/stage-event/js/stage-event.ts","webpack://CovestroUi/./src/lib/molecules/table-filter/js/table-filter.ts","webpack://CovestroUi/./src/lib/molecules/table-filterv2/js/table-filterv2.ts","webpack://CovestroUi/./src/lib/molecules/talk/js/talk.ts","webpack://CovestroUi/./src/lib/molecules/talks/js/talks.ts","webpack://CovestroUi/./src/lib/molecules/teaser-benefit/js/teaser-benefit.ts","webpack://CovestroUi/./src/lib/molecules/teaser-contact-form/js/teaser-contact-form.ts","webpack://CovestroUi/./src/lib/molecules/teaser-video/js/teaser-video.ts","webpack://CovestroUi/./src/lib/molecules/teaser-large/js/teaser-large.ts","webpack://CovestroUi/./src/lib/molecules/teaser-event/js/teaser-event.ts","webpack://CovestroUi/./src/lib/molecules/tooltip/js/tooltip.ts","webpack://CovestroUi/./src/lib/molecules/tooltip-actions/js/tooltip-actions.ts","webpack://CovestroUi/./src/lib/molecules/scrollable-teaser/js/scrollable-teaser.ts","webpack://CovestroUi/./src/lib/molecules/search-flyout/js/search-flyout.ts","webpack://CovestroUi/./src/lib/molecules/scrollable-jobfeed/js/scrollable-jobfeed.ts","webpack://CovestroUi/./src/lib/molecules/disclaimer/js/disclaimer.ts","webpack://CovestroUi/./src/lib/molecules/survey/js/survey.ts","webpack://CovestroUi/./src/lib/molecules/lounge-popup/js/lounge-popup.ts","webpack://CovestroUi/./src/lib/molecules/html-container/js/html-container.ts","webpack://CovestroUi/./src/lib/molecules/iCal-download/js/iCal-download.ts","webpack://CovestroUi/./src/lib/molecules/info-list/js/info-list.ts","webpack://CovestroUi/./src/lib/molecules/investor-overview/js/investor-overview.ts","webpack://CovestroUi/./src/lib/molecules/lightbox/js/lightbox.ts","webpack://CovestroUi/./src/lib/molecules/language-popup/js/language-popup.ts","webpack://CovestroUi/./src/lib/molecules/customer-lounge-brand-intro/js/customer-lounge-brand-intro.ts","webpack://CovestroUi/./src/lib/molecules/customer-lounge-brand-product-table/js/customer-lounge-brand-product-table.ts","webpack://CovestroUi/./src/lib/molecules/hero-article-stage/js/hero-article-stage.ts","webpack://CovestroUi/./src/lib/molecules/contact-teaser-card/js/contact-teaser-card.ts","webpack://CovestroUi/./src/lib/molecules/contact-teaser-popup/js/contact-teaser-popup.ts","webpack://CovestroUi/./src/lib/molecules/contact-teaser-large/js/contact-teaser-large.ts","webpack://CovestroUi/./src/lib/molecules/expansion-panel/js/expansion-panel.ts","webpack://CovestroUi/./src/lib/molecules/marketo-lightbox/js/marketo-lightbox.ts","webpack://CovestroUi/./src/lib/molecules/filter-message/js/filter-message.ts","webpack://CovestroUi/./src/lib/organisms/easteregg/js/pacman.min.js","webpack://CovestroUi/./src/lib/organisms/error-404/js/error-404.ts","webpack://CovestroUi/./src/lib/organisms/form/js/form.ts","webpack://CovestroUi/./src/lib/organisms/header/js/header.ts","webpack://CovestroUi/./src/lib/organisms/header-campaign/js/header-campaign.ts","webpack://CovestroUi/./src/lib/organisms/header-campaign-collector/js/header-campaign-collector.ts","webpack://CovestroUi/./src/lib/organisms/product-compare/js/product-compare.ts","webpack://CovestroUi/./src/lib/organisms/product-compareV2/js/product-compareV2.ts","webpack://CovestroUi/./src/lib/organisms/teaser-content-area/js/teaser-content-area.ts","webpack://CovestroUi/./src/lib/organisms/customer-lounge-navigation/js/customer-lounge-navigation.ts","webpack://CovestroUi/./src/lib/organisms/customer-lounge-project-teaser/js/customer-lounge-project-teaser.ts","webpack://CovestroUi/./src/lib/organisms/favourites-overview/js/favourites-overview.ts","webpack://CovestroUi/./src/lib/molecules/favourites-share/js/favourites-share.ts","webpack://CovestroUi/./src/lib/organisms/overview-share-favourites/js/overview-share-favourites.ts","webpack://CovestroUi/./src/lib/organisms/teaser-filter-area/js/teaser-filter-area.ts","webpack://CovestroUi/./src/lib/organisms/home-scrollable-teaser/js/home-scrollable-teaser.ts","webpack://CovestroUi/./src/lib/organisms/sds-search/js/sds-search.ts","webpack://CovestroUi/./src/lib/molecules/stage-search-new/js/stage-search-new.ts","webpack://CovestroUi/./src/lib/molecules/stage-product-finderv2-new/js/stage-product-finderv2-new.ts","webpack://CovestroUi/./src/lib/organisms/teaser-tabs/js/teaser-tabs.ts","webpack://CovestroUi/./src/lib/atoms/addToCalendar/js/addToCalendar.ts","webpack://CovestroUi/./src/lib/atoms/alert-banner/js/alert-banner.ts","webpack://CovestroUi/./src/lib/molecules/stage-crisis/js/stage-crisis.ts","webpack://CovestroUi/./src/lib/molecules/crisis-teaser/js/crisis-teaser.ts","webpack://CovestroUi/./src/lib/molecules/invoice-table/js/invoice-table.ts"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","oldJsonpFunction","slice","PublicEvents","triggerPublicEvent","type","terrificModule","target","eventData","eventName","terrificModuleName","_ctx","dataset","tName","event","CustomEvent","detail","dispatchEvent","onPublicEvent","element","callback","eventHandler","addEventListener","removeEventListener","params","bubbles","cancelable","undefined","evt","document","createEvent","initCustomEvent","default","Cookies","setSitecoreAnalyticsCookiePref","active","set","expires","setKnownMarketoLead","state","remove","checkMarketoEmailLink","querySet","location","search","substring","split","indexOf","gtmTrack","dataLayer","e","services","UC_UI","getServicesBaseInfo","sc","find","consent","status","mkto","isKnownMarketoLead","cookieValue","$","throttle","cachedBreakpoint","lastViewport","on","newViewport","getCurrentBreakpoint","trigger","leading","trailing","$meassureHelper","body","Error","appendTo","getComputedStyle","getPropertyValue","replace","meassureBreakpoint","isSmall","viewport","isMedium","onBreakpointChange","handler","off","isLarge","isExtraLarge","isSmallOrMedium","scrollToElement","$elm","preventFixedHeader","additionalOffsetTop","triggerScrollReached","topOnly","offset","scrollProperties","scrollTop","top","scrollLeft","left","animate","setTimeout","FormControlLabelStateClass","getLabel","control","$this","placeholderTxt","attr","$label","prev","Default","before","addClass","Required","toString","hasClass","floatControlLabel","isFocused","$formControl","each","this","HTMLSelectElement","val","Floated","$innerWidth","next","innerWidth","css","Math","floor","DoNotRemoveFloated","removeClass","ev","FormControlSiteCoreStateClass","scroll_to_1","initialized","scrollToIdElement","hash","$el","getElementById","height","init","addScrollClickTrigger","preventDefault","currentTarget","history","pushState","newurl","protocol","host","pathname","path","historyPush","Events","overlayDataName","IsOverlayDisplayed","documentElement","ShowOverlayWithRetry","openFunc","delayInMs","unsubscribeOpenHandler","unsubscribeCloseHandler","console","debug","timeoutHandle","overlayOpened","DoShowOverlay","clearTimeout","overlayClosed","ShowOverlay","unsubscribeCloseHandler_1","CloseOverlay","closeFunc","terrific_singleton_1","terrific_module_1","form_control_1","Track","classes","submitApis","FavouritesAction","_super","__extends","start","resolve","$ctx","rebindCommonViewEvents","$popup","$textareaContainer","bindTextareaContainerEvents","$textBoxContainer","bindTextboxContainerEvents","$allChecklists","bindAllCheckboxesEvents","bindSubmitEvent","contentType","_this_1","canSubmit","$btn_1","lockSubmitBtn","track","url_1","id","textareaValue","ids","getCheckedListIds","textboxValue","getTextCheckBoxValue","ajax","url","dataType","textareaInput","textInput","success","response","reload","log","error","message","complete","unlockSubmitBtn","xhr","statusText","bindAddSharedEntrySubmitEvent","$btn_2","url_2","SharedEntryIds","submitTrack","assign","redirectUrl","_this","me","$target","countTextarea","validateInputTextBox","$textboxContainer","$inputBox","$checkBox","parents","prop","$allCheckboxContainer","validateCheckList","$textarea","$textareaValLength","parent","$textareaValLengthMax","textVal","currentCount","parseInt","text","$currentPopup","$checkedItems","idArr","Array","join","$allCheckboxesContainer","chkVal","$chkValMsgEle","textareaVal","textboxVal","$textcheckboxContainer","$textbox","$allChecklistContainer","displayPopup","removePopup","empty","$btnEle","removeAttr","submitUrl","action","trackdata","eventCategory","eventAction","eventLabel","stop","__decorate","createModule","TerrificSpec","cookieInstance","withConverter","read","write","getCookieData","JSON","parse","getArrayIndex","array","findIndex","el","number","saveCookie","stringify","updateLayer","$compareLayerModule","count","addNewProductLayer","market","removeNewProductLayer","removeProductData","cookieVal","index","removeCompareProductLayerFromFinderList","setLayerHiddenCookie","removeProduct","removeAllProduct","addProduct","isProductInCookie","Bodystate","outerParent","stateBurgerNav","visible","noScrolling","scrollbar","changeBodyState","bodyClass","toggleClass","getBodyState","removeBodyState","tracking_1","MarketoFormGlobal","initializeMarketoOnScriptLoad","timerRef","MktoForms2","whenReady","form","$component","getFormElem","closest","initMessageBox","translate","sortSelectOptions","prefillForm","initContactImage","initCheckboxOrder","hideFields","updateFieldAttributes","productAutoSuggest","whenRendered","formEl","attrTag","_forEach","forEach","querySelectorAll","ancestor","setAttribute","input","currentTag","getAttribute","trim","jsonStr","fieldName","fieldTranslations","propertyName","propertyValue","translateTargetEl","currentTranslations","querySelector","lastChild","nodeValue","mktoFieldDescriptor","validationMessage","innerHTML","txt","parentElement","innerText","onSubmit","submittable","$form","language","$options","$defaultOption","filter","$othersOption","optIndex","optEle","optValue","toLocaleLowerCase","$optionEles","toArray","sort","a","b","aText","bText","localeCompare","ignorePunctuation","append","prepend","first","formatPhoneNumber","phone","vals","Phone","formattedPhone","prefilledJsonStr","prefillFields","formFieldEles","fieldValue","$fieldEle","formFieldId","obj","GenerateObject","formFieldValue","$formCheckbox","$contactImage","$formMessage","$formEl","rando","Date","getTime","random","$chk","chkId","newChkId","includes","formId","newFormId","hiddenFieldsArr","campaignId","formcampaignId","siteCampaignId","$formContainer","field","urlParams","URLSearchParams","utmId","has","autosuggestObjJsonStr","autoObj_1","FieldName","$autoEle_1","Endpoint","term","permissionQuery","PermissionQuery","max","MaxItem","lang","Language","renderDropdown","productSuggestions","ProductLabel","children","rebindDropdownEvents","labelContent","generateDropdownLabelContent","NoResultLabel","showDropdown","resizeDropdown","autoHideDropdown","generateDropdownItemContent","uvptext","currentTop","position","outerHeight","currentLeft","currentWidth","outerWidth","width","$autoEle","label","htmlContent","uvp","uvpno","setProductInfo","autoObj","extended","uvpFieldName","brandFieldName","brand","materialFieldName","materials","applicationFieldName","applications","industryFieldName","industries","businessUnitFieldName","businessUnits","show","stopPropagation","filterLabel","filterOpen","filterClose","filterTags","filterTag","filterTagContainer","counterLabel","counterHeading","filterSelect","clearFilterBtn","loadMoreBtn","teaserContainer","stateHidden","teaserBlock","teaserColorBlock","twoLevelmainItemLink","twoLevelSelector","twoLevelList","twoLevelListOpen","twoLevelMainChecked","twoLevelParent","twoLevelParentHeader","twoLevelParentLink","twoLevelParentChecked","twoLevelParentDisabled","twoLevelChildList","twoLevelChild","twoLevelChildDisabled","twoLevelChildInputDisabled","twoLevelMainClose","oneLevelSelector","oneLevelItemContainer","oneLevelList","oneLevelListOpen","oneLevelMain","oneLevelMainChecked","oneLevelDisabled","oneLevel","oneLevelClose","placeholders","names","parameterSet","EventList","onOpenFilter","onCloseFilter","clickEvent","dataChanged","removeSelectedTag","clearAllFilters","loadMore","initTeaserData","resize","$textArea","dateParaValue","getIdParameterValueFromUrl","regionIdParaValue","materialIdParaValue","industryIdParaValue","getTeaserData","materialQuery","getIdParameterValue","industryQuery","dateQuery","regionQuery","pageNumber","lockFilters","lockLoadMoreButton","searchRootId","initNum","apiEndpoint","pageSize","configuration","initNumber","Configuration","container","json","jsonData","totalNumber","updateCounterLabel","displayNumber","updateCounterHeading","updateLoadMoreButton","enableLoadMore","updatePageNumber","updateFacet","enabledFilterItems","updateTeaserHeight","updateNoResult","unlockFilters","generateSelectedTags","updateUrl","parameterList","dateParameter","getUniqueNameParameter","regionParameter","materialParameter","industryParameter","searchQuery","generateUniqueNameQueryString","$tagContainer","selectorName","$checkboxes","areAllSubFiltersChecked","$parentSelectedOption","tagHtml","getSelectedTagHtml","$checkedboxes","childIndex","childEle","getSelectedDateMonthTagHtml","oneLevelIndex","oneLevelEle","html","hide","$currentTargetElement","triggerHandler","pageNum","unlockLoadMoreButton","displayNum","enable","currentId","isEnabled","setTwoLevelFilterDisabledClass","$ele","selector","$ids","arr","parameterName","parameter","$selectorInput","nameArr","uniqueName","vars","pair","uniqueNameVariables","decodeURI","valueArr","searchId","getIdByUniqueName","$item","parameters","every","isElementChecked","checked","$inputItem","siblings","getTagHtml","year","month","$parentItem","areAllFilterDisabled","isElementDisabled","navLevel","updateNavLevel","nr","getNavLevel","favourites_action_1","productCompareClasses","productFinderClasses","popupClasses","FavouriteButton","confirmationKey","$localFavouritesButton","$globalFavouritesButton","$dynamicPopupContainer","$staticPopupContainer","$successPopup","$failurePopup","$loadingIndicator","pageId","enableFavourite","statusApiEndpoint","actionViewEndpoint","favorAction","updateStatus","actionType","getActionPartialView","$closeBtn","closeStaticPopup","closeSuccessPopup","query","substr","pageid","updateFavouriteButton","isActive","lockScreen","CurrentUrl","href","disablePopup","prefillTextareaBox","unlockScreen","currentUrl","enablePrompt","showSuccessPopup","showStaticPopup","curScrollTop","fadeIn","$container","$descInputBox","descVal","$productCompareNameEles","$productFinderSelectedCountry","$productFinderNameEles","getElementsText","filterTxt","getPageTitle","focus","docTitle","title","$nameEles","getActionPartialViewForEventList","$favorBtn","favoriteCtx","$staicPopup","bindSubmitEventForEventList","prefillTextareaBoxForEventList","$button","updateStatusForEventList","statusEndpoint","formatLabel","values","_i","arguments","formattedLabel","count_1","jQuery","T","bootstrap","body_state_1","body_state_2","burger_1","breakpoints_1","Burger","initBurger","ctx","toggleNavigation","onClickBurger","Button","isScrollTopBtn","scrollToTop","classList","contains","events_1","Definitionlist","_triggerChangeEvent","uxChange","Heading","Image","VideoComponent","$videoContainer","$consentContainer","videoData","milestonePercentage","loggedPlayActivity","loggedReachedMilestoneActivity","addMiScript","RegisteredUpdate","usercentricsDpsServiceName","VideoPlayer","Collection","acceptAnalytics","rejectAnalytics","containerId","tId","consentContainerId","$script","onScriptLoaded","embedscript","UC_UI_INITIALIZED","initVideoPlayer","config","onPlayerInit","configType","playerId","videoId","apiUrl","flashPath","addPlayerById","api","progressMarker","reachedMarker","videoName","getVideoName","registerEventListener","onPlay","onPause","onEnded","onTimeUpdate","timeUpdateCallBack","playingCallback","metaApi","getApi","metaTitle","getVideoTitle","Munchkin","mktoenvId","munchkinFunction","milestoneInSeconds","getPlayerById","getCurrentTime","percentWatched","getDuration","currentTime","round","time","percentPosition","marker","eventValue","$videoGatedPlay","$videoOpenedBtn","triggerPlay","$videoPlay","$videoLocked","removePlayerById","Input","isNaN","setValue","getValue","InputAutocomplete","InputCheckbox","checkboxElement","change","is","isChecked","InputDate","noUiSlider","InputRangeSlider","valueMin","valueMax","rangeMin","rangeMax","decimalSeparator","slider","numberOfDecimals","_calcNumberOfDecimals","marginBetweenHandles","_calcMarginBetweenHandles","connect","tooltips","margin","range","min","format","wNumb","decimals","mark","handle","_triggerReleaseEvent","_calcRange","widthOfRangerSlider","abs","uxSubmit","adjustSlider","leftHandleValue","rightHandleValue","InputSearch","highlight_1","InputSelect","fullwidth","autowidth","placeholderWorkaroundList","placeholderWorkaroundTop","customDropdownClass","modal","animationFrameId","cancelAnimationFrame","requestAnimationFrame","self","minSearchResults","$select2","select2","minimumResultsForSearch","dropdownAutoWidth","dropdownCssClass","matcher","toUpperCase","highlight","escapeMarkup","markup","templateResult","item","templateSelection","$body_1","$html","$optionsElement","hasScrollbar","scrollHeight","innerHeight","uxShow","uxHide","_openModal","_closeModal","getOptionValue","modifier","pattern","RegExp","mod","exec","InputTextarea","Label","Link","ImageWithLink","ListUnordered","LoadingIndicator","SearchTrigger","searchFlyoutIsOpen","_handleTrigger","_close","TagFilter","ValidationSummary","Accordion","$accordionElements","doNotClose","onTriggerClick","$accordionElement","not","BrandBenefitList","BrandProductAccordion","breadcrumbScroll","IScroll","initialContentWidth","Breadcrumb","initBreadcrumbOpening","mouseWheel","scrollbars","scrollX","scrollY","setEllipsisWhenNotEnoughSpace","breadcrumbOpener","refreshScroll","elem","closeAllFlyoutsAndReenableScrolling","openFlyoutAndDisableScrolling","flyoutElement","disable","refresh","autoScrollIfOutOfScreen","flyoutLeft","flyoutWidth","isNotEnoughSpace","CampaignDownload","autoDownload","downloadLink","flowId","noActionForKnownUsers","closeButtonDisabled","themeAttribute","moduleName","lightboxComponent","lightbox","getModuleByDomNode","getMktoLightboxView","CategoryTags","optionValues","other","productSafetyDataSheets","TeaserFilterArea","focusFromScrollReached","$popupClose","$popupMask","hidePopup","formID","initFormHadling","onClickAnchor","onClickLink","onFocusAreaFocus","prefillFormData","$inputSelect","$inputCheckBox","$input","inputSelecteOptionChanged","addOtherOptionForMaterialTag","setMaterialTagDefaultValue","onClickPopupAnchor","showPopup","idx","scformName","scSendDataToGtm","formName","form_id","form_name","form_destination","form_submit_text","onCancleClick","onFormSubmit","validate","formElement","formInputSelect","formInputs","formCheckboxs","formTextArea","dataValRequired","nextAll","divContainer","hiddenMktoForm","popupFormId","hiddenMarketoFormSubmitAllowed","materialTagValue","industryTagValue","firstName","lastName","email","country","company","formMessage","myHiddenMetaDataString","myHiddenMetaData","mktoFormId","myHiddenMktoForm","getForm","addHiddenFields","FirstName","LastName","Email","Country","Company","mktoindustry","getValueFromObject","inferredMaterialInterest","privacyPolicyAcceptance","mktooptinchkbxacceptance","submit","hiddenSubmitForm","hiddenForm","form_hidden_submit_text","myMktoHiddenMetaData","tagId","tagTitle","unbind","serviceUrl","method","opt","toLowerCase","$currentForm","$sdsLinkCol","$sdsTextboxCol","showCheckMark","$categoryInputContainer_1","$firstInput_1","select","otherText","otherValue","$materialTag","otherValueOptionInquiry","meterialTag","ContactTeaserButtons","$buttonItem","onPageLoadCheckForm","triggerGAFormStartEvent","divId","divElement","hashId","htmlControl","myHiddenFormFields","myMktoHiddenMetaDataString","Overlays","RegionLightbox","hasUserInteracted","adjustLinkUrl","getApiUrl","getRegionData","markUserHasInteracted","regionLabel","RegionId","countryLabel","CountryId","regionsList","Regions","regions","options","firstElementChild","RegionCode","Name","k","Countries","CountryCode","CountryName","postApiUrl","countries","Datasheet","DownloadItem","$select","_getLanguageSelect","updateDownloadButton","_getDownloadButton","getLanguageSelectValue","setDownloadURL","DownloadList","initSds","initLoadMoreEntries","showTitle","changeTitle","sdsElements","onSdsAjaxSuccess","isArray","sdsDownloads","$selectElement","_a","link","activeEle","minOfShowEntries","$entries_1","dataAttributes","DownloadTable","filters","createFilters","showDescription","$element","facetAndList","updateLoadMore","results","getSelectedFacets","payload","facets","done","jqXhr","updateCounters","displayed","footer","showMore","initializeComponents","initializeShowMoreLinks","totalCount","enabled","startNode","$descText","instance","$gatedItem","FavouriteLayer","hideLayer","showLayer","FeaturedDownload","isOpen","showFileInfo","changeFileInfo","initLoadMore","activeElement","$downloadItems_1","minOfShowDownloadItems","PageSizeLoadMore_1","currentShowDownloadItems_1","allOfShowDownloadItems","eq","FilterMarketSwitch","FilterMultiselect","$confirmButton","$itemSecondLevel","$listFirstLevel","$itemFirstLevel","$itemFirstLevelHeaderMobile","$closeFilter","$floatLabel","onToggleOverlayClick","onConfirmButtonClick","onPrimaryfilterClick","setFilterCheckedClass","toggleFilter","closeFilter","$checkbox","setFilter","isAnyFilterChecked","some","toggleState","closeAllSubFilterValues","openFilter","openFilterValueClick","FilterProductsearch","Filterkeywordsearch","FilterCategorysearch","FilterCategorysearchSingleLevel","FavouritesEntryTable","FavouritesList","FilterSingleselect","FilterTwoLevelMultiselect","registerProperties","bindEvents","setFilterDisabledClass","$layerSecondLevel","onBackButtonClick","onOpenCategoryClick","onCloseCategoryClick","onSubfilterClick","rebindEvents","closeFilterValueClick","adjustFirstLevelFilterAccordingToSubFilters","$allCheckboxesOnSameLevel","$firstLevelItem","FilterWrapper","ProductFilter","TechnicalPropertyPopup","_hidePropertyPopup","_triggerTab","num","FormOrder","$textareaWithFocus","$areaAdditionalFields_1","$buttonCancel","$buttonSubmit","GlobalContact","showLoadMoreSpinner","$wechatContainer","$header","setAccordionActions","setLanguageSelectActions","setAutoScrollActions","hideErrorMessages","responseRequest","$languageSelect","initializeOnRequest","async","res","hidePreloader","noDataAvailable","responseSuccess","noServerResponse","showPreloader","removeLocations","$accordionBtn","addLocations","shouldShowAccordionBtn","prepareLocationsMarkUp","numOfAddresses","str","getAccordionBtn","accordionToggleEvt","accordionSetToggleText","getSelect","baseUrl","selectedOptionChanged","checkLocationParamsAndSet","accordionToggleText","accordionClassToggle","$accordionBtnContainer","accordionToggleTextOn","accordionToggleTextOff","shouldScrollToElement","requiredNumOfAddressesForScrolling","scrollOnCloseAccordion","getParamNameFromBaseUrl","Map","map","param","hideShowLessContainer","$targetNoData","$targetNoResponse","dataAttr","HazardousSubstances","$languageContainer","updateLanguages","langCode","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","logEnabled","hiddenCheckEnabled","msgHeaderLen","msgId","msgIdLen","pagePosition","resetRequiredMethods","scroll","bodyScroll","documentElementScroll","settings","timer","defaults","autoResize","bodyBackground","bodyMargin","bodyMarginV1","bodyPadding","checkOrigin","inPageLinks","enablePublicMethods","heightCalculationMethod","interval","maxHeight","Infinity","maxWidth","minHeight","minWidth","resizeFrom","scrolling","sizeHeight","sizeWidth","tolerance","widthCalculationMethod","closedCallback","initCallback","messageCallback","warn","resizedCallback","scrollCallback","func","attachEvent","formatLogHeader","iframeId","retStr","parentIFrame","getId","getMyID","isLogEnabled","msg","output","info","iFrameListener","resizeIFrame","ensureInRange","syncResize","setSize","messageData","setPagePosition","Dimension","Number","dimension","size","getMsgBody","getElementPosition","iFramePosition","getBoundingClientRect","getPagePosition","x","y","scrollRequestFromChild","addOffset","iframe","newPosition","scrollTo","unsetPagePosition","funcName","chkCallback","createOutgoingMsg","iFrameReadyMsgReceived","processMsg","retCode","true","false","isMessageFromMetaParent","retBool","hasSettings","checkIFrameExists","origin","constructor","checkList","remoteHost","checkSingle","isMessageFromIFrame","firstRun","closeIFrame","msgBody","forwardMsgFromIFrame","bodyPosition","clientHeight","clientWidth","offsetTop","offsetLeft","pageYOffset","pageXOffset","sendPageInfoToIframe","hashData","decodeURIComponent","getElementsByName","jumpPosition","jumpToTarget","moveToAnchor","findTarget","resetIFrame","actionMsg","retVal","TypeError","parentNode","removeChild","chkZero","checkIFrames","checkIFrame","settingId","chkDimension","style","offsetParent","isVisible","mutationObserved","mutations","debouce","MutationObserver","WebKitMutationObserver","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","createMutationObserver","fixHiddenIFrames","processDimension","setDimension","doNotSync","calleeMsg","targetOrigin","contentWindow","postMessage","setupIFrame","newId","src","ensureHasId","checkOptions","option","copyOptions","getTargetOrigin","processOptions","overflow","addStyle","chkMinMax","setLimits","resetRequertMethod","checkReset","Function","iFrameResizer","close","anchor","sendMessage","fn","resizeIFrames","sendTriggerMsg","tabVisible","visibilityState","isIFrameResizeEnabled","iFrameResize","end","createJQueryPublicMethod","tagName","iFrames","vendors","setupRequestAnimationFrame","t_id","servicename","paramsdata","Iframe","usercentricsservicename","onPostmessage","framename","$frame","$form_2","getOwnPropertyNames","initUCPostCall","addUsercentricsIframe","addIframe","initPostCall","$form_1","originalEvent","source","ListIcons","initImageTooltip","$triggers","$trigger","tooltipster","theme","content","contentAsHTML","interactive","zIndex","functionReady","_$tooltip","functionPosition","helper","side","coord","MarketSwitch","cachedCountry","preventAutoSubmit","_updateSelectedOption","followOptionLink","marketo_form_global_1","MarketoForm","$blockedMessage","envId","formFullId","formHref","redirectHref","isExpired","submitSuccessfulMessage","isHiddenFormSubmit","isSendDataToGtmOnPageLoad","marketoService","timerRef_1","setInterval","clearInterval","loadMktoForm","loadForm","onSuccess","followUpUrl","submitDataToGtm","$teaser","className","formVersion","setFormStartDataToGtm","formNode","typeOfForm","ModalOverlay","copy","ModalActions","_submitModal","_openTooltip","_hidePopup","copyURLToClipboard","addEmaillAdress","changeTextareaCount","newListValidation","emailListValidation","$newlistWrapper","$checkedbox","opts","getClipboardOpts","getLocationHref","showFeedbackMsg","hideFeedbackMsgTimer","showDebugInfo","$clipboardAnchor","hideFeedbackMsg","$openTooltip","$addEmail","$emailTemplate","$emailTemplateHtml","hashscrolling_1","NavigationInPage","winScrollY","mainSelector","attributeNameTarget","attributeNameId","attributeNameTitle","targetSelector","buttonSelector","statusBarWrapperSelector","statusBarSelector","targetWrapperSelector","pageTitleSelector","stickyCtaSelector","stickyShareBtn","stickyShareSelector","sharePopupView","shareShowPopup","fadeInBar","fadeOutBar","titleFlexEnd","scrollDirection","lastScrollTop","threshold","thresholdOffset","anchorBarButtons","targetNavElements","anchorBarBreakpoints","initInpage","initPageTitle","initStickyCta","initStickyShare","triggerHash","listItemPlaceholder","getListItemPlaceholder","shouldInpageNavgationBeShown","hasHash","pageHasHashTag","activeItem","regScrollEvent","setListItems","createArrayData","regAnchorBarButtonsEvt","setMobileAction","normalizedHash","elemWithHash","onload","targetValue","replacements","ä","ö","ü","ß"," ","&","-","+","char","replaceSpecialCharactersMain","targetElement","scrollIntoView","behavior","handleJump","removeInpageNavigation","stickyCtaTheme","stickyCta","stickyCtaGroup","stickyCtaText","shareLocation","shareSelector","after","clone","stickyPopupShareShow","stickyPopupShare","setClipboardAnchorBtn","hasCanvasOffset","hasAnchorBarOffCanvas","setTargetData","createTargetNavElements","inpageNavElements","setAnchorBarBreakpoints","anchorAttributeName","targetAnchorIds","targetAnchorTitles","listItems","createListItem","$links","targetAttribute","navElements","attributeList","targetAttributeValue","anchorAttributeNameId","anchorTitle","$listItem","breakpoints","offsetHeight","onScroll","handleScrolling","showCtaThreshold","last","ctaSelector","shareOffsetTop","ctaOffsetTop","setScrollDirection","calcAndSetAnchorItemActive","showHideAnchorBar","moveAxisX","actAnchorBarButtonEvt","showAnchorBar","hideAnchorBar","display","currentYScroll","topPos","progressBarSetWidth","progressBarCalcWidth","offsetWidth","dataAttrOfClickedElem","getWidthOfAnchorBar","anchorBarOffsetLeft","delay","getAnchorElement","calcOffsetY","elAttribute","getAttributeNode","replaceSpecialCharacters","hoverintent","hoverIntentOptions","timeout","NavigationMain","initNavigationOpening","initNavigationPositioning","uxResize","closeNavigation","currentFirstLevelNavigationElement","currentFirstLevelNavigationFlyout","positionOfFirstLevelNavigationElement","paddingLeftOfFirstLevelNavigationElement","parseFloat","widthOfOfFirstLevelNavigationElement","centerPositionOfNavElement","widthOfFlyout","leftOfFlyout","widthOfArrow","rightOfFlyout","totalUsuableWidth","isDesktopNavigationInitialized","NavigationMeta","initiallyMeasured","metaNaviFlyout","fadeOut","initUserStatus","initFavTooltip","$loginElement","$loginUsername","onUserStatusAjaxSuccess","login","click","initDesktopNavigation","navigationItemLinks","sitesOpenerElement","countryRegions","countryContainer","sitesFlyout","activateRegionAndSetHeight","setHeaderMargin","toggleSitesNavigation","destroyDesktopNavigation","closeSitesNavigation","addClassWithTimeout","classname","NavigationWrapper","initNavigation","_getOpenTrigger","_getCloseTrigger","destroyMobileNavigation","initMobileNavigation","$open","$close","$wrapper","onClickOpenSubnavigation","onClickCloseSubnavigation","_getLayers","_getCurrentLayer","cta","_getParentsLayer","_getChildrenLayer","_getLevel","elm","level","stopImmediatePropagation","openLayer","$currentLayer","add","$layer","NewEvent","initCountdown","eventDescriptionEllipsis","onDownLoadCalendar","$countdown","totalseconds","calculator","nextseconds","h","$eventDescription","calendarResult","open","$eventItems","$event","OrderingPlatform","PageShare","isClipboardAnchorBtn","clipboardAnchor","previousElementSibling","ProductCompareHelper","ProductCompareButton","added","addText","removeText","productId","productName","onButtonClick","changeCompareProductItemState","initButtonState","setButtonState","updateCookieState","ProductCompareLayer","oneItemText","multiItemText","compareProductList","product","addNewCompareProductItem","removeNewCompareProductItem","onCloseClick","onSwitchClick","fetchCompareProductNameFromService","fetchProductCompareData","onProductCompareDataSuccess","compareData","responseItem","dataItem","handleCompareResult","compareProductList_1","compareItem","ProductFinderTeaser","$link","onButtonSubmitTeaser","separator","filterseperator","sortingParam","sortingparam","countryParam","countryparam","marketparam","serializedData","serializeArray","encodeURIComponent","materialAndIndustryParams","allParams","newLinkUrl","baseurl","queryparam","$paramValues","localStorage","setItem","event_list_1","$hiddenFieldTest","$hiddenFieldValues","showFilters","onButtonSubmit","checkboxes","tagsContainer","ProductList","ProductTable","PromptBox","$closeButton","hidePrompt","labels_1","videoCfg","SliderGallery","initVars","$items","itemMargin","_showDotsSlider","$sliderNavigation","addDataItemAttribute","initScroller","reinitScrollerWhenViewportChangedToOrFromSmall","handleSizeAndPosition","$list","ready","handleVideoImageLoading","handleCampaignTeaserClick","initNavigationArrows","setActiveDot","$arrowLeft","$arrowRight","$scroller","$imagesAndVideos","$dotContainers","$dots","$sliderPages","$campaignTeaserArea","itemsPerPage","getItemsPerPageConfig","numberOfItemsPerPageBeforeViewportChanged","getNumberOfItemsPerPage","activeItemBeforeViewportChanged","isMobileSlider","sliderIsScrolling","sliderPageIndex","itemsPerPageData","concat","isInteger","fill","mediaelements_1","Promise","all","then","sliderGalleryScroller","goToPageX","evtClickSkipBackOrForth","setFixedPageWidthAndArrowPosition","setScrollerHeightAccordingToPageHeight","openModalAndCopyText","numberOfItems","totalMarginWidth","itemWidth","biggestItem","getBiggestItemAndHeightOfPage","$imgVideoEl","biggestItemHeight","currentPage","pageX","page","itemToStartWith","setArrowPosition","arrowTopPosition","pages","numberOfItemsPerPage","initPageDots","newIscroll","initScrollerEvents","initItemLinkBehaviour","startSlide","trackSlide","showOrHideDots","evtClickDot","visibleDotContainers","snap","momentum","initMobileSlider","tap","startX","startY","sdeltaX","$elements","currentIndex","isMove","touches","clientX","clientY","items","getSlideIndex","ceil","changedTouches","indexItem","endX","endY","deltaX","deltaY","setActiveSlide","activePage","goToPage","$videosContainer","stopVideoInCurrentSlider","sliderIdxOffset","nextPage","prevSlide","$listItems","$videoElement","newVideoAttribute","callVideoAPIMethod","list","campaignName","ecommerce","promoView","promotions","_sliderPageIndex","SliderStage","setScrollerHeight","goToDotX","$captionWrapper","$caption","scrollToAnchor","$pages","$currentPage","$totalPage","$dot","$dotButton","$dotWrapper","$dotArea","$ScrollDownLink","dotIndex","sliderlength","itemPerWidth","nextIndex","oneDot","zeroDot","twoDot","threeDot","fourDot","nextIndex_1","scrollAnchor","StageBrand","handleCtaButtonClick","button","applyScrollToHandler","StageKeyvisual","$inputElement","_handleInputChange","inputString","$searchLink","keyCode","StageKeyvisualCarousel","pageFinalNumber","initDotForMobile","initLiDotForMobile","initItemDots","$pauseplay","$arrowPlay","sliderKeyVisualPageIndex","sliderKeyVisualLength","$dotItem","carosuelInterval","carosuelIntervalInitial","newItemIndex","leftWidth","sliderkeyvisuallength","removeActiveLabelClass","labelClassColor","screen","_sliderKeyVisualPageIndex","StageProduct","StageContent","StageCompact","StageCampaign","ticking","scrollArea","requestScrollTick","onResize","scrollUpdate","bgPosition","transform","StageEvent","initShare","toggleRegisterForm","$shareBtn","$registerBtn","$registerForm","TableFilter","_toggleContainer","closeContainer","TableFilterV2","Talk","Talks","$detailsWrap","$details","$listButton","$accordionButton","$leftImage","$leftImageItem","setHeight","accordionToggle","TeaserBenefit","_triggerAccordion","$currentTarget","TeaserContactForm","TeaserVideo","$overlayButton","$overlayArea","$buttonClose","showTeaserVideo","hideTeaserVideo","startVideoPlayback","stopVideoPlayback","player","getVideoPlayer","play","pause","componentId","TeaserLarge","description","TeaserEvent","initHeight","textAreaHeight","Tooltip","_getTriggerElement","initTooltip","_getTooltipContent","TooltipActions","showActions","hideActions","_openActionsPopup","_hideActionsPopup","ScrollableTeaser","initScroll","onVideoTeaserClick","$timelineItem","initTimelineTeaser","showHideScroll","$leftControl","$rightControl","$scrollWrapper","$headWrapper","$contentWrapper","$contentScrollWrapper","$listWrapper","$teaserItem","$videoWrapper","$teaserItemGated","$mainContainer","onLeftControlClick","onRightControlClick","headWidth","videoCurrentLeft","currentScrollLeft","maxLength","mobileItemWidth","teaserLength","teaserScrollLeft","contentCurrentScrollLeft","teaserScrollRight","maxScrollArea","maxContentScrollArea","viewportSize","containerWidth","scrollWidth","SearchFlyout","_open","_deleteFromInput","ScrollableJobfeed","$leftControlNew","$rightControlNew","$scrollWrapperNew","$headWrapperNew","$contentWrapperNew","$contentScrollWrapperNew","$listWrapperNew","$jobfeedItem","$moduleList","$moduleNew","$tabsButton","onLeftControlNewClick","onRightControlNewClick","jobfeedScrollLeft","jobfeedScrollNewLeft","jobfeedScrollRight","jobfeedScrollNewRight","Disclaimer","Survey","initSurvey","_showSurvey","_hideSurvey","showsurvey","waitingTime","cookieSurveyRead","setSurveyRead","CustomerLoungePopup","$checkDoNotAskAgain","setCookie","initializePopup","_showLoungePopup","_hideLoungePopup","getCookie","HTMLContainer","ICalDownload","downLoadCalendar","calendarString","InfoList","$tabButton","$tabPanel","initTab","onSwichTab","InvestorOverview","getDaxData","riccode","quote","update","isincrease","Lightbox","carouselLength","closeLightbox","carouselPrevClick","carouselNextClick","lightboxAnchorClick","lightboxCarousel","lightboxID","$lightbox","$currentCarousel","LanguagePopup","onAcceptClick","cookieLanguagePopupRead","setLanguagePopup","CustomerLoungeBrandIntro","openOtherUrl","$brandSelect","curBrand","brandUrl","CustomerLoungeBrandProductTable","_handleApplicationTeaserLoadMore","$teaserItems_1","minOfShowTeasers","currentShowTeasers_1","allOfShowTeasers","HeroArticleStage","$largeItem","$smallItem","$mainWrapper","$itemActive","activeIndex","verticalWrapperHeight","setActiveItem","setWrapperHeight","verticalActiveHeight","mainWrapperHeight","goToItemX","mouseenter","mouseleave","ContactTeaserCard","$weChatLabel","$weChatQRBox","hideQRCode","openQRCode","ContactTeaserPopup","initContactTeaserPopup","_showContactTeaserPopup","_hideContactTeaserPopup","ContactTeaserLarge","initMobileHide","ExpansionPanel","initExpansionPanel","togglePanel","panelAnchorClick","slideUp","slideDown","panelID","MarketoLightbox","_marketoFormInitialized","_marketoFormInitializationTimer","mktoflowId","pageHref","themeModeAttribute","getMktoLightboxData","originalHref","showLightbox","showIndicator","formProductName","productNameValue","endpoint","originLink","$dialog","doSubmitAction","clickEventTriggered","$lightboxContainer","IsHiddenFormSubmitrequired","HiddenFormSubmitId","createElement","download","appendChild","triggerClickEvent","hideIndicator","displayFormBox","showMessage_1","$formNode_1","removeCloseEvents","displayConfirmationBox","hideFormBox","showConfirmationMsg","FilterMessage","HTMLElement","onkeyup","which","HTMLInputElement","HTMLTextAreaElement","R","_","O","N","U","F","D","W","B","z","FPS","Ghost","v","S","P","u","f","L","E","getTick","w","eat","isVunerable","isDangerous","makeEatable","reset","move","g","isFloorSpace","isWallSpace","C","new","old","draw","blockSize","fillStyle","beginPath","moveTo","quadraticCurveTo","closePath","arc","User","H","ARROW_LEFT","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","direction","I","PI","drawDead","loseLife","getLives","score","addScore","theScore","keyDown","A","block","BISCUIT","PILL","setBlock","EMPTY","completedLevel","eatenPill","newLevel","resetPosition","MAP","BLOCK","fillRect","strokeStyle","lineWidth","lineCap","WALLS","line","lineTo","curve","stroke","drawBlock","drawPills","WALL","font","fillText","measureText","sqrt","pow","M","len","getContext","BACKSPACE","TAB","NUM_PAD_CLEAR","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESCAPE","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PRINT_SCREEN","INSERT","DELETE","SEMICOLON","WINDOWS_LEFT","WINDOWS_RIGHT","SELECT","NUM_PAD_ASTERISK","NUM_PAD_PLUS_SIGN","NUM_PAD_HYPHEN-MINUS","NUM_PAD_FULL_STOP","NUM_PAD_SOLIDUS","NUM_LOCK","SCROLL_LOCK","EQUALS_SIGN","COMMA","HYPHEN-MINUS","FULL_STOP","SOLIDUS","GRAVE_ACCENT","LEFT_SQUARE_BRACKET","REVERSE_SOLIDUS","RIGHT_SQUARE_BRACKET","APOSTROPHE","String","fromCharCode","Error404","referredby","typeofform","jobProfileLocations","stepTwoFormLoaded","stepFourOneFormLoaded","stepFourTwoFormLoaded","stepFiveFormLoaded","Form","productValidation","_initTerrificModules","initMutationObserver","initAjaxListeners","scFormName","fetchCdpIdData","emailValidationChangeEventForWorkdayForm","workdayJobsFormData","$inputSelectCategory","categorySelectedOptionChanged","initUserVali","submitButtonClickForGA","sendFromStartDataToGtm","$inputSelect1","inputSelecteValidation","legalFormSectionYesOption","sectionStepTwo","sectionStepThree","sectionStepFour","sectionStepFive","radioButtons","radioButtonsStepTwo","radioButtonsStepThree","radioButtonsStepFourOne","radioButtonsStepFourTwo","buttonNext","buttonNextSecond","buttonNextThree","buttonNextFour","radio","bindRadioButtonClick","bindRadioButtonStepTwoClick","bindRadioButtonStepThreeClick","bindRadioButtonStepFourOneClick","bindRadioButtonStepFourTwoClick","bindStepOneButtonClick","bindStepTwoButtonClick","bindStepThreeOneButtonClick","bindStepThreeTwoButtonClick","bindStepFourButtonClick","section","legalFormSectionRegStromOption","legalFormSectionRegGasOption","spanFileUploadValidationMessage","selectBoxStepTwo","inputValue","from","bindFileUploadClick","fileInput","files","file_1","reader_1","FileReader","onloadend","fileData","base64","fileDataJson","hiddenField","readAsDataURL","alert","legalFormSectionNextYesOptionYes","legalFormSectionNo","bindRadioButtonStepFiveClick","bindSelectBoxStepTwoChange","hideStepTwoDateSection","hideStepTwoGasSection","hideStepTwoStromSection","hideStepTwoFileUploadSection","hideStepTwoMeterNoSection","clearStepTwoDateSection","triggerFileUploadValidation","inputFileUploadControl","bindStepTwoPreviousButtonClick","bindStepThreePreviousButtonClick","hiddenSectionsMeterNo","hiddenSectionsDate","hiddenSectionsFileUpload","bindStepFourPreviousButtonClick","bindStepFivePreviousButtonClick","$fieldValidationError","$fieldValidationErrorLength","$validationErrorCount","contactingCategoryField","terrificName","componentAttr","helperClass","setAttr","$formControls","$select2Container","$select2Single","$categoryInputContainer","$vali","scSendDataToGTMOnPageLoad","$emailAddressTextbox","emailAddress","test","serviceUrl_1","onScAjaxStart","onScAjaxComplete","emailAddressExistsErrorMessage","workdayapiEndpoint","WorkdayJobsTasks","tasksData","Report_Entry","jobEntries","$jobProfileDropdown_1","$jobProfileDropdownAlt_1","$locationDropdown_1","Option","entry","jobProfile","Job_Profile","Primary_Location","Job_Requisition_ID","Set","selectedProfile","locations","$preferredLocationDropdown","$preferredLocationDropdown_1","selectedLocation","getCustomerIdFromUrl","customerId","cdpApiEndpoint","cdpPreferenceData","cdpData","$cdpFirstName","$cdpLastName","$cdpCompany","$cdpCountry","$unsubscribeText","cov_primary_address","cov_country","$hiddenEmailField","primaryEmail","email_1","cov_interests_ind","industryData_1","checkbox","checkboxValue","cov_interests_mat","materialData_1","cov_interests_st","strategicData_1","selectedValues_1","formHash","imul","charCodeAt","applicationFormHiddenField","selectBox","legalFormSectionYesOption_1","legalFormSectionYesOption_2","legalFormSectionNextYesOptionYes_1","legalFormSectionNo_1","legalFormSectionNextYesOptionYes_2","legalFormSectionNo_2","preventStickyHeaderAppearing","preventStickyHeaderScrollBehaviour","noHasAnchor","noHasPageShare","Header","_initStickyHeader","windowHeight","headerMargin","gobackHistory","_initNavInPage","hideEmptyMenu","queryString","pageCampaignId","osc_id","referrer","go","_duplicateMetanavigation","destination","currentScrollTop","navBarHeight","delta","_calcTransitionTime","transitionString","numberPart","match","getElementsByTagName","HeaderCampaign","$headerTop","$ctaArea","pageStartToLogoEndHeight","lineHeightLargeHeadline","logoHeightPlusMarginTop","logoTouchesHeadlinePosition","CampaignCollectorPageHeader","ProductCompare","topThreshold","$table","$headline","headlineSingleText","headlineMultiText","updateHeadline","onRemoveClick","back","$products","handleScrollTop","isFixed","curScrollLeft","handleScrollLeft","$topRow","ProductCompareV2","onRemoveAllClick","updateColumnLength","highlightDifferences","showDifferences","onCategoryClick","onTooltipBtnClick","onTooltipCloserClick","hiddenControlArrows","setStaticTable","setTitleTableHeight","setTableTopOffset","setMiniTitleHeight","setTableTopWidth","$categoryTh","currentQuery","removeFromUrl","tableRemoveScoll","updateFavouritesBtnStatus","removeAllFromUrl","categoryID","$tooltipPopup","columns","$tableDataRow","$titleTable","$categoryTitle","$curCategoryTitle","$checkboxElement","that","$tabletop","$eIndex","$tableContent","curMarginLeft","maxScrollLeft","tableScrollRight","nextScrollLeft","tableScrollLeft","prdsetParamArr","prdSegArr","queryArr_1","$favouritesEle","responseText","TeaserContentArea","$teaserItems","CustomerLoungeNavigation","$currentLink","initDuplicate","initCollapseOverview","collapseContent","collapseOverview","CustomerLoungeProjectTeaser","initAccordion","sorting","showLoadingBar","loungeName","datasource","sortingProperties","sortBy","sortOrder","hideLoadingBar","slideToggle","favourites_share_1","actions","FavouritesOverview","$currentTitle","$favouritesFilter","$favouritesFilterClose","favorShare","FavouritesShare","showFavouritesFilter","hideFavouritesFilter","$dynamicContainer","$listContainer","$entryContainer","$action","listId","entryId","showLoadingIndicator","rebindEmailViewEvents","bindEmailSubmitEvent","bindClipboardEvents","hideLoadingIndicator","$textareaBox","prefillTxt","query_1","generateEmailTemplate","emailTemplateHtml","$template","date","getSeconds","getMilliseconds","$emailContainer","bindEmailContainerEvents","$emailMessageContainer","bindEmailMessageEvents","textareaTxt","textbox","getEmailAddresses","$btnEle_1","publicId","getReloadUrl","isUnavailable","$clipboardTitle","snapshot","Snapshot","validateEmailBox","$addEmailBtn","$emailGroupEles","addressArr","emailboxVal","ValidateEmailContainer","ValidateEmailAddress","$emailInputBox","$emailBox","sharedListId","resultArr","OverviewShareFavourites","loginViewEndpoint","expired","changeSelectAll","getSharedEntryIds","$allSubCheckboxes","areAllSubChecked","IArticleFinderFilterSortMode","favourite_button_1","counterForTabs","hasLoadedMore","apiEndpointFacetAndList","apiEndpointList","onMobileFiltersOpen","onMobileFiltersClose","clearFilters","None","sortMode","Value","backLinkText","twoLevelMultiselect","isTwoLevelFilter","originalId","initialRequest","initialcall","parts","keyValue","fromUrl","matches","heading","updateFacets","allowchangingprefiller","updateUri","updateFavoriteStatus","onFavoriteButtonClick","AssignTeaserVideoComponentEvents","AssignVideoComponentEvents","fail","border-top","margin-top","facet","theFilter","this_1","UpdateMultiLevelFacet","UpdateFacetLevelOne","updateFilterTags","updateFilterElements","hello","tags","this_2","disabled","tagsContainer_1","tag","onFilterTagClick","updateFilterElementsWithTwoLevels","updateFilterElementWithOneLevel","newItemsAdded","unhandledItems","match_1","humanReadableValue","hideDisableFilters","sorted","vA","vB","component","currentYear","getFullYear","levelOneContainer","newChildItemsAdded","levelTwoContainer","unhandledChildItems","childValue","match2","match2_1","filterTwoLevelMultiselect","isPreselected","urlParts","replaceState","childrenValue","videoComponentList","videoTeaserList","HomeScrollableTeaser","$tabItem","$tabItemLink","$contentItem","tabItemIndex","currentContentItemWidth","SafetyDataSheetSearch","topResultMsg","bottomResultMsg","urlLanAndCountry","materialNumberTHeader","productNameTHeader","dateTHeader","languageTHeader","linkTHeader","tableBodyEle","tableRowEle","resultContentEle","noResultContentEle","topResultMsgEle","bottomResultMsgEle","materialNumberInputEle","productNameInputEle","languageSelectEle","countrySelectEle","errorContainerEle","applyBtnEle","clearBtnEle","loadMoreBtnEle","contentLoadingEle","loadMoreLoadingEle","loadModalOverlayEle","handleKeyDown","applyFilter","getProductorMaterialData","preventBlurone","clear","getLanguagebyCountry","checkInputHasValue","sParameterName","sURLVariables","sParameterName1","langScript","getlanguageJsonData","languageInnerHtml","getUrlParameter","sParam","clearResults","showContentLoading","getData","cleardropdown","productNumber","lockButtons","jsonresponse","sdsSheet","resultsCountry_1","sdsCountry","elcountry","countryList","countryidx","countryitem","itemIndex","unlockButtons","countrySearch","hideContentLoading","resultResponse","selectedCountry_1","sdsLanguageBasedOnCountry_1","langidx","sdsElement","ellanguage","languageList","langItem","langSearch","lngDefaultText","lngRenderEle","coDefaultText","coRenderEle","setStaticPaging","updateResultMessage","total","updateResultContentState","renderResultDataOnPage","materialNumber","lng","languageAndCountry","generateHtmlData","LngAndArea","topMessage","bottomMessage","anyResult","getElementsByClassName","showLoadMoreLoading","hideLoadMoreLoading","StageSearchNew","StageProductFinderv2New","updateCheckboxSelection","$layerSecondNewSearchLevel","$itemSecondNewSearchLevel","$listFirstNewSearchLevel","$itemFirstNewSearchLevel","$itemFirstNewSearchLevelHeaderMobile","onToggleOverlayNewSearchClick","toggleNewSearchFilter","$currentOpenList","TeaserTabs","$tabContent","updatestatus","$url","keyValue_1","splitUrl","pop","AddToCalendar","AlertBanner","StageCrisis","CrisisTeaser","Jspreadsheet","initSpreadsheet","valCell","valRow","valValue","Widget","sheetElm","Container","regexInvoiceDate","regexInvoiceNum","regexInvoiceAmu","IsError","isSearch","callBack","invoiceInquiryLabels","sheetDataGlobal","invoiceNumber","invoiceDate","paymentDueDate","billingAmount","invoiceStatus","isError","InvoiceTable","sheetData","invoiceData","initInvoiceSheet","searchButtonEle","CaptchaEle","getinvoicedatafromapi","resetButtonEle","resetSpreadSheet","deleteRowEle","DeleteRow","addRowEle","AddRow","AddDeleteRow","updateData","setData","tableOverflow","tableHeight","allowInsertRow","allowManualInsertRow","allowInsertColumn","allowManualInsertColumn","allowDeleteRow","allowDeleteColumn","allowRenameColumn","allowComments","columnSorting","columnResize","minDimensions","csvHeaders","mask","extractTextFromHTML","decimal","readOnly","onafterchanges","getJson","oninsertrow","updateTable","cell","DOMParser","parseFromString","textContent","validation","row","adderrorclass","rownum","sheetDatalocal","errorClass","traditional","responseitems","WidgetInstance","startMode","rowIn","deleteRow","insertRow","rowNumIn","solution","captchasolution"],"mappings":"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ACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAMAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAIAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAEAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACAA,EAAA,KAGAA,EAAA,KACA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","file":"js/covestro.pattern-library.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CovestroUi\"] = factory();\n\telse\n\t\troot[\"CovestroUi\"] = factory();\n})(window, function() {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonpCovestroUi\"] = window[\"webpackJsonpCovestroUi\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([156,2]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export enum PublicEvents {\r\n\t// Generic UI events\r\n\t'uxChange',\r\n\t'uxClick',\r\n\t'uxInput',\r\n\t'uxSubmit',\r\n\t'uxShow',\r\n\t'uxHide',\r\n\t'uxResize',\r\n\t'uxSyncLabel',\r\n\r\n\t// Specific component events\r\n\t'overlayOpened',\r\n\t'overlayClosed',\r\n}\r\n\r\n// polyfill for custom events (IE)\r\n(function() {\r\n\tif (typeof (window as any)['CustomEvent'] === 'function') {\r\n\t\treturn false;\r\n\t}\r\n\tfunction CustomEvent(event: string, params: any) {\r\n\t\tparams = params || { bubbles: false, cancelable: false, detail: undefined };\r\n\t\tvar evt = document.createEvent('CustomEvent');\r\n\t\tevt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n\t\treturn evt;\r\n\t}\r\n\tCustomEvent.prototype = (window as any)['Event'].prototype;\r\n\t(window as any)['CustomEvent'] = CustomEvent;\r\n})();\r\n\r\n/**\r\n * Triggers a public event for external single page applications\r\n * @param {PublicEvents} type Event type\r\n * @param {TerrificSpec} terrificModule Terrific module\r\n * @param {Element} target Target element\r\n * @param {Object} eventData Event Data Object\r\n * @return {boolean} true if event was not rejected\r\n */\r\nexport function triggerPublicEvent(\r\n\ttype: PublicEvents,\r\n\tterrificModule: any,\r\n\ttarget: Element,\r\n\teventData: Object = {}\r\n): boolean {\r\n\tconst eventName = PublicEvents[type];\r\n\tconst terrificModuleName = terrificModule ? (terrificModule._ctx.dataset.tName as string) : '';\r\n\tconst data: object = {\r\n\t\tmodule: terrificModule,\r\n\t\tname: terrificModuleName,\r\n\t\teventData: eventData,\r\n\t};\r\n\tconst event = new CustomEvent(`${eventName}`, { detail: data });\r\n\ttarget.dispatchEvent(event);\r\n\r\n\treturn true;\r\n}\r\n\r\n/**\r\n * Bind to a public event and returns an unbind helper\r\n *\r\n * @param {PublicEvents} type Event type\r\n * @param {Element|JQuery} element Target element\r\n * @param {Object} callback\r\n * @return {Object} Off-Function to Event\r\n */\r\nexport function onPublicEvent(\r\n\ttype: PublicEvents,\r\n\telement: Element,\r\n\tcallback: (event: Event, data: object) => void\r\n): () => void {\r\n\tconst eventName = PublicEvents[type];\r\n\tconst eventHandler: any = (event: Event) => callback(event as any, (event as any)['detail'] as object);\r\n\telement.addEventListener(`${eventName}`, eventHandler);\r\n\treturn () => element.removeEventListener(`${eventName}`, eventHandler);\r\n}\r\n\r\nexport default {\r\n\tPublicEvents,\r\n\tonPublicEvent,\r\n\ttriggerPublicEvent,\r\n};\r\n","/**\r\n * This script handles generic tracking\r\n */\r\n\r\nimport * as Cookies from 'js-cookie';\r\n\r\n/**\r\n * Function adds tracking to dataLayer\r\n *\r\n * @param {object} data tracking data\r\n * @returns {void}\r\n */\r\nexport function gtmTrack(data: object) {\r\n\tif ((window as any).dataLayer) {\r\n\t\t(window as any).dataLayer.push(data);\r\n\t}\r\n}\r\n\r\n/**\r\n * Persist Sitecore Analytics consent to technical cookie.\r\n * @param active true if consent is given; otherwise, false.\r\n */\r\nfunction setSitecoreAnalyticsCookiePref(active: boolean) {\r\n\tCookies.set('track_sc_allowed', active ? 'true' : 'false', { expires: 3650 });\r\n}\r\n\r\n/**\r\n * Check consent status on load.\r\n * - Check for Sitecore Analytics consent.\r\n * - Check for Marketo consent.\r\n */\r\n(window as any).addEventListener('UC_UI_INITIALIZED', function (e: CustomEvent) {\r\n\tconst services = (window as any).UC_UI.getServicesBaseInfo() as any[];\r\n\r\n\t// Sitecore\r\n\tvar sc = services.find(s => s.name === \"Sitecore\");\r\n\tsetSitecoreAnalyticsCookiePref(sc && sc.consent && sc.consent.status);\r\n\r\n\t// Marketo\r\n\tvar mkto = services.find(s => s.name === \"Marketo\")\r\n\tif (mkto && mkto.consent && mkto.consent.status) {\r\n\t\tcheckMarketoEmailLink();\r\n\t} else {\r\n\t\tsetKnownMarketoLead(false);\r\n\t}\r\n});\r\n\r\n/**\r\n * Handle Usercentrics consent changes. Check for Sitecore Analytics consent.\r\n */\r\n(window as any).addEventListener(\"ucEvent\", function (e: CustomEvent) {\r\n\tif (e.detail && e.detail.event == \"consent_status\") {\r\n\t\tconst sitecorePurposeName = \"Sitecore\";\r\n\t\tif (e.detail[sitecorePurposeName] === true) {\r\n\t\t\tsetSitecoreAnalyticsCookiePref(true);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsetSitecoreAnalyticsCookiePref(false);\r\n\t\t}\r\n\r\n\t\tconst marketoPurposeName = \"Marketo\";\r\n\t\tif (e.detail[marketoPurposeName] === true) {\r\n\t\t\tcheckMarketoEmailLink();\r\n\t\t} else {\r\n\t\t\tsetKnownMarketoLead(false);\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport function isKnownMarketoLead(): boolean {\r\n\tlet cookieValue = Cookies.get(\"mkto_submitted\");\r\n\tif (cookieValue != undefined) {\r\n\t\tif (cookieValue.length > 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nexport function setKnownMarketoLead(state: boolean): void {\r\n\tif (state) {\r\n\t\tCookies.set(\"mkto_submitted\", \"1\", { expires: 365 });\r\n\t} else {\r\n\t\tCookies.remove(\"mkto_submitted\");\r\n\t}\r\n}\r\n\r\nfunction checkMarketoEmailLink(): void {\r\n\tconst queryStr = window.location.search.substring(1);\r\n\tconst querySet = queryStr.split(\"&\");\r\n\tfor (let i = 0; i < querySet.length; i++) {\r\n\t\tif (querySet[i].indexOf(\"mkt_tok\") === 0) {\r\n\t\t\tsetKnownMarketoLead(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n}\r\n","/**\r\n * This script returns the current active breakpoint\r\n */\r\nimport * as $ from 'jquery';\r\n// @ts-ignore\r\nimport * as throttle from 'lodash/throttle';\r\nimport '../css/breakpoint-helper.scss';\r\n\r\nexport type Breakpoint = 'small' | 'medium' | 'large' | 'extra-large';\r\n\r\nconst classes = {\r\n\thelper: 'h-breakpoint__helper',\r\n};\r\n\r\nlet cachedBreakpoint: Breakpoint;\r\n$(window).on('resize orientationchange', () => {\r\n\tcachedBreakpoint = undefined;\r\n});\r\n\r\nlet lastViewport: Breakpoint;\r\n$(window).on(\r\n\t'resize orientationchange',\r\n\tthrottle(\r\n\t\t() => {\r\n\t\t\tconst newViewport = getCurrentBreakpoint();\r\n\t\t\tif (lastViewport !== newViewport) {\r\n\t\t\t\tlastViewport = newViewport;\r\n\t\t\t\t$(window).trigger('uxViewPortChange', [newViewport]);\r\n\t\t\t}\r\n\t\t},\r\n\t\t25,\r\n\t\t{ leading: true, trailing: true }\r\n\t)\r\n);\r\n\r\nconst $meassureHelper = $(`
`);\r\n\r\nfunction meassureBreakpoint() {\r\n\tif (!document.body) {\r\n\t\tthrow new Error('Document is not ready');\r\n\t}\r\n\t$meassureHelper.appendTo(document.body);\r\n\r\n\treturn window\r\n\t\t.getComputedStyle($meassureHelper[0], ':before')\r\n\t\t.getPropertyValue('content')\r\n\t\t.replace(/['\"]/, '')\r\n\t\t.replace(/['\"]/, '') as Breakpoint;\r\n}\r\n\r\n/**\r\n * Register a handler to listen on breakpoint change\r\n * Passes the current viewport\r\n *\r\n * @param handler\r\n * @returns {()=>JQuery}\r\n */\r\nexport function onBreakpointChange(handler: (viewport?: Breakpoint) => void): () => any {\r\n\tconst callback = (event: any, viewport: any) => handler(viewport);\r\n\t$(window).on('uxViewPortChange', callback);\r\n\treturn () => $(window).off('uxViewPortChange', callback);\r\n}\r\n\r\n/**\r\n * Returns the current breakpoint using computed style to guarantee matching\r\n * the css breakpoints\r\n */\r\nexport default function getCurrentBreakpoint(): Breakpoint {\r\n\tif (!cachedBreakpoint) {\r\n\t\tcachedBreakpoint = meassureBreakpoint();\r\n\t}\r\n\treturn cachedBreakpoint;\r\n}\r\n\r\nexport function isSmall(viewport: string): boolean {\r\n\treturn viewport === 'small';\r\n}\r\n\r\nexport function isMedium(viewport: string): boolean {\r\n\treturn viewport === 'medium';\r\n}\r\n\r\nexport function isLarge(viewport: string): boolean {\r\n\treturn viewport === 'large';\r\n}\r\n\r\nexport function isExtraLarge(viewport: string): boolean {\r\n\treturn viewport === 'extra-large';\r\n}\r\n\r\nexport function isSmallOrMedium(viewport: string): boolean {\r\n\treturn isSmall(viewport) || isMedium(viewport);\r\n}\r\n","/**\r\n * Scroll to given element with animation.\r\n * Optional: Prevent sticky header from appearing.\r\n */\r\nexport function scrollToElement(\r\n\t$elm: any,\r\n\tpreventFixedHeader: boolean,\r\n\tadditionalOffsetTop: number = 0,\r\n\ttriggerScrollReached: boolean = false,\r\n\ttopOnly: boolean = false\r\n) {\r\n\tconst offset = $elm.offset();\r\n\r\n\tif (preventFixedHeader) {\r\n\t\t$(window).trigger('enablePreventStickyHeaderAppearing');\r\n\t}\r\n\tconst scrollProperties: { scrollTop: number; scrollLeft?: number } = {\r\n\t\tscrollTop: offset.top - additionalOffsetTop,\r\n\t};\r\n\tif (!topOnly) {\r\n\t\tscrollProperties.scrollLeft = offset.left;\r\n\t}\r\n\t$('html, body').animate(scrollProperties, 500, () => {\r\n\t\tsetTimeout(() => {\r\n\t\t\t$(window).trigger('disablePreventStickyHeaderAppearing');\r\n\t\t\tif (triggerScrollReached) {\r\n\t\t\t\t$elm.trigger('scrollReached');\r\n\t\t\t}\r\n\t\t}, 100);\r\n\t});\r\n}\r\n\r\nexport default { scrollToElement };\r\n","export enum FormControlLabelStateClass {\r\n\tDefault = 'a-label js-form__label' as any,\r\n\tRequired = 'state-a-label--is-required' as any,\r\n\tFloated = 'state-a-label--is-floated' as any,\r\n\tDoNotRemoveFloated = 'state-a-label--do-not-remove' as any,\r\n}\r\n\r\nexport const FormControlSiteCoreStateClass: string = 'input-validation-error';\r\n\r\n// use js-form_label selector, inform BE\r\nexport function getLabel(control: HTMLElement) {\r\n\tconst $this = $(control);\r\n\tconst placeholderTxt = $this.attr('placeholder');\r\n\tlet $label = $this.prev('label');\r\n\r\n\t// As discussed with design, there should be no placeholder when it is clicked end empty\r\n\t// because a placeholder can't be removed in all browsers via css, it has to be done with js.\r\n\t// Therefore => if there is only a placeholder, transform it to a label.\r\n\tif ($label.length === 0 && placeholderTxt) {\r\n\t\t$this.attr('placeholder', '');\r\n\t\t$label = $(``);\r\n\t\t$this.before($label);\r\n\t} else if ($label.length > 0 && placeholderTxt) {\r\n\t\t$this.attr('placeholder', '');\r\n\t}\r\n\r\n\tif ($this.attr('data-val-required')) {\r\n\t\t$label.addClass(FormControlLabelStateClass.Required.toString());\r\n\t}\r\n\r\n\tif (!$label.hasClass(FormControlLabelStateClass.Default.toString())) {\r\n\t\t$label.addClass(FormControlLabelStateClass.Default.toString());\r\n\t}\r\n\r\n\treturn $label;\r\n}\r\n\r\nexport function floatControlLabel(control: HTMLElement, isFocused: boolean = false) {\r\n\tconst $formControl = $(control);\r\n\r\n\tif ($formControl.length) {\r\n\t\t$formControl.each(function() {\r\n\t\t\tconst $this = $(this);\r\n\t\t\tconst $label = getLabel(control);\r\n\r\n\t\t\tif ($label && $this) {\r\n\t\t\t\t// enables floating label also for disabled selected options\r\n\t\t\t\tconst value =\r\n\t\t\t\t\tthis instanceof HTMLSelectElement && !$this.val()\r\n\t\t\t\t\t\t? $this.find('option[selected]').attr('value')\r\n\t\t\t\t\t\t: $this.val();\r\n\r\n\t\t\t\tif ((value && value.toString().length > 0) || isFocused) {\r\n\t\t\t\t\t$label.addClass(FormControlLabelStateClass.Floated.toString());\r\n\t\t\t\t\tlet $innerWidth;\r\n\t\t\t\t\tif ($this.hasClass('select2-hidden-accessible')) {\r\n\t\t\t\t\t\t$innerWidth = $this.next('.select2').innerWidth();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$innerWidth = $this.innerWidth();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ($innerWidth) {\r\n\t\t\t\t\t\t$label.css('max-width', `${Math.floor($innerWidth) - 30}px`);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ($label.hasClass(FormControlLabelStateClass.DoNotRemoveFloated.toString())) {\r\n\t\t\t\t\t\t$label.css('max-width', 'none');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$label.removeClass(FormControlLabelStateClass.Floated.toString());\r\n\t\t\t\t\t\t$label.css('max-width', 'none');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isFocused) {\r\n\t\t\t\t\tconst $innerWidth = $this.innerWidth();\r\n\t\t\t\t\tif ($innerWidth) {\r\n\t\t\t\t\t\t$label.css('max-width', $innerWidth - 30 + 'px');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// @ts-ignore\r\n\t\t\t\t$this.on('blur', (ev: Event) => {\r\n\t\t\t\t\tisFocused = false;\r\n\t\t\t\t\tif (!$this.val()) {\r\n\t\t\t\t\t\t$label.removeClass(FormControlLabelStateClass.Floated.toString());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tfloatControlLabel,\r\n\tFormControlLabelStateClass,\r\n\tFormControlSiteCoreStateClass,\r\n};\r\n","import { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\n\r\n/**\r\n * This script handles generic hashscrolling\r\n */\r\n\r\nlet initialized: boolean = false;\r\n/**\r\n * Initializes Hashscrolling\r\n *\r\n */\r\nexport function init(): void {\r\n\tif (!initialized) {\r\n\t\tinitialized = true;\r\n\t\tif (window.location.hash.length > 1) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tscrollToIdElement(window.location.hash);\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t\t$(window).on('hashchange.hashscrolling', () => {\r\n\t\t\tscrollToIdElement(window.location.hash);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport function addScrollClickTrigger($el: JQuery) {\r\n\t$el.on('click.hashscrolling', (ev: JQuery.Event) => {\r\n\t\tev.preventDefault();\r\n\t\tconst hash = (ev.currentTarget as any).hash;\r\n\t\thistoryPush(hash);\r\n\t\tscrollToIdElement(hash);\r\n\t});\r\n}\r\n\r\nfunction scrollToIdElement(hash: string) {\r\n\tconst $el = $(document.getElementById(hash.substring(1)));\r\n\tif ($el.length === 1) {\r\n\t\tif ($('.js-m-navigation-in-page__wrapper').length > 0) {\r\n\t\t\tscrollToElement($el, true, $('.js-m-navigation-in-page__wrapper').height() + 20 || 120, true);\r\n\t\t} else {\r\n\t\t\tscrollToElement($el, true, $('.js-o-header-wrapper').height() || 120, true);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction historyPush(hash: string): any {\r\n\tif (history.pushState) {\r\n\t\tconst newurl =\r\n\t\t\twindow.location.protocol +\r\n\t\t\t'//' +\r\n\t\t\twindow.location.host +\r\n\t\t\twindow.location.pathname +\r\n\t\t\twindow.location.search +\r\n\t\t\thash;\r\n\t\twindow.history.pushState({ path: newurl }, '', newurl);\r\n\t}\r\n}\r\n","import * as Events from '@project/shared/utils/events/js/events';\r\n\r\nconst overlayDataName: string = 'covestro-overlay';\r\nexport function IsOverlayDisplayed(): boolean {\r\n const value = $(window.document.documentElement).data(overlayDataName);\r\n if (value == undefined || value == null || typeof value !== 'boolean') return false;\r\n return value;\r\n}\r\n\r\nexport function ShowOverlay(openFunc: () => void, delayInMs: number = 0) {\r\n if (!IsOverlayDisplayed()) {\r\n ShowOverlayWithRetry(openFunc, delayInMs);\r\n } else {\r\n console.debug(`Detected an open overlay; waiting.`);\r\n\r\n let unsubscribeCloseHandler = Events.onPublicEvent(Events.PublicEvents.overlayClosed, window.document.documentElement, (e, d) => {\r\n unsubscribeCloseHandler();\r\n\r\n console.debug(`Detected closing of another overlay; registring.`);\r\n\r\n ShowOverlayWithRetry(openFunc, delayInMs);\r\n });\r\n }\r\n}\r\n\r\nfunction ShowOverlayWithRetry(openFunc: () => void, delayInMs: number = 0) {\r\n let unsubscribeOpenHandler: () => void,\r\n unsubscribeCloseHandler: () => void;\r\n\r\n console.debug(`Registering overlay with ${delayInMs}ms delay.`);\r\n\r\n const timeoutHandle = setTimeout(() => {\r\n if (unsubscribeOpenHandler != null) unsubscribeOpenHandler();\r\n if (unsubscribeCloseHandler != null) unsubscribeCloseHandler();\r\n\r\n DoShowOverlay(openFunc);\r\n }, delayInMs);\r\n\r\n // Abort the timeout in case another overlay opens\r\n unsubscribeOpenHandler = Events.onPublicEvent(Events.PublicEvents.overlayOpened, window.document.documentElement, (e, d) => {\r\n unsubscribeOpenHandler();\r\n unsubscribeOpenHandler = null;\r\n\r\n clearTimeout(timeoutHandle);\r\n\r\n console.debug(`Detected opening of another overlay; aborted.`);\r\n\r\n // And re-register when that overlay gets closed\r\n unsubscribeCloseHandler = Events.onPublicEvent(Events.PublicEvents.overlayClosed, window.document.documentElement, (e, d) => {\r\n unsubscribeCloseHandler();\r\n unsubscribeCloseHandler = null;\r\n\r\n console.debug(`Detected closing of another overlay; re-registring.`);\r\n\r\n ShowOverlayWithRetry(openFunc, delayInMs);\r\n });\r\n });\r\n}\r\n\r\nfunction DoShowOverlay(openFunc: () => void) {\r\n console.debug(`Opening overlay.`);\r\n\r\n Events.triggerPublicEvent(Events.PublicEvents.overlayOpened, null, window.document.documentElement);\r\n $(window.document.documentElement).data(overlayDataName, true);\r\n\r\n openFunc();\r\n\r\n console.debug(`Opening overlay complete.`)\r\n}\r\n\r\nexport function CloseOverlay(closeFunc: () => void) {\r\n console.debug(`Closing overlay.`);\r\n\r\n closeFunc();\r\n\r\n $(window.document.documentElement).data(overlayDataName, false);\r\n Events.triggerPublicEvent(Events.PublicEvents.overlayClosed, null, window.document.documentElement)\r\n\r\n console.debug(`Closing overlay complete.`);\r\n}","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { floatControlLabel } from '@project/shared/utils/form-control/js/form-control';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\tstateValMsgVisible: \"state-field-validation-error--visible\",\r\n\tstateCountMax: \"state-textarea-count-max\",\r\n\tstatePopupVisible: \"state-favourite-popup--visible\",\r\n\tstatePopupClose: \"state-favourite-popup--close\",\r\n\r\n\tnoScrollingBar: \"no-scrolling--without-scrollbar\",\r\n\r\n\tpopupBox: \"js-m-modal-actions\",\r\n\ttextareaContainer: \"js-m-modal-actions-textarea-container\",\r\n\ttextareaBox: \"js-m-modal-actions__textarea\",\r\n\ttextareaValLength: \"js-m-modal-actions__textarea-count-length\",\r\n\ttextareaValLengthMax: \"js-m-modal-actions__textarea-count-max\",\r\n\r\n\tconfirmationBtn: \"js-m-modal-actions-confirmation\",\r\n\r\n\ttextcheckboxContainer: \"js-m-modal-actions-textcheckbox-container\",\r\n\ttextboxContainer: \"js-m-modal-actions-textbox-container\",\r\n\ttextboxGroup: \"m-modal-actions__new-list-input\",\r\n\ttextbox: \"js-m-modal-actions__newlist\",\r\n\r\n\tchecklistContainer: \"js-m-modal-actions-checklist-container\",\r\n\tallChecklistContainer: \"js-m-modal-actions-all-checklist-container\",\r\n\r\n\tinputValidationError: \"input-validation-error\",\r\n\tfieldValidationError: \"js-checklist-validation-error\",\r\n}\r\n\r\nconst submitApis = {\r\n\r\n\taddSharedEntry: \"addsharedentry\"\r\n}\r\n\r\n@createModule('FavouritesAction')\r\n\r\nexport class FavouritesAction extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\trebindCommonViewEvents($popup: JQuery) {\r\n\r\n\t\tconst _this = this;\r\n\r\n\t\t// bind textarea events\r\n\t\tconst $textareaContainer = $popup.find(`.${classes.textareaContainer}`);\r\n\t\tif ($textareaContainer.length > 0) {\r\n\t\t\t_this.bindTextareaContainerEvents($textareaContainer);\r\n\t\t}\r\n\r\n\t\t// bind textbox events\r\n\t\tconst $textBoxContainer = $popup.find(`.${classes.textboxContainer}`);\r\n\t\tif ($textBoxContainer.length > 0) {\r\n\t\t\t_this.bindTextboxContainerEvents($textBoxContainer);\r\n\t\t}\r\n\r\n\t\t// bind all checkbox validation\r\n\t\tconst $allChecklists = $popup.find(`.${classes.allChecklistContainer}`).find(\"input[type=checkbox]\");\r\n\t\tif ($allChecklists.length > 0) {\r\n\t\t\tthis.bindAllCheckboxesEvents($allChecklists);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tbindSubmitEvent($popup: JQuery, contentType: string) {\r\n\t\t// bind submit button\r\n\t\t$popup.find(`.${classes.confirmationBtn}`).on('click', (ev: any) => {\r\n\r\n\t\t\tif (this.canSubmit($popup)) {\r\n\r\n\t\t\t\tconst $btn = $(ev.currentTarget);\r\n\r\n\t\t\t\tthis.lockSubmitBtn($btn);\r\n\r\n\t\t\t\tthis.track(\"Own Favourites\", contentType);\r\n\r\n\t\t\t\tconst url = $popup.data(\"api-endpoint\");\r\n\t\t\t\tconst id = $popup.data(\"item-id\");\r\n\r\n\t\t\t\tconst textareaValue = $popup.find(\"textarea\").val();\r\n\t\t\t\t// get list ids\r\n\t\t\t\tconst ids = this.getCheckedListIds($popup);\r\n\r\n\t\t\t\tconst textboxValue = this.getTextCheckBoxValue($popup);\r\n\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\ttype: 'post',\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\tdata:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tid: id,\r\n\t\t\t\t\t\tids: ids,\r\n\t\t\t\t\t\ttextareaInput: textareaValue,\r\n\t\t\t\t\t\ttextInput: textboxValue\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: (response: any) => {\r\n\t\t\t\t\t\tif (response.success) {\r\n\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tconsole.log(`submit action-view error, endpoint: ${url}, error type: ${response.error.type}, detail: ${response.error.message}`);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\tthis.unlockSubmitBtn($btn);\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\t\tconsole.log(`submit action-view error, endpoint: ${url}, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tbindAddSharedEntrySubmitEvent($popup: JQuery, contentType: string) {\r\n\t\t// bind submit button\r\n\t\t$popup.find(`.${classes.confirmationBtn}`).on('click', (ev: any) => {\r\n\r\n\t\t\tif (this.canSubmit($popup)) {\r\n\r\n\t\t\t\tconst $btn = $(ev.currentTarget);\r\n\r\n\t\t\t\tthis.lockSubmitBtn($btn);\r\n\r\n\t\t\t\tconst url = $popup.data(\"api-endpoint\");\r\n\t\t\t\tconst SharedEntryIds = $popup.data(\"item-id\");\r\n\t\t\t\t// get list ids\r\n\t\t\t\tconst ids = this.getCheckedListIds($popup);\r\n\r\n\t\t\t\tconst textboxValue = this.getTextCheckBoxValue($popup);\r\n\r\n\t\t\t\tthis.submitTrack(url, contentType);\r\n\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\ttype: 'post',\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\tdata:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tSharedEntryIds: SharedEntryIds,\r\n\t\t\t\t\t\tids: ids,\r\n\t\t\t\t\t\ttextInput: textboxValue\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: (response: any) => {\r\n\t\t\t\t\t\tif (response.success) {\r\n\t\t\t\t\t\t\twindow.location.assign(response.redirectUrl);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tconsole.log(`submit action-view error, endpoint: ${url}, error type: ${response.error.type}, detail: ${response.error.message}`);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\tthis.unlockSubmitBtn($btn);\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\t\tconsole.log(`submit action-view error, endpoint: ${url}, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tbindTextareaContainerEvents($textareaContainer: any) {\r\n\r\n\t\tconst _this = this;\r\n\r\n\t\t// bind text area floating label\r\n\t\t$textareaContainer.on(\"focus\", `.${classes.textareaBox}`, (ev: any) => {\r\n\t\t\tconst me = ev.currentTarget;\r\n\t\t\tfloatControlLabel(me, true)\r\n\t\t});\r\n\r\n\t\t// bind text area counter\r\n\t\t$textareaContainer.find(`.${classes.textareaBox}`).on(\"input propertychange\", function (ev: any) {\r\n\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\t_this.countTextarea($target);\r\n\t\t\t_this.validateInputTextBox($target);\r\n\t\t})\r\n\t}\r\n\r\n\tbindTextboxContainerEvents($textboxContainer: JQuery) {\r\n\t\tconst _this = this;\r\n\r\n\t\tconst $inputBox = $textboxContainer.find(`.${classes.textbox}`);\r\n\t\tconst $checkBox = $textboxContainer.parents(`.${classes.textcheckboxContainer}`).find(\"input[type=checkbox]\");\r\n\r\n\t\t// bind text box floating label\r\n\t\t$textboxContainer.on(\"focus\", `.${classes.textbox}`, (ev: any) => {\r\n\t\t\tconst me = ev.currentTarget;\r\n\t\t\tfloatControlLabel(me, true)\r\n\t\t});\r\n\r\n\t\t// bind textbox validation\r\n\t\t$inputBox.on(\"input propertychange\", function (ev: any) {\r\n\t\t\tconst $target: any = $(ev.currentTarget);\r\n\r\n\t\t\tlet value = $target.val();\r\n\t\t\tif (value.length > 0) {\r\n\t\t\t\t$checkBox.prop(\"checked\", true);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$checkBox.prop(\"checked\", false);\r\n\t\t\t}\r\n\r\n\t\t\tif ($checkBox.prop(\"checked\")) {\r\n\t\t\t\t_this.validateInputTextBox($target);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t})\r\n\r\n\t\t// bind textbox checkbox validation\r\n\t\t$checkBox.on(\"click\", function (ev: any) {\r\n\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\tif (!$target.prop(\"checked\")) {\r\n\t\t\t\t$inputBox.removeClass(classes.inputValidationError);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tbindAllCheckboxesEvents($allCheckboxContainer: JQuery) {\r\n\t\tconst _this = this;\r\n\t\tconst $allCheckboxes = $allCheckboxContainer.find(\"input[type=checkbox]\");\r\n\t\t$allCheckboxes.on(\"click\", function (ev: any) {\r\n\t\t\t_this.validateCheckList($allCheckboxContainer);\r\n\r\n\t\t});\r\n\t}\r\n\r\n\tcountTextarea($textarea: any) {\r\n\t\tconst $textareaValLength = $textarea.parent().find(`.${classes.textareaValLength}`);\r\n\t\tconst $textareaValLengthMax = $textarea.parent().find(`.${classes.textareaValLengthMax}`);\r\n\t\tconst textVal = $textarea.val();\r\n\t\tconst currentCount = parseInt($textareaValLengthMax.text()) - textVal.length;\r\n\t\tif (currentCount > 0) {\r\n\t\t\t$textareaValLength.text(currentCount);\r\n\t\t\t$textareaValLength.parent().removeClass(classes.stateCountMax)\r\n\t\t} else {\r\n\t\t\t$textareaValLength.text('0');\r\n\t\t\t$textareaValLength.parent().addClass(classes.stateCountMax)\r\n\t\t};\r\n\t}\r\n\r\n\tgetCheckedListIds($currentPopup: JQuery) {\r\n\r\n\t\tlet $checkedItems = $currentPopup.find(`.${classes.checklistContainer}`).find(\"input[type='checkbox']:checked\");\r\n\t\tconst idArr = new Array();\r\n\t\t$checkedItems.each((i: any, e: any) => {\r\n\t\t\tconst value = $(e).attr(\"id\");\r\n\t\t\tif (typeof (value) != \"undefined\") {\r\n\t\t\t\tidArr.push(value);\r\n\t\t\t}\r\n\t\t});\r\n\t\tconst ids = idArr.join(\",\");\r\n\r\n\t\treturn ids;\r\n\t}\r\n\r\n\tgetTextCheckBoxValue($popup: JQuery) {\r\n\t\t// get new list name\r\n\t\tlet textboxValue = \"\";\r\n\t\tconst newListChecked: boolean = $popup.find(`.${classes.textcheckboxContainer}`).find(\"input[type='checkbox']\").prop(\"checked\");\r\n\r\n\t\tif (newListChecked) {\r\n\t\t\ttextboxValue = $popup.find(`.${classes.textboxContainer}`).find(`.${classes.textbox}`).val() as string;\r\n\t\t}\r\n\r\n\t\treturn textboxValue\r\n\t}\r\n\r\n\tvalidateInputTextBox($inputBox: any): boolean {\r\n\r\n\t\tconst value = $inputBox.val();\r\n\r\n\t\tif (value == null || value == undefined || value == '' || value.length == 0) {\r\n\t\t\t$inputBox.addClass(classes.inputValidationError);\r\n\t\t\treturn false;\r\n\t\t} else {\r\n\t\t\t$inputBox.removeClass(classes.inputValidationError);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\t// validate all checkboxes, include new created one\r\n\tvalidateCheckList($allCheckboxesContainer: JQuery): boolean {\r\n\t\tlet chkVal = false;\r\n\r\n\t\tconst $chkList = $allCheckboxesContainer.find(\"input[type=checkbox]\");\r\n\r\n\t\t$chkList.each((i: any, e: any) => {\r\n\t\t\tconst $ele = $(e);\r\n\t\t\tif ($ele.prop(\"checked\")) {\r\n\t\t\t\tchkVal = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst $popup = $allCheckboxesContainer.parents(`.${classes.popupBox}`);\r\n\r\n\t\tconst $chkValMsgEle = $popup.find(`.${classes.fieldValidationError}`);\r\n\t\tif (!chkVal) {\r\n\t\t\t$chkValMsgEle.addClass(classes.stateValMsgVisible);\r\n\t\t} else {\r\n\t\t\t$chkValMsgEle.removeClass(classes.stateValMsgVisible);\r\n\t\t}\r\n\r\n\t\treturn chkVal;\r\n\t}\r\n\r\n\tcanSubmit($popup: JQuery): boolean {\r\n\r\n\t\t// validate textarea\r\n\t\tlet textareaVal = true;\r\n\t\tconst $textareaContainer = $popup.find(`.${classes.textareaContainer}`);\r\n\t\tif ($textareaContainer.length > 0) {\r\n\t\t\tconst $textarea = $textareaContainer.find(`.${classes.textareaBox}`);\r\n\t\t\ttextareaVal = this.validateInputTextBox($textarea);\r\n\t\t}\r\n\r\n\t\t// validate textbox\r\n\t\tlet textboxVal = true;\r\n\t\tconst $textcheckboxContainer = $popup.find(`.${classes.textcheckboxContainer}`);\r\n\t\tif ($textcheckboxContainer.length > 0) {\r\n\t\t\tconst $textbox = $textcheckboxContainer.find(`.${classes.textbox}`);\r\n\t\t\tconst $textboxChk = $textcheckboxContainer.find(\"input[type=checkbox]\");\r\n\t\t\tif ($textboxChk.prop(\"checked\")) {\r\n\t\t\t\ttextboxVal = this.validateInputTextBox($textbox);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// validate if at leaset one favor list is selected\r\n\t\tlet chkVal = true;\r\n\t\tconst $allChecklistContainer = $popup.find(`.${classes.allChecklistContainer}`);\r\n\t\tconst $allChecklists = $allChecklistContainer.find(\"input[type=checkbox]\");\r\n\t\tif ($allChecklists.length > 0) {\r\n\t\t\tchkVal = this.validateCheckList($allChecklistContainer);\r\n\t\t}\r\n\r\n\t\tif (textareaVal && textboxVal && chkVal) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\tdisplayPopup($popup: JQuery) {\r\n\t\t$popup.addClass(classes.statePopupVisible);\r\n\t\t$('html').addClass(classes.noScrollingBar);\r\n\r\n\t\t// bind close button and icon\r\n\t\t$popup.find(`.${classes.statePopupClose}`).on('click', () => {\r\n\t\t\tthis.removePopup($popup);\r\n\t\t});\r\n\t}\r\n\r\n\tremovePopup($popup: JQuery) {\r\n\t\t$popup.parent().empty();\r\n\t\t$('html').removeClass(classes.noScrollingBar);\r\n\t}\r\n\r\n\tlockSubmitBtn($btnEle: JQuery) {\r\n\t\t$btnEle.attr(\"disabled\", \"disabled\");\r\n\t}\r\n\r\n\tunlockSubmitBtn($btnEle: JQuery) {\r\n\t\t$btnEle.removeAttr(\"disabled\");\r\n\t}\r\n\r\n\tsubmitTrack(submitUrl: string, contentType: string) {\r\n\t\tif (submitUrl.indexOf(submitApis.addSharedEntry) > -1) {\r\n\t\t\tthis.track(\"Own Favourites\", contentType);\r\n\t\t}\r\n\t}\r\n\r\n\ttrack(action: string, contentType: string) {\r\n\r\n\t\tconst trackdata: {\r\n\t\t\tevent: string;\r\n\t\t\teventCategory: string;\r\n\t\t\teventAction: string;\r\n\t\t\teventLabel: string;\r\n\t\t\teventValue?: string;\r\n\t\t} = {\r\n\t\t\tevent: 'share',\r\n\t\t\teventCategory: 'Share Favourites',\r\n\t\t\teventAction: action,\r\n\t\t\teventLabel: contentType,\r\n\t\t};\r\n\t\tTrack.gtmTrack(trackdata);\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","/**\r\n * This script handles product compare\r\n */\r\nimport * as Cookies from 'js-cookie';\r\n\r\nconst cookieInstance = Cookies.withConverter({\r\n\tread(value) {\r\n\t\treturn value;\r\n\t},\r\n\twrite(value) {\r\n\t\treturn value;\r\n\t},\r\n});\r\n\r\n/**\r\n * Gets the product compare data from cookie\r\n *\r\n * @returns {Array} Array of product compare\r\n */\r\nexport function getCookieData() {\r\n\treturn JSON.parse(cookieInstance.get('productCompare') || '[]');\r\n}\r\n\r\n/**\r\n * method gets array index of item with productId\r\n *\r\n * @param {Array} array array to search for\r\n * @param {string} id product id\r\n * @returns {number} index\r\n */\r\nfunction getArrayIndex(array: Array, id: string) {\r\n\treturn array.findIndex((el: any) => {\r\n\t\treturn `${el.number}` === `${id}`;\r\n\t});\r\n}\r\n\r\n/**\r\n * method saves data to cookie\r\n *\r\n * @param {Object} data cookiedate\r\n * @returns {void}\r\n */\r\nfunction saveCookie(data: object) {\r\n\tcookieInstance.set('productCompare', JSON.stringify(data));\r\n}\r\n\r\n/**\r\n * method updates compare layer\r\n *\r\n * @returns {void}\r\n */\r\nexport function updateLayer(): void {\r\n\tconst $compareLayerModule = $(\"[data-t-name='ProductCompareLayer']\");\r\n\tif ($compareLayerModule.length) {\r\n\t\tconst count = getCookieData().length;\r\n\t\tif (count > 0) {\r\n\t\t\tif (parseInt(cookieInstance.get('productCompareHidden'), 10) !== count) {\r\n\t\t\t\tcookieInstance.remove('productCompareHidden');\r\n\t\t\t\t$compareLayerModule.trigger('showLayer', count);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$compareLayerModule.trigger('hideLayer');\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * method add compare layer\r\n *\r\n * @returns {void}\r\n */\r\nexport function addNewProductLayer(id: string, market: string, name: string): void {\r\n\tconst $compareLayerModule = $(\"[data-t-name='ProductCompareLayer']\");\r\n\t$compareLayerModule.trigger('addNewProductLayer', {number: id, market: market, name: name});\r\n}\r\n\r\n/**\r\n * method add compare layer\r\n *\r\n * @returns {void}\r\n */\r\nexport function removeNewProductLayer(id: string): void {\r\n\tconst $compareLayerModule = $(\"[data-t-name='ProductCompareLayer']\");\r\n\t$compareLayerModule.trigger('removeNewProductLayer', id);\r\n}\r\n\r\n/**\r\n * when handle the remove action from compare list, we also need to change the button state in finder list.\r\n *\r\n * @returns {void}\r\n */\r\nexport function removeCompareProductLayerFromFinderList(id: string): void {\r\n\tconst $compareLayerModule = $(\"[data-t-name='ProductCompareButton']\");\r\n\t$compareLayerModule.trigger('onCompareProductListItemChangeEvent', id);\r\n}\r\n\r\n/**\r\n * method will set hide layer cookie\r\n *\r\n * @param {string} id productid string\r\n * @returns {void}\r\n */\r\nexport function setLayerHiddenCookie() {\r\n\tcookieInstance.set('productCompareHidden', getCookieData().length);\r\n}\r\n\r\n/**\r\n * method removes entry from product data\r\n *\r\n * @param {string} id productid string\r\n * @returns {void}\r\n */\r\nfunction removeProductData(id: string) {\r\n\tconst cookieVal = getCookieData();\r\n\tconst index = getArrayIndex(cookieVal, id);\r\n\tif (index > -1) {\r\n\t\tcookieVal.splice(index, 1);\r\n\t}\r\n\treturn cookieVal;\r\n}\r\n\r\n/**\r\n * method removes entry from cookie\r\n *\r\n * @param {string} id productid\r\n * @returns {void}\r\n */\r\nexport function removeProduct(id: string) {\r\n\tsaveCookie(removeProductData(id));\r\n\tremoveNewProductLayer(id);\r\n\tupdateLayer();\r\n}\r\n\r\n/**\r\n * method empty product compare from cookie\r\n *\r\n * @returns {void}\r\n */\r\nexport function removeAllProduct() {\r\n\tcookieInstance.remove('productCompare');\r\n}\r\n\r\n/**\r\n * method updates adds product to cookie\r\n *\r\n * @param {string} id productid\r\n * @param {string} market market\r\n * @returns {void}\r\n */\r\nexport function addProduct(id: string, market: string, name: string) {\r\n\tconst cookieVal = removeProductData(id);\r\n\tcookieVal.push({\r\n\t\tnumber: `${id}`,\r\n\t\tmarket,\r\n\t});\r\n\tsaveCookie(cookieVal);\r\n\taddNewProductLayer(id, market, name);\r\n\tupdateLayer();\r\n}\r\n\r\n/**\r\n * method updates cookie state\r\n *\r\n * @param {string} id id of product\r\n * @returns {void}\r\n */\r\nexport function isProductInCookie(id: string) {\r\n\treturn getArrayIndex(getCookieData(), id) > -1;\r\n}\r\n","/**\r\n * This script toggles burger navigation\r\n */\r\n\r\nexport enum Bodystate {\r\n\tvisible = 'state-m-burgernav--visible',\r\n\tsticky = 'no-scrolling--without-scrollbar',\r\n\tscrollbar = 'no-scrolling--without-scrollbar',\r\n}\r\n\r\nconst classes = {\r\n\touterParent: 'body',\r\n\tstateBurgerNav: Bodystate.visible,\r\n\tnoScrolling: Bodystate.scrollbar,\r\n};\r\n\r\n/**\r\n * change the current burger state\r\n *\r\n * @param handler\r\n * @returns {void}\r\n */\r\nexport function changeBodyState(bodyClass: string): void {\r\n\t$(`${classes.outerParent}`).toggleClass(bodyClass);\r\n}\r\n\r\n/**\r\n * removes the current burger state\r\n *\r\n * @param handler\r\n * @returns {()=>JQuery}\r\n */\r\nexport function removeBodyState(bodyClass: string) {\r\n\t$(`${classes.outerParent}`).removeClass(bodyClass);\r\n}\r\n\r\n/**\r\n * Returns the current burger State\r\n */\r\nexport function getBodyState(bodyClass: string): boolean {\r\n\treturn $(`${classes.outerParent}`).hasClass(bodyClass);\r\n}\r\n\r\nexport default { changeBodyState, getBodyState };\r\n\r\n$(window).on('lockScrolling', () => {\r\n\t$('html').addClass(classes.noScrolling);\r\n});\r\n\r\n$(window).on('unlockScrolling', () => {\r\n\t$('html').removeClass(classes.noScrolling);\r\n});\r\n","import { isKnownMarketoLead } from '@project/shared/utils/tracking/js/tracking';\r\nimport { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tcontactImage: 'js-m-marketo-form__contact-image',\r\n\tstateHasImage: 'm-marketo-form__has-contact-image',\r\n\tstateAdditionalFieldsVisible: 'm-marketo-form__show-additional-fields',\r\n\trowHide: \"mktoFormRowHide\",\r\n\tautoSuggestDropdown: \"js-m-marketo-form_product-autosuggest\",\r\n\tdropdownItem: \"js-m-marketo-form_dropdown-item\"\r\n};\r\n\r\ninterface IProductAutosuggest {\r\n\tFieldName: string;\r\n\tEndpoint: string;\r\n\tBrandLabel: string;\r\n\tProductLabel: string;\r\n\tNoResultLabel: string;\r\n\tMaxItem: number;\r\n\tPermissionQuery: string;\r\n\tLanguage: string;\r\n}\r\n\r\n\r\n@createModule('MarketoFormGlobal')\r\nexport class MarketoFormGlobal extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\t//this is for marketo lightbox not working\r\n\t\t//so changed to when for loaded call this method\r\n\t\t//this.initializeMarketoOnScriptLoad();\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitializeMarketoOnScriptLoad(): void {\r\n\t\tlet $this = this;\r\n\t\tlet timerRef = setTimeout(() => {\r\n\t\t\tlet MktoForms2 = (window as any)[\"MktoForms2\"];\r\n\t\t\tif (typeof (MktoForms2) != \"undefined\") {\r\n\t\t\t\tclearTimeout(timerRef);\r\n\r\n\t\t\t\tMktoForms2.whenReady(function (form: any) {\r\n\t\t\t\t\tlet $component = $(form.getFormElem()[0]).closest(\"div[data-t-name]\");\r\n\r\n\t\t\t\t\t$this.initMessageBox($component);\r\n\r\n\t\t\t\t\t// translate form\r\n\t\t\t\t\t$this.translate(form, $component);\r\n\r\n\t\t\t\t\t// sort select options\r\n\t\t\t\t\t$this.sortSelectOptions(form);\r\n\r\n\t\t\t\t\t// prefill form based on cookie\r\n\t\t\t\t\t$this.prefillForm(form, $component);\r\n\r\n\t\t\t\t\t// message photo\r\n\t\t\t\t\t$this.initContactImage($component);\r\n\r\n\t\t\t\t\t// checkbox order\r\n\t\t\t\t\t$this.initCheckboxOrder($component);\r\n\r\n\t\t\t\t\t// hide fields\r\n\t\t\t\t\t$this.hideFields($component);\r\n\r\n\t\t\t\t\t// to avoid duplicated id in page, update field id to a random id\r\n\t\t\t\t\t// currently we just update the checkbox id\r\n\t\t\t\t\t$this.updateFieldAttributes(form, $component);\r\n\r\n\t\t\t\t\t// init product search field\r\n\t\t\t\t\t$this.productAutoSuggest($component);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tMktoForms2.whenRendered(function (form: any) {\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}, 250);\r\n\t}\r\n\r\n\t// translate field label by field name\r\n\ttranslate(form: any, $component: JQuery) {\r\n\t\tlet MktoForms2 = (window as any)[\"MktoForms2\"];\r\n\t\tvar formEl = form.getFormElem()[0];\r\n\t\tvar ANCESTORS_STOR = '.mktoFormRow, .mktoFormCol',\r\n\t\t\tINPUTS_STOR = 'INPUT, SELECT, TEXTAREA, BUTTON',\r\n\t\t\tattrTag = 'data-wrapper-for',\r\n\t\t\t_forEach = Array.prototype.forEach;\r\n\r\n\t\t// utility fn: tag outer wrapper DIVs with their inner inputs' names to make them seekable\r\n\t\t(function tagMktoWrappers(formEl) {\r\n\t\t\t_forEach.call(formEl.querySelectorAll(ANCESTORS_STOR), function (ancestor: any) {\r\n\t\t\t\tancestor.setAttribute(attrTag, '');\r\n\t\t\t\t_forEach.call(ancestor.querySelectorAll(INPUTS_STOR), function (input: any) {\r\n\t\t\t\t\tvar currentTag = ancestor.getAttribute(attrTag);\r\n\t\t\t\t\tancestor.setAttribute(attrTag, [currentTag ? currentTag : '', input.name].join(' ').trim());\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t})(formEl);\r\n\r\n\t\tlet translateMapEl = $component.find(`[data-map-id=\"translateMap\"]`);// get translations embedded in form rich text area\r\n\r\n\t\tlet jsonStr = translateMapEl.text();\r\n\r\n\t\tif (jsonStr.length > 0) {\r\n\t\t\tlet translateMap = JSON.parse(jsonStr);\r\n\t\t\tlet currentTranslations = translateMap;\r\n\r\n\t\t\t// loop over translatables\r\n\t\t\tvar fieldName, fieldTranslations, propertyName, propertyValue: any, translateTargetEl: any;\r\n\t\t\tfor (fieldName in currentTranslations) {\r\n\t\t\t\tfieldTranslations = currentTranslations[fieldName];\r\n\t\t\t\tfor (propertyName in fieldTranslations) {\r\n\t\t\t\t\tpropertyValue = fieldTranslations[propertyName];\r\n\t\t\t\t\tswitch (propertyName) {\r\n\t\t\t\t\t\tcase \"label\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = formEl.querySelector('[data-wrapper-for=\"' + fieldName + '\"] LABEL');\r\n\t\t\t\t\t\t\tif (translateTargetEl != null) {\r\n\t\t\t\t\t\t\t\ttranslateTargetEl.lastChild.nodeValue = propertyValue\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"validation\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = MktoForms2.$(formEl.querySelector('[data-wrapper-for=\"' + fieldName + '\"] .mktoFieldDescriptor'));\r\n\t\t\t\t\t\t\tif (translateTargetEl != null) {\r\n\t\t\t\t\t\t\t\tlet mktoFieldDescriptor = translateTargetEl.data('mktoFieldDescriptor');\r\n\t\t\t\t\t\t\t\tif (mktoFieldDescriptor != undefined) {\r\n\t\t\t\t\t\t\t\t\tmktoFieldDescriptor.validationMessage = propertyValue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"placeholder\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = formEl.querySelector('[data-wrapper-for=\"' + fieldName + '\"] INPUT');\r\n\t\t\t\t\t\t\tif (translateTargetEl != null) {\r\n\t\t\t\t\t\t\t\ttranslateTargetEl.setAttribute('placeholder', propertyValue);\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"submit\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = formEl.querySelector('BUTTON[type=\"submit\"]');\r\n\t\t\t\t\t\t\tif (translateTargetEl != null) {\r\n\t\t\t\t\t\t\t\ttranslateTargetEl.innerHTML = propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"html\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = formEl.querySelector('[data-wrapper-for=\"' + fieldName + '\"]');\r\n\t\t\t\t\t\t\tif (translateTargetEl != null) {\r\n\t\t\t\t\t\t\t\ttranslateTargetEl.innerHTML = propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"options\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = formEl.querySelectorAll('[data-wrapper-for=\"' + fieldName + '\"] OPTION');\r\n\t\t\t\t\t\t\tfor (var i = 0; i < translateTargetEl.length; i++) {\r\n\t\t\t\t\t\t\t\tconst val = translateTargetEl[i].value\r\n\t\t\t\t\t\t\t\tconst txt = propertyValue[val];\r\n\t\t\t\t\t\t\t\tif (typeof (txt) !== \"undefined\") {\r\n\t\t\t\t\t\t\t\t\ttranslateTargetEl[i].text = txt;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"checkbox\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = formEl.querySelector('[data-wrapper-for=\"' + fieldName + '\"] .mktoCheckboxList');\r\n\t\t\t\t\t\t\tif (translateTargetEl != null) {\r\n\t\t\t\t\t\t\t\tconst labelEle = translateTargetEl.parentElement.querySelector(\"label\");\r\n\t\t\t\t\t\t\t\tlabelEle.innerHTML = propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"fieldset\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = formEl.querySelector('[data-wrapper-for=\"' + fieldName + '\"] fieldset legend');\r\n\t\t\t\t\t\t\tif (translateTargetEl != null) {\r\n\t\t\t\t\t\t\t\ttranslateTargetEl.innerText = propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase \"submitprogress\":\r\n\t\t\t\t\t\t\ttranslateTargetEl = formEl.querySelector('BUTTON[type=\"submit\"]');\r\n\t\t\t\t\t\t\tif (translateTargetEl != null) {\r\n\t\t\t\t\t\t\t\ttranslateTargetEl.setAttribute(\"data-submit-progress-text\", propertyValue);\r\n\t\t\t\t\t\t\t\tform.onSubmit(function (form: any) {\r\n\t\t\t\t\t\t\t\t\tif (form.submittable()) {\r\n\t\t\t\t\t\t\t\t\t\ttranslateTargetEl.innerHTML = translateTargetEl.getAttribute(\"data-submit-progress-text\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsortSelectOptions(form: any) {\r\n\t\tlet formEl = form.getFormElem()[0];\r\n\t\tlet $form = $(formEl);\r\n\t\tconst language = $(\"html\").attr(\"lang\");\r\n\t\tconst $selectEles = $form.find(\"select\");\r\n\r\n\t\t$selectEles.each((i: any, e: any) => {\r\n\t\t\tlet $options = $(e).find(\"option\");\r\n\t\t\tconst $defaultOption = $options.filter(\"option[value='']\");\r\n\r\n\t\t\t// get the \"Other\" option in dropdown list\r\n\t\t\tconst $othersOption = $options.filter((optIndex: number, optEle: any) => {\r\n\t\t\t\tlet optValue = $(optEle).val().toString().toLocaleLowerCase();\r\n\t\t\t\tlet result = (optValue == \"others\" || optValue == \"other\");\r\n\t\t\t\treturn result;\r\n\t\t\t});\r\n\r\n\t\t\tconst $optionEles = $options.toArray().sort(function (a, b) {\r\n\t\t\t\tvar aText = $(a).text() as string;\r\n\t\t\t\tvar bText = $(b).text() as string;\r\n\t\t\t\tvar result = aText.localeCompare(bText, language, { ignorePunctuation: true });\r\n\t\t\t\treturn result;\r\n\t\t\t});\r\n\r\n\t\t\t$(e).empty();\r\n\r\n\t\t\t$(e).append($optionEles);\r\n\r\n\t\t\t// make the \"Select...\" option at the top\r\n\t\t\tif ($defaultOption && $defaultOption.length > 0) {\r\n\t\t\t\t$(e).prepend($defaultOption);\r\n\t\t\t}\r\n\r\n\t\t\t// make the \"Others\" option at the bottom\r\n\t\t\tif ($othersOption && $othersOption.length > 0) {\r\n\t\t\t\t$(e).append($othersOption);\r\n\t\t\t}\r\n\r\n\t\t\tvar id = $(e).attr('id');\r\n\t\t\tif (id !== \"formVersion\" || (id == \"formVersion\" && isKnownMarketoLead() == false)) {\r\n\t\t\t\t// make sure the first option is selected\r\n\t\t\t\t$(e).find(\"option\").first().prop(\"selected\", true);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tformatPhoneNumber(form: any) {\r\n\t\tvar vals = form.vals();\r\n\t\tvar phone = vals.Phone;\r\n\t\tif (typeof (phone) !== \"undefined\") {\r\n\t\t\tvar formattedPhone = phone.replace(/[^0-9]/g, '').replace(/^0*/g, '');\r\n\t\t\tform.vals({ \"Phone\": formattedPhone });\r\n\t\t}\r\n\t}\r\n\r\n\tprefillForm(form: any, $component: JQuery) {\r\n\t\tlet _this = this;\r\n\r\n\t\tlet prefilledFieldsEle = $component.find(\"div[data-map-id='prefillFields']\");\r\n\t\tlet prefilledJsonStr = prefilledFieldsEle.text();\r\n\r\n\t\tif (prefilledJsonStr.length > 0) {\r\n\r\n\t\t\tlet prefillFields = JSON.parse(prefilledJsonStr);\r\n\t\t\tlet formFieldEles = $component.find(\"div.mktoFormRow\");\r\n\r\n\t\t\tfor (var fieldName in prefillFields) {\r\n\t\t\t\tlet fieldValue: any = prefillFields[fieldName];\r\n\r\n\t\t\t\tformFieldEles.each(function (i: any, e: any) {\r\n\t\t\t\t\tlet $fieldEle = $(e);\r\n\t\t\t\t\tlet formFieldId: string = $fieldEle.data(\"wrapper-for\");\r\n\r\n\t\t\t\t\tif (fieldName.toLocaleLowerCase() == formFieldId.toLocaleLowerCase()) {\r\n\r\n\t\t\t\t\t\tif (fieldValue != null) {\r\n\r\n\t\t\t\t\t\t\tlet type = $fieldEle.find(\"input\").attr(\"type\");\r\n\t\t\t\t\t\t\tif (type == \"checkbox\") {\r\n\t\t\t\t\t\t\t\tif (fieldValue == \"true\") {\r\n\t\t\t\t\t\t\t\t\tfieldValue = \"yes\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tlet obj = _this.GenerateObject(formFieldId, fieldValue);\r\n\t\t\t\t\t\t\tform.vals(obj);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tGenerateObject(formFieldId: string, formFieldValue: string): any {\r\n\t\tlet jsonStr = `{\"${formFieldId}\":\"${formFieldValue}\"}`;\r\n\t\tlet obj = JSON.parse(jsonStr);\r\n\t\treturn obj;\r\n\t}\r\n\r\n\tinitCheckboxOrder($component: JQuery) {\r\n\t\tconst $formCheckbox = $component.find('[type=\"checkbox\"]');\r\n\t\tif ($formCheckbox.length > 0) {\r\n\t\t\t$formCheckbox.parents('.mktoFormRow').css('order', '1')\r\n\t\t}\r\n\t}\r\n\r\n\tinitContactImage($component: JQuery) {\r\n\t\tconst $contactImage = $component.find(`.${classes.contactImage}`);\r\n\t\tconst $formMessage = $component.find(\"textarea[name='formMessage']\");\r\n\t\tif ($contactImage.length > 0 && $formMessage.length > 0) {\r\n\t\t\t$component.addClass(classes.stateHasImage);\r\n\t\t}\r\n\t}\r\n\r\n\tinitMessageBox($component: JQuery) {\r\n\t\t$component.find(\"textarea[name='formMessage']\").on('focus', (ev: any) => {\r\n\t\t\t$component.addClass(classes.stateAdditionalFieldsVisible);\r\n\t\t});\r\n\t}\r\n\r\n\tupdateFieldAttributes(form: any, $component: JQuery) {\r\n\r\n\t\tvar $formEl = $(form.getFormElem()[0]);\r\n\t\tvar rando = new Date().getTime() + parseInt((Math.random() * 1000).toString());\r\n\r\n\t\tvar $checkboxes = $formEl.find(\".mktoField\");\r\n\r\n\t\t$checkboxes.each((i: any, e: any) => {\r\n\t\t\tvar $chk = $(e);\r\n\t\t\tvar chkId = $chk.attr(\"id\");\r\n\t\t\tvar newChkId = `${chkId}_${rando}`;\r\n\r\n\t\t\tif (chkId != undefined) {\r\n\t\t\t\tif (!chkId.includes('_')) {\r\n\t\t\t\t\t// update checkbox id\r\n\t\t\t\t\t$chk.attr(\"id\", newChkId);\r\n\r\n\t\t\t\t\t// update label-for attribute\r\n\t\t\t\t\t$chk.parents(\".mktoFieldWrap\").find(`label[for=${chkId}]`).attr(\"for\", newChkId);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar formId = $formEl.attr(\"id\");\r\n\t\tvar newFormId = `${formId}_${rando}`;\r\n\t\tif (formId != undefined) {\r\n\t\t\tif (!formId.includes('_', 9)) {\r\n\t\t\t\t$formEl.attr(\"id\", newFormId);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thideFields($component: JQuery) {\r\n\t\tlet hiddenFieldsStr = $component.find(\"div[data-map-id='hiddenFields']\").text();\r\n\t\tlet hiddenFieldsArr = hiddenFieldsStr.split(',');\r\n\t\tlet campaignId = $component.data(\"mktoflow-campaignid\");\r\n\t\tlet formcampaignId = $component.data(\"mktoflow-formcampaignid\");\r\n\t\tlet siteCampaignId = $component.data(\"mktoflow-sitecampaignid\");\r\n\t\tlet $formContainer: JQuery = $component.find(\"div[data-id='formContainer']\");\r\n\r\n\t\tif (campaignId === undefined) {\r\n\t\t\tcampaignId = $formContainer.data(\"mktoflow-campaignid\");\r\n\t\t}\r\n\t\tif (formcampaignId === undefined) {\r\n\t\t\tformcampaignId = $formContainer.data(\"mktoflow-formcampaignid\");\r\n\t\t}\r\n\t\tif (siteCampaignId === undefined) {\r\n\t\t\tsiteCampaignId = $formContainer.data(\"mktoflow-sitecampaignid\");\r\n\t\t}\r\n\r\n\t\tlet formFieldEles = $component.find(\"div.mktoFormRow\");\r\n\t\tfor (var field in hiddenFieldsArr) {\r\n\r\n\t\t\tlet fieldName = hiddenFieldsArr[field];\r\n\r\n\t\t\tformFieldEles.each(function (i: any, e: any) {\r\n\t\t\t\tlet $fieldEle = $(e);\r\n\t\t\t\tlet formFieldId: string = $fieldEle.data(\"wrapper-for\");\r\n\r\n\t\t\t\tif (fieldName.toLocaleLowerCase() == formFieldId.toLocaleLowerCase()) {\r\n\t\t\t\t\t$fieldEle.addClass(classes.rowHide);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tformFieldEles.each(function (i: any, e: any) {\r\n\t\t\tlet $fieldEle = $(e);\r\n\t\t\tlet formFieldId: string = $fieldEle.data(\"wrapper-for\");\r\n\r\n\t\t\tif ($fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('type') == 'hidden') {\r\n\t\t\t\t$fieldEle.addClass(classes.rowHide);\r\n\t\t\t}\r\n\r\n\t\t\tif (formFieldId == \"\") {\r\n\t\t\t\t$fieldEle.addClass(classes.rowHide);\r\n\t\t\t}\r\n\r\n\t\t\tif ($fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('type') == 'hidden'\r\n\t\t\t\t&& $fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('name') == 'tempPreferenceIndustry') {\r\n\t\t\t\t$fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").val($(\"#frmPageIndustrytags\").val());\r\n\t\t\t}\r\n\r\n\t\t\tif ($fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('type') == 'hidden'\r\n\t\t\t\t&& $fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('name') == 'tempPreferenceMaterial') {\r\n\t\t\t\t$fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").val($(\"#frmPageMaterialtags\").val());\r\n\t\t\t}\r\n\r\n\t\t\tif ($fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('type') == 'hidden'\r\n\t\t\t\t&& $fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('name') == 'tempPreferenceTheme') {\r\n\t\t\t\t$fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").val($(\"#frmPagePreferenceTheme\").val());\r\n\t\t\t}\r\n\r\n\t\t\tvar urlParams = new URLSearchParams(window.location.search);\r\n\t\t\tvar utmId = \"\";\r\n\t\t\tif (urlParams.has('utm_id')) {\r\n\t\t\t\tutmId = urlParams.get('utm_id');\r\n\t\t\t}\r\n\t\t\tif ((typeof utmId === \"string\" && utmId.length === 0)) {\r\n\t\t\t\tif (typeof campaignId === 'undefined') {\r\n\t\t\t\t\tif (typeof formcampaignId === 'undefined') {\r\n\t\t\t\t\t\tif ($fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('type') == 'hidden' \r\n\t\t\t\t\t\t&& $fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('name') == 'mktoCampaignID') {\r\n\t\t\t\t\t\t\t$fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").val(siteCampaignId);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif ($fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('type') == 'hidden' \r\n\t\t\t\t\t\t&& $fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('name') == 'mktoCampaignID') {\r\n\t\t\t\t\t\t\t$fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").val(formcampaignId);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif ($fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('type') == 'hidden' \r\n\t\t\t\t\t&& $fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('name') == 'mktoCampaignID') {\r\n\t\t\t\t\t\t$fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").val(campaignId);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif ($fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('type') == 'hidden' \r\n\t\t\t\t&& $fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").attr('name') == 'mktoCampaignID') {\r\n\t\t\t\t\t$fieldEle.find(\"input[name=\\\"\" + formFieldId + \"\\\"]\").val(utmId);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tproductAutoSuggest($component: JQuery) {\r\n\r\n\t\tlet _this = this;\r\n\r\n\t\tlet autosuggestObjJsonStr = $component.find(\"div[data-map-id='autosuggestObj']\").text();\r\n\r\n\t\tif (autosuggestObjJsonStr.length > 0) {\r\n\r\n\t\t\tlet autoObj: IProductAutosuggest = JSON.parse(autosuggestObjJsonStr);\r\n\r\n\t\t\tif (autoObj.FieldName && autoObj.FieldName.length > 0) {\r\n\r\n\t\t\t\tlet $autoEle = $component.find(`.${classes.autoSuggestDropdown}`);\r\n\r\n\t\t\t\t// disable browser's autocomplete feature\r\n\t\t\t\t$component.find(`input[name='${autoObj.FieldName}']`).on(\"focus\", function (ev: any) {\r\n\t\t\t\t\t$(ev.currentTarget).attr(\"autocomplete\", \"off\");\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$component.find(`input[name='${autoObj.FieldName}']`).on(\"input propertychange\", function (ev: any) {\r\n\r\n\t\t\t\t\tlet $target: any = $(ev.currentTarget);\r\n\t\t\t\t\t$target.attr(\"data-t-uvpno\", \"\");\r\n\t\t\t\t\t$target.addClass(\"js-m-mkto-form-productname\", \"\");\r\n\t\t\t\t\tlet val = $target.val();\r\n\r\n\t\t\t\t\tif (val.length >= 2) {\r\n\r\n\t\t\t\t\t\t$.ajax({\r\n\t\t\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\t\t\turl: autoObj.Endpoint,\r\n\t\t\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\t\t\tdata:\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tterm: val,\r\n\t\t\t\t\t\t\t\tpermissionQuery: autoObj.PermissionQuery,\r\n\t\t\t\t\t\t\t\tmax: autoObj.MaxItem,\r\n\t\t\t\t\t\t\t\tlang: autoObj.Language\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tsuccess: (response: any) => {\r\n\r\n\t\t\t\t\t\t\t\tif (response) {\r\n\r\n\t\t\t\t\t\t\t\t\t// clear dropdown\r\n\t\t\t\t\t\t\t\t\t$autoEle.empty();\r\n\r\n\t\t\t\t\t\t\t\t\t// render brand dropdown items\r\n\t\t\t\t\t\t\t\t\t//_this.renderDropdown($autoEle, response.suggestions, autoObj.BrandLabel);\r\n\r\n\t\t\t\t\t\t\t\t\t// render product dropdown items\r\n\t\t\t\t\t\t\t\t\t_this.renderDropdown($autoEle, response.productSuggestions, autoObj.ProductLabel);\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t// rebind dropdown items event\r\n\t\t\t\t\t\t\t\t\tif ($autoEle.children().length > 0) {\r\n\t\t\t\t\t\t\t\t\t\t_this.rebindDropdownEvents($component, autoObj.FieldName);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// render no result found label\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tlet labelContent = _this.generateDropdownLabelContent(val, autoObj.NoResultLabel);\r\n\t\t\t\t\t\t\t\t\t\t$autoEle.append(labelContent);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t_this.showDropdown($autoEle, $target);\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tcomplete: () => {\r\n\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\t\t\t\tconsole.log(`marketo form, get product auto-suggest data error, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$autoEle.removeAttr('style');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t_this.resizeDropdown($component, autoObj.FieldName);\r\n\r\n\t\t\t\t_this.autoHideDropdown($component, autoObj.FieldName);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tgenerateDropdownItemContent(text: string, uvptext: string) {\r\n\t\tlet htmlContent = `
  • ${text}
  • `;\r\n\t\treturn htmlContent;\r\n\r\n\t}\r\n\r\n\tgenerateDropdownLabelContent(text: string, NoResultLabel: string = \"\") {\r\n\t\tif (text == \"Product\") {\r\n\t\t\tlet htmlContent = `
  • ${text}
  • `;\r\n\t\t\treturn htmlContent;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet htmlContent = `
  • ${NoResultLabel} ${text}
  • `;\r\n\t\t\treturn htmlContent;\r\n\t\t}\r\n\r\n\r\n\t}\r\n\r\n\r\n\tresizeDropdown($component: JQuery, fieldName: string) {\r\n\t\t$(window).on('resize', () => {\r\n\t\t\tconst $target: any = $component.find(`input[name='${fieldName}']`);\r\n\t\t\tif ($target.length > 0) {\r\n\t\t\t\tconst currentTop = $target.closest('.mktoFormRow').position().top + $target.outerHeight();\r\n\t\t\t\tconst currentLeft = $target.closest('.mktoFormRow').position().left;\r\n\t\t\t\tconst currentWidth = $target.outerWidth();\r\n\r\n\t\t\t\t$component.find(`.${classes.autoSuggestDropdown}`).css({\r\n\t\t\t\t\t\"top\": `${currentTop}px`,\r\n\t\t\t\t\t\"left\": `${currentLeft}px`,\r\n\t\t\t\t\t\"width\": `${currentWidth}px`\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\trenderDropdown($autoEle: JQuery, data: any, label: string) {\r\n\r\n\t\tif (data && data.length > 0) {\r\n\r\n\t\t\tlet labelContent = this.generateDropdownLabelContent(label);\r\n\t\t\t$autoEle.append(labelContent);\r\n\r\n\t\t\tdata.forEach((d: any) => {\r\n\r\n\t\t\t\tlet htmlContent = this.generateDropdownItemContent(d.value, d.uvp);\r\n\t\t\t\t$autoEle.append(htmlContent);\r\n\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t}\r\n\r\n\trebindDropdownEvents($component: JQuery, fieldName: string) {\r\n\t\tlet _this = this;\r\n\t\t$component.find(`.${classes.dropdownItem}`).on(\"click\", function (e: any) {\r\n\t\t\tlet $target = $(e.target);\r\n\t\t\tlet value = $target.text();\r\n\t\t\tlet uvpno = $target.attr(\"data-t-uvp\");\r\n\t\t\t$component.find(`input[name='${fieldName}']`).val(value);\r\n\t\t\t$component.find(`input[name='${fieldName}']`).attr(\"data-t-uvpno\", uvpno);\r\n\t\t\t_this.setProductInfo($component, value);\r\n\t\t});\r\n\t}\r\n\r\n\tsetProductInfo($component: JQuery, value: string) {\r\n\t\tlet autosuggestObjJsonStr = $component.find(\"div[data-map-id='autosuggestObj']\").text();\r\n\t\tif (autosuggestObjJsonStr.length > 0) {\r\n\r\n\t\t\tlet autoObj: IProductAutosuggest = JSON.parse(autosuggestObjJsonStr);\r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: 'GET',\r\n\t\t\t\turl: autoObj.Endpoint,\r\n\t\t\t\tdataType: 'json',\r\n\t\t\t\tdata:\r\n\t\t\t\t{\r\n\t\t\t\t\tterm: value,\r\n\t\t\t\t\tpermissionQuery: autoObj.PermissionQuery,\r\n\t\t\t\t\tmax: autoObj.MaxItem,\r\n\t\t\t\t\tlang: autoObj.Language,\r\n\t\t\t\t\textended: 'true'\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: (response: any) => {\r\n\r\n\t\t\t\t\tif (response) {\r\n\t\t\t\t\t\tif (response.productSuggestions && response.productSuggestions.length > 0) {\r\n\t\t\t\t\t\t\tvar uvpFieldName = \"productUVP\";\r\n\t\t\t\t\t\t\t//set hidden productUVP value\r\n\t\t\t\t\t\t\tif ($component.attr(\"data-UvPFieldName\").length > 0) {\r\n\t\t\t\t\t\t\t\tuvpFieldName = $component.attr(\"data-UvPFieldName\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($component.find(`input[name='${uvpFieldName}']`).length > 0) {\r\n\t\t\t\t\t\t\t\tif (response.productSuggestions[0].uvp) {\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${uvpFieldName}']`).val(response.productSuggestions[0].uvp);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${uvpFieldName}']`).val(\"\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//set hidden inferredProductBrandInterest value\r\n\t\t\t\t\t\t\tvar brandFieldName = \"inferredProductBrandInterest\";\r\n\t\t\t\t\t\t\tif ($component.attr(\"data-BrandFieldName\").length > 0) {\r\n\t\t\t\t\t\t\t\tbrandFieldName = $component.attr(\"data-BrandFieldName\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($component.find(`input[name='${brandFieldName}']`).length > 0) {\r\n\t\t\t\t\t\t\t\tif (response.productSuggestions[0].brand) {\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${brandFieldName}']`).val(response.productSuggestions[0].brand);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${brandFieldName}']`).val(\"\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//set hidden inferredMaterialInterest value\r\n\t\t\t\t\t\t\tvar materialFieldName = \"inferredMaterialInterest\";\r\n\t\t\t\t\t\t\tif ($component.attr(\"data-MaterialFieldName\").length > 0) {\r\n\t\t\t\t\t\t\t\tmaterialFieldName = $component.attr(\"data-MaterialFieldName\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($component.find(`input[name='${materialFieldName}']`).length > 0) {\r\n\t\t\t\t\t\t\t\tif (response.productSuggestions[0].materials && response.productSuggestions[0].materials.length > 0) {\r\n\t\t\t\t\t\t\t\t\tvar value = \"\";\r\n\t\t\t\t\t\t\t\t\tif (response.productSuggestions[0].materials.length == 1) {\r\n\t\t\t\t\t\t\t\t\t\tvalue = response.productSuggestions[0].materials[0];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tresponse.productSuggestions[0].materials.forEach((d: any) => {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvalue = value + d + \"; \";\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${materialFieldName}']`).val(value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${materialFieldName}']`).val(\"\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//set hidden inferredApplicationInterest value\r\n\t\t\t\t\t\t\tvar applicationFieldName = \"inferredApplicationInterest\";\r\n\t\t\t\t\t\t\tif ($component.attr(\"data-ApplicationFieldName\").length > 0) {\r\n\t\t\t\t\t\t\t\tapplicationFieldName = $component.attr(\"data-ApplicationFieldName\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ($component.find(`input[name='${applicationFieldName}']`).length > 0) {\r\n\t\t\t\t\t\t\t\tif (response.productSuggestions[0].applications && response.productSuggestions[0].applications.length > 0) {\r\n\t\t\t\t\t\t\t\t\tvar value = \"\";\r\n\t\t\t\t\t\t\t\t\tif (response.productSuggestions[0].applications.length == 1) {\r\n\t\t\t\t\t\t\t\t\t\tvalue = response.productSuggestions[0].applications[0]\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tresponse.productSuggestions[0].applications.forEach((d: any) => {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvalue = value + d + \"; \";\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${applicationFieldName}']`).val(value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${applicationFieldName}']`).val(\"\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//set hidden inferredIndustryInterest value\r\n\t\t\t\t\t\t\tvar industryFieldName = \"inferredIndustryInterest\";\r\n\t\t\t\t\t\t\tif ($component.attr(\"data-IndustryFieldName\").length > 0) {\r\n\t\t\t\t\t\t\t\tindustryFieldName = $component.attr(\"data-IndustryFieldName\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ($component.find(`input[name='${industryFieldName}']`).length > 0) {\r\n\t\t\t\t\t\t\t\tif (response.productSuggestions[0].industries && response.productSuggestions[0].industries.length > 0) {\r\n\t\t\t\t\t\t\t\t\tvar value = \"\";\r\n\t\t\t\t\t\t\t\t\tif (response.productSuggestions[0].industries.length == 1) {\r\n\t\t\t\t\t\t\t\t\t\tvalue = response.productSuggestions[0].industries[0];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tresponse.productSuggestions[0].industries.forEach((d: any) => {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvalue = value + d + \"; \";\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${industryFieldName}']`).val(value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${industryFieldName}']`).val(\"\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//set hidden inferredBUInterest value\r\n\t\t\t\t\t\t\tvar businessUnitFieldName = \"inferredBUInterest\";\r\n\t\t\t\t\t\t\tif ($component.attr(\"data-BusinessUnitFieldName\").length > 0) {\r\n\t\t\t\t\t\t\t\tbusinessUnitFieldName = $component.attr(\"data-BusinessUnitFieldName\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ($component.find(`input[name='${businessUnitFieldName}']`).length > 0) {\r\n\t\t\t\t\t\t\t\tif (response.productSuggestions[0].businessUnits && response.productSuggestions[0].businessUnits.length > 0) {\r\n\t\t\t\t\t\t\t\t\tvar value = \"\";\r\n\t\t\t\t\t\t\t\t\tif (response.productSuggestions[0].businessUnits.length = 1) {\r\n\t\t\t\t\t\t\t\t\t\tvalue = response.productSuggestions[0].businessUnits[0]\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tresponse.productSuggestions[0].businessUnits.forEach((d: any) => {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvalue = value + d + \"; \";\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${businessUnitFieldName}']`).val(value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t$component.find(`input[name='${businessUnitFieldName}']`).val(\"\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcomplete: () => {\r\n\r\n\t\t\t\t},\r\n\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\tconsole.log(`marketo form, get product auto-suggest data error, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tshowDropdown($autoEle: JQuery, $fieldEle: JQuery) {\r\n\r\n\t\tconst currentTop = $fieldEle.closest('.mktoFormRow').position().top + $fieldEle.outerHeight();\r\n\t\tconst currentLeft = $fieldEle.closest('.mktoFormRow').position().left;\r\n\t\tconst currentWidth = $fieldEle.outerWidth();\r\n\r\n\t\t$autoEle.css({\r\n\t\t\t\"top\": `${currentTop}px`,\r\n\t\t\t\"left\": `${currentLeft}px`,\r\n\t\t\t\"width\": `${currentWidth}px`\r\n\t\t});\r\n\t\t$autoEle.show();\r\n\t}\r\n\r\n\tautoHideDropdown($component: JQuery, fieldName: string) {\r\n\r\n\t\t$component.find(`input[name='${fieldName}']`).on(\"click\", function (ev: any) {\r\n\t\t\tev.stopPropagation();\r\n\t\t});\r\n\r\n\t\t$('body').on('click', () => {\r\n\t\t\t$component.find(`.${classes.autoSuggestDropdown}`).removeAttr('style');\r\n\t\t\tlet uvpno = $component.find('.js-m-mkto-form-productname').attr(\"data-t-uvpno\")\r\n\t\t\tif (uvpno === undefined || uvpno === \"\") {\r\n\t\t\t\t$component.find('.js-m-mkto-form-productname').val('');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nexport const classes = {\r\n\tfilter: 'm-event-list__filter',\r\n\tfilterLabel: 'js-event-list__filter-label',\r\n\tfilterOpen: 'm-event-list__filter--open',\r\n\tfilterClose: 'js-event-list__filter--close',\r\n\tfilterTags: 'm-event-list__filter-tags',\r\n\tfilterTag: 'm-event-list__filter-tag',\r\n\tfilterTagContainer: 'm-event-list__filter-tags-container',\r\n\tcounterLabel: 'm-event-list__counter-label',\r\n\tcounterHeading: 'js-event-list_counter-heading',\r\n\tfilterSelect: 'm-event-list__select',\r\n\tclearFilterBtn: 'm-event-list__clear-filter',\r\n\tloadMoreBtn: 'js-load-more-button',\r\n\tteaserContainer: 'm-event-list__teaser-list',\r\n\tstateHidden: 'h-visuallyhidden',\r\n\tteaserBlock:'m-teaser-event',\r\n\tteaserColorBlock:'m-teaser-event__text-area',\r\n\r\n\ttwoLevelmainItemLink: 'js-m-filter-two-level-multiselect__item-link--main',\r\n\r\n\ttwoLevelSelector: 'm-filter-two-level-multiselect',\r\n\ttwoLevelList: 'm-filter-two-level-multiselect__list-level1',\r\n\ttwoLevelListOpen: 'm-filter-two-level-multiselect__list-level1--open',\r\n\r\n\ttwoLevelMainChecked: 'm-filter-two-level-multiselect__item-link--main-checked',\r\n\r\n\ttwoLevelParent: 'js-m-filter-two-level-multiselect__item--level2',\r\n\ttwoLevelParentHeader: 'js-m-filter-two-level-multiselect__layer-header-level3',\r\n\ttwoLevelParentLink: 'js-m-filter-two-level-multiselect__item-link',\r\n\ttwoLevelParentChecked: 'm-filter-two-level-multiselect__item-link--parent-checked',\r\n\ttwoLevelParentDisabled: 'm-filter-two-level-multiselect__item-link--parent-disabled',\r\n\r\n\t// ul\r\n\ttwoLevelChildList: 'js-m-filter-two-level-multiselect__list-level3',\r\n\t// li\r\n\ttwoLevelChild: 'js-m-filter-two-level-multiselect__item--level3',\r\n\ttwoLevelChildDisabled: 'm-filter-two-level-multiselect__item--child-disabled',\r\n\ttwoLevelChildInputDisabled: 'a-input-checkbox--disabled',\r\n\r\n\ttwoLevelMainClose: 'm-filter-two-level-multiselect__item-link--main-mobile-close-icon',\r\n\r\n\toneLevelSelector: 'm-filter-multiselect',\r\n\toneLevelItemContainer: 'm-filter-multiselect__list-level2',\r\n\toneLevelList: 'm-filter-multiselect__item--level1',\r\n\toneLevelListOpen: 'm-filter-multiselect__item--level1-open',\r\n\toneLevelMain: 'js-m-filter-multiselect__item-link--main',\r\n\toneLevelMainChecked: 'm-filter-multiselect__item-link--main-checked',\r\n\toneLevelDisabled: 'a-input-checkbox--disabled',\r\n\toneLevel: 'js-m-filter-multiselect__item--level2',\r\n\toneLevelClose: 's-filter-multiselect__item-link--main-close-icon'\r\n}\r\n\r\nconst placeholders = {\r\n\tdisplayNumber: \"{displaynumber}\",\r\n\ttotalNumber: \"{totalnumber}\"\r\n}\r\n\r\nconst names = {\r\n\tdateSelector: 'EventList-Date',\r\n\tregionSelector: 'EventList-Region',\r\n\tmaterialSelector: 'EventList-Material',\r\n\tindustrySelector: 'EventList-Industry'\r\n}\r\n\r\nconst parameterSet = {\r\n\tmaterial: 'material',\r\n\tindustry: 'industry',\r\n\tdate: 'date',\r\n\tregion: 'region'\r\n}\r\n\r\n@createModule('EventList')\r\n/**\r\n * event-list module implementation.\r\n *\r\n * @author Sandy Zhao \r\n */\r\nexport class EventList extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.$ctx.find(`.${classes.filterLabel}`).on('click', this.onOpenFilter.bind(this));\r\n\r\n\t\tthis.$ctx.find(`.${classes.filterClose}, .${classes.twoLevelMainClose},.${classes.oneLevelClose}`)\r\n\t\t\t.on('click', this.onCloseFilter.bind(this));\r\n\r\n\t\tthis.$ctx.on('FilterTwoLevelMultiCheckboxChanged',\r\n\t\t\t(event: any, clickEvent: Event) => {\r\n\t\t\t\tthis.dataChanged(clickEvent);\r\n\t\t\t});\r\n\r\n\t\tthis.$ctx.on('FilterMultiCheckboxChanged',\r\n\t\t\t(event: any, clickEvent: Event) => {\r\n\t\t\t\tthis.dataChanged(clickEvent);\r\n\t\t\t});\r\n\r\n\t\tthis.$ctx.find(\"input[type='checkbox']\").on(\"click\", () => false);\r\n\r\n\t\t$(document).on(\"click\", `.${classes.filterTag}`, this.removeSelectedTag.bind(this));\r\n\r\n\t\tthis.$ctx.find(`.${classes.clearFilterBtn}`).on(\"click\", this.clearAllFilters.bind(this));\r\n\r\n\t\tthis.$ctx.find(`.${classes.loadMoreBtn}`).on(\"click\", this.loadMore.bind(this));\r\n\r\n\t\tthis.initTeaserData();\r\n\r\n\t\t$(window).resize(function () {\r\n\t\t\tconst $teaserTextAreas = $(`.${classes.teaserColorBlock}`);\r\n\r\n\t\t\t$teaserTextAreas.each((i, e) => {\r\n\t\t\t\tconst $textArea = $(e);\r\n\t\t\t\tconst height = $textArea.height();\r\n\t\t\t\t$textArea.closest(`.${classes.teaserBlock}`).css(\"min-height\", height + 88);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitTeaserData() {\r\n\r\n\t\t//get url query string ids, for pre-check\r\n\t\tconst dateParaValue = this.getIdParameterValueFromUrl(parameterSet.date);\r\n\r\n\t\tconst regionIdParaValue = this.getIdParameterValueFromUrl(parameterSet.region);\r\n\r\n\t\tconst materialIdParaValue = this.getIdParameterValueFromUrl(parameterSet.material);\r\n\r\n\t\tconst industryIdParaValue = this.getIdParameterValueFromUrl(parameterSet.industry);\r\n\r\n\t\tthis.getTeaserData(1, dateParaValue, regionIdParaValue, materialIdParaValue, industryIdParaValue);\r\n\t}\r\n\r\n\tdataChanged(event: Event) {\r\n\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\r\n\t\tthis.$ctx.find(`.${classes.teaserContainer}`).empty();\r\n\r\n\t\tconst materialQuery = this.getIdParameterValue(names.materialSelector);\r\n\t\tconst industryQuery = this.getIdParameterValue(names.industrySelector);\r\n\t\tconst dateQuery = this.getIdParameterValue(names.dateSelector);\r\n\t\tconst regionQuery = this.getIdParameterValue(names.regionSelector);\r\n\r\n\t\tthis.getTeaserData(1, dateQuery, regionQuery, materialQuery, industryQuery);\r\n\r\n\t}\r\n\r\n\tgetTeaserData(pageNumber: number,\r\n\t\tdateQuery?: string,\r\n\t\tregionQuery?: string,\r\n\t\tmaterialQuery?: string,\r\n\t\tindustryQuery?: string) {\r\n\r\n\t\tthis.lockFilters();\r\n\t\tthis.lockLoadMoreButton();\r\n\t\tconst searchRootId = this.$ctx.data(\"search-root\");\r\n\t\tconst initNum = this.$ctx.data(\"init-number\");\r\n\t\tconst apiEndpoint = this.$ctx.data(\"api-endpoint\");\r\n\t\tconst pageSize = this.$ctx.data(\"page-size\");\r\n\t\tconst configuration = this.$ctx.data(\"configuration\");\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\turl: apiEndpoint,\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tdateQuery: dateQuery,\r\n\t\t\t\tregionQuery: regionQuery,\r\n\t\t\t\tmaterialQuery: materialQuery,\r\n\t\t\t\tindustryQuery: industryQuery,\r\n\t\t\t\tsearchRootId: searchRootId,\r\n\t\t\t\tpageSize: pageSize,\r\n\t\t\t\tpageNumber: pageNumber,\r\n\t\t\t\tinitNumber: initNum,\r\n\t\t\t\tConfiguration: configuration\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tconsole.log(\"success\");\r\n\t\t\t\t// ⚠\r\n\t\t\t\t// Add the response HTML to the bottom of the container - for now.\r\n\t\t\t\t// Additional logic will need to be added to decide whether it needs to be\r\n\t\t\t\t// added (in case of 'load more') or completely replaced instead.\r\n\t\t\t\t// ⚠\r\n\t\t\t\tlet container = this.$ctx.find(`.${classes.teaserContainer}`);\r\n\t\t\t\tcontainer.append(response);\r\n\t\t\t\t// Look for a script tag containing extra data.\r\n\t\t\t\tlet data = container.find(\"script[type='application/json']\");\r\n\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\tlet json = data[0].innerHTML;\r\n\t\t\t\t\tlet jsonData = JSON.parse(json);\r\n\r\n\t\t\t\t\tif (jsonData.totalNumber > 0) {\r\n\t\t\t\t\t\tthis.updateCounterLabel(jsonData.displayNumber, jsonData.totalNumber);\r\n\t\t\t\t\t\tthis.updateCounterHeading(jsonData.totalNumber);\r\n\t\t\t\t\t\tthis.updateLoadMoreButton(jsonData.enableLoadMore);\r\n\t\t\t\t\t\tthis.updatePageNumber(jsonData.pageNumber + 1);\r\n\t\t\t\t\t\tthis.updateFacet(jsonData.enabledFilterItems);\r\n\t\t\t\t\t\tthis.updateTeaserHeight();\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.updateNoResult();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Remove the script tag.\r\n\t\t\t\t\tdata.remove();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.updateNoResult();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tthis.unlockFilters();\r\n\t\t\t\tthis.generateSelectedTags();\r\n\t\t\t\tthis.updateUrl();\r\n\t\t\t},\r\n\t\t\terror: () => {\r\n\t\t\t\tconsole.log(\"get teaser data error\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tupdateTeaserHeight() {\r\n\t\tconst $teaserTextAreas = this.$ctx.find(`.${classes.teaserColorBlock}`);\r\n\r\n\t\t$teaserTextAreas.each((i, e) => {\r\n\t\t\tconst $textArea = $(e);\r\n\t\t\tconst height = $textArea.height();\r\n\t\t\t$textArea.closest(`.${classes.teaserBlock}`).css(\"min-height\", height + 88);\r\n\t\t});\r\n\t}\r\n\r\n\tupdateUrl() {\r\n\t\tlet parameterList = new Array();\r\n\r\n\t\tconst dateParameter = this.getUniqueNameParameter(names.dateSelector, parameterSet.date);\r\n\t\tif (dateParameter.length > 0) {\r\n\t\t\tparameterList.push(dateParameter);\r\n\t\t}\r\n\r\n\t\tconst regionParameter = this.getUniqueNameParameter(names.regionSelector, parameterSet.region);\r\n\t\tif (regionParameter.length > 0) {\r\n\t\t\tparameterList.push(regionParameter);\r\n\t\t}\r\n\r\n\t\tconst materialParameter = this.getUniqueNameParameter(names.materialSelector, parameterSet.material);\r\n\t\tif (materialParameter.length > 0) {\r\n\t\t\tparameterList.push(materialParameter);\r\n\t\t}\r\n\r\n\t\tconst industryParameter = this.getUniqueNameParameter(names.industrySelector, parameterSet.industry);\r\n\t\tif (industryParameter.length > 0) {\r\n\t\t\tparameterList.push(industryParameter);\r\n\t\t}\r\n\r\n\t\tconst searchQuery = this.generateUniqueNameQueryString(parameterList);\r\n\r\n\t\tif (searchQuery.length > 0) {\r\n\t\t\thistory.pushState(null, null, searchQuery);\r\n\t\t} else {\r\n\t\t\thistory.pushState(null, null, \"?\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tgenerateSelectedTags() {\r\n\r\n\t\tconst $tagContainer = this.$ctx.find(`.${classes.filterTagContainer}`);\r\n\t\t$tagContainer.empty();\r\n\r\n\t\t//Two-Level Selector: if all child-item are ticked, show the parent-item tag\r\n\t\tconst $twoLevelParents = this.$ctx.find(`.${classes.twoLevelSelector}`).find(`.${classes.twoLevelParent}`);\r\n\r\n\t\t$twoLevelParents.each((i, e) => {\r\n\t\t\tconst selectorName = $(e).closest(`.${classes.filterSelect}`).attr(\"name\");\r\n\t\t\tlet $checkboxes = $(e).find(`.${classes.twoLevelChild}`).find(\"input[type='checkbox']\");\r\n\r\n\t\t\tif ($checkboxes.length > 0 && this.areAllSubFiltersChecked($checkboxes)) {\r\n\t\t\t\tlet $parentSelectedOption =\r\n\t\t\t\t\t$(e).find(`.${classes.twoLevelParentHeader}`).find(\"input[type='checkbox']\");\r\n\t\t\t\tconst tagHtml = this.getSelectedTagHtml($parentSelectedOption);\r\n\t\t\t\t$tagContainer.append(tagHtml);\r\n\t\t\t} else {\r\n\t\t\t\tlet $checkedboxes = $(e).find(`.${classes.twoLevelChild}`).find(\"input[type='checkbox']:checked\");\r\n\t\t\t\tif ($checkedboxes.length > 0) {\r\n\t\t\t\t\t$checkedboxes.each((childIndex, childEle) => {\r\n\t\t\t\t\t\tlet tagHtml: string;\r\n\t\t\t\t\t\t//if the selector is date-selector, add the \"year\" \r\n\t\t\t\t\t\tif (selectorName === names.dateSelector) {\r\n\t\t\t\t\t\t\ttagHtml = this.getSelectedDateMonthTagHtml($(childEle));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttagHtml = this.getSelectedTagHtml($(childEle));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$tagContainer.append(tagHtml);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\r\n\t\t//One-Level Selector\r\n\t\tconst $oneLevelSelectedOptions = this.$ctx.find(`.${classes.oneLevelSelector}`).find(\"input:checked\");\r\n\r\n\t\t$oneLevelSelectedOptions.each((oneLevelIndex, oneLevelEle) => {\r\n\t\t\tconst tagHtml = this.getSelectedTagHtml($(oneLevelEle));\r\n\t\t\t$tagContainer.append(tagHtml);\r\n\t\t});\r\n\r\n\t\tif ($tagContainer.html().length > 0) {\r\n\t\t\tthis.$ctx.find(`.${classes.filterTags}`).show();\r\n\t\t} else {\r\n\t\t\tthis.$ctx.find(`.${classes.filterTags}`).hide();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tremoveSelectedTag(event: Event) {\r\n\t\tconst $currentTargetElement = $(event.currentTarget);\r\n\r\n\t\tconst id = $currentTargetElement.find(\"span\").attr(\"data-selected-id\");\r\n\r\n\t\tthis.$ctx.find(`input[data-sc-id='${id}']`).parent().parent().triggerHandler(\"click\");\r\n\r\n\t\t$currentTargetElement.remove();\r\n\t}\r\n\r\n\tclearAllFilters() {\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(\"input\").prop('checked', false);\r\n\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${classes.twoLevelMainChecked}`)\r\n\t\t\t.removeClass(`${classes.twoLevelMainChecked}`);\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${classes.twoLevelParentChecked}`)\r\n\t\t\t.removeClass(`${classes.twoLevelParentChecked}`);\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${classes.oneLevelMainChecked}`)\r\n\t\t\t.removeClass(`${classes.oneLevelMainChecked}`);\r\n\r\n\t\tthis.$ctx.find(`.${classes.filterTagContainer}`).empty();\r\n\t\tthis.$ctx.find(`.${classes.filterTags}`).hide();\r\n\t\tthis.$ctx.find(`.${classes.teaserContainer}`).empty();\r\n\r\n\t\tthis.getTeaserData(1);\r\n\t}\r\n\r\n\tloadMore() {\r\n\t\tconst pageNum = this.$ctx.data(\"page-number\");\r\n\r\n\t\tconst materialQuery = this.getIdParameterValue(names.materialSelector);\r\n\t\tconst industryQuery = this.getIdParameterValue(names.industrySelector);\r\n\t\tconst dateQuery = this.getIdParameterValue(names.dateSelector);\r\n\t\tconst regionQuery = this.getIdParameterValue(names.regionSelector);\r\n\r\n\t\tthis.getTeaserData(pageNum, dateQuery, regionQuery, materialQuery, industryQuery);\r\n\t}\r\n\r\n\tlockLoadMoreButton() {\r\n\t\tthis.$ctx.find(`.${classes.loadMoreBtn}`).addClass(`${classes.stateHidden}`);\r\n\t}\r\n\r\n\tunlockLoadMoreButton() {\r\n\t\tthis.$ctx.find(`.${classes.loadMoreBtn}`).removeClass(`${classes.stateHidden}`);\r\n\t}\r\n\r\n\tlockFilters() {\r\n\t\tthis.$ctx.find(`.${classes.oneLevelItemContainer}`).css(\"pointer-events\", \"none\");\r\n\t\tthis.$ctx.find(`.${classes.twoLevelParentHeader}`).css(\"pointer-events\", \"none\");\r\n\t\tthis.$ctx.find(`.${classes.twoLevelChildList}`).css(\"pointer-events\", \"none\");\r\n\t\tthis.$ctx.find(`.${classes.filterTags}`).css(\"pointer-events\", \"none\");\r\n\t}\r\n\r\n\tunlockFilters() {\r\n\t\tthis.$ctx.find(`.${classes.oneLevelItemContainer}`).css(\"pointer-events\", \"auto\");\r\n\t\tthis.$ctx.find(`.${classes.twoLevelParentHeader}`).css(\"pointer-events\", \"auto\");\r\n\t\tthis.$ctx.find(`.${classes.twoLevelChildList}`).css(\"pointer-events\", \"auto\");\r\n\t\tthis.$ctx.find(`.${classes.filterTags}`).css(\"pointer-events\", \"auto\");\r\n\t}\r\n\r\n\tupdateCounterLabel(displayNum: number, totalNumber: number) {\r\n\t\tconst text = this.$ctx.data(\"counter-label\")\r\n\t\t\t.replace(`${placeholders.displayNumber}`, displayNum.toString())\r\n\t\t\t.replace(`${placeholders.totalNumber}`, totalNumber.toString());\r\n\t\tthis.$ctx.find(`.${classes.counterLabel}`).show().text(text);\r\n\t}\r\n\r\n\tupdateCounterHeading(displayNum: number) {\r\n\t\tconst text = this.$ctx.data(\"counter-heading\")\r\n\t\t\t.replace(`${placeholders.displayNumber}`, displayNum.toString());\r\n\t\tthis.$ctx.find(`.${classes.counterHeading}`).text(text);\r\n\t}\r\n\r\n\tupdateLoadMoreButton(enable: boolean) {\r\n\t\tif (enable) {\r\n\t\t\tthis.unlockLoadMoreButton();\r\n\t\t} else {\r\n\t\t\tthis.lockLoadMoreButton();\r\n\t\t}\r\n\t}\r\n\r\n\tupdatePageNumber(pageNumber: number) {\r\n\t\tthis.$ctx.data(\"page-number\", pageNumber);\r\n\t}\r\n\r\n\tupdateFacet(enabledFilterItems: string[]) {\r\n\r\n\t\t// foreach all the checkboxes include the first-level and second-level,\r\n\t\t// but the \"enabledFilterItems\" only contain second-level items\r\n\t\tlet $checkboxes = this.$ctx.find(`.${classes.filterSelect} input[type=checkbox]`);\r\n\t\t$checkboxes.each((i, e) => {\r\n\t\t\tconst currentId = $(e).data(\"sc-id\");\r\n\t\t\tconst isEnabled = enabledFilterItems.indexOf(currentId) > -1;\r\n\t\t\t$(e).prop(\"disabled\", !isEnabled);\r\n\t\t});\r\n\r\n\t\t// after set the \"disabled\" property of second-level items, update first-level\r\n\t\tthis.setTwoLevelFilterDisabledClass();\r\n\r\n\t\t// update these items who are \"disabled\" and \"checked\"\r\n\t\tconst $ele = this.$ctx.find(`.${classes.filterSelect} input[type='checkbox']:checked:disabled`);\r\n\t\t$ele.prop(\"disabled\", false);\r\n\t\t$ele.closest(`.${classes.twoLevelChild}`).removeClass(classes.twoLevelChildDisabled);\r\n\r\n\t}\r\n\r\n\tupdateNoResult() {\r\n\t\tconst text = this.$ctx.data(\"no-result\");\r\n\t\tthis.$ctx.find(`.${classes.counterHeading}`).text(text);\r\n\t\tthis.$ctx.find(`.${classes.counterLabel}`).hide();\r\n\t\tthis.lockLoadMoreButton();\r\n\t}\r\n\r\n\r\n\tgetIdParameterValue(selector: string) {\r\n\r\n\t\tconst $ids = this.$ctx.find(`div[name='${selector}'] input:checked`);\r\n\r\n\t\tconst arr = new Array();\r\n\r\n\t\t$ids.each((i, e) => {\r\n\t\t\tconst value = $(e).data(\"sc-id\");\r\n\t\t\tif (typeof (value) != \"undefined\") {\r\n\t\t\t\tarr.push(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst values = arr.join(\",\");\r\n\t\treturn values;\r\n\t}\r\n\r\n\tgetUniqueNameParameter(selector: string, parameterName: string) {\r\n\r\n\t\tlet parameter: string = \"\";\r\n\r\n\t\tconst $selectorInput = this.$ctx.find(`div[name=${selector}]`).find(\"input[type=checkbox]:checked\");\r\n\t\tconst nameArr = new Array();\r\n\r\n\t\t$selectorInput.each((i, e) => {\r\n\r\n\t\t\tvar uniqueName = $(e).data(\"unique-name\");\r\n\r\n\t\t\tif (typeof (uniqueName) != \"undefined\") {\r\n\t\t\t\tnameArr.push(uniqueName);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (nameArr.length > 0) {\r\n\t\t\tconst parameterValue = nameArr.join(\",\");\r\n\t\t\tparameter = `${parameterName}=${parameterValue}`;\r\n\t\t}\r\n\r\n\t\treturn parameter;\r\n\t}\r\n\r\n\tgetIdParameterValueFromUrl(parameterName: string) {\r\n\r\n\t\tconst query = window.location.search.substring(1);\r\n\r\n\t\tconst vars = query.split(\"&\");\r\n\r\n\t\tfor (let i = 0; i < vars.length; i++) {\r\n\t\t\tconst pair = vars[i].split(\"=\");\r\n\t\t\tif (pair[0] === parameterName) {\r\n\t\t\t\tconst uniqueNameVariables = decodeURI(pair[1]).split(\",\");\r\n\r\n\t\t\t\tlet valueArr = new Array();\r\n\r\n\t\t\t\tfor (let j = 0; j < uniqueNameVariables.length; j++) {\r\n\t\t\t\t\tconst searchId = this.getIdByUniqueName(uniqueNameVariables[j]);\r\n\r\n\t\t\t\t\tif (searchId.length > 0) {\r\n\t\t\t\t\t\tvalueArr.push(searchId);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst idVariable = valueArr.join(\",\");\r\n\r\n\t\t\t\treturn idVariable;\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tgetIdByUniqueName(uniqueName: string) {\r\n\r\n\t\tconst $item = this.$ctx.find(`input[type=checkbox][data-unique-name='${uniqueName}']`);\r\n\r\n\t\tif ($item.length > 0) {\r\n\t\t\treturn $item.data(\"sc-id\");\r\n\t\t}\r\n\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tgenerateUniqueNameQueryString(parameters: string[]) {\r\n\r\n\t\tlet searchQuery = \"\";\r\n\r\n\t\tfor (let i = 0; i < parameters.length; i++) {\r\n\t\t\tif (parameters[i].length > 0) {\r\n\r\n\t\t\t\tsearchQuery += parameters[i];\r\n\t\t\t\tif (i !== parameters.length - 1) {\r\n\t\t\t\t\tsearchQuery += \"&\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (searchQuery.length > 0) {\r\n\t\t\tsearchQuery = `?${searchQuery}`;\r\n\t\t}\r\n\r\n\t\treturn searchQuery;\r\n\t}\r\n\r\n\tareAllSubFiltersChecked($checkboxes: JQuery): boolean {\r\n\t\treturn $checkboxes.toArray().every(this.isElementChecked);\r\n\t}\r\n\r\n\tisElementChecked(element: HTMLInputElement): any {\r\n\t\treturn element.checked;\r\n\t}\r\n\r\n\tgetSelectedTagHtml($inputItem: JQuery) {\r\n\t\tconst name = $inputItem.siblings(\"label\").text();\r\n\t\tconst id = $inputItem.data(\"sc-id\");\r\n\t\tconst template = this.getTagHtml(id, name);\r\n\t\treturn template;\r\n\t}\r\n\r\n\tgetSelectedDateMonthTagHtml($inputItem: JQuery) {\r\n\t\tconst year = $inputItem.parents(`.${classes.twoLevelParent}`).find(`.${classes.twoLevelParentHeader}`)\r\n\t\t\t.find(\"label\").text();\r\n\t\tconst month = $inputItem.siblings(\"label\").text();\r\n\t\tconst id = $inputItem.data(\"sc-id\");\r\n\t\tconst template = this.getTagHtml(id, `${year} ${month}`);\r\n\t\treturn template;\r\n\t}\r\n\r\n\tgetTagHtml(id: string, name: string) {\r\n\t\tconst tagHtml =\r\n\t\t\t`
    \r\n \t\t\t${name}\r\n \t
    `;\r\n\t\treturn tagHtml;\r\n\t}\r\n\r\n\tsetTwoLevelFilterDisabledClass() {\r\n\r\n\t\t//reset child-item class\r\n\t\tthis.$ctx.find(`.${classes.twoLevelChild}`).find('input[type=checkbox]').each((i, e) => {\r\n\t\t\t$(e).closest(`.${classes.twoLevelChild}`).toggleClass(classes.twoLevelChildDisabled, $(e).prop(\"disabled\"));\r\n\t\t});\r\n\r\n\t\t//reset parent-item class and state\r\n\t\tthis.$ctx.find(`.${classes.twoLevelParent}`).each((i, e) => {\r\n\t\t\tconst $parentItem = $(e);\r\n\t\t\tconst $checkboxes = $parentItem.find(`.${classes.twoLevelChild}`).find('input[type=checkbox]');\r\n\r\n\t\t\t$parentItem\r\n\t\t\t\t.find(`.${classes.twoLevelParentLink}`)\r\n\t\t\t\t.toggleClass(classes.twoLevelParentDisabled, this.areAllFilterDisabled($checkboxes));\r\n\r\n\t\t\t$parentItem\r\n\t\t\t\t.find(`.${classes.twoLevelParentHeader}`).find('input[type=checkbox]')\r\n\t\t\t\t.prop(\"disabled\", this.areAllFilterDisabled($checkboxes));\r\n\t\t});\r\n\t}\r\n\r\n\tareAllFilterDisabled($checkboxes: JQuery) {\r\n\t\treturn $checkboxes.toArray().every(this.isElementDisabled);\r\n\t}\r\n\r\n\tisElementDisabled(element: HTMLElement): any {\r\n\t\treturn $(element).prop(\"disabled\");\r\n\t}\r\n\r\n\tonOpenFilter() {\r\n\t\tthis.$ctx.find(`.${classes.filter}`).addClass(classes.filterOpen);\r\n\t}\r\n\r\n\tonCloseFilter(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tthis.$ctx.find(`.${classes.filter}`).removeClass(classes.filterOpen);\r\n\t\tthis.$ctx.find(`.${classes.twoLevelList}`).removeClass(classes.twoLevelListOpen);\r\n\t\tthis.$ctx.find(`.${classes.oneLevelList}`).removeClass(classes.oneLevelListOpen);\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","/**\r\n * This script toggles burger navigation\r\n */\r\n\r\nconst data = {\r\n\tnavLevel: 'data-level-open',\r\n};\r\n\r\n/**\r\n * updateNavLevel\r\n *\r\n * @param handler\r\n * @returns {void}\r\n */\r\nexport function updateNavLevel(nr: number = 1): void {\r\n\t$(`[${data.navLevel}]`).attr(`${data.navLevel}`, nr);\r\n}\r\n\r\n/**\r\n * Returns the current navigation Level\r\n */\r\nexport function getNavLevel(): number {\r\n\treturn parseInt($(`[${data.navLevel}]`).attr(`${data.navLevel}`));\r\n}\r\n\r\nexport default { getNavLevel, updateNavLevel };\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Cookies from 'js-cookie';\r\nimport { FavouritesAction } from '../../../molecules/favourites-action/js/favourites-action';\r\n\r\nconst classes = {\r\n\tstateBtnActive: \"state-m-favourite-button--active\",\r\n\tstateBtnLocked: \"state-m-favourite-button--locked\",\r\n\tstatePopupVisible: \"state-favourite-popup--visible\",\r\n\tstatePopupClose: \"state-favourite-popup--close\",\r\n\tstateValMsgVisible: \"state-field-validation-error--visible\",\r\n\tstateLoadingVisible: \"state-loading-wrapper--shown\",\r\n\tstateCountMax: \"state-textarea-count-max\",\r\n\r\n\tnoScrollingBar: \"no-scrolling--without-scrollbar\",\r\n\r\n\tfavouriteBtn: \"m-favourite-button\",\r\n\tdynamicPopupContainer: \"m-favourite-dynamic-popup-container\",\r\n\tstaticPopupContainer: \"m-favourite-static-popup-container\",\r\n\tsuccessPromptPopup: \"js-m-modal-actions-success-prompt\",\r\n\tfailurePromptPopup: \"js-m-modal-actions-failure-prompt\",\r\n\r\n\tloadingIndicator: \"m-favourite-button__loading-wrapper\",\r\n\r\n\tpopupContainer: \"m-modal-actions\",\r\n};\r\n\r\nconst productCompareClasses = {\r\n\tproductCompare: \"o-product-compare\",\r\n\tproductName: \"js-o-product-compare__productname\"\r\n}\r\n\r\nconst productFinderClasses = {\r\n\tselectedCountry: \"m-selected-filter-tags__country\",\r\n\ttagfilter: \"a-tag-filter \"\r\n}\r\n\r\nconst popupClasses = {\r\n\tpopupBox: \"js-m-modal-actions\",\r\n\ttextareaContainer: \"js-m-modal-actions-textarea-container\",\r\n\ttextareaBox: \"js-m-modal-actions__textarea\",\r\n\ttextareaValLength: \"js-m-modal-actions__textarea-count-length\",\r\n\ttextareaValLengthMax: \"js-m-modal-actions__textarea-count-max\",\r\n\r\n\tconfirmationBtn: \"js-m-modal-actions-confirmation\",\r\n\r\n\ttextcheckboxContainer: \"js-m-modal-actions-textcheckbox-container\",\r\n\ttextboxContainer: \"js-m-modal-actions-textbox-container\",\r\n\ttextboxGroup: \"m-modal-actions__new-list-input\",\r\n\ttextbox: \"js-m-modal-actions__newlist\",\r\n\r\n\tchecklistContainer: \"js-m-modal-actions-checklist-container\",\r\n\tallChecklistContainer: \"js-m-modal-actions-all-checklist-container\",\r\n\r\n\tinputValidationError: \"input-validation-error\",\r\n\tfieldValidationError: \"js-checklist-validation-error\",\r\n}\r\n\r\n@createModule('FavouriteButton')\r\n/**\r\n * FavouriteButton Component\r\n */\r\nexport class FavouriteButton extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$localFavouritesButton: any;\r\n\t$globalFavouritesButton: any;\r\n\t$dynamicPopupContainer: any;\r\n\t$staticPopupContainer: any;\r\n\t$successPopup: any;\r\n\t$failurePopup: any;\r\n\r\n\t$loadingIndicator: any;\r\n\r\n\tpageId: string;\r\n\ttemplateId: string;\r\n\tenableFavourite: boolean;\r\n\r\n\tstatusApiEndpoint: string;\r\n\tactionViewEndpoint: string;\r\n\r\n\t// the cookies-key of \"don't show this confirmation again\" message box\r\n\tconfirmationKey: string;\r\n\r\n\tfavorAction: any;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.confirmationKey = \"favor_confirmation\";\r\n\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.$localFavouritesButton = this.$ctx.find(`button.${classes.favouriteBtn}`);\r\n\r\n\t\t// for there may have multiple favourite button in a page, we use the global selector\r\n\t\tthis.$globalFavouritesButton = $(\"html\").find(`button.${classes.favouriteBtn}`);\r\n\r\n\t\tthis.$dynamicPopupContainer = this.$ctx.find(`.${classes.dynamicPopupContainer}`);\r\n\t\tthis.$staticPopupContainer = this.$ctx.find(`.${classes.staticPopupContainer}`);\r\n\r\n\t\tthis.$successPopup = this.$ctx.find(`.${classes.successPromptPopup}`);\r\n\t\tthis.$failurePopup = this.$ctx.find(`.${classes.failurePromptPopup}`);\r\n\r\n\t\tthis.$loadingIndicator = this.$ctx.find(`.${classes.loadingIndicator}`);\r\n\r\n\t\tthis.pageId = this.$ctx.data(\"page-id\");\r\n\t\tthis.enableFavourite = this.$ctx.data(\"enable-favourites\");\r\n\r\n\t\tthis.statusApiEndpoint = this.$ctx.data(\"status-api-endpoint\");\r\n\t\tthis.actionViewEndpoint = this.$ctx.data(\"action-view-endpoint\");\r\n\r\n\t\tthis.favorAction = new FavouritesAction();\r\n\r\n\t\tif (this.enableFavourite) {\r\n\t\t\tthis.updateStatus();\r\n\t\t}\r\n\t\t\r\n\t\tthis.$localFavouritesButton.on('click', (ev: any) => {\r\n\t\t\tconst $favorBtn = $(ev.currentTarget);\r\n\t\t\tlet actionType = \"\";\r\n\t\t\tif ($favorBtn.hasClass(classes.stateBtnActive)) {\r\n\t\t\t\tactionType = \"RemoveEntry\";\r\n\t\t\t} else {\r\n\t\t\t\tactionType = \"AddEntry\";\r\n\t\t\t}\r\n\t\t\tthis.getActionPartialView(actionType, this.pageId);\r\n\t\t});\r\n\r\n\t\tthis.$failurePopup.find(`.${classes.statePopupClose}`).on(\"click\", (event: any) => {\r\n\t\t\tconst $closeBtn = $(event.currentTarget);\r\n\t\t\tthis.closeStaticPopup($closeBtn);\r\n\t\t});\r\n\r\n\t\tthis.$successPopup.find(`.${classes.statePopupClose}`).on(\"click\", (ev: any) => {\r\n\t\t\tev.stopPropagation();\r\n\t\t\tthis.closeSuccessPopup();\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\r\n\tupdateStatus() {\r\n\t\tconst query = window.location.search.substr(1);\r\n\t\t$.ajax({\r\n\t\t\ttype: 'GET',\r\n\t\t\turl: this.statusApiEndpoint,\r\n\t\t\tdataType: 'json',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tpageid: this.pageId,\r\n\t\t\t\tquery: query\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tthis.updateFavouriteButton(response.isActive);\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(`update status error, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetActionPartialView(actionType: string, id: string) {\r\n\t\tthis.lockScreen();\r\n\t\t$.ajax({\r\n\t\t\ttype: 'post',\r\n\t\t\turl: this.actionViewEndpoint,\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tactionType: actionType,\r\n\t\t\t\tpageId: id,\r\n\t\t\t\tCurrentUrl: window.location.href\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tthis.$dynamicPopupContainer.append(response);\r\n\t\t\t\tconst $popup = this.$dynamicPopupContainer.children();\r\n\r\n\t\t\t\tlet data = this.$dynamicPopupContainer.find(\"script[type='application/json']\");\r\n\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\tlet json = data[0].innerHTML;\r\n\t\t\t\t\tif (json.length > 0) {\r\n\r\n\t\t\t\t\t\tlet jsonData = JSON.parse(json);\r\n\r\n\t\t\t\t\t\t// if the page is only available on one list, won't show the popup\r\n\t\t\t\t\t\tif (jsonData.disablePopup) {\r\n\r\n\t\t\t\t\t\t\tthis.favorAction.removePopup($popup);\r\n\t\t\t\t\t\t\tthis.updateFavouriteButton(false);\r\n\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.favorAction.displayPopup($popup);\r\n\t\t\t\tthis.favorAction.rebindCommonViewEvents($popup);\r\n\t\t\t\tthis.bindSubmitEvent($popup);\r\n\t\t\t\tthis.prefillTextareaBox();\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tthis.unlockScreen();\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(`get action-view error, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tbindSubmitEvent($popup: JQuery) {\r\n\r\n\t\t// bind submit button\r\n\t\t$popup.find(`.${popupClasses.confirmationBtn}`).on('click', (ev: any) => {\r\n\t\t\tif (this.favorAction.canSubmit($popup)) {\r\n\r\n\t\t\t\tconst $btn = $(ev.currentTarget);\r\n\r\n\t\t\t\tconst url = $popup.data(\"api-endpoint\");\r\n\t\t\t\tconst id = $popup.data(\"item-id\");\r\n\r\n\t\t\t\tconst textareaValue = $popup.find(\"textarea\").val();\r\n\r\n\t\t\t\tconst ids = this.favorAction.getCheckedListIds($popup);\r\n\r\n\t\t\t\tconst textboxValue = this.favorAction.getTextCheckBoxValue($popup);\r\n\r\n\t\t\t\tthis.favorAction.lockSubmitBtn($btn);\r\n\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\ttype: 'post',\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\tdata:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpageId: id,\r\n\t\t\t\t\t\tids: ids,\r\n\t\t\t\t\t\ttextareaInput: textareaValue,\r\n\t\t\t\t\t\ttextInput: textboxValue,\r\n\t\t\t\t\t\tcurrentUrl: window.location.href\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: (response: any) => {\r\n\t\t\t\t\t\tif (response.success) {\r\n\t\t\t\t\t\t\tthis.updateFavouriteButton(response.isActive);\r\n\t\t\t\t\t\t\tif (response.enablePrompt) {\r\n\t\t\t\t\t\t\t\tthis.showSuccessPopup();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.showStaticPopup(this.$failurePopup);\r\n\t\t\t\t\t\t\tconsole.log(response.message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\tthis.favorAction.removePopup($popup);\r\n\t\t\t\t\t\tthis.favorAction.unlockSubmitBtn($btn);\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\t\tconsole.log(`submit action-view error, endpoint: ${url}, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tlockScreen() {\r\n\t\tthis.$loadingIndicator.addClass(classes.stateLoadingVisible);\r\n\t}\r\n\r\n\tunlockScreen() {\r\n\t\tthis.$loadingIndicator.removeClass(classes.stateLoadingVisible);\r\n\r\n\t}\r\n\r\n\tupdateFavouriteButton(isActive: boolean) {\r\n\t\tif (isActive) {\r\n\t\t\tthis.$globalFavouritesButton.addClass(classes.stateBtnActive);\r\n\t\t} else {\r\n\t\t\tthis.$globalFavouritesButton.removeClass(classes.stateBtnActive);\r\n\t\t}\r\n\t}\r\n\r\n\tshowSuccessPopup() {\r\n\t\tlet confirmationCookie = Cookies.get(this.confirmationKey);\r\n\t\tif (!confirmationCookie) {\r\n\t\t\tthis.showStaticPopup(this.$successPopup);\r\n\t\t}\r\n\t}\r\n\r\n\tcloseSuccessPopup() {\r\n\t\tconst ckBox = this.$successPopup.find(\"input[type=checkbox]\").prop(\"checked\");\r\n\r\n\t\tif (ckBox) {\r\n\t\t\tCookies.set(this.confirmationKey, '1', { expires: 365 });\r\n\t\t\tconst curScrollTop = $(window).scrollTop();\r\n\r\n\t\t\t$(window).scrollTop(curScrollTop - 20);\r\n\t\t\t$('.m-navigation-meta__tooltip-favourite').fadeIn();\r\n\r\n\t\t}\r\n\r\n\t\tthis.$successPopup.removeClass(classes.statePopupVisible);\r\n\t}\r\n\r\n\tshowStaticPopup($container: any) {\r\n\t\t$container.addClass(classes.statePopupVisible);\r\n\t}\r\n\r\n\tcloseStaticPopup($closeBtn: any) {\r\n\t\t$closeBtn.parents(`.${classes.popupContainer}`).removeClass(classes.statePopupVisible);\r\n\t}\r\n\r\n\tprefillTextareaBox() {\r\n\r\n\t\tconst $descInputBox = this.$dynamicPopupContainer.find(`.${popupClasses.textareaBox}`);\r\n\r\n\t\tif ($descInputBox.length > 0) {\r\n\r\n\t\t\tlet descVal = \"\";\r\n\r\n\t\t\tconst $productCompareNameEles = $(\"html\").find(`.${productCompareClasses.productCompare}`).find(`.${productCompareClasses.productName}`);\r\n\r\n\t\t\tconst $productFinderSelectedCountry = $(\"html\").find(`.${productFinderClasses.selectedCountry}`).find(\"span\");\r\n\t\t\tconst $productFinderNameEles = $(\"html\").find(\"cov-tag-filter\").find(`button.${productFinderClasses.tagfilter}`);\r\n\r\n\t\t\tif ($productCompareNameEles.length > 0) {\r\n\t\t\t\tdescVal = this.getElementsText($productCompareNameEles);\r\n\r\n\t\t\t} else if ($productFinderSelectedCountry.length > 0 || $productFinderNameEles.length > 0) {\r\n\r\n\t\t\t\tdescVal = $productFinderSelectedCountry.text();\r\n\t\t\t\tconst filterTxt = this.getElementsText($productFinderNameEles);\r\n\r\n\t\t\t\tif (filterTxt.length > 0) {\r\n\t\t\t\t\tdescVal = `${descVal} - ${filterTxt}`\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdescVal = this.getPageTitle();\r\n\t\t\t}\r\n\r\n\t\t\t$descInputBox.val(descVal);\r\n\r\n\t\t\t$descInputBox.focus();\r\n\r\n\t\t\tthis.favorAction.countTextarea($descInputBox);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tgetPageTitle(): string {\r\n\t\tconst docTitle = document.title;\r\n\r\n\t\tlet result = \"\";\r\n\r\n\t\tif (docTitle.indexOf(\"|\") != -1) {\r\n\t\t\tconst title = docTitle.split(\"|\");\r\n\t\t\tresult = title[0].trim();\r\n\t\t} else {\r\n\t\t\tresult = docTitle;\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tgetElementsText($nameEles: any): string {\r\n\t\tlet result = \"\";\r\n\r\n\t\tconst nameArr = new Array();\r\n\t\t$nameEles.each((i: any, e: any) => {\r\n\t\t\tconst value = $(e).text().trim();\r\n\t\t\tif (typeof (value) != \"undefined\") {\r\n\t\t\t\tnameArr.push(value);\r\n\t\t\t}\r\n\t\t});\r\n\t\tresult = nameArr.join(\" - \");\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tgetActionPartialViewForEventList(actionType: string,ev: any) {\r\n\t\tconst $favorBtn = $(ev.currentTarget);\r\n\t\tvar favorAction = new FavouritesAction();\r\n\t\tvar favoriteCtx=$favorBtn.closest(\"div[data-t-name='FavouriteButton']\");\r\n\t\tvar pageid=favoriteCtx.attr(\"data-page-id\");\r\n\t\tvar actionViewEndpoint=favoriteCtx.attr(\"data-action-view-endpoint\");\r\n\t\t$favorBtn.siblings(`.${classes.loadingIndicator}`).addClass(classes.stateLoadingVisible);\r\n\t\t$.ajax({\r\n\t\t\ttype: 'post',\r\n\t\t\turl:actionViewEndpoint,\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tactionType: actionType,\r\n\t\t\t\tpageId: pageid,\r\n\t\t\t\tCurrentUrl: window.location.href\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\t$favorBtn.siblings((`.${classes.dynamicPopupContainer}`)).append(response);\r\n\t\t\t\tconst $popup = $favorBtn.siblings((`.${classes.dynamicPopupContainer}`)).children();\r\n\t\t\t\tconst $staicPopup=$favorBtn.siblings((`.${classes.staticPopupContainer}`));\r\n\t\t\t\tlet data =$favorBtn.siblings((`.${classes.dynamicPopupContainer}`)).find(\"script[type='application/json']\");\r\n\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\tlet json = data[0].innerHTML;\r\n\t\t\t\t\tif (json.length > 0) {\r\n\r\n\t\t\t\t\t\tlet jsonData = JSON.parse(json);\r\n\r\n\t\t\t\t\t\t// if the page is only available on one list, won't show the popup\r\n\t\t\t\t\t\tif (jsonData.disablePopup) {\r\n\r\n\t\t\t\t\t\t\tfavorAction.removePopup($popup);\r\n\t\t\t\t\t\t\t$favorBtn.removeClass(classes.stateBtnActive);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfavorAction.displayPopup($popup);\r\n\t\t\t\tfavorAction.rebindCommonViewEvents($popup);\r\n\t\t\t\tthis.bindSubmitEventForEventList($popup,$staicPopup,$favorBtn);\r\n\t\t\t\tthis.prefillTextareaBoxForEventList($popup);\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\t\t\t\t$favorBtn.siblings(`.${classes.loadingIndicator}`).removeClass(classes.stateLoadingVisible);\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(`get action-view error, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tbindSubmitEventForEventList($popup: JQuery,$staicPopup: JQuery,$button: any) {\r\n\r\n\t\t// bind submit button\r\n\t\tvar favorAction = new FavouritesAction();\r\n\t\t$popup.find(`.${popupClasses.confirmationBtn}`).on('click', (ev: any) => {\r\n\t\t\tif (favorAction.canSubmit($popup)) {\r\n\r\n\t\t\t\tconst $btn = $(ev.currentTarget);\r\n\r\n\t\t\t\tconst url = $popup.data(\"api-endpoint\");\r\n\t\t\t\tconst id = $popup.data(\"item-id\");\r\n\r\n\t\t\t\tconst textareaValue = $popup.find(\"textarea\").val();\r\n\r\n\t\t\t\tconst ids = favorAction.getCheckedListIds($popup);\r\n\r\n\t\t\t\tconst textboxValue = favorAction.getTextCheckBoxValue($popup);\r\n\r\n\t\t\t\tfavorAction.lockSubmitBtn($btn);\r\n\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\ttype: 'post',\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\tdata:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpageId: id,\r\n\t\t\t\t\t\tids: ids,\r\n\t\t\t\t\t\ttextareaInput: textareaValue,\r\n\t\t\t\t\t\ttextInput: textboxValue,\r\n\t\t\t\t\t\tcurrentUrl: window.location.href\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: (response: any) => {\r\n\t\t\t\t\t\tif (response.success) {\r\n\t\t\t\t\t\t\tif (response.isActive) {\r\n\t\t\t\t\t\t\t\t$button.addClass(classes.stateBtnActive);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$button.removeClass(classes.stateBtnActive);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (response.enablePrompt) {\r\n\t\t\t\t\t\t\t\tlet confirmationCookie = Cookies.get(\"favor_confirmation\");\r\n\t\t\t\t\t\t\tif (!confirmationCookie) {\r\n\t\t\t\t\t\t\t\tvar $successPopup=$staicPopup.find(`.${classes.successPromptPopup}`);\r\n\t\t\t\t\t\t\t\t$successPopup.addClass(classes.statePopupVisible);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t$successPopup.find(`.${classes.statePopupClose}`).on(\"click\", (ev: any) => {\r\n\t\t\t\t\t\t\t\t\tev.stopPropagation();\r\n\t\t\t\t\t\t\t\t\tconst ckBox = $successPopup.find(\"input[type=checkbox]\").prop(\"checked\");\r\n\r\n\t\t\t\t\t\t\t\t\tif (ckBox) {\r\n\t\t\t\t\t\t\t\t\t\tCookies.set(this.confirmationKey, '1', { expires: 365 });\r\n\t\t\t\t\t\t\t\t\t\tconst curScrollTop = $(window).scrollTop();\r\n\r\n\t\t\t\t\t\t\t\t\t\t$(window).scrollTop(curScrollTop - 20);\r\n\t\t\t\t\t\t\t\t\t\t$('.m-navigation-meta__tooltip-favourite').fadeIn();\r\n\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t$successPopup.removeClass(classes.statePopupVisible);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvar $failurePopup=$staicPopup.find(`.${classes.failurePromptPopup}`);\r\n\t\t\t\t\t\t\t$failurePopup.addClass(classes.statePopupVisible);\r\n\t\t\t\t\t\t\t$failurePopup.find(`.${classes.statePopupClose}`).on(\"click\", (event: any) => {\r\n\t\t\t\t\t\t\t\t$failurePopup.removeClass(classes.statePopupVisible);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tconsole.log(response.message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\tfavorAction.removePopup($popup);\r\n\t\t\t\t\t\tfavorAction.unlockSubmitBtn($btn);\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\t\tconsole.log(`submit action-view error, endpoint: ${url}, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tupdateStatusForEventList(ev: any) {\r\n\t\tconst query = window.location.search.substr(1);\r\n\t\tconst $favorBtn = $(ev);\r\n\t\tvar favoriteCtx=$favorBtn.closest(\"div[data-t-name='FavouriteButton']\");\r\n\t\tvar pageid=favoriteCtx.attr(\"data-page-id\");\r\n\t\tvar statusEndpoint=favoriteCtx.attr(\"data-status-api-endpoint\");\r\n\t\t$.ajax({\r\n\t\t\ttype: 'GET',\r\n\t\t\turl: statusEndpoint,\r\n\t\t\tdataType: 'json',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tpageid: pageid,\r\n\t\t\t\tquery: query\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tif (response.isActive) {\r\n\t\t\t\t\t$favorBtn.addClass(classes.stateBtnActive);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$favorBtn.removeClass(classes.stateBtnActive);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(`update status error, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprefillTextareaBoxForEventList($popup: JQuery) {\r\n\r\n\t\tconst $descInputBox = $popup.find(`.${popupClasses.textareaBox}`);\r\n\r\n\t\tif ($descInputBox.length > 0) {\r\n\t\t\t$descInputBox.focus();\r\n\t\t\tvar favorAction=new FavouritesAction();\r\n\t\t\tfavorAction.countTextarea($descInputBox);\r\n\t\t}\r\n\r\n\t}\r\n\tstop() { }\r\n}\r\n","/**\r\n * Formats the given label with the passed parameters.\r\n * Be careful with the order of the passed array, since the placeholders will be replaced in the order of the array.\r\n * E.g. <\"This is a {0} text with {1}\", [\"sample\", \"parameters\"]> will return \"This is a sample text with parameters\".\r\n * @param {string} label\r\n * @param values\r\n * @returns {string}\r\n */\r\nexport function formatLabel(label: string, ...values: any[]): string {\r\n\t// console.log(label);\r\n\tlet formattedLabel = label || '';\r\n\tif (label) {\r\n\t\tlet count = 0;\r\n\t\tvalues.forEach((val) => {\r\n\t\t\t// console.log(val);\r\n\t\t\tformattedLabel = formattedLabel.replace('{' + count + '}', val);\r\n\t\t\tcount++;\r\n\t\t});\r\n\t}\r\n\treturn formattedLabel;\r\n}\r\n\r\nexport default {\r\n\tformatLabel,\r\n};\r\n","// exposing jQuery to window in order to be usable by external scripts\r\n(window as any)['$'] = jQuery;\r\n(window as any)['jQuery'] = jQuery;\r\n\r\nimport 'core-js';\r\nimport * as T from 'terrific-singleton';\r\n\r\n// **************************\r\n// BASE / HELPERS\r\n// **************************\r\n// Component Document\r\nimport './lib/base/document/css/document.scss';\r\n\r\n// Component FontFaces\r\nimport './lib/base/font-faces/css/font-faces.scss';\r\n\r\n// Component Resets\r\nimport './lib/base/resets/css/resets.scss';\r\n\r\n// Component Security\r\nimport './lib/base/security/js/security';\r\n\r\n// Component ContentGrid\r\nimport './lib/grid/content-grid/css/content-grid.scss';\r\n\r\n// Component Grid\r\nimport './lib/grid/grid/css/grid.scss';\r\n\r\n// **************************\r\n// ATOMS\r\n// **************************\r\n// Component Burger\r\nimport './lib/atoms/burger/css/burger.scss';\r\nimport './lib/atoms/burger/js/burger';\r\n\r\n// Component Button\r\nimport './lib/atoms/button/css/button.scss';\r\nimport './lib/atoms/button/js/button';\r\nimport './lib/atoms/button/css/modifier/accordion.scss';\r\nimport './lib/atoms/button/css/modifier/accordion-element.scss';\r\nimport './lib/atoms/button/css/modifier/filter-table.scss';\r\nimport './lib/atoms/button/css/modifier/filter.scss';\r\nimport './lib/atoms/button/css/modifier/icon-and-text.scss';\r\nimport './lib/atoms/button/css/modifier/inverse.scss';\r\nimport './lib/atoms/button/css/modifier/link.scss';\r\nimport './lib/atoms/button/css/modifier/outline.scss';\r\nimport './lib/atoms/button/css/modifier/outline-stage.scss';\r\nimport './lib/atoms/button/css/modifier/primary.scss';\r\nimport './lib/atoms/button/css/modifier/secondary.scss';\r\nimport './lib/atoms/button/css/modifier/stage.scss';\r\nimport './lib/atoms/button/css/modifier/top.scss';\r\nimport './lib/atoms/button/css/modifier/down.scss';\r\nimport './lib/atoms/button/css/modifier/white.scss';\r\nimport './lib/atoms/button/css/modifier/white-inverse.scss';\r\nimport './lib/atoms/button/css/modifier/gray.scss';\r\nimport './lib/atoms/button/css/modifier/border.scss';\r\n\r\n// Component Definitionlist\r\nimport './lib/atoms/definitionlist/css/definitionlist.scss';\r\nimport './lib/atoms/definitionlist/js/definitionlist';\r\n\r\n// Component Heading\r\nimport './lib/atoms/heading/css/heading.scss';\r\nimport './lib/atoms/heading/js/heading';\r\n\r\n// Component Icon\r\nimport './lib/atoms/icon/css/icon.scss';\r\nimport './lib/atoms/icon/js/icon';\r\n\r\n// Component Image\r\nimport './lib/atoms/image/css/image.scss';\r\nimport './lib/atoms/image/js/image';\r\nimport './lib/atoms/image/css/modifier/case-studies.scss';\r\nimport './lib/atoms/image/css/modifier/simple.scss';\r\nimport './lib/atoms/image/css/modifier/error.scss';\r\nimport './lib/atoms/image/css/modifier/large-with-overlaying-text.scss';\r\n\r\n// Component Video\r\nimport './lib/atoms/video/css/video.scss';\r\nimport './lib/atoms/video/css/modifier/video--themes.scss';\r\nimport './lib/atoms/video/js/video';\r\n\r\n// Component Input\r\nimport './lib/atoms/input/css/input.scss';\r\nimport './lib/atoms/input/js/input';\r\nimport './lib/atoms/input/css/modifier/input-date.scss';\r\nimport './lib/atoms/input/css/modifier/input-email.scss';\r\nimport './lib/atoms/input/css/modifier/input-number.scss';\r\n\r\n// Component InputAutocomplete\r\nimport './lib/atoms/input-autocomplete/css/input-autocomplete.scss';\r\nimport './lib/atoms/input-autocomplete/js/input-autocomplete';\r\n\r\n// Component InputCheckbox\r\nimport './lib/atoms/input-checkbox/css/input-checkbox.scss';\r\nimport './lib/atoms/input-checkbox/js/input-checkbox';\r\nimport './lib/atoms/input-checkbox/css/modifier/input-checkbox--table-filter.scss';\r\nimport './lib/atoms/input-checkbox/css/modifier/input-checkbox--with-margin.scss';\r\n\r\n// Component InputCheckswitch\r\nimport './lib/atoms/input-checkswitch/css/input-checkswitch.scss';\r\nimport './lib/atoms/input-checkswitch/css/modifier/input-checkswitch--no-label.scss';\r\n\r\n// Component InputDate\r\nimport './lib/atoms/input-date/css/input-date.scss';\r\nimport './lib/atoms/input-date/js/input-date';\r\n\r\n// Component InputRangeSlider\r\nimport './lib/atoms/input-range-slider/css/input-range-slider.scss';\r\nimport './lib/atoms/input-range-slider/js/input-range-slider';\r\nimport './lib/atoms/input-range-slider/css/modifier/input-range-slider--table-filter.scss';\r\n\r\n// Component InputSearch\r\nimport './lib/atoms/input-search/css/input-search.scss';\r\nimport './lib/atoms/input-search/js/input-search';\r\n\r\n// Component InputSelect\r\nimport './lib/atoms/input-select/css/input-select.scss';\r\nimport './lib/atoms/input-select/js/input-select';\r\nimport './lib/atoms/input-select/css/modifier/input--global-contact.scss';\r\nimport './lib/atoms/input-select/css/modifier/input--market.scss';\r\n\r\n// Component InputTextarea\r\nimport './lib/atoms/input-textarea/css/input-textarea.scss';\r\nimport './lib/atoms/input-textarea/js/input-textarea';\r\n\r\n// Component Label\r\nimport './lib/atoms/label/css/label.scss';\r\nimport './lib/atoms/label/js/label';\r\n\r\n// Component Link\r\nimport './lib/atoms/link/css/link.scss';\r\nimport './lib/atoms/link/js/link';\r\n\r\n// Component ImagewithLink\r\nimport './lib/atoms/imageWithLink/css/imageWithLink.scss';\r\nimport './lib/atoms/imageWithLink/js/imageWithLink';\r\n\r\n// Component ListUnordered\r\nimport './lib/atoms/list-unordered/css/list-unordered.scss';\r\nimport './lib/atoms/list-unordered/js/list-unordered';\r\n\r\n// Component LoadingIndicator\r\nimport './lib/atoms/loading-indicator/css/loading-indicator.scss';\r\nimport './lib/atoms/loading-indicator/js/loading-indicator';\r\nimport './lib/atoms/loading-indicator/css/modifier/rotateplane.scss';\r\n\r\n// Component Page-Introtext\r\nimport './lib/atoms/page-introtext/css/page-introtext.scss';\r\nimport './lib/atoms/page-introtext/css/modifier/small.scss';\r\n\r\n// Component MessageBox\r\nimport './lib/atoms/message-box/css/message-box.scss';\r\n\r\n// Component Richtext\r\nimport './lib/atoms/richtext/css/richtext.scss';\r\nimport './lib/atoms/richtext/css/modifier/consultation.scss';\r\nimport './lib/atoms/richtext/css/modifier/cookielayer.scss';\r\nimport './lib/atoms/richtext/css/modifier/copy-small.scss';\r\nimport './lib/atoms/richtext/css/modifier/copy.scss';\r\nimport './lib/atoms/richtext/css/modifier/richtext--footer.scss';\r\n\r\n// Component SearchTrigger\r\nimport './lib/atoms/search-trigger/css/search-trigger.scss';\r\nimport './lib/atoms/search-trigger/js/search-trigger';\r\n\r\n// Component Tag\r\nimport './lib/atoms/tag/css/tag.scss';\r\nimport './lib/atoms/tag/css/modifier/primary.scss';\r\n\r\n// Component TagFilter\r\nimport './lib/atoms/tag-filter/css/tag-filter.scss';\r\nimport './lib/atoms/tag-filter/js/tag-filter';\r\nimport './lib/atoms/tag-filter/css/modifier/reset.scss';\r\n\r\n// Component ValidationSummary\r\nimport './lib/atoms/validation-summary/css/validation-summary.scss';\r\nimport './lib/atoms/validation-summary/js/validation-summary';\r\n\r\n// **************************\r\n// MOLECULES\r\n// **************************\r\n// Component Accordion\r\nimport './lib/molecules/accordion/css/modifier/accordion--content.scss';\r\nimport './lib/molecules/accordion/js/accordion';\r\n\r\n// Component AccordionElement\r\nimport './lib/molecules/accordion-element/css/accordion-element.scss';\r\n\r\n// Component BrandBenefitList\r\nimport './lib/molecules/brand-benefit-list/css/brand-benefit-list.scss';\r\nimport './lib/molecules/brand-benefit-list/js/brand-benefit-list';\r\n\r\n// Component BrandProductAccordion\r\nimport './lib/molecules/brand-product-accordion/css/brand-product-accordion.scss';\r\nimport './lib/molecules/brand-product-accordion/js/brand-product-accordion';\r\n\r\n// Component Breadcrumb\r\nimport './lib/molecules/breadcrumb/css/breadcrumb.scss';\r\nimport './lib/molecules/breadcrumb/js/breadcrumb';\r\n\r\n// Component CampaignDownload\r\nimport './lib/molecules/campaign-download/js/campaign-download';\r\n\r\n// Component CategoryTags\r\nimport './lib/molecules/category-tags/css/category-tags.scss';\r\nimport './lib/molecules/category-tags/js/category-tags';\r\n\r\n// Component ClientLogo\r\nimport './lib/molecules/client-logo/css/client-logo.scss';\r\n\r\n// Component ContactTeaser\r\nimport './lib/molecules/contact-teaser/css/contact-teaser.scss';\r\n\r\n// Component InquiryContactTeaser\r\nimport './lib/organisms/inquiry-contact-teaser/css/inquiry-contact-teaser.scss';\r\nimport './lib/organisms/inquiry-contact-teaser/js/inquiry-contact-teaser';\r\n\r\n// Component ContactTeaserButtons\r\nimport './lib/molecules/contact-teaser-buttons/css/contact-teaser-buttons.scss';\r\nimport './lib/molecules/contact-teaser-buttons/js/contact-teaser-buttons';\r\n\r\n// Component RegionLightbox\r\nimport './lib/molecules/region-lightbox/css/region-lightbox.scss';\r\nimport './lib/molecules/region-lightbox/js/region-lightbox';\r\n\r\n// Component Datasheet\r\nimport './lib/molecules/datasheet/css/datasheet.scss';\r\nimport './lib/molecules/datasheet/js/datasheet';\r\n\r\n// Component DownloadBar\r\nimport './lib/molecules/download-bar/css/download-bar.scss';\r\nimport './lib/molecules/download-bar/css/modifier/download-bar-themes.scss';\r\n\r\n// Component DownloadItem\r\nimport './lib/molecules/download-item/css/download-item.scss';\r\nimport './lib/molecules/download-item/js/download-item';\r\n\r\n// Component DownloadList\r\nimport './lib/molecules/download-list/css/download-list.scss';\r\nimport './lib/molecules/download-list/js/download-list';\r\nimport './lib/molecules/download-list/css/modifier/download-list--skip-space.scss';\r\n\r\n// Component DownloadTable\r\nimport './lib/molecules/download-table/css/download-table.scss';\r\nimport './lib/molecules/download-table/js/download-table';\r\n\r\n// Component FavouriteLayer\r\nimport './lib/molecules/favourite-layer/css/favourite-layer.scss';\r\nimport './lib/molecules/favourite-layer/js/favourite-layer';\r\n\r\n// Component FavouriteButton\r\nimport './lib/molecules/favourite-button/css/favourite-button.scss';\r\nimport './lib/molecules/favourite-button/css/modifier/gray-and-narrow.scss';\r\nimport './lib/molecules/favourite-button/js/favourite-button';\r\n\r\n// Component FeaturedDownload\r\nimport './lib/molecules/featured-download/css/featured-download.scss';\r\nimport './lib/molecules/featured-download/css/modifier/featured-download--themes.scss';\r\nimport './lib/molecules/featured-download/js/featured-download';\r\n\r\n// Component FilterMarketSwitch\r\nimport './lib/molecules/filter-market-switch/css/filter-market-switch.scss';\r\nimport './lib/molecules/filter-market-switch/js/filter-market-switch';\r\n\r\n// Component FilterMultiselect\r\nimport './lib/molecules/filter-multiselect/css/filter-multiselect.scss';\r\nimport './lib/molecules/filter-multiselect/js/filter-multiselect';\r\n\r\n// Component FilterProductsearch\r\nimport './lib/molecules/filter-productsearch/css/filter-productsearch.scss';\r\nimport './lib/molecules/filter-productsearch/js/filter-productsearch';\r\n\r\n// Component Keywordsearch\r\nimport './lib/molecules/filter-keywordsearch/css/filter-keywordsearch.scss';\r\nimport './lib/molecules/filter-keywordsearch/js/filter-keywordsearch';\r\n\r\n// Component FilterCategorysearch\r\nimport './lib/molecules/filter-categorysearch/css/filter-categorysearch.scss';\r\nimport './lib/molecules/filter-categorysearch/js/filter-categorysearch';\r\n\r\n// Component FilterCategorysearchSingleLevel\r\nimport './lib/molecules/filter-categorysearch-singlelevel/css/filter-categorysearch-singlelevel.scss';\r\nimport './lib/molecules/filter-categorysearch-singlelevel/js/filter-categorysearch-singlelevel';\r\n\r\n// Component FavouritesEntryTable\r\nimport './lib/molecules/favourites-entry-table/css/favourites-entry-table.scss';\r\nimport './lib/molecules/favourites-entry-table/js/favourites-entry-table';\r\n\r\n// Component FavouritesList\r\nimport './lib/molecules/favourites-list/css/favourites-list.scss';\r\nimport './lib/molecules/favourites-list/js/favourites-list';\r\n\r\n// Component FilterSingleselect\r\nimport './lib/molecules/filter-singleselect/css/filter-singleselect.scss';\r\nimport './lib/molecules/filter-singleselect/js/filter-singleselect';\r\n\r\n// Component FilterTwoLevelMultiselect\r\nimport './lib/molecules/filter-two-level-multiselect/css/filter-two-level-multiselect.scss';\r\nimport './lib/molecules/filter-two-level-multiselect/js/filter-two-level-multiselect';\r\n\r\n// Component FilterWrapper\r\nimport './lib/molecules/filter-wrapper/css/filter-wrapper.scss';\r\nimport './lib/molecules/filter-wrapper/js/filter-wrapper';\r\n\r\n// Component ProductFilter\r\nimport './lib/molecules/product-filter/css/product-filter.scss';\r\nimport './lib/molecules/product-filter/js/product-filter';\r\n\r\n// Component TechnicalPropertyPopup\r\nimport './lib/molecules/technical-property-popup/css/technical-property-popup.scss';\r\nimport './lib/molecules/technical-property-popup/js/technical-property-popup';\r\n\r\n// Component FormOrder\r\nimport './lib/molecules/form-order/css/form-order.scss';\r\nimport './lib/molecules/form-order/css/modifier/form-order--theme.scss';\r\nimport './lib/molecules/form-order/js/form-order';\r\n\r\n// Component FormOrder\r\nimport './lib/molecules/form-newsletter/css/form-newsletter.scss';\r\nimport './lib/molecules/form-newsletter/css/modifier/form-newsletter--theme.scss';\r\n\r\n// Component FormUserProfile\r\nimport './lib/molecules/form-userprofile/css/form-userprofile.scss';\r\nimport './lib/molecules/form-userprofile/css/modifier/form-userprofile--with-seperator.scss';\r\n\r\n// Component LoginData\r\nimport './lib/molecules/login-data/css/login-data.scss';\r\n\r\n// Component GlobalContact\r\nimport './lib/molecules/global-contact/css/global-contact.scss';\r\nimport './lib/molecules/global-contact/js/global-contact';\r\n\r\n// Component HazardousSubstances\r\nimport './lib/molecules/hazardous-substances/css/hazardous-substances.scss';\r\nimport './lib/molecules/hazardous-substances/js/hazardous-substances';\r\n\r\n// Component HeadingWithIcon\r\nimport './lib/molecules/headline/css/headline.scss';\r\nimport './lib/molecules/headline/css/modifier/headline-icons.scss';\r\nimport './lib/molecules/headline/css/modifier/headline-themes.scss';\r\n\r\n// Component HazardousSubstancesInfo\r\nimport './lib/molecules/hazardous-substances-info/css/hazardous-substances-info.scss';\r\n\r\n// Component Iframe\r\nimport './lib/molecules/iframe/js/iframeResizer';\r\nimport './lib/molecules/iframe/js/iframe';\r\nimport './lib/molecules/iframe/css/iframe.scss';\r\n\r\n// Component List\r\nimport './lib/molecules/list/css/list.scss';\r\nimport './lib/molecules/list/css/modifier/list-footer-copyright.scss';\r\nimport './lib/molecules/list/css/modifier/list-footer-legal.scss';\r\nimport './lib/molecules/list/css/modifier/list-footer-links.scss';\r\nimport './lib/molecules/list/css/modifier/list-footer-campaign.scss';\r\nimport './lib/molecules/list/css/modifier/list-horizontal.scss';\r\nimport './lib/molecules/list/css/modifier/list-pipe.scss';\r\n\r\n// Component ListIcons\r\nimport './lib/molecules/list-icons/css/list-icons.scss';\r\nimport './lib/molecules/list-icons/js/list-icons';\r\n\r\n// Component Logo\r\nimport './lib/molecules/logo/css/logo.scss';\r\nimport './lib/molecules/logo/css/modifier/alternative.scss';\r\n\r\n// Component Login-Button\r\nimport './lib/molecules/login-button/css/login-button.scss';\r\nimport './lib/molecules/login-button/css/modifier/login-button--fullwidth.scss';\r\n\r\n// Component MarketSwitch\r\nimport './lib/molecules/market-switch/css/market-switch.scss';\r\nimport './lib/molecules/market-switch/js/market-switch';\r\n\r\n// Component MarketoForm\r\nimport './lib/molecules/marketo-form/css/marketo-form.scss';\r\nimport './lib/molecules/marketo-form/css/modifier/marketo-form--themes.scss';\r\nimport './lib/molecules/marketo-form/js/marketo-form';\r\n\r\n// Component MarketoFormGlobal\r\nimport './lib/molecules/marketo-form-global/js/marketo-form-global';\r\n\r\n// Component ModalOverlay\r\nimport './lib/molecules/modal-overlay/css/modal-overlay.scss';\r\nimport './lib/molecules/modal-overlay/js/modal-overlay';\r\n\r\n// Component ModalOverlay\r\nimport './lib/molecules/modal-actions/css/modal-actions.scss';\r\nimport './lib/molecules/modal-actions/js/modal-actions';\r\n\r\n// Component NavigationInPage\r\nimport './lib/molecules/navigation-in-page/css/navigation-in-page.scss';\r\nimport './lib/molecules/navigation-in-page/js/navigation-in-page.model';\r\nimport './lib/molecules/navigation-in-page/js/navigation-in-page';\r\n\r\n// Component NavigationMain\r\nimport './lib/molecules/navigation-main/css/navigation-main.scss';\r\nimport './lib/molecules/navigation-main/js/navigation-main';\r\n\r\n// Component NavigationMeta\r\nimport './lib/molecules/navigation-meta/css/navigation-meta.scss';\r\nimport './lib/molecules/navigation-meta/js/navigation-meta';\r\n\r\n// Component NavigationWrapper\r\nimport './lib/molecules/navigation-wrapper/css/navigation-wrapper.scss';\r\nimport './lib/molecules/navigation-wrapper/js/navigation-wrapper';\r\n\r\n// Component NewEvent\r\nimport './lib/molecules/new-event/css/new-event.scss';\r\nimport './lib/molecules/new-event/css/modifier/new-event--themes.scss';\r\nimport './lib/molecules/new-event/js/new-event';\r\n\r\n// Component NoPermissions\r\nimport './lib/molecules/no-permissions/css/no-permissions.scss';\r\n\r\n// Component OrderingPlatform\r\nimport './lib/molecules/ordering-platform/css/ordering-platform.scss';\r\nimport './lib/molecules/ordering-platform/js/ordering-platform';\r\n\r\n// Component PageShare\r\nimport './lib/molecules/page-share/css/page-share.scss';\r\nimport './lib/molecules/page-share/css/modifier/gray-and-narrow.scss';\r\nimport './lib/molecules/page-share/js/page-share';\r\n\r\n// Component Pageintro\r\nimport './lib/molecules/pageintro/css/pageintro.scss';\r\nimport './lib/molecules/pageintro/css/modifier/pageintro--stage.scss';\r\nimport './lib/molecules/pageintro/css/modifier/pageintro--skip-space.scss';\r\n\r\n// Component ProductCompareButton\r\nimport './lib/molecules/product-compare-button/css/product-compare-button.scss';\r\nimport './lib/molecules/product-compare-button/js/product-compare-button';\r\n\r\n// Component ProductCompareLayer\r\nimport './lib/molecules/product-compare-layer/css/product-compare-layer.scss';\r\nimport './lib/molecules/product-compare-layer/js/product-compare-layer';\r\n\r\n// Component ProductFinderTeaser\r\nimport './lib/molecules/product-finder-teaser/css/product-finder-teaser.scss';\r\nimport './lib/molecules/product-finder-teaser/js/product-finder-teaser';\r\n\r\n// Component ProductFinderTeaserV2\r\nimport './lib/molecules/product-finder-teaser-V2/css/product-finder-teaser-V2.scss';\r\nimport './lib/molecules/product-finder-teaser-V2/js/product-finder-teaser-V2';\r\n\r\n// Component ProductList\r\nimport './lib/molecules/product-list/css/product-list.scss';\r\nimport './lib/molecules/product-list/js/product-list';\r\n\r\n// Component ProductLogistics\r\nimport './lib/molecules/product-logistics/css/product-logistics.scss';\r\n\r\n// Component ProductProperties\r\nimport './lib/molecules/product-properties/css/product-properties.scss';\r\n\r\n// Component ProductPropertiesAndDownloads\r\nimport './lib/molecules/product-properties-and-downloads/css/product-properties-and-downloads.scss';\r\n\r\n// Component ProductTable\r\nimport './lib/molecules/product-table/css/product-table.scss';\r\nimport './lib/molecules/product-table/js/product-table';\r\n\r\n// Component ProductTableV2\r\nimport './lib/molecules/product-tablev2/css/product-tablev2.scss';\r\n\r\n// Component PromptBox\r\nimport './lib/molecules/prompt-box/css/prompt-box.scss';\r\nimport './lib/molecules/prompt-box/css/modifier/prompt-box--themes.scss';\r\nimport './lib/molecules/prompt-box/js/prompt-box';\r\n\r\n// Component Meta\r\nimport './lib/molecules/publishing-info/css/publishing-info.scss';\r\n\r\n// Component Quote\r\nimport './lib/molecules/quote/css/quote.scss';\r\nimport './lib/molecules/quote/css/modifier/campaign.scss';\r\n\r\n// Component SearchNoResults\r\nimport './lib/molecules/search-no-results/css/search-no-results.scss';\r\n\r\n// Component SearchResultList\r\nimport './lib/molecules/search-result-list/css/search-result-list.scss';\r\n\r\n// Component SearchTabs\r\nimport './lib/molecules/search-tabs/css/search-tabs.scss';\r\n\r\n// Component SelectedFilterTags\r\nimport './lib/molecules/selected-filter-tags/css/selected-filter-tags.scss';\r\n\r\n// Component SelectedFilterTags\r\nimport './lib/molecules/selected-filter-tagsv2/css/selected-filter-tagsv2.scss';\r\n\r\n// Component SliderGallery\r\nimport './lib/molecules/slider-gallery/css/slider-gallery.scss';\r\nimport './lib/molecules/slider-gallery/js/slider-gallery';\r\nimport './lib/molecules/slider-gallery/css/modifier/case-studies.scss';\r\nimport './lib/molecules/slider-gallery/css/modifier/campaign.scss';\r\n\r\n// Component SliderStage\r\nimport './lib/molecules/slider-stage/css/slider-stage.scss';\r\nimport './lib/molecules/slider-stage/js/slider-stage';\r\n\r\n// Component StageBrand\r\nimport './lib/molecules/stage-brand/css/stage-brand.scss';\r\nimport './lib/molecules/stage-brand/css/modifier/stage-brand--themes.scss';\r\nimport './lib/molecules/stage-brand/js/stage-brand';\r\n\r\n// Component StageHome\r\nimport './lib/molecules/stage-home/css/stage-home.scss';\r\nimport './lib/molecules/stage-home/css/modifier/video.scss';\r\n\r\n// Component StageKeyvisual\r\nimport './lib/molecules/stage-keyvisual/css/stage-keyvisual.scss';\r\nimport './lib/molecules/stage-keyvisual/css/modifier/stage-keyvisual--themes.scss';\r\nimport './lib/molecules/stage-keyvisual/js/stage-keyvisual';\r\n\r\n// Component StageKeyvisualCarousel\r\nimport './lib/molecules/stage-keyvisual-carousel/css/stage-keyvisual-carousel.scss';\r\nimport './lib/molecules/stage-keyvisual-carousel/css/modifier/stage-keyvisual-carousel--themes.scss';\r\nimport './lib/molecules/stage-keyvisual-carousel/js/stage-keyvisual-carousel';\r\n\r\n// Component StageOverview\r\nimport './lib/molecules/stage-overview/css/stage-overview.scss';\r\n\r\n// Component StageProduct\r\nimport './lib/molecules/stage-product/css/stage-product.scss';\r\nimport './lib/molecules/stage-product/css/modifier/stage-product--themes.scss';\r\nimport './lib/molecules/stage-product/js/stage-product';\r\n\r\n// Component StageContent\r\nimport './lib/molecules/stage-content/css/stage-content.scss';\r\nimport './lib/molecules/stage-content/css/modifier/stage-content--themes.scss';\r\nimport './lib/molecules/stage-content/js/stage-content';\r\n\r\n// Component StageContentHub\r\nimport './lib/molecules/stage-compact/css/stage-compact.scss';\r\nimport './lib/molecules/stage-compact/css/modifier/stage-compact--themes.scss';\r\nimport './lib/molecules/stage-compact/js/stage-compact';\r\n\r\n// Component StageCampaign\r\nimport './lib/molecules/stage-campaign/css/stage-campaign.scss';\r\nimport './lib/molecules/stage-campaign/css/modifier/video.scss';\r\nimport './lib/molecules/stage-campaign/js/stage-campaign';\r\n\r\n// Component StageEvent\r\nimport './lib/molecules/stage-event/css/stage-event.scss';\r\nimport './lib/molecules/stage-event/css/modifier/stage-event--themes.scss';\r\nimport './lib/molecules/stage-event/js/stage-event';\r\n\r\n// Component Table\r\nimport './lib/molecules/table/css/table.scss';\r\nimport './lib/molecules/table/css/modifier/table--named-properties.scss';\r\nimport './lib/molecules/table/css/modifier/table--technical-properties.scss';\r\nimport './lib/molecules/table/css/modifier/table-productfinder.scss';\r\nimport './lib/molecules/table/css/modifier/table--favourites-overview.scss';\r\n\r\n// Component TableFilter\r\nimport './lib/molecules/table-filter/css/table-filter.scss';\r\nimport './lib/molecules/table-filter/js/table-filter';\r\n\r\n// Component TableFilterV2\r\nimport './lib/molecules/table-filterv2/css/table-filterv2.scss';\r\nimport './lib/molecules/table-filterv2/js/table-filterv2';\r\n\r\n// Component Talk\r\nimport './lib/molecules/talk/css/talk.scss';\r\nimport './lib/molecules/talk/css/modifier/talk--theme.scss';\r\nimport './lib/molecules/talk/js/talk';\r\n\r\n// Component Talks\r\nimport './lib/molecules/talks/css/talks.scss';\r\nimport './lib/molecules/talks/css/modifier/talks--theme.scss';\r\nimport './lib/molecules/talks/js/talks';\r\n\r\n// Component TeaserBenefit\r\nimport './lib/molecules/teaser-benefit/css/teaser-benefit.scss';\r\nimport './lib/molecules/teaser-benefit/css/modifier/teaser-benefit-icons.scss';\r\nimport './lib/molecules/teaser-benefit/css/modifier/teaser-benefit-themes.scss';\r\nimport './lib/molecules/teaser-benefit/js/teaser-benefit';\r\n\r\n// Component TeaserApplication\r\nimport './lib/molecules/teaser-application/css/teaser-application.scss';\r\n\r\n// Component TeaserButton\r\nimport './lib/molecules/teaser-button/css/teaser-button.scss';\r\n\r\n// Component TeaserLogin\r\nimport './lib/molecules/teaser-login/css/teaser-login.scss';\r\n\r\n// Component TeaserCaseStudy\r\nimport './lib/molecules/teaser-case-study/css/teaser-case-study.scss';\r\n\r\n// Component TeaserContactForm\r\nimport './lib/molecules/teaser-contact-form/css/teaser-contact-form.scss';\r\nimport './lib/molecules/teaser-contact-form/js/teaser-contact-form';\r\nimport './lib/molecules/teaser-contact-form/css/modifier/teaser-contact-form--global-contact.scss';\r\nimport './lib/molecules/teaser-contact-form/css/modifier/teaser-contact-form--theme.scss';\r\n\r\n// Component TeaserContent\r\nimport './lib/molecules/teaser-content/css/teaser-content.scss';\r\nimport './lib/molecules/teaser-content/css/modifier/campaign.scss';\r\nimport './lib/molecules/teaser-content/css/modifier/teaser-content--themes.scss';\r\n\r\n// Component TeaserBrands\r\nimport './lib/molecules/teaser-brands/css/teaser-brands.scss';\r\nimport './lib/molecules/teaser-brands/css/modifier/campaign.scss';\r\nimport './lib/molecules/teaser-brands/css/modifier/teaser-brands--themes.scss';\r\n\r\n// Component TeaserVideo\r\nimport './lib/molecules/teaser-video/css/teaser-video.scss';\r\nimport './lib/molecules/teaser-video/css/modifier/teaser-video--themes.scss';\r\nimport './lib/molecules/teaser-video/js/teaser-video';\r\n\r\n// Component TeaserBanner\r\nimport './lib/molecules/teaser-banner/css/teaser-banner.scss';\r\nimport './lib/molecules/teaser-banner/css/modifier/teaser-banner--themes.scss';\r\n\r\n// Component TeaserFeatured\r\nimport './lib/molecules/teaser-featured/css/teaser-featured.scss';\r\n\r\n// Component TeaserLarge\r\nimport './lib/molecules/teaser-large/css/teaser-large.scss';\r\nimport './lib/molecules/teaser-large/css/modifier/teaser-large--themes.scss';\r\nimport './lib/molecules/teaser-large/js/teaser-large';\r\n\r\n\r\n// Component TeaserEvent\r\nimport './lib/molecules/teaser-event/css/teaser-event.scss';\r\nimport './lib/molecules/teaser-event/css/modifier/teaser-event--themes.scss';\r\nimport './lib/molecules/teaser-event/js/teaser-event';\r\n\r\n// Component Tooltip\r\nimport './lib/molecules/tooltip/css/tooltip.scss';\r\nimport './lib/molecules/tooltip/js/tooltip';\r\n\r\n// Component Tooltip Actions\r\nimport './lib/molecules/tooltip-actions/css/tooltip-actions.scss';\r\nimport './lib/molecules/tooltip-actions/js/tooltip-actions';\r\n\r\n// Component Scrollable Teaser\r\nimport './lib/molecules/scrollable-teaser/css/scrollable-teaser.scss';\r\nimport './lib/molecules/scrollable-teaser/css/modifier/scrollable-teaser--themes.scss';\r\nimport './lib/molecules/scrollable-teaser/js/scrollable-teaser';\r\n\r\nimport './lib/molecules/search-flyout/css/search-flyout.scss';\r\nimport './lib/molecules/search-flyout/js/search-flyout';\r\n\r\n// Component Scrollable Jobfeed\r\nimport './lib/molecules/scrollable-jobfeed/css/scrollable-jobfeed.scss';\r\nimport './lib/molecules/scrollable-jobfeed/css/modifier/scrollable-jobfeed--themes.scss';\r\nimport './lib/molecules/scrollable-jobfeed/js/scrollable-jobfeed';\r\n\r\n// Component Disclaimer\r\nimport './lib/molecules/disclaimer/css/disclaimer.scss';\r\nimport './lib/molecules/disclaimer/js/disclaimer';\r\n\r\n// Component Survey\r\nimport './lib/molecules/survey/css/survey.scss';\r\nimport './lib/molecules/survey/js/survey';\r\n\r\n// Component Lounge popup\r\nimport './lib/molecules/lounge-popup/css/lounge-popup.scss';\r\nimport './lib/molecules/lounge-popup/js/lounge-popup';\r\n\r\n// Component HTML container\r\nimport './lib/molecules/html-container/css/html-container.scss';\r\nimport './lib/molecules/html-container/js/html-container';\r\n\r\n// Component ICal Download\r\nimport './lib/molecules/iCal-download/css/iCal-download.scss';\r\nimport './lib/molecules/iCal-download/js/iCal-download';\r\n\r\n// Component Info List\r\nimport './lib/molecules/info-list/css/info-list.scss';\r\nimport './lib/molecules/info-list/js/info-list';\r\n\r\n// Component Investor Overview\r\nimport './lib/molecules/investor-overview/css/investor-overview.scss';\r\nimport './lib/molecules/investor-overview/css/modifier/investor-overview--themes.scss';\r\nimport './lib/molecules/investor-overview/js/investor-overview';\r\n\r\n// Component Lightbox\r\nimport './lib/molecules/lightbox/css/lightbox.scss';\r\nimport './lib/molecules/lightbox/js/lightbox';\r\n\r\n// Component LanguagePopup\r\nimport './lib/molecules/language-popup/css/language-popup.scss';\r\nimport './lib/molecules/language-popup/js/language-popup';\r\n\r\n// Component Customer lounge overview\r\nimport './lib/molecules/customer-lounge-overview/css/customer-lounge-overview.scss';\r\nimport './lib/molecules/customer-lounge-overview/css/modifier/customer-lounge-overview--themes.scss';\r\n\r\n// Component customer lounge brand intro\r\nimport './lib/molecules/customer-lounge-brand-intro/css/customer-lounge-brand-intro.scss';\r\nimport './lib/molecules/customer-lounge-brand-intro/js/customer-lounge-brand-intro';\r\n\r\n// Component customer lounge brand product table\r\nimport './lib/molecules/customer-lounge-brand-product-table/css/customer-lounge-brand-product-table.scss';\r\nimport './lib/molecules/customer-lounge-brand-product-table/js/customer-lounge-brand-product-table';\r\n\r\n// Component Hero Article Stage\r\nimport './lib/molecules/hero-article-stage/css/hero-article-stage.scss';\r\nimport './lib/molecules/hero-article-stage/css/modifier/hero-article-stage--themes.scss';\r\nimport './lib/molecules/hero-article-stage/js/hero-article-stage';\r\n\r\n// Component Customer lounge welcome\r\nimport './lib/molecules/customer-lounge-welcome/css/customer-lounge-welcome.scss';\r\n\r\n// Component contact teaser card\r\nimport './lib/molecules/contact-teaser-card/css/contact-teaser-card.scss';\r\nimport './lib/molecules/contact-teaser-card/js/contact-teaser-card';\r\n\r\n// Component contact teaser company card\r\nimport './lib/molecules/contact-teaser-company-card/css/contact-teaser-company-card.scss';\r\n\r\n// Component contact teaser popup\r\nimport './lib/molecules/contact-teaser-popup/css/contact-teaser-popup.scss';\r\nimport './lib/molecules/contact-teaser-popup/js/contact-teaser-popup';\r\n\r\n// Component contact teaser tile\r\nimport './lib/molecules/contact-teaser-tile/css/contact-teaser-tile.scss';\r\n\r\n// Component contact teaser large\r\nimport './lib/molecules/contact-teaser-large/css/contact-teaser-large.scss';\r\nimport './lib/molecules/contact-teaser-large/js/contact-teaser-large';\r\n\r\n// Component customer lounge project\r\nimport './lib/molecules/customer-lounge-project/css/customer-lounge-project.scss';\r\n\r\n// Component customer lounge brand teaser\r\nimport './lib/molecules/customer-lounge-brand-teaser/css/customer-lounge-brand-teaser.scss';\r\n\r\n// Component event list\r\nimport './lib/molecules/event-list/css/event-list.scss';\r\nimport './lib/molecules/event-list/js/event-list';\r\n\r\n// Component expansion panel\r\nimport './lib/molecules/expansion-panel/css/expansion-panel.scss';\r\nimport './lib/molecules/expansion-panel/css/modifier/expansion-panel--themes.scss';\r\nimport './lib/molecules/expansion-panel/js/expansion-panel';\r\n\r\n// Component marketo lightbox\r\nimport './lib/molecules/marketo-lightbox/css/marketo-lightbox.scss';\r\nimport './lib/molecules/marketo-lightbox/js/marketo-lightbox';\r\n\r\n// Component FilterMessage\r\nimport './lib/molecules/filter-message/css/filter-message.scss';\r\nimport './lib/molecules/filter-message/js/filter-message';\r\n\r\n\r\n// **************************\r\n// ORGANISMS\r\n// **************************\r\n// Easteregg\r\nimport './lib/organisms/easteregg/js/pacman.min';\r\n\r\n// Component Error404\r\nimport './lib/organisms/error-404/css/error-404.scss';\r\nimport './lib/organisms/error-404/js/error-404';\r\n\r\n// Component Footer\r\nimport './lib/organisms/footer/css/footer.scss';\r\nimport './lib/organisms/footer/css/modifier/campaign.scss';\r\n\r\n// Component Form\r\nimport './lib/organisms/form/css/form.scss';\r\nimport './lib/organisms/form/js/form';\r\n\r\n// Component Header\r\nimport './lib/organisms/header/css/header.scss';\r\nimport './lib/organisms/header/js/header';\r\n\r\n// Component Campaign Header\r\nimport './lib/organisms/header-campaign/css/header-campaign.scss';\r\nimport './lib/organisms/header-campaign/js/header-campaign';\r\n\r\n// Component Campaign Header\r\nimport './lib/organisms/header-campaign-collector/css/header-campaign-collector.scss';\r\nimport './lib/organisms/header-campaign-collector/js/header-campaign-collector';\r\n\r\n// Component ProductCompare\r\nimport './lib/organisms/product-compare/css/product-compare.scss';\r\nimport './lib/organisms/product-compare/js/product-compare';\r\n\r\n// Component ProductCompareV2\r\nimport './lib/organisms/product-compareV2/css/product-compareV2.scss';\r\nimport './lib/organisms/product-compareV2/js/product-compareV2';\r\n\r\n// Component ProductFinder\r\nimport './lib/organisms/product-finder/css/product-finder.scss';\r\nimport './lib/organisms/product-finderv2/css/product-finderv2.scss';\r\n\r\n// Component SearchApp\r\nimport './lib/organisms/search-app/css/search-app.scss';\r\nimport './lib/organisms/search-appv2/css/search-appv2.scss';\r\n\r\n// Component TeaserContentArea\r\nimport './lib/organisms/teaser-content-area/css/teaser-content-area.scss';\r\nimport './lib/organisms/teaser-content-area/css/mofidier/teaser-content-area--application.scss';\r\nimport './lib/organisms/teaser-content-area/css/mofidier/teaser-content-area--campaign.scss';\r\nimport './lib/organisms/teaser-content-area/css/mofidier/teaser-content-area--extended.scss';\r\nimport './lib/organisms/teaser-content-area/js/teaser-content-area';\r\n\r\n// Component Customer lounge navigation\r\nimport './lib/organisms/customer-lounge-navigation/css/customer-lounge-navigation.scss';\r\nimport './lib/organisms/customer-lounge-navigation/js/customer-lounge-navigation';\r\n\r\n// Component customer lounge project teaser\r\nimport './lib/organisms/customer-lounge-project-teaser/css/customer-lounge-project-teaser.scss';\r\nimport './lib/organisms/customer-lounge-project-teaser/js/customer-lounge-project-teaser';\r\n\r\n// Component My favourites\r\nimport './lib/organisms/favourites-overview/css/favourites-overview.scss';\r\nimport './lib/organisms/favourites-overview/js/favourites-overview';\r\n\r\n// Component Overview share favourites\r\nimport './lib/organisms/overview-share-favourites/css/overview-share-favourites.scss';\r\nimport './lib/organisms/overview-share-favourites/js/overview-share-favourites';\r\n\r\n// Component teaser filter area\r\nimport './lib/organisms/teaser-filter-area/css/teaser-filter-area.scss';\r\nimport './lib/organisms/teaser-filter-area/js/teaser-filter-area';\r\n\r\n// Component home scrollable teaser\r\nimport './lib/organisms/home-scrollable-teaser/css/home-scrollable-teaser.scss';\r\nimport './lib/organisms/home-scrollable-teaser/js/home-scrollable-teaser';\r\n\r\n// Safety Data Sheet Search\r\nimport './lib/organisms/sds-search/css/sds-search.scss';\r\nimport './lib/organisms/sds-search/js/sds-search';\r\n\r\n// component stage search new\r\nimport './lib/molecules/stage-search-new/css/stage-search-new.scss';\r\nimport './lib/molecules/stage-search-new/js/stage-search-new';\r\n\r\n// component stage product finder V2\r\nimport './lib/molecules/stage-product-finderv2-new/css/stage-product-finderv2-new.scss';\r\nimport './lib/molecules/stage-product-finderv2-new/js/stage-product-finderv2-new';\r\n\r\n// Teaser Tabs\r\nimport './lib/organisms/teaser-tabs/css/teaser-tabs.scss';\r\nimport './lib/organisms/teaser-tabs/css/modifier/teaser-tabs--themes.scss';\r\nimport './lib/organisms/teaser-tabs/js/teaser-tabs';\r\n\r\n//AddToCalendar\r\nimport './lib/atoms/addToCalendar/css/addToCalendar.scss';\r\nimport './lib/atoms/addToCalendar/js/addToCalendar';\r\n\r\n// Component Alert Banner\r\nimport './lib/atoms/alert-banner/css/alert-banner.scss';\r\nimport './lib/atoms/alert-banner/js/alert-banner';\r\n\r\n// Component Stage Crisis\r\nimport './lib/molecules/stage-crisis/css/stage-crisis.scss';\r\nimport './lib/molecules/stage-crisis/js/stage-crisis';\r\n\r\n// Component Crisis Teaser\r\nimport './lib/molecules/crisis-teaser/css/crisis-teaser.scss';\r\nimport './lib/molecules/crisis-teaser/js/crisis-teaser';\r\n\r\n// Component InvoiceTable\r\n import './lib/molecules/invoice-table/css/invoice-table.scss';\r\n import './lib/molecules/invoice-table/js/invoice-table';\r\n\r\n// **************************\r\n// INIT\r\n// **************************\r\n(window as any)['Terrific'] = T;\r\n\r\n// polyfill for custom events (IE)\r\n(function () {\r\n\tif (typeof (window as any)['CustomEvent'] === 'function') {\r\n\t\treturn false;\r\n\t}\r\n\tfunction CustomEvent(event: string, params: any) {\r\n\t\tparams = params || { bubbles: false, cancelable: false, detail: undefined };\r\n\t\tvar evt = document.createEvent('CustomEvent');\r\n\t\tevt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n\t\treturn evt;\r\n\t}\r\n\tCustomEvent.prototype = (window as any)['Event'].prototype;\r\n\t(window as any)['CustomEvent'] = CustomEvent;\r\n})();\r\n\r\nconst event = new CustomEvent('terrificAvailable');\r\ndocument.dispatchEvent(event);\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n\tT.bootstrap();\r\n});\r\n","// https://github.com/reeko/prevent-window-opener-attacks\r\nimport 'prevent-window-opener-attacks';\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { changeBodyState } from '@project/shared/utils/body-state/js/body-state';\r\nimport { getBodyState } from '@project/shared/utils/body-state/js/body-state';\r\nimport { updateNavLevel } from '@project/shared/utils/burger/js/burger';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst classes = {\r\n\touterParent: 'body',\r\n\tstateBurgerNav: 'state-m-burgernav--visible',\r\n};\r\n\r\n@createModule('Burger')\r\n/**\r\n * burger module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class Burger extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tthis.initBurger(this._ctx);\r\n\t\tonBreakpointChange(() => this.initBurger(this._ctx));\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\tinitBurger(ctx: HTMLElement) {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'small' || viewport === 'medium') {\r\n\t\t\t$(ctx)\r\n\t\t\t\t.off('click')\r\n\t\t\t\t.on('click', (ev: Event) => this.onClickBurger(ev));\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\t// remove event binding for burger\r\n\t\t\t$(ctx).off('click');\r\n\r\n\t\t\t// close mobile menu if resize was done while mobile nav was open\r\n\t\t\tif (getBodyState(classes.stateBurgerNav)) {\r\n\t\t\t\tthis.toggleNavigation();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * On Click event\r\n\t */\r\n\tonClickBurger(ev: Event) {\r\n\t\tev.preventDefault();\r\n\t\tif (getBodyState(classes.stateBurgerNav)) {\r\n\t\t\tupdateNavLevel();\r\n\t\t\t$(window).trigger('burgerClosed');\r\n\t\t} else {\r\n\t\t\t$(window).trigger('burgerOpened');\r\n\t\t}\r\n\t\tthis.toggleNavigation();\r\n\t}\r\n\r\n\ttoggleNavigation() {\r\n\t\t// toggle bodyclass\r\n\t\tchangeBodyState(classes.stateBurgerNav);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\n\r\n@createModule('Button')\r\n/**\r\n * Button Component\r\n * @constructor\r\n */\r\nexport class Button extends TerrificSpec {\r\n\t/**\r\n\t * start/init Nitro lifecycle hook\r\n\t * @param {function} resolve - Required parameter for start lifecycle\r\n\t * @returns {void} void\r\n\t */\r\n\tstart(resolve: () => void): void {\r\n\t\tif (this.isScrollTopBtn()) {\r\n\t\t\tthis._ctx.addEventListener('click', () => this.scrollToTop());\r\n\t\t}\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * stop/destroy Nitro lifecycle hook\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {\r\n\t\tif (this.isScrollTopBtn()) {\r\n\t\t\tthis._ctx.removeEventListener('click', () => {});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Scroll to top of the document\r\n\t * @returns {void}\r\n\t */\r\n\tscrollToTop() {\r\n\t\tscrollToElement($(document.body), false, 0);\r\n\t}\r\n\r\n\t/**\r\n\t * back-to-top button should contain the 'a-button--top' css class that comes from the button modifier 'top'\r\n\t * to separate its click event\r\n\t * @returns {boolean} boolean\r\n\t */\r\n\tisScrollTopBtn(): boolean {\r\n\t\treturn this._ctx.classList.contains('a-button--top');\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('Definitionlist')\r\n/**\r\n * definitionlist module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class Definitionlist extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('Heading')\r\n/**\r\n * heading module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class Heading extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","// https://github.com/aFarkas/lazysizes\r\nimport 'lazysizes/plugins/respimg/ls.respimg';\r\n\r\n// lazySizes.init();\r\nimport { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('Image')\r\n/**\r\n * image module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class Image extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\nimport * as Cookies from 'js-cookie';\r\n\r\nconst classes = {\r\n\tvideoEl: 'js-a-video__element',\r\n\tvideoConsentEl: 'js-a-video-consent__element',\r\n\tvideoCaption: 'js-a-video__caption',\r\n\tvideoPlay: 'mi-big-play-cover',\r\n\tvideoLocked: 'js-a-video__locked',\r\n\tvideoGatedPlay: 'js-a-video__gated-play',\r\n\tvideoOpenedBtn: 'js-a-video__opened-btn',\r\n};\r\n\r\nlet videoDataGlobal: any;\r\n\r\ninterface IvideoData {\r\n\tplayerId: string;\r\n\tvideoId: string;\r\n\tembedscript: string;\r\n\tflashPath: string;\r\n\tapiUrl: string;\r\n\tconfigType: string;\r\n\ttId: number;\r\n\tusercentricsDpsServiceName: string;\r\n\tmilestonePercentage: number;\r\n\tmktoenvId: string;\r\n}\r\n\r\n@createModule('VideoComponent')\r\n/**\r\n * Video component implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class VideoComponent extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tapi: any;\r\n\t$videoContainer: JQuery;\r\n\t$consentContainer: JQuery;\r\n\tvideoData: IvideoData;\r\n\tvideoName: string;\r\n\tcontainerId: string;\r\n\tconsentContainerId: string;\r\n\tprogressMarker: number[];\r\n\treachedMarker: number;\r\n\t$videoPlay: JQuery;\r\n\t$videoLocked: JQuery;\r\n\t$videoGatedPlay: JQuery;\r\n\t$videoOpenedBtn: JQuery;\r\n\tloggedPlayActivity: boolean;\r\n\tloggedReachedMilestoneActivity: boolean;\r\n\tmilestonePercentage: number;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$videoContainer = this.$ctx.find(`.${classes.videoEl}`);\r\n\t\tthis.$consentContainer = this.$ctx.find(`.${classes.videoConsentEl}`);\r\n\t\tthis.videoData = this.$ctx.data() as IvideoData;\r\n\t\tvideoDataGlobal = this.videoData;\r\n\t\tthis.milestonePercentage = this.videoData.milestonePercentage;\r\n\t\tthis.loggedPlayActivity = false;\r\n\t\tthis.loggedReachedMilestoneActivity = false;\r\n\t\tthis.addMiScript();\r\n\t\tthis.RegisteredUpdate();\r\n\t\t$(\"body\").addClass(\".state-m-navigation--scroll-0-position\");\r\n\r\n\t\tif (this.videoData.usercentricsDpsServiceName.length > 0) {\r\n\t\t\t/**\r\n\t\t * Handle Usercentrics consent changes.\r\n\t\t */\r\n\t\t\t(window as any).addEventListener(\"UC_UI_INITIALIZED\", function (e: CustomEvent) {\r\n\t\t\t\tconst services = (window as any).UC_UI.getServicesBaseInfo() as any[];\r\n\t\t\t\tvar sc = services.find(s => s.name === \"eVideo\");\r\n\r\n\t\t\t\tif (sc && sc.consent && sc.consent.status) {\r\n\t\t\t\t\tCookies.set(\"evideo_consent_accepted\", \"true\", { expires: 365 });\r\n\t\t\t\t\t$(\".js-a-video-consent__element\").hide();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlet cookieValue = Cookies.get(\"evideo_consent_accepted\");\r\n\t\t\t\t\tif (cookieValue != undefined) {\r\n\t\t\t\t\t\tif (cookieValue.length > 0) {\r\n\t\t\t\t\t\t\tCookies.remove(\"evideo_consent_accepted\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t/**\r\n\t\t\t * Handle Usercentrics consent changes. Check for Sitecore Analytics consent.\r\n\t\t\t */\r\n\t\t\t(window as any).addEventListener(\"ucEvent\", function (e: CustomEvent) {\r\n\t\t\t\tif (e.detail && e.detail.event == \"consent_status\") {\r\n\t\t\t\t\tconst dpsName = \"eVideo\";\r\n\t\t\t\t\tif (e.detail[dpsName] === true) {\r\n\t\t\t\t\t\t$(\".js-a-video-consent__element\").hide();\r\n\t\t\t\t\t\tif ((window as any).VideoPlayer != undefined) {\r\n\t\t\t\t\t\t\t(window as any).VideoPlayer.Collection.acceptAnalytics();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif ((window as any).VideoPlayer != undefined) {\r\n\t\t\t\t\t\t\t(window as any).VideoPlayer.Collection.rejectAnalytics();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * method is called to initialize MiScript\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\taddMiScript() {\r\n\t\tthis.containerId = `a-video__mi-player-${this.videoData.tId}`;\r\n\t\tthis.consentContainerId = `e-video-container-${this.videoData.tId}`;\r\n\t\tthis.$videoContainer.attr('id', this.containerId);\r\n\t\tthis.$consentContainer.attr('id', this.consentContainerId);\r\n\t\tlet cookieValue = Cookies.get(\"evideo_consent_accepted\");\r\n\t\tconst $script = this.videoData.usercentricsDpsServiceName.length > 0 && (cookieValue == undefined || cookieValue == \"false\")\r\n\t\t\t? $(``)\r\n\t\t\t: $(``);\r\n\t\t$script.attr('onload', () => {\r\n\t\t\tthis.onScriptLoaded(this.containerId);\r\n\t\t});\r\n\t\t$script.attr('src', this.videoData.embedscript);\r\n\t\t$(document.body).append($script);\r\n\t}\r\n\r\n\t/**\r\n\t * method is called when script was loaded\r\n\t *\r\n\t * @param {string} id id of videoplayer container\r\n\t * @returns {void}\r\n\t */\r\n\tonScriptLoaded(id: string) {\r\n\t\tif ((window as any).UC_UI_INITIALIZED) {\r\n\t\t\tif (this.videoData.usercentricsDpsServiceName.length > 0) {\r\n\t\t\t\tlet cookieValueUC = Cookies.get(\"evideo_consent_accepted\");\r\n\t\t\t\tif (cookieValueUC == undefined) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif ((window as any).VideoPlayer) {\r\n\t\t\t\t\t\tthis.initVideoPlayer(id);\r\n\t\t\t\t\t\t$(\".js-a-video-consent__element\").hide();\r\n\r\n\t\t\t\t\t\tif (window.location.href.indexOf(\"#vc_\") > -1) {\r\n\t\t\t\t\t\t\tvar containerId = window.location.href.split(\"#\")[1];\r\n\t\t\t\t\t\t\tvar videoContainer = $(\"#\" + containerId);\r\n\t\t\t\t\t\t\tif (videoContainer !== undefined) {\r\n\t\t\t\t\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\t\t\t\t\tscrollTop: $(\"#\" + containerId).offset().top\r\n\t\t\t\t\t\t\t\t}, 1000, () => {\r\n\t\t\t\t\t\t\t\t\t$(\"body\").addClass(\"state-m-navigation--scroll-0-position\")\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.onScriptLoaded(id);\r\n\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// Hack to be sure the videoplayer script was loaded\r\n\t\t\tif ((window as any).VideoPlayer) {\r\n\t\t\t\tthis.initVideoPlayer(id);\r\n\t\t\t} else {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.onScriptLoaded(id);\r\n\t\t\t\t}, 500);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method initializes movingimage video player\r\n\t *\r\n\t * @param {string} id id of videoplayer container\r\n\t * @returns {void}\r\n\t */\r\n\tinitVideoPlayer(id: string) {\r\n\t\tconst config: {\r\n\t\t\tsuccess: () => void;\r\n\t\t\tparameters: { configType: string; playerId: string; videoId: string; apiUrl: string; flashPath: string };\r\n\t\t} = {\r\n\t\t\tsuccess: this.onPlayerInit.bind(this),\r\n\t\t\tparameters: {\r\n\t\t\t\tconfigType: this.videoData.configType,\r\n\t\t\t\tplayerId: this.videoData.playerId,\r\n\t\t\t\tvideoId: this.videoData.videoId,\r\n\t\t\t\tapiUrl: this.videoData.apiUrl,\r\n\t\t\t\tflashPath: this.videoData.flashPath,\r\n\t\t\t},\r\n\t\t};\r\n\t\t(window as any).VideoPlayer.Collection.addPlayerById(this.containerId, config);\r\n\t}\r\n\r\n\t/**\r\n\t * method is called when player was initialized\r\n\t *\r\n\t * @param {object} api player api\r\n\t * @returns {void}\r\n\t */\r\n\tonPlayerInit(api: object) {\r\n\t\tthis.progressMarker = [25, 50, 75];\r\n\t\tthis.reachedMarker = 0;\r\n\t\tthis.api = api;\r\n\t\tthis.loggedPlayActivity = false;\r\n\t\tthis.loggedReachedMilestoneActivity = false;\r\n\t\tthis.videoName = this.getVideoName();\r\n\t\tthis.api.registerEventListener('play', this.onPlay.bind(this));\r\n\t\tthis.api.registerEventListener('pause', this.onPause.bind(this));\r\n\t\tthis.api.registerEventListener('ended', this.onEnded.bind(this));\r\n\t\tthis.api.registerEventListener('timeupdate', this.onTimeUpdate.bind(this));\r\n\t\tthis.api.registerEventListener('timeupdate', this.timeUpdateCallBack.bind(this));\r\n\t\tthis.api.registerEventListener('playing', this.playingCallback.bind(this));\r\n\t}\r\n\r\n\t/**\r\n\t * method trys to readout videoname and retuns best match\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tgetVideoName() {\r\n\t\tconst metaApi: any = this.api.getApi('metaData');\r\n\r\n\t\tif (metaApi) {\r\n\t\t\tconst metaTitle: string = metaApi.getVideoTitle();\r\n\t\t\tif (metaTitle) {\r\n\t\t\t\treturn metaTitle;\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst label: string = this.$ctx.find(`.${classes.videoCaption}`).text() || '';\r\n\t\tif (label.length) {\r\n\t\t\treturn label;\r\n\t\t}\r\n\t\treturn 'noName';\r\n\t}\r\n\r\n\t//Create a ClickLink Munchkin Activity when play is pressed\r\n\tplayingCallback() {\r\n\t\tif (this.loggedPlayActivity == false) {\r\n\t\t\t(window as any).Munchkin.init(this.videoData.mktoenvId);\r\n\t\t\t(window as any).Munchkin.munchkinFunction('clickLink', { href: '/VideoPlayed-' + this.videoData.videoId + '/?action=Pressed_Play' });\r\n\t\t\tthis.loggedPlayActivity = true;\r\n\t\t}\r\n\t}\r\n\r\n\t//Create a ClickLink Munchkin Activity when the milestone is passed\r\n\ttimeUpdateCallBack() {\r\n\t\tif (this.loggedReachedMilestoneActivity == false && this.milestoneInSeconds() < (window as any).VideoPlayer.Collection.getPlayerById(this.containerId).getCurrentTime()) {\r\n\t\t\tvar percentWatched = this.milestonePercentage + 'percent';\r\n\t\t\t(window as any).Munchkin.munchkinFunction('clickLink', {\r\n\t\t\t\thref: '/VideoWatched-' + percentWatched + '-' + this.videoData.videoId + '/?action=Milestone_Reached-' + percentWatched\r\n\t\t\t});\r\n\t\t\tthis.loggedReachedMilestoneActivity = true;\r\n\t\t}\r\n\t}\r\n\r\n\t//function to convert percentage to a number of seconds through loaded video\r\n\tmilestoneInSeconds() {\r\n\t\t//event.target is undefined, that is a bug that moving image should fix\r\n\t\t//that's the reason we need to fetch the video player again\r\n\t\tvar milestonePercentageAsDecimal = this.milestonePercentage / 100;\r\n\t\treturn milestonePercentageAsDecimal * (window as any).VideoPlayer.Collection.getPlayerById(this.containerId).getDuration();\r\n\t}\r\n\r\n\t/**\r\n\t * method is called when player starts to play\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonPlay() {\r\n\t\tthis.track('Played');\r\n\t}\r\n\r\n\t/**\r\n\t * method is called when player pauses\r\n\t *\r\n\t * @param {object} e event\r\n\t * @returns {void}\r\n\t */\r\n\tonPause(e: { time: number }) {\r\n\t\tconst currentTime = Math.round(e.time);\r\n\t\tif (currentTime < Math.floor(this.api.getDuration())) {\r\n\t\t\tthis.track('Paused', `${currentTime}`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method is called when player ends\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonEnded() {\r\n\t\tthis.track('100%');\r\n\t}\r\n\r\n\t/**\r\n\t * method is called when player time gets updated\r\n\t *\r\n\t * @param {object} e event\r\n\t * @returns {void}\r\n\t */\r\n\tonTimeUpdate(e: { time: number }) {\r\n\t\tconst percentPosition: number = Math.floor((100 * Math.round(e.time)) / this.api.getDuration());\r\n\t\tfor (let i: number = 0; i < this.progressMarker.length; i++) {\r\n\t\t\tconst marker = this.progressMarker[i];\r\n\t\t\tif (percentPosition >= marker && marker > this.reachedMarker) {\r\n\t\t\t\tthis.reachedMarker = marker;\r\n\t\t\t\tthis.track(`${marker}%`);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method tracks event\r\n\t *\r\n\t * @param {string} action tracking action name\r\n\t * @param {string} value tracking value\r\n\t * @returns {void}\r\n\t */\r\n\ttrack(action: string, value?: string) {\r\n\t\tconst trackdata: {\r\n\t\t\tevent: string;\r\n\t\t\teventCategory: string;\r\n\t\t\teventAction: string;\r\n\t\t\teventLabel: string;\r\n\t\t\teventValue?: string;\r\n\t\t} = {\r\n\t\t\tevent: 'video',\r\n\t\t\teventCategory: 'Video',\r\n\t\t\teventAction: action,\r\n\t\t\teventLabel: `${this.videoData.videoId}|${this.videoName}`,\r\n\t\t};\r\n\t\tif (value) {\r\n\t\t\ttrackdata.eventValue = value;\r\n\t\t}\r\n\t\tTrack.gtmTrack(trackdata);\r\n\t}\r\n\r\n\tRegisteredUpdate() {\r\n\t\tthis.$videoGatedPlay = this.$ctx.find(`.${classes.videoGatedPlay}`);\r\n\t\tthis.$videoOpenedBtn = this.$ctx.find(`.${classes.videoOpenedBtn}`);\r\n\t\tif (Track.isKnownMarketoLead()) {\r\n\t\t\tthis.$ctx.removeClass('a-video--locked');\r\n\t\t\tthis.$videoGatedPlay.on('click', this.triggerPlay.bind(this));\r\n\t\t\tthis.$videoOpenedBtn.on('click', this.triggerPlay.bind(this));\r\n\t\t}\r\n\t}\r\n\ttriggerPlay() {\r\n\t\tthis.$videoPlay = this.$ctx.find(`.${classes.videoPlay}`);\r\n\t\tthis.$videoLocked = this.$ctx.find(`.${classes.videoLocked}`);\r\n\t\tthis.$videoPlay.trigger('click');\r\n\t\tthis.$videoLocked.remove();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {\r\n\t\ttry {\r\n\t\t\t(window as any).VideoPlayer.Collection.removePlayerById(this.containerId);\r\n\t\t} catch (e) {\r\n\t\t\t// Intentionaly Empty\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport { floatControlLabel } from '@project/shared/utils/form-control/js/form-control';\r\n\r\n@createModule('Input')\r\nexport class Input extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\tthis._ctx.addEventListener('change', () => this._triggerChangeEvent());\r\n\t\t$ctx.on('change', () => this._triggerChangeEvent());\r\n\t\tthis._ctx.addEventListener('click', () => floatControlLabel(this._ctx, true));\r\n\t\tthis._ctx.addEventListener('focus', () => floatControlLabel(this._ctx, true));\r\n\t\tthis._ctx.addEventListener('keypress', (ev) => {\r\n\t\t\tif ($ctx.attr('type') === 'number' && isNaN(+ev.key)) {\r\n\t\t\t\tev.stopPropagation();\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\r\n\t\tfloatControlLabel(this._ctx);\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {\r\n\t\tthis._ctx.removeEventListener('change', () => {});\r\n\t\tthis._ctx.removeEventListener('click', () => {});\r\n\t}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t\tfloatControlLabel(this._ctx);\r\n\t}\r\n\r\n\t/**\r\n\t * Set the value of the input field\r\n\t */\r\n\tsetValue(value: string) {\r\n\t\t(this._ctx as HTMLInputElement).value = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the value of the input field\r\n\t */\r\n\tgetValue() {\r\n\t\treturn (this._ctx as HTMLInputElement).value;\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { PublicEvents, triggerPublicEvent } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('InputAutocomplete')\r\n/**\r\n * input-autocomplete module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class InputAutocomplete extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\nconst classes = {\r\n\tcheckboxElement: 'js-a-input-checkbox__input',\r\n};\r\n\r\n@createModule('InputCheckbox')\r\n/**\r\n * input-checkbox module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class InputCheckbox extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\tlet checkboxElement = $(`.${classes.checkboxElement}`, $ctx);\r\n\r\n\t\tcheckboxElement.change(() => {\r\n\t\t\tthis._triggerChangeEvent(checkboxElement.is(':checked'));\r\n\t\t});\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent(isChecked: boolean) {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx, isChecked);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('InputDate')\r\n/**\r\n * input-date module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class InputDate extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport * as noUiSlider from 'nouislider';\r\n\r\n@createModule('InputRangeSlider')\r\n/**\r\n * input-range-slider module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class InputRangeSlider extends TerrificSpec {\r\n\tslider: noUiSlider.Instance;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\tlet valueMin = $(this._ctx).data('value-min') as number;\r\n\t\tlet valueMax = $(this._ctx).data('value-max') as number;\r\n\r\n\t\tlet rangeMin = $(this._ctx).data('range-min') as number;\r\n\t\tlet rangeMax = $(this._ctx).data('range-max') as number;\r\n\r\n\t\tlet decimalSeparator = $(this._ctx).data('decimal-separator');\r\n\r\n\t\tthis.slider = $(this._ctx).find('.a-input-range-slider__container')[0] as noUiSlider.Instance;\r\n\r\n\t\tlet numberOfDecimals = this._calcNumberOfDecimals(rangeMin, rangeMax);\r\n\t\tlet marginBetweenHandles = this._calcMarginBetweenHandles(rangeMin, rangeMax);\r\n\r\n\t\t//const wNumb = require(\"wnumb\");\r\n\r\n\t\tnoUiSlider.create(this.slider, {\r\n\t\t\tstart: [valueMin, valueMax],\r\n\t\t\tconnect: true,\r\n\t\t\ttooltips: [true, true],\r\n\t\t\tmargin: marginBetweenHandles,\r\n\t\t\trange: {\r\n\t\t\t\tmin: rangeMin,\r\n\t\t\t\tmax: rangeMax,\r\n\t\t\t},\r\n\r\n\t\t\tformat: wNumb({\r\n\t\t\t\tdecimals: numberOfDecimals,\r\n\t\t\t\tmark: decimalSeparator,\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\tthis.slider.noUiSlider.on('update', (values, handle) => {\r\n\t\t\t$ctx.find('.js-handle-' + handle).val(values[handle]);\r\n\t\t\tthis._triggerChangeEvent(values);\r\n\t\t});\r\n\r\n\t\tthis.slider.noUiSlider.on('start', (values, handle) => {\r\n\t\t\t$ctx.find(\"[data-handle='\" + handle + \"'] .noUi-tooltip\").addClass('noUi-tooltip--active');\r\n\t\t});\r\n\r\n\t\tthis.slider.noUiSlider.on('end', (values, handle) => {\r\n\t\t\t$ctx.find(\"[data-handle='\" + handle + \"'] .noUi-tooltip\").removeClass('noUi-tooltip--active');\r\n\t\t});\r\n\r\n\t\tthis.slider.noUiSlider.on('change', (values, handle) => {\r\n\t\t\t$ctx.find('.js-handle-' + handle).val(values[handle]);\r\n\t\t\tthis._triggerReleaseEvent(values);\r\n\t\t});\r\n\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\t_calcNumberOfDecimals(rangeMin: number, rangeMax: number) {\r\n\t\tlet range = this._calcRange(rangeMax, rangeMin);\r\n\t\tlet numberOfDecimals = 1;\r\n\r\n\t\tswitch (true) {\r\n\t\t\tcase range <= 10:\r\n\t\t\t\tnumberOfDecimals = 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase range > 1000:\r\n\t\t\t\tnumberOfDecimals = 0;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tnumberOfDecimals = 1;\r\n\t\t}\r\n\t\treturn numberOfDecimals;\r\n\t}\r\n\r\n\t_calcMarginBetweenHandles(rangeMin: number, rangeMax: number) {\r\n\t\tlet range = this._calcRange(rangeMax, rangeMin);\r\n\t\tlet marginBetweenHandles = range * 0.05;\r\n\t\tlet widthOfRangerSlider = $(this._ctx).width();\r\n\r\n\t\tswitch (true) {\r\n\t\t\tcase widthOfRangerSlider <= 400:\r\n\t\t\t\tmarginBetweenHandles = marginBetweenHandles * 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase widthOfRangerSlider > 700:\r\n\t\t\t\treturn marginBetweenHandles;\r\n\t\t\tdefault:\r\n\t\t\t\tmarginBetweenHandles = marginBetweenHandles * 1.5;\r\n\t\t}\r\n\r\n\t\treturn marginBetweenHandles;\r\n\t}\r\n\r\n\t_calcRange(rangeMin: number, rangeMax: number) {\r\n\t\treturn Math.abs(rangeMax - rangeMin);\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\r\n\t/**\r\n\t * method to trigger public event\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerChangeEvent(value: Object) {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx, value);\r\n\t}\r\n\r\n\t/**\r\n\t * method to trigger public event\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerReleaseEvent(value: Object) {\r\n\t\ttriggerPublicEvent(PublicEvents.uxSubmit, this, this._ctx, value);\r\n\t}\r\n\r\n\tadjustSlider(leftHandleValue: number, rightHandleValue: number) {\r\n\t\tthis.slider.noUiSlider.set([leftHandleValue, rightHandleValue]);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('InputSearch')\r\n/**\r\n * input-search module implementation.\r\n *\r\n * @author Dishan Sivakumaran \r\n */\r\nexport class InputSearch extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import 'select2/dist/js/select2.full';\r\nimport { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { PublicEvents, triggerPublicEvent } from '@project/shared/utils/events/js/events';\r\nimport * as $ from 'jquery';\r\nimport { highlight } from '@project/shared/utils/highlight/js/highlight';\r\nimport { floatControlLabel } from '@project/shared/utils/form-control/js/form-control';\r\n\r\n@createModule('InputSelect')\r\n/**\r\n * input-select module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class InputSelect extends TerrificSpec {\r\n\tanimationFrameId: number;\r\n\tstart(resolve: () => void) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\tconst config = {\r\n\t\t\tsearch: $ctx.attr('data-search'),\r\n\t\t\tfullwidth: $ctx.attr('data-fullwidth'),\r\n\t\t\tautowidth: $ctx.attr('data-autowidth'),\r\n\t\t\tplaceholderWorkaroundList: $ctx.attr('data-placeholder-workaround-list'),\r\n\t\t\tplaceholderWorkaroundTop: $ctx.attr('data-placeholder-workaround-top'),\r\n\t\t\tcustomDropdownClass: $ctx.attr('data-custom-dropdown-class'),\r\n\t\t\tmodal: $ctx.attr('data-modal'),\r\n\t\t};\r\n\r\n\t\tthis._ctx.addEventListener('click', () => floatControlLabel(this._ctx, true));\r\n\t\tthis._ctx.addEventListener('focus', () => floatControlLabel(this._ctx, true));\r\n\t\tthis._ctx.addEventListener('uxSyncLabel', () => floatControlLabel(this._ctx, true));\r\n\t\tthis.animationFrameId = 0;\r\n\t\t$(window).on('resize', () => {\r\n\t\t\tif (this.animationFrameId > 0) {\r\n\t\t\t\twindow.cancelAnimationFrame(this.animationFrameId);\r\n\t\t\t}\r\n\t\t\tthis.animationFrameId = window.requestAnimationFrame(() => {\r\n\t\t\t\tthis.animationFrameId = 0;\r\n\t\t\t\tfloatControlLabel(this._ctx);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// need to timeout in order to prevent select2 rendering timing issue\r\n\t\tsetTimeout(() => {\r\n\t\t\tfloatControlLabel(this._ctx);\r\n\t\t}, 500);\r\n\r\n\t\tconst me = this._ctx;\r\n\t\tconst self = this;\r\n\r\n\t\tconst minSearchResults = config.search ? 0 : -1;\r\n\t\tlet width = config.fullwidth ? '100%' : 'element';\r\n\t\tif (config.autowidth) {\r\n\t\t\twidth = 'auto';\r\n\t\t}\r\n\r\n\t\tconst $select2 = ($ctx as any).select2({\r\n\t\t\tminimumResultsForSearch: minSearchResults,\r\n\t\t\twidth,\r\n\t\t\tdropdownAutoWidth: width === 'auto',\r\n\r\n\t\t\tdropdownCssClass: config.customDropdownClass,\r\n\t\t\tmatcher: (params: any, data: any) => {\r\n\t\t\t\tif (!params.term) {\r\n\t\t\t\t\t// reset html\r\n\t\t\t\t\tdata.html = data.text;\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (data.text.toUpperCase().indexOf(params.term.toUpperCase()) === 0) {\r\n\t\t\t\t\tdata.html = highlight(data.text, params.term);\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t\tescapeMarkup(markup: string) {\r\n\t\t\t\treturn markup;\r\n\t\t\t},\r\n\t\t\ttemplateResult(item: any) {\r\n\t\t\t\treturn item.html || item.text;\r\n\t\t\t},\r\n\t\t\ttemplateSelection(item: any) {\r\n\t\t\t\treturn item.text;\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\t$ctx.on('select2:open', function() {\r\n\t\t\tif (config.modal) {\r\n\t\t\t\tconst $body = $('body');\r\n\t\t\t\tconst $html = $('html');\r\n\t\t\t\tif ($body.outerHeight() > $html.outerHeight()) {\r\n\t\t\t\t\t$html.addClass('no-scrolling--with-scrollbar');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$html.addClass('no-scrolling--without-scrollbar');\r\n\t\t\t\t}\r\n\t\t\t\t$body.addClass('state-select2-dropdown--product-finder-teaser');\r\n\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t$body.addClass('state-select2-dropdown--product-finder-teaser-activated');\r\n\t\t\t\t}, 300);\r\n\t\t\t}\r\n\r\n\t\t\tfloatControlLabel(me, true);\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tconst $optionsElement = $('.select2-results__options');\r\n\t\t\t\tconst hasScrollbar = $optionsElement.get(0).scrollHeight > $optionsElement.height();\r\n\r\n\t\t\t\tif (hasScrollbar) {\r\n\t\t\t\t\t$('.select2-dropdown').addClass('select2-dropdown--add-space select2-dropdown--with-icon');\r\n\t\t\t\t} else if (!hasScrollbar && $('.select2-dropdown').hasClass('select2-dropdown--with-icon')) {\r\n\t\t\t\t\t$('.select2-dropdown').removeClass('select2-dropdown--with-icon');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// add listeneer to control the scroll icon\r\n\t\t\t\t$optionsElement.on('scroll', function() {\r\n\t\t\t\t\t// bottom end of scroll container reached\r\n\t\t\t\t\tif ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) {\r\n\t\t\t\t\t\t$('.select2-dropdown').removeClass('select2-dropdown--with-icon');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// scroll is somewhere else\r\n\t\t\t\t\t\t$('.select2-dropdown').addClass('select2-dropdown--with-icon');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (config.placeholderWorkaroundList) {\r\n\t\t\t\t\t$optionsElement.prepend(\r\n\t\t\t\t\t\t`
  • \r\n\t\t\t\t\t\t\t\t\t${config.placeholderWorkaroundList}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
  • `\r\n\t\t\t\t\t);\r\n\t\t\t\t\t$('.js-trigger-dropdown-close').on('click', () => $select2.select2('close'));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Overlay can have a closing text before the searchbox. As everything but the result list is cached, the\r\n\t\t\t\t * trigger inserted outside the result list needs to be deleted manually\r\n\t\t\t\t */\r\n\t\t\t\tif (config.placeholderWorkaroundTop) {\r\n\t\t\t\t\t$('.js-trigger-dropdown').remove();\r\n\t\t\t\t\t$('.select2-dropdown').prepend(\r\n\t\t\t\t\t\t`
    \r\n\t\t\t\t\t\t\t\t${config.placeholderWorkaroundTop}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    `\r\n\t\t\t\t\t);\r\n\t\t\t\t\t$('.js-trigger-dropdown-close').on('click', () => $select2.select2('close'));\r\n\t\t\t\t}\r\n\t\t\t}, 5);\r\n\r\n\t\t\ttriggerPublicEvent(PublicEvents.uxShow, self, me);\r\n\t\t});\r\n\r\n\t\t$ctx.on('select2:close', () => {\r\n\t\t\tfloatControlLabel(me, false);\r\n\t\t\ttriggerPublicEvent(PublicEvents.uxHide, self, me);\r\n\t\t\t$('body')\r\n\t\t\t\t.removeClass('state-select2-dropdown--product-finder-teaser')\r\n\t\t\t\t.removeClass('state-select2-dropdown--product-finder-teaser-activated');\r\n\t\t\t$('html')\r\n\t\t\t\t.removeClass('no-scrolling--with-scrollbar')\r\n\t\t\t\t.removeClass('no-scrolling--without-scrollbar');\r\n\t\t});\r\n\r\n\t\t$ctx.on('select2:select', () => {\r\n\t\t\tfloatControlLabel(me, false);\r\n\t\t\ttriggerPublicEvent(PublicEvents.uxChange, self, me, {});\r\n\t\t});\r\n\r\n\t\tif (config.modal) {\r\n\t\t\t$ctx.on('select2:opening', this._openModal.bind(this));\r\n\t\t\t$ctx.on('select2:close', this._closeModal.bind(this));\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\t/**\r\n\t * Set the value of the input field\r\n\t */\r\n\tsetValue(value: string) {\r\n\t\t(this._ctx as HTMLSelectElement).value = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the value of the input field\r\n\t */\r\n\tgetValue() {\r\n\t\treturn $(this._ctx as HTMLSelectElement)\r\n\t\t\t.find(':selected')\r\n\t\t\t.get(0).innerText;\r\n\t}\r\n\r\n\tgetOptionValue() {\r\n\t\treturn (this._ctx as HTMLSelectElement).value;\r\n\t}\r\n\r\n\t/**\r\n\t * send event in order to open modal window\r\n\t * add class in order to set z-index\r\n\t *\r\n\t * @param ev\r\n\t */\r\n\t_openModal(ev: any) {\r\n\t\t$(window).trigger('modalWindow:open');\r\n\t\t$(ev.currentTarget)\r\n\t\t\t.next('.select2.select2-container')\r\n\t\t\t.addClass('state-m-market-switch--overlay');\r\n\t}\r\n\r\n\t_closeModal(ev: any) {\r\n\t\t$(window).trigger('modalWindow:close');\r\n\t\t$(ev.currentTarget)\r\n\t\t\t.next('.select2.select2-container')\r\n\t\t\t.removeClass('state-m-market-switch--overlay');\r\n\t}\r\n}\r\n","export function highlight(text: string, search: string, modifier?: string): string {\r\n\tconst pattern = new RegExp(search, 'i');\r\n\tconst mod = (modifier && ` a-highlight--${modifier}`) || '';\r\n\r\n\treturn (text && search) ? text.replace(pattern, `${pattern.exec(text)}`) : text;\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport { floatControlLabel } from '@project/shared/utils/form-control/js/form-control';\r\n\r\n@createModule('InputTextarea')\r\n/**\r\n * input-textarea module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class InputTextarea extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tthis._ctx.addEventListener('change', () => this._triggerChangeEvent());\r\n\t\tthis._ctx.addEventListener('click', () => floatControlLabel(this._ctx, true));\r\n\t\tthis._ctx.addEventListener('focus', () => floatControlLabel(this._ctx, true));\r\n\r\n\t\tfloatControlLabel(this._ctx);\r\n\t\tresolve();\r\n\t}\r\n\tstop() {\r\n\t\tthis._ctx.removeEventListener('change', () => {});\r\n\t\tthis._ctx.removeEventListener('click', () => {});\r\n\t}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t\tfloatControlLabel(this._ctx);\r\n\t}\r\n\r\n\t/**\r\n\t * Set the value of the input field\r\n\t */\r\n\tsetValue(value: string) {\r\n\t\t(this._ctx as HTMLInputElement).value = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the value of the input field\r\n\t */\r\n\tgetValue() {\r\n\t\treturn (this._ctx as HTMLInputElement).value;\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('Label')\r\n/**\r\n * label module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class Label extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { PublicEvents, triggerPublicEvent } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('Link')\r\n/**\r\n * heading module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class Link extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","// https://github.com/aFarkas/lazysizes\r\nimport 'lazysizes/plugins/respimg/ls.respimg';\r\n\r\n// lazySizes.init();\r\nimport { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('ImageWithLink')\r\n/**\r\n * ImageWithLink module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class ImageWithLink extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('ListUnordered')\r\n/**\r\n * list module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class ListUnordered extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { PublicEvents, triggerPublicEvent } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('LoadingIndicator')\r\n/**\r\n * loading-indicator module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class LoadingIndicator extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('SearchTrigger')\r\n/**\r\n * search-trigger module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class SearchTrigger extends TerrificSpec {\r\n\tsearchFlyoutIsOpen: boolean = false;\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\t$($ctx)\r\n\t\t\t.find('.js-search-trigger')\r\n\t\t\t.on('click', this._handleTrigger.bind(this));\r\n\r\n\t\t$(window).on('searchFlyout:close', this._close.bind(this));\r\n\t\tresolve();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\t/**\r\n\t * method to trigger public event\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n\r\n\t_close() {\r\n\t\t//toggle icon\r\n\t\t$('.js-search-trigger').removeClass('a-search-trigger__item-link--active');\r\n\t\t$(window).trigger('modalWindow:close');\r\n\t\t//apply header z-index Fix\r\n\t\t$('.o-header').removeClass('o-header--alter-zindex');\r\n\t\tthis.searchFlyoutIsOpen = false;\r\n\t}\r\n\r\n\t_handleTrigger(ev: Event) {\r\n\t\tif (this.searchFlyoutIsOpen === true) {\r\n\t\t\t//hide flyout\r\n\t\t\t$(window).trigger('searchFlyout:close');\r\n\t\t} else {\r\n\t\t\t$(window).trigger('modalWindow:open');\r\n\r\n\t\t\t//apply header z-index Fix\r\n\t\t\t$('.o-header').addClass('o-header--alter-zindex');\r\n\r\n\t\t\t//hide flyout\r\n\t\t\t$('.js-flyout-container').addClass('m-search-flyout--active');\r\n\r\n\t\t\t//toggle icon\r\n\t\t\t$('.js-search-trigger').addClass('a-search-trigger__item-link--active');\r\n\r\n\t\t\t$(window).trigger('searchFlyout:open');\r\n\r\n\t\t\tthis.searchFlyoutIsOpen = true;\r\n\t\t}\r\n\r\n\t\tev.preventDefault();\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('TagFilter')\r\n/**\r\n * tag-filter module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class TagFilter extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('ValidationSummary')\r\n/**\r\n * validation-summary module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class ValidationSummary extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\taccordionElement: 'js-m-accordion-element',\r\n\ttrigger: 'js-m-accordion-element__trigger',\r\n\tactiveState: 'state-m-accordion-element--active',\r\n\tdoNotClose: 'js-m-accordion--donotclose',\r\n};\r\n\r\n@createModule('Accordion')\r\n/**\r\n * Accordion module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class Accordion extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$accordionElements: JQuery;\r\n\tdoNotClose: boolean;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$accordionElements = this.$ctx.find(`.${classes.accordionElement}`);\r\n\t\tthis.doNotClose = this.$ctx.hasClass(classes.doNotClose);\r\n\t\tthis.$ctx.find(`.${classes.trigger}`).on('click', this.onTriggerClick.bind(this));\r\n\t\tresolve();\r\n\t}\r\n\r\n\tonTriggerClick(ev: Event) {\r\n\t\tconst $accordionElement = $(ev.currentTarget).closest(`.${classes.accordionElement}`) as JQuery;\r\n\t\t$accordionElement.toggleClass(classes.activeState);\r\n\t\tif (!this.doNotClose) {\r\n\t\t\tthis.$accordionElements.not($accordionElement).removeClass(classes.activeState);\r\n\t\t}\r\n\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('BrandBenefitList')\r\n/**\r\n * brand-benefit-list module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class BrandBenefitList extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('BrandProductAccordion')\r\n/**\r\n * product-accordion module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class BrandProductAccordion extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\n// @ts-ignore\r\nimport * as IScroll from 'iscroll';\r\n\r\nconst classes = {\r\n\tstateActive: 'state-m-breadcrumb__item--is-active',\r\n\tstateShowAll: 'state-m-breadcrumb--show-all',\r\n\tstateEllipsis: 'state-m-breadcrumb--show-ellipsis',\r\n\tflyoutOpener: 'js-m-breadcrumb__opener',\r\n\tflyout: 'js-m-breadcrumb__flyout',\r\n\tnavItem: 'js-m-breadcrumb__item',\r\n\tscroller: 'js-m-breadcrumb__scroller',\r\n\tscrollerContent: 'js-m-breadcrumb__scroller-content',\r\n\tellipsisToggle: 'js-m-breadcrumb__ellipsis-toggle',\r\n};\r\n\r\nlet initialContentWidth = 0;\r\nlet breadcrumbScroll: IScroll;\r\n\r\n@createModule('Breadcrumb')\r\n/**\r\n * Breadcrumb module implementation.\r\n *\r\n * @author Christoph Merkelbach \r\n */\r\nexport class Breadcrumb extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\t//adds event handler to open flyouts\r\n\t\tthis.initBreadcrumbOpening($ctx);\r\n\r\n\t\tbreadcrumbScroll = new IScroll(`.${classes.scroller}`, {\r\n\t\t\tmouseWheel: true,\r\n\t\t\tscrollbars: false,\r\n\t\t\tscrollX: true,\r\n\t\t\tscrollY: false,\r\n\t\t});\r\n\r\n\t\tinitialContentWidth = $(`.${classes.scrollerContent}`, $ctx).innerWidth();\r\n\r\n\t\tthis.setEllipsisWhenNotEnoughSpace($ctx);\r\n\r\n\t\t$(window).on('resize.BreadcrumbEllipsing', () => {\r\n\t\t\tthis.setEllipsisWhenNotEnoughSpace($ctx);\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\tinitBreadcrumbOpening($ctx: JQuery) {\r\n\t\tconst breadcrumbOpener = $(`.${classes.navItem}`, $ctx),\r\n\t\t\tellipsisToggle = $(`.${classes.ellipsisToggle}`, $ctx);\r\n\r\n\t\tellipsisToggle.on('click.EnterScrollMode', () => {\r\n\t\t\t$ctx.addClass(classes.stateShowAll);\r\n\t\t\tthis.refreshScroll();\r\n\t\t});\r\n\r\n\t\tbreadcrumbOpener.each((index, elem) => {\r\n\t\t\tlet flyoutOpener = $(elem).find(`.${classes.flyoutOpener}`);\r\n\t\t\tflyoutOpener.on('click.OpenBreadcrumb', (event: Event) => {\r\n\t\t\t\tif (!$(elem).hasClass(classes.stateActive)) {\r\n\t\t\t\t\tthis.openFlyoutAndDisableScrolling(elem, breadcrumbScroll, breadcrumbOpener);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.closeAllFlyoutsAndReenableScrolling(breadcrumbScroll, breadcrumbOpener);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.refreshScroll();\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t});\r\n\r\n\t\t\t// needed to not trigger touchend on body on mobile devices when flyoutOpener is hit to prevent toggle off/on effect and closing when inner touch-scrolling ends\r\n\t\t\t$(elem).on('touchend.OpenBreadCrumb', (event: Event) => {\r\n\t\t\t\tif ($(elem).hasClass(classes.stateActive)) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t$('body').on('click.closeBreadCrumb touchend.closeBreadCrumb', () => {\r\n\t\t\tthis.closeAllFlyoutsAndReenableScrolling(breadcrumbScroll, breadcrumbOpener);\r\n\t\t});\r\n\t}\r\n\r\n\topenFlyoutAndDisableScrolling(flyoutElement: HTMLElement, breadcrumbScroll: IScroll, breadcrumbOpener: JQuery) {\r\n\t\tbreadcrumbScroll.disable();\r\n\t\tbreadcrumbOpener.removeClass(classes.stateActive);\r\n\t\t$(flyoutElement).addClass(classes.stateActive);\r\n\t\tbreadcrumbScroll.refresh();\r\n\t\tthis.autoScrollIfOutOfScreen(flyoutElement);\r\n\t}\r\n\r\n\tautoScrollIfOutOfScreen(flyoutElement: HTMLElement) {\r\n\t\tconst flyoutLeft = $(flyoutElement)\r\n\t\t\t.find(`.${classes.flyout}`)\r\n\t\t\t.offset().left;\r\n\t\tconst flyoutWidth = $(flyoutElement)\r\n\t\t\t.find(`.${classes.flyout}`)\r\n\t\t\t.width();\r\n\t\tconst offset = 10;\r\n\r\n\t\tif (flyoutLeft < offset) {\r\n\t\t\tbreadcrumbScroll.scrollToElement(flyoutElement, 300, -1 * offset);\r\n\t\t} else if (flyoutLeft >= offset && flyoutLeft + flyoutWidth + offset > $('body').width()) {\r\n\t\t\tbreadcrumbScroll.scrollToElement(flyoutElement, 300, offset - ($('body').width() - flyoutWidth));\r\n\t\t}\r\n\t}\r\n\r\n\tcloseAllFlyoutsAndReenableScrolling(breadcrumbScroll: IScroll, breadcrumbOpener: JQuery) {\r\n\t\tbreadcrumbScroll.enable();\r\n\t\tbreadcrumbOpener.removeClass(classes.stateActive);\r\n\t}\r\n\r\n\tsetEllipsisWhenNotEnoughSpace($ctx: JQuery) {\r\n\t\tconst isNotEnoughSpace = $(`.${classes.scroller}`, $ctx).outerWidth() < initialContentWidth;\r\n\t\t$ctx.toggleClass(classes.stateEllipsis, isNotEnoughSpace);\r\n\t\tthis.refreshScroll();\r\n\t}\r\n\r\n\trefreshScroll() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tbreadcrumbScroll.refresh();\r\n\t\t}, 0);\r\n\t}\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { MarketoLightbox } from '../../../molecules/marketo-lightbox/js/marketo-lightbox';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\tlightboxComponent: \"js-m-marketo-lightbox-component\"\r\n}\r\n\r\nconst moduleName = \"CampaignDownload\";\r\n@createModule('CampaignDownload')\r\nexport class CampaignDownload extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tautoDownload: boolean;\r\n\tdownloadLink: string;\r\n\tflowId: string;\r\n\tnoActionForKnownUsers: boolean;\r\n\tcloseButtonDisabled: boolean;\r\n\tthemeAttribute: string;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.autoDownload = this.$ctx.data(\"auto-download\");\r\n\t\tthis.downloadLink = this.$ctx.data(\"download-url\");\r\n\t\tthis.flowId = this.$ctx.data(\"mkto-flowid\");\r\n\t\tthis.noActionForKnownUsers = this.$ctx.data(\"no-action\");\r\n\t\tthis.closeButtonDisabled = this.$ctx.data(\"mktoflow-close-disabled\");\r\n\t\tthis.themeAttribute = this.$ctx.data(\"mkto-themeattribute\");\r\n\r\n\t\tif (this.autoDownload) {\r\n\t\t\tif (this.flowId != undefined) {\r\n\t\t\t\tif (this.flowId.length > 0) {\r\n\t\t\t\t\tif (!Track.isKnownMarketoLead()) {\r\n\t\t\t\t\t\tlet lightboxComponent = $(\"html\").find(`.${classes.lightboxComponent}`);\r\n\t\t\t\t\t\tif (lightboxComponent.length > 0) {\r\n\t\t\t\t\t\t\tlet lightbox = getModuleByDomNode(lightboxComponent[0]) as MarketoLightbox;\r\n\t\t\t\t\t\t\tlightbox.start(resolve);\r\n\t\t\t\t\t\t\tlightbox.getMktoLightboxView(this.flowId, this.downloadLink, this.closeButtonDisabled, this.themeAttribute);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tconsole.log(`${moduleName}, lightboxComponent doesn't exist on current page.`);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (Track.isKnownMarketoLead() && !this.noActionForKnownUsers) {\r\n\t\t\t\t\t\twindow.location.href = this.downloadLink;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tconsole.log(`${moduleName}, known user: ${Track.isKnownMarketoLead()}, no action: ${this.noActionForKnownUsers}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tresolve();\r\n\t}\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('CategoryTags')\r\n/**\r\n * category-tags module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class CategoryTags extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\nimport 'select2'; // globally assign select2 fn to $ element\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\tpopup: 'js-o-inquiry-contact-teaser__popup',\r\n\tpopupClose: 'js-o-inquiry-contact-teaser__popup-close',\r\n\tpopupMask: 'js-o-inquiry-contact-teaser__popup-mask',\r\n\tstatusPopupActive: 'status-o-inquiry-contact-teaser-buttons__popup--visible',\r\n\tsubmitForm: 'js-form__button-event--submit',\r\n\tcancelForm: 'js-form__button-event--cancel',\r\n\tfocusElement: 'js-form__event-show-additional-fields',\r\n\tadditionalFields: 'js-form__additional-fields',\r\n\tstateFormOrderAdditionalFieldsVisible: 'state-m-teaser-contact-form--show-additional-fields',\r\n\tstateFormOrderHiddenAfterSubmit: 'state-m-teaser-contact-form--hidden-after-submit',\r\n\tinputSelect: 'js-form__input-select',\r\n\tinputTextArea: 'js-form__input-textarea',\r\n\tinput: 'js-form__input',\r\n\tinputCheckBox: 'a-input-checkbox__input',\r\n\tinquiryTypeInputSelect: 'js-form__input-inquiry-type',\r\n\tsdsLinkColumn: 'js-o-form__grid-col-sds-link',\r\n\tinquiryTextboxColumn: 'js-o-form__grid-col-inquiry-textbox',\r\n\r\n\tinputSelectCategoryType: 'js-form__input-category-type',\r\n\tinputSelectCheckMark: 'a-input-select--global-has-check',\r\n\tcategoryInputContainer: 'o-form__grid-col--input-category',\r\n\tcategoryInputField: 'js-a-input--category',\r\n};\r\n\r\nconst optionValues = {\r\n\tother: 'other',\r\n\tproductSafetyDataSheets: 'product safety data sheets',\r\n};\r\n\r\n@createModule('InquiryContactTeaser')\r\n/**\r\n * @author\r\n */\r\nexport class TeaserFilterArea extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$inputSelect: JQuery;\r\n\t$inputCheckBox: JQuery;\r\n\t$input: JQuery;\r\n\r\n\tfocusFromScrollReached: boolean = false;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tconst $popup = this.$ctx.find(`.${classes.popup}`);\r\n\t\tconst $popupClose = this.$ctx.find(`.${classes.popupClose}`);\r\n\t\tconst $popupMask = this.$ctx.find(`.${classes.popupMask}`);\r\n\r\n\t\t$popupClose.on('click', this.hidePopup.bind(this));\r\n\t\t$popupMask.on('click', this.hidePopup.bind(this));\r\n\r\n\t\t$popup.each((i, e) => {\r\n\t\t\tconst name = '#' + $(e).attr('id');\r\n\t\t\tif (window.location.hash.length > 0 && name == window.location.hash) {\r\n\t\t\t\t$(e).addClass(classes.statusPopupActive);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$('#requestasamplesitecoreform').hide();\r\n\t\t$('#requestaquotesitecoreform').hide();\r\n\t\tthis.initFormHadling();\r\n\r\n\t\tthis.onClickAnchor();\r\n\t\tthis.onClickLink($('.js-m-stage-product__button'));\r\n\t\tif ($('.js-m-stage-product__button').length > 0) {\r\n\t\t\tthis.onClickLink($('.js-m-navigation-in-page__cta'));\r\n\t\t}\r\n\r\n\t\t$('.js-m-navigation-in-page__list-items').on('click', '[href=\"#' + formID + '\"]', (ev: Event) => {\r\n\t\t\tev.preventDefault();\r\n\t\t\tthis.onFocusAreaFocus();\r\n\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t});\r\n\r\n\t\tif (this.$ctx.data('api-endpoint')) {\r\n\t\t\tthis.prefillFormData();\r\n\t\t}\r\n\r\n\t\tthis.$inputSelect = this.$ctx.find(`.${classes.inputSelect}`);\r\n\t\tthis.$inputCheckBox = this.$ctx.find(`.${classes.inputCheckBox}`);\r\n\t\tthis.$input = this.$ctx.find(`.${classes.input}`);\r\n\t\tthis.$inputSelect.on('change', (ev: Event) => this.inputSelecteOptionChanged(ev));\r\n\t\tthis.addOtherOptionForMaterialTag();\r\n\t\tthis.setMaterialTagDefaultValue();\r\n\r\n\t\t//Click button to open the form\r\n\t\tthis.onClickPopupAnchor();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tshowPopup(ev: Event) {\r\n\t\tconst $this = $(ev.currentTarget);\r\n\t\t$this.next().addClass(classes.statusPopupActive);\r\n\t}\r\n\r\n\thidePopup(ev: Event) {\r\n\t\tconst $this = $(ev.currentTarget);\r\n\t\t$this.closest(`.${classes.popup}`).removeClass(classes.statusPopupActive);\r\n\t}\r\n\r\n\tonClickPopupAnchor() {\r\n\t\t$('html')\r\n\t\t\t.find('a')\r\n\t\t\t.on('click', (ev: any) => {\r\n\t\t\t\tconst anchor = $(ev.currentTarget);\r\n\t\t\t\tconst url = anchor.attr('href');\r\n\t\t\t\tconst idx = url !== undefined ? url.indexOf('#') : -1;\r\n\r\n\t\t\t\tif (idx === 0) {\r\n\t\t\t\t\tconst target = $(url.substring(idx));\r\n\t\t\t\t\tif (target.length === 1 && target.hasClass(classes.popup)) {\r\n\t\t\t\t\t\ttarget.addClass(classes.statusPopupActive);\r\n\r\n\t\t\t\t\t\tif (target) {\r\n\t\t\t\t\t\t\tconst formId = $(target).attr('id'); // Get the form ID\r\n\t\t\t\t\t\t\tconst scformName =\r\n\t\t\t\t\t\t\t\t$(target).find(\"input[data-sc-field-name='HiddenFormName']\").length > 0\r\n\t\t\t\t\t\t\t\t\t? $(target)\r\n\t\t\t\t\t\t\t\t\t\t\t.find(\"input[data-sc-field-name='HiddenFormName']\")\r\n\t\t\t\t\t\t\t\t\t\t\t.val()\r\n\t\t\t\t\t\t\t\t\t: '';\r\n\t\t\t\t\t\t\tconst scSendDataToGtm =\r\n\t\t\t\t\t\t\t\t$(target).find(\"input[data-sc-field-name='SendDataToGTM']\").length > 0\r\n\t\t\t\t\t\t\t\t\t? $(target)\r\n\t\t\t\t\t\t\t\t\t\t\t.find(\"input[data-sc-field-name='SendDataToGTM']\")\r\n\t\t\t\t\t\t\t\t\t\t\t.val()\r\n\t\t\t\t\t\t\t\t\t: false;\r\n\r\n\t\t\t\t\t\t\tlet formName = scformName\r\n\t\t\t\t\t\t\t\t? scformName\r\n\t\t\t\t\t\t\t\t: $(target).attr('data-form-name') !== undefined\r\n\t\t\t\t\t\t\t\t\t? $(target).attr('data-form-name')\r\n\t\t\t\t\t\t\t\t\t: '';\r\n\t\t\t\t\t\t\tconst sendDataToGtm =\r\n\t\t\t\t\t\t\t\tscSendDataToGtm !== undefined && scSendDataToGtm === 'Yes'\r\n\t\t\t\t\t\t\t\t\t? true\r\n\t\t\t\t\t\t\t\t\t: $(target).attr('data-sc-send-data-to-gtm')\r\n\t\t\t\t\t\t\t\t\t\t? true\r\n\t\t\t\t\t\t\t\t\t\t: false;\r\n\r\n\t\t\t\t\t\t\tif (sendDataToGtm) {\r\n\t\t\t\t\t\t\t\tconst trackdata: {\r\n\t\t\t\t\t\t\t\t\tevent: string;\r\n\t\t\t\t\t\t\t\t\tform_id: string;\r\n\t\t\t\t\t\t\t\t\tform_name: string;\r\n\t\t\t\t\t\t\t\t\tform_destination: string;\r\n\t\t\t\t\t\t\t\t\tform_submit_text: string;\r\n\t\t\t\t\t\t\t\t} = {\r\n\t\t\t\t\t\t\t\t\tevent: 'form_start',\r\n\t\t\t\t\t\t\t\t\tform_id: formId,\r\n\t\t\t\t\t\t\t\t\tform_name: formName.toString(),\r\n\t\t\t\t\t\t\t\t\tform_destination: '',\r\n\t\t\t\t\t\t\t\t\tform_submit_text: '',\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tinitFormHadling() {\r\n\t\tthis.$ctx.on('focus', `.${classes.focusElement}`, this.onFocusAreaFocus.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.cancelForm}`, this.onCancleClick.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.submitForm}`, this.onFormSubmit.bind(this));\r\n\t}\r\n\r\n\tonFocusAreaFocus() {\r\n\t\tthis.$ctx.find(`.${classes.additionalFields}`).addClass(classes.stateFormOrderAdditionalFieldsVisible);\r\n\t\tif (!this.focusFromScrollReached) {\r\n\t\t\tif ($('.js-m-navigation-in-page__wrapper').length > 0) {\r\n\t\t\t\tscrollToElement(this.$ctx, true, $('.js-m-navigation-in-page__wrapper').height() + 20);\r\n\t\t\t} else {\r\n\t\t\t\tscrollToElement(this.$ctx, true, 70);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.focusFromScrollReached = false;\r\n\t\t}\r\n\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t}\r\n\r\n\tonCancleClick() {\r\n\t\tthis.$ctx.find(`.${classes.additionalFields}`).removeClass(classes.stateFormOrderAdditionalFieldsVisible);\r\n\t\tscrollToElement(this.$ctx, true);\r\n\t}\r\n\r\n\tonFormSubmit(ev: Event) {\r\n\t\tvar validate = true;\r\n\t\tvar formElement = $(ev.target).closest('form');\r\n\t\tvar formInputSelect = formElement.find(`.${classes.inputSelect}`);\r\n\t\tvar formInputs = formElement.find(`.${classes.input}`);\r\n\t\tvar formCheckboxs = formElement.find(`.${classes.inputCheckBox}`);\r\n\t\tvar formTextArea = formElement.find(`.${classes.inputTextArea}`);\r\n\r\n\t\tformInputSelect.each(function(index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr('data-val');\r\n\t\t\tif (typeof dataValRequired !== 'undefined' && dataValRequired !== '' && dataValRequired !== null) {\r\n\t\t\t\tif ($(item).val() == '') {\r\n\t\t\t\t\t$(item).addClass('state-a-input--has-error');\r\n\t\t\t\t\t$(item)\r\n\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t.text($(item).attr('data-val-required'));\r\n\t\t\t\t\t$(item)\r\n\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t.addClass('field-validation-error');\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tformInputs.each(function(index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr('data-val');\r\n\t\t\tif (typeof dataValRequired !== 'undefined' && dataValRequired !== '' && dataValRequired !== null) {\r\n\t\t\t\tif ($(item).val() == '') {\r\n\t\t\t\t\t$(item).addClass('input-validation-error');\r\n\t\t\t\t\t$(item)\r\n\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t.addClass('field-validation-error');\r\n\t\t\t\t\t$(item)\r\n\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t.text($(item).attr('data-val-required'));\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tformTextArea.each(function(index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr('data-val');\r\n\t\t\tif (typeof dataValRequired !== 'undefined' && dataValRequired !== '' && dataValRequired !== null) {\r\n\t\t\t\tif ($(item).val() == '') {\r\n\t\t\t\t\t$(item).addClass('input-validation-error');\r\n\t\t\t\t\t$(item)\r\n\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t.addClass('field-validation-error');\r\n\t\t\t\t\t$(item)\r\n\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t.text($(item).attr('data-val-required'));\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tformTextArea.each(function(index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr('data-val');\r\n\t\t\tif (typeof dataValRequired !== 'undefined' && dataValRequired !== '' && dataValRequired !== null) {\r\n\t\t\t\tif ($(item).val() == '') {\r\n\t\t\t\t\t$(item).addClass('input-validation-error');\r\n\t\t\t\t\t$(item)\r\n\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t.addClass('field-validation-error');\r\n\t\t\t\t\t$(item)\r\n\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t.text($(item).attr('data-val-required'));\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tformCheckboxs.each(function(index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr('data-val');\r\n\t\t\tif (typeof dataValRequired !== 'undefined' && dataValRequired !== '' && dataValRequired !== null) {\r\n\t\t\t\tif (!$(item).is(':checked')) {\r\n\t\t\t\t\t$(item).addClass('input-validation-error');\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (validate) {\r\n\t\t\tconst divContainer: any = $(ev.currentTarget).closest('div.o-inquiry-contact-teaser__popup-container');\r\n\t\t\tconst hiddenMktoForm: any =\r\n\t\t\t\t$(divContainer).find(\"div[data-t-name='MarketoForm']\") !== undefined &&\r\n\t\t\t\t$(divContainer).find(\"div[data-t-name='MarketoForm']\").length > 0\r\n\t\t\t\t\t? $(divContainer).find(\"div[data-t-name='MarketoForm']\")\r\n\t\t\t\t\t: [];\r\n\r\n\t\t\tconst popupFormId: string = $(divContainer).attr('data-popup-form-id');\r\n\t\t\tconst hiddenMarketoFormSubmitAllowed: any = $(hiddenMktoForm).attr('data-allow-hidden-form-submit');\r\n\r\n\t\t\tlet materialTagValue = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='materialTag']\")\r\n\t\t\t\t.val();\r\n\t\t\tlet industryTagValue = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='industryType']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar firstName = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='FirstName']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar lastName = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='LastName']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar email = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='Email']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar country = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='Country']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar company = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='Company']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar formMessage = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='Text']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar submissionSource = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='SubmissionSource']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar submissionType = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='SubmissionType']\")\r\n\t\t\t\t.val();\r\n\t\t\tlet inquiryType =\r\n\t\t\t\t$(divContainer)\r\n\t\t\t\t\t.find(\"[data-sc-field-name='InquiryType']\")\r\n\t\t\t\t\t.val() !== undefined &&\r\n\t\t\t\t$(divContainer)\r\n\t\t\t\t\t.find(\"[data-sc-field-name='InquiryType']\")\r\n\t\t\t\t\t.val() === 'Other'\r\n\t\t\t\t\t? $(divContainer)\r\n\t\t\t\t\t\t\t.find(\"[data-sc-field-name='otherInquiryType']\")\r\n\t\t\t\t\t\t\t.val()\r\n\t\t\t\t\t: $(divContainer)\r\n\t\t\t\t\t\t\t.find(\"[data-sc-field-name='InquiryType']\")\r\n\t\t\t\t\t\t\t.val();\r\n\t\t\tvar tokenOprationItemPath = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='TokenOprationItemPath']\")\r\n\t\t\t\t.val();\r\n\t\t\tvar setAccinfoOprationItemPath = $(divContainer)\r\n\t\t\t\t.find(\"[data-sc-field-name='SetAccinfoOprationItemPath']\")\r\n\t\t\t\t.val();\r\n\r\n\t\t\tvar myHiddenMetaDataString = $(divContainer)\r\n\t\t\t\t.find(`#dynamicDataSourceFieldsJsonString_` + popupFormId)\r\n\t\t\t\t.text();\r\n\t\t\tlet myHiddenMetaData: any;\r\n\t\t\tif (myHiddenMetaDataString.length > 0) {\r\n\t\t\t\tmyHiddenMetaDataString = myHiddenMetaDataString.replace('][', ',');\r\n\t\t\t\tmyHiddenMetaData = JSON.parse(myHiddenMetaDataString);\r\n\t\t\t}\r\n\r\n\t\t\tif (hiddenMarketoFormSubmitAllowed === 'true') {\r\n\t\t\t\tlet MktoForms2 = (window as any)['MktoForms2'];\r\n\t\t\t\tif (typeof MktoForms2 != 'undefined') {\r\n\t\t\t\t\tvar mktoFormId = $(hiddenMktoForm[0]).attr('data-form-id');\r\n\t\t\t\t\tlet myHiddenMktoForm: any = MktoForms2.getForm(mktoFormId);\r\n\t\t\t\t\tlet myHiddenFormFields: any = myHiddenMktoForm.vals();\r\n\r\n\t\t\t\t\tif (typeof myHiddenFormFields != 'undefined') {\r\n\t\t\t\t\t\tmyHiddenMktoForm.addHiddenFields({\r\n\t\t\t\t\t\t\t//These are the values which will be submitted to Marketo\r\n\t\t\t\t\t\t\tformMessage: formMessage,\r\n\t\t\t\t\t\t\tFirstName: firstName,\r\n\t\t\t\t\t\t\tLastName: lastName,\r\n\t\t\t\t\t\t\tEmail: email,\r\n\t\t\t\t\t\t\tCountry: country,\r\n\t\t\t\t\t\t\tCompany: company,\r\n\t\t\t\t\t\t\tmktoindustry: this.getValueFromObject(myHiddenMetaData, industryTagValue),\r\n\t\t\t\t\t\t\tinferredMaterialInterest: this.getValueFromObject(myHiddenMetaData, materialTagValue),\r\n\t\t\t\t\t\t\tprivacyPolicyAcceptance: true,\r\n\t\t\t\t\t\t\tmktooptinchkbxacceptance: true,\r\n\t\t\t\t\t\t});\r\n\r\n if (\r\n typeof firstName !== 'undefined' &&\r\n firstName.toString().length > 0 &&\r\n typeof lastName !== 'undefined' &&\r\n lastName.toString().length > 0 &&\r\n typeof email !== 'undefined' &&\r\n email.toString().length > 0 &&\r\n typeof country !== 'undefined' &&\r\n country.toString().length > 0 &&\r\n typeof company !== 'undefined' &&\r\n company.toString().length > 0\r\n ) {\r\n myHiddenMktoForm.submit();\r\n this.hiddenSubmitForm(mktoFormId);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!validate) {\r\n ev.preventDefault();\r\n }\r\n this.$ctx.addClass(classes.stateFormOrderHiddenAfterSubmit);\r\n }\r\n\r\n\thiddenSubmitForm(hiddenForm: any) {\r\n if (hiddenForm.length > 0) {\r\n let formId = hiddenForm;\r\n\t\t\tlet formName = jQuery('div[data-form-id=\"' + formId + '\"] form').attr('data-form-name');\r\n\t\t\tconst trackdata: {\r\n event: string;\r\n form_id: string;\r\n form_name: string;\r\n form_destination: string;\r\n form_hidden_submit_text: string;\r\n } = {\r\n event: 'hidden_form_submit',\r\n form_id: formId,\r\n form_name: formName.toString(),\r\n form_destination: '',\r\n form_hidden_submit_text: '',\r\n };\r\n Track.gtmTrack(trackdata);\r\n }\r\n }\r\n\r\n\tgetValueFromObject(myMktoHiddenMetaData: any, materialTagValue: any): string {\r\n\t\tlet title: string = '';\r\n\t\tmyMktoHiddenMetaData.forEach((element: any, i: any) => {\r\n\t\t\tif (element.tagId === materialTagValue) {\r\n\t\t\t\ttitle = element.tagTitle.toString();\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn title;\r\n\t}\r\n\r\n\tonClickAnchor() {\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$('[href=\"#' + formID + '\"]')\r\n\t\t\t.unbind('click')\r\n\t\t\t.on('click', (ev: Event) => {\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t\tthis.onFocusAreaFocus();\r\n\t\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t\t});\r\n\t}\r\n\r\n\tonClickLink($el: JQuery) {\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$el.on('click', (ev: JQuery.Event) => {\r\n\t\t\tev.preventDefault();\r\n\t\t\tconst url = $el.attr('href');\r\n\t\t\tconst anchorIdx = url.indexOf('#' + formID);\r\n\t\t\tif (anchorIdx != -1) {\r\n\t\t\t\tthis.onFocusAreaFocus();\r\n\t\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprefillFormData() {\r\n\t\tconst serviceUrl = this.$ctx.data('api-endpoint');\r\n\r\n\t\tif (serviceUrl) {\r\n\t\t\t$.ajax({\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\turl: serviceUrl,\r\n\t\t\t\tsuccess: (jsonData: any) => {\r\n\t\t\t\t\tfor (let key in jsonData) {\r\n\t\t\t\t\t\tconst $input = this.$ctx.find('input[data-sc-field-name=\"' + key + '\"]');\r\n\t\t\t\t\t\t$input.val(jsonData[key]);\r\n\t\t\t\t\t\t$input.trigger('change');\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinputSelecteOptionChanged(ev: any) {\r\n\t\tconst opt: string = ev.currentTarget.value.toLowerCase();\r\n\t\tconst $target: any = $(ev.currentTarget);\r\n\t\tconst $currentForm: any = $(ev.currentTarget).closest('form');\r\n\r\n\t\tif ($target.val() !== '') {\r\n\t\t\t$target.removeClass('state-a-input--has-error');\r\n\t\t\t$target.nextAll('.field-validation-valid').text('');\r\n\t\t\t$target.nextAll('.field-validation-valid').removeClass('field-validation-error');\r\n\t\t} else {\r\n\t\t\tvar dataValRequired = $target.attr('data-val');\r\n\t\t\tif (typeof dataValRequired !== 'undefined' && dataValRequired !== '' && dataValRequired !== null) {\r\n\t\t\t\t$target.addClass('state-a-input--has-error');\r\n\t\t\t\t$target.nextAll('.field-validation-valid').text($target.attr('data-val-required'));\r\n\t\t\t\t$target.nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Inquiry Type dropdown\r\n\t\tif ($target.hasClass(classes.inquiryTypeInputSelect)) {\r\n\t\t\tconst $sdsLinkCol: any = $($currentForm).find(`.${classes.sdsLinkColumn}`);\r\n\t\t\tconst $sdsTextboxCol: any = $($currentForm).find(`.${classes.inquiryTextboxColumn}`);\r\n\r\n\t\t\tlet showCheckMark = false;\r\n\t\t\t// show SDS link\r\n\t\t\tif (opt === optionValues.productSafetyDataSheets) {\r\n\t\t\t\t$sdsLinkCol.css('display', 'flex');\r\n\t\t\t\tshowCheckMark = true;\r\n\t\t\t} else {\r\n\t\t\t\t$sdsLinkCol.css('display', 'none');\r\n\t\t\t}\r\n\r\n\t\t\t// show SDS textbox\r\n\t\t\tif (opt === optionValues.other) {\r\n\t\t\t\t$($currentForm)\r\n\t\t\t\t\t.find('input[data-sc-field-name=\"otherInquiryType\"]')\r\n\t\t\t\t\t.val('');\r\n\t\t\t\t$sdsTextboxCol.show();\r\n\t\t\t\tshowCheckMark = true;\r\n\t\t\t} else {\r\n\t\t\t\t$($currentForm)\r\n\t\t\t\t\t.find('input[data-sc-field-name=\"otherInquiryType\"]')\r\n\t\t\t\t\t.val('-');\r\n\t\t\t\t$sdsTextboxCol.hide();\r\n\t\t\t}\r\n\r\n\t\t\tif (showCheckMark) {\r\n\t\t\t\t$target.addClass(classes.inputSelectCheckMark);\r\n\t\t\t} else {\r\n\t\t\t\t$target.removeClass(classes.inputSelectCheckMark);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Category Type dropdown\r\n\t\tif ($target.hasClass(classes.inputSelectCategoryType)) {\r\n\t\t\tconst $categoryInputContainer: any = $($currentForm).find(`.${classes.categoryInputContainer}`);\r\n\t\t\tconst $firstInput: any = $($currentForm).find('.a-input-first .js-a-input--first-name');\r\n\r\n\t\t\tif (opt === optionValues.other.toLowerCase()) {\r\n\t\t\t\t$($currentForm)\r\n\t\t\t\t\t.find('input[data-sc-field-name=\"OtherCategory\"]')\r\n\t\t\t\t\t.val('');\r\n\t\t\t\t$categoryInputContainer.show();\r\n\t\t\t\t$target.addClass(classes.inputSelectCheckMark);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t$categoryInputContainer\r\n\t\t\t\t\t\t.find(classes.categoryInputField)\r\n\t\t\t\t\t\t.focus()\r\n\t\t\t\t\t\t.select();\r\n\t\t\t\t}, 150);\r\n\t\t\t} else {\r\n\t\t\t\t$($currentForm)\r\n\t\t\t\t\t.find('input[data-sc-field-name=\"OtherCategory\"]')\r\n\t\t\t\t\t.val('-');\r\n\t\t\t\t$categoryInputContainer.hide();\r\n\t\t\t\t$target.removeClass(classes.inputSelectCheckMark);\r\n\t\t\t\tif ($firstInput.length > 0) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tif ($firstInput.val().length < 1) {\r\n\t\t\t\t\t\t\t$firstInput.focus().select();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 150);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Add Other Optioin For MaterialTag field\r\n\t * @returns {void}\r\n\t */\r\n\taddOtherOptionForMaterialTag() {\r\n\t\tvar otherText = $('#OtherText').val();\r\n\t\tvar otherValue = $('#OtherValue').val();\r\n\t\tconst $materialTag: any = this.$ctx.find('select[data-sc-field-name=\"materialTag\"]');\r\n\t\tconst otherValueOptionInquiry = $('select[data-sc-field-name=\"materialTag\"]').find('option[value=\"Other\"]');\r\n\r\n\t\tif ($materialTag.length > 0 && otherValueOptionInquiry === null) {\r\n\t\t\t$('select[data-sc-field-name=\"materialTag\"]').append(\r\n\t\t\t\t``\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tsetMaterialTagDefaultValue() {\r\n\t\tvar urlParams = new URLSearchParams(window.location.search);\r\n\t\tvar meterialTag = $('#SelectTag').val();\r\n\t\tif (urlParams.has('materialtag')) {\r\n\t\t\tmeterialTag = urlParams.get('materialtag');\r\n\t\t}\r\n\t\t$('select[data-sc-field-name=\"materialTag\"]').val(meterialTag);\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\nimport 'select2'; // globally assign select2 fn to $ element\r\nimport { last } from 'lodash';\r\n\r\nconst classes = {\r\n\tbuttonItem: 'js-m-contact-teaser-buttons__btn',\r\n\tpopup: 'js-m-contact-teaser-buttons__popup',\r\n\tpopupClose: 'js-m-contact-teaser-buttons__popup-close',\r\n\tpopupMask: 'js-m-contact-teaser-buttons__popup-mask',\r\n\tstatusPopupActive: 'status-m-contact-teaser-buttons__popup--visible',\r\n\tsubmitForm: 'js-form__button-event--submit',\r\n\tcancelForm: 'js-form__button-event--cancel',\r\n\tfocusElement: 'js-form__event-show-additional-fields',\r\n\tadditionalFields: 'js-form__additional-fields',\r\n\tstateFormOrderAdditionalFieldsVisible: 'state-m-teaser-contact-form--show-additional-fields',\r\n\tstateFormOrderHiddenAfterSubmit: 'state-m-teaser-contact-form--hidden-after-submit',\r\n\tinputSelect: 'js-form__input-select',\r\n\tinput: 'js-form__input',\r\n\tinputCheckBox: 'a-input-checkbox__input',\r\n\tinquiryTypeInputSelect: \"js-form__input-inquiry-type\",\r\n\tsdsLinkColumn: \"js-o-form__grid-col-sds-link\",\r\n\tinquiryTextboxColumn: \"js-o-form__grid-col-inquiry-textbox\",\r\n\r\n\tinputSelectCategoryType: \"js-form__input-category-type\",\r\n\tinputSelectCheckMark: 'a-input-select--global-has-check',\r\n\tcategoryInputContainer: \"o-form__grid-col--input-category\",\r\n\tcategoryInputField: 'js-a-input--category',\r\n};\r\n\r\nconst optionValues = {\r\n\tother: \"other\",\r\n\tproductSafetyDataSheets: \"product safety data sheets\"\r\n}\r\n\r\n@createModule('ContactTeaserButtons')\r\n/**\r\n * @author\r\n */\r\nexport class ContactTeaserButtons extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$inputSelect: JQuery;\r\n\t$inputCheckBox: JQuery;\r\n\t$input: JQuery;\r\n\r\n\tfocusFromScrollReached: boolean = false;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tconst $buttonItem = this.$ctx.find(`.${classes.buttonItem}`);\r\n\t\tconst $popup = this.$ctx.find(`.${classes.popup}`);\r\n\t\tconst $popupClose = this.$ctx.find(`.${classes.popupClose}`);\r\n\t\tconst $popupMask = this.$ctx.find(`.${classes.popupMask}`);\r\n\t\t$buttonItem.on('click', this.showPopup.bind(this));\r\n\t\t$popupClose.on('click', this.hidePopup.bind(this));\r\n\t\t$popupMask.on('click', this.hidePopup.bind(this));\r\n\r\n\t\t$popup.each((i, e) => {\r\n\t\t\tconst name = \"#\" + $(e).attr(\"id\");\r\n\t\t\tif (window.location.hash.length > 0 && name == window.location.hash) {\r\n\t\t\t\t$(e).addClass(classes.statusPopupActive);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\r\n\t\tthis.initFormHadling();\r\n\r\n\t\tthis.onClickAnchor();\r\n\t\tthis.onClickLink($('.js-m-stage-product__button'));\r\n\t\tif ($('.js-m-stage-product__button').length > 0) {\r\n\t\t\tthis.onClickLink($('.js-m-navigation-in-page__cta'));\r\n\t\t}\r\n\r\n\t\t$('.js-m-navigation-in-page__list-items').on(\"click\", '[href=\"#' + formID + '\"]', (ev: Event) => {\r\n\t\t\tev.preventDefault();\r\n\t\t\tthis.onFocusAreaFocus();\r\n\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t});\r\n\t\t// this.$ctx.on('scrollReached', this.onScrollReached.bind(this)); //remove feature again due to customer request\r\n\r\n\t\tif (this.$ctx.data('api-endpoint')) {\r\n\t\t\tthis.prefillFormData();\r\n\t\t}\r\n\r\n\t\tthis.$inputSelect = this.$ctx.find(`.${classes.inputSelect}`);\r\n\t\tthis.$inputCheckBox = this.$ctx.find(`.${classes.inputCheckBox}`);\r\n\t\tthis.$input = this.$ctx.find(`.${classes.input}`);\r\n\t\tthis.$inputSelect.on('change', (ev: Event) => this.inputSelecteOptionChanged(ev));\r\n\t\tthis.addOtherOptionForMaterialTag();\r\n\t\tthis.setMaterialTagDefaultValue();\r\n\r\n\t\t//Click button to open the form\r\n\t\tthis.onClickPopupAnchor();\r\n\t\tthis.onPageLoadCheckForm();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tshowPopup(ev: Event) {\r\n\t\tconst $this = $(ev.currentTarget);\r\n\t\t$this.next().addClass(classes.statusPopupActive);\r\n\t\tconst form = $(ev.currentTarget).next().find(\"form\")[0] as HTMLFormElement;\r\n\t\tif (form) {\r\n\t\t\tconst formId = $(form).attr(\"id\"); // Get the form ID\r\n\t\t\tconst scformName = $(form).find(\"input[data-sc-field-name='HiddenFormName']\").length\r\n\t\t\t\t? $(form).find(\"input[data-sc-field-name='HiddenFormName']\").val() : \"\";\r\n\t\t\tconst scSendDataToGtm = $(form).find(\"input[data-sc-field-name='SendDataToGTM']\").length\r\n\t\t\t\t? $(form).find(\"input[data-sc-field-name='SendDataToGTM']\").val() : false;\r\n\r\n\t\t\tlet formName = scformName ? scformName : $(form).attr(\"data-form-name\") !== undefined ? $(form).attr(\"data-form-name\") : \"\";\r\n\t\t\tconst sendDataToGtm = scSendDataToGtm !== undefined && scSendDataToGtm === \"Yes\" ? true :\r\n\t\t\t\t$(form).attr(\"data-sc-send-data-to-gtm\") && $(form).attr(\"data-sc-send-data-to-gtm\") === \"true\" ? true : false;\r\n\r\n\t\t\tif (sendDataToGtm) {\r\n\t\t\t\tconst trackdata: {\r\n\t\t\t\t\tevent: string;\r\n\t\t\t\t\tform_id: string;\r\n\t\t\t\t\tform_name: string;\r\n\t\t\t\t\tform_destination: string;\r\n\t\t\t\t\tform_submit_text: string;\r\n\t\t\t\t} = {\r\n\t\t\t\t\tevent: 'form_start',\r\n\t\t\t\t\tform_id: formId,\r\n\t\t\t\t\tform_name: formName.toString(),\r\n\t\t\t\t\tform_destination: '',\r\n\t\t\t\t\tform_submit_text: '',\r\n\t\t\t\t};\r\n\t\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thidePopup(ev: Event) {\r\n\t\tconst $this = $(ev.currentTarget);\r\n\t\t$this.closest(`.${classes.popup}`).removeClass(classes.statusPopupActive);\r\n\t}\r\n\r\n\tonClickPopupAnchor() {\r\n\t\t$(\"html\").find(\"a\").on(\"click\", (ev: any) => {\r\n\t\t\tconst anchor = $(ev.currentTarget);\r\n\t\t\tconst url = anchor.attr('href');\r\n\t\t\tconst idx = url !== undefined ? url.indexOf('#') : -1;\r\n\r\n\t\t\tif (idx === 0) {\r\n\t\t\t\tconst target = $(url.substring(idx));\r\n\t\t\t\tif (target.length === 1 && target.hasClass(classes.popup)) {\r\n\t\t\t\t\ttarget.addClass(classes.statusPopupActive);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.triggerGAFormStartEvent(target);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconst divId = url !== undefined ? url.indexOf('#') !== -1 ? url.split(\"#\")[1] : undefined : undefined;\r\n\t\t\t\tif (divId !== undefined) {\r\n\t\t\t\t\tlet divElement = $(\"#\" + divId);\r\n\r\n\t\t\t\t\tif (divElement !== undefined && divElement.length === 1\r\n\t\t\t\t\t\t&& divElement.hasClass(classes.popup)) {\r\n\t\t\t\t\t\tdivElement.addClass(classes.statusPopupActive);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.triggerGAFormStartEvent(divElement);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tonPageLoadCheckForm(){\r\n\t\tvar hashId = window.location.hash;\r\n\t\tif(hashId){\r\n\t\t\tconst target = $(hashId);\r\n\t\t\tthis.triggerGAFormStartEvent(target);\r\n\t\t}\r\n\t}\r\n\r\n\ttriggerGAFormStartEvent(htmlControl: JQuery) {\r\n\t\tconst form = $(htmlControl).find('form')[0] as HTMLFormElement;\r\n\t\tif (form) {\r\n\t\t\tconst formId = $(form).attr(\"id\"); // Get the form ID\r\n\t\t\tconst scformName = $(form).find(\"input[data-sc-field-name='HiddenFormName']\").length\r\n\t\t\t\t? $(form).find(\"input[data-sc-field-name='HiddenFormName']\").val() : \"\";\r\n\t\t\tconst scSendDataToGtm = $(form).find(\"input[data-sc-field-name='SendDataToGTM']\").length\r\n\t\t\t\t? $(form).find(\"input[data-sc-field-name='SendDataToGTM']\").val() : false;\r\n\r\n\t\t\tlet formName = scformName ? scformName : $(form).attr(\"data-form-name\") !== undefined ? $(form).attr(\"data-form-name\") : \"\";\r\n\t\t\tconst sendDataToGtm = scSendDataToGtm !== undefined && scSendDataToGtm === \"Yes\" ? true :\r\n\t\t\t\t$(form).attr(\"data-sc-send-data-to-gtm\") && $(form).attr(\"data-sc-send-data-to-gtm\") === \"true\" ? true : false;\r\n\r\n\t\t\tif (sendDataToGtm) {\r\n\t\t\t\tconst trackdata: {\r\n\t\t\t\t\tevent: string;\r\n\t\t\t\t\tform_id: string;\r\n\t\t\t\t\tform_name: string;\r\n\t\t\t\t\tform_destination: string;\r\n\t\t\t\t\tform_submit_text: string;\r\n\t\t\t\t} = {\r\n\t\t\t\t\tevent: 'form_start',\r\n\t\t\t\t\tform_id: formId,\r\n\t\t\t\t\tform_name: formName.toString(),\r\n\t\t\t\t\tform_destination: '',\r\n\t\t\t\t\tform_submit_text: '',\r\n\t\t\t\t};\r\n\t\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thiddenSubmitForm(hiddenForm: any) {\r\n\t\tif (hiddenForm.length > 0) {\r\n\t\t\tlet formId = hiddenForm;\r\n\t\t\tlet formName = jQuery('div[data-form-id=\"' + formId + '\"] form').attr('data-form-name');\r\n\t\t\tconst trackdata: {\r\n\t\t\t\tevent: string;\r\n\t\t\t\tform_id: string;\r\n\t\t\t\tform_name: string;\r\n\t\t\t\tform_destination: string;\r\n\t\t\t\tform_hidden_submit_text: string;\r\n\t\t\t} = {\r\n\t\t\t\tevent: 'hidden_form_submit',\r\n\t\t\t\tform_id: formId,\r\n\t\t\t\tform_name: formName.toString(),\r\n\t\t\t\tform_destination: '',\r\n\t\t\t\tform_hidden_submit_text: '',\r\n\t\t\t};\r\n\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t}\r\n\t}\r\n\tinitFormHadling() {\r\n\t\tthis.$ctx.on('focus', `.${classes.focusElement}`, this.onFocusAreaFocus.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.cancelForm}`, this.onCancleClick.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.submitForm}`, this.onFormSubmit.bind(this));\r\n\t}\r\n\r\n\tonFocusAreaFocus() {\r\n\t\tthis.$ctx.find(`.${classes.additionalFields}`).addClass(classes.stateFormOrderAdditionalFieldsVisible);\r\n\t\tif (!this.focusFromScrollReached) {\r\n\t\t\tif ($('.js-m-navigation-in-page__wrapper').length > 0) {\r\n\t\t\t\tscrollToElement(this.$ctx, true, $('.js-m-navigation-in-page__wrapper').height() + 20);\r\n\t\t\t} else {\r\n\t\t\t\tscrollToElement(this.$ctx, true, 70);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.focusFromScrollReached = false;\r\n\t\t}\r\n\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t}\r\n\r\n\tonCancleClick() {\r\n\t\tthis.$ctx.find(`.${classes.additionalFields}`).removeClass(classes.stateFormOrderAdditionalFieldsVisible);\r\n\t\tscrollToElement(this.$ctx, true);\r\n\t}\r\n\r\n\tonFormSubmit(ev: Event) {\r\n\t\tvar validate = true;\r\n\t\tthis.$inputSelect.each(function (index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr(\"data-val\");\r\n\t\t\tif (typeof dataValRequired !== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null) {\r\n\t\t\t\tif ($(item).val() == \"\") {\r\n\t\t\t\t\t$(item).addClass(\"state-a-input--has-error\");\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').text($(item).attr(\"data-val-required\"));\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.$input.each(function (index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr(\"data-val\");\r\n\t\t\tif (typeof dataValRequired !== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null) {\r\n\t\t\t\tif ($(item).val() == \"\") {\r\n\t\t\t\t\t$(item).addClass(\"input-validation-error\");\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').text($(item).attr(\"data-val-required\"));\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.$inputCheckBox.each(function (index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr(\"data-val\");\r\n\t\t\tif (typeof dataValRequired !== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null) {\r\n\t\t\t\tif (!$(item).is(':checked')) {\r\n\t\t\t\t\t$(item).addClass(\"input-validation-error\");\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (validate) {\r\n\t\t\tlet MktoForms2 = (window as any)[\"MktoForms2\"];\r\n\t\t\tif (typeof (MktoForms2) != \"undefined\") {\r\n\t\t\t\tconst hiddenMktoForm: any = this.$ctx.find(\"div[data-allow-hidden-form-submit='true']\");\r\n\t\t\t\tif (hiddenMktoForm.length > 0) {\r\n\t\t\t\t\tvar mktoFormId = $(hiddenMktoForm[0]).attr(\"data-form-id\");\r\n\t\t\t\t\tlet myHiddenMktoForm: any = MktoForms2.getForm(mktoFormId);\r\n\t\t\t\t\tlet myHiddenFormFields: any = myHiddenMktoForm.vals();\r\n\t\t\t\t\tvar myMktoHiddenMetaDataString = this.$ctx.find(`#dynamicDataSourceFieldsJsonString`).text();\r\n\t\t\t\t\tlet myMktoHiddenMetaData: any;\r\n\t\t\t\t\tif (myMktoHiddenMetaDataString.length > 0) {\r\n\t\t\t\t\t\tmyMktoHiddenMetaDataString = myMktoHiddenMetaDataString.replace('][', ',');\r\n\t\t\t\t\t\tmyMktoHiddenMetaData = JSON.parse(myMktoHiddenMetaDataString);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet materialTagValue = this.$ctx.find(\"[data-sc-field-name='materialTag']\").val();\r\n\t\t\t\t\tlet industryTagValue = this.$ctx.find(\"[data-sc-field-name='industryType']\").val();\r\n\r\n\t\t\t\t\tvar firstName = this.$ctx.find(\"[data-sc-field-name='FirstName']\").val();\r\n\t\t\t\t\tvar lastName = this.$ctx.find(\"[data-sc-field-name='LastName']\").val();\r\n\t\t\t\t\tvar email = this.$ctx.find(\"[data-sc-field-name='Email']\").val();\r\n\t\t\t\t\tvar country = this.$ctx.find(\"[data-sc-field-name='Country']\").val();\r\n\t\t\t\t\tvar company = this.$ctx.find(\"[data-sc-field-name='Company']\").val();\r\n\r\n\t\t\t\t\tif (typeof (myHiddenFormFields) != \"undefined\") {\r\n\t\t\t\t\t\tmyHiddenMktoForm.addHiddenFields({\r\n\t\t\t\t\t\t\t//These are the values which will be submitted to Marketo\r\n\t\t\t\t\t\t\t\"formMessage\": this.$ctx.find(\"[data-sc-field-name='FormMessage']\").val(),\r\n\t\t\t\t\t\t\t\"FirstName\": firstName,\r\n\t\t\t\t\t\t\t\"LastName\": lastName,\r\n\t\t\t\t\t\t\t\"Email\": email,\r\n\t\t\t\t\t\t\t\"Country\": country,\r\n\t\t\t\t\t\t\t\"Company\": company,\r\n\t\t\t\t\t\t\t\"mktoindustry\": this.getValueFromObject(myMktoHiddenMetaData, industryTagValue),\r\n\t\t\t\t\t\t\t\"inferredMaterialInterest\": this.getValueFromObject(myMktoHiddenMetaData, materialTagValue),\r\n\t\t\t\t\t\t\t\"privacyPolicyAcceptance\": true,\r\n\t\t\t\t\t\t\t\"mktooptinchkbxacceptance\": true\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (typeof firstName !== 'undefined' && firstName.toString().length > 0\r\n\t\t\t\t\t\t\t&& typeof lastName !== 'undefined' && lastName.toString().length > 0\r\n\t\t\t\t\t\t\t&& typeof email !== 'undefined' && email.toString().length > 0\r\n\t\t\t\t\t\t\t&& typeof country !== 'undefined' && country.toString().length > 0\r\n\t\t\t\t\t\t\t&& typeof company !== 'undefined' && company.toString().length > 0) {\r\n\t\t\t\t\t\t\tmyHiddenMktoForm.submit();\r\n\t\t\t\t\t\t\tthis.hiddenSubmitForm(mktoFormId);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!validate) {\r\n\t\t\tev.preventDefault();\r\n\t\t}\r\n\t\tthis.$ctx.addClass(classes.stateFormOrderHiddenAfterSubmit);\r\n\t}\r\n\r\n\tgetValueFromObject(myMktoHiddenMetaData: any, materialTagValue: any): string {\r\n\t\tlet title: string = \"\";\r\n\t\tmyMktoHiddenMetaData.forEach((element: any) => {\r\n\t\t\tif (element.tagId === materialTagValue) {\r\n\t\t\t\ttitle = element.tagTitle.toString();\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn title;\r\n\t}\r\n\r\n\tonClickAnchor() {\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$('[href=\"#' + formID + '\"]')\r\n\t\t\t.unbind(\"click\")\r\n\t\t\t.on(\"click\", (ev: Event) => {\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t\tthis.onFocusAreaFocus();\r\n\t\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t\t});\r\n\t}\r\n\r\n\tonClickLink($el: JQuery) {\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$el.on('click', (ev: JQuery.Event) => {\r\n\t\t\tev.preventDefault();\r\n\t\t\tconst url = $el.attr('href');\r\n\t\t\tconst anchorIdx = url.indexOf('#' + formID);\r\n\t\t\tif (anchorIdx != -1) {\r\n\t\t\t\tthis.onFocusAreaFocus();\r\n\t\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprefillFormData() {\r\n\t\tconst serviceUrl = this.$ctx.data('api-endpoint');\r\n\r\n\t\tif (serviceUrl) {\r\n\t\t\t$.ajax({\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\turl: serviceUrl,\r\n\t\t\t\tsuccess: (jsonData: any) => {\r\n\t\t\t\t\tfor (let key in jsonData) {\r\n\t\t\t\t\t\tconst $input = this.$ctx.find('input[data-sc-field-name=\"' + key + '\"]');\r\n\t\t\t\t\t\t$input.val(jsonData[key]);\r\n\t\t\t\t\t\t$input.trigger('change');\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinputSelecteOptionChanged(ev: any) {\r\n\t\tconst opt: string = ev.currentTarget.value.toLowerCase();\r\n\t\tconst $target: any = $(ev.currentTarget);\r\n\r\n\t\tif ($target.val() !== \"\") {\r\n\t\t\t$target.removeClass(\"state-a-input--has-error\");\r\n\t\t\t$target.nextAll('.field-validation-valid').text(\"\");\r\n\t\t\t$target.nextAll('.field-validation-valid').removeClass('field-validation-error');\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar dataValRequired = $target.attr(\"data-val\");\r\n\t\t\tif (typeof dataValRequired !== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null) {\r\n\t\t\t\t$target.addClass(\"state-a-input--has-error\");\r\n\t\t\t\t$target.nextAll('.field-validation-valid').text($target.attr(\"data-val-required\"));\r\n\t\t\t\t$target.nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Inquiry Type dropdown\r\n\t\tif ($target.hasClass(classes.inquiryTypeInputSelect)) {\r\n\r\n\t\t\tconst $sdsLinkCol: any = this.$ctx.find(`.${classes.sdsLinkColumn}`);\r\n\t\t\tconst $sdsTextboxCol: any = this.$ctx.find(`.${classes.inquiryTextboxColumn}`);\r\n\r\n\t\t\tlet showCheckMark = false;\r\n\t\t\t// show SDS link\r\n\t\t\tif (opt === optionValues.productSafetyDataSheets) {\r\n\t\t\t\t$sdsLinkCol.css(\"display\", \"flex\");\r\n\t\t\t\tshowCheckMark = true;\r\n\t\t\t} else {\r\n\t\t\t\t$sdsLinkCol.css(\"display\", \"none\");\r\n\t\t\t}\r\n\r\n\t\t\t// show SDS textbox\r\n\t\t\tif (opt === optionValues.other) {\r\n\t\t\t\t$('input[data-sc-field-name=\"otherInquiryType\"]').val(\"\");\r\n\t\t\t\t$sdsTextboxCol.show();\r\n\t\t\t\tshowCheckMark = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$('input[data-sc-field-name=\"otherInquiryType\"]').val(\"-\");\r\n\t\t\t\t$sdsTextboxCol.hide();\r\n\t\t\t}\r\n\r\n\t\t\tif (showCheckMark) {\r\n\t\t\t\t$target.addClass(classes.inputSelectCheckMark);\r\n\t\t\t} else {\r\n\t\t\t\t$target.removeClass(classes.inputSelectCheckMark);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Category Type dropdown\r\n\t\tif ($target.hasClass(classes.inputSelectCategoryType)) {\r\n\r\n\t\t\tconst $categoryInputContainer: any = this.$ctx.find(`.${classes.categoryInputContainer}`);\r\n\t\t\tconst $firstInput: any = this.$ctx.find(\".a-input-first .js-a-input--first-name\");\r\n\r\n\t\t\tif (opt === optionValues.other.toLowerCase()) {\r\n\t\t\t\t$('input[data-sc-field-name=\"OtherCategory\"]').val(\"\");\r\n\t\t\t\t$categoryInputContainer.show();\r\n\t\t\t\t$target.addClass(classes.inputSelectCheckMark);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t$categoryInputContainer\r\n\t\t\t\t\t\t.find(classes.categoryInputField)\r\n\t\t\t\t\t\t.focus()\r\n\t\t\t\t\t\t.select();\r\n\t\t\t\t}, 150);\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$('input[data-sc-field-name=\"OtherCategory\"]').val(\"-\");\r\n\t\t\t\t$categoryInputContainer.hide();\r\n\t\t\t\t$target.removeClass(classes.inputSelectCheckMark);\r\n\t\t\t\tif ($firstInput.length > 0) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tif ($firstInput.val().length < 1) {\r\n\t\t\t\t\t\t\t$firstInput.focus().select();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 150);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Add Other Optioin For MaterialTag field\r\n\t * @returns {void}\r\n\t */\r\n\taddOtherOptionForMaterialTag() {\r\n\t\tvar otherText = $('#OtherText').val();\r\n\t\tvar otherValue = $('#OtherValue').val();\r\n\t\tconst $materialTag: any = this.$ctx.find('select[data-sc-field-name=\"materialTag\"]');\r\n\r\n\t\tif ($materialTag.length > 0) {\r\n\t\t\t$('select[data-sc-field-name=\"materialTag\"]').append(``);\r\n\t\t}\r\n\t}\r\n\r\n\tsetMaterialTagDefaultValue() {\r\n\t\tvar urlParams = new URLSearchParams(window.location.search);\r\n\t\tvar meterialTag = $('#SelectTag').val();\r\n\t\tif (urlParams.has('materialtag')) {\r\n\t\t\tmeterialTag = urlParams.get('materialtag');\r\n\t\t}\r\n\t\t$('select[data-sc-field-name=\"materialTag\"]').val(meterialTag);\r\n\t}\r\n\tstop() { }\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Overlays from '@project/shared/utils/overlays/js/overlays';\r\nimport * as Cookies from 'js-cookie';\r\n\r\nconst classes = {\r\n\tregionIcon: 'm-navigation-meta__selected-item',\r\n\tregionPopup: 'regionPopup',\r\n\tcloseIcon: 'closeIcon',\r\n\tlink: 'js-m-region-lightbox__link',\r\n};\r\n\r\n@createModule('RegionLightbox')\r\n\r\nexport class RegionLightbox extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\t\t\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tif (!this.hasUserInteracted()) {\r\n\t\t\tOverlays.ShowOverlay(() => {\r\n\t\t\t\tthis.$ctx.find(`.${classes.regionPopup}`).show();\r\n\r\n\t\t\t\tthis.$ctx.find(`.${classes.link}`).on('click', this.adjustLinkUrl.bind(this));\r\n\t\t\t\tvar getApiUrl = this.$ctx.find('.popupBody').attr(\"getUrl\")\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\tmethod: 'get',\r\n\t\t\t\t\turl: getApiUrl,\r\n\t\t\t\t\tsuccess: this.getRegionData.bind(this),\r\n\t\t\t\t});\r\n\t\t\t}, 250);\r\n\t\t}\r\n\t\t\r\n\t\tthis.$ctx.find(`.${classes.closeIcon}`).on('click', () => {\r\n\t\t\tthis.markUserHasInteracted();\r\n\r\n\t\t\tOverlays.CloseOverlay(() => { \r\n\t\t\t\tthis.$ctx.find(`.${classes.regionPopup}`).hide();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tgetRegionData(data: any) {\r\n\t\tconsole.log(data);\r\n\t\tvar regionLabel = data.RegionId;\r\n\t\tvar countryLabel = data.CountryId;\r\n\t\tvar regionsList = data.Regions;\r\n\t\tvar regions = document.querySelector('[name=regions]');\r\n\t\tvar options = '';\r\n\t\tvar regionDropdown = $('.popupBody p')[0];\r\n\t\tregionDropdown.firstElementChild.innerHTML = regionLabel;\r\n\t\tvar countryDropdown = $('.popupBody p')[1];\r\n\t\tcountryDropdown.firstElementChild.innerHTML = countryLabel;\r\n\r\n\t\tfor(var i=0; i < regionsList.length; i++) {\r\n\t\t\toptions += '';\r\n\t\t}\r\n\t\tregions.innerHTML = options;\r\n\r\n\t\tregions.addEventListener('change', function(e) {\r\n\t\t\tfor (var j = 0; j < regionsList.length; j++) {\r\n\t\t\t\tif(regionsList[j][\"RegionCode\"] == this.value){\r\n\t\t\t\t\tvar country = '';\r\n\t\t\t\t\tfor (var k = 0; k < regionsList[j].Countries.length; k++) {\r\n\t\t\t\t\t\tcountry += '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdocument.querySelector('[name=countries]').innerHTML = country;\r\n\t\t});\r\n\t}\r\n\r\n\tadjustLinkUrl() {\r\n\t\tthis.markUserHasInteracted();\r\n\r\n\t\tconst postApiUrl = $('.popupBody').attr(\"postUrl\");\t\t\r\n\t\tvar countries = document.querySelector('[name=countries]');\r\n\t\tconst CountryCode = $(countries).val();\r\n\r\n\t\t\r\n\t\tif(CountryCode){\r\n\t\t\t $.ajax({\r\n\t\t\t\t type: 'POST',\r\n\t\t\t\t url: postApiUrl,\r\n\t\t\t\t dataType: 'html',\r\n\t\t\t\t data: {CountryCode},\r\n\t\t\t\t success: (response: any) => {\r\n\t\t\t\t\t console.log(\"success\");\r\n\t\t\t\t\t console.log(response);\r\n\t\t\t\t\t $(`.${classes.regionPopup}`).hide();\r\n\t\t\t\t\t\tlocation.reload(); \r\n\t\t\t\t },\r\n\t\t\t\t complete: () => {\r\n\t\t\t\t\t console.log(\"complete\");\r\n\t\t\t\t },\r\n\t\t\t\t error: () => {\r\n\t\t\t\t\t console.log(\"post country name data error\");\r\n\t\t\t\t }\r\n\t\t\t });\r\n\t\t}\r\n\t}\r\n\t\r\n\tprivate hasUserInteracted(): boolean {\r\n\t\tconst cookie = Cookies.get('RegionPopup');\r\n\t\treturn cookie == \"1\";\r\n\t}\r\n\r\n\tprivate markUserHasInteracted(): void {\r\n\t\tCookies.set('RegionPopup', \"1\", { expires: 365 });\r\n\t}\r\n\r\n\tstop() { }\r\n\t\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('Datasheet')\r\n/**\r\n * datasheet module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class Datasheet extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nimport 'select2'; // TODO: DO NOT => globally assign select2 fn to $ element\r\n\r\nconst classes = {\r\n\tdownloadButton: 'js-m-download-item__button-download',\r\n\tlanguageSelect: 'js-m-download-item__language-selector',\r\n\tselected: 'state-m-download-item--selected',\r\n};\r\n\r\n@createModule('DownloadItem')\r\n/**\r\n * download-item module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class DownloadItem extends TerrificSpec {\r\n\tasync start(resolve: Function) {\r\n\t\tconst $select = this._getLanguageSelect() as any;\r\n\r\n\t\t$select.select2({\r\n\t\t\tminimumResultsForSearch: -1,\r\n\t\t\twidth: 'auto',\r\n\t\t});\r\n\r\n\t\t$select.on('change', () => this.updateDownloadButton());\r\n\r\n\t\t/**\r\n\t\t * update url on init\r\n\t\t */\r\n\t\tthis.updateDownloadButton();\r\n\r\n\t\tthis.RegisteredUpdate();\r\n\t\t\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t/**\r\n\t * returns jQuery ode Element\r\n\t */\r\n\t_getDownloadButton() {\r\n\t\treturn $(this._ctx).find(`.${classes.downloadButton}`);\r\n\t}\r\n\t/**\r\n\t * returns DOM Element\r\n\t */\r\n\t_getLanguageSelect() {\r\n\t\treturn $(this._ctx).find(`.${classes.languageSelect}`);\r\n\t}\r\n\r\n\t/**\r\n\t * Get input select value\r\n\t */\r\n\tgetLanguageSelectValue(): string {\r\n\t\treturn this._getLanguageSelect().val() as string;\r\n\t}\r\n\r\n\t/**\r\n\t * Setter for download button url\r\n\t */\r\n\tsetDownloadURL(href: string) {\r\n\t\tthis._getDownloadButton().attr('href', href);\r\n\t}\r\n\r\n\t/**\r\n\t * update download button\r\n\t */\r\n\tupdateDownloadButton() {\r\n\t\tthis.setDownloadURL(this.getLanguageSelectValue());\r\n\t}\r\n\r\n\tRegisteredUpdate() {\r\n\t\tif(Track.isKnownMarketoLead()) {\r\n\t\t\t$(this._ctx).removeClass('m-download-item--locked');\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tsdsTerm: 'js-m-download-list__term--sds',\r\n\tsdsTermActive: 'state-m-download-list__term--sds-active',\r\n\tsdsDefinition: 'js-m-download-list__definition--sds',\r\n\tsdsDefinitionActive: 'state-m-download-list__definition--sds-active',\r\n\tlanguageSelector: 'js-m-download-item__language-selector',\r\n\tentries: 'js-m-download-list__entry',\r\n\thideEntries: 'state-m-download-list--hide-entries',\r\n\tstateHidden: 'state-m-download-list__entry--hidden',\r\n\tloadMoreButton: 'js-m-download-list__load-more-button',\r\n\titemHeading: 'js-m-download-list__heading',\r\n};\r\n\r\n@createModule('DownloadList')\r\n/**\r\n * download-list module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class DownloadList extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tsdsElements: JQuery[];\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.initSds();\r\n\t\tthis.initLoadMoreEntries();\r\n\t\tthis.showTitle();\r\n\t\tthis.changeTitle();\r\n\t\tresolve();\r\n\t}\r\n\tinitSds() {\r\n\t\tthis.sdsElements = [this.$ctx.find(`.${classes.sdsTerm}`), this.$ctx.find(`.${classes.sdsDefinition}`)];\r\n\t\tif (this.sdsElements[0].length > 0 && this.sdsElements[1].length > 0) {\r\n\t\t\tconst serviceUrl = this.$ctx.data('sds-service');\r\n\t\t\tif (serviceUrl) {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\tmethod: 'get',\r\n\t\t\t\t\turl: serviceUrl,\r\n\t\t\t\t\tsuccess: this.onSdsAjaxSuccess.bind(this),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tonSdsAjaxSuccess(data: any) {\r\n\t\tif (data.error || !Array.isArray(data.sdsDownloads) || data.sdsDownloads.length < 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst $selectElement = this.sdsElements[1].find(`.${classes.languageSelector}`);\r\n\t\t$selectElement.empty();\r\n\t\tfor (let el of data.sdsDownloads) {\r\n\t\t\t$selectElement.append(``);\r\n\t\t}\r\n\t\t$selectElement.trigger('change');\r\n\t\tif (data.sdsDownloads.length === 1) {\r\n\t\t\t$selectElement.addClass('a-input-select--readonly').prop('disabled', true);\r\n\t\t}\r\n\t\tthis.sdsElements[0].addClass(classes.sdsTermActive);\r\n\t\tthis.sdsElements[1].addClass(classes.sdsDefinitionActive);\r\n\t}\r\n\tshowTitle() {\r\n\t\tconst $headingElement = this.$ctx.find(`.${classes.itemHeading}`);\r\n\t\t$headingElement.each((i,e) => {\r\n\t\t\tconst $headingItem = $(e);\r\n\t\t\t$headingItem.find(\"span\").first().addClass(\"active\");\r\n\t\t});\r\n\t}\r\n\tchangeTitle() {\r\n\t\tconst $languageSelect = this.$ctx.find(`.${classes.languageSelector}`);\r\n\t\t$languageSelect.on(\"change\",function(ev: Event){\r\n\t\t\tvar language = $(ev.currentTarget).find(\"option:selected\").text();\r\n\t\t\tvar activeEle = $(ev.currentTarget).parents(\"dd\").prev(\"dt\").find(\".active\");\r\n\t\t\tif(activeEle.length == 0) return;\r\n\t\t\tvar curLanguage = activeEle.attr(\"class\").substring(0,2);\r\n\t\t\tif (language!==curLanguage) {\r\n\t\t\t\t$(ev.currentTarget).parents(\"dd\").prev(\"dt\").find(\"span\").removeClass(\"active\");\r\n\t\t\t\t$(ev.currentTarget).parents(\"dd\").prev(\"dt\").find(\".\"+language).addClass(\"active\");\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * method handles hide/show of entries\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tinitLoadMoreEntries() {\r\n\t\tconst minOfShowEntries = this.$ctx.data('shown-entries');\r\n\t\tif (minOfShowEntries) {\r\n\t\t\tconst $entries = this.$ctx.find(`.${classes.entries}`);\r\n\r\n\t\t\tif ($entries.length / 2 > minOfShowEntries) {\r\n\t\t\t\tthis.$ctx.addClass(classes.hideEntries);\r\n\t\t\t\t$entries.filter(`:nth-child(n + ${minOfShowEntries * 2 + 1})`).addClass(classes.stateHidden);\r\n\r\n\t\t\t\tthis.$ctx.find(`.${classes.loadMoreButton}`).on('click', (ev: any) => {\r\n\t\t\t\t\tthis.$ctx.removeClass(classes.hideEntries);\r\n\t\t\t\t\t$entries.removeClass(classes.stateHidden);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { onPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport { createModule, startNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n container: 'js-m-download-table__container',\r\n\tcounterFooter: 'js-download-table__counter-footer',\r\n filterItem: 'js-m-download-table__filter-item',\r\n listItem: 'js-m-download-table__item',\r\n loadMoreButton: 'js-load-more-button',\r\n groupWrapper: 'js-m-download-table__group',\r\n stateHidden: 'state-m-download-table__hidden',\r\n stateItemHidden: 'state-m-download-table__item-hide',\r\n descText: 'm-download-table__item-description',\r\n stateDescExpanded: 'status-m-download-table__item-description--expanded',\r\n descShowBtn: 'js-m-download-table__show-description',\r\n stateBtnVisible: 'status-m-download-table__show-description--visible',\r\n gatedItem: 'm-download-table__item--gated',\r\n inputKeywordSearch: 'm-filter-keywordsearch__input',\r\n};\r\n\r\nconst dataAttributes = {\r\n apiEndpoint: 'api-endpoint',\r\n configuration: 'configuration',\r\n filterConfiguration: 'filters',\r\n};\r\n\r\nexport interface IDownloadTableOptions {\r\n\tapiEndpoint: string;\r\n\tconfiguration: string;\r\n\tfilters: {id:string}[];\r\n}\r\n\r\ninterface IDownloadTableFilter {\r\n\t$element: JQuery,\r\n\tid: string,\r\n}\r\n\r\n@createModule('DownloadTable')\r\n/**\r\n * download-table module implementation.\r\n */\r\nexport class DownloadTable extends TerrificSpec {\r\n private $ctx: JQuery;\r\n\r\n private currentCount: number;\r\n\tprivate totalCount: number;\r\n\r\n\tprivate filters: IDownloadTableFilter[];\r\n private options: IDownloadTableOptions;\r\n\r\n\tasync start(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.options = {\r\n\t\t\tapiEndpoint: this.$ctx.data(dataAttributes.apiEndpoint),\r\n\t\t\tconfiguration: this.$ctx.data(dataAttributes.configuration),\r\n\t\t\tfilters: this.$ctx.data(dataAttributes.filterConfiguration),\r\n\t\t};\r\n\t\tthis.filters = this.createFilters();\r\n\r\n\t\t// Assign events\r\n this.$ctx.on('click', `.${classes.descShowBtn}`, this.showDescription.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.loadMoreButton}`, this.loadMore.bind(this));\r\n\r\n for (let i = 0; i < this.filters.length; i++) {\r\n const filter = this.filters[i];\r\n onPublicEvent(PublicEvents.uxChange, filter.$element[0], (event: Event, data: object) => {\r\n this.facetAndList();\r\n });\r\n }\r\n \r\n\t\t// Initiate\r\n\t\tthis.updateLoadMore(false);\r\n\t\tthis.facetAndList();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n stop() {\r\n }\r\n\r\n\tprivate createFilters(): IDownloadTableFilter[]{\r\n\t\tlet results: IDownloadTableFilter[] = [];\r\n\r\n\t\tfor (let i = 0; i < this.options.filters.length; i++) {\r\n\t\t\tconst filter = this.options.filters[i];\r\n\t\t\tconst element = document.getElementById(filter.id);\r\n\t\t\tif (element != null) {\r\n\t\t\t\tresults.push({\r\n\t\t\t\t\t$element: $(element),\r\n\t\t\t\t\tid: filter.id\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn results;\r\n\t}\r\n\r\n\tprivate getSelectedFacets(): { id: string, value: string }[] {\r\n\t\tlet results: { id: string, value: string }[] = [];\r\n\r\n\t\tfor (let i = 0; i < this.filters.length; i++) {\r\n\t\t\tconst filter = this.filters[i];\r\n\t\t\tconst value = filter.$element.val();\r\n\t\t\tif (value) {\r\n\t\t\t\tresults.push({ id: filter.id, value: value });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn results;\r\n\t}\r\n\r\n private facetAndList(): void {\r\n this.$ctx.find(`.${classes.inputKeywordSearch}`).val(\"\");\r\n const payload = {\r\n configuration: this.options.configuration,\r\n facets: this.getSelectedFacets(),\r\n offset: 0\r\n };\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: this.options.apiEndpoint,\r\n data: payload,\r\n dataType: 'html'\r\n }).done((response: string, status: JQuery.Ajax.SuccessTextStatus, jqXhr: JQuery.jqXHR) => {\r\n \r\n const container = this.$ctx.find(`.${classes.container}`);\r\n container.html(response);\r\n \r\n // Look for a script tag containing extra data.\r\n const data = container.find(\"script[type='application/json']\");\r\n if (data.length > 0) {\r\n const json = data[0].innerHTML;\r\n const jsonData = JSON.parse(json);\r\n\r\n\t\t\t\tthis.updateCounters(jsonData.count, jsonData.displayed, jsonData.footer);\r\n this.updateLoadMore(jsonData.showMore);\r\n this.initializeComponents();\r\n\r\n this.RegisteredUpdate();\r\n\r\n // Remove the script tag.\r\n data.remove();\r\n } else {\r\n // No response data.\r\n this.updateLoadMore(false);\r\n }\r\n });\r\n }\r\n\r\n\tprivate loadMore(): void {\r\n this.$ctx.find(`.${classes.inputKeywordSearch}`).val(\"\");\r\n const payload = {\r\n configuration: this.options.configuration,\r\n facets: this.getSelectedFacets(),\r\n offset: this.currentCount,\r\n }\r\n\t\t\r\n $.ajax({\r\n type: 'POST',\r\n url: this.options.apiEndpoint,\r\n data: payload,\r\n dataType: 'html'\r\n }).done((response: string, status: JQuery.Ajax.SuccessTextStatus, jqXhr: JQuery.jqXHR) => {\r\n \r\n const container = this.$ctx.find(`.${classes.container}`);\r\n container.append(response);\r\n \r\n // Look for a script tag containing extra data.\r\n const data = container.find(\"script[type='application/json']\");\r\n if (data.length > 0) {\r\n const json = data[0].innerHTML;\r\n const jsonData = JSON.parse(json);\r\n\r\n\t\t\t\tthis.updateCounters(jsonData.count, jsonData.displayed, jsonData.footer);\r\n\t\t\t\tthis.updateLoadMore(jsonData.showMore);\r\n this.initializeComponents();\r\n this.initializeShowMoreLinks();\r\n\r\n this.RegisteredUpdate();\r\n \r\n // Remove the script tag.\r\n data.remove();\r\n } else {\r\n // No response data.\r\n this.updateLoadMore(false);\r\n }\r\n });\r\n }\r\n\r\n\tprivate updateCounters(count: number, displayed: number, footer: string): void {\r\n\t\tthis.currentCount = displayed,\r\n\t\tthis.totalCount = count;\r\n\t\tthis.$ctx.find(`.${classes.counterFooter}`).text(footer);\r\n this.$ctx.find(`.${classes.counterFooter}`).attr(\"data-currentcount\", this.currentCount)\r\n\t}\r\n\r\n private updateLoadMore(enabled: boolean): void {\r\n if (enabled)\r\n this.$ctx.find(`.${classes.loadMoreButton}`).show();\r\n else\r\n this.$ctx.find(`.${classes.loadMoreButton}`).hide();\r\n }\r\n\r\n private initializeComponents(): void{\r\n // Find all non-initialized terrific components in the container \r\n const terrificSelector = '[data-t-name=\"DownloadItem\"]:not([data-t-id])';\r\n this.$ctx.find(`.${classes.container}`).find(terrificSelector).each((i,e) => {\r\n startNode(e);\r\n });\r\n }\r\n\r\n private initializeShowMoreLinks(): void {\r\n const $descText = this.$ctx.find(`.${classes.descText}`);\r\n setTimeout(() => {\r\n for (let i = 0; i < $descText.length; i++) {\r\n const instance = $descText[i];\r\n if (instance.scrollHeight > 44) {\r\n $(instance).next().addClass(classes.stateBtnVisible);\r\n };\r\n }\r\n }, 100);\r\n }\r\n\r\n private showDescription(e: JQuery.Event): void {\r\n $(e.currentTarget).prev().addClass(classes.stateDescExpanded);\r\n $(e.currentTarget).removeClass(classes.stateBtnVisible);\r\n }\r\n\r\n private RegisteredUpdate() {\r\n\t\tconst $gatedItem = this.$ctx.find(`.${classes.gatedItem}`);\r\n\t\tif(Track.isKnownMarketoLead()) {\r\n $gatedItem.each((i,e) => {\r\n $(e).removeClass('m-download-table__item--locked');\r\n });\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Overlays from '@project/shared/utils/overlays/js/overlays';\r\n\r\nconst classes = {\r\n\tcloseButton: 'js-m-favourite-layer__close',\r\n\tactiveClass: 'state-favourite-popup--visible',\r\n};\r\n\r\n@createModule('FavouriteLayer')\r\n/**\r\n * favourite-layer module implementation.\r\n */\r\nexport class FavouriteLayer extends TerrificSpec {\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\t$(`.${classes.closeButton}`, $ctx).on('click', this.hideLayer.bind(this));\r\n\t\t\r\n\t\tthis.showLayer();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * method hides cookiebar\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thideLayer() {\r\n\t\tOverlays.CloseOverlay(() => $(this._ctx).removeClass(classes.activeClass));\r\n\t}\r\n\r\n\t/**\r\n\t * method hides cookiebar\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tshowLayer() {\r\n\t\tOverlays.ShowOverlay(() => $(this._ctx).addClass(classes.activeClass), 0);\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tlanguageSelector: 'js-m-download-item__language-selector',\r\n\tfileInfo: 'js-m-featured-download__file-info',\r\n\tdownloadItem: 'js-m-featured-download__item',\r\n\tstateHidden: 'h-visuallyhidden',\r\n\tloadMoreButton: 'js-load-more-button',\r\n\tloadMoreBar: 'js-load-more-bar',\r\n};\r\n\r\n@createModule('FeaturedDownload')\r\n/**\r\n * featured-download module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class FeaturedDownload extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tisOpen: boolean;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.isOpen = false;\r\n\t\tthis.showFileInfo();\r\n\t\tthis.changeFileInfo();\r\n\t\tthis.initLoadMore();\r\n\r\n\t\tresolve();\r\n\t}\r\n\t\r\n\t\r\n\tshowFileInfo() {\r\n\t\tconst $languageSelect = this.$ctx.find(`.${classes.languageSelector}`);\r\n\t\t$languageSelect.each((i,e) => {\r\n\t\t\tvar language = $(e).find(\"option:selected\").text();\r\n\t\t\t$(e).parents(`.${classes.downloadItem}`).find(\".\"+language).addClass(\"active\");\r\n\t\t});\r\n\t}\r\n\tchangeFileInfo() {\r\n\t\tconst $languageSelect = this.$ctx.find(`.${classes.languageSelector}`);\r\n\t\t$languageSelect.on(\"change\",function(ev: Event){\r\n\t\t\tvar language = $(ev.currentTarget).find(\"option:selected\").text();\r\n\t\t\tvar activeElement = $(ev.currentTarget).parents(`.${classes.downloadItem}`).find(\".active\");\r\n\t\t\tif(activeElement.length == 0) return;\r\n\t\t\tvar curLanguage = activeElement.attr(\"class\").substring(0,2);\r\n\t\t\tif (language!==curLanguage) {\r\n\t\t\t\t$(ev.currentTarget).parents(`.${classes.downloadItem}`).find(\"span\").removeClass(\"active\");\r\n\t\t\t\t$(ev.currentTarget).parents(`.${classes.downloadItem}`).find(\".\"+language).addClass(\"active\");\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * method handles hide/show of entries\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tinitLoadMore() {\r\n\t\t// if this an Application/Evergreen and not one of the other download items and it has not yet been opened:\r\n\t\tif (typeof this.$ctx.data('shown-items') !== 'undefined' && this.isOpen === false) {\r\n\t\t\tconst $downloadItems = this.$ctx.find(`.${classes.downloadItem}`);\r\n\t\t\tlet minOfShowDownloadItems = this.$ctx.data('shown-items');\r\n\t\t\tlet PageSizeLoadMore = this.$ctx.data('load-items');\r\n\r\n\t\t\tif ($downloadItems.length <= minOfShowDownloadItems) {\r\n\t\t\t\tthis.$ctx.find(`.${classes.loadMoreBar}`).addClass(classes.stateHidden);\r\n\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t\t\t} else {\r\n\t\t\t\tminOfShowDownloadItems++;\r\n\t\t\t\t$downloadItems.filter(`:nth-child(n + ` + minOfShowDownloadItems + `)`).addClass(classes.stateHidden);\r\n\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\r\n\t\t\t\tlet currentShowDownloadItems = minOfShowDownloadItems -1;\r\n\t\t\t\tthis.$ctx.find(`.${classes.loadMoreButton}`).on('click', (ev: any) => {\r\n\t\t\t\t\tlet allOfShowDownloadItems = currentShowDownloadItems + PageSizeLoadMore;\r\n\t\t\t\t\tfor( var i=0; i= $downloadItems.length) {\r\n\t\t\t\t\t\t\t$(ev.currentTarget)\r\n\t\t\t\t\t\t\t\t.parent(`.${classes.loadMoreBar}`)\r\n\t\t\t\t\t\t\t\t.addClass(classes.stateHidden);\r\n\r\n\t\t\t\t\t\t\tthis.isOpen = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\n@createModule('FilterMarketSwitch')\r\n/**\r\n * filter-market-switch module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class FilterMarketSwitch extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\nconst classes = {\r\n\tlistFirstLevel: 'js-m-filter-multiselect__list-level1',\r\n\tlistFirstLevelOpen: 'm-filter-multiselect__list-level1--open',\r\n\tlistFirstLevelShadow: 'm-filter-multiselect__list-level1--shadow',\r\n\titemFirstLevel: 'js-m-filter-multiselect__item--level1',\r\n\titemFirstLevelOpen: 'm-filter-multiselect__item--level1-open',\r\n\titemFirstLevelHeaderMobile: 's-filter-multiselect__item-link--main',\r\n\titemFirstLevelHeaderMobileOpen: 's-filter-multiselect__item-link--main-header',\r\n\tmainItemLink: 'js-m-filter-multiselect__item-link--main',\r\n\tmainItemChecked: 'm-filter-multiselect__item-link--main-checked',\r\n\tlayerSecondLevelBacklink: 'js-m-filter-multiselect__backlink',\r\n\tlayerSecondLevelHeader: 'js-m-filter-multiselect__layer-header-level2',\r\n\tlayerSecondLevelSubfilterOpen: 'm-filter-multiselect__layer-level2--with-sublevel',\r\n\titemSecondLevel: 'js-m-filter-multiselect__item--level2',\r\n\tconfirmButton: 'js-m-filter-multiselect__confirm-button',\r\n\tfloatLabel: 'state-a-label--is-floated',\r\n\tfocusLabel: 'state-a-label--is-focus',\r\n\tcloseFilter: 's-filter-multiselect__item-link--main-close-icon'\r\n}\r\n\r\n@createModule('FilterMultiselect')\r\n/**\r\n * $filter-multiselect terrific module implementation\r\n *\r\n * @author Sandy Zhao \r\n */\r\nexport class FilterMultiselect extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$confirmButton: JQuery;\r\n\t$itemSecondLevel: JQuery;\r\n\t$listFirstLevel: JQuery;\r\n\t$itemFirstLevel: JQuery;\r\n\t$itemFirstLevelHeaderMobile: JQuery;\r\n\t$floatLabel: JQuery;\r\n\t$closeFilter: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$confirmButton = $(`.${classes.confirmButton}`, this.$ctx);\r\n\t\tthis.$itemSecondLevel = $(`.${classes.itemSecondLevel}`, this.$ctx);\r\n\t\tthis.$listFirstLevel = $(`.${classes.listFirstLevel}`, this.$ctx);\r\n\t\tthis.$itemFirstLevel = $(`.${classes.itemFirstLevel}`, this.$ctx);\r\n\t\tthis.$itemFirstLevelHeaderMobile = $(`.${classes.itemFirstLevelHeaderMobile}`, this.$ctx);\r\n\t\tthis.$closeFilter = $(`.${classes.closeFilter}`, this.$ctx);\r\n\r\n\t\tthis.$floatLabel = this.$ctx.prev();\r\n\t\tthis.$floatLabel.addClass(classes.floatLabel);\r\n\r\n\t\tthis.$ctx.on('click', `.${classes.listFirstLevel}, .${classes.layerSecondLevelHeader}`, this.onToggleOverlayClick.bind(this));\r\n\r\n\t\tthis.$confirmButton.on('click', this.onConfirmButtonClick.bind(this));\r\n\t\tthis.$closeFilter.on('click', this.onCloseFilter.bind(this));\r\n\r\n\t\tthis.$ctx.on('click', `.${classes.itemSecondLevel}`, this.onPrimaryfilterClick.bind(this));\r\n\r\n\t\t$('input[type=checkbox]', this.$ctx).on('click',\r\n\t\t\t(event: Event) => {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t});\r\n\r\n\t\tthis.setFilterCheckedClass();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tonToggleOverlayClick(event: Event) {\r\n\t\tthis.toggleFilter();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\t}\r\n\r\n\tonConfirmButtonClick(event: Event) {\r\n\t\tthis.closeFilter();\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonCloseFilter(event: Event) {\r\n\t\tthis.closeFilter();\r\n\t\tthis.$ctx.trigger('FilterMultiCloseButton', [event]);\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonPrimaryfilterClick(event: Event) {\r\n\t\tconst $checkbox = $(event.currentTarget as HTMLElement).find('input[type=checkbox]');\r\n\t\tif ($checkbox.prop(\"disabled\")) return false;\r\n\t\tthis.setFilter($checkbox);\r\n\t\tthis.$ctx.trigger('FilterMultiCheckboxChanged',[event]);\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tsetFilter($checkbox: JQuery) {\r\n\t\t$checkbox.prop('checked', !$checkbox.prop('checked'));\r\n\t\tthis.$confirmButton.show();\r\n\r\n\t\tthis.setFilterCheckedClass();\r\n\t}\r\n\r\n\tisAnyFilterChecked($checkboxes: JQuery = $('input[type=checkbox]', this.$ctx)) {\r\n\t\treturn $checkboxes.toArray().some(this.isElementChecked);\r\n\t}\r\n\r\n\tisElementChecked(element: HTMLInputElement): any {\r\n\t\treturn element.checked;\r\n\t}\r\n\r\n\tsetFilterCheckedClass() {\r\n\t\t$(`.${classes.mainItemLink}`, this.$ctx).toggleClass(classes.mainItemChecked, this.isAnyFilterChecked());\r\n\t}\r\n\r\n\ttoggleFilter(toggleState?: any) {\r\n\t\tthis.closeAllSubFilterValues();\r\n\t\tthis.$confirmButton.hide();\r\n\t\tthis.$listFirstLevel\r\n\t\t\t.toggleClass(classes.listFirstLevelOpen, toggleState)\r\n\t\t\t.toggleClass(classes.listFirstLevelShadow, toggleState);\r\n\r\n\t\tthis.$itemFirstLevel.toggleClass(classes.itemFirstLevelOpen, toggleState);\r\n\t\tthis.$floatLabel.toggleClass(classes.focusLabel, toggleState);\r\n\t\tthis.$itemFirstLevelHeaderMobile.toggleClass(classes.itemFirstLevelHeaderMobileOpen, toggleState);\r\n\t}\r\n\r\n\topenFilter() {\r\n\t\tthis.toggleFilter(true);\r\n\t}\r\n\r\n\tcloseFilter() {\r\n\t\tthis.toggleFilter(false);\r\n\t}\r\n\r\n\topenFilterValueClick(event: Event) {\r\n\t\tconst $currentTargetElement = $(event.currentTarget);\r\n\r\n\t\tthis.$itemSecondLevel.hide();\r\n\t\t$currentTargetElement\r\n\t\t\t.closest(`.${classes.itemSecondLevel}`)\r\n\t\t\t.show();\r\n\t}\r\n\r\n\tcloseAllSubFilterValues() {\r\n\t\tthis.$itemSecondLevel.show();\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('FilterProductsearch')\r\n/**\r\n * filter-productsearch module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class FilterProductsearch extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('Filterkeywordsearch')\r\n/**\r\n * filter-productsearch module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class Filterkeywordsearch extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('FilterCategorysearch')\r\n/**\r\n * filter-categorysearch module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class FilterCategorysearch extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('FilterCategorysearchSingleLevel')\r\n/**\r\n * filter-categorysearch module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class FilterCategorysearchSingleLevel extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\n@createModule('FavouritesEntryTable')\r\n/**\r\n * favourites-entry-table\r\n *\r\n */\r\nexport class FavouritesEntryTable extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule,getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n \r\n\r\n@createModule('FavouritesList')\r\n/**\r\n * favourites-list\r\n *\r\n */\r\nexport class FavouritesList extends TerrificSpec {\r\n\t$ctx: JQuery; \r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n \r\n \r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('FilterSingleselect')\r\n/**\r\n * filter-singleselect module implementation.\r\n *\r\n * @author Dishan Sivakumaran \r\n */\r\nexport class FilterSingleselect extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\nconst classes = {\r\n\tlistFirstLevel: 'js-m-filter-two-level-multiselect__list-level1',\r\n\tlistFirstLevelOpen: 'm-filter-two-level-multiselect__list-level1--open',\r\n\tlistFirstLevelShadow: 'm-filter-two-level-multiselect__list-level1--shadow',\r\n\titemFirstLevel: 'js-m-filter-two-level-multiselect__item--level1',\r\n\titemFirstLevelOpen: 'm-filter-two-level-multiselect__item--level1-open',\r\n\titemFirstLevelHeaderMobile: 'm-filter-two-level-multiselect__item-link--main-mobile',\r\n\titemFirstLevelHeaderMobileOpen: 'm-filter-two-level-multiselect__item-link--main-mobile-header',\r\n\tmainItemLink: 'js-m-filter-two-level-multiselect__item-link--main',\r\n\tmainItemChecked: 'm-filter-two-level-multiselect__item-link--main-checked',\r\n\tlayerSecondLevel: 'js-m-filter-two-level-multiselect__layer-level2',\r\n\tlayerFirstLevelBacklink: 'js-m-filter-two-level-multiselect__backlink',\r\n\tlayerSecondLevelBacklink: 'js-m-filter-two-level-multiselect__backlink-level2',\r\n\tlayerSecondLevelHeader: 'js-m-filter-two-level-multiselect__layer-header-level2',\r\n\tlayerSecondLevelSubfilterOpen: 'm-filter-two-level-multiselect__layer-level2--with-sublevel',\r\n\titemSecondLevel: 'js-m-filter-two-level-multiselect__item--level2',\r\n\titemSecondLevelOpen: 'm-filter-two-level-multiselect__item--level2-open',\r\n\titemLinkSecondLevel: 'js-m-filter-two-level-multiselect__item-link',\r\n\titemLinkSecondLevelDisabled: 'm-filter-two-level-multiselect__item-link--parent-disabled',\r\n\titemLinkSecondLevelChecked: 'm-filter-two-level-multiselect__item-link--parent-checked',\r\n\tlistThirdLevel: 'js-m-filter-two-level-multiselect__list-level3',\r\n\tlistThirdLevelDisabled:'m-filter-two-level-multiselect__item--child-disabled',\r\n\tlistThirdLevelOpen: 'm-filter-two-level-multiselect__list-level3--open',\r\n\theaderThirdLevel: 'js-m-filter-two-level-multiselect__layer-header-level3',\r\n\titemThirdLevel: 'js-m-filter-two-level-multiselect__item--level3',\r\n\tconfirmButton: 'js-m-filter-two-level-multiselect__confirm-button',\r\n\tfloatLabel:'state-a-label--is-floated',\r\n\tfocusLabel:'state-a-label--is-focus',\r\n\tcloseFilter:'m-filter-two-level-multiselect__item-link--main-mobile-close-icon'\r\n};\r\n\r\n@createModule('FilterTwoLevelMultiselect')\r\n/**\r\n * $filter-two-level-multiselect terrific module implementation\r\n *\r\n * @author Christoph Merkelbach \r\n */\r\nexport class FilterTwoLevelMultiselect extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$confirmButton: JQuery;\r\n\t$layerSecondLevel: JQuery;\r\n\t$itemSecondLevel: JQuery;\r\n\t$listFirstLevel: JQuery;\r\n\t$itemFirstLevel: JQuery;\r\n\t$itemFirstLevelHeaderMobile: JQuery;\r\n\t$floatLabel: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.$floatLabel = this.$ctx.prev();\r\n\t\tthis.$floatLabel.addClass(classes.floatLabel);\r\n\r\n\t\tthis.registerProperties();\r\n\t\tthis.bindEvents();\r\n\r\n\t\tthis.setFilterCheckedClass();\r\n\t\tthis.setFilterDisabledClass();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tregisterProperties(): void {\r\n\t\tthis.$confirmButton = $(`.${classes.confirmButton}`, this.$ctx);\r\n\t\tthis.$layerSecondLevel = $(`.${classes.layerSecondLevel}`, this.$ctx);\r\n\t\tthis.$itemSecondLevel = $(`.${classes.itemSecondLevel}`, this.$ctx);\r\n\t\tthis.$listFirstLevel = $(`.${classes.listFirstLevel}`, this.$ctx);\r\n\t\tthis.$itemFirstLevel = $(`.${classes.itemFirstLevel}`, this.$ctx);\r\n\t\tthis.$itemFirstLevelHeaderMobile = $(`.${classes.itemFirstLevelHeaderMobile}`, this.$ctx);\r\n\t}\r\n\r\n\tbindEvents(): void {\r\n\t\t$(`.${classes.listFirstLevel}, .${classes.layerSecondLevelHeader}`, this.$ctx).on(\r\n\t\t\t'click',\r\n\t\t\tthis.onToggleOverlayClick.bind(this)\r\n\t\t);\r\n\t\tthis.$confirmButton.on('click', this.onConfirmButtonClick.bind(this));\r\n\t\t$(`.${classes.closeFilter}`, this.$ctx).on('click', this.onCloseFilter.bind(this));\r\n\t\t$(`.${classes.layerFirstLevelBacklink}`, this.$ctx).on('click', this.onBackButtonClick.bind(this));\r\n\t\t$(`.${classes.itemLinkSecondLevel}`, this.$ctx).on('click', this.onOpenCategoryClick.bind(this));\r\n\t\t$(`.${classes.layerSecondLevelBacklink}`, this.$ctx).on('click', this.onCloseCategoryClick.bind(this));\r\n\t\t$(`.${classes.headerThirdLevel}`, this.$ctx).on('click', this.onPrimaryfilterClick.bind(this));\r\n\t\t$(`.${classes.itemThirdLevel}`, this.$ctx).on('click', this.onSubfilterClick.bind(this));\r\n\r\n\t\tthis.$layerSecondLevel.on('click', (event: Event) => {\r\n\t\t\tevent.stopPropagation();\r\n\t\t});\r\n\t\t$('input[type=checkbox]', this.$ctx).on('click', (event: Event) => {\r\n\t\t\tevent.preventDefault();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Intended for (re)initializing event handlers after modifying the contents of the multiselect externally.\r\n\t */\r\n\tpublic rebindEvents(): void {\r\n\t\t$(`.${classes.listFirstLevel}, .${classes.layerSecondLevelHeader}`, this.$ctx).off('click');\r\n\t\tthis.$confirmButton.off('click');\r\n\t\t$(`.${classes.closeFilter}`, this.$ctx).off('click');\r\n\t\t$(`.${classes.layerFirstLevelBacklink}`, this.$ctx).off('click');\r\n\t\t$(`.${classes.itemLinkSecondLevel}`, this.$ctx).off('click');\r\n\t\t$(`.${classes.layerSecondLevelBacklink}`, this.$ctx).off('click');\r\n\t\t$(`.${classes.headerThirdLevel}`, this.$ctx).off('click');\r\n\t\t$(`.${classes.itemThirdLevel}`, this.$ctx).off('click');\r\n\r\n\t\tthis.$layerSecondLevel.off('click');\r\n\t\t$('input[type=checkbox]', this.$ctx).off('click');\r\n\r\n\t\tthis.registerProperties();\r\n\t\tthis.bindEvents();\r\n\t}\r\n\r\n\tonToggleOverlayClick(event: Event) {\r\n\t\tthis.toggleFilter();\r\n\t\tevent.stopPropagation();\r\n\t}\r\n\r\n\tonConfirmButtonClick(event: Event) {\r\n\t\tthis.closeFilter();\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonBackButtonClick(event: Event) {\r\n\t\tthis.closeFilter();\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonCloseFilter(event: Event) {\r\n\t\tthis.closeFilter();\r\n\t\tthis.$ctx.trigger('FilterTwoLevelMultiCloseButton', [event]);\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonCloseCategoryClick(event: Event) {\r\n\t\tthis.closeFilterValueClick(event);\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonOpenCategoryClick(event: Event) {\r\n\t\tvar $secondLevel = $(event.currentTarget);\r\n\r\n\t\tif($secondLevel.hasClass(classes.itemLinkSecondLevelDisabled)) return;\r\n\r\n\t\tthis.openFilterValueClick(event);\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t}\r\n\r\n\tonPrimaryfilterClick(event: Event) {\r\n\t\tthis.setFilter(\r\n\t\t\t$(event.currentTarget as HTMLElement)\r\n\t\t\t\t.parent()\r\n\t\t\t\t.find('input[type=checkbox]:not(:disabled)')\r\n\t\t);\r\n\t\tthis.$ctx.trigger('FilterTwoLevelMultiCheckboxChanged',[event]);\r\n\t}\r\n\r\n\tonSubfilterClick(event: Event) {\r\n\t\tconst $checkbox = $(event.currentTarget as HTMLElement).find('input[type=checkbox]');\r\n\t\tif($checkbox.prop(\"disabled\")) return false;\r\n\t\tthis.setFilter($checkbox);\r\n\t\t\tthis.adjustFirstLevelFilterAccordingToSubFilters($checkbox);\r\n\t\t\tthis.$ctx.trigger('FilterTwoLevelMultiCheckboxChanged',[event]);\r\n\t\t\tthis.setFilterCheckedClass();\r\n\t\t}\r\n\t\t \r\n\tadjustFirstLevelFilterAccordingToSubFilters($checkbox: JQuery) {\r\n\t\tconst $allCheckboxesOnSameLevel = $checkbox.closest(`.${classes.listThirdLevel}`).find('input[type=checkbox]:not(:disabled)');\r\n\t\tconst $firstLevelCheckbox = $checkbox\r\n\t\t\t.closest(`.${classes.itemSecondLevel}`)\r\n\t\t\t.find(`.${classes.headerThirdLevel} input[type=checkbox]`);\r\n\t\t$firstLevelCheckbox.prop('checked', this.areAllSubFiltersChecked($allCheckboxesOnSameLevel));\r\n\t}\r\n\r\n\tsetFilter($checkbox: JQuery) { \r\n\t\t$checkbox.prop('checked', !$checkbox.prop('checked'));\r\n\t\tthis.$confirmButton.show();\r\n\r\n\t\tthis.setFilterCheckedClass();\r\n\t}\r\n\r\n\tisAnyFilterChecked($checkboxes: JQuery = $('input[type=checkbox]:not(:disabled)', this.$ctx)) {\r\n\t\treturn $checkboxes.toArray().some(this.isElementChecked);\r\n\t}\r\n\r\n\tareAllSubFiltersChecked($checkboxes: JQuery = $('input[type=checkbox]:not(:disabled)', this.$ctx)) {\r\n\t\treturn $checkboxes.toArray().every(this.isElementChecked);\r\n\t}\r\n\r\n\tisElementChecked(element: HTMLInputElement) {\r\n\t\treturn element.checked;\r\n\t}\r\n\r\n\tsetFilterCheckedClass() {\r\n\t\t$(`.${classes.mainItemLink}`, this.$ctx).toggleClass(classes.mainItemChecked, this.isAnyFilterChecked());\r\n\r\n\t\tthis.$ctx.find(`.${classes.itemSecondLevel}`).each((i,e) => {\r\n\t\t\tconst $firstLevelItem = $(e);\r\n\t\t\tconst $checkboxes = $firstLevelItem.find(`.${classes.itemThirdLevel}`).find('input[type=checkbox]');\r\n\r\n\t\t\t$firstLevelItem\r\n\t\t\t\t.find(`.${classes.itemLinkSecondLevel}`)\r\n\t\t\t\t.toggleClass(classes.itemLinkSecondLevelChecked, this.isAnyFilterChecked($checkboxes))\r\n\t\t});\r\n\t}\r\n\r\n\ttoggleFilter(toggleState?: any) {\r\n\t\tthis.closeAllSubFilterValues();\r\n\t\tthis.$confirmButton.hide();\r\n\t\tthis.$listFirstLevel\r\n\t\t\t.toggleClass(classes.listFirstLevelOpen, toggleState)\r\n\t\t\t.toggleClass(classes.listFirstLevelShadow, toggleState);\r\n\t\tthis.$itemFirstLevel.toggleClass(classes.itemFirstLevelOpen, toggleState);\r\n\t\tthis.$floatLabel.toggleClass(classes.focusLabel, toggleState);\r\n\t\tthis.$itemFirstLevelHeaderMobile.toggleClass(classes.itemFirstLevelHeaderMobileOpen, toggleState);\r\n\t}\r\n\r\n\topenFilter() {\r\n\t\tthis.toggleFilter(true);\r\n\t}\r\n\r\n\tcloseFilter() {\r\n\t\tthis.toggleFilter(false);\r\n\t}\r\n\r\n\topenFilterValueClick(event: Event) {\r\n\t\tconst $currentTargetElement = $(event.currentTarget);\r\n\r\n\t\tif($currentTargetElement.parent().hasClass(classes.itemLinkSecondLevelDisabled)) return false;\r\n\r\n\t\t$currentTargetElement.closest(`.${classes.layerSecondLevel}`).addClass(classes.layerSecondLevelSubfilterOpen);\r\n\t\tthis.$itemSecondLevel.hide();\r\n\t\t$currentTargetElement\r\n\t\t\t.closest(`.${classes.itemSecondLevel}`)\r\n\t\t\t.show()\r\n\t\t\t.addClass(classes.itemSecondLevelOpen)\r\n\t\t\t.find(`.${classes.listThirdLevel}`)\r\n\t\t\t.addClass(classes.listThirdLevelOpen);\r\n\t}\r\n\r\n\tcloseAllSubFilterValues() {\r\n\t\tthis.$layerSecondLevel.removeClass(classes.layerSecondLevelSubfilterOpen);\r\n\t\tthis.$itemSecondLevel\r\n\t\t\t.show()\r\n\t\t\t.removeClass(classes.itemSecondLevelOpen)\r\n\t\t\t.find(`.${classes.listThirdLevel}`)\r\n\t\t\t.removeClass(classes.listThirdLevelOpen);\r\n\t}\r\n\r\n\tcloseFilterValueClick(event: Event) {\r\n\t\tthis.$layerSecondLevel.removeClass(classes.layerSecondLevelSubfilterOpen);\r\n\t\tthis.$itemSecondLevel.show();\r\n\t\t$(event.currentTarget)\r\n\t\t\t.closest(`.${classes.itemSecondLevel}`)\r\n\t\t\t.removeClass(classes.itemSecondLevelOpen)\r\n\t\t\t.find(`.${classes.listThirdLevel}`)\r\n\t\t\t.removeClass(classes.listThirdLevelOpen);\r\n\t}\r\n\r\n\tsetFilterDisabledClass(){\r\n\t\tthis.$ctx.find(`.${classes.itemThirdLevel}`).find('input[type=checkbox]:disabled').closest(`.${classes.itemThirdLevel}`).addClass(classes.listThirdLevelDisabled);\r\n\r\n\t\tthis.$ctx.find(`.${classes.itemSecondLevel}`).each((i,e) => {\r\n\t\t\tconst $firstLevelItem = $(e);\r\n\t\t\tconst $checkboxes = $firstLevelItem.find(`.${classes.itemThirdLevel}`).find('input[type=checkbox]');\r\n\r\n\t\t\t$firstLevelItem\r\n\t\t\t\t.find(`.${classes.itemLinkSecondLevel}`)\r\n\t\t\t\t.toggleClass(classes.itemLinkSecondLevelDisabled, this.areAllFilterDisabled($checkboxes));\r\n\r\n\t\t\t$firstLevelItem\r\n\t\t\t\t.find(`.${classes.headerThirdLevel}`).find('input[type=checkbox]')\r\n\t\t\t\t.prop(\"disabled\", this.areAllFilterDisabled($checkboxes));\r\n\t\t});\r\n\t}\r\n\r\n\tareAllFilterDisabled($checkboxes: JQuery){\r\n\t\treturn $checkboxes.toArray().every(this.isElementDisabled);\r\n\t}\r\n\r\n\tisElementDisabled(element: HTMLElement): any {\r\n\t\treturn $(element).prop(\"disabled\");\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('FilterWrapper')\r\n/**\r\n * filter-wrapper module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class FilterWrapper extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('ProductFilter')\r\n/**\r\n * product-filter module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class ProductFilter extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('TechnicalPropertyPopup')\r\n/**\r\n * product-filter module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class TechnicalPropertyPopup extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\t$($ctx)\r\n\t\t\t.find('.js-property-popup-closer')\r\n\t\t\t.on('click', this._hidePropertyPopup.bind(this));\r\n\r\n\t\t$($ctx)\r\n\t\t\t.find('.js-m-technical-property-popup__tab-nav')\r\n\t\t\t.on('click', this._triggerTab.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\t\r\n\t_hidePropertyPopup(ev: any) {\r\n\t\t$(ev.currentTarget)\r\n\t\t\t.parent()\r\n\t\t\t.parent()\r\n\t\t\t.removeClass('state-m-technical-property-popup--shown');\r\n\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t}\r\n\r\n\t_triggerTab(ev: any) {\r\n\t\tvar num = $(ev.currentTarget).index();\r\n\t\t$(ev.currentTarget)\r\n\t\t\t.addClass('m-technical-property-popup__tab-nav--active');\r\n\t\t$(ev.currentTarget)\r\n\t\t\t.siblings()\r\n\t\t\t.removeClass('m-technical-property-popup__tab-nav--active');\r\n\t\t$(ev.currentTarget)\r\n\t\t\t.parent()\r\n\t\t\t.next()\r\n\t\t\t.find('.m-technical-property-popup__tab-pane')\r\n\t\t\t.removeClass('m-technical-property-popup__tab-pane--active');\r\n\t\t$(ev.currentTarget)\r\n\t\t\t.parent()\r\n\t\t\t.next()\r\n\t\t\t.find('.m-technical-property-popup__tab-pane')\r\n\t\t\t.eq(num)\r\n\t\t\t.addClass('m-technical-property-popup__tab-pane--active');\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\t/**\r\n\t * method to trigger public event\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\n\r\nconst classes = {\r\n\tsubmitForm: 'js-form__button-event--submit',\r\n\tcancelForm: 'js-form__button-event--cancel',\r\n\tfocusElement: 'js-form__event-show-additional-fields',\r\n\tadditionalFields: 'js-form__additional-fields',\r\n\t// inputCountrySelector: 'js-form__input-select',\r\n\tstateFormContactAdditionalFieldsVisible: 'state-m-form-order--show-additional-fields',\r\n\tstateFormContactHiddenAfterSubmit: 'state-m-form-order-form--hidden-after-submit',\r\n\tstateFormBuilderError: 'input-validation-error', // set by Sitecore form builder. no js- prefix\r\n\tstateFormIsHidden: 'state-m-form-order--is-hidden',\r\n};\r\n\r\n@createModule('FormOrder')\r\n/**\r\n * form-order module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class FormOrder extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\t// TODO: clarify why this class is not in use\r\n\t\t// const cssClassSectionNoteAvailable = 'state-m-form-order--is-hidden';\r\n\r\n\t\t// TODO: name-syntax-error js selector requires js- prefix. has to be checked with backend\r\n\t\tconst cssClassFormNotAvailable = 'm-form-order--is-hidden';\r\n\r\n\t\t// we have to check if the hidden class was set.\r\n\t\t// this is the case, when form-order is disabled for sitecore.\r\n\t\tif (this.$ctx.hasClass(cssClassFormNotAvailable)) {\r\n\t\t\t// if form order should not be displayed, whe also have\r\n\t\t\t// to hide the parent section container\r\n\t\t\t// NOTE: Sitecore can't set the related property on page level,\r\n\t\t\t// \t\t so that the section would be hidden automatically\r\n\t\t\tthis.$ctx.parent().addClass(classes.stateFormIsHidden);\r\n\t\t} else {\r\n\t\t\t// const $countrySelect = $(`.${classes.inputCountrySelector}`, $ctx);\r\n\t\t\tconst $textareaWithFocus = $(`.${classes.focusElement}`, this.$ctx);\r\n\t\t\tconst $areaAdditionalFields = $(`.${classes.additionalFields}`, this.$ctx);\r\n\t\t\tconst $buttonCancel = $(`.${classes.cancelForm}`, this.$ctx);\r\n\t\t\tconst $buttonSubmit = $(`.${classes.submitForm}`, this.$ctx);\r\n\r\n\t\t\tif ($textareaWithFocus.length > 0 && $areaAdditionalFields.length > 0) {\r\n\t\t\t\t$textareaWithFocus.on('focus', () => {\r\n\t\t\t\t\t$areaAdditionalFields.addClass(classes.stateFormContactAdditionalFieldsVisible);\r\n\t\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// check for cancel button placed from sitecore\r\n\t\t\tif ($buttonCancel.length !== 0) {\r\n\t\t\t\t// close the additional form field section\r\n\t\t\t\t$buttonCancel.on('click', (ev: Event) => {\r\n\t\t\t\t\t$areaAdditionalFields.removeClass(classes.stateFormContactAdditionalFieldsVisible);\r\n\t\t\t\t\tscrollToElement(this.$ctx, true, $(window).height() / 10);\r\n\t\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ($buttonSubmit.length !== 0) {\r\n\t\t\t\t$buttonSubmit.on('click', (ev: Event) => {\r\n\t\t\t\t\tthis.$ctx.addClass(classes.stateFormContactHiddenAfterSubmit);\r\n\t\t\t\t\tconst $elm =\r\n\t\t\t\t\t\t$(`.${classes.stateFormBuilderError}`, this.$ctx).length > 0\r\n\t\t\t\t\t\t\t? $(`.${classes.stateFormBuilderError}`, this.$ctx)\r\n\t\t\t\t\t\t\t: this.$ctx;\r\n\t\t\t\t\tscrollToElement($elm, true, $(window).height() / 10);\r\n\t\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\n\r\nconst classes = {\r\n\tdependencyOptionValue: 'other',\r\n\tselectLink: '.js-m-language-switch__switch',\r\n\taccordionMoreBtnContainer: '.m-global-contact__more-accordion',\r\n\taccordionMoreBtn: '.m-global-contact__more-accordion .a-button',\r\n\taccordionMoreBtnActive: 'state-a-button--accordion-active',\r\n\taddressContainer: '.m-global-contact__contacts',\r\n\taddressElement: '.m-global-contact__contact',\r\n\taddressContainerShowLess: 'js-m-global-contact__contacts--show-less', \r\n\taddressCollector: '.js-m-global-contact__contact-collector',\r\n\tpreloader: '.m-global-contact__preloader .a-loading-indicator',\r\n\twechatContainer: '.m-global-contact__wechat',\r\n\twechatState: 'state-m-global-contact--cn',\r\n\terrorNoData: '.js-m-global-contact__error-handling-no-data',\r\n\terrorNoResponse: '.js-m-global-contact__error-handling-no-response',\r\n};\r\n\r\n@createModule('GlobalContact')\r\n/**\r\n * GlobalContact module implementation.\r\n */\r\nexport class GlobalContact extends TerrificSpec {\r\n\t/* eslint-disable no-undef */\r\n\t$ctx: any;\r\n\t$accordionBtn: any;\r\n\t$languageSelect: any;\r\n\t$categorySelect: any;\r\n\t$wechatContainer: any;\r\n\t$header: any;\r\n\tbaseUrl: string;\r\n\taccordionToggleTextOn: string;\r\n\taccordionToggleTextOff: string;\r\n\tshowLoadMoreSpinner = true;\r\n\tnumOfAddresses: number;\r\n\trequiredNumOfAddressesForScrolling: number;\r\n\tscrollOnCloseAccordion: boolean;\r\n\t/* eslint-enable no-undef */\r\n\r\n\t/**\r\n\t * Start Lifecycle\r\n\t * @param {Function} resolve Resolve\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$wechatContainer = this.$ctx.find(classes.wechatContainer);\r\n\t\tthis.$header = $('[data-t-name=\"header\"]');\r\n\t\tthis.setAccordionActions();\r\n\t\tthis.setLanguageSelectActions();\r\n\t\tthis.setAutoScrollActions();\r\n\t\tthis.hideErrorMessages();\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * Start ajax call\r\n\t * @param {string} lang lang\r\n\t * @returns {void}\r\n\t */\r\n\tresponseRequest(lang: string) {\r\n\t\tconst url = this.$languageSelect.attr('data-endpoint');\r\n\r\n\t\tthis.initializeOnRequest();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: 'GET',\r\n\t\t\t\turl: url + lang,\r\n\t\t\t\tcontentType: 'application/json; charset=utf-8',\r\n\t\t\t\tasync: true,\r\n\t\t\t\tdataType: 'json',\r\n\t\t\t\tsuccess: (res: string[]) => {\r\n\t\t\t\t\tthis.hidePreloader();\r\n\r\n\t\t\t\t\tif (res.length === 0) {\r\n\t\t\t\t\t\t// checked if address locations are available for this country\r\n\t\t\t\t\t\tthis.noDataAvailable();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// otherwise there is data available\r\n\t\t\t\t\t\tthis.responseSuccess(res, lang);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: () => {\r\n\t\t\t\t\tthis.hidePreloader();\r\n\t\t\t\t\tthis.noServerResponse();\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}, 250);\r\n\t}\r\n\r\n\t/**\r\n\t * Initializes involved elemnts\r\n\t * @returns {void}\r\n\t */\r\n\tinitializeOnRequest() {\r\n\t\tthis.showPreloader();\r\n\t\tthis.removeLocations();\r\n\t\tthis.$accordionBtn.hide();\r\n\t\tthis.$wechatContainer.hide();\r\n\t\tthis.hideErrorMessages();\r\n\t}\r\n\r\n\t/**\r\n\t * showPreloader\r\n\t * @returns {void}\r\n\t */\r\n\tshowPreloader() {\r\n\t\tthis.$ctx.find(classes.preloader).show();\r\n\t}\r\n\r\n\t/**\r\n\t * hidePreloader\r\n\t * @returns {void}\r\n\t */\r\n\thidePreloader() {\r\n\t\tthis.$ctx.find(classes.preloader).hide();\r\n\t}\r\n\r\n\t/**\r\n\t * Success ajax callback\r\n\t * @param {Array} res res\r\n\t * @param {string} lang language\r\n\t * @returns {void}\r\n\t */\r\n\tresponseSuccess(res: any, lang: string) {\r\n\t\tthis.hidePreloader();\r\n\t\t// eslint-disable-next-line prefer-template\r\n\t\tthis.$ctx.find('.' + classes.addressContainerShowLess).show();\r\n\t\tthis.addLocations(res);\r\n\t\tif (this.shouldShowAccordionBtn()) {\r\n\t\t\tthis.$accordionBtn.show();\r\n\t\t}\r\n\r\n\t\t// Special case for china shows wechat qr code\r\n\t\tif (lang === 'CN') {\r\n\t\t\tthis.$wechatContainer.show();\r\n\t\t\tthis.$accordionBtn.closest(classes.accordionMoreBtnContainer).addClass(classes.wechatState);\r\n\t\t} else {\r\n\t\t\tthis.$wechatContainer.hide();\r\n\t\t\tthis.$accordionBtn.closest(classes.accordionMoreBtnContainer).removeClass(classes.wechatState);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Remove MarkUp From Dom\r\n\t * @returns {void}\r\n\t */\r\n\tremoveLocations() {\r\n\t\tthis.$ctx.find(classes.addressElement).remove();\r\n\t}\r\n\r\n\t/**\r\n\t * Add MarkUp To Dom\r\n\t * @param {Object} res res\r\n\t * @returns {void}\r\n\t */\r\n\taddLocations(res: any) {\r\n\t\t/* eslint-disable */\r\n\t\tconst $target = this.$ctx.find(classes.addressCollector);\r\n\t\t/* eslint-enable */\r\n\t\t$target.append(this.prepareLocationsMarkUp(res));\r\n\r\n\t\tthis.numOfAddresses = $target.find(classes.addressElement).length;\r\n\t}\r\n\r\n\t/**\r\n\t * Create MarkUp\r\n\t * @param {Object} res response\r\n\t * @returns {string} string\r\n\t */\r\n\tprepareLocationsMarkUp(res: any): string {\r\n\t\tlet str = '';\r\n\t\tres.forEach((d: string) => {\r\n\t\t\t/* eslint-disable */\r\n\t\t\tstr +=\r\n\t\t\t\t'
    ' + d + '
    ';\r\n\t\t\t/* eslint-enable */\r\n\t\t});\r\n\t\treturn str;\r\n\t}\r\n\r\n\t/**\r\n\t * Should show accordion btn\r\n\t * @returns {boolean} boolean\r\n\t */\r\n\tshouldShowAccordionBtn() {\r\n\t\t/* Disable linting to avoid warning for not allowed template concatenation rule */\r\n\t\t/* eslint-disable */\r\n\t\tconst $contacts: any = this.$ctx.find(classes.addressContainer + ' ' + classes.addressElement);\r\n\t\t/* eslint-enable */\r\n\t\treturn $contacts.length > 1;\r\n\t}\r\n\r\n\t/**\r\n\t * setAccordionActions\r\n\t * @returns {void}\r\n\t */\r\n\tsetAccordionActions() {\r\n\t\tthis.$accordionBtn = this.getAccordionBtn();\r\n\t\tthis.$accordionBtn.on('click', () => this.accordionToggleEvt());\r\n\t\tthis.accordionSetToggleText();\r\n\r\n\t\tif (!this.shouldShowAccordionBtn()) {\r\n\t\t\tthis.$accordionBtn.hide();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * setLanguageSelectActions\r\n\t * @returns {void}\r\n\t */\r\n\tsetLanguageSelectActions() {\r\n\t\tthis.$languageSelect = this.getSelect();\r\n\t\tthis.baseUrl = this.$languageSelect.data('baseUrl');\r\n\t\tthis.$languageSelect.on('change', (ev: Event) => this.selectedOptionChanged(ev));\r\n\t\tthis.checkLocationParamsAndSet(this.$languageSelect);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Toggle Accordion Class to show or hide more locations\r\n\t * @returns {void}\r\n\t */\r\n\taccordionToggleEvt() {\r\n\t\tthis.accordionToggleText();\r\n\t\tthis.accordionClassToggle();\r\n\r\n\t\t/* Disable linting to avoid warning for .parent().parent() not allowed chaining rule */\r\n\t\t/* eslint-disable */\r\n\t\tconst $accordionBtnContainer: any = this.$ctx\r\n\t\t\t.find(classes.accordionMoreBtn)\r\n\t\t\t.parent()\r\n\t\t\t.parent();\r\n\t\t/* eslint-enable */\r\n\r\n\t\tif ($accordionBtnContainer.hasClass(classes.addressContainerShowLess)) {\r\n\t\t\t$accordionBtnContainer.removeClass(classes.addressContainerShowLess);\r\n\t\t} else {\r\n\t\t\t$accordionBtnContainer.addClass(classes.addressContainerShowLess);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Set accordion text for on and off state\r\n\t * @returns {void}\r\n\t */\r\n\taccordionSetToggleText() {\r\n\t\tthis.accordionToggleTextOn = this.$ctx.find(classes.accordionMoreBtn).text();\r\n\t\tthis.accordionToggleTextOff = this.$ctx.find(classes.accordionMoreBtn).data('text-toggle');\r\n\t}\r\n\r\n\t/**\r\n\t * Accordion text toggle\r\n\t * @returns {void}\r\n\t */\r\n\taccordionToggleText() {\r\n\t\tconst $accordionBtn = this.$ctx.find(classes.accordionMoreBtn);\r\n\r\n\t\tif ($accordionBtn.text() === this.accordionToggleTextOn) {\r\n\t\t\t// Show less text\r\n\t\t\t$accordionBtn.attr('data-text-toggle', this.accordionToggleTextOn);\r\n\t\t\t$accordionBtn.text(this.accordionToggleTextOff);\r\n\t\t} else {\r\n\t\t\t// Show more text\r\n\t\t\t$accordionBtn.attr('data-text-toggle', this.accordionToggleTextOff);\r\n\t\t\t$accordionBtn.text(this.accordionToggleTextOn);\r\n\r\n\t\t\t// Perform action only when closing accordion button\r\n\t\t\tif (this.shouldScrollToElement()) {\r\n\t\t\t\tscrollToElement(this.$ctx, true, this.$header.outerHeight());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Should scroll to global contact's top position on the page when more than given addresses in variable\r\n\t * 'this.requiredNumOfAddressesForScrolling' has been shown after closing the accordion button.\r\n\t * Avoids destroying focus and keeps user visually in track.\r\n\t * @returns {boolean} Boolean value\r\n\t */\r\n\tshouldScrollToElement(): boolean {\r\n\t\treturn this.numOfAddresses > this.requiredNumOfAddressesForScrolling && this.scrollOnCloseAccordion;\r\n\t}\r\n\r\n\t/**\r\n\t * Accordion class toggle\r\n\t * @returns {void}\r\n\t */\r\n\taccordionClassToggle() {\r\n\t\tconst $accordionBtn = this.$ctx.find(classes.accordionMoreBtn);\r\n\r\n\t\tif ($accordionBtn.hasClass(classes.accordionMoreBtnActive)) {\r\n\t\t\t$accordionBtn.removeClass(classes.accordionMoreBtnActive);\r\n\t\t} else {\r\n\t\t\t$accordionBtn.addClass(classes.accordionMoreBtnActive);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Extract parameter name from baseUrl\r\n\t * @returns {void}\r\n\t */\r\n\tgetParamNameFromBaseUrl() {\r\n\t\treturn this.baseUrl.substr(1, this.baseUrl.length - 2);\r\n\t}\r\n\r\n\t/**\r\n\t * Check params for language in browser's location bar.\r\n\t * See inputSelect.attr.value = \"?SelectedCountry\" in global-contact.json\r\n\t *\r\n\t * @param {jQuery} $select Select option (drop down)\r\n\t * @returns {void}\r\n\t */\r\n\tcheckLocationParamsAndSet($select: any) {\r\n\t\tconst str = document.location.search;\r\n\t\tconst params = new Map(str\r\n\t\t\t.slice(1)\r\n\t\t\t.split('&')\r\n\t\t\t.map((m) => m.split('=')));\r\n\t\tconst param = this.getParamNameFromBaseUrl();\r\n\r\n\t\tif (params.has(param)) {\r\n\t\t\t$select.val(params.get(param));\r\n\t\t} else {\r\n\t\t\t$select.val('-1');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * follow link of selected option on change\r\n\t *\r\n\t * @param {Event} ev value of select option\r\n\t * @returns {void}\r\n\t */\r\n\tselectedOptionChanged(ev: any) {\r\n\t\tconst lang = ev.currentTarget.value;\r\n\t\tthis.responseRequest(lang);\r\n\t}\r\n \r\n\t/**\r\n\t * Error handling no data available\r\n\t * @returns {void}\r\n\t */\r\n\tnoDataAvailable() {\r\n\t\tconst $target = this.$ctx.find(classes.errorNoData);\r\n\t\t$target.show();\r\n\t\tthis.hideShowLessContainer();\r\n\t}\r\n\r\n\t/**\r\n\t * Error handling no ajax request\r\n\t * @returns {void}\r\n\t */\r\n\tnoServerResponse() {\r\n\t\tconst $target = this.$ctx.find(classes.errorNoResponse);\r\n\t\t$target.show();\r\n\t\tthis.hideShowLessContainer();\r\n\t}\r\n\r\n\t/**\r\n\t * Hide all error messages\r\n\t * @returns {void}\r\n\t */\r\n\thideErrorMessages() {\r\n\t\tconst $targetNoData = this.$ctx.find(classes.errorNoData);\r\n\t\tconst $targetNoResponse = this.$ctx.find(classes.errorNoResponse);\r\n\r\n\t\t// this.hideShowLessContainer();\r\n\t\t$targetNoData.hide();\r\n\t\t$targetNoResponse.hide();\r\n\t}\r\n\r\n\t/**\r\n\t * hide additional address container\r\n\t * @returns {void}\r\n\t */\r\n\thideShowLessContainer() {\r\n\t\t// eslint-disable-next-line prefer-template\r\n\t\tthis.$ctx.find('.' + classes.addressContainerShowLess).hide();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns jQuery select option DOM element\r\n\t * @returns {Object} jQuery object\r\n\t */\r\n\tgetSelect(): any {\r\n\t\tconst str = classes.selectLink;\r\n\t\treturn this.$ctx.find(str);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns jQuery select option DOM element\r\n\t * @returns {Object} jQuery object\r\n\t */\r\n\tgetAccordionBtn(): any {\r\n\t\tconst str = classes.accordionMoreBtn;\r\n\t\treturn this.$ctx.find(str);\r\n\t}\r\n\r\n\t/**\r\n\t * Start a scrolling to the top of the global contacts area\r\n\t * @returns {void}\r\n\t */\r\n\tsetAutoScrollActions() {\r\n\t\tthis.requiredNumOfAddressesForScrolling = 3;\r\n\t\tthis.scrollOnCloseAccordion = true;\r\n\t}\r\n\r\n\t/**\r\n\t * _triggerChangeEvent\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tlanguageContainer: 'js-m-hazardous-substances__list-container',\r\n\tlanguageSelect: 'js-m-hazardous-substances__language-selector',\r\n\tstateActive: 'state-m-hazardous-substances__list-container--active',\r\n};\r\n\r\nconst dataAttr = {\r\n\tlangCode: 'data-langcode',\r\n};\r\n\r\n@createModule('HazardousSubstances')\r\n/**\r\n * hazardous-substances module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class HazardousSubstances extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$languageContainer: JQuery;\r\n\t$select: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$languageContainer = this.$ctx.find(`.${classes.languageContainer}`);\r\n\t\tthis.$select = this.$ctx.find(`.${classes.languageSelect}`);\r\n\t\tthis.$select.on('change', this.updateLanguages.bind(this));\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * update download button\r\n\t */\r\n\tupdateLanguages() {\r\n\t\tconst langCode = this.getLanguageSelectValue();\r\n\r\n\t\tthis.$languageContainer.removeClass(classes.stateActive);\r\n\t\tthis.$languageContainer.filter(`[${dataAttr.langCode}=\"${langCode}\"]`).addClass(classes.stateActive);\r\n\r\n\t\t// reInit InpageNavigation, as height of content changes\r\n\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t}\r\n\r\n\t/**\r\n\t * Get input select value\r\n\t */\r\n\tgetLanguageSelectValue(): string {\r\n\t\treturn this.$select.val() as string;\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n}\r\n","/*\r\n * File: iframeResizer.js\r\n * Desc: Force iframes to size to content.\r\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\r\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\r\n * Author: David J. Bradshaw - dave@bradshaw.net\r\n * Contributor: Jure Mav - jure.mav@gmail.com\r\n * Contributor: Reed Dadoune - reed@dadoune.com\r\n */\r\n\r\n(function(window) {\r\n\t'use strict';\r\n\r\n\tvar count = 0,\r\n\t\tlogEnabled = false,\r\n\t\thiddenCheckEnabled = false,\r\n\t\tmsgHeader = 'message',\r\n\t\tmsgHeaderLen = msgHeader.length,\r\n\t\tmsgId = '[iFrameSizer]', //Must match iframe msg ID\r\n\t\tmsgIdLen = msgId.length,\r\n\t\tpagePosition = null,\r\n\t\trequestAnimationFrame = window.requestAnimationFrame,\r\n\t\tresetRequiredMethods = { max: 1, scroll: 1, bodyScroll: 1, documentElementScroll: 1 },\r\n\t\tsettings = {},\r\n\t\ttimer = null,\r\n\t\tlogId = 'Host Page',\r\n\t\tdefaults = {\r\n\t\t\tautoResize: true,\r\n\t\t\tbodyBackground: null,\r\n\t\t\tbodyMargin: null,\r\n\t\t\tbodyMarginV1: 8,\r\n\t\t\tbodyPadding: null,\r\n\t\t\tcheckOrigin: true,\r\n\t\t\tinPageLinks: false,\r\n\t\t\tenablePublicMethods: true,\r\n\t\t\theightCalculationMethod: 'bodyOffset',\r\n\t\t\tid: 'iFrameResizer',\r\n\t\t\tinterval: 32,\r\n\t\t\tlog: false,\r\n\t\t\tmaxHeight: Infinity,\r\n\t\t\tmaxWidth: Infinity,\r\n\t\t\tminHeight: 0,\r\n\t\t\tminWidth: 0,\r\n\t\t\tresizeFrom: 'parent',\r\n\t\t\tscrolling: false,\r\n\t\t\tsizeHeight: true,\r\n\t\t\tsizeWidth: false,\r\n\t\t\ttolerance: 0,\r\n\t\t\twidthCalculationMethod: 'scroll',\r\n\t\t\tclosedCallback: function() {},\r\n\t\t\tinitCallback: function() {},\r\n\t\t\tmessageCallback: function() {\r\n\t\t\t\twarn('MessageCallback function not defined');\r\n\t\t\t},\r\n\t\t\tresizedCallback: function() {},\r\n\t\t\tscrollCallback: function() {\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\t\t};\r\n\r\n\tfunction addEventListener(obj, evt, func) {\r\n\t\t/* istanbul ignore else */ // Not testable in PhantonJS\r\n\t\tif ('addEventListener' in window) {\r\n\t\t\tobj.addEventListener(evt, func, false);\r\n\t\t} else if ('attachEvent' in window) {\r\n\t\t\t//IE\r\n\t\t\tobj.attachEvent('on' + evt, func);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setupRequestAnimationFrame() {\r\n\t\tvar vendors = ['moz', 'webkit', 'o', 'ms'],\r\n\t\t\tx;\r\n\r\n\t\t// Remove vendor prefixing if prefixed and break early if not\r\n\t\tfor (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\r\n\t\t\trequestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n\t\t}\r\n\r\n\t\tif (!requestAnimationFrame) {\r\n\t\t\tlog('setup', 'RequestAnimationFrame not supported');\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getMyID(iframeId) {\r\n\t\tvar retStr = 'Host page: ' + iframeId;\r\n\r\n\t\tif (window.top !== window.self) {\r\n\t\t\tif (window.parentIFrame && window.parentIFrame.getId) {\r\n\t\t\t\tretStr = window.parentIFrame.getId() + ': ' + iframeId;\r\n\t\t\t} else {\r\n\t\t\t\tretStr = 'Nested host page: ' + iframeId;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn retStr;\r\n\t}\r\n\r\n\tfunction formatLogHeader(iframeId) {\r\n\t\treturn msgId + '[' + getMyID(iframeId) + ']';\r\n\t}\r\n\r\n\tfunction isLogEnabled(iframeId) {\r\n\t\treturn settings[iframeId] ? settings[iframeId].log : logEnabled;\r\n\t}\r\n\r\n\tfunction log(iframeId, msg) {\r\n\t\toutput('log', iframeId, msg, isLogEnabled(iframeId));\r\n\t}\r\n\r\n\tfunction info(iframeId, msg) {\r\n\t\toutput('info', iframeId, msg, isLogEnabled(iframeId));\r\n\t}\r\n\r\n\tfunction warn(iframeId, msg) {\r\n\t\toutput('warn', iframeId, msg, true);\r\n\t}\r\n\r\n\tfunction output(type, iframeId, msg, enabled) {\r\n\t\tif (true === enabled && 'object' === typeof window.console) {\r\n\t\t\tconsole[type](formatLogHeader(iframeId), msg);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction iFrameListener(event) {\r\n\t\tfunction resizeIFrame() {\r\n\t\t\tfunction resize() {\r\n\t\t\t\tsetSize(messageData);\r\n\t\t\t\tsetPagePosition(iframeId);\r\n\t\t\t}\r\n\r\n\t\t\tensureInRange('Height');\r\n\t\t\tensureInRange('Width');\r\n\r\n\t\t\tsyncResize(resize, messageData, 'init');\r\n\t\t}\r\n\r\n\t\tfunction processMsg() {\r\n\t\t\tvar data = msg.substr(msgIdLen).split(':');\r\n\r\n\t\t\treturn {\r\n\t\t\t\tiframe: settings[data[0]].iframe,\r\n\t\t\t\tid: data[0],\r\n\t\t\t\theight: data[1],\r\n\t\t\t\twidth: data[2],\r\n\t\t\t\ttype: data[3],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction ensureInRange(Dimension) {\r\n\t\t\tvar max = Number(settings[iframeId]['max' + Dimension]),\r\n\t\t\t\tmin = Number(settings[iframeId]['min' + Dimension]),\r\n\t\t\t\tdimension = Dimension.toLowerCase(),\r\n\t\t\t\tsize = Number(messageData[dimension]);\r\n\r\n\t\t\tlog(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max);\r\n\r\n\t\t\tif (size < min) {\r\n\t\t\t\tsize = min;\r\n\t\t\t\tlog(iframeId, 'Set ' + dimension + ' to min value');\r\n\t\t\t}\r\n\r\n\t\t\tif (size > max) {\r\n\t\t\t\tsize = max;\r\n\t\t\t\tlog(iframeId, 'Set ' + dimension + ' to max value');\r\n\t\t\t}\r\n\r\n\t\t\tmessageData[dimension] = '' + size;\r\n\t\t}\r\n\r\n\t\tfunction isMessageFromIFrame() {\r\n\t\t\tfunction checkAllowedOrigin() {\r\n\t\t\t\tfunction checkList() {\r\n\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\tretCode = false;\r\n\r\n\t\t\t\t\tlog(iframeId, 'Checking connection is from allowed list of origins: ' + checkOrigin);\r\n\r\n\t\t\t\t\tfor (; i < checkOrigin.length; i++) {\r\n\t\t\t\t\t\tif (checkOrigin[i] === origin) {\r\n\t\t\t\t\t\t\tretCode = true;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn retCode;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction checkSingle() {\r\n\t\t\t\t\tvar remoteHost = settings[iframeId].remoteHost;\r\n\t\t\t\t\tlog(iframeId, 'Checking connection is from: ' + remoteHost);\r\n\t\t\t\t\treturn origin === remoteHost;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn checkOrigin.constructor === Array ? checkList() : checkSingle();\r\n\t\t\t}\r\n\r\n\t\t\tvar origin = event.origin,\r\n\t\t\t\tcheckOrigin = settings[iframeId].checkOrigin;\r\n\r\n\t\t\tif (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t'Unexpected message received from: ' +\r\n\t\t\t\t\t\torigin +\r\n\t\t\t\t\t\t' for ' +\r\n\t\t\t\t\t\tmessageData.iframe.id +\r\n\t\t\t\t\t\t'. Message was: ' +\r\n\t\t\t\t\t\tevent.data +\r\n\t\t\t\t\t\t'. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tfunction isMessageForUs() {\r\n\t\t\treturn msgId === ('' + msg).substr(0, msgIdLen) && msg.substr(msgIdLen).split(':')[0] in settings; //''+Protects against non-string msg\r\n\t\t}\r\n\r\n\t\tfunction isMessageFromMetaParent() {\r\n\t\t\t//Test if this message is from a parent above us. This is an ugly test, however, updating\r\n\t\t\t//the message format would break backwards compatibity.\r\n\t\t\tvar retCode = messageData.type in { true: 1, false: 1, undefined: 1 };\r\n\r\n\t\t\tif (retCode) {\r\n\t\t\t\tlog(iframeId, 'Ignoring init message from meta parent page');\r\n\t\t\t}\r\n\r\n\t\t\treturn retCode;\r\n\t\t}\r\n\r\n\t\tfunction getMsgBody(offset) {\r\n\t\t\treturn msg.substr(msg.indexOf(':') + msgHeaderLen + offset);\r\n\t\t}\r\n\r\n\t\tfunction forwardMsgFromIFrame(msgBody) {\r\n\t\t\tlog(iframeId, 'MessageCallback passed: {iframe: ' + messageData.iframe.id + ', message: ' + msgBody + '}');\r\n\t\t\tcallback('messageCallback', {\r\n\t\t\t\tiframe: messageData.iframe,\r\n\t\t\t\tmessage: JSON.parse(msgBody),\r\n\t\t\t});\r\n\t\t\tlog(iframeId, '--');\r\n\t\t}\r\n\r\n\t\tfunction sendPageInfoToIframe() {\r\n\t\t\tvar bodyPosition = document.body.getBoundingClientRect(),\r\n\t\t\t\tiFramePosition = messageData.iframe.getBoundingClientRect(),\r\n\t\t\t\tposition = JSON.stringify({\r\n\t\t\t\t\tclientHeight: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),\r\n\t\t\t\t\tclientWidth: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),\r\n\t\t\t\t\toffsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\r\n\t\t\t\t\toffsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\r\n\t\t\t\t\tscrollTop: window.pageYOffset,\r\n\t\t\t\t\tscrollLeft: window.pageXOffset,\r\n\t\t\t\t});\r\n\r\n\t\t\ttrigger('Send Page Info', 'pageInfo:' + position, settings[iframeId].iframe, iframeId);\r\n\t\t}\r\n\r\n\t\tfunction checkIFrameExists() {\r\n\t\t\tvar retBool = true;\r\n\r\n\t\t\tif (null === messageData.iframe) {\r\n\t\t\t\twarn(iframeId, 'IFrame (' + messageData.id + ') not found');\r\n\t\t\t\tretBool = false;\r\n\t\t\t}\r\n\t\t\treturn retBool;\r\n\t\t}\r\n\r\n\t\tfunction getElementPosition(target) {\r\n\t\t\tvar iFramePosition = target.getBoundingClientRect();\r\n\r\n\t\t\tgetPagePosition(iframeId);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tx: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),\r\n\t\t\t\ty: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y)),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction scrollRequestFromChild(addOffset) {\r\n\t\t\t/* istanbul ignore next */ //Not testable in Karma\r\n\t\t\tfunction reposition() {\r\n\t\t\t\tpagePosition = newPosition;\r\n\t\t\t\tscrollTo();\r\n\t\t\t\tlog(iframeId, '--');\r\n\t\t\t}\r\n\r\n\t\t\tfunction calcOffset() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tx: Number(messageData.width) + offset.x,\r\n\t\t\t\t\ty: Number(messageData.height) + offset.y,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tfunction scrollParent() {\r\n\t\t\t\tif (window.parentIFrame) {\r\n\t\t\t\t\twindow.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](newPosition.x, newPosition.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twarn(iframeId, 'Unable to scroll to requested position, window.parentIFrame not found');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar offset = addOffset ? getElementPosition(messageData.iframe) : { x: 0, y: 0 },\r\n\t\t\t\tnewPosition = calcOffset();\r\n\r\n\t\t\tlog(iframeId, 'Reposition requested from iFrame (offset x:' + offset.x + ' y:' + offset.y + ')');\r\n\r\n\t\t\tif (window.top !== window.self) {\r\n\t\t\t\tscrollParent();\r\n\t\t\t} else {\r\n\t\t\t\treposition();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction scrollTo() {\r\n\t\t\tif (false !== callback('scrollCallback', pagePosition)) {\r\n\t\t\t\tsetPagePosition(iframeId);\r\n\t\t\t} else {\r\n\t\t\t\tunsetPagePosition();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction findTarget(location) {\r\n\t\t\tfunction jumpToTarget() {\r\n\t\t\t\tvar jumpPosition = getElementPosition(target);\r\n\r\n\t\t\t\tlog(\r\n\t\t\t\t\tiframeId,\r\n\t\t\t\t\t'Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y\r\n\t\t\t\t);\r\n\t\t\t\tpagePosition = {\r\n\t\t\t\t\tx: jumpPosition.x,\r\n\t\t\t\t\ty: jumpPosition.y,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tscrollTo();\r\n\t\t\t\tlog(iframeId, '--');\r\n\t\t\t}\r\n\r\n\t\t\tfunction jumpToParent() {\r\n\t\t\t\tif (window.parentIFrame) {\r\n\t\t\t\t\twindow.parentIFrame.moveToAnchor(hash);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlog(iframeId, 'In page link #' + hash + ' not found and window.parentIFrame not found');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar hash = location.split('#')[1] || '',\r\n\t\t\t\thashData = decodeURIComponent(hash),\r\n\t\t\t\ttarget = document.getElementById(hashData) || document.getElementsByName(hashData)[0];\r\n\r\n\t\t\tif (target) {\r\n\t\t\t\tjumpToTarget();\r\n\t\t\t} else if (window.top !== window.self) {\r\n\t\t\t\tjumpToParent();\r\n\t\t\t} else {\r\n\t\t\t\tlog(iframeId, 'In page link #' + hash + ' not found');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction callback(funcName, val) {\r\n\t\t\treturn chkCallback(iframeId, funcName, val);\r\n\t\t}\r\n\r\n\t\tfunction actionMsg() {\r\n\t\t\tif (settings[iframeId].firstRun) firstRun();\r\n\r\n\t\t\tswitch (messageData.type) {\r\n\t\t\t\tcase 'close':\r\n\t\t\t\t\tcloseIFrame(messageData.iframe);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'message':\r\n\t\t\t\t\tforwardMsgFromIFrame(getMsgBody(6));\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'scrollTo':\r\n\t\t\t\t\tscrollRequestFromChild(false);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'scrollToOffset':\r\n\t\t\t\t\tscrollRequestFromChild(true);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'pageInfo':\r\n\t\t\t\t\tsendPageInfoToIframe();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'inPageLink':\r\n\t\t\t\t\tfindTarget(getMsgBody(9));\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'reset':\r\n\t\t\t\t\tresetIFrame(messageData);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'init':\r\n\t\t\t\t\tresizeIFrame();\r\n\t\t\t\t\tcallback('initCallback', messageData.iframe);\r\n\t\t\t\t\tcallback('resizedCallback', messageData);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tresizeIFrame();\r\n\t\t\t\t\tcallback('resizedCallback', messageData);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction hasSettings(iframeId) {\r\n\t\t\tvar retBool = true;\r\n\r\n\t\t\tif (!settings[iframeId]) {\r\n\t\t\t\tretBool = false;\r\n\t\t\t\twarn(messageData.type + ' No settings for ' + iframeId + '. Message was: ' + msg);\r\n\t\t\t}\r\n\r\n\t\t\treturn retBool;\r\n\t\t}\r\n\r\n\t\tfunction iFrameReadyMsgReceived() {\r\n\t\t\tfor (var iframeId in settings) {\r\n\t\t\t\ttrigger(\r\n\t\t\t\t\t'iFrame requested init',\r\n\t\t\t\t\tcreateOutgoingMsg(iframeId),\r\n\t\t\t\t\tdocument.getElementById(iframeId),\r\n\t\t\t\t\tiframeId\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction firstRun() {\r\n\t\t\tsettings[iframeId].firstRun = false;\r\n\t\t}\r\n\r\n\t\tvar msg = event.data,\r\n\t\t\tmessageData = {},\r\n\t\t\tiframeId = null;\r\n\r\n\t\tif ('[iFrameResizerChild]Ready' === msg) {\r\n\t\t\tiFrameReadyMsgReceived();\r\n\t\t} else if (isMessageForUs()) {\r\n\t\t\tmessageData = processMsg();\r\n\t\t\tiframeId = logId = messageData.id;\r\n\r\n\t\t\tif (!isMessageFromMetaParent() && hasSettings(iframeId)) {\r\n\t\t\t\tlog(iframeId, 'Received: ' + msg);\r\n\r\n\t\t\t\tif (checkIFrameExists() && isMessageFromIFrame()) {\r\n\t\t\t\t\tactionMsg();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tinfo(iframeId, 'Ignored: ' + msg);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction chkCallback(iframeId, funcName, val) {\r\n\t\tvar func = null,\r\n\t\t\tretVal = null;\r\n\r\n\t\tif (settings[iframeId]) {\r\n\t\t\tfunc = settings[iframeId][funcName];\r\n\r\n\t\t\tif ('function' === typeof func) {\r\n\t\t\t\tretVal = func(val);\r\n\t\t\t} else {\r\n\t\t\t\tthrow new TypeError(funcName + ' on iFrame[' + iframeId + '] is not a function');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn retVal;\r\n\t}\r\n\r\n\tfunction closeIFrame(iframe) {\r\n\t\tvar iframeId = iframe.id;\r\n\r\n\t\tlog(iframeId, 'Removing iFrame: ' + iframeId);\r\n\t\tiframe.parentNode.removeChild(iframe);\r\n\t\tchkCallback(iframeId, 'closedCallback', iframeId);\r\n\t\tlog(iframeId, '--');\r\n\t\tdelete settings[iframeId];\r\n\t}\r\n\r\n\tfunction getPagePosition(iframeId) {\r\n\t\tif (null === pagePosition) {\r\n\t\t\tpagePosition = {\r\n\t\t\t\tx: window.pageXOffset !== undefined ? window.pageXOffset : document.documentElement.scrollLeft,\r\n\t\t\t\ty: window.pageYOffset !== undefined ? window.pageYOffset : document.documentElement.scrollTop,\r\n\t\t\t};\r\n\t\t\tlog(iframeId, 'Get page position: ' + pagePosition.x + ',' + pagePosition.y);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setPagePosition(iframeId) {\r\n\t\tif (null !== pagePosition) {\r\n\t\t\twindow.scrollTo(pagePosition.x, pagePosition.y);\r\n\t\t\tlog(iframeId, 'Set page position: ' + pagePosition.x + ',' + pagePosition.y);\r\n\t\t\tunsetPagePosition();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction unsetPagePosition() {\r\n\t\tpagePosition = null;\r\n\t}\r\n\r\n\tfunction resetIFrame(messageData) {\r\n\t\tfunction reset() {\r\n\t\t\tsetSize(messageData);\r\n\t\t\ttrigger('reset', 'reset', messageData.iframe, messageData.id);\r\n\t\t}\r\n\r\n\t\tlog(messageData.id, 'Size reset requested by ' + ('init' === messageData.type ? 'host page' : 'iFrame'));\r\n\t\tgetPagePosition(messageData.id);\r\n\t\tsyncResize(reset, messageData, 'reset');\r\n\t}\r\n\r\n\tfunction setSize(messageData) {\r\n\t\tfunction setDimension(dimension) {\r\n\t\t\tmessageData.iframe.style[dimension] = messageData[dimension] + 'px';\r\n\t\t\tlog(messageData.id, 'IFrame (' + iframeId + ') ' + dimension + ' set to ' + messageData[dimension] + 'px');\r\n\t\t}\r\n\r\n\t\tfunction chkZero(dimension) {\r\n\t\t\t//FireFox sets dimension of hidden iFrames to zero.\r\n\t\t\t//So if we detect that set up an event to check for\r\n\t\t\t//when iFrame becomes visible.\r\n\r\n\t\t\t/* istanbul ignore next */ //Not testable in PhantomJS\r\n\t\t\tif (!hiddenCheckEnabled && '0' === messageData[dimension]) {\r\n\t\t\t\thiddenCheckEnabled = true;\r\n\t\t\t\tlog(iframeId, 'Hidden iFrame detected, creating visibility listener');\r\n\t\t\t\tfixHiddenIFrames();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction processDimension(dimension) {\r\n\t\t\tsetDimension(dimension);\r\n\t\t\tchkZero(dimension);\r\n\t\t}\r\n\r\n\t\tvar iframeId = messageData.iframe.id;\r\n\r\n\t\tif (settings[iframeId]) {\r\n\t\t\tif (settings[iframeId].sizeHeight) {\r\n\t\t\t\tprocessDimension('height');\r\n\t\t\t}\r\n\t\t\tif (settings[iframeId].sizeWidth) {\r\n\t\t\t\tprocessDimension('width');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction syncResize(func, messageData, doNotSync) {\r\n\t\t/* istanbul ignore if */ //Not testable in PhantomJS\r\n\t\tif (doNotSync !== messageData.type && requestAnimationFrame) {\r\n\t\t\tlog(messageData.id, 'Requesting animation frame');\r\n\t\t\trequestAnimationFrame(func);\r\n\t\t} else {\r\n\t\t\tfunc();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction trigger(calleeMsg, msg, iframe, id) {\r\n\t\tfunction postMessageToIFrame() {\r\n\t\t\tlog(id, '[' + calleeMsg + '] Sending msg to iframe[' + id + '] (' + msg + ') targetOrigin: ' + target);\r\n\t\t\tiframe.contentWindow.postMessage(msgId + msg, target);\r\n\t\t}\r\n\r\n\t\tfunction iFrameNotFound() {\r\n\t\t\tinfo(id, '[' + calleeMsg + '] IFrame(' + id + ') not found');\r\n\t\t\tif (settings[id]) {\r\n\t\t\t\tdelete settings[id];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tid = id || iframe.id;\r\n\t\tvar target = settings[id].targetOrigin;\r\n\r\n\t\tif (iframe && 'contentWindow' in iframe) {\r\n\t\t\tpostMessageToIFrame();\r\n\t\t} else {\r\n\t\t\tiFrameNotFound();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction createOutgoingMsg(iframeId) {\r\n\t\treturn (\r\n\t\t\tiframeId +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].bodyMarginV1 +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].sizeWidth +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].log +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].interval +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].enablePublicMethods +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].autoResize +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].bodyMargin +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].heightCalculationMethod +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].bodyBackground +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].bodyPadding +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].tolerance +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].inPageLinks +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].resizeFrom +\r\n\t\t\t':' +\r\n\t\t\tsettings[iframeId].widthCalculationMethod\r\n\t\t);\r\n\t}\r\n\r\n\tfunction setupIFrame(iframe, options) {\r\n\t\tfunction setLimits() {\r\n\t\t\tfunction addStyle(style) {\r\n\t\t\t\tif (Infinity !== settings[iframeId][style] && 0 !== settings[iframeId][style]) {\r\n\t\t\t\t\tiframe.style[style] = settings[iframeId][style] + 'px';\r\n\t\t\t\t\tlog(iframeId, 'Set ' + style + ' = ' + settings[iframeId][style] + 'px');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction chkMinMax(dimension) {\r\n\t\t\t\tif (settings[iframeId]['min' + dimension] > settings[iframeId]['max' + dimension]) {\r\n\t\t\t\t\tthrow new Error('Value for min' + dimension + ' can not be greater than max' + dimension);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchkMinMax('Height');\r\n\t\t\tchkMinMax('Width');\r\n\r\n\t\t\taddStyle('maxHeight');\r\n\t\t\taddStyle('minHeight');\r\n\t\t\taddStyle('maxWidth');\r\n\t\t\taddStyle('minWidth');\r\n\t\t}\r\n\r\n\t\tfunction newId() {\r\n\t\t\tvar id = (options && options.id) || defaults.id + count++;\r\n\t\t\tif (null !== document.getElementById(id)) {\r\n\t\t\t\tid = id + count++;\r\n\t\t\t}\r\n\t\t\treturn id;\r\n\t\t}\r\n\r\n\t\tfunction ensureHasId(iframeId) {\r\n\t\t\tlogId = iframeId;\r\n\t\t\tif ('' === iframeId) {\r\n\t\t\t\tiframe.id = iframeId = newId();\r\n\t\t\t\tlogEnabled = (options || {}).log;\r\n\t\t\t\tlogId = iframeId;\r\n\t\t\t\tlog(iframeId, 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')');\r\n\t\t\t}\r\n\r\n\t\t\treturn iframeId;\r\n\t\t}\r\n\r\n\t\tfunction setScrolling() {\r\n\t\t\tlog(\r\n\t\t\t\tiframeId,\r\n\t\t\t\t'IFrame scrolling ' + (settings[iframeId].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeId\r\n\t\t\t);\r\n\t\t\tiframe.style.overflow = false === settings[iframeId].scrolling ? 'hidden' : 'auto';\r\n\t\t\tiframe.scrolling = false === settings[iframeId].scrolling ? 'no' : 'yes';\r\n\t\t}\r\n\r\n\t\t//The V1 iFrame script expects an int, where as in V2 expects a CSS\r\n\t\t//string value such as '1px 3em', so if we have an int for V2, set V1=V2\r\n\t\t//and then convert V2 to a string PX value.\r\n\t\tfunction setupBodyMarginValues() {\r\n\t\t\tif ('number' === typeof settings[iframeId].bodyMargin || '0' === settings[iframeId].bodyMargin) {\r\n\t\t\t\tsettings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;\r\n\t\t\t\tsettings[iframeId].bodyMargin = '' + settings[iframeId].bodyMargin + 'px';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction checkReset() {\r\n\t\t\t// Reduce scope of firstRun to function, because IE8's JS execution\r\n\t\t\t// context stack is borked and this value gets externally\r\n\t\t\t// changed midway through running this function!!!\r\n\t\t\tvar firstRun = settings[iframeId].firstRun,\r\n\t\t\t\tresetRequertMethod = settings[iframeId].heightCalculationMethod in resetRequiredMethods;\r\n\r\n\t\t\tif (!firstRun && resetRequertMethod) {\r\n\t\t\t\tresetIFrame({ iframe: iframe, height: 0, width: 0, type: 'init' });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setupIFrameObject() {\r\n\t\t\tif (Function.prototype.bind) {\r\n\t\t\t\t//Ignore unpolyfilled IE8.\r\n\t\t\t\tsettings[iframeId].iframe.iFrameResizer = {\r\n\t\t\t\t\tclose: closeIFrame.bind(null, settings[iframeId].iframe),\r\n\r\n\t\t\t\t\tresize: trigger.bind(null, 'Window resize', 'resize', settings[iframeId].iframe),\r\n\r\n\t\t\t\t\tmoveToAnchor: function(anchor) {\r\n\t\t\t\t\t\ttrigger('Move to anchor', 'inPageLink:' + anchor, settings[iframeId].iframe, iframeId);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tsendMessage: function(message) {\r\n\t\t\t\t\t\tmessage = JSON.stringify(message);\r\n\t\t\t\t\t\ttrigger('Send Message', 'message:' + message, settings[iframeId].iframe, iframeId);\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//We have to call trigger twice, as we can not be sure if all\r\n\t\t//iframes have completed loading when this code runs. The\r\n\t\t//event listener also catches the page changing in the iFrame.\r\n\t\tfunction init(msg) {\r\n\t\t\tfunction iFrameLoaded() {\r\n\t\t\t\ttrigger('iFrame.onload', msg, iframe);\r\n\t\t\t\tcheckReset();\r\n\t\t\t}\r\n\r\n\t\t\taddEventListener(iframe, 'load', iFrameLoaded);\r\n\t\t\ttrigger('init', msg, iframe);\r\n\t\t}\r\n\r\n\t\tfunction checkOptions(options) {\r\n\t\t\tif ('object' !== typeof options) {\r\n\t\t\t\tthrow new TypeError('Options is not an object');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction copyOptions(options) {\r\n\t\t\tfor (var option in defaults) {\r\n\t\t\t\tif (defaults.hasOwnProperty(option)) {\r\n\t\t\t\t\tsettings[iframeId][option] = options.hasOwnProperty(option) ? options[option] : defaults[option];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getTargetOrigin(remoteHost) {\r\n\t\t\treturn '' === remoteHost || 'file://' === remoteHost ? '*' : remoteHost;\r\n\t\t}\r\n\r\n\t\tfunction processOptions(options) {\r\n\t\t\toptions = options || {};\r\n\t\t\tsettings[iframeId] = {\r\n\t\t\t\tfirstRun: true,\r\n\t\t\t\tiframe: iframe,\r\n\t\t\t\tremoteHost: iframe.src\r\n\t\t\t\t\t.split('/')\r\n\t\t\t\t\t.slice(0, 3)\r\n\t\t\t\t\t.join('/'),\r\n\t\t\t};\r\n\r\n\t\t\tcheckOptions(options);\r\n\t\t\tcopyOptions(options);\r\n\r\n\t\t\tsettings[iframeId].targetOrigin =\r\n\t\t\t\ttrue === settings[iframeId].checkOrigin ? getTargetOrigin(settings[iframeId].remoteHost) : '*';\r\n\t\t}\r\n\r\n\t\tfunction beenHere() {\r\n\t\t\treturn iframeId in settings && 'iFrameResizer' in iframe;\r\n\t\t}\r\n\r\n\t\tvar iframeId = ensureHasId(iframe.id);\r\n\r\n\t\tif (!beenHere()) {\r\n\t\t\tprocessOptions(options);\r\n\t\t\tsetScrolling();\r\n\t\t\tsetLimits();\r\n\t\t\tsetupBodyMarginValues();\r\n\t\t\tinit(createOutgoingMsg(iframeId));\r\n\t\t\tsetupIFrameObject();\r\n\t\t} else {\r\n\t\t\twarn(iframeId, 'Ignored iFrame, already setup.');\r\n\t\t}\r\n\t}\r\n\r\n\tfunction debouce(fn, time) {\r\n\t\tif (null === timer) {\r\n\t\t\ttimer = setTimeout(function() {\r\n\t\t\t\ttimer = null;\r\n\t\t\t\tfn();\r\n\t\t\t}, time);\r\n\t\t}\r\n\t} //Not testable in PhantomJS\r\n\r\n\t/* istanbul ignore next */ function fixHiddenIFrames() {\r\n\t\tfunction checkIFrames() {\r\n\t\t\tfunction checkIFrame(settingId) {\r\n\t\t\t\tfunction chkDimension(dimension) {\r\n\t\t\t\t\treturn '0px' === settings[settingId].iframe.style[dimension];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction isVisible(el) {\r\n\t\t\t\t\treturn null !== el.offsetParent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isVisible(settings[settingId].iframe) && (chkDimension('height') || chkDimension('width'))) {\r\n\t\t\t\t\ttrigger('Visibility change', 'resize', settings[settingId].iframe, settingId);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (var settingId in settings) {\r\n\t\t\t\tcheckIFrame(settingId);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction mutationObserved(mutations) {\r\n\t\t\tlog('window', 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type);\r\n\t\t\tdebouce(checkIFrames, 16);\r\n\t\t}\r\n\r\n\t\tfunction createMutationObserver() {\r\n\t\t\tvar target = document.querySelector('body'),\r\n\t\t\t\tconfig = {\r\n\t\t\t\t\tattributes: true,\r\n\t\t\t\t\tattributeOldValue: false,\r\n\t\t\t\t\tcharacterData: true,\r\n\t\t\t\t\tcharacterDataOldValue: false,\r\n\t\t\t\t\tchildList: true,\r\n\t\t\t\t\tsubtree: true,\r\n\t\t\t\t},\r\n\t\t\t\tobserver = new MutationObserver(mutationObserved);\r\n\r\n\t\t\tobserver.observe(target, config);\r\n\t\t}\r\n\r\n\t\tvar MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\r\n\r\n\t\tif (MutationObserver) createMutationObserver();\r\n\t}\r\n\r\n\tfunction resizeIFrames(event) {\r\n\t\tfunction resize() {\r\n\t\t\tsendTriggerMsg('Window ' + event, 'resize');\r\n\t\t}\r\n\r\n\t\tlog('window', 'Trigger event: ' + event);\r\n\t\tdebouce(resize, 16);\r\n\t} //Not testable in PhantomJS\r\n\r\n\t/* istanbul ignore next */ function tabVisible() {\r\n\t\tfunction resize() {\r\n\t\t\tsendTriggerMsg('Tab Visable', 'resize');\r\n\t\t}\r\n\r\n\t\tif ('hidden' !== document.visibilityState) {\r\n\t\t\tlog('document', 'Trigger event: Visiblity change');\r\n\t\t\tdebouce(resize, 16);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction sendTriggerMsg(eventName, event) {\r\n\t\tfunction isIFrameResizeEnabled(iframeId) {\r\n\t\t\treturn (\r\n\t\t\t\t'parent' === settings[iframeId].resizeFrom &&\r\n\t\t\t\tsettings[iframeId].autoResize &&\r\n\t\t\t\t!settings[iframeId].firstRun\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tfor (var iframeId in settings) {\r\n\t\t\tif (isIFrameResizeEnabled(iframeId)) {\r\n\t\t\t\ttrigger(eventName, event, document.getElementById(iframeId), iframeId);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setupEventListeners() {\r\n\t\taddEventListener(window, 'message', iFrameListener);\r\n\r\n\t\taddEventListener(window, 'resize', function() {\r\n\t\t\tresizeIFrames('resize');\r\n\t\t});\r\n\r\n\t\taddEventListener(document, 'visibilitychange', tabVisible);\r\n\t\taddEventListener(document, '-webkit-visibilitychange', tabVisible); //Andriod 4.4\r\n\t\taddEventListener(window, 'focusin', function() {\r\n\t\t\tresizeIFrames('focus');\r\n\t\t}); //IE8-9\r\n\t\taddEventListener(window, 'focus', function() {\r\n\t\t\tresizeIFrames('focus');\r\n\t\t});\r\n\t}\r\n\r\n\tfunction factory() {\r\n\t\tfunction init(options, element) {\r\n\t\t\tif (!element) {\r\n\t\t\t\treturn; //Stop mootools creating problems\r\n\t\t\t} else if (!element.tagName) {\r\n\t\t\t\tthrow new TypeError('Object is not a valid DOM element');\r\n\t\t\t} else if ('IFRAME' !== element.tagName.toUpperCase()) {\r\n\t\t\t\tthrow new TypeError('Expected `);\r\n\t\tthis.$ctx.append(this.$frame);\r\n\t\tif (!this.initPostCall()) {\r\n\t\t\tthis.$frame.attr('src', this.url);\r\n\t\t}\r\n\t\t(this.$frame as any).iFrameResize();\r\n\t}\r\n\r\n\tinitPostCall(): boolean {\r\n\t\tlet params: any = this.$ctx.data('params') || ',';\r\n\t\tparams = JSON.parse(`[${params.substr(0, params.length - 1)}]`);\r\n\t\tif (params.length > 0) {\r\n\t\t\tconst $form = $('
    ');\r\n\t\t\t$form.attr({\r\n\t\t\t\taction: this.url,\r\n\t\t\t\ttarget: this.framename,\r\n\t\t\t});\r\n\t\t\t$.each(params, (i, el) => {\r\n\t\t\t\tconst name: string = Object.getOwnPropertyNames(el)[0];\r\n\t\t\t\t$form.append(``);\r\n\t\t\t});\r\n\t\t\t$form\r\n\t\t\t\t.appendTo(this.$ctx)\r\n\t\t\t\t.submit()\r\n\t\t\t\t.remove();\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tonPostmessage(e: any) {\r\n\t\tlet data = e.originalEvent.data;\r\n\t\tif (typeof data === 'string') {\r\n\t\t\tdata = data.split(',');\r\n\t\t}\r\n\t\tif (data[0] === 'setHeight') {\r\n\t\t\tif ((this.$frame[0] as any)['contentWindow'] === e.originalEvent.source) {\r\n\t\t\t\tthis.$frame.css('height', `${parseInt(data[1], 10) + 20}px`);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tstop() { }\r\n}\r\n\r\nfunction addUsercentricsIframe() {\r\n\tvar framename = `toolframe_${t_id}`;\r\n\tvar $frame = $(``);\r\n\t$(\"#m-iframe-\" + t_id).append($frame);\r\n\tif (!initUCPostCall()) {\r\n\t\t$(`#toolframe_${t_id}`).attr('src', url);\r\n\t}\r\n\t($(`#toolframe_${t_id}`) as any).iFrameResize();\r\n}\r\n\r\nfunction initUCPostCall() {\r\n\tlet params: any = paramsdata || ',';\r\n\tparams = JSON.parse(`[${params.substr(0, params.length - 1)}]`);\r\n\tif (params.length > 0) {\r\n\t\tconst $form = $('');\r\n\t\t$form.attr({\r\n\t\t\taction: url,\r\n\t\t\ttarget: `toolframe_${t_id}`,\r\n\t\t});\r\n\t\t$.each(params, (i, el) => {\r\n\t\t\tconst name: string = Object.getOwnPropertyNames(el)[0];\r\n\t\t\t$form.append(``);\r\n\t\t});\r\n\t\t$form\r\n\t\t\t.appendTo($(\"#m-iframe-\" + t_id))\r\n\t\t\t.submit()\r\n\t\t\t.remove();\r\n\t\treturn true;\r\n\t}\r\n\treturn false;\r\n}","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport 'tooltipster';\r\n\r\nconst classes = {\r\n\ttooltipTrigger: 'js-m-list-icons__image-tooltip',\r\n\tstateTooltipVisible: 'state-m-tooltip--is-visible',\r\n\tstateHeaderPos0: 'state-m-navigation--scroll-0-position',\r\n\ttooltipCloser: 'js-m-tooltip__closer',\r\n};\r\n\r\n@createModule('ListIcons')\r\n/**\r\n * ListIcons module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class ListIcons extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.initImageTooltip();\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitImageTooltip() {\r\n\t\tconst $triggers = this.$ctx.find(`.${classes.tooltipTrigger}`);\r\n\t\t$triggers.on('click', (e: any) => e.preventDefault());\r\n\t\t$triggers.each((i, el) => {\r\n\t\t\tconst $trigger = $(el) as any;\r\n\t\t\t$trigger.tooltipster({\r\n\t\t\t\ttheme: 'tooltipster-shadow',\r\n\t\t\t\tcontent: `
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    `,\r\n\t\t\t\tcontentAsHTML: true,\r\n\t\t\t\ttrigger: 'click',\r\n\t\t\t\tinteractive: true,\r\n\t\t\t\tzIndex: 2,\r\n\t\t\t\tfunctionReady(instance: any) {\r\n\t\t\t\t\tinstance._$tooltip.on('click', `.${classes.tooltipCloser}`, (ev: Event) => {\r\n\t\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t\t$trigger.trigger('click');\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tfunctionPosition(instance: any, helper: any, position: any) {\r\n\t\t\t\t\t// fine tuning of tooltip position relative to trigger element\r\n\t\t\t\t\tif (position.side === 'top') {\r\n\t\t\t\t\t\tposition.coord.top -= 16;\r\n\t\t\t\t\t} else if (position.side === 'bottom') {\r\n\t\t\t\t\t\tposition.coord.top += 4;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn position;\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nimport * as Cookies from 'js-cookie';\r\n\r\nconst classes = {\r\n\tselectLink: 'js-m-market-switch__switch',\r\n};\r\n\r\n@createModule('MarketSwitch')\r\n/**\r\n * market-switch module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class MarketSwitch extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tconst $select = this._getLanguageSelect();\r\n\t\tconst cachedCountry = Cookies.get('cov_market');\r\n\t\tconst baseUrl = $select.data('baseUrl');\r\n\t\tconst preventAutoSubmit = $(this._ctx).attr('data-preventautosubmit');\r\n\t\tthis._updateSelectedOption($select, cachedCountry);\r\n\r\n\t\t$select.on('change', (ev: Event) => this.followOptionLink(ev, baseUrl, preventAutoSubmit == 'true'));\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t/**\r\n\t * returns DOM Element\r\n\t */\r\n\t_getLanguageSelect(): JQuery {\r\n\t\treturn $(this._ctx).find(`.${classes.selectLink}`);\r\n\t}\r\n\r\n\t/**\r\n\t * update selected option of given select element if it is not already selected\r\n\t *\r\n\t * @param $select | jQuery Element tag select\r\n\t * @param value | value of select option\r\n\t */\r\n\t_updateSelectedOption($select: JQuery, value: string) {\r\n\t\tif (value && $select.val() !== value && $(`option[value=\"${value}\"]`, $select).length > 0) {\r\n\t\t\t$select.val(value);\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * follow link of selected option on change\r\n\t *\r\n\t * @param $select | jQuery Element tag select\r\n\t * @param ev | value of select option\r\n\t */\r\n\tfollowOptionLink(ev: any, baseUrl: string, preventAutoSubmit: boolean) {\r\n\t\tlet market = ev.currentTarget.value;\r\n\t\tCookies.set('cov_market', market);\r\n\t\tif (preventAutoSubmit === false) {\r\n\t\t\twindow.location.href = baseUrl + market;\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\nimport { MarketoFormGlobal } from '../../../molecules/marketo-form-global/js/marketo-form-global';\r\nconst classes = {\r\n\tcontactImage: 'js-m-marketo-form__contact-image',\r\n\tstateHasImage: 'm-marketo-form__has-contact-image',\r\n\tstateAdditionalFieldsVisible: 'm-marketo-form__show-additional-fields',\r\n\tstateSuccess: 'state-m-marketo-form--success'\r\n};\r\n\r\n@createModule('MarketoForm')\r\nexport class MarketoForm extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$blockedMessage: JQuery;\r\n\r\n\tformId: string;\r\n\tformHref: string;\r\n\tformFullId: string;\r\n\tenvId: string;\r\n\tisExpired: boolean;\r\n\tredirectHref: string;\r\n\tsubmitSuccessfulMessage: string;\r\n\tisHiddenFormSubmit: boolean;\r\n\tisSendDataToGtmOnPageLoad: boolean;\r\n\r\n\tmarketoService: MarketoFormGlobal;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$blockedMessage = this.$ctx.find(\"p[data-id='blockedMsg']\");\r\n\t\tthis.envId = this.$ctx.data(\"environment-id\");\r\n\t\tthis.formId = this.$ctx.data(\"form-id\");\r\n\t\tthis.formFullId = `mktoForm_${this.$ctx.data(\"form-id\")}`;\r\n\t\tthis.formHref = this.$ctx.data(\"form-href\");\r\n\t\tthis.redirectHref = this.$ctx.data(\"redirect-href\");\r\n\t\tthis.isExpired = this.$ctx.data(\"expired\");\r\n\t\tthis.submitSuccessfulMessage = this.$ctx.data(\"submitsuccessful-message\");\r\n\t\tthis.isHiddenFormSubmit = this.$ctx.data(\"allow-hidden-form-submit\");\r\n\t\tthis.isSendDataToGtmOnPageLoad = this.$ctx.data(\"sc-send-data-to-gtm-pageload\");\r\n\t\tthis.marketoService = new MarketoFormGlobal();\r\n\r\n\t\tif (!this.isExpired) {\r\n\t\t\tthis.$blockedMessage.show();\r\n\r\n\t\t\tlet timerRef = setInterval(() => {\r\n\t\t\t\tlet MktoForms2 = (window as any)[\"MktoForms2\"];\r\n\t\t\t\tif (typeof (MktoForms2) != \"undefined\") {\r\n\t\t\t\t\tclearInterval(timerRef);\r\n\t\t\t\t\tthis.loadMktoForm();\r\n\t\t\t\t}\r\n\t\t\t}, 300);\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tloadMktoForm() {\r\n\t\tlet $this = this;\r\n\r\n\t\tlet MktoForms2 = (window as any)[\"MktoForms2\"];\r\n\t\tif (typeof (MktoForms2) != \"undefined\") {\r\n\r\n\t\t\tMktoForms2.loadForm($this.formHref, $this.envId, $this.formId, function (form: any) {\r\n\t\t\t\tform.onSuccess(function (values: any, followUpUrl: string) {\r\n\t\t\t\t\tTrack.setKnownMarketoLead(true);\r\n\t\t\t\t\t$this.submitDataToGtm();\r\n\t\t\t\t\tif ($this.submitSuccessfulMessage.length > 0 || $this.isHiddenFormSubmit == true) {\r\n\t\t\t\t\t\t$this.$ctx.addClass(classes.stateSuccess);\r\n\t\t\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\t\t\tscrollTop: $this.$ctx.offset().top - 200\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\twindow.location.href = $this.redirectHref;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//unlock\r\n\t\t\t\t\t$('.a-video--locked').removeClass('a-video--locked');\r\n\t\t\t\t\t$('.m-download-item--locked').removeClass('m-download-item--locked');\r\n\t\t\t\t\t$('.m-download-table__item--locked').removeClass('m-download-table__item--locked');\r\n\t\t\t\t\t$('.m-hero-article-stage--locked').removeClass('m-hero-article-stage--locked');\r\n\t\t\t\t\t$('.m-scrollable-teaser-item--locked').removeClass('m-scrollable-teaser-item--locked');\r\n\t\t\t\t\t$('.m-talk--locked').removeClass('m-talk--locked');\r\n\t\t\t\t\t$('.m-teaser-large--locked').removeClass('m-teaser-large--locked');\r\n\t\t\t\t\t$('.o-teaser-content-area__item').each((i, e) => {\r\n\t\t\t\t\t\tconst $teaser = $(e).children();\r\n\t\t\t\t\t\tconst classList = $teaser.attr('class');\r\n\t\t\t\t\t\tconst className = classList.split(' ');\r\n\t\t\t\t\t\t$teaser.removeClass(className[0] + '--locked');\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tform.onSubmit(function () {\r\n\t\t\t\t\t$this.marketoService.formatPhoneNumber(form);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (Track.isKnownMarketoLead()) {\r\n\t\t\t\t\tform.vals({ \"formVersion\": \"Known\" });\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Hide blocked test when form is initialized.\r\n\r\n\t\t\t\t$this.$blockedMessage.hide();\r\n\t\t\t\t$this.setFormStartDataToGtm();\r\n\t\t\t});\r\n\r\n\t\t\t$this.marketoService.initializeMarketoOnScriptLoad();\r\n\t\t}\r\n\t}\r\n\r\n\tsubmitDataToGtm() {\r\n\t\tlet $this = this;\r\n\t\tlet formNode = $this.$ctx.find(\"form\")\r\n\t\tlet IsSendDataToGtm = formNode.data(\"sc-send-data-to-gtm\");\r\n\t\tif (IsSendDataToGtm) {\r\n\t\t\tlet typeOfForm = formNode.data(\"form-name\");\r\n\r\n\t\t\tconst trackdata: {\r\n\t\t\t\tevent: string;\r\n\t\t\t\tform_id: string;\r\n\t\t\t\tform_name: string;\r\n\t\t\t\tform_destination: string;\r\n\t\t\t\tform_submit_text: string;\r\n\t\t\t} = {\r\n\t\t\t\tevent: 'form_submit',\r\n\t\t\t\tform_id: $(formNode).attr(\"id\"),\r\n\t\t\t\tform_name: typeOfForm,\r\n\t\t\t\tform_destination: '',\r\n\t\t\t\tform_submit_text: '',\r\n\t\t\t};\r\n\r\n\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t}\r\n\t}\r\n\r\n\tsetFormStartDataToGtm() {\r\n\t\tlet $this = this;\r\n\t\tlet formNode = $this.$ctx.find(\"form\")\r\n\t\tlet isSendDataToGtmOnPageLoad = formNode.data(\"sc-send-data-to-gtm-pageload\");\r\n\t\tif (isSendDataToGtmOnPageLoad) {\r\n\t\t\tlet typeOfForm = formNode.data(\"form-name\");\r\n\r\n\t\t\tconst trackdata: {\r\n\t\t\t\tevent: string;\r\n\t\t\t\tform_id: string;\r\n\t\t\t\tform_name: string;\r\n\t\t\t\tform_destination: string;\r\n\t\t\t\tform_submit_text: string;\r\n\t\t\t} = {\r\n\t\t\t\tevent: 'form_start',\r\n\t\t\t\tform_id: $(formNode).attr(\"id\"),\r\n\t\t\t\tform_name: typeOfForm,\r\n\t\t\t\tform_destination: '',\r\n\t\t\t\tform_submit_text: '',\r\n\t\t\t};\r\n\r\n\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t}\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('ModalOverlay')\r\n/**\r\n * modal-overlay module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class ModalOverlay extends TerrificSpec {\r\n\t$ctx: Object;\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\t$(window).on('modalWindow:open', this._openModal.bind(this));\r\n\t\t$(window).on('modalWindow:close', this._closeModal.bind(this));\r\n\r\n\t\t$(this.$ctx).on('click', this._closeModal.bind(this));\r\n\t\t$(document).on('keyup', (ev: any) => {\r\n\t\t\tif (ev.key === 'Escape') {\r\n\t\t\t\tthis._closeModal();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\r\n\t_openModal() {\r\n\t\t$(this.$ctx).addClass('state-m-modal-overlay--visible');\r\n\t}\r\n\r\n\t_closeModal() {\r\n\t\t$(this.$ctx).removeClass('state-m-modal-overlay--visible');\r\n\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t\t$(this.$ctx).empty();\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { floatControlLabel } from '@project/shared/utils/form-control/js/form-control';\r\nimport * as copy from 'copy-to-clipboard';\r\n\r\nconst classes = {\r\n\tstateModalShow: 'state-favourite-popup--visible',\r\n\tmodalSubmit: 'js-m-modal-actions-submit',\r\n\tmodalClose: 'js-m-modal-actions-close',\r\n\tmodalDialog: \"js-m-modal-actions__dialog\",\r\n\tclipboardAnchor: \"js-m-modal-actions__clipboard-anchor\",\r\n\tremoveEmail: \"js-remove-email-input\",\r\n\taddEmail: \"js-add-email-input\",\r\n\taddEmailDisabled : 'state-m-modal-actions__add-email--disabled',\r\n\temailTemplate: \"js-m-modal-actions__email-template\",\r\n\ttextarea: \"js-m-modal-actions__textarea\",\r\n\ttextareaValLength: \"js-m-modal-actions__textarea-count-length\",\r\n\ttextareaValLengthMax: \"js-m-modal-actions__textarea-count-max\",\r\n\tstateCountMax: \"state-textarea-count-max\",\r\n\topenTooltip: \"js-m-modal-actions--open-tooltip\",\r\n\ttermsCheckbox: \"js-m-modal-actions__terms\",\r\n\tstateInputError: \"input-validation-error\",\r\n\tnewlistWrapper: \"js-m-modal-actions__new-list\",\r\n\temailWrapper: \"js-m-modal-actions__email-group\",\r\n};\r\n\r\n@createModule('ModalActions')\r\n/**\r\n * modal-actions module implementation.\r\n */\r\nexport class ModalActions extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis._closeModal();\r\n\t\tthis._submitModal();\r\n\t\tthis._openTooltip();\r\n\r\n\t\tthis.$ctx.on('click', this._hidePopup.bind(this));\r\n\r\n\t\tconst $modalDialog = this.$ctx.find(`.${classes.modalDialog}`);\r\n\t\t$modalDialog.on('click', (ev: Event) => {\r\n\t\t\tev.stopPropagation();\r\n\t\t});\r\n\t\t\r\n\t\tconst $clipboardAnchor = this.$ctx.find(`.${classes.clipboardAnchor}`);\r\n\t\t$clipboardAnchor.on('click', () => this.copyURLToClipboard());\r\n\r\n\t\tthis.addEmaillAdress();\r\n\r\n\t\tthis.changeTextareaCount();\r\n\t\t\r\n\t\tresolve();\r\n\t}\r\n\r\n\t_submitModal() {\r\n\t\tconst $modalSubmit = this.$ctx.find(`.${classes.modalSubmit}`);\r\n\t\t$modalSubmit.on('click', () => {\r\n\t\t\tthis.newListValidation();\r\n\t\t\tthis.emailListValidation();\r\n\t\t});\r\n\t}\r\n\r\n\temailListValidation() {\r\n\t\tconst $emailWrapper = this.$ctx.find(`.${classes.emailWrapper}`);\r\n\t\tconst $input = $emailWrapper.find(\"input[type='email']\")\r\n\t\tif($input.val() == \"\") {\r\n\t\t\t$input.addClass(classes.stateInputError)\r\n\t\t\t$input.on(\"input propertychange\",function(ev: any){\r\n\t\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\t\t$target.removeClass(classes.stateInputError)\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tnewListValidation() {\r\n\t\tconst $newlistWrapper = this.$ctx.find(`.${classes.newlistWrapper}`);\r\n\t\tconst $checkedbox = $newlistWrapper.find(\"input[type='checkbox']\")\r\n\t\tconst $input = $newlistWrapper.find(\"input[type='text']\")\r\n\t\tif($checkedbox.is(\":checked\") && $input.val() == \"\") {\r\n\t\t\t$input.addClass(classes.stateInputError)\r\n\t\t\t$input.on(\"input propertychange\",function(ev: any){\r\n\t\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\t\t$target.removeClass(classes.stateInputError)\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tchangeTextareaCount() {\r\n\t\tconst $textarea = this.$ctx.find(`.${classes.textarea}`);\r\n\t\t$textarea.on(\"input propertychange\",function(ev: any){\r\n\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\tconst $textareaValLength = $target.parent().find(`.${classes.textareaValLength}`);\r\n\t\t\tconst $textareaValLengthMax = $target.parent().find(`.${classes.textareaValLengthMax}`);\r\n\t\t\tconst textVal = $target.val();\r\n\t\t\tconst currentCount = parseInt($textareaValLengthMax.text()) - textVal.length;\r\n\t\t\tif ( currentCount > 0) {\r\n\t\t\t\t$textareaValLength.text(currentCount);\r\n\t\t\t\t$textareaValLength.parent().removeClass(classes.stateCountMax)\r\n\t\t\t} else {\r\n\t\t\t\t$textareaValLength.text('0');\r\n\t\t\t\t$textareaValLength.parent().addClass(classes.stateCountMax)\r\n\t\t\t};\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Copies the URL (location.href) into the browser clipboard\r\n\t * @constructor {function}\r\n\t * @returns {void}\r\n\t */\r\n\tcopyURLToClipboard(): void {\r\n\t\tconst opts: any = this.getClipboardOpts();\r\n\t\tconst data = this.getLocationHref();\r\n\r\n\t\tthis.showFeedbackMsg();\r\n\t\tcopy(data, opts);\r\n\t\tthis.hideFeedbackMsgTimer();\r\n\t}\r\n\r\n\t/**\r\n\t * getClipboardOpts\r\n\t * @constructor {function} getClipboardOpts\r\n\t * @returns {Object} any\r\n\t */\r\n\tgetClipboardOpts(): any {\r\n\t\treturn {\r\n\t\t\tdebug: false,\r\n\t\t\tmessage: 'Press #{⌘+C} on macOS or #{Ctrl+C} on Windows to copy',\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * getLocationHref\r\n\t * @constructor {function} getLocationHref\r\n\t * @returns {string} string\r\n\t */\r\n\tgetLocationHref(): string {\r\n\t\treturn document.location.href;\r\n\t}\r\n\r\n\t/**\r\n\t * showDebugInfo - Description\r\n\t * @constructor {function} showDebugInfo\r\n\t * @param {Object} opts holds thze options for the clipboard object\r\n\t * @param {string} data holds the data to be copied into the clipboard\r\n\t */\r\n\tshowDebugInfo(opts: any, data: string) {\r\n\t\tif (opts.debug) {\r\n\t\t\t// eslint-disable-next-line no-console\r\n\t\t\tconsole.log('Copied to clipboard: ', data);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * showFeedbackMsg\r\n\t * @constructor {function} showFeedbackMsg\r\n\t */\r\n\tshowFeedbackMsg() {\r\n\t\tconst $clipboardAnchor = this.$ctx.find(`.${classes.clipboardAnchor}`);\r\n\t\t$clipboardAnchor.prev().removeClass('show');\r\n\t\t$clipboardAnchor.prev().addClass('show');\r\n\t}\r\n\r\n\t/**\r\n\t * hideFeedbackMsg\r\n\t * @constructor {function} hideFeedbackMsg\r\n\t */\r\n\thideFeedbackMsg() {\r\n\t\tconst $clipboardAnchor = this.$ctx.find(`.${classes.clipboardAnchor}`);\r\n\t\t$clipboardAnchor.prev().removeClass('show');\r\n\t}\r\n\r\n\t/**\r\n\t * showFeedbackMsg\r\n\t * @constructor {function} showFeedbackMsg\r\n\t */\r\n\thideFeedbackMsgTimer() {\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tthis.hideFeedbackMsg();\r\n\t\t}, 3500);\r\n\t}\r\n\r\n\t_closeModal() {\r\n\t\tconst $modalClose = this.$ctx.find(`.${classes.modalClose}`);\r\n\t\t$modalClose.on('click', this._hidePopup.bind(this));\r\n\t}\r\n\r\n\t_openTooltip() {\r\n\t\tconst $openTooltip = this.$ctx.find(`.${classes.openTooltip}`);\r\n\t\tconst $checkedbox = this.$ctx.find(`.${classes.termsCheckbox}`).find(\"input[type='checkbox']\");\r\n\t\t$openTooltip.on('click', () => {\r\n\t\t\tconst curScrollTop = $(window).scrollTop();\r\n\t\t\tif($checkedbox.is(\":checked\")) {\r\n\t\t\t\t$(window).scrollTop(curScrollTop - 20);\r\n\t\t\t\t$('.m-navigation-meta__tooltip-favourite').fadeIn();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_hidePopup(ev: Event) {\r\n\t\tif($(ev.currentTarget).hasClass('js-m-modal-actions-confirmation')) {\r\n\t\t\tthis.$ctx.removeClass(classes.stateModalShow);\r\n\t\t} else {\r\n\t\t\tthis.$ctx.removeClass(classes.stateModalShow);\r\n\t\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t\t}\r\n\t}\r\n\r\n\t// Add new email\r\n\taddEmaillAdress() {\r\n\t\tconst $addEmail = this.$ctx.find(`.${classes.addEmail}`);\r\n\t\tconst $emailTemplate = this.$ctx.find(`.${classes.emailTemplate}`);\r\n\t\tconst $emailTemplateHtml = $emailTemplate.html();\r\n\t\t$addEmail.on('click', () => {\r\n\t\t\tvar emailLength = this.$ctx.find('.m-modal-actions__email-group').length;\r\n\t\t\tif ( emailLength > 9 ) {\r\n\t\t\t\t$addEmail.addClass(classes.addEmailDisabled);\r\n\t\t\t}\r\n\t\t\t$emailTemplate.before($emailTemplateHtml);\r\n\t\t\t$('.m-modal-actions__sub-email-group').on(\"focus\",'.a-input',(ev: any) => {\r\n\t\t\t\tconst me = ev.currentTarget;\r\n\t\t\t\tfloatControlLabel(me, true)\r\n\t\t\t})\r\n\t\t});\r\n\t\t$('.m-modal-actions__form').on(\"click\",'.js-remove-email-input',(ev: Event) => {\r\n\t\t\t$(ev.currentTarget).parent().remove();\r\n\t\t\t$addEmail.removeClass(classes.addEmailDisabled);\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\nimport { NavigationInPageConfig } from './navigation-in-page.model';\r\nimport { addScrollClickTrigger, init as initHashScrolling } from '@project/shared/utils/hashscrolling/js/hashscrolling';\r\nimport * as copy from 'copy-to-clipboard';\r\n\r\n@createModule('NavigationInPage')\r\n\r\n/**\r\n * @author Guener Sakinc \r\n *\r\n * 1. Check if there are any AnchorIs and AnchorTitles available to show or remove it\r\n * 2. Grab properties from required attributes and generate mark up to be rendered\r\n * 3. Anchor bar container implemented in the existing header to take over the animation properties\r\n * 4. Handles the visibility/fading of the anchor bar by the target elements' top position and the calculated threshold\r\n * incl. its offset\r\n * 5. Calculate vertical scroll position of the document to hilite the proper anchor item\r\n * 6. Re-position the anchor bar vertical scrolling position when the viewport is too small for all items to be shown\r\n * 7. Calculate the width of the status bar under the anchor bar buttons and include a css transition\r\n * 8. Scroll vertically to content item when an anchor bar item is clicked\r\n *\r\n */\r\nexport class NavigationInPage extends TerrificSpec {\r\n\t/**\r\n\t * @var {NavigationInPageConfig} config - returns the model data\r\n\t */\r\n\tconfig: NavigationInPageConfig;\r\n\r\n\t/**\r\n\t * @var {?} timer - returns a timer object that is needed to handle the showHideAnchorBar() functionality\r\n\t * and avoid flickering of the anchor bar when scrolling quickly changing scroll directions over the threshold area\r\n\t */\r\n\ttimer: any = null;\r\n\r\n\t/**\r\n\t * @var {number} winScrollY - return the current window scroll top value.\r\n\t */\r\n\twinScrollY = 0;\r\n\r\n\t/**\r\n\t * @var listItemPlaceholder {string} - holds the list item mark-up completely given by the pattern\r\n\t *\r\n\t */\r\n\tlistItemPlaceholder: string;\r\n\r\n\t/**\r\n\t * hasCanvasOffset\r\n\t *\r\n\t */\r\n\thasCanvasOffset: boolean;\r\n\tactiveItem: number;\r\n\tanimationFrameId: number = 0;\r\n\t$links: JQuery;\r\n\t$ctx: JQuery;\r\n\t$shareBtn: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.config = {\r\n\t\t\tmainSelector: '.js-m-navigation-in-page',\r\n\t\t\tattributeNameTarget: 'data-anchor-id-target',\r\n\t\t\tattributeNameId: 'data-anchor-id',\r\n\t\t\tattributeNameTitle: 'data-anchor-title',\r\n\t\t\ttargetSelector: '.js-m-navigation-in-page__list-items',\r\n\t\t\tbuttonSelector: '.js-m-navigation-in-page__item-anchor',\r\n\t\t\tstatusBarWrapperSelector: '.js-m-navigation-in-page__wrapper',\r\n\t\t\tstatusBarSelector: '.js-m-navigation-in-page__status_wrapper .js-m-navigation-in-page__item-indicator-init',\r\n\t\t\ttargetWrapperSelector: '.js-m-navigation-in-page__wrapper',\r\n\t\t\tpageTitleSelector: '.js-m-navigation-in-page__page-title',\r\n\t\t\tstickyCtaSelector: '.js-m-navigation-in-page__cta',\r\n\t\t\tstickyShareBtn: '.js-m-navigation-in-page__share-btn',\r\n\t\t\tstickyShareSelector: '.js-m-navigation-in-page__share-container',\r\n\t\t\tsharePopupView: 'm-navigation-in-page__share-popup-view',\r\n\t\t\tshareShowPopup: 'state-m-navigation-in-page__share-popup-shown',\r\n\t\t\tactive: 'state-m-navigation-in-page__item-anchor--is-active',\r\n\t\t\tfadeInBar: 'state-m-navigation-in-page__fade--in',\r\n\t\t\tfadeOutBar: 'state-m-navigation-in-page__fade--out',\r\n\t\t\ttitleFlexEnd: 'state-m-navigation-in-page__cta-wrapper--flex-end',\r\n\t\t\tscrollDirection: 0,\r\n\t\t\tlastScrollTop: 0,\r\n\t\t\tthreshold: 0,\r\n\t\t\tthresholdOffset: 200,\r\n\t\t\tanchorBarButtons: [] as any,\r\n\t\t\ttargetNavElements: $() as JQuery,\r\n\t\t\tanchorBarBreakpoints: [] as any,\r\n\t\t};\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.initInpage(true);\r\n\t\t$(window).on('resize.NavigationInPage', this.initInpage.bind(this));\r\n\t\t$(window).on('NavigationInPage:reInit', () => this.initInpage(true));\r\n\t\t$(window).on('NavigationInPage:reInitNoClick', () => this.initInpage(false));\r\n\t\t$(window).on('hashchange', () => this.initInpage(true));\r\n\r\n\t\tthis.initPageTitle();\r\n\t\tthis.initStickyCta();\r\n\t\tthis.initStickyShare();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitInpage(triggerHash: boolean) {\r\n\t\tthis.listItemPlaceholder = this.getListItemPlaceholder();\r\n\t\tif (\r\n\t\t\tthis.shouldInpageNavgationBeShown() ||\r\n\t\t\t$('.js-sticky-cta').length !== 0 ||\r\n\t\t\t$('.js-sticky-buttons').length !== 0\r\n\t\t) {\r\n\t\t\tconst hasHash = this.pageHasHashTag();\r\n\r\n\t\t\tthis.activeItem = -1;\r\n\t\t\tthis.winScrollY = window.pageYOffset;\r\n\r\n\t\t\tthis.regScrollEvent();\r\n\r\n\t\t\tthis.setListItems(\r\n\t\t\t\tthis.config.attributeNameTarget,\r\n\t\t\t\tthis.createArrayData(this.config.attributeNameId, true),\r\n\t\t\t\tthis.createArrayData(this.config.attributeNameTitle, false)\r\n\t\t\t);\r\n\r\n\t\t\tthis.config.anchorBarButtons = (\r\n\t\t\t\tthis._ctx.querySelectorAll(this.config.targetSelector + ' ' + this.config.buttonSelector)\r\n\t\t\t);\r\n\t\t\tthis.regAnchorBarButtonsEvt();\r\n\t\t\tthis.setMobileAction();\r\n\r\n\t\t\tif (hasHash === true && triggerHash === true) {\r\n\t\t\t\tconst normalizedHash = window.location.hash.substr(1).toLowerCase(); // Convert hash to lowercase\r\n\t\t\t\tconst elemWithHash = $(`[${this.config.attributeNameTarget}=\"${normalizedHash}\"]`);\r\n\r\n\t\t\t\twindow.onload = function() {\r\n\t\t\t\t\tvar hash = window.location.hash;\r\n\t\t\t\t\tconsole.log(hash);\r\n\t\t\t\t\thandleJump(hash);\r\n\t\t\t\t};\r\n\t\t\t\t$(elemWithHash).on('click', (event: Event) => {\r\n\t\t\t\t\tevent.preventDefault(); // Prevent default anchor behavior\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif ($('.js-sticky-cta').length === 0 && $('.js-sticky-buttons').length === 0) {\r\n\t\t\t\tthis.removeInpageNavigation();\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Function to handle the jump action\r\n\t\tfunction handleJump(targetValue: any) {\r\n\t\t\ttargetValue = replaceSpecialCharactersMain(targetValue);\r\n\t\t\ttargetValue = targetValue ? targetValue.toLowerCase() : targetValue;\r\n\t\t\tlet targetElement = document.querySelector(`div[data-anchor-id=\"${targetValue.slice(1).toLowerCase()}\"]`);\r\n\t\t\tif (targetElement) {\r\n\t\t\t\ttargetElement.scrollIntoView({ behavior: 'smooth' });\r\n\t\t\t\tconsole.log('Anchor ID targetElement::', targetElement); // Log the anchor element\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction replaceSpecialCharactersMain(input: string){\r\n\t\t\tconst replacements: Record = {\r\n\t\t\t\t\"ä\": \"ae\",\r\n\t\t\t\t\"ö\": \"oe\",\r\n\t\t\t\t\"ü\": \"ue\",\r\n\t\t\t\t\"ß\": \"ss\",\r\n\t\t\t\t\" \": \"\",\r\n\t\t\t\t\"&\": \"\",\r\n\t\t\t\t\"-\": \"\",\r\n\t\t\t\t\"+\": \"\"\r\n\t\t\t};\r\n\r\n\t\t\treturn input.replace(/[äöüß &+-]/g, (char: string) => replacements[char] || \"\");\r\n\t\t}\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\t/**\r\n\t * Sticky Title\r\n\t */\r\n\tinitPageTitle() {\r\n\t\tconst docTitle = document.title;\r\n\t\tif (docTitle.indexOf('|') != -1) {\r\n\t\t\tconst title = docTitle.split('|');\r\n\t\t\t$(this.config.pageTitleSelector).text(title[0]);\r\n\t\t} else {\r\n\t\t\t$(this.config.pageTitleSelector).text(docTitle);\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * Sticky Cta\r\n\t */\r\n\tinitStickyCta() {\r\n\t\tconst formID = '#' + $('.m-teaser-contact-form').attr('data-anchor-id');\r\n\t\tif ($('.js-sticky-cta').length > 0) {\r\n\t\t\tconst stickyCta = $('.js-sticky-cta').eq(0);\r\n\t\t\tconst stickyCtaTheme = stickyCta.parent().attr('data-theme');\r\n\t\t\t$(this.config.stickyCtaSelector).text(stickyCta.text());\r\n\t\t\t$(this.config.stickyCtaSelector).attr('href', stickyCta.attr('href'));\r\n\t\t\t$(this.config.stickyCtaSelector).attr('target', stickyCta.attr('target'));\r\n\t\t\t$(this.config.stickyCtaSelector).attr('data-mktoflow-id', stickyCta.data('mktoflow-id'));\r\n\t\t\t$(this.config.stickyCtaSelector).addClass('a-button--' + stickyCtaTheme);\r\n\t\t\t// Scroll\r\n\t\t\tif ($('.js-m-stage-product__button').length > 0) {\r\n\t\t\t\tinitHashScrolling();\r\n\t\t\t\taddScrollClickTrigger($(this.config.stickyCtaSelector));\r\n\t\t\t} else if (stickyCta.attr('href') !== formID) {\r\n\t\t\t\tconst url = stickyCta.attr('href');\r\n\t\t\t\tconst idx = url.indexOf('#');\r\n\t\t\t\tif (idx === 0) {\r\n\t\t\t\t\tinitHashScrolling();\r\n\t\t\t\t\taddScrollClickTrigger($(this.config.stickyCtaSelector));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// if the is not an anchor, just do the 's original behavior\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if ($('.js-sticky-buttons').length > 0) {\r\n\t\t\tconst stickyCtaGroup = $('.js-sticky-buttons');\r\n\t\t\tconst stickyCtaTheme = stickyCtaGroup.attr('data-theme');\r\n\t\t\t$(this.config.stickyCtaSelector).addClass('a-button--' + stickyCtaTheme);\r\n\t\t\tif (stickyCtaGroup.children().length == 1) {\r\n\t\t\t\tconst stickyCta = stickyCtaGroup.children();\r\n\t\t\t\t$(this.config.stickyCtaSelector).text(stickyCta.text());\r\n\t\t\t\t$(this.config.stickyCtaSelector).attr('href', stickyCta.attr('href'));\r\n\t\t\t\t$(this.config.stickyCtaSelector).attr('target', stickyCta.attr('target'));\r\n\t\t\t} else {\r\n\t\t\t\tconst stickyCtaText = stickyCtaGroup.attr('data-title');\r\n\t\t\t\t$(this.config.stickyCtaSelector).text(stickyCtaText);\r\n\t\t\t\t$(this.config.stickyCtaSelector).addClass('m-navigation-in-page__cta-toggle');\r\n\t\t\t\t$(this.config.stickyCtaSelector)\r\n\t\t\t\t\t.next()\r\n\t\t\t\t\t.append($('.js-sticky-buttons').html());\r\n\t\t\t\t$(this.config.stickyCtaSelector).on('click', (ev: any) => {\r\n\t\t\t\t\tev.stopPropagation();\r\n\t\t\t\t\t$(ev.currentTarget)\r\n\t\t\t\t\t\t.parent()\r\n\t\t\t\t\t\t.toggleClass('is-expanded');\r\n\t\t\t\t});\r\n\t\t\t\t$('body').on('click', () => {\r\n\t\t\t\t\t$(this.config.stickyCtaSelector)\r\n\t\t\t\t\t\t.parent()\r\n\t\t\t\t\t\t.removeClass('is-expanded');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$(this.config.stickyCtaSelector)\r\n\t\t\t\t.parent()\r\n\t\t\t\t.parent()\r\n\t\t\t\t.addClass(this.config.titleFlexEnd);\r\n\t\t\t$(this.config.stickyCtaSelector)\r\n\t\t\t\t.parent()\r\n\t\t\t\t.remove();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sticky Share\r\n\t */\r\n\tinitStickyShare() {\r\n\t\tconst shareLocation = $('.m-page-share-container');\r\n\t\tconst shareSelector = $('.m-page-share');\r\n\t\tif (shareLocation.length > 0) {\r\n\t\t\tshareLocation.after(\"
    \");\r\n\t\t\t$(this.config.stickyShareSelector).append(shareSelector.clone());\r\n\t\t\tif ($('.o-header__sticky-bar--hide-navigation').length > 0) {\r\n\t\t\t\tthis.stickyPopupShareShow();\r\n\t\t\t} else {\r\n\t\t\t\tthis.stickyPopupShare();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$(this.config.stickyShareSelector).hide();\r\n\t\t}\r\n\t}\r\n\r\n\tsetClipboardAnchorBtn() {\r\n\t\t$(this.config.stickyShareSelector).on('click', '.m-page-share__anchor--hyperlink', () => {\r\n\t\t\tthis.copyURLToClipboard();\r\n\t\t});\r\n\t}\r\n\r\n\tstickyPopupShare() {\r\n\t\t$(this.config.stickyShareSelector).addClass(this.config.sharePopupView);\r\n\t\tthis.stickyPopupShareShow();\r\n\t}\r\n\tstickyPopupShareShow() {\r\n\t\t$(this.config.stickyShareBtn).on('click', (e: Event) => {\r\n\t\t\te.stopPropagation();\r\n\t\t\t$(this.config.stickyShareSelector).toggleClass(this.config.shareShowPopup);\r\n\t\t});\r\n\t\t$(window).on('scroll', () => {\r\n\t\t\t$(this.config.stickyShareSelector).removeClass(this.config.shareShowPopup);\r\n\t\t});\r\n\t\t$(this.config.stickyShareSelector).on('click', (e: Event) => {\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\t\t$('body').on('click', () => {\r\n\t\t\t$(this.config.stickyShareSelector).removeClass(this.config.shareShowPopup);\r\n\t\t});\r\n\t}\r\n\r\n\t/* ####### SECTION - SET DATA MODEL */\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\r\n\tsetMobileAction() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.hasCanvasOffset = this.hasAnchorBarOffCanvas();\r\n\t\t}, 1);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a boolean value to indicate if a Inpage Navigation should be shown\r\n\t * @returns {boolean}\r\n\t */\r\n\tshouldInpageNavgationBeShown() {\r\n\t\tconst inpageNavElements = $('[' + this.config.attributeNameId + ']');\r\n\t\treturn inpageNavElements.length > 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Remove the Inpage Navigation from the DOM. Always when no AnchorIds and AnchorTitles are available\r\n\t */\r\n\tremoveInpageNavigation(): void {\r\n\t\t$(this.config.mainSelector).remove();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the placeholder from the mark up\r\n\t * @return {string} - Returns the placeholder item from the mark up\r\n\t */\r\n\tgetListItemPlaceholder(): string {\r\n\t\treturn this.$ctx.find(this.config.targetSelector).html();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the target elements of the inpage navigation\r\n\t * @param createTargetNavElements - boolean indicator to avoid redundant creation of target navigation elements\r\n\t * @param inpageNavElements - Array of all navigation inpage elements\r\n\t */\r\n\tsetTargetData(createTargetNavElements: boolean, inpageNavElements: JQuery) {\r\n\t\tif (createTargetNavElements && inpageNavElements.length !== 0) {\r\n\t\t\tthis.config.targetNavElements = inpageNavElements;\r\n\t\t\tthis.config.threshold = this.config.targetNavElements[0].offsetTop - this.config.thresholdOffset;\r\n\t\t\tthis.config.anchorBarBreakpoints = this.setAnchorBarBreakpoints();\r\n\t\t}\r\n\t}\r\n\r\n\t/* ####### SECTION - SECTION - RENDERING MARK UP */\r\n\r\n\t/**\r\n\t * Set HTML mark-up of generated list items\r\n\t * @param anchorAttributeName - Holds the attribute name of the anchor element\r\n\t * @param targetAnchorIds - Holds the anchor IDs of the targets\r\n\t * @param targetAnchorTitles - Holds the titles of the inpage navigation elements\r\n\t */\r\n\tsetListItems(anchorAttributeName: string, targetAnchorIds: any[], targetAnchorTitles: any[]) {\r\n\t\tconst $el = this.$ctx.find(this.config.targetSelector);\r\n\t\tlet listItems = '';\r\n\r\n\t\ttargetAnchorIds.forEach((el, index) => {\r\n\t\t\tlistItems += this.createListItem(anchorAttributeName, targetAnchorIds[index], targetAnchorTitles[index]);\r\n\t\t});\r\n\r\n\t\t$el.html(listItems);\r\n\t\tthis.$links = this.$ctx.find('[' + this.config.attributeNameTarget + ']');\r\n\t}\r\n\r\n\t/**\r\n\t * Creates an array of the given attribute values\r\n\t * @param targetAttribute - Holds the attribute name of target elements\r\n\t * @param navElements - Holds a boolean value for transmitting it into the setTargetData function\r\n\t * @return array - Returns the created data as an array\r\n\t */\r\n\tcreateArrayData(targetAttribute: string, navElements: boolean): string[] {\r\n\t\tconst inpageNavElements: JQuery = $('[' + targetAttribute + ']');\r\n\t\tconst attributeList = [] as string[];\r\n\r\n\t\tinpageNavElements.each((index: number, el: HTMLElement) => {\r\n\t\t\tconst targetAttributeValue: string = $(el).attr(targetAttribute);\r\n\t\t\tattributeList.push(targetAttributeValue);\r\n\t\t});\r\n\r\n\t\tthis.setTargetData(navElements, inpageNavElements);\r\n\t\treturn attributeList;\r\n\t}\r\n\r\n\t/**\r\n\t * Create one list item (anchor) of the inpage navigation from the given placeholder of the mark up\r\n\t * @param anchorAttributeName - Holds the attribute name of the anchor element\r\n\t * @param anchorAttributeNameId - Holds the anchor IDs of the targets\r\n\t * @param anchorTitle - Holds the titles of the inpage navigation elements\r\n\t * @return {string} - Returns the final mark up that was generated with the placeholder mark up\r\n\t */\r\n\tcreateListItem(anchorAttributeName: string, anchorAttributeNameId: string, anchorTitle: string): string {\r\n\t\tconst $listItem = $(this.listItemPlaceholder);\r\n\r\n\t\t$listItem.find(this.config.buttonSelector).attr(anchorAttributeName, anchorAttributeNameId);\r\n\t\t$listItem.find(this.config.buttonSelector).attr('href', '#' + anchorAttributeNameId);\r\n\t\t$listItem.find(this.config.buttonSelector).text(anchorTitle);\r\n\r\n\t\treturn $listItem.prop('outerHTML');\r\n\t}\r\n\r\n\t/**\r\n\t * Get all offsetTop values of the relevant target elements and save them as an array containing the breakpoints\r\n\t * @return array - Returns an array of the corresponding breakpoints\r\n\t */\r\n\tsetAnchorBarBreakpoints(): number[] {\r\n\t\tconst breakpoints: number[] = [];\r\n\r\n\t\tthis.config.targetNavElements.each((index, item) => {\r\n\t\t\tbreakpoints[index] = item.offsetTop - this.config.thresholdOffset;\r\n\t\t});\r\n\r\n\t\tbreakpoints.push(document.body.offsetHeight);\r\n\r\n\t\treturn breakpoints;\r\n\t}\r\n\r\n\t/** ###### SECTION - SCROLLING & INTERACTIONS */\r\n\r\n\t/**\r\n\t * Register document scroll event which decides when to show or hide the inpage navigation\r\n\t */\r\n\tregScrollEvent(): void {\r\n\t\t$(window)\r\n\t\t\t.off('scroll.NavigationInPage')\r\n\t\t\t.on('scroll.NavigationInPage', this.onScroll.bind(this));\r\n\t\tthis.onScroll();\r\n\t}\r\n\r\n\tonScroll() {\r\n\t\tif (this.animationFrameId > 0) {\r\n\t\t\twindow.cancelAnimationFrame(this.animationFrameId);\r\n\t\t}\r\n\t\tthis.animationFrameId = window.requestAnimationFrame(() => {\r\n\t\t\tthis.animationFrameId = 0;\r\n\t\t\tthis.handleScrolling();\r\n\t\t});\r\n\t}\r\n\r\n\tshowCtaThreshold() {\r\n\t\tconst shareLocation = $('.m-page-share-container').last();\r\n\t\tconst ctaSelector = $('.js-sticky-cta');\r\n\t\tif (shareLocation.length > 0) {\r\n\t\t\tconst shareOffsetTop = shareLocation.offset().top;\r\n\r\n\t\t\tif (shareOffsetTop > 0) {\r\n\t\t\t\tthis.config.threshold = shareOffsetTop + shareLocation.height();\r\n\t\t\t}\r\n\t\t} else if (ctaSelector.length > 0) {\r\n\t\t\tconst ctaOffsetTop = ctaSelector.offset().top;\r\n\r\n\t\t\tif (ctaOffsetTop > 0) {\r\n\t\t\t\tthis.config.threshold = ctaOffsetTop + ctaSelector.height();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thandleScrolling() {\r\n\t\tthis.hasCanvasOffset = this.hasAnchorBarOffCanvas();\r\n\t\tthis.winScrollY = window.pageYOffset;\r\n\t\tthis.setScrollDirection();\r\n\t\tthis.calcAndSetAnchorItemActive();\r\n\t\tthis.showCtaThreshold();\r\n\t\tthis.winScrollY > this.config.threshold ? this.showHideAnchorBar(true) : this.showHideAnchorBar(false);\r\n\t}\r\n\r\n\t/**\r\n\t * Move the inpage navigation vertically and calls the same function that is also used in the on\r\n\t * click handler of the anchor bar buttons\r\n\t *\r\n\t * @param {number} idx\r\n\t */\r\n\tmoveAxisX(idx: number) {\r\n\t\tif (this.hasCanvasOffset && idx >= 0) {\r\n\t\t\tif (this.activeItem !== idx && this.activeItem >= 0) {\r\n\t\t\t\tthis.actAnchorBarButtonEvt(false, idx);\r\n\t\t\t\t//this.progressBarSetWidth(idx);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Shows or hides the inpage navigation by the given boolean parameter\r\n\t * @param showAnchorBar - Boolean value to indicate the anchor bar to be shown\r\n\t */\r\n\tshowHideAnchorBar(showAnchorBar: boolean) {\r\n\t\tconst $target: any = this.$ctx.find(this.config.targetWrapperSelector);\r\n\t\tclearTimeout(this.timer);\r\n\t\tshowAnchorBar ? this.showAnchorBar($target) : this.hideAnchorBar($target);\r\n\t}\r\n\r\n\t/**\r\n\t * Show the inpage navigation\r\n\t * @param $target - Holds the target element to make actions on\r\n\t */\r\n\tshowAnchorBar($target: any) {\r\n\t\t$target.css({\r\n\t\t\tdisplay: 'flex',\r\n\t\t});\r\n\t\t$target.removeClass(this.config.fadeOutBar);\r\n\t\t$target.addClass(this.config.fadeInBar);\r\n\r\n\t\tthis.setClipboardAnchorBtn();\r\n\t}\r\n\r\n\t/**\r\n\t * Hide the inpage navigation\r\n\t * @param $target - Holds the target element to make actions on\r\n\t */\r\n\thideAnchorBar($target: any) {\r\n\t\t$target.removeClass(this.config.fadeInBar);\r\n\t\t$target.addClass(this.config.fadeOutBar);\r\n\t\tthis.activeItem = -1;\r\n\t\tthis.timer = setTimeout(() => {\r\n\t\t\t$target.hide();\r\n\t\t}, 500);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the direction which was scrolled\r\n\t */\r\n\tsetScrollDirection() {\r\n\t\tconst currentYScroll = this.winScrollY;\r\n\t\tcurrentYScroll > this.config.lastScrollTop\r\n\t\t\t? (this.config.scrollDirection = 1)\r\n\t\t\t: (this.config.scrollDirection = -1);\r\n\t\tthis.config.lastScrollTop = currentYScroll;\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates and set the highlighted anchor item. (If the current scroll Y - axis demands a highlighting of its element in the inpage navigation bar)\r\n\t */\r\n\tcalcAndSetAnchorItemActive() {\r\n\t\tthis.config.anchorBarBreakpoints.forEach((topPos, index) => {\r\n\t\t\tif (this.winScrollY >= topPos) {\r\n\t\t\t\t// Page is scrolled at the bottom, so it activates the last anchor bar item\r\n\t\t\t\tif ($(window).scrollTop() + window.innerHeight >= $(document).height()) {\r\n\t\t\t\t\t// Add increment to indicate that the page is scrolled down at the bottom of the page\r\n\t\t\t\t\tindex = this.config.anchorBarButtons.length - 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Substract the increment of +1 from above top avoid DOM reference failures,\r\n\t\t\t\t// after once scrolled to the bottom of the page\r\n\t\t\t\tif (this.config.anchorBarButtons.length === index) {\r\n\t\t\t\t\tindex = index - 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.winScrollY <= this.config.anchorBarBreakpoints[index + 1]) {\r\n\t\t\t\t\t//this.progressBarSetWidth(index);\r\n\t\t\t\t\tthis.moveAxisX(index);\r\n\t\t\t\t\tthis.activeItem = index;\r\n\t\t\t\t\tthis.$links.removeClass(this.config.active);\r\n\t\t\t\t\tthis.$links.eq(index).addClass(this.config.active);\r\n\t\t\t\t} else if (this.activeItem === index) {\r\n\t\t\t\t\tthis.$links.eq(index).removeClass(this.config.active);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.$links.eq(index).removeClass(this.config.active);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Set the display property of the status bars' wrapper element to 'block' to enable this.progressBarCalcWidth()\r\n\t * returning the proper calculation value rather than returning 0\r\n\t * @param index - Holds the index of the element to be highlighted\r\n\t */\r\n\tprogressBarSetWidth(index: number) {\r\n\t\tthis.$ctx.find(this.config.statusBarWrapperSelector).css({\r\n\t\t\tdisplay: 'block',\r\n\t\t});\r\n\r\n\t\tthis.$ctx.find(this.config.statusBarSelector).css({\r\n\t\t\twidth: this.progressBarCalcWidth(index) + 'px',\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates the width of the inpage navigation status bar\r\n\t * @param index - Holds the index of the highlighted element\r\n\t */\r\n\tprogressBarCalcWidth(index: number): number {\r\n\t\treturn (\r\n\t\t\tthis.config.anchorBarButtons[index].offsetLeft +\r\n\t\t\tthis.config.anchorBarButtons[index].offsetWidth -\r\n\t\t\tthis._ctx.querySelector(this.config.targetSelector).scrollLeft\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Register click event for inpage navigation items\r\n\t */\r\n\tregAnchorBarButtonsEvt() {\r\n\t\t$(this.config.anchorBarButtons)\r\n\t\t\t.off('click.NavigationInPage')\r\n\t\t\t.on('click.NavigationInPage', (ev: Event) => {\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t\tconst dataAttrOfClickedElem = $(ev.currentTarget).data('anchor-id-target');\r\n\t\t\t\tconst formID = $('.m-teaser-contact-form').attr('data-anchor-id');\r\n\t\t\t\tif (dataAttrOfClickedElem !== formID) {\r\n\t\t\t\t\tthis.actAnchorBarButtonEvt(true, undefined, ev.currentTarget as HTMLElement);\r\n\t\t\t\t}\r\n\t\t\t\tthis.historyPush(dataAttrOfClickedElem);\r\n\t\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the width of the inpage navigation bar\r\n\t * @returns width - Returns the width of all elements of the navigation inpage anchor bar\r\n\t */\r\n\tgetWidthOfAnchorBar(): number {\r\n\t\tlet width = 0;\r\n\t\tfor (let i = 0; this.config.anchorBarButtons.length > i; i++) {\r\n\t\t\twidth += this.config.anchorBarButtons[i].offsetWidth + 40;\r\n\t\t}\r\n\r\n\t\treturn width;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a boolean value that indicates that the inpage navigation items have more width as the document width\r\n\t */\r\n\thasAnchorBarOffCanvas(): boolean {\r\n\t\treturn this.getWidthOfAnchorBar() > document.body.offsetWidth;\r\n\t}\r\n\r\n\t/**\r\n\t * Action for the click event of each inpage navigation item\r\n\t * @param scrollTo\r\n\t * @param idx - Holds the index of the element to be make an action for\r\n\t * @param elem - trigger element\r\n\t */\r\n\tactAnchorBarButtonEvt(scrollTo: boolean, idx?: number, elem?: HTMLElement) {\r\n\t\tconst gradientSpacing = 20;\r\n\t\tconst offset = 50;\r\n\t\tif (elem) {\r\n\t\t\tidx = $(this.config.anchorBarButtons).index(elem);\r\n\t\t}\r\n\t\tconst anchorBarOffsetLeft: number = this.config.anchorBarButtons[idx].offsetLeft - gradientSpacing - offset;\r\n\r\n\t\tthis.$ctx\r\n\t\t\t.find(this.config.targetSelector)\r\n\t\t\t.delay(1)\r\n\t\t\t.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: anchorBarOffsetLeft,\r\n\t\t\t\t},\r\n\t\t\t\t150,\r\n\t\t\t\t() => {\r\n\t\t\t\t\tif (scrollTo) {\r\n\t\t\t\t\t\tscrollToElement($(this.getAnchorElement(idx)), true, this.calcOffsetY());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the inpage navigation anchor element by the given index\r\n\t * @param idx - Holds the index of the element to target to\r\n\t * @returns - A jQuery object from the anchor element\r\n\t */\r\n\tgetAnchorElement(idx: number): object {\r\n\t\tconst obj: any = this.config.targetNavElements[idx];\r\n\t\tconst elAttribute: any = obj.getAttributeNode(this.config.attributeNameId).value;\r\n\t\treturn $('[' + this.config.attributeNameId + '=\"' + elAttribute + '\"]');\r\n\t}\r\n\r\n\t/**\r\n\t * Calculates the top offset of the parent element of this component\r\n\t */\r\n\tcalcOffsetY(): number {\r\n\t\treturn $(this.config.targetWrapperSelector).height() + 20;\r\n\t}\r\n\r\n\thistoryPush(hash: string): any {\r\n\t\tif (history.pushState) {\r\n\t\t\tconst newurl =\r\n\t\t\t\twindow.location.protocol +\r\n\t\t\t\t'//' +\r\n\t\t\t\twindow.location.host +\r\n\t\t\t\twindow.location.pathname +\r\n\t\t\t\twindow.location.search +\r\n\t\t\t\t'#' +\r\n\t\t\t\thash;\r\n\t\t\twindow.history.pushState({ path: newurl }, '', newurl);\r\n\t\t}\r\n\t}\r\n\r\n\treplaceSpecialCharacters(input: string): string {\r\n\t\tconst replacements: Record = {\r\n\t\t\t\"ä\": \"ae\",\r\n\t\t\t\"ö\": \"oe\",\r\n\t\t\t\"ü\": \"ue\",\r\n\t\t\t\"ß\": \"ss\",\r\n\t\t\t\" \": \"\",\r\n\t\t\t\"&\": \"\",\r\n\t\t\t\"-\": \"\",\r\n\t\t\t\"+\": \"\"\r\n\t\t};\r\n\r\n\t\treturn input.replace(/[äöüß &+-]/g, (char: string) => replacements[char] || \"\");\r\n\t}\r\n\r\n\tpageHasHashTag(): boolean {\r\n\t\tlet result = this.replaceSpecialCharacters(window.location.hash.substr(1));\r\n\t\tresult = result ? result.toLowerCase() : result;\r\n\t\tif (window.location.hash && $(`[${this.config.attributeNameId}=\"${result}\"]`).length > 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies the URL (location.href) into the browser clipboard\r\n\t * @constructor {function}\r\n\t * @returns {void}\r\n\t */\r\n\tcopyURLToClipboard(): void {\r\n\t\tconst opts: any = this.getClipboardOpts();\r\n\t\tconst data = this.getLocationHref();\r\n\r\n\t\tthis.showDebugInfo(opts, data);\r\n\t\tthis.showFeedbackMsg();\r\n\t\tcopy(data, opts);\r\n\t\tthis.hideFeedbackMsgTimer();\r\n\t}\r\n\r\n\t/**\r\n\t * getClipboardOpts\r\n\t * @constructor {function} getClipboardOpts\r\n\t * @returns {Object} any\r\n\t */\r\n\tgetClipboardOpts(): any {\r\n\t\treturn {\r\n\t\t\tdebug: false,\r\n\t\t\tmessage: 'Press #{⌘+C} on macOS or #{Ctrl+C} on Windows to copy',\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * getLocationHref\r\n\t * @constructor {function} getLocationHref\r\n\t * @returns {string} string\r\n\t */\r\n\tgetLocationHref(): string {\r\n\t\treturn document.location.href;\r\n\t}\r\n\r\n\t/**\r\n\t * showDebugInfo - Description\r\n\t * @constructor {function} showDebugInfo\r\n\t * @param {Object} opts holds thze options for the clipboard object\r\n\t * @param {string} data holds the data to be copied into the clipboard\r\n\t */\r\n\tshowDebugInfo(opts: any, data: string) {\r\n\t\tif (opts.debug) {\r\n\t\t\t// eslint-disable-next-line no-console\r\n\t\t\tconsole.log('Copied to clipboard: ', data);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * showFeedbackMsg\r\n\t * @constructor {function} showFeedbackMsg\r\n\t */\r\n\tshowFeedbackMsg() {\r\n\t\t$(this.config.stickyShareSelector)\r\n\t\t\t.find('.m-page-share__copy-msg')\r\n\t\t\t.removeClass('show');\r\n\t\t$(this.config.stickyShareSelector)\r\n\t\t\t.find('.m-page-share__copy-msg')\r\n\t\t\t.addClass('show');\r\n\t}\r\n\r\n\t/**\r\n\t * hideFeedbackMsg\r\n\t * @constructor {function} hideFeedbackMsg\r\n\t */\r\n\thideFeedbackMsg() {\r\n\t\t$(this.config.stickyShareSelector)\r\n\t\t\t.find('.m-page-share__copy-msg')\r\n\t\t\t.removeClass('show');\r\n\t}\r\n\r\n\t/**\r\n\t * showFeedbackMsg\r\n\t * @constructor {function} showFeedbackMsg\r\n\t */\r\n\thideFeedbackMsgTimer() {\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tthis.hideFeedbackMsg();\r\n\t\t}, 3500);\r\n\t}\r\n}\r\n","// @ts-ignore\r\nimport * as hoverintent from 'hoverintent';\r\nimport { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents, onPublicEvent } from '@project/shared/utils/events/js/events';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst widthOfArrow = 22,\r\n\tpaddingReserve = 0,\r\n\tclasses = {\r\n\t\tstateActive: 'state-a-navigation-main__item--active',\r\n\t\tlayerOpener: 'js-m-navigation-wrapper__item-level1',\r\n\t\tnavigationLayerWrapper: 'js-m-navigation-wrapper__layer',\r\n\t\twidthCalculationBase: 'js-m-navigation-wrapper',\r\n\t\tlevel1OpenLayer: 'js-m-navigation-wrapper__open-layer',\r\n\t},\r\n\thoverIntentOptions = {\r\n\t\ttimeout: 300,\r\n\t\tinterval: 100,\r\n\t};\r\n\r\n@createModule('NavigationMain')\r\n/**\r\n * navigation-main module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class NavigationMain extends TerrificSpec {\r\n\tme = this;\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\t// initially: a) make flyout open with JS b) calculate flyout position\r\n\t\tthis.initNavigationOpening($ctx);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.initNavigationPositioning($ctx);\r\n\t\t}, 10);\r\n\r\n\t\t// onResize recalc flyout positions\r\n\t\t$(window).resize((ev: any) => triggerPublicEvent(PublicEvents.uxResize, this.me, this._ctx, ev));\r\n\t\tonPublicEvent(PublicEvents.uxResize, this._ctx, () => this.initNavigationPositioning($ctx));\r\n\t\tonBreakpointChange(() => this.initNavigationOpening($ctx));\r\n\r\n\t\t$(window).on('closeNavigation', (ev: Event) => this.closeNavigation($ctx));\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\t// make flyout open\r\n\tinitNavigationOpening($ctx: JQuery) {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'large' || viewport === 'extra-large') {\r\n\t\t\tconst navigationItemLinks = $(`.${classes.layerOpener}`, $ctx);\r\n\r\n\t\t\tnavigationItemLinks.each((i, elem) => {\r\n\t\t\t\thoverintent(\r\n\t\t\t\t\telem,\r\n\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t$(this).addClass(classes.stateActive);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t$(this).removeClass(classes.stateActive);\r\n\t\t\t\t\t}\r\n\t\t\t\t).options(hoverIntentOptions);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcloseNavigation($ctx: JQuery) {\r\n\t\tconst navigationItemLinks = $(`.${classes.layerOpener}`, $ctx);\r\n\t\tnavigationItemLinks.removeClass(classes.stateActive);\r\n\t}\r\n\r\n\t// calculate the position of each flyout in viewport large and extra-large\r\n\tinitNavigationPositioning($ctx: JQuery) {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'large' || viewport === 'extra-large') {\r\n\t\t\t$(`.${classes.layerOpener} > .${classes.level1OpenLayer}`, $ctx).each(function(index) {\r\n\t\t\t\tconst currentFirstLevelNavigationElement = $(this);\r\n\t\t\t\tconst currentFirstLevelNavigationFlyout = currentFirstLevelNavigationElement\r\n\t\t\t\t\t.parent()\r\n\t\t\t\t\t.find(`.${classes.navigationLayerWrapper}`);\r\n\r\n\t\t\t\t// in case there is a full width layout, the flyout will be set to left:0 , what is the correct positioning\r\n\t\t\t\tconst positionOfFirstLevelNavigationElement = currentFirstLevelNavigationElement.position();\r\n\t\t\t\tconst paddingLeftOfFirstLevelNavigationElement = parseFloat(\r\n\t\t\t\t\tcurrentFirstLevelNavigationElement.css('padding-left')\r\n\t\t\t\t);\r\n\t\t\t\tconst widthOfOfFirstLevelNavigationElement = currentFirstLevelNavigationElement.width();\r\n\t\t\t\tconst centerPositionOfNavElement =\r\n\t\t\t\t\tpositionOfFirstLevelNavigationElement.left + widthOfOfFirstLevelNavigationElement / 2;\r\n\t\t\t\tconst widthOfFlyout = currentFirstLevelNavigationFlyout.width();\r\n\t\t\t\tlet leftOfFlyout =\r\n\t\t\t\t\tcenterPositionOfNavElement -\r\n\t\t\t\t\twidthOfFlyout / 2 +\r\n\t\t\t\t\twidthOfArrow / 2 +\r\n\t\t\t\t\tpaddingLeftOfFirstLevelNavigationElement / 2;\r\n\t\t\t\tconst rightOfFlyout = leftOfFlyout + widthOfFlyout;\r\n\t\t\t\tconst totalUsuableWidth = $(`.${classes.widthCalculationBase}`).width();\r\n\r\n\t\t\t\t// => flyout would reach over right border\r\n\t\t\t\tif (rightOfFlyout > totalUsuableWidth) {\r\n\t\t\t\t\tleftOfFlyout = totalUsuableWidth - widthOfFlyout - paddingReserve;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// => flyout would reach over left border\r\n\t\t\t\tif (leftOfFlyout < 0) {\r\n\t\t\t\t\tleftOfFlyout = 0 + paddingReserve;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// set 'left' position\r\n\t\t\t\tcurrentFirstLevelNavigationFlyout.css('left', leftOfFlyout);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// delete all so far given 'left' positions\r\n\t\t\t$(`.${classes.layerOpener} > .${classes.level1OpenLayer}`, $ctx).each(function(index: number) {\r\n\t\t\t\tconst currentFirstLevelNavigationElement = $(this);\r\n\t\t\t\tconst currentFirstLevelNavigationFlyout = currentFirstLevelNavigationElement\r\n\t\t\t\t\t.parent()\r\n\t\t\t\t\t.find(`.${classes.navigationLayerWrapper}`);\r\n\r\n\t\t\t\tcurrentFirstLevelNavigationFlyout.removeAttr('style');\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst widthOfArrow = 22,\r\n\tpaddingReserve = 0,\r\n\tclasses = {\r\n\t\tbody: 'body',\r\n\t\tstateActive: 'state-m-navigation-meta__item--active',\r\n\t\tlayerOpener: 'js-m-navigation-wrapper__item-level1',\r\n\t\twidthCalculationBase: 'js-header-content',\r\n\t\tnavigationLayerWrapper: 'js-m-navigation-wrapper__layer',\r\n\t\tlevel1OpenLayer: 'js-m-navigation-wrapper__open-layer',\r\n\t\tsitesOpener: 'js-m-navigation-meta__flyout-trigger',\r\n\t\tstateSitesActive: 'state-m-navigation-meta__sites--active',\r\n\t\tsitesFlyout: 'js-m-navigation-meta__flyout',\r\n\t\tcountryRegion: 'js-m-navigation-meta__region',\r\n\t\topenCountryRegion: 'js-m-navigation-meta__open-region',\r\n\t\tcountryContainer: 'js-m-navigation-wrapper__country-container',\r\n\t\tloginElement: 'js-m-navigation-meta__item--login',\r\n\t\tlogedinState: 'state-m-navigation-meta__item--loggedin',\r\n\t\tloginUsername: 'js-m-navigation-meta__username',\r\n\t\tpositionFixer: 'm-navigation-meta__flyout--position-fixer',\r\n\t\tnavigationFavouriteTooltip: 'm-navigation-meta__tooltip-favourite',\r\n\t\ttooltipCloser: 'js-m-tooltip__closer'\r\n\t};\r\n\r\nlet isDesktopNavigationInitialized = false;\r\n\r\n@createModule('NavigationMeta')\r\n/**\r\n * navigation-meta module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class NavigationMeta extends TerrificSpec {\r\n\tmetaNaviFlyout: JQuery;\r\n\tinitiallyMeasured: boolean = false;\r\n\t$ctx: JQuery;\r\n\t$loginElement: JQuery;\r\n\t$loginUsername: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.metaNaviFlyout = $(`.${classes.sitesFlyout}`);\r\n\r\n\t\tthis.initNavigationOpening();\r\n\t\tthis.initNavigationPositioning();\r\n\t\t$(window).resize(() => this.initNavigationPositioning());\r\n\t\tonBreakpointChange(() => this.initNavigationOpening());\r\n\r\n\t\tthis.$ctx.find('.js-search-trigger').on('click', (event: Event) => {\r\n\t\t\tthis._handleTrigger(event);\r\n\t\t});\r\n\r\n\t\t$(`.${classes.tooltipCloser}`).on('click', () => {\r\n\t\t\t$(`.${classes.tooltipCloser}`).parents('.m-tooltip').fadeOut();\r\n\t\t});\r\n\r\n\t\tthis.initUserStatus();\r\n\r\n\t\tthis.initFavTooltip();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n\r\n\tinitFavTooltip() {\r\n\t\t$(`.${classes.navigationFavouriteTooltip}`).on('click', (ev: Event) => {\r\n\t\t\tev.stopPropagation();\r\n\t\t});\r\n\t\t$(`.${classes.navigationFavouriteTooltip}`).prev(`.${classes.level1OpenLayer}`).on('click', () => {\r\n\t\t\tif($(`.${classes.navigationFavouriteTooltip}`).css('display') == 'block') {\r\n\t\t\t\t$(`.${classes.navigationFavouriteTooltip}`).fadeOut();\r\n\t\t\t}\r\n\t\t});\r\n\t\t$('html').on(\"click\", () => {\r\n\t\t\tif($(`.${classes.navigationFavouriteTooltip}`).css('display') == 'block') {\r\n\t\t\t\t$(`.${classes.navigationFavouriteTooltip}`).fadeOut();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinitUserStatus() {\r\n\t\tthis.$loginElement = this.$ctx.find(`.${classes.loginElement}`);\r\n\t\tthis.$loginUsername = this.$ctx.find(`.${classes.loginUsername}`);\r\n\t\tconst serviceUrl = this.$loginElement.data('userstatus-service');\r\n\t\tif (serviceUrl) {\r\n\t\t\t$.ajax({\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\turl: serviceUrl,\r\n\t\t\t\tsuccess: this.onUserStatusAjaxSuccess.bind(this),\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tonUserStatusAjaxSuccess(data: any) {\r\n\t\tif (data.login) {\r\n\t\t\tthis.$loginElement.addClass(classes.logedinState);\r\n\t\t\tif(data.FirstName == null && data.FirstName==null){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar firstName = \"\";\r\n\t\t\tvar lastName = \"\";\r\n\r\n\t\t\tif(data.FirstName != null){\r\n\t\t\t\tfirstName = data.FirstName;\r\n\t\t\t}\r\n\t\t\tif(data.LastName != null){\r\n\t\t\t\tlastName = data.LastName;\r\n\t\t\t}\r\n\r\n\t\t\tthis.$loginUsername.html(firstName+\" \"+lastName);\r\n\t\t}\r\n\t}\r\n\r\n\t_handleTrigger(event: Event) {\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\t\t$('.a-search-trigger__item-link.js-search-trigger').click();\r\n\t}\r\n\r\n\t// calculate the position of each flyout in viewport large and extra-large\r\n\tinitNavigationPositioning() {\r\n\t\tconst $ctx = $(this._ctx),\r\n\t\t\tviewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tif (viewport === 'large' || viewport === 'extra-large') {\r\n\t\t\t$(`.${classes.layerOpener} > .${classes.level1OpenLayer}`, $ctx).each(function() {\r\n\t\t\t\tconst currentFirstLevelNavigationElement = $(this);\r\n\t\t\t\tconst currentFirstLevelNavigationFlyout = currentFirstLevelNavigationElement\r\n\t\t\t\t\t.parent()\r\n\t\t\t\t\t.find(`.${classes.navigationLayerWrapper}`);\r\n\r\n\t\t\t\t// in case there is a full width layout, the flyout will be set to left:0 , what is the correct positioning\r\n\t\t\t\tconst positionOfFirstLevelNavigationElement = currentFirstLevelNavigationElement.position();\r\n\t\t\t\tconst paddingLeftOfFirstLevelNavigationElement = parseFloat(\r\n\t\t\t\t\tcurrentFirstLevelNavigationElement.css('padding-left')\r\n\t\t\t\t);\r\n\t\t\t\tconst widthOfOfFirstLevelNavigationElement = currentFirstLevelNavigationElement.width();\r\n\t\t\t\tconst centerPositionOfNavElement =\r\n\t\t\t\t\tpositionOfFirstLevelNavigationElement.left + widthOfOfFirstLevelNavigationElement / 2;\r\n\t\t\t\tconst widthOfFlyout = currentFirstLevelNavigationFlyout.width();\r\n\t\t\t\tlet leftOfFlyout =\r\n\t\t\t\t\tcenterPositionOfNavElement -\r\n\t\t\t\t\twidthOfFlyout / 2 +\r\n\t\t\t\t\twidthOfArrow / 2 +\r\n\t\t\t\t\tpaddingLeftOfFirstLevelNavigationElement / 2;\r\n\t\t\t\tconst rightOfFlyout = leftOfFlyout + widthOfFlyout;\r\n\t\t\t\tconst totalUsuableWidth = $(`.${classes.widthCalculationBase}`).width();\r\n\r\n\t\t\t\t// => flyout would reach over right border\r\n\t\t\t\tif (rightOfFlyout > totalUsuableWidth) {\r\n\t\t\t\t\tleftOfFlyout = totalUsuableWidth - widthOfFlyout - paddingReserve;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// => flyout would reach over left border\r\n\t\t\t\tif (leftOfFlyout < 0) {\r\n\t\t\t\t\tleftOfFlyout = 0 + paddingReserve;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// set 'left' position\r\n\t\t\t\tcurrentFirstLevelNavigationFlyout.css('left', leftOfFlyout);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinitDesktopNavigation(\r\n\t\tnavigationItemLinks: JQuery,\r\n\t\tsitesOpenerElement: JQuery,\r\n\t\tcountryRegions: JQuery,\r\n\t\tcountryContainer: JQuery,\r\n\t\tsitesFlyout: JQuery\r\n\t) {\r\n\t\tnavigationItemLinks.each((i: number, elem: HTMLElement) => {\r\n\t\t\t$(elem)\r\n\t\t\t\t.find(`.${classes.level1OpenLayer}`)\r\n\t\t\t\t.on('click.DesktopNavigationLink', (clickEvent: Event) => {\r\n\t\t\t\t\tconst $el = $(elem);\r\n\t\t\t\t\tconst isOpen = $el.hasClass(classes.stateActive);\r\n\t\t\t\t\tnavigationItemLinks.removeClass(classes.stateActive);\r\n\t\t\t\t\t$el.toggleClass(classes.stateActive, !isOpen);\r\n\t\t\t\t\tclickEvent.preventDefault();\r\n\t\t\t\t\tclickEvent.stopPropagation();\r\n\t\t\t\t});\r\n\t\t});\r\n\r\n\t\tcountryRegions.each((i: number, elem: HTMLElement) => {\r\n\t\t\t$(elem)\r\n\t\t\t\t.find(`.${classes.openCountryRegion}`)\r\n\t\t\t\t.on('click.DesktopCountrySitesRegionLink', (clickEvent: Event) => {\r\n\t\t\t\t\tthis.activateRegionAndSetHeight($(elem), countryRegions, countryContainer);\r\n\t\t\t\t\tthis.setHeaderMargin(sitesFlyout[0].offsetHeight);\r\n\t\t\t\t\tclickEvent.preventDefault();\r\n\t\t\t\t\tclickEvent.stopPropagation();\r\n\t\t\t\t});\r\n\t\t});\r\n\r\n\t\tcountryRegions.removeClass(classes.stateActive);\r\n\r\n\t\tsitesOpenerElement.on('click.DesktopSitesNavigationLink', (clickEvent: Event) => {\r\n\t\t\tthis.toggleSitesNavigation(sitesFlyout);\r\n\r\n\t\t\tif (!this.initiallyMeasured) {\r\n\t\t\t\tthis.activateRegionAndSetHeight($(countryRegions[0]), countryRegions, countryContainer);\r\n\t\t\t\tthis.setHeaderMargin(sitesFlyout[0].offsetHeight);\r\n\t\t\t\tthis.initiallyMeasured = true;\r\n\t\t\t}\r\n\t\t\tclickEvent.preventDefault();\r\n\t\t\tclickEvent.stopPropagation();\r\n\t\t});\r\n\r\n\t\t$(window).on('resize.DesktopNavigationMetaResize', () => {\r\n\t\t\tif ($(classes.body).hasClass(classes.stateSitesActive)) {\r\n\t\t\t\tthis.setHeaderMargin(sitesFlyout[0].offsetHeight);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tisDesktopNavigationInitialized = true;\r\n\t}\r\n\r\n\tdestroyDesktopNavigation(navigationItemLinks: JQuery, sitesOpenerElement: JQuery, countryRegions: JQuery) {\r\n\t\tthis.closeSitesNavigation();\r\n\r\n\t\tnavigationItemLinks.each((i: number, elem: HTMLElement) => {\r\n\t\t\t$(elem)\r\n\t\t\t\t.find(`.${classes.level1OpenLayer}`)\r\n\t\t\t\t.off('click.DesktopNavigationLink');\r\n\t\t\tconst currentFirstLevelNavigationElement = $(elem);\r\n\t\t\tconst currentFirstLevelNavigationFlyout = currentFirstLevelNavigationElement\r\n\t\t\t\t.parent()\r\n\t\t\t\t.find(`.${classes.navigationLayerWrapper}`);\r\n\r\n\t\t\tcurrentFirstLevelNavigationElement.removeClass(classes.stateActive);\r\n\t\t\tcurrentFirstLevelNavigationFlyout.css('left', '');\r\n\t\t});\r\n\r\n\t\tcountryRegions.each((i: number, elem: HTMLElement) => {\r\n\t\t\t$(elem)\r\n\t\t\t\t.find(`.${classes.openCountryRegion}`)\r\n\t\t\t\t.off('click.DesktopCountrySitesRegionLink');\r\n\t\t});\r\n\r\n\t\tsitesOpenerElement.off('click.DesktopSitesNavigationLink');\r\n\t\t$(window).off('scroll.DesktopNavigationMetaNavigationScrolling');\r\n\t\t$(window).off('resize.DesktopNavigationMetaResize');\r\n\r\n\t\tisDesktopNavigationInitialized = false;\r\n\t}\r\n\r\n\tinitNavigationOpening() {\r\n\t\tconst $ctx = $(this._ctx),\r\n\t\t\tviewport = getCurrentBreakpoint() as string,\r\n\t\t\tnavigationItemLinks = $(`.${classes.layerOpener}`, $ctx),\r\n\t\t\tsitesOpenerElement = $(`.${classes.sitesOpener}`, $ctx),\r\n\t\t\tcountryRegions = $(`.${classes.countryRegion}`, $ctx),\r\n\t\t\tcountryContainer = $(`.${classes.countryContainer}`, $ctx),\r\n\t\t\tsitesFlyout = $(`.${classes.sitesFlyout}`, $ctx);\r\n\r\n\t\tif (viewport === 'medium' || viewport === 'small') {\r\n\t\t\tthis.destroyDesktopNavigation(navigationItemLinks, sitesOpenerElement, countryRegions);\r\n\t\t} else if (!isDesktopNavigationInitialized) {\r\n\t\t\tthis.initDesktopNavigation(\r\n\t\t\t\tnavigationItemLinks,\r\n\t\t\t\tsitesOpenerElement,\r\n\t\t\t\tcountryRegions,\r\n\t\t\t\tcountryContainer,\r\n\t\t\t\tsitesFlyout\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tsetHeaderMargin(margin: number) {\r\n\t\t$(window).trigger('setHeaderMargin', [margin]);\r\n\t}\r\n\r\n\ttoggleSitesNavigation(sitesFlyout: JQuery) {\r\n\t\t// Bug: COVDCJMCP-1409\r\n\t\t// toggling 'classes.stateSitesActive' in necessary as in Win8 and 10, IE11 a flickering/shine through of the\r\n\t\t// slider appears, in case it is (partly) covered by the header.\r\n\t\t// for further information read about: 'transform breaking position: fixed'\r\n\t\t// as I did not see any posibility to work without the transformation, fixed positioning without going too deep,\r\n\t\t// I opted for: setting the in this case the class 'm-navigation-meta__flyout--position-fixer' with a display: none\r\n\t\tif ($(classes.body).hasClass(classes.stateSitesActive)) {\r\n\t\t\tthis.addClassWithTimeout(classes.positionFixer);\r\n\t\t\tthis.setHeaderMargin(0);\r\n\t\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t\t\t$(window).trigger('disablePreventStickyScrollBehaviour');\r\n\t\t} else {\r\n\t\t\tthis.metaNaviFlyout.removeClass(classes.positionFixer);\r\n\t\t\tthis.setHeaderMargin(sitesFlyout[0].offsetHeight);\r\n\t\t\t$('html').addClass('no-scrolling--without-scrollbar');\r\n\t\t\t$(window).trigger('enablePreventStickyScrollBehaviour');\r\n\t\t}\r\n\t\t$(classes.body).toggleClass(classes.stateSitesActive);\r\n\t}\r\n\r\n\tcloseSitesNavigation() {\r\n\t\tthis.addClassWithTimeout(classes.positionFixer);\r\n\t\tthis.setHeaderMargin(0);\r\n\t\t$(classes.body).removeClass(classes.stateSitesActive);\r\n\t}\r\n\r\n\tactivateRegionAndSetHeight(elem: JQuery, countryRegions: JQuery, countryContainer: JQuery) {\r\n\t\tcountryRegions.removeClass(classes.stateActive);\r\n\t\t$(elem).addClass(classes.stateActive);\r\n\t\tcountryContainer.css('min-height', $(elem).find(`.${classes.navigationLayerWrapper}`)[0].offsetHeight + 'px');\r\n\t}\r\n\r\n\taddClassWithTimeout(classname: string) {\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tthis.metaNaviFlyout.addClass(classname);\r\n\t\t}, 700);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { removeBodyState } from '@project/shared/utils/body-state/js/body-state';\r\nimport { updateNavLevel } from '@project/shared/utils/burger/js/burger';\r\n\r\nimport getCurrentBreakpoint, { Breakpoint, onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst classes = {\r\n\tlayer: 'js-m-navigation-wrapper__layer',\r\n\twrapper: 'js-m-navigation-wrapper__navigation-layer',\r\n\titemLevel1: 'js-m-navigation-wrapper__item-level1',\r\n\topenLevel: 'js-m-navigation-wrapper__open-layer',\r\n\tcloseLevel: 'js-m-navigation-wrapper__close-layer',\r\n\tstateOpen: 'state-m-navigation-wrapper__layer--open',\r\n\tstateItemOpen: 'state-m-navigation-wrapper__leveltrigger--is-open',\r\n\tstateItemActive: 'state-m-navigation-wrapper__leveltrigger--is-active',\r\n\tstateBurgerNav: 'state-m-burgernav--visible',\r\n};\r\n\r\n@createModule('NavigationWrapper')\r\n/**\r\n * navigation-wrapper module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class NavigationWrapper extends TerrificSpec {\r\n\tme = this;\r\n\t$ctx: JQuery;\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.initNavigation();\r\n\r\n\t\t/**\r\n\t\t * Terrific => Register & handle window resize event\r\n\t\t */\r\n\t\tonBreakpointChange(() => this.initNavigation());\r\n\r\n\t\tresolve();\r\n\r\n\t\t$(window).on('burgerOpened', () => {\r\n\t\t\t$(window).trigger('searchFlyout:close');\r\n\t\t\tthis._getOpenTrigger()\r\n\t\t\t\t.parent()\r\n\t\t\t\t.removeClass(classes.stateItemActive);\r\n\t\t});\r\n\r\n\t\r\n\r\n\t\t$(window).on('searchFlyout:open', this.closeNavigation.bind(this));\r\n\t}\r\n\r\n\tstop() {}\r\n\t_getOpenTrigger() {\r\n\t\treturn $(this._ctx).find(`.${classes.openLevel}`);\r\n\t}\r\n\t_getCloseTrigger() {\r\n\t\treturn $(this._ctx).find(`.${classes.closeLevel}`);\r\n\t}\r\n\r\n\tinitNavigation() {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'small' || viewport === 'medium') {\r\n\t\t\tthis.initMobileNavigation();\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tthis.destroyMobileNavigation();\r\n\t\t}\r\n\t}\r\n\r\n\tinitMobileNavigation() {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\tconst $open = this._getOpenTrigger();\r\n\t\tconst $close = this._getCloseTrigger();\r\n\t\tconst $wrapper = $(`.${classes.wrapper}`, $ctx);\r\n\r\n\t\t// Used namespace to avoid conflict with navigation meta bindings and possible others\r\n\t\t$open.on('click.MobileNavigationLink', (ev: Event) => this.onClickOpenSubnavigation(ev));\r\n\t\t$close.on('click.MobileNavigationLink', (ev: Event) => this.onClickCloseSubnavigation(ev));\r\n\t\t$ctx.on('click.MobileNavigationLink', (ev: Event) => this.closeNavigation());\r\n\t\t$wrapper.on('click.MobileNavigationLink', (ev: Event) => {\r\n\t\t\tev.stopPropagation();\r\n\t\t});\r\n\t}\r\n\r\n\tdestroyMobileNavigation() {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\tconst $open = this._getOpenTrigger();\r\n\t\tconst $close = this._getCloseTrigger();\r\n\t\tconst $wrapper = $(`.${classes.wrapper}`, $ctx);\r\n\r\n\t\t$open.off('click.MobileNavigationLink');\r\n\t\t$close.off('click.MobileNavigationLink');\r\n\t\t$ctx.off('click.MobileNavigationLink');\r\n\t\t$wrapper.off('click.MobileNavigationLink');\r\n\t}\r\n\r\n\t/**\r\n\t * return all layers\r\n\t */\r\n\t_getLayers() {\r\n\t\treturn $(this._ctx).find(`.${classes.layer}`);\r\n\t}\r\n\r\n\t/**\r\n\t * return current layer depending on the call-to-action of trigger elm.\r\n\t * @param trigger: jquery object\r\n\t * @param cta: 'close' / 'open', default= 'open'\r\n\t * @return currentLayer: jquery object\r\n\t */\r\n\t_getCurrentLayer(trigger: any, cta?: string) {\r\n\t\tlet result = cta === 'close' ? $(trigger).closest(`.${classes.layer}`) : $(trigger).next(`.${classes.layer}`);\r\n\t\t// fallback => check, if no layer was found, then check if the layer is inside the trigger element\r\n\t\tif (result.length === 0) {\r\n\t\t\tresult = $(trigger).find(`.${classes.layer}`);\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\t_getParentsLayer(trigger: any, cta?: string) {\r\n\t\tconst $layer = this._getCurrentLayer(trigger, cta);\r\n\t\treturn $layer.parents(`.${classes.layer}`);\r\n\t}\r\n\t_getChildrenLayer(trigger: any, cta?: string) {\r\n\t\tconst $layer = this._getCurrentLayer(trigger, cta);\r\n\t\treturn $layer.next(`.${classes.layer}`);\r\n\t}\r\n\r\n\t/**\r\n\t * get the level data of an given jquery elm 'elm'\r\n\t * @return level: jquery object\r\n\t */\r\n\t_getLevel(elm: JQuery): number {\r\n\t\tconst level = $(elm).data('level');\r\n\t\treturn typeof level !== 'number' ? parseInt(level, 10) : level;\r\n\t}\r\n\r\n\tonClickOpenSubnavigation(ev: any) {\r\n\t\tev.preventDefault();\r\n\t\tev.stopImmediatePropagation();\r\n\t\t// close all layers but parents\r\n\t\tthis.openLayer(this._getLayers().not(this._getParentsLayer(ev.currentTarget)), false);\r\n\t\t// toggle active Item class\r\n\t\tthis._getOpenTrigger()\r\n\t\t\t.parent()\r\n\t\t\t.not($(ev.currentTarget).parents())\r\n\t\t\t.removeClass(classes.stateItemActive);\r\n\t\t$(ev.currentTarget)\r\n\t\t\t.parent()\r\n\t\t\t.addClass(classes.stateItemActive);\r\n\r\n\t\t// open current layer\r\n\t\tthis.openLayer(this._getCurrentLayer(ev.currentTarget), true);\r\n\r\n\t\t// update navigation level\r\n\t\tconst nr = this._getLevel(this._getCurrentLayer(ev.currentTarget));\r\n\t\tupdateNavLevel(nr);\r\n\t}\r\n\r\n\tonClickCloseSubnavigation(ev: Event) {\r\n\t\tev.preventDefault();\r\n\t\tev.stopImmediatePropagation();\r\n\t\t// close current layer and children\r\n\t\tconst $currentLayer = this._getCurrentLayer(ev.currentTarget, 'close');\r\n\t\t$currentLayer.find(`> .${classes.openLevel}`).removeClass(classes.stateItemActive);\r\n\t\tthis.openLayer($currentLayer.add(this._getChildrenLayer(ev.currentTarget, 'close')), false);\r\n\r\n\t\t// update navigation level\r\n\t\tconst nr = this._getLevel(this._getCurrentLayer(ev.currentTarget, 'close')) - 1;\r\n\t\tupdateNavLevel(nr);\r\n\t}\r\n\r\n\t/**\r\n\t * Toggle Subnavigation Layer\r\n\t */\r\n\topenLayer($layer: JQuery, show: boolean) {\r\n\t\t$layer.toggleClass(classes.stateOpen, show);\r\n\t\tif ($layer.hasClass(classes.stateOpen)) {\r\n\t\t\t$layer.find('*').each((index: number, element: HTMLElement) => {\r\n\t\t\t\telement.scrollTop = 0;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Close all Navigation Layers\r\n\t */\r\n\tcloseNavigation() {\r\n\t\tupdateNavLevel();\r\n\t\tremoveBodyState(classes.stateBurgerNav);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\tcountdown: \"js-m-new-event__countdown-time\",\r\n\tactiveDays: \"state-m-new-event__show-days\",\r\n\teventDescription: \"js-m-new-event__description\",\r\n\teventItem: 'm-new-event__item',\r\n};\r\n\r\n@createModule('NewEvent')\r\n/**\r\n * NewEvent module implementation.\r\n *\r\n */\r\nexport class NewEvent extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.initCountdown();\r\n\t\tthis.eventDescriptionEllipsis();\r\n\t\tthis.onDownLoadCalendar();\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() { }\r\n\r\n\tinitCountdown() {\r\n\t\tconst $countdown = this.$ctx.find(`.${classes.countdown}`);\r\n\t\tconst totalseconds = parseInt($countdown.data('second'));\r\n\t\tif (totalseconds > 86400) {\r\n\t\t\t$countdown.text(Math.floor(totalseconds / 24 / 3600));\r\n\t\t\t$countdown.addClass(classes.activeDays)\r\n\t\t} else {\r\n\t\t\tvar me = this;\r\n\t\t\tsetInterval(function () {\r\n\t\t\t\tme.calculator();\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t}\r\n\r\n\tcalculator() {\r\n\t\tconst $countdown = this.$ctx.find(`.${classes.countdown}`);\r\n\t\tconst totalseconds = parseInt($countdown.data('second'));\r\n\t\tconst nextseconds = totalseconds - 1;\r\n\t\tconst h = Math.floor(nextseconds / 3600) < 10 ? '0' + Math.floor(nextseconds / 3600) : Math.floor(nextseconds / 3600);\r\n\t\tconst m = Math.floor((nextseconds / 60 % 60)) < 10 ? '0' + Math.floor((nextseconds / 60 % 60)) : Math.floor((nextseconds / 60 % 60));\r\n\t\tconst s = Math.floor((nextseconds % 60)) < 10 ? '0' + Math.floor((nextseconds % 60)) : Math.floor((nextseconds % 60));\r\n\t\t$countdown.data('second', nextseconds);\r\n\t\t$countdown.text(h + \":\" + m + \":\" + s);\r\n\t}\r\n\r\n\teventDescriptionEllipsis() {\r\n\t\tconst $eventDescription = this.$ctx.find(`.${classes.eventDescription}`);\r\n\t\tif ($eventDescription.text().length > 267) {\r\n\t\t\t$eventDescription.text($eventDescription.text().substring(0, 267) + \"...\");\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onDownLoadCalendar()\r\n {\r\n $(document).off(\"click\").on(\"click\",\".js-a-download\", function () {\r\n\t\t\tvar calendarResult = $(this).attr(\"data-calendarresult\");\r\n\t\t\tif (calendarResult != undefined) {\r\n\t\t\t\tif (calendarResult.length > 0) {\r\n\r\n\t\t\t\t\twindow.open( \"data:text/calendar;charset=utf8,\" +calendarResult);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"calendarResult: calendarResult is empty\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log(\"calendarResult: calendarResult is undefined\");\r\n\t\t\t}\r\n\r\n\t\t});\r\n }\r\n\tRegisteredUpdate() {\r\n\t\tconst $eventItems = this.$ctx.find(`.${classes.eventItem}`);\r\n\t\tif(Track.isKnownMarketoLead()) {\r\n\t\t\t$eventItems.each((i,e) => {\r\n\t\t\t\tconst $event = $(e).children();\r\n\t\t\t\tconst classList = $event.attr('class');\r\n\t\t\t\tconst className = classList.split(' ');\r\n\t\t\t\t$event.removeClass(className[0] + '--locked');\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('OrderingPlatform')\r\n/**\r\n * ordering-platform module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class OrderingPlatform extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { PublicEvents, triggerPublicEvent } from '@project/shared/utils/events/js/events';\r\nimport * as copy from 'copy-to-clipboard';\r\n\r\nconst jsClass = 'js-m-page-share__anchor';\r\n\r\n@createModule('PageShare')\r\n/**\r\n * ListIcons Component\r\n * @constructor\r\n */\r\nexport class PageShare extends TerrificSpec {\r\n\t// eslint-disable-next-line no-undef\r\n\tclipboardAnchor: HTMLElement;\r\n\r\n\t/**\r\n\t * Start / Init Nitro lifecycle hook\r\n\t * @param {function} resolve Required parameter for start lifecycle\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function): void {\r\n\t\tresolve();\r\n\r\n\t\tthis.setClipboardAnchorBtn();\r\n\r\n\t\tif (this.isClipboardAnchorBtn()) {\r\n\t\t\tthis.clipboardAnchor.addEventListener('click', () => this.copyURLToClipboard());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * set clipboard anchor context reference\r\n\t * @returns {void}\r\n\t */\r\n\tsetClipboardAnchorBtn() {\r\n\t\tthis.clipboardAnchor = this._ctx.querySelectorAll('.m-icon-hyperlink')[0].parentNode;\r\n\t}\r\n\r\n\t/**\r\n\t * Copies the URL (location.href) into the browser clipboard\r\n\t * @constructor {function}\r\n\t * @returns {void}\r\n\t */\r\n\tcopyURLToClipboard(): void {\r\n\t\tconst opts: any = this.getClipboardOpts();\r\n\t\tconst data = this.getLocationHref();\r\n\r\n\t\tthis.showDebugInfo(opts, data);\r\n\t\tthis.showFeedbackMsg();\r\n\t\tcopy(data, opts);\r\n\t\tthis.hideFeedbackMsgTimer();\r\n\t}\r\n\r\n\t/**\r\n\t * getClipboardOpts\r\n\t * @constructor {function} getClipboardOpts\r\n\t * @returns {Object} any\r\n\t */\r\n\tgetClipboardOpts(): any {\r\n\t\treturn {\r\n\t\t\tdebug: false,\r\n\t\t\tmessage: 'Press #{⌘+C} on macOS or #{Ctrl+C} on Windows to copy',\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * getLocationHref\r\n\t * @constructor {function} getLocationHref\r\n\t * @returns {string} string\r\n\t */\r\n\tgetLocationHref(): string {\r\n\t\treturn document.location.href;\r\n\t}\r\n\r\n\t/**\r\n\t * showDebugInfo - Description\r\n\t * @constructor {function} showDebugInfo\r\n\t * @param {Object} opts holds thze options for the clipboard object\r\n\t * @param {string} data holds the data to be copied into the clipboard\r\n\t */\r\n\tshowDebugInfo(opts: any, data: string) {\r\n\t\tif (opts.debug) {\r\n\t\t\t// eslint-disable-next-line no-console\r\n\t\t\tconsole.log('Copied to clipboard: ', data);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * showFeedbackMsg\r\n\t * @constructor {function} showFeedbackMsg\r\n\t */\r\n\tshowFeedbackMsg() {\r\n\t\tconst ctx: HTMLElement = this._ctx;\r\n\t\tctx.previousElementSibling.classList.remove('show');\r\n\t\tctx.previousElementSibling.classList.add('show');\r\n\t}\r\n\r\n\t/**\r\n\t * hideFeedbackMsg\r\n\t * @constructor {function} hideFeedbackMsg\r\n\t */\r\n\thideFeedbackMsg() {\r\n\t\tconst ctx: HTMLElement = this._ctx;\r\n\t\tctx.previousElementSibling.classList.remove('show');\r\n\t}\r\n\r\n\t/**\r\n\t * showFeedbackMsg\r\n\t * @constructor {function} showFeedbackMsg\r\n\t */\r\n\thideFeedbackMsgTimer() {\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tthis.hideFeedbackMsg();\r\n\t\t}, 3500);\r\n\t}\r\n\r\n\t/**\r\n\t * back-to-top button should contain the 'm-page-share' css class that comes from the button modifier 'top'\r\n\t * to separate its click event\r\n\t * @returns {boolean} boolean\r\n\t */\r\n\tisClipboardAnchorBtn(): boolean {\r\n\t\treturn this.clipboardAnchor.classList.contains(jsClass);\r\n\t}\r\n\r\n\t/**\r\n\t * stop/destroy Nitro lifecycle hook\r\n\t * @returns {void}\r\n\t */\r\n\tstop(): void {\r\n\t\tif (this.isClipboardAnchorBtn()) {\r\n\t\t\tthis._ctx.removeEventListener('click', () => {});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Nitro triggerPublicEvent\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerChangeEvent(): void {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n\r\nexport default PageShare;\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as ProductCompareHelper from '@project/shared/utils/product-compare/js/product-compare';\r\n\r\nconst classes = {\r\n\tbutton: 'js-m-product-compare-button__button',\r\n\taddedState: 'state-m-product-compare-button--added',\r\n};\r\n\r\n@createModule('ProductCompareButton')\r\n/**\r\n * product-compare-button module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class ProductCompareButton extends TerrificSpec {\r\n\tadded: boolean = false;\r\n\tproductId: string;\r\n\tproductName: string;\r\n\tmarket: string;\r\n\taddText: string;\r\n\tremoveText: string;\r\n\t$ctx: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.addText = this.$ctx.data('add-text');\r\n\t\tthis.removeText = this.$ctx.data('remove-text');\r\n\t\tthis.productId = this.$ctx.data('product-id');\r\n\t\tthis.productName = this.$ctx.data('product-name');\r\n\t\tthis.market = this.$ctx.data('market');\r\n\t\tconst $button = this.$ctx.find(`.${classes.button}`);\r\n\t\t$button.on('click', this.onButtonClick.bind(this));\r\n\r\n\t\t// the follow event is subscribe the action from compare popup.\r\n\t\tthis.$ctx.on('onCompareProductListItemChangeEvent', (e: any, id: string) => {\r\n\t\t\tif (this.productId === id && this.added) {\r\n\t\t\t\tthis.changeCompareProductItemState();\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.initButtonState();\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * method sets initial buttons states from cookievalues\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tinitButtonState() {\r\n\t\tif (ProductCompareHelper.isProductInCookie(this.productId)) {\r\n\t\t\tthis.added = true;\r\n\t\t\tthis.setButtonState();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method updates button text according to state\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tsetButtonState() {\r\n\t\tthis.$ctx.toggleClass(classes.addedState, this.added);\r\n\t\tconst $button = this.$ctx.find(`.${classes.button}`);\r\n\t\t$button.text(this.added ? this.removeText : this.addText);\r\n\t}\r\n\t/**\r\n\t * method handles button click and updates Cookie accordingly\r\n\t *\r\n\t * @param {Object} ev eventObject\r\n\t * @returns {void}\r\n\t */\r\n\tonButtonClick(ev: Event) {\r\n\t\tev.preventDefault();\r\n\t\tthis.changeCompareProductItemState();\r\n\t}\r\n\r\n\t/**\r\n\t * change compare item state\r\n\t *\r\n\t * @param {Object} ev eventObject\r\n\t * @returns {void}\r\n\t */\r\n\tchangeCompareProductItemState() {\r\n\t\tthis.added = !this.added;\r\n\t\tthis.setButtonState();\r\n\t\tthis.updateCookieState();\r\n\t}\r\n\r\n\t/**\r\n\t * method updates cookie state\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tupdateCookieState() {\r\n\t\tif (this.added) {\r\n\t\t\tProductCompareHelper.addProduct(this.productId, this.market, this.productName);\r\n\t\t} else {\r\n\t\t\tProductCompareHelper.removeProduct(this.productId);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as ProductCompareHelper from '@project/shared/utils/product-compare/js/product-compare';\r\nimport {IProductCompareItem} from \"@covestro/models\";\r\n\r\nconst classes = {\r\n\theading: 'm-product-compare-layer__heading',\r\n\tquantity: 'm-product-compare-layer__number',\r\n\tswitch: 'm-product-compare-layer__switch',\r\n\tproduct: 'm-product-compare-layer__product',\r\n\tcloseButton: 'js-m-product-compare-layer__close',\r\n\tdeleteButton: 'm-product-compare-layer__delete',\r\n\tactiveClass: 'state-m-product-compare-layer--active',\r\n\tcollapseClass: 'state-m-product-compare-layer--open',\r\n\tcompareList: 'm-product-compare-layer__list',\r\n\tpreloader: '.m-product-compare-layer__product .a-loading-indicator',\r\n};\r\n\r\n@createModule('ProductCompareLayer')\r\n/**\r\n * product-compare-layer module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class ProductCompareLayer extends TerrificSpec {\r\n\toneItemText: string;\r\n\tmultiItemText: string;\r\n\tcompareProductList: IProductCompareItem[]; // define the varaiable.\r\n\t$ctx: JQuery;\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.oneItemText = this.$ctx.data('one-item-text');\r\n\t\tthis.multiItemText = this.$ctx.data('multi-item-text');\r\n\t\tthis.$ctx.on('hideLayer', this.hideLayer.bind(this));\r\n\t\tthis.$ctx.on('showLayer', (e: any, count: number) => {\r\n\t\t\tthis.showLayer(count);\r\n\t\t});\r\n\r\n\t\tthis.compareProductList = []; // the data for pop list.\r\n\r\n\t\t// to monitor the add action from product finder list, to receive the name id market from this event.\r\n\t\tthis.$ctx.on('addNewProductLayer', (e: any, product: IProductCompareItem) => {\r\n\t\t\tthis.addNewCompareProductItem(product);\r\n\t\t});\r\n\r\n\t\t// to monitor the remove action from product finder list, to receive the name id market from this event.\r\n\t\tthis.$ctx.on('removeNewProductLayer', (e: any, id: string) => {\r\n\t\t\tthis.removeNewCompareProductItem(id);\r\n\t\t});\r\n\r\n\t\tthis.$ctx.find(`.${classes.closeButton}`).on('click', this.onCloseClick.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.switch}`).on('click', this.onSwitchClick.bind(this));\r\n\t\t// this.$ctx.find(`.${classes.deleteButton}`).on('click', this.onRemoveClick.bind(this)); // empty action, so comment it.\r\n\t\tthis.$ctx.find(classes.preloader).hide(); // to hide the loading when initial\r\n\t\tProductCompareHelper.updateLayer();\r\n\t\tthis.fetchCompareProductNameFromService(); // to fetch the name data from service when initial.\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * to get the the product name data from server when the page initial\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tfetchCompareProductNameFromService() {\r\n\t\tconst compareData = ProductCompareHelper.getCookieData();\r\n\t\t// if the cookie data exist, will get the name from service.\r\n\t\tif (compareData.length > 0 ) {\r\n\t\t\tthis.fetchProductCompareData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method is triggered on close click\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonCloseClick() {\r\n\t\tthis.hideLayer();\r\n\t}\r\n\r\n\t/**\r\n\t * method hides compare layer\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thideLayer() {\r\n\t\tthis.$ctx.removeClass(classes.activeClass);\r\n\t\tProductCompareHelper.setLayerHiddenCookie();\r\n\t\tthis.$ctx.removeClass(classes.collapseClass);\r\n\t}\r\n\r\n\t/**\r\n\t * method shows compare layer\r\n\t *\r\n\t * @param {number} count count of products in compare\r\n\t * @returns {void}\r\n\t */\r\n\tshowLayer(count: number) {\r\n\t\tlet text = this.oneItemText;\r\n\t\tif (count > 1) {\r\n\t\t\ttext = this.multiItemText.replace('{0}', `${count}`);\r\n\t\t}\r\n\t\tconst $statusText = this.$ctx.find(`.${classes.quantity}`);\r\n\t\t$statusText.text(text);\r\n\t\tthis.$ctx.addClass(classes.activeClass);\r\n\t}\r\n\r\n\t/**\r\n\t * to execute the request action by ajax.\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tfetchProductCompareData(){\r\n\t\tconst serviceUrl = this.$ctx.data('layer-compare-service');\r\n\t\tif (serviceUrl) {\r\n\t\t\tthis.$ctx.find(classes.preloader).show();\r\n\t\t\t$.ajax({\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\turl: serviceUrl,\r\n\t\t\t\tsuccess: this.onProductCompareDataSuccess.bind(this),\r\n\t\t\t\terror: () => {\r\n\t\t\t\t\tthis.$ctx.find(classes.preloader).hide();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * handle response data from service.\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonProductCompareDataSuccess(data: any) {\r\n\t\tthis.$ctx.find(classes.preloader).hide();\r\n\t\tif (data && data.length > 0) {\r\n\t\t\tthis.compareProductList = [];\r\n\t\t\tconst compareData = ProductCompareHelper.getCookieData();\r\n\t\t\tcompareData && compareData.forEach((item: any) => {\r\n\t\t\t\tconst responseItem:IProductCompareItem = data.find( (dataItem: any)=> dataItem.number === item.number);\r\n\t\t\t\tif (responseItem) {\r\n\t\t\t\t\tthis.compareProductList.push({number: responseItem.number, market: '', name: responseItem.name });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.handleCompareResult(this.compareProductList);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * render the compare item from list.\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thandleCompareResult(compareProductList: IProductCompareItem[]) {\r\n\t\tconst $selectElement = this.$ctx.find(`.${classes.compareList}`);\r\n\t\t$selectElement.empty();\r\n\t\tfor (let compareItem of compareProductList) {\r\n\t\t\t$selectElement.append(`
  • \r\n\t\t\t\t\t\t\t\t\t\t${compareItem.name}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
  • `);\r\n\t\t\t$selectElement.on('click', 'li a', (event: any) => {\r\n\t\t\t\tconst productId = $(event.target).attr(\"id\");\r\n\t\t\t\tthis.removeNewCompareProductItem(productId);\r\n\t\t\t\tProductCompareHelper.removeProduct(productId); // to remove local data from cookies and update the layer count, remove action will check if the item exists.\r\n\t\t\t\tProductCompareHelper.removeCompareProductLayerFromFinderList(productId); // to notify the change if it is in product list page now.\r\n\t\t\t\tProductCompareHelper.updateLayer(); // update layer\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * remove new compare product item in list\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tremoveNewCompareProductItem(id: string) {\r\n\t\tconst index = this.compareProductList.findIndex( (item) => item.number === id);\r\n\t\tif (index > -1) {\r\n\t\t\tthis.compareProductList.splice(index, 1);\r\n\t\t\tthis.handleCompareResult(this.compareProductList);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * add new compare product item in list\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\taddNewCompareProductItem(product:IProductCompareItem) {\r\n\t\tthis.compareProductList.push(product);\r\n\t\tthis.handleCompareResult(this.compareProductList);\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\t\r\n\r\n\t/**\r\n\t * method hides compare layer\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonSwitchClick() {\r\n\t\tthis.$ctx.toggleClass(classes.collapseClass);\r\n\t}\r\n\r\n\t/**\r\n\t * method remove compare item\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t// onRemoveClick() {\r\n\t//\r\n\t// }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n/**\r\n * product-finder-teaser module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nconst classes = {\r\n\tmaterialSelect: 'js-m-product-finder-teaser__select-material',\r\n\tcountrySelect: 'js-m-product-finder-teaser__select-marketswitch',\r\n\tlink: 'js-m-product-finder-teaser__link',\r\n};\r\n\r\n@createModule('ProductFinderTeaser')\r\nexport class ProductFinderTeaser extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tdata: any;\r\n\t$form: JQuery;\r\n\t$link: JQuery;\r\n\t$paramValues: any;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.data = this.$ctx.data();\r\n\t\tthis.$form = $('.js-m-product-finder-teaser__form', this.$ctx);\r\n\t\tthis.$link = $(`.${classes.link}`, this._ctx);\r\n\r\n\t\tthis.$ctx.on('FilterTwoLevelMultiCheckboxChanged', this.adjustLinkUrl.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.link}`).on(\"click\", this.onButtonSubmitTeaser.bind(this));\r\n\r\n\t\tthis.adjustLinkUrl();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tadjustLinkUrl() {\r\n\t\tconst separator = this.data.filterseperator || ':';\r\n\t\tconst sortingParam = this.data.sortingparam ? separator + this.data.sortingparam : '';\r\n\t\tconst countryParam = separator + this.data.countryparam + separator + this.data.marketparam;\r\n\r\n\t\tconst serializedData = this.$form\r\n\t\t\t.serializeArray()\r\n\t\t\t.filter((e) => {\r\n\t\t\t\treturn e.value !== '';\r\n\t\t\t})\r\n\t\t\t.map((e) => {\r\n\t\t\t\treturn encodeURIComponent(e.value);\r\n\t\t\t});\r\n\t\tlet materialAndIndustryParams = '';\r\n\r\n\t\tif (serializedData.length) {\r\n\t\t\tmaterialAndIndustryParams = separator + serializedData.join(separator);\r\n\t\t}\r\n\r\n\t\tconst allParams = sortingParam + countryParam + materialAndIndustryParams;\r\n\t\tconst newLinkUrl = this.data.baseurl + '/?' + this.data.queryparam + '=' + allParams;\r\n\r\n\t\tthis.$paramValues = allParams;\r\n\t\tthis.$link.attr('href', newLinkUrl);\r\n\t}\r\n\r\n\tonButtonSubmitTeaser() {\r\n\t\tlocalStorage.setItem(\"productFinderTeaserQueryParams\", JSON.stringify(this.$paramValues));\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { classes as multiClasses } from '../../event-list/js/event-list';\r\n/**\r\n * product-finder-teaser module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\n\r\nconst classes = {\r\n\tfilter: 'm-product-finder-teaser-V2__filterwrapper',\r\n\tfilterTag: 'm-product-finder-teaser-V2__filter-tag',\r\n\tfilterTags: 'm-product-finder-teaser-V2__filter-tags',\r\n\tfilterTagContainer: 'm-product-finder-teaser-V2__filter-tags-container',\r\n\tmaterialSelect: 'js-m-product-finder-teaser-V2__select-material',\r\n\tcountrySelect: 'js-m-product-finder-teaser-V2__select-marketswitch',\r\n\tlink: 'js-m-product-finder-teaser__link',\r\n\tlabelText: 'm-product-finder-teaser-V2__filter-tag-text',\r\n\tselectorTag: 'm-filter-two-level-multiselect__layer-level3',\r\n\tfilterSelect: 'm-product-finder-teaser-V2__filter',\r\n\tbottomSection: 'm-product-finder-teaser-V2__bottom',\r\n\tclearFilterBtn: 'm-product-finder-teaser-V2__clear-filter'\r\n};\r\n\r\n@createModule('ProductFinderTeaserV2')\r\nexport class ProductFinderTeaser extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tdata: any;\r\n\t$form: JQuery;\r\n\t$link: JQuery;\r\n\t$paramValues: any;\r\n\t$hiddenFieldTest: JQuery;\r\n\t$hiddenFieldValues: JQuery;\r\n\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.data = this.$ctx.data();\r\n\t\tthis.$form = $('.js-m-product-finder-teaser-V2__form', this.$ctx);\r\n\t\tthis.$link = $(`.${classes.link}`, this._ctx);\r\n\t\tthis.$hiddenFieldTest = $('#hiddenLinkTestValues');\r\n\t\tthis.$hiddenFieldValues = $('#hiddenLinkValues');\r\n\t\tthis.$ctx.on('FilterTwoLevelMultiCheckboxChanged', this.adjustLinkUrl.bind(this));\r\n\t\tthis.adjustLinkUrl();\r\n\t\tthis.$ctx.find(`.${classes.selectorTag}`).on('click', this.showFilters.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.clearFilterBtn}`).on(\"click\", this.clearAllFilters.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.link}`).on(\"click\", this.onButtonSubmit.bind(this));\r\n\t\tresolve();\r\n\t}\r\n\r\n\tshowFilters(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tconst checkboxes = this.$ctx.find(\"input:checked\");\r\n\t\tconst tagsContainer = this.$ctx.find(`.${classes.filterTagContainer}`);\r\n\t\ttagsContainer.empty();\r\n\t\tif (checkboxes.length > 0) {\r\n\t\t\tfor (let i = 0; i < checkboxes.length; i++) {\r\n\t\t\t\tconst checkbox = checkboxes.eq(i);\r\n\t\t\t\tconst id = checkbox.attr('id');\r\n\t\t\t\tconst label = this.$ctx.find(\"label[for='\" + id + \"']\");\r\n\t\t\t\tconst o = \"
    \" + label.text() + \"
    \";\r\n\t\t\t\ttagsContainer.append(o);\r\n\t\t\t}\r\n\t\t\tthis.$ctx.find(`.${classes.filterTag}`).on('click', this.onCloseFilter.bind(this));\r\n\t\t\tthis.$ctx.find(`.${classes.filterTags}`).show();\r\n\t\t\tthis.$ctx.find(`.${classes.bottomSection}`).show();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.clearAllFilters();\r\n\t\t}\r\n\t}\r\n\r\n\tonCloseFilter(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\t$(event.currentTarget).remove();\r\n\t\tconst text = $(event.currentTarget).text();\r\n\t\tconst checkboxes = this.$ctx.find(\"input:checked\");\r\n\r\n\t\tfor (let i = 0; i < checkboxes.length; i++) {\r\n\t\t\tconst checkbox = checkboxes.eq(i);\r\n\t\t\tconst id = checkbox.attr('id'); // get the id\r\n\t\t\tconst label = this.$ctx.find(\"label[for='\" + id + \"']\"); // look for matching label\r\n\t\t\tif (label.text() == text) {\r\n\t\t\t\tlabel.prev().prop('checked', false);\r\n\t\t\t\tif (checkboxes.length == 1) {\r\n\t\t\t\t\tthis.clearAllFilters();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tthis.$ctx.find(`.${multiClasses.twoLevelList}`).removeClass(multiClasses.twoLevelListOpen);\r\n\t\tthis.$ctx.find(`.${multiClasses.oneLevelList}`).removeClass(multiClasses.oneLevelListOpen);\r\n\t}\r\n\r\n\tclearAllFilters() {\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(\"input\").prop('checked', false);\r\n\t\tthis.$ctx.find(`.${classes.bottomSection}`).hide();\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${multiClasses.twoLevelMainChecked}`)\r\n\t\t\t.removeClass(`${multiClasses.twoLevelMainChecked}`);\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${multiClasses.twoLevelParentChecked}`)\r\n\t\t\t.removeClass(`${multiClasses.twoLevelParentChecked}`);\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${multiClasses.oneLevelMainChecked}`)\r\n\t\t\t.removeClass(`${multiClasses.oneLevelMainChecked}`);\r\n\t\tthis.$ctx.find(`.${classes.filterTagContainer}`).empty();\r\n\t\tthis.$ctx.find(`.${classes.filterTags}`).hide();\r\n\t\tthis.$ctx.find(`.${multiClasses.teaserContainer}`).empty();\r\n\t}\r\n\r\n\tadjustLinkUrl() {\r\n\t\tconst separator = this.data.filterseperator || ':';\r\n\t\tconst sortingParam = this.data.sortingparam ? separator + this.data.sortingparam : '';\r\n\t\tconst countryParam = separator + this.data.countryparam + separator + this.data.marketparam;\r\n\r\n\t\tconst serializedData = this.$form\r\n\t\t\t.serializeArray()\r\n\t\t\t.filter((e) => {\r\n\t\t\t\treturn e.value !== '';\r\n\t\t\t})\r\n\t\t\t.map((e) => {\r\n\t\t\t\treturn encodeURIComponent(e.value);\r\n\t\t\t});\r\n\t\tlet materialAndIndustryParams = '';\r\n\r\n\t\tif (serializedData.length) {\r\n\t\t\tmaterialAndIndustryParams = separator + serializedData.join(separator);\r\n\t\t}\r\n\r\n\t\tconst allParams = sortingParam + countryParam + materialAndIndustryParams;\r\n\t\tconst newLinkUrl = this.data.baseurl;\r\n\r\n\t\tthis.$paramValues = allParams;\r\n\t\tthis.$link.attr('href', newLinkUrl);\r\n\r\n\t}\r\n\r\n\tonButtonSubmit() {\r\n\t\tlocalStorage.setItem(\"productFinderTeaserQueryParams\", JSON.stringify(this.$paramValues));\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('ProductList')\r\n/**\r\n * product-list module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class ProductList extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('ProductTable')\r\n/**\r\n * product-table module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class ProductTable extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tcloseButton: 'js-m-prompt-box__close',\r\n\tstatePromptHide: 'state-m-prompt-box--hidden',\r\n};\r\n\r\n@createModule('PromptBox')\r\n/**\r\n * prompt-box\r\n */\r\nexport class PromptBox extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$closeButton: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$closeButton = $(`.${classes.closeButton}`, this.$ctx);\r\n\r\n\t\tthis.$closeButton.on('click', this.hidePrompt.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\thidePrompt() {\r\n\t\t$(this._ctx).addClass(classes.statePromptHide);\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\nimport { formatLabel } from '@project/shared/utils/labels/js/labels';\r\n\r\n// @ts-ignore\r\nimport * as IScroll from 'iscroll';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst classes = {\r\n\tscroller: 'js-m-slider-gallery__scroller',\r\n\tlist: 'js-m-slider-gallery__list',\r\n\titem: 'js-m-slider-gallery__item',\r\n\tdotButton: 'js-m-slider-gallery__dot-button',\r\n\tdot: 'js-m-slider-gallery__dot',\r\n\tactiveDot: 'state-m-slider-gallery--dot-is-active',\r\n\tsliderPages: 'js-m-slider-gallery__pages',\r\n\tsliderNavigation: 'js-m-slider-gallery__navigation',\r\n\tshowNumber: 'state-m-slider-gallery__show-number',\r\n\tshowArrow: 'state-m-slider-gallery--arrow-is-shown',\r\n\tarrowLeft: 'js-m-slider-gallery__arrow--left',\r\n\tarrowRight: 'js-m-slider-gallery__arrow--right',\r\n\tmetaNaviFlyout: 'js-m-navigation-meta__flyout',\r\n\tjsCaseStudyGallery: 'js-slider-gallery--case-studies',\r\n\tlink: 'js-m-slider-gallery__item-link',\r\n\tisInitialized: 'state-m-slider-gallery--is-initialized',\r\n\tvideosContainer: 'js-m-slider-gallery__list',\r\n\tvideosContainerListItem: 'js-m-slider-gallery__item',\r\n\tvideoElement: 'js-a-video__element',\r\n\tcampaignTeaserArea: 'js-m-slider-gallery__campaign-tease',\r\n};\r\n\r\n/**\r\n * Recommended settings for typeOnStopWhenSkippingSlide: \"pause\" or \"stop\" when skipping slides\r\n * @type {string}\r\n */\r\nconst videoCfg = {\r\n\ttypeOnStopWhenSkippingSlide: 'pause',\r\n\ttargetId: 'video-id',\r\n};\r\n\r\n@createModule('SliderGallery')\r\n/**\r\n * Breadcrumb module implementation.\r\n *\r\n * @author Christoph Merkelbach \r\n */\r\nexport class SliderGallery extends TerrificSpec {\r\n\tsliderGalleryScroller: IScroll;\r\n\t$ctx: JQuery;\r\n\t$dots: JQuery;\r\n\t$sliderPages: JQuery;\r\n\t$sliderNavigation: JQuery;\r\n\t$campaignTeaserArea: JQuery;\r\n\t$arrowLeft: JQuery;\r\n\t$arrowRight: JQuery;\r\n\t$scroller: JQuery;\r\n\t$items: JQuery;\r\n\t$list: JQuery;\r\n\t$imagesAndVideos: JQuery;\r\n\t$dotContainers: JQuery;\r\n\t$links: JQuery;\r\n\titemMargin: number;\r\n\tnumberOfItemsPerPageBeforeViewportChanged: number;\r\n\tactiveItemBeforeViewportChanged: number;\r\n\tsliderIsScrolling: boolean;\r\n\titemsPerPage: Array;\r\n\tisMobileSlider: boolean;\r\n\t_sliderPageIndex: number;\r\n\t_showDotsSlider: number;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.initVars();\r\n\r\n\t\t// make sure margin of all bullets except the last one is set to known value in the javascript\r\n\t\tthis.$items.not(':last-child').css('margin-right', `${this.itemMargin}px`);\r\n\r\n\t\tif (this.$items.length > this._showDotsSlider) {\r\n\t\t\tthis.$sliderNavigation.addClass(classes.showNumber);\r\n\t\t}\r\n\r\n\t\tthis.addDataItemAttribute();\r\n\r\n\t\tthis.initScroller();\r\n\t\tonBreakpointChange(() => {\r\n\t\t\tthis.reinitScrollerWhenViewportChangedToOrFromSmall();\r\n\t\t});\r\n\r\n\t\t// do the positioning and sizing again, when window is resized\r\n\t\t$(window).on('resize.SliderGalleryAdjustPageWidth', () => {\r\n\t\t\tthis.handleSizeAndPosition();\r\n\t\t});\r\n\r\n\t\tif (this.$items.first().hasClass('m-slider-gallery__video-item')) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar interval = setInterval(function () {\r\n\t\t\t\tme.handleSizeAndPosition();\r\n\t\t\t\tif (me.$list.height() > 140) {\r\n\t\t\t\t\tclearInterval(interval)\r\n\t\t\t\t}\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\r\n\t\t$(document).ready(function () {\r\n\t\t\t$(\".m-slider-gallery__tease-headline__descriptiontext\").each(function (i) {\r\n\t\t\t\tvar len = $(this).text().trim().length;\r\n\t\t\t\tif (len > 60) {\r\n\t\t\t\t\t$(this).text($(this).text().substr(0, 60));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.handleVideoImageLoading();\r\n\t\tthis.handleSizeAndPosition();\r\n\t\tthis.handleCampaignTeaserClick();\r\n\t\tthis.initNavigationArrows();\r\n\t\tthis.setActiveDot(0);\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\taddDataItemAttribute() {\r\n\t\tthis.$ctx.find('li.js-m-slider-gallery__item').each((index: number, elem: HTMLElement) => {\r\n\t\t\t$(elem).attr('data-item', index);\r\n\t\t});\r\n\t}\r\n\r\n\tinitVars() {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$arrowLeft = $(`.${classes.arrowLeft}`, this.$ctx);\r\n\t\tthis.$arrowRight = $(`.${classes.arrowRight}`, this.$ctx);\r\n\t\tthis.$scroller = $(`.${classes.scroller}`, this.$ctx);\r\n\t\tthis.$items = $(`.${classes.item}`, this.$ctx);\r\n\t\tthis.$imagesAndVideos = $('img, video', this.$ctx);\r\n\t\tthis.$list = $(`.${classes.list}`, this.$ctx);\r\n\t\tthis.$links = $(`.${classes.link}`, this.$ctx);\r\n\t\tthis.$dotContainers = $(`.${classes.dot}`, this.$ctx);\r\n\t\tthis.$dots = $(`.${classes.dotButton}`, this.$ctx);\r\n\t\tthis.$sliderPages = $(`.${classes.sliderPages}`, this.$ctx);\r\n\t\tthis.$sliderNavigation = $(`.${classes.sliderNavigation}`, this.$ctx);\r\n\t\tthis.$campaignTeaserArea = $(`.${classes.campaignTeaserArea}`, this.$ctx);\r\n\t\tthis.itemsPerPage = this.getItemsPerPageConfig();\r\n\t\tthis.numberOfItemsPerPageBeforeViewportChanged = this.getNumberOfItemsPerPage();\r\n\t\tthis.itemMargin = 16;\r\n\t\tif (this.$ctx.hasClass('m-slider-gallery--campaign')) {\r\n\t\t\tthis.itemMargin = 20;\r\n\t\t}\r\n\t\tthis.activeItemBeforeViewportChanged = 0;\r\n\t\tthis.isMobileSlider = false;\r\n\t\tthis.sliderIsScrolling = false;\r\n\t\tthis.sliderPageIndex = 0;\r\n\t\tthis._showDotsSlider = this.$sliderNavigation.data('show-number');\r\n\t}\r\n\r\n\tgetItemsPerPageConfig() {\r\n\t\tconst defaultItemsPerPage = [1, 1, 1, 1];\r\n\t\tconst itemsPerPageData = this.$ctx.data('items-per-page');\r\n\t\tconst itemsPerPage = defaultItemsPerPage;\r\n\r\n\t\tif (itemsPerPageData instanceof Array) {\r\n\t\t\titemsPerPage.splice(0, itemsPerPageData.length, ...itemsPerPageData);\r\n\t\t} else if (Number.isInteger(itemsPerPageData)) {\r\n\t\t\titemsPerPage.fill(itemsPerPageData);\r\n\t\t}\r\n\r\n\t\treturn itemsPerPage;\r\n\t}\r\n\r\n\thandleVideoImageLoading() {\r\n\t\t// before being loaded completely the responsive image height is unknown so we wait for it to be loaded\r\n\t\tif (this.$imagesAndVideos.length > 0) {\r\n\t\t\tconst mediaelements = [] as Array>;\r\n\t\t\tthis.$imagesAndVideos.slice(0, this.getNumberOfItemsPerPage()).each((i: number, el: HTMLElement) => {\r\n\t\t\t\tmediaelements.push(\r\n\t\t\t\t\tnew Promise((resolve: any) => {\r\n\t\t\t\t\t\tconst $el = $(el);\r\n\t\t\t\t\t\t$el.on('load.SliderGalleryImages error.SliderGalleryImages', () => {\r\n\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\tPromise.all(mediaelements).then(() => {\r\n\t\t\t\tthis.sliderGalleryScroller.refresh();\r\n\t\t\t\tthis.goToPageX(Math.floor(this.activeItemBeforeViewportChanged / this.getNumberOfItemsPerPage()));\r\n\t\t\t\tthis.handleSizeAndPosition();\r\n\r\n\t\t\t\t// timeout to get initial dimensions without transition\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.$ctx.addClass(classes.isInitialized);\r\n\t\t\t\t}, 500);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.$ctx.addClass(classes.isInitialized);\r\n\t\t}\r\n\t}\r\n\r\n\tinitNavigationArrows() {\r\n\t\t// bind event on the left arrow to go to active page minus 1 (to left)\r\n\t\tthis.$arrowLeft.on('click.SliderGalleryGotoLeft', (e: Event) => this.evtClickSkipBackOrForth(e, -1));\r\n\r\n\t\t// bind event on the right arrow to go to active page plus 1 (to right)\r\n\t\tthis.$arrowRight.on('click.SliderGalleryGotoRight', (e: Event) => this.evtClickSkipBackOrForth(e, 1));\r\n\t}\r\n\r\n\thandleSizeAndPosition() {\r\n\t\tthis.setFixedPageWidthAndArrowPosition();\r\n\t\tthis.setScrollerHeightAccordingToPageHeight();\r\n\t}\r\n\r\n\thandleCampaignTeaserClick() {\r\n\t\tthis.$campaignTeaserArea.on('click', this.openModalAndCopyText.bind(this));\r\n\t}\r\n\r\n\topenModalAndCopyText(e: any) {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tconst theme = this.$ctx.data('theme');\r\n\r\n\t\tif (viewport === 'small') {\r\n\t\t\t$(e.currentTarget)\r\n\t\t\t\t.clone()\r\n\t\t\t\t.appendTo($('.m-modal-overlay'));\r\n\t\t\t$('html').addClass('no-scrolling--without-scrollbar');\r\n\t\t\t$('.m-modal-overlay').addClass(theme);\r\n\t\t\t$(window).trigger('modalWindow:open');\r\n\t\t}\r\n\t}\r\n\r\n\t/* \twe set the page width fixed in px cause % is not working in horizontal iScroll\r\n\t\ton top there is some arrow positioning magic, centered to the height of the\r\n\t\tcontent of a page or it's image/video part if available\r\n\t */\r\n\tsetFixedPageWidthAndArrowPosition() {\r\n\t\tconst numberOfItems = this.getNumberOfItemsPerPage();\r\n\t\tconst totalMarginWidth = this.itemMargin * (numberOfItems - 1);\r\n\t\tconst itemWidth = (this.$scroller.outerWidth() - totalMarginWidth) / numberOfItems;\r\n\r\n\t\tthis.$items.css('width', `${itemWidth}px`);\r\n\t\tthis.sliderGalleryScroller.refresh();\r\n\r\n\t\tconst biggestItem = this.getBiggestItemAndHeightOfPage(0).item;\r\n\t\tconst $imgVideoEl = $('img, video', biggestItem);\r\n\t\tconst isFullPageSizeMedium = Math.floor($imgVideoEl.outerWidth()) >= Math.floor(itemWidth);\r\n\t}\r\n\r\n\tsetScrollerHeightAccordingToPageHeight() {\r\n\t\tconst biggestItemHeight = this.getBiggestItemAndHeightOfPage(this.sliderGalleryScroller.currentPage.pageX)\r\n\t\t\t.height;\r\n\t\tthis.$list.css('height', `${biggestItemHeight}px`);\r\n\t}\r\n\r\n\tgetBiggestItemAndHeightOfPage(page: number) {\r\n\t\tconst itemsPerPage = Math.min(this.$items.length, this.getNumberOfItemsPerPage());\r\n\t\tconst itemToStartWith = page * itemsPerPage;\r\n\r\n\t\tlet biggestItemHeight = 0;\r\n\t\tlet biggestItem = this.$items.eq(itemToStartWith);\r\n\r\n\t\tfor (let i = itemToStartWith; i < itemToStartWith + itemsPerPage; i++) {\r\n\t\t\tif (biggestItemHeight < this.$items[i].offsetHeight) {\r\n\t\t\t\tbiggestItemHeight = this.$items[i].offsetHeight;\r\n\t\t\t\tbiggestItem = this.$items.eq(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\theight: biggestItemHeight,\r\n\t\t\titem: biggestItem,\r\n\t\t};\r\n\t}\r\n\r\n\tsetArrowPosition(arrowTopPosition: number) {\r\n\t\tthis.$arrowLeft.css('top', `${arrowTopPosition}px`);\r\n\t\tthis.$arrowRight.css('top', `${arrowTopPosition}px`);\r\n\t}\r\n\r\n\tsetActiveDot(pageNumber: number) {\r\n\t\tif (!this.isMobileSlider) {\r\n\t\t\tthis.$dots\r\n\t\t\t\t.removeClass(classes.activeDot)\r\n\t\t\t\t.eq(pageNumber)\r\n\t\t\t\t.addClass(classes.activeDot);\r\n\t\t}\r\n\r\n\t\tthis.$sliderPages.text(formatLabel(this.$sliderNavigation.data('pages'), pageNumber + 1, this.$items.length))\r\n\r\n\t\tthis.$arrowLeft.toggleClass(classes.showArrow, this.sliderGalleryScroller.currentPage.pageX > 0);\r\n\t\tthis.$arrowRight.toggleClass(\r\n\t\t\tclasses.showArrow,\r\n\t\t\tthis.sliderGalleryScroller.currentPage.pageX < this.sliderGalleryScroller.pages.length - 1\r\n\t\t);\r\n\r\n\t\tthis.setScrollerHeightAccordingToPageHeight();\r\n\t\tthis.activeItemBeforeViewportChanged = pageNumber * this.getNumberOfItemsPerPage();\r\n\t\tthis.sliderPageIndex = pageNumber;\r\n\t}\r\n\r\n\treinitScrollerWhenViewportChangedToOrFromSmall() {\r\n\t\tconst numberOfItemsPerPage = this.getNumberOfItemsPerPage();\r\n\r\n\t\tif (numberOfItemsPerPage !== this.numberOfItemsPerPageBeforeViewportChanged) {\r\n\t\t\tthis.initScroller();\r\n\t\t\tthis.numberOfItemsPerPageBeforeViewportChanged = numberOfItemsPerPage;\r\n\t\t}\r\n\t}\r\n\r\n\t// the following function holds all logic for having different amount of items on viewports/cases. default is 1\r\n\tgetNumberOfItemsPerPage() {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tswitch (viewport) {\r\n\t\t\tcase 'extra-large':\r\n\t\t\t\treturn this.itemsPerPage[3];\r\n\t\t\tcase 'large':\r\n\t\t\t\treturn this.itemsPerPage[2];\r\n\t\t\tcase 'medium':\r\n\t\t\t\treturn this.itemsPerPage[1];\r\n\t\t\tdefault:\r\n\t\t\t\treturn this.itemsPerPage[0];\r\n\t\t}\r\n\t}\r\n\r\n\t// inits scroller and it's pages\r\n\tinitScroller() {\r\n\t\tconst numberOfItemsPerPage = this.getNumberOfItemsPerPage();\r\n\r\n\t\tthis.initPageDots(numberOfItemsPerPage);\r\n\r\n\t\tthis.newIscroll(numberOfItemsPerPage);\r\n\r\n\t\tthis.initScrollerEvents();\r\n\r\n\t\tthis.initItemLinkBehaviour();\r\n\r\n\t\t// set initial active dot\r\n\t\tconst startSlide = Math.floor(this.activeItemBeforeViewportChanged / numberOfItemsPerPage);\r\n\t\tthis.goToPageX(startSlide);\r\n\t\tthis.trackSlide(startSlide);\r\n\t}\r\n\r\n\tinitPageDots(numberOfItemsPerPage: number) {\r\n\t\tthis.showOrHideDots(numberOfItemsPerPage);\r\n\r\n\t\t// bind event on the dots to click through all pages\r\n\t\tthis.$dots.each((index: number, elem: HTMLElement) => {\r\n\t\t\t$(elem).on('click.SliderGalleryDotGotoPage', (e: Event) => this.evtClickDot(e, index));\r\n\t\t\t$(elem).attr('data-item', index);\r\n\t\t});\r\n\t}\r\n\r\n\tshowOrHideDots(numberOfItemsPerPage: number) {\r\n\t\tthis.$dotContainers.show();\r\n\r\n\t\tif (numberOfItemsPerPage > 1) {\r\n\t\t\tthis.$dotContainers.not(`:nth-child(${numberOfItemsPerPage}n + 1)`).hide();\r\n\r\n\t\t\tconst visibleDotContainers = $(`.${classes.dot}:nth-child(${numberOfItemsPerPage}n + 1)`, this.$ctx);\r\n\t\t\tthis.$dots = $(`.${classes.dotButton}`, visibleDotContainers);\r\n\t\t} else {\r\n\t\t\tthis.$dots = $(`.${classes.dotButton}`, this.$ctx);\r\n\t\t}\r\n\r\n\t\t// dont show dots if only one page/dot available\r\n\t\tif (this.$dots.length > 1) {\r\n\t\t\tthis.$sliderNavigation.css('display', 'flex');\r\n\t\t} else {\r\n\t\t\tthis.$sliderNavigation.hide();\r\n\t\t}\r\n\t}\r\n\r\n\tnewIscroll(numberOfItemsPerPage: number) {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'small') {\r\n\t\t\tthis.sliderGalleryScroller = new IScroll($(`.${classes.scroller}`, this.$ctx)[0], {\r\n\t\t\t\tsnap: true,\r\n\t\t\t\tmomentum: false,\r\n\t\t\t\tscrollX: false, // Enable horizontal scrolling\r\n\t\t\t\tscrollY: false,\r\n\t\t\t});\r\n\t\t\tthis.initMobileSlider();\r\n\t\t\tthis.isMobileSlider = true;\r\n\t\t} else {\r\n\t\t\tthis.sliderGalleryScroller = new IScroll($(`.${classes.scroller}`, this.$ctx)[0], {\r\n\t\t\t\tmouseWheel: false,\r\n\t\t\t\tscrollbars: false,\r\n\t\t\t\tscrollX: true,\r\n\t\t\t\tscrollY: false,\r\n\t\t\t\tsnap: numberOfItemsPerPage > 1 ? `li:nth-child(${numberOfItemsPerPage}n + 1)` : 'li',\r\n\t\t\t\ttap: true,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinitMobileSlider() {\r\n\t\tconst $elements = this.$ctx.find('li.js-m-slider-gallery__item');\r\n\t\tconst dotItems = this.$ctx.find('.js-m-slider-gallery__dot-button');\r\n\t\tlet slideItemIndex = 0;\r\n\t\tlet currentIndex = 0;\r\n\t\tlet startX: any;\r\n\t\tlet startY: any;\r\n\t\tlet sdeltaX: any;\r\n\t\tlet sdeltaY: any;\r\n\t\tlet isMove = false;\r\n\t\tlet indexItem: number;\r\n\r\n\t\t$elements.each((index: number, elem: HTMLElement) => {\r\n\t\t\t$(elem).on('touchstart', (e: any) => {\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\tstartX = e.originalEvent.touches[0].clientX;\r\n\t\t\t\tstartY = e.originalEvent.touches[0].clientY;\r\n\t\t\t\tisMove = false;\r\n\t\t\t});\r\n\t\t\t$(elem).on('touchmove', (e: any) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tisMove = true;\r\n\t\t\t});\r\n\t\t\t$(elem).on('touchend', (e: any) => {\r\n\t\t\t\tlet newItemIndex: number = 0;\r\n\t\t\t\tconst items = this.$items.length;\r\n\t\t\t\tlet getSlideIndex = parseInt(e.currentTarget.dataset.item);\r\n\r\n\t\t\t\tsdeltaX = Math.ceil(e.originalEvent.changedTouches[0].clientX - startX);\r\n\t\t\t\tsdeltaY = Math.ceil(e.originalEvent.changedTouches[0].clientY - startY);\r\n\t\t\t\tnewItemIndex = sdeltaX < 0 ? index + 1 : indexItem === 0 ? items - 1 : indexItem - 1;\r\n\r\n\t\t\t\tif (isMove) {\r\n\t\t\t\t\tlet endX = e.originalEvent.changedTouches[0].clientX;\r\n\t\t\t\t\tlet endY = e.originalEvent.changedTouches[0].clientY;\r\n\r\n\t\t\t\t\tlet deltaX = endX - startX;\r\n\t\t\t\t\tlet deltaY = endY - startY;\r\n\r\n\t\t\t\t\tif (Math.abs(deltaX) > Math.abs(deltaY)) {\r\n\t\t\t\t\t\t// Horizontal swipe\r\n\t\t\t\t\t\tif (deltaX > 0) {\r\n\t\t\t\t\t\t\t// Swipe right\r\n\t\t\t\t\t\t\tcurrentIndex = (getSlideIndex - 1 + items) % items;\r\n\t\t\t\t\t\t\tthis.setActiveSlide(currentIndex);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Swipe left\r\n\t\t\t\t\t\t\tcurrentIndex = (getSlideIndex + 1) % items;\r\n\t\t\t\t\t\t\tthis.setActiveSlide(currentIndex);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// bind event on the dots to click through all pages\r\n\t\tthis.$dots.each((index: number, elem: HTMLElement) => {\r\n\t\t\t$(elem).on('click.SliderGalleryDotGotoSlide', (e: Event) => this.setActiveSlide(index));\r\n\t\t});\r\n\t\t//this.$dotContainers.hide();\r\n\r\n\t\tthis.setActiveSlide(slideItemIndex);\r\n\t}\r\n\r\n\t// Set active Slide item\r\n\tsetActiveSlide(el: any) {\r\n\t\tthis.$items\r\n\t\t\t.addClass('inactive')\r\n\t\t\t.removeClass('active')\r\n\t\t\t.eq(el)\r\n\t\t\t.removeClass('inactive')\r\n\t\t\t.addClass('active');\r\n\t\tthis.$dots\r\n\t\t\t.removeClass(classes.activeDot)\r\n\t\t\t.eq(el)\r\n\t\t\t.addClass(classes.activeDot);\r\n\t}\r\n\r\n\t//this.$dotContainers.hide();\r\n\r\n\r\n\r\n\tinitScrollerEvents() {\r\n\t\tthis.sliderGalleryScroller.on('scrollStart', () => {\r\n\t\t\tthis.sliderIsScrolling = true;\r\n\t\t});\r\n\r\n\t\tthis.sliderGalleryScroller.on('scrollEnd', () => {\r\n\t\t\tconst activePage = this.sliderGalleryScroller.currentPage.pageX;\r\n\t\t\tthis.setActiveDot(activePage);\r\n\t\t\tthis.sliderIsScrolling = false;\r\n\t\t\tthis.trackSlide(activePage);\r\n\t\t});\r\n\t}\r\n\r\n\tinitItemLinkBehaviour() {\r\n\t\t// bind event on the links to prevent default while scrolling\r\n\t\tthis.$links.on('click.SliderGalleryClickLink', (ev: Event) => {\r\n\t\t\tif (this.sliderIsScrolling) {\r\n\t\t\t\tev.stopPropagation();\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgoToPageX(pageNumber: number) {\r\n\t\tthis.sliderGalleryScroller.goToPage(pageNumber, 0, 1000);\r\n\t\tthis.setActiveDot(pageNumber);\r\n\t\tthis.sliderPageIndex = pageNumber;\r\n\t}\r\n\r\n\t/**\r\n\t * Click Event for Dots in Slider-Gallery\r\n\t * @param {event} e event\r\n\t * @param {number} index index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tevtClickDot(e: any, index: number) {\r\n\t\tconst currentPage = this.sliderGalleryScroller.currentPage.pageX;\r\n\t\t// eslint-disable-next-line newline-per-chained-call\r\n\t\tconst $target = $(e.currentTarget)\r\n\t\t\t.parent()\r\n\t\t\t.parent()\r\n\t\t\t.prev();\r\n\t\tconst $videosContainer = $target.parent().find(`.${classes.videosContainer}`);\r\n\r\n\t\tthis.stopVideoInCurrentSlider($videosContainer, index, currentPage);\r\n\t\tthis.goToPageX(index);\r\n\t}\r\n\r\n\t/**\r\n\t * Click Event for Skip Back/Next slider in Slider-Gallery\r\n\t * @param {event} e event\r\n\t * @param {number} sliderIdxOffset Positive integer value will increase and negative will decrease the slider page\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tevtClickSkipBackOrForth(e: Event, sliderIdxOffset: number) {\r\n\t\tconst nextPage = this.sliderGalleryScroller.currentPage.pageX + sliderIdxOffset;\r\n\t\tconst $target = $(e.currentTarget)\r\n\t\t\t.parent()\r\n\t\t\t.find(`.${classes.videosContainer}`);\r\n\r\n\t\tthis.stopVideoInCurrentSlider($target, nextPage, this.sliderGalleryScroller.currentPage.pageX);\r\n\t\tthis.goToPageX(nextPage);\r\n\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t}\r\n\r\n\t/**\r\n\t * Stop Video In Current Slider\r\n\t * @param {Object} $videosContainer video container\r\n\t * @param {number} currentPage current page index\r\n\t * @param {number} prevSlide previous page index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tstopVideoInCurrentSlider($videosContainer: any, currentPage: number, prevSlide: number) {\r\n\t\tconst $listItems: any = $videosContainer.find(`.${classes.videosContainerListItem}`);\r\n\t\tconst $videoElement: any = $($listItems[prevSlide]).find(`.${classes.videoElement}`);\r\n\t\tconst videoElementId: any = $videoElement.attr(videoCfg.targetId);\r\n\t\t// eslint-disable-next-line prefer-template\r\n\t\tconst newVideoAttribute: string = videoElementId + '__active';\r\n\r\n\t\t// If undefined otherwise will throw an error, when there was image instead a video in slide where to stop a video\r\n\t\tconst hasAttr: boolean = $videoElement.attr(videoCfg.targetId) !== undefined;\r\n\r\n\t\tif (hasAttr) {\r\n\t\t\t$videoElement.attr('id', newVideoAttribute);\r\n\t\t\tthis.callVideoAPIMethod($videoElement.attr('id'));\r\n\t\t\t$videoElement.removeAttr('id');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Call Video API Methods\r\n\t *\r\n\t * \t\tPossible values for Transport Controls:\r\n\t *\r\n\t * \tplay\r\n\t * \tpause\r\n\t * \tstop\r\n\t * \tforward\r\n\t * \trewind\r\n\t * \tsetVolume\r\n\t * \ttoggleMute\r\n\t * \tgetCurrentTime\r\n\t * \tgetDuration\r\n\t * \tgetBufferedTime\r\n\t * \tswitchVideo\r\n\t *\r\n\t * \t\tActually makes window.VideoPlayer.Collection.getPlayerById('someId').pause(); or something else you define\r\n\t * \t\tDon't forget the dependency to the embed script of movingimages.com from http//e.video-cdn.net/v2/embed.js\r\n\t * \t\tOtherwise will not be reachable in the code and JS errors will occur\r\n\t * \t\tor the videos will not be loaded.\r\n\t *\r\n\t * @param {string} id id container for video player to be stopped or paused\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tcallVideoAPIMethod(id: string) {\r\n\t\t// eslint-disable-next-line dot-notation\r\n\t\t(window as any)['VideoPlayer'].Collection.getPlayerById(id)[videoCfg.typeOnStopWhenSkippingSlide]();\r\n\t}\r\n\r\n\ttrackSlide(pageNumber: number) {\r\n\t\tif (this.$items[pageNumber]) {\r\n\t\t\tconst activeItem = this.$items[pageNumber];\r\n\t\t\tconst title = activeItem.getAttribute('data-title');\r\n\t\t\tthis.track(title, pageNumber);\r\n\t\t}\r\n\t}\r\n\r\n\ttrack(name: string, position: number) {\r\n\t\tconst dataLayer = (window as any).dataLayer || [];\r\n\t\tlet list = '';\r\n\t\tif (dataLayer) {\r\n\t\t\tlist = dataLayer[0].campaignName || '';\r\n\t\t}\r\n\t\tconst trackdata: {\r\n\t\t\tevent: string;\r\n\t\t\tecommerce: {\r\n\t\t\t\tpromoView: {\r\n\t\t\t\t\tpromotions: Array<{\r\n\t\t\t\t\t\tname: string;\r\n\t\t\t\t\t\tposition: number;\r\n\t\t\t\t\t\tlist: string;\r\n\t\t\t\t\t}>;\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t} = {\r\n\t\t\tevent: 'sliderImpression',\r\n\t\t\tecommerce: {\r\n\t\t\t\tpromoView: {\r\n\t\t\t\t\tpromotions: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tname: name,\r\n\t\t\t\t\t\t\tposition: position,\r\n\t\t\t\t\t\t\tlist: list,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t\tTrack.gtmTrack(trackdata);\r\n\t}\r\n\r\n\t/**\r\n\t * Slider Page Index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tget sliderPageIndex(): number {\r\n\t\treturn this._sliderPageIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Slider Page Index\r\n\t * @param {number} value index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tset sliderPageIndex(value: number) {\r\n\t\tthis._sliderPageIndex = value;\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\n\r\nconst classes = {\r\n\tscroller: 'js-m-slider-stage__scroller',\r\n\tlist: 'js-m-slider-stage__list',\r\n\titem: 'js-m-slider-stage__item',\r\n\tfalseItem: 'false-item',\r\n\tactiveItem: 'state-m-slider-stage--item-is-active',\r\n\tactiveCaption: 'state-m-slider-stage--caption-is-active',\r\n\tcaptionWrapper: 'js-m-slider-stage__caption-wrapper',\r\n\tcaption: 'js-m-slider-stage__caption-item',\r\n\tdotButton: 'js-m-slider-stage__dot-button',\r\n\tdot: 'js-m-slider-stage__dot',\r\n\tactiveDot: 'state-m-slider-stage--dot-is-active',\r\n\tdotWrapper: 'js-m-slider-stage__dots-wrapper',\r\n\tdotArea: 'js-m-slider-stage__dots',\r\n\tshowArrow: 'state-m-slider-stage--arrow-is-shown',\r\n\tarrowLeft: 'js-m-slider-stage__arrow--left',\r\n\tarrowRight: 'js-m-slider-stage__arrow--right',\r\n\tlink: 'js-m-slider-stage__item-link',\r\n\tpages: \"js-m-slider-stage__pages\",\r\n\tcurrentPage: \"js-m-slider-stage__current-page\",\r\n\ttotalPage: \"js-m-slider-stage__total-page\",\r\n\tvideoElement: 'js-m-slider-stage__video',\r\n\tScrollDownLink: 'js-m-slider-stage__scroll-down-link',\r\n};\r\n\r\n@createModule('SliderStage')\r\n/**\r\n * Breadcrumb module implementation.\r\n *\r\n * @author Christoph Merkelbach \r\n */\r\nexport class SliderStage extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$dot: JQuery;\r\n\t$dotButton: JQuery;\r\n\t$dotWrapper: JQuery;\r\n\t$dotArea: JQuery;\r\n\t$captionWrapper: JQuery;\r\n\t$caption: JQuery;\r\n\t$arrowLeft: JQuery;\r\n\t$arrowRight: JQuery;\r\n\t$scroller: JQuery;\r\n\t$items: JQuery;\r\n\t$list: JQuery;\r\n\t$links: JQuery;\r\n\t$pages: JQuery;\r\n\t$currentPage: JQuery;\r\n\t$totalPage: JQuery;\r\n\t$videoElement: JQuery;\r\n\t$ScrollDownLink: JQuery;\r\n\titemsPerPage: Array;\r\n\t_sliderPageIndex: number;\r\n\tsliderlength: number;\r\n\tdotIndex: number;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.initVars();\r\n\r\n\t\t$(window).on('resize', () => {\r\n\t\t\tthis.setScrollerHeight();\r\n\t\t});\r\n\r\n\t\tthis.initScroller();\r\n\t\tthis.initNavigationArrows();\r\n\t\tthis.setActiveDot(0);\r\n\t\tthis.goToDotX(0);\r\n\t\tthis.setScrollerHeight();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.$captionWrapper.height(this.$caption.eq(0).innerHeight());\r\n\t\t}, 50);\r\n\r\n\t\tthis.scrollToAnchor();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitVars() {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$arrowLeft = $(`.${classes.arrowLeft}`, this.$ctx);\r\n\t\tthis.$arrowRight = $(`.${classes.arrowRight}`, this.$ctx);\r\n\t\tthis.$scroller = $(`.${classes.scroller}`, this.$ctx);\r\n\t\tthis.$items = $(`.${classes.item}`, this.$ctx);\r\n\t\tthis.$list = $(`.${classes.list}`, this.$ctx);\r\n\t\tthis.$links = $(`.${classes.link}`, this.$ctx);\r\n\t\tthis.$pages = $(`.${classes.pages}`, this.$ctx);\r\n\t\tthis.$currentPage = $(`.${classes.currentPage}`, this.$ctx);\r\n\t\tthis.$totalPage = $(`.${classes.totalPage}`, this.$ctx);\r\n\t\tthis.$videoElement = $(`.${classes.videoElement}`, this.$ctx);\r\n\t\tthis.$dot = $(`.${classes.dot}`, this.$ctx);\r\n\t\tthis.$dotButton = $(`.${classes.dotButton}`, this.$ctx);\r\n\t\tthis.$dotWrapper = $(`.${classes.dotWrapper}`, this.$ctx);\r\n\t\tthis.$dotArea = $(`.${classes.dotArea}`, this.$ctx);\r\n\t\tthis.$captionWrapper = $(`.${classes.captionWrapper}`, this.$ctx);\r\n\t\tthis.$caption = $(`.${classes.caption}`, this.$ctx);\r\n\t\tthis.$ScrollDownLink = $(`.${classes.ScrollDownLink}`, this.$ctx);\r\n\t\tthis.sliderPageIndex = 0;\r\n\t\tthis.dotIndex = 0;\r\n\t\tthis.sliderlength = this.$items.length;\r\n\t}\r\n\r\n\tinitNavigationArrows() {\r\n\t\t// bind event on the left arrow to go to active page minus 1 (to left)\r\n\t\tthis.$arrowLeft.on('click',\r\n\t\t\t(e: Event) => {\r\n\t\t\t\tthis.evtClickSkipBackOrForth(e, -1);\r\n\t\t\t});\r\n\r\n\t\t// bind event on the right arrow to go to active page plus 1 (to right)\r\n\t\tthis.$arrowRight.on('click', \r\n\t\t\t(e: Event) => {\r\n\t\t\t\tthis.evtClickSkipBackOrForth(e, 1);\r\n\t\t\t});\r\n\t}\r\n\r\n\tinitScroller() {\r\n\t\tthis.initPageDots(0);\r\n\r\n\t\tvar itemWidth = $(window).width();\r\n\t\tthis.$items.width(itemWidth);\r\n\t\tthis.$list.append(this.$items.first().clone().addClass(classes.falseItem).removeClass(classes.activeItem).width(itemWidth));\r\n\t\tthis.$list.prepend(this.$items.last().clone().addClass(classes.falseItem).width(itemWidth));\r\n\t\tthis.$list.css(\"left\", -itemWidth );\r\n\r\n\t\tthis.$totalPage.text(this.sliderlength);\r\n\t\tthis.$currentPage.text(1);\r\n\t\tif (this.sliderlength == 3) {\r\n\t\t\tthis.$pages.addClass(\"pages-pc-hide\")\r\n\t\t} else if (this.sliderlength == 2) {\r\n\t\t\tthis.$pages.addClass(\"pages-mobile-visible\")\r\n\t\t} else if(this.sliderlength < 2) {\r\n\t\t\tthis.$pages.hide();\r\n\t\t\tthis.$arrowLeft.parent().hide();\r\n\t\t\tthis.$dotWrapper.parent().hide();\r\n\t\t\tthis.$captionWrapper.addClass(\"alone\")\r\n\t\t}\r\n\t}\r\n\r\n\tinitPageDots(numberOfItemsPerPage: number) {\r\n\t\tthis.$dot.each((index: number, elem: HTMLElement) => {\r\n\t\t\t$(elem).on('click', (e: Event) => {\r\n\t\t\t\tthis.evtClickDot(e, index);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tsetScrollerHeight() {\r\n\t\tvar itemWidth = $(window).width();\r\n\t\tthis.$items.width(itemWidth);\r\n\t\t$(\".false-item\").width(itemWidth);\r\n\t\tthis.$list.css(\"left\", -( this.sliderPageIndex + 1 ) * itemWidth );\r\n\t\tthis.$captionWrapper.height(this.$caption.eq(this.sliderPageIndex).innerHeight());\r\n\t}\r\n\r\n\tsetActiveDot(pageNumber: number) {\r\n\t\tthis.$caption\r\n\t\t\t.removeClass(classes.activeCaption)\r\n\t\t\t.eq(pageNumber)\r\n\t\t\t.addClass(classes.activeCaption);\t\r\n\r\n\t\tthis.$videoElement.trigger('pause');\r\n\t\tthis.$items.eq(pageNumber).find(\"video\").trigger('play');\r\n\r\n\t\tthis.$captionWrapper.height(this.$caption.eq(pageNumber).innerHeight());\r\n\r\n\t\tthis.$currentPage.text(pageNumber + 1);\r\n\r\n\t\tthis.$dot\r\n\t\t.removeClass(classes.activeDot)\r\n\t\t.eq(pageNumber)\r\n\t\t.addClass(classes.activeDot);\r\n\r\n\t\tvar sliderlength = this.sliderlength;\r\n\t\tif(sliderlength < 3){\r\n\t\t\tthis.$dotArea.addClass(\"scroll-inactive\");\r\n\t\t} else if(sliderlength == 3){\r\n\t\t\tthis.$dotArea.addClass(\"scroll-tabet-active\");\r\n\t\t} else if(sliderlength > 3){\r\n\t\t\tthis.$dotArea.addClass(\"scroll-active\");\r\n\t\t};\r\n\r\n\t\tthis.sliderPageIndex = pageNumber;\r\n\t}\r\n\r\n\tgoToPageX(pageNumber: number) {\r\n\t\tvar itemPerWidth = 0 - $(window).width();\r\n\t\tvar me=this;\r\n\t\tthis.$list.animate({\r\n\t\t\t\"left\": ( pageNumber + 1 ) * itemPerWidth\r\n\t\t}, 500, () => {\r\n\t\t\tif (pageNumber < 0) {\r\n\t\t\t\tpageNumber = this.sliderlength - 1;\r\n\t\t\t\tthis.$list.css(\"left\", this.sliderlength * itemPerWidth );\r\n\t\t\t} else if (pageNumber == this.sliderlength) {\r\n\t\t\t\tpageNumber = 0;\r\n\t\t\t\tthis.$list.css('left', itemPerWidth);\r\n\t\t\t}\r\n\t\t\tme.setActiveDot(pageNumber);\r\n\t\t\tme.sliderPageIndex = pageNumber;\r\n\t\t});\r\n\t}\r\n\r\n\tgoToDotX(nextIndex: number) {\r\n\t\tvar sliderlength = this.sliderlength;\r\n\t\tthis.dotIndex = nextIndex;\r\n\t\tif(sliderlength > 2){\r\n\t\t\tvar oneDot = nextIndex;\r\n\t\t\tvar zeroDot = nextIndex-1;\r\n\t\t\tvar twoDot = nextIndex + 1;\r\n\t\t\tvar threeDot = nextIndex + 2;\r\n\t\t\tvar fourDot = nextIndex + 3;\r\n\r\n\t\t\tif (twoDot == sliderlength) {\r\n\t\t\t\ttwoDot = 0;\r\n\t\t\t\tthreeDot = 1;\r\n\t\t\t\tfourDot = 2;\r\n\t\t\t} else if (threeDot == sliderlength) {\r\n\t\t\t\tthreeDot = 0;\r\n\t\t\t\tfourDot = 1;\r\n\t\t\t} else if (fourDot == sliderlength) {\r\n\t\t\t\tfourDot = 0;\r\n\t\t\t}\r\n\t\t\tthis.$dot.removeClass(\"pc-prev-zero pc-next-one pc-next-two pc-next-three pc-next-four\");\r\n\t\t\tthis.$dot.eq(zeroDot).addClass(\"pc-prev-zero\");\r\n\t\t\tthis.$dot.eq(oneDot).addClass(\"pc-next-one\");\r\n\t\t\tthis.$dot.eq(twoDot).addClass(\"pc-next-two\");\r\n\t\t\tthis.$dot.eq(threeDot).addClass(\"pc-next-three\");\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.$dot.eq(fourDot).addClass(\"pc-next-four\");\r\n\t\t\t}, 300);\r\n\t\t};\r\n\t\t\r\n\t}\r\n\t/**\r\n\t * Click Event for Dots in Slider-Gallery\r\n\t * @param {event} e event\r\n\t * @param {number} index index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tevtClickDot(e: any, index: number) {\r\n\t\tthis.goToPageX(index);\r\n\t}\r\n\r\n\t/**\r\n\t * Click Event for Skip Back/Next slider in Slider-Gallery\r\n\t * @param {event} e event\r\n\t * @param {number} sliderIdxOffset Positive integer value will increase and negative will decrease the slider page\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tevtClickSkipBackOrForth(e: Event, sliderIdxOffset: number) {\r\n\t\tif (sliderIdxOffset<0) {\r\n\t\t\tthis.$dotArea.addClass('scroll-left');\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (this.dotIndex == 0) {\r\n\t\t\t\t\tconst nextIndex = this.sliderlength-1;\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.goToDotX(nextIndex);\r\n\t\t\t\t\t}, 50);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst nextIndex = this.dotIndex + sliderIdxOffset;\r\n\t\t\t\t\tthis.goToDotX(nextIndex);\r\n\t\t\t\t}\r\n\t\t\t}, 50);\r\n\t\t} else {\r\n\t\t\tthis.$dotArea.removeClass('scroll-left');\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (this.dotIndex == this.sliderlength-1) {\r\n\t\t\t\t\tconst nextIndex = 0;\r\n\t\t\t\t\tthis.goToDotX(nextIndex);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst nextIndex = this.dotIndex + sliderIdxOffset;\r\n\t\t\t\t\tthis.goToDotX(nextIndex);\r\n\t\t\t\t}\r\n\t\t\t}, 50);\r\n\t\t}\r\n\t\tconst nextPage = this.sliderPageIndex + sliderIdxOffset;\r\n\t\tthis.goToPageX(nextPage);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Slider Page Index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tget sliderPageIndex(): number {\r\n\t\treturn this._sliderPageIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Slider Page Index\r\n\t * @param {number} value index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tset sliderPageIndex(value: number) {\r\n\t\tthis._sliderPageIndex = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Scroll to top of the document\r\n\t * @returns {void}\r\n\t */\r\n\t\r\n\tscrollToAnchor() {\r\n\t\tvar scrollAnchor = this.$ScrollDownLink.attr(\"href\");\r\n\t\tthis.$ScrollDownLink.on('click', () => {\r\n\t\t\tif (typeof(this.$ScrollDownLink.attr(\"href\"))==\"undefined\") {\r\n\t\t\t\tscrollToElement(this.$ScrollDownLink, false, -20, undefined, true);\r\n\t\t\t} else {\r\n\t\t\t\tscrollToElement($(scrollAnchor), false, 0, undefined, true);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * back-to-top button should contain the 'a-button--anchor' css class that comes from the button modifier 'top'\r\n\t * to separate its click event\r\n\t * @returns {boolean} boolean\r\n\t */\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { addScrollClickTrigger, init as initHashScrolling } from '@project/shared/utils/hashscrolling/js/hashscrolling';\r\n\r\nconst classes: any = {\r\n\tbutton: 'js-m-stage-brand__button'\r\n};\r\n\r\n@createModule('StageBrand')\r\n/**\r\n * Stage Brand module implementation.\r\n */\r\nexport class StageBrand extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tif(this.$ctx.find(`.${classes.button}`).length > 0) {\r\n\t\t\tthis.handleCtaButtonClick();\r\n\t\t}\r\n\t\t\r\n\t\tresolve();\r\n\t}\r\n\r\n\tprivate handleCtaButtonClick(): void {\r\n\t\tconst button = this.$ctx.find(`.${classes.button}`);\r\n\t\tconst url = button.attr('href');\r\n\t\tconst idx = url.indexOf('#');\r\n\r\n\t\tif (idx === 0) {\r\n\t\t\tinitHashScrolling();\r\n\t\t\taddScrollClickTrigger(button);\r\n\t\t} else {\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate applyScrollToHandler(button: JQuery): void {\r\n\t\tinitHashScrolling();\r\n\t\taddScrollClickTrigger(button);\r\n\t}\r\n\r\n\tstop() {\r\n\t\t// Stop\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as $ from 'jquery';\r\n\r\n@createModule('StageKeyvisual')\r\n/**\r\n * stage-keyvisual module implementation.\r\n *\r\n */\r\nexport class StageKeyvisual extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$inputElement: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$inputElement = this.$ctx.find('.js-m-stage-keyvisual__search-input');\r\n\t\tthis.$inputElement.on('keyup', this._handleInputChange.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\r\n\t_handleInputChange(event: any) {\r\n\t\tlet inputString = this.$inputElement.val() as string;\r\n\t\tlet $searchLink = $(this.$ctx).find('.js-m-stage-keyvisual__search-btn');\r\n\t\tlet newLinkUrl = $searchLink.data('baseurl') + inputString;\r\n\t\t\r\n\t\tif (event.keyCode == 13) {\r\n\t\t\twindow.location.href = newLinkUrl;\r\n\t\t}\r\n\r\n\t\t$searchLink.attr('href', newLinkUrl);\r\n\t}\r\n\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tscroller: 'js-m-stage-keyvisual-carousel__scroller',\r\n\tlist: 'js-m-stage-keyvisual-carousel__list',\r\n\titem: 'js-m-stage-keyvisual-carousel__item',\r\n\tfalseItem: 'false-item',\r\n\tactiveItem: 'state-m-stage-keyvisual-carousel--item-is-active',\r\n\tactiveCaption: 'state-m-stage-keyvisual-carousel--caption-is-active',\r\n\tcaptionWrapper: 'js-m-stage-keyvisual-carousel__caption-wrapper',\r\n\tcaption: 'js-m-stage-keyvisual-carousel__caption-item',\r\n\tdotButton: 'js-m-stage-keyvisual-carousel__dot-button',\r\n\tdot: 'js-m-stage-keyvisual-carousel__dot',\r\n\tactiveDot: 'state-m-stage-keyvisual-carousel--dot-is-active',\r\n\tdotWrapper: 'js-m-stage-keyvisual-carousel__dots-wrapper',\r\n\tdotArea: 'js-m-stage-keyvisual-carousel__dots',\r\n\tshowArrow: 'state-m-stage-keyvisual-carousel--arrow-is-shown',\r\n\tarrowLeft: 'js-m-stage-keyvisual-carousel__arrow--left',\r\n\tarrowRight: 'js-m-stage-keyvisual-carousel__arrow--right',\r\n\tlink: 'js-m-stage-keyvisual-carousel__item-link',\r\n\tpages: 'js-m-stage-keyvisual-carousel__pages',\r\n\tcurrentPage: 'js-m-stage-keyvisual-carousel__current-page',\r\n\ttotalPage: 'js-m-stage-keyvisual-carousel__total-page',\r\n\tvideoElement: 'js-m-stage-keyvisual-carousel__video',\r\n\tScrollDownLink: 'js-m-stage-keyvisual-carousel__scroll-down-link',\r\n\tpauseplay: 'js-m-stage-keyvisual-carousel__pauseplay',\r\n\tarrowPlay: 'js-m-stage-keyvisual-carousel__arrow--play',\r\n\tdotItem: 'nav__li-dots',\r\n};\r\n\r\n@createModule('StageKeyvisualCarousel')\r\n/**\r\n * Breadcrumb module implementation.\r\n *\r\n * @author Christoph Merkelbach \r\n */\r\nexport class StageKeyvisualCarousel extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$dot: JQuery;\r\n\t$dotButton: JQuery;\r\n\t$dotWrapper: JQuery;\r\n\t$dotArea: JQuery;\r\n\t$captionWrapper: JQuery;\r\n\t$caption: JQuery;\r\n\t$arrowLeft: JQuery;\r\n\t$arrowRight: JQuery;\r\n\t$pauseplay: JQuery;\r\n\t$arrowPlay: JQuery;\r\n\t$scroller: JQuery;\r\n\t$items: JQuery;\r\n\t$list: JQuery;\r\n\t$links: JQuery;\r\n\t$pages: JQuery;\r\n\t$currentPage: JQuery;\r\n\t$totalPage: JQuery;\r\n\t$videoElement: JQuery;\r\n\t$ScrollDownLink: JQuery;\r\n\titemsPerPage: Array;\r\n\t_sliderKeyVisualPageIndex: number;\r\n\tsliderKeyVisualLength: number;\r\n\tdotIndex: number;\r\n\tcurrentPage: number;\r\n\tleftWidth: number;\r\n\tcarosuelInterval: number;\r\n\tcarosuelIntervalInitial: number;\r\n\tpageFinalNumber: number = 0;\r\n\t$dotItem: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.initVars();\r\n\r\n\t\t$(window).on('resize', () => {\r\n\t\t\tthis.setScrollerHeight();\r\n\t\t});\r\n\r\n\t\tthis.initScroller();\r\n\t\tthis.initNavigationArrows();\r\n\t\tthis.setActiveDot(0);\r\n\t\tthis.goToDotX(0);\r\n\t\tthis.setScrollerHeight();\r\n\t\tthis.initDotForMobile();\r\n\t\tthis.initLiDotForMobile();\r\n\t\tthis.initItemDots();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.$captionWrapper.height(this.$caption.eq(0).innerHeight());\r\n\t\t}, 50);\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitVars() {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$arrowLeft = $(`.${classes.arrowLeft}`, this.$ctx);\r\n\t\tthis.$arrowRight = $(`.${classes.arrowRight}`, this.$ctx);\r\n\r\n\t\tthis.$pauseplay = $(`.${classes.pauseplay}`, this.$ctx);\r\n\t\tthis.$arrowPlay = $(`.${classes.arrowPlay}`, this.$ctx);\r\n\r\n\t\tthis.$scroller = $(`.${classes.scroller}`, this.$ctx);\r\n\t\tthis.$items = $(`.${classes.item}`, this.$ctx);\r\n\t\tthis.$list = $(`.${classes.list}`, this.$ctx);\r\n\t\tthis.$links = $(`.${classes.link}`, this.$ctx);\r\n\t\tthis.$pages = $(`.${classes.pages}`, this.$ctx);\r\n\t\tthis.$currentPage = $(`.${classes.currentPage}`, this.$ctx);\r\n\t\tthis.$totalPage = $(`.${classes.totalPage}`, this.$ctx);\r\n\t\tthis.$videoElement = $(`.${classes.videoElement}`, this.$ctx);\r\n\t\tthis.$dot = $(`.${classes.dot}`, this.$ctx);\r\n\t\tthis.$dotButton = $(`.${classes.dotButton}`, this.$ctx);\r\n\t\tthis.$dotWrapper = $(`.${classes.dotWrapper}`, this.$ctx);\r\n\t\tthis.$dotArea = $(`.${classes.dotArea}`, this.$ctx);\r\n\t\tthis.$captionWrapper = $(`.${classes.captionWrapper}`, this.$ctx);\r\n\t\tthis.$caption = $(`.${classes.caption}`, this.$ctx);\r\n\t\tthis.$ScrollDownLink = $(`.${classes.ScrollDownLink}`, this.$ctx);\r\n\t\tthis.sliderKeyVisualPageIndex = 0;\r\n\t\tthis.dotIndex = 0;\r\n\t\tthis.sliderKeyVisualLength = this.$items.length;\r\n\t\tthis.$dotItem = $(`.${classes.dotItem}`, this.$ctx);\r\n\t\tthis.carosuelInterval = parseInt(this.$ctx.data(\"carousel-interval\")) * 1000;\r\n\t\tthis.carosuelIntervalInitial = parseInt(this.$ctx.data(\"carousel-interval\"));\r\n\t\t$('.animsvg').css('animation-duration', this.carosuelIntervalInitial + 's');\r\n\t}\r\n\r\n\tinitNavigationArrows() {\r\n\t\t// bind event on the left arrow to go to active page minus 1 (to left)\r\n\t\tthis.$arrowLeft.on('click', (e: Event) => {\r\n\t\t\tclearInterval(interval);\r\n\t\t\t$('.animsvg').removeClass('showAnim');\r\n\t\t\t$('.m-toggle-icon').removeClass('circle');\r\n\t\t\tthis.evtClickSkipBackOrForth(e, -1);\r\n\r\n\t\t\tif ($('.js-m-stage-keyvisual-carousel__pauseplay').hasClass('m-stage-keyvisual-carousel__arrow--pause')) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t$('.animsvg').addClass('showAnim');\r\n\t\t\t\t\t$('.m-toggle-icon').addClass('circle');\r\n\t\t\t\t}, 200);\r\n\t\t\t\tinterval = setInterval(function () {\r\n\t\t\t\t\tm.evtClickSkipBackOrForth(null, 1);\r\n\t\t\t\t\t$('.animsvg').removeClass('showAnim');\r\n\t\t\t\t\t$('.m-toggle-icon').removeClass('circle');\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t$('.animsvg').addClass('showAnim');\r\n\t\t\t\t\t\t$('.m-toggle-icon').addClass('circle');\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t}, this.carosuelInterval);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// bind event on the right arrow to go to active page plus 1 (to right)\r\n\t\tthis.$arrowRight.on('click', (e: Event) => {\r\n\t\t\tclearInterval(interval);\r\n\t\t\t$('.animsvg').removeClass('showAnim');\r\n\t\t\t$('.m-toggle-icon').removeClass('circle');\r\n\t\t\tthis.evtClickSkipBackOrForth(e, 1);\r\n\t\t\tif ($('.js-m-stage-keyvisual-carousel__pauseplay').hasClass('m-stage-keyvisual-carousel__arrow--pause')) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t$('.animsvg').addClass('showAnim');\r\n\t\t\t\t\t$('.m-toggle-icon').addClass('circle');\r\n\t\t\t\t}, 200);\r\n\t\t\t\tinterval = setInterval(function () {\r\n\t\t\t\t\tm.evtClickSkipBackOrForth(null, 1);\r\n\t\t\t\t\t$('.animsvg').removeClass('showAnim');\r\n\t\t\t\t\t$('.m-toggle-icon').removeClass('circle');\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t$('.animsvg').addClass('showAnim');\r\n\t\t\t\t\t\t$('.m-toggle-icon').addClass('circle');\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t}, this.carosuelInterval);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar m = this;\r\n\t\tvar interval = setInterval(function () {\r\n\t\t\tm.evtClickSkipBackOrForth(null, 1);\r\n\t\t\t$('.animsvg').removeClass('showAnim');\r\n\t\t\t$('.m-toggle-icon').removeClass('circle');\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\t$('.animsvg').addClass('showAnim');\r\n\t\t\t\t$('.m-toggle-icon').addClass('circle');\r\n\t\t\t}, 200);\r\n\t\t}, this.carosuelInterval);\r\n\r\n\t\tthis.$pauseplay.on('click', (e: Event) => {\r\n\t\t\t$('.animsvg').toggleClass('showAnim');\r\n\t\t\tif (\r\n\t\t\t\t$('.m-stage-keyvisual-carousel__pauseplay').hasClass(\r\n\t\t\t\t\t'm-stage-keyvisual-carousel__arrow--pause js-m-stage-keyvisual-carousel__arrow--pause'\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\t$('.m-toggle-icon').removeClass('circle');\r\n\t\t\t\t$('.m-stage-keyvisual-carousel__pauseplay').removeClass(\r\n\t\t\t\t\t'm-stage-keyvisual-carousel__arrow--pause js-m-stage-keyvisual-carousel__arrow--pause'\r\n\t\t\t\t);\r\n\t\t\t\t$('.m-stage-keyvisual-carousel__pauseplay').addClass(\r\n\t\t\t\t\t'm-stage-keyvisual-carousel__arrow--play js-m-stage-keyvisual-carousel__arrow--play'\r\n\t\t\t\t);\r\n\t\t\t\tclearInterval(interval);\r\n\t\t\t} else {\r\n\t\t\t\tinterval = setInterval(function () {\r\n\t\t\t\t\tm.evtClickSkipBackOrForth(null, 1);\r\n\t\t\t\t\t$('.animsvg').removeClass('showAnim');\r\n\t\t\t\t\t$('.m-toggle-icon').removeClass('circle');\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t$('.animsvg').addClass('showAnim');\r\n\t\t\t\t\t\t$('.m-toggle-icon').addClass('circle');\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t}, this.carosuelInterval);\r\n\t\t\t\t$('.m-toggle-icon').addClass('circle');\r\n\t\t\t\t$('.m-stage-keyvisual-carousel__pauseplay').addClass(\r\n\t\t\t\t\t'm-stage-keyvisual-carousel__arrow--pause js-m-stage-keyvisual-carousel__arrow--pause'\r\n\t\t\t\t);\r\n\t\t\t\t$('.m-stage-keyvisual-carousel__pauseplay').removeClass(\r\n\t\t\t\t\t'm-stage-keyvisual-carousel__arrow--play js-m-stage-keyvisual-carousel__arrow--play'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinitScroller() {\r\n\t\t//this.initPageDots(0);\r\n\t\tthis.goToPageX(0);\r\n\r\n\t\tvar itemWidth = $(window).width();\r\n\t\tthis.$items.width(itemWidth);\r\n\t\tthis.$list.append(\r\n\t\t\tthis.$items\r\n\t\t\t\t.first()\r\n\t\t\t\t.clone()\r\n\t\t\t\t.addClass(classes.falseItem)\r\n\t\t\t\t.removeClass(classes.activeItem)\r\n\t\t\t\t.width(itemWidth)\r\n\t\t);\r\n\t\tthis.$list.prepend(\r\n\t\t\tthis.$items\r\n\t\t\t\t.last()\r\n\t\t\t\t.clone()\r\n\t\t\t\t.addClass(classes.falseItem)\r\n\t\t\t\t.width(itemWidth)\r\n\t\t);\r\n\t\tthis.$totalPage.text(this.sliderKeyVisualLength);\r\n\t\tthis.$currentPage.text(1);\r\n\t\tif (this.sliderKeyVisualLength == 3) {\r\n\t\t\tthis.$pages.addClass('pages-pc-hide');\r\n\t\t} else if (this.sliderKeyVisualLength == 2) {\r\n\t\t\tthis.$pages.addClass('pages-mobile-visible');\r\n\t\t} else if (this.sliderKeyVisualLength < 2) {\r\n\t\t\tthis.$pages.hide();\r\n\t\t\tthis.$arrowLeft.parent().hide();\r\n\t\t\tthis.$dotWrapper.parent().hide();\r\n\t\t\tthis.$captionWrapper.addClass('alone');\r\n\t\t}\r\n\t}\r\n\r\n\t// Method to click on dots for navigation\r\n\tinitItemDots() {\r\n\t\t$('li.nav__li-dots').each((index: number, elem: HTMLElement) => {\r\n\t\t\t$(elem).on('click', (e: Event) => {\r\n\t\t\t\tthis.setActiveDot(index);\r\n\t\t\t\tthis.goToPageX(index);\r\n\t\t\t\tthis.goToDotX(index);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tinitDotForMobile() {\r\n\t\tlet $elements = $(\"div.js-m-stage-keyvisual-carousel__item\");\r\n\t\tlet startX: any;\r\n\t\tlet startY: any;\r\n\t\tlet sdeltaX: any;\r\n\t\tlet sdeltaY: any;\r\n\t\tlet indexItem: number;\r\n\r\n\t\t$elements.each((index: number, elem: HTMLElement) => {\r\n\t\t\t$(elem).on('touchstart', (e: any) => {\r\n\t\t\t\tif (e.type == \"touchstart\") {\r\n\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\tstartX = e.originalEvent.touches[0].clientX;\r\n\t\t\t\t\tstartY = e.originalEvent.touches[0].clientY;\r\n\t\t\t\t\tindexItem = index - 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$(elem).on('touchend', (e: any) => {\r\n\t\t\t\tlet newItemIndex: number;\r\n\t\t\t\tsdeltaX = Math.ceil(e.originalEvent.changedTouches[0].clientX - startX);\r\n\t\t\t\tsdeltaY = Math.ceil(e.originalEvent.changedTouches[0].clientY - startY);\r\n\t\t\t\tnewItemIndex = sdeltaX < 0 ? index : indexItem === 0 ? this.sliderKeyVisualLength - 1 : indexItem - 1;\r\n\r\n\t\t\t\tthis.setActiveDot(newItemIndex);\r\n\t\t\t\tthis.goToPageX(newItemIndex);\r\n\t\t\t\tthis.goToDotX(newItemIndex);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tinitLiDotForMobile() {\r\n\t\tlet $liElements = $(\"li.js-m-stage-keyvisual-carousel__dot\");\r\n\t\tlet startX: any;\r\n\t\tlet startY: any;\r\n\t\tlet sdeltaX: any;\r\n\t\tlet sdeltaY: any;\r\n\t\tlet indexItem: number;\r\n\r\n\t\t$liElements.each((index: number, elem: HTMLElement) => {\r\n\t\t\t$(elem).on('touchstart', (e: any) => {\r\n\t\t\t\tif (e.type == \"touchstart\") {\r\n\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\tstartX = e.originalEvent.touches[0].clientX;\r\n\t\t\t\t\tstartY = e.originalEvent.touches[0].clientY;\r\n\t\t\t\t\tindexItem = index;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$(elem).on('touchend', (e: any) => {\r\n\t\t\t\tlet newItemIndex: number;\r\n\t\t\t\tsdeltaX = Math.ceil(e.originalEvent.changedTouches[0].clientX - startX);\r\n\t\t\t\tsdeltaY = Math.ceil(e.originalEvent.changedTouches[0].clientY - startY);\r\n\t\t\t\tnewItemIndex = sdeltaX < 0 ? index + 1 : indexItem === 0 ? this.sliderKeyVisualLength - 1 : indexItem - 1;\r\n\r\n\t\t\t\tthis.setActiveDot(newItemIndex);\r\n\t\t\t\tthis.goToPageX(newItemIndex);\r\n\t\t\t\tthis.goToDotX(newItemIndex);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tsetScrollerHeight() {\r\n\t\tvar itemWidth = $(window).width();\r\n\t\tthis.$items.width(itemWidth);\r\n\t\t$('.false-item').width(itemWidth);\r\n\t\tthis.leftWidth = -(this.sliderKeyVisualPageIndex + 1) * itemWidth;\r\n\t\tthis.$captionWrapper.height(140);\r\n\t}\r\n\r\n\tsetActiveDot(pageNumber: number) {\r\n\t\tthis.$caption\r\n\t\t\t.removeClass(classes.activeCaption)\r\n\t\t\t.eq(pageNumber)\r\n\t\t\t.addClass(classes.activeCaption);\r\n\r\n\t\tthis.$videoElement.trigger('pause');\r\n\t\tthis.$items\r\n\t\t\t.eq(pageNumber)\r\n\t\t\t.find('video')\r\n\t\t\t.trigger('play');\r\n\r\n\t\tthis.$captionWrapper.height(this.$caption.eq(pageNumber).innerHeight());\r\n\r\n\t\tthis.$currentPage.text(pageNumber + 1);\r\n\r\n\t\tthis.$dot\r\n\t\t\t.removeClass(classes.activeDot)\r\n\t\t\t.eq(pageNumber)\r\n\t\t\t.addClass(classes.activeDot);\r\n\r\n\t\tvar sliderkeyvisuallength = this.sliderKeyVisualLength;\r\n\t\tif (sliderkeyvisuallength < 3) {\r\n\t\t\tthis.$dotArea.addClass('scroll-inactive');\r\n\t\t} else if (sliderkeyvisuallength == 3) {\r\n\t\t\tthis.$dotArea.addClass('scroll-tabet-active');\r\n\t\t} else if (sliderkeyvisuallength > 3) {\r\n\t\t\tthis.$dotArea.addClass('scroll-active');\r\n\t\t}\r\n\r\n\t\tthis.sliderKeyVisualPageIndex = pageNumber;\r\n\t}\r\n\r\n\tgoToPageX(pageNumber: number) {\r\n\t\tthis.currentPage = pageNumber;\r\n\t\tvar itemPerWidth = 0 - $(window).width();\r\n\t\tvar me = this;\r\n\r\n\t\tvar removeActiveLabelClass = $(\r\n\t\t\t'.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item.active'\r\n\t\t).attr('data-label-color-class');\r\n\t\t$('span.outer-circle')\r\n\t\t\t.find('button')\r\n\t\t\t.removeClass(removeActiveLabelClass);\r\n\t\t$('.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item.active')\r\n\t\t\t.fadeOut()\r\n\t\t\t.removeClass('active');\r\n\r\n\t\tif (pageNumber == 0) {\r\n\t\t\t$('.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item:first')\r\n\t\t\t\t.addClass('active')\r\n\t\t\t\t.fadeIn()\r\n\t\t\t\t.end();\r\n\t\t\tvar labelClassColor = $(\r\n\t\t\t\t'.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item:first'\r\n\t\t\t).attr('data-label-color-class');\r\n\t\t\t$('span.outer-circle')\r\n\t\t\t\t.find('button')\r\n\t\t\t\t.addClass(labelClassColor);\r\n\t\t} else if (pageNumber >= 4) {\r\n\t\t\t$('.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item:first')\r\n\t\t\t\t.addClass('active')\r\n\t\t\t\t.fadeIn()\r\n\t\t\t\t.end();\r\n\t\t\tvar labelClassColor = $(\r\n\t\t\t\t'.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item:first'\r\n\t\t\t).attr('data-label-color-class');\r\n\t\t\t$('span.outer-circle')\r\n\t\t\t\t.find('button')\r\n\t\t\t\t.addClass(labelClassColor);\r\n\t\t} else if (pageNumber < 0) {\r\n\t\t\t$('.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item:nth-child(4)')\r\n\t\t\t\t.addClass('active')\r\n\t\t\t\t.fadeIn()\r\n\t\t\t\t.end();\r\n\t\t\tvar labelClassColor = $(\r\n\t\t\t\t'.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item:nth-child(4)'\r\n\t\t\t).attr('data-label-color-class');\r\n\t\t\t$('span.outer-circle')\r\n\t\t\t\t.find('button')\r\n\t\t\t\t.addClass(labelClassColor);\r\n\t\t} else {\r\n\t\t\t$('.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item')\r\n\t\t\t\t.eq(pageNumber)\r\n\t\t\t\t.addClass('active')\r\n\t\t\t\t.fadeIn()\r\n\t\t\t\t.end();\r\n\t\t\tvar labelClassColor = $('.js-m-stage-keyvisual-carousel__list .js-m-stage-keyvisual-carousel__item')\r\n\t\t\t\t.eq(pageNumber)\r\n\t\t\t\t.attr('data-label-color-class');\r\n\t\t\t$('span.outer-circle')\r\n\t\t\t\t.find('button')\r\n\t\t\t\t.addClass(labelClassColor);\r\n\t\t}\r\n\r\n\t\tif (pageNumber < 0) {\r\n\t\t\tpageNumber = this.sliderKeyVisualLength - 1;\r\n\t\t} else if (pageNumber == this.sliderKeyVisualLength) {\r\n\t\t\tpageNumber = 0;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t$('.false-item').remove();\r\n\t\t}, 500);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t$(window).trigger('resize');\r\n\t\t}, 10);\r\n\r\n\t\tme.setActiveDot(pageNumber);\r\n\t\tme.sliderKeyVisualPageIndex = pageNumber;\r\n\t}\r\n\r\n\tgoToDotX(nextIndex: number) {\r\n\t\tvar sliderkeyvisuallength = this.sliderKeyVisualLength;\r\n\t\tthis.dotIndex = nextIndex;\r\n\t\tif (sliderkeyvisuallength > 2) {\r\n\t\t\tif (screen.width < 768) {\r\n\t\t\t\tvar zeroDot = nextIndex - 1;\r\n\t\t\t\tvar oneDot = nextIndex;\r\n\t\t\t\tvar twoDot = nextIndex + 1;\r\n\t\t\t\tvar threeDot = nextIndex + 2;\r\n\t\t\t\tvar fourDot = nextIndex - 3;\r\n\t\t\t} else {\r\n\t\t\t\tvar zeroDot = nextIndex;\r\n\t\t\t\tvar oneDot = nextIndex + 1;\r\n\t\t\t\tvar twoDot = nextIndex + 2;\r\n\t\t\t\tvar threeDot = nextIndex + 3;\r\n\t\t\t\tvar fourDot = nextIndex;\r\n\t\t\t}\r\n\t\t\tif (oneDot == sliderkeyvisuallength) {\r\n\t\t\t\toneDot = 0;\r\n\t\t\t\ttwoDot = 1;\r\n\t\t\t\tthreeDot = 2;\r\n\t\t\t\tfourDot = 3;\r\n\t\t\t} else if (twoDot == sliderkeyvisuallength) {\r\n\t\t\t\ttwoDot = 0;\r\n\t\t\t\tthreeDot = 1;\r\n\t\t\t\tfourDot = 2;\r\n\t\t\t} else if (threeDot == sliderkeyvisuallength) {\r\n\t\t\t\tthreeDot = 0;\r\n\t\t\t\tfourDot = 1;\r\n\t\t\t} else if (fourDot == sliderkeyvisuallength) {\r\n\t\t\t\tfourDot = 0;\r\n\t\t\t} else if (zeroDot == sliderkeyvisuallength) {\r\n\t\t\t\toneDot = 3;\r\n\t\t\t\ttwoDot = 2;\r\n\t\t\t\tthreeDot = 1;\r\n\t\t\t\tfourDot = 0;\r\n\t\t\t}\r\n\t\t\tthis.$dot.removeClass('pc-prev-zero pc-next-one pc-next-two pc-next-three pc-next-four');\r\n\t\t\t$('.nav__li-dots').removeClass('nav__active');\r\n\r\n\t\t\tthis.$dot.eq(zeroDot).addClass('pc-prev-zero');\r\n\t\t\tthis.$dot.eq(oneDot).addClass('pc-next-one');\r\n\t\t\tthis.$dot.eq(twoDot).addClass('pc-next-two');\r\n\t\t\tthis.$dot.eq(threeDot).addClass('pc-next-three');\r\n\t\t\t$('.nav__li-dots')\r\n\t\t\t\t.eq(oneDot)\r\n\t\t\t\t.addClass('nav__active');\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.$dot.eq(fourDot).addClass('pc-next-four');\r\n\t\t\t}, 300);\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * Click Event for Dots in Slider-Gallery\r\n\t * @param {event} e event\r\n\t * @param {number} index index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tevtClickDot(e: any, index: number) {\r\n\t\tthis.goToPageX(index);\r\n\t}\r\n\r\n\t/**\r\n\t * Click Event for Skip Back/Next slider in Slider-Gallery\r\n\t * @param {event} e event\r\n\t * @param {number} sliderIdxOffset Positive integer value will increase and negative will decrease the slider page\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tevtClickSkipBackOrForth(e: Event, sliderIdxOffset: number) {\r\n\t\tthis.pageFinalNumber = this.dotIndex;\r\n\t\tif (sliderIdxOffset < 0) {\r\n\t\t\tthis.$dotArea.addClass('scroll-left');\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (this.dotIndex == 0) {\r\n\t\t\t\t\tconst nextIndex = this.sliderKeyVisualLength - 1;\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.goToDotX(nextIndex);\r\n\t\t\t\t\t}, 50);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst nextIndex = this.dotIndex + sliderIdxOffset;\r\n\t\t\t\t\tthis.goToDotX(nextIndex);\r\n\t\t\t\t}\r\n\t\t\t}, 50);\r\n\t\t} else {\r\n\t\t\tthis.$dotArea.removeClass('scroll-left');\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (this.dotIndex == this.sliderKeyVisualLength - 1) {\r\n\t\t\t\t\tconst nextIndex = 0;\r\n\t\t\t\t\tthis.goToDotX(nextIndex);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst nextIndex = this.dotIndex + sliderIdxOffset;\r\n\t\t\t\t\tthis.goToDotX(nextIndex);\r\n\t\t\t\t}\r\n\t\t\t}, 50);\r\n\t\t}\r\n\t\tconst nextPage = this.sliderKeyVisualPageIndex + sliderIdxOffset;\r\n\t\tthis.goToPageX(nextPage);\r\n\t}\r\n\r\n\t/**\r\n\t * Slider Page Index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tget sliderKeyVisualPageIndex(): number {\r\n\t\treturn this._sliderKeyVisualPageIndex;\r\n\t}\r\n\r\n\t/**\r\n\t * Slider Page Index\r\n\t * @param {number} value index\r\n\t * @returns {void} return nothing\r\n\t */\r\n\tset sliderKeyVisualPageIndex(value: number) {\r\n\t\tthis._sliderKeyVisualPageIndex = value;\r\n\t}\r\n\r\n\t/**\r\n\t * Scroll to top of the document\r\n\t * @returns {void}\r\n\t */\r\n\r\n\t/**\r\n\t * back-to-top button should contain the 'a-button--anchor' css class that comes from the button modifier 'top'\r\n\t * to separate its click event\r\n\t * @returns {boolean} boolean\r\n\t */\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { addScrollClickTrigger, init as initHashScrolling } from '@project/shared/utils/hashscrolling/js/hashscrolling';\r\n\r\nconst classes: any = {\r\n\tbutton: 'js-m-stage-product__button'\r\n};\r\n\r\n@createModule('StageProduct')\r\n/**\r\n * Stage Product module implementation.\r\n */\r\nexport class StageProduct extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tinitHashScrolling();\r\n\t\taddScrollClickTrigger($(this._ctx).find(`.${classes.button}`));\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {\r\n\t\t// Stop\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { addScrollClickTrigger, init as initHashScrolling } from '@project/shared/utils/hashscrolling/js/hashscrolling';\r\n\r\nconst classes = {\r\n\tbutton: 'js-m-stage-content__button'\r\n};\r\n\r\n@createModule('StageContent')\r\n/**\r\n * Stage Content module implementation.\r\n */\r\nexport class StageContent extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tif(this.$ctx.find(`.${classes.button}`).length > 0) {\r\n\t\t\tthis.handleCtaButtonClick();\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tprivate handleCtaButtonClick(): void {\r\n\t\tconst button = this.$ctx.find(`.${classes.button}`);\r\n\t\tconst url = button.attr('href');\r\n\t\tconst idx = url.indexOf('#');\r\n\r\n\t\tif (idx === -1) {\r\n\t\t\t// The link does not contain a hash.\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst target = $(url.substring(idx));\r\n\t\tif (target.length === 1) {\r\n\t\t\tthis.applyScrollToHandler(button);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate applyScrollToHandler(button: JQuery): void {\r\n\t\tinitHashScrolling();\r\n\t\taddScrollClickTrigger(button);\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { addScrollClickTrigger, init as initHashScrolling } from '@project/shared/utils/hashscrolling/js/hashscrolling';\r\n\r\nconst classes: any = {\r\n\tbutton: 'js-m-stage-compact__button'\r\n};\r\n\r\n@createModule('StageCompact')\r\n/**\r\n * Stage Compact module implementation.\r\n */\r\nexport class StageCompact extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tif(this.$ctx.find(`.${classes.button}`).length > 0) {\r\n\t\t\tthis.handleCtaButtonClick();\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tprivate handleCtaButtonClick(): void {\r\n\t\tconst button = this.$ctx.find(`.${classes.button}`);\r\n\t\tconst url = button.attr('href');\r\n\t\tconst idx = url.indexOf('#');\r\n\r\n\t\tif (idx === -1) {\r\n\t\t\t// The link does not contain a hash.\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst target = $(url.substring(idx));\r\n\t\tif (target.length === 1) {\r\n\t\t\tthis.applyScrollToHandler(button);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate applyScrollToHandler(button: JQuery): void {\r\n\t\tinitHashScrolling();\r\n\t\taddScrollClickTrigger(button);\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\n@createModule('StageCampaign')\r\n/**\r\n * table-filter module implementation.\r\n *\r\n * @author Christoph Merkelbach \r\n */\r\nexport class StageCampaign extends TerrificSpec {\r\n\tticking: boolean = false;\r\n\tscrollArea: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\tthis.scrollArea = $('.js-m-stage-campaign__parallax', $ctx);\r\n\t\tthis.ticking = false;\r\n\r\n\t\twindow.addEventListener('scroll', this.requestScrollTick.bind(this), false);\r\n\t\twindow.addEventListener('resize', this.onResize.bind(this), false);\r\n\r\n\t\tthis.requestScrollTick();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * Debounces animation with browser's requestAnimation Frame to provide performance and\r\n\t * keep page smoothly scrollable even on older machines\r\n\t */\r\n\trequestScrollTick() {\r\n\t\tif (!this.ticking) {\r\n\t\t\trequestAnimationFrame(this.scrollUpdate.bind(this));\r\n\t\t\tthis.ticking = true;\r\n\t\t}\r\n\t}\r\n\r\n\tonResize() {\r\n\t\tthis.requestScrollTick();\r\n\t}\r\n\r\n\tscrollUpdate() {\r\n\t\tconst bgPosition = $(window).scrollTop() * 0.5;\r\n\r\n\t\tthis.scrollArea.css({\r\n\t\t\ttransform: 'translate3d(0, ' + bgPosition + 'px, 0)',\r\n\t\t});\r\n\r\n\t\tthis.ticking = false;\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tcountdown: \"js-m-stage-event__countdown-time\",\r\n\tactiveDays: \"state-m-stage-event__show-days\",\r\n\tshareBtn: \"js-m-stage-event__share-btn\",\r\n\tactiveShare: 'state-m-stage-event__share-container--open',\r\n\tregisterBtn: 'js-m-stage-event__register',\r\n\tregisterForm: 'js-m-stage-event__register-form',\r\n\tactiveRegisterBtn: 'state-m-stage-event__register--open',\r\n\tactiveRegisterForm: 'state-m-stage-event__register--open',\r\n};\r\n\r\n@createModule('StageEvent')\r\nexport class StageEvent extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.initCountdown();\r\n\t\tthis.initShare();\r\n\t\tthis.toggleRegisterForm();\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\tinitCountdown() {\r\n\t\tconst $countdown = this.$ctx.find(`.${classes.countdown}`);\r\n\t\tconst totalseconds = parseInt($countdown.data('second'));\r\n\t\tif (totalseconds > 86400) {\r\n\t\t\t$countdown.text(Math.floor(totalseconds / 24 / 3600));\r\n\t\t\t$countdown.addClass(classes.activeDays)\r\n\t\t} else {\r\n\t\t\tvar me = this;\r\n\t\t\tsetInterval(function () {\r\n\t\t\t\tme.calculator();\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t}\r\n\r\n\tcalculator() {\r\n\t\tconst $countdown = this.$ctx.find(`.${classes.countdown}`);\r\n\t\tconst totalseconds = parseInt($countdown.data('second'));\r\n\t\tconst nextseconds = totalseconds - 1;\r\n\t\tconst h = Math.floor(nextseconds / 3600) < 10 ? '0' + Math.floor(nextseconds / 3600) : Math.floor(nextseconds / 3600);\r\n\t\tconst m = Math.floor((nextseconds / 60 % 60)) < 10 ? '0' + Math.floor((nextseconds / 60 % 60)) : Math.floor((nextseconds / 60 % 60));\r\n\t\tconst s = Math.floor((nextseconds % 60)) < 10 ? '0' + Math.floor((nextseconds % 60)) : Math.floor((nextseconds % 60));\r\n\t\t$countdown.data('second', nextseconds);\r\n\t\t$countdown.text(h + \":\" + m + \":\" + s);\r\n\t}\r\n\r\n\tinitShare() {\r\n\t\tconst $shareBtn = this.$ctx.find(`.${classes.shareBtn}`);\r\n\t\t$shareBtn.on('click', (ev: Event) => {\r\n\t\t\tev.stopPropagation();\r\n\t\t\t$(ev.currentTarget).parent().toggleClass(classes.activeShare);\r\n\t\t});\r\n\t\t$('body').on('click', () => {\r\n\t\t\t$shareBtn.parent().removeClass(classes.activeShare);\r\n\t\t});\r\n\t}\r\n\r\n\ttoggleRegisterForm() {\r\n\t\tconst $registerBtn = this.$ctx.find(`.${classes.registerBtn}`);\r\n\t\tconst $registerForm = this.$ctx.find(`.${classes.registerForm}`);\r\n\t\t$registerBtn.on('click', (ev: Event) => {\r\n\t\t\tev.preventDefault(); // Prevent default anchor behavior\r\n\t\t\t$(ev.currentTarget).toggleClass(classes.activeRegisterBtn);\r\n\t\t\t$registerForm.toggleClass(classes.activeRegisterForm);\r\n\t\t});\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\n@createModule('TableFilter')\r\n/**\r\n * table-filter module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class TableFilter extends TerrificSpec {\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\t$($ctx)\r\n\t\t\t.find('.js-toggle-trigger')\r\n\t\t\t.on('click', this._toggleContainer.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\t_toggleContainer(ev: Event) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tif (viewport !== 'small') {\r\n\t\t\t$($ctx)\r\n\t\t\t\t.find('.js-toggle-trigger')\r\n\t\t\t\t.toggleClass('state-m-table-filter--active');\r\n\t\t\t$($ctx)\r\n\t\t\t\t.find('.js-toggle-container')\r\n\t\t\t\t.toggleClass('state-m-table-filter--active');\r\n\t\t} else {\r\n\t\t\t$('.m-table-filter').toggleClass('m-table-filter--open');\r\n\t\t\t$('.m-table-filter__container').toggleClass('state-m-table-filter--active');\r\n\t\t}\r\n\t}\r\n\r\n\tcloseContainer() {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\t$(window).trigger('enablePreventStickyHeaderAppearing');\r\n\t\t$($ctx)\r\n\t\t\t.find('.js-toggle-trigger')\r\n\t\t\t.removeClass('state-m-table-filter--active');\r\n\t\t$($ctx)\r\n\t\t\t.find('.js-toggle-container')\r\n\t\t\t.removeClass('state-m-table-filter--active');\r\n\r\n\t\tif (viewport === 'small') {\r\n\t\t\t$('.m-table-filter').removeClass('m-table-filter--open');\r\n\t\t\t$('.m-table-filter__container').removeClass('state-m-table-filter--active');\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t$(window).trigger('disablePreventStickyHeaderAppearing');\r\n\t\t}, 100);\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\t/**\r\n\t * method to trigger public event\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\n@createModule('TableFilterV2')\r\n/**\r\n * table-filter module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class TableFilterV2 extends TerrificSpec {\r\n\t\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\t// $($ctx)\r\n\t\t// \t.find('.js-toggle-trigger')\r\n\t\t// \t.on('click', this._toggleContainer.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\t/**\r\n\t * method to trigger public event\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\titemBtn: 'm-talk__btn'\r\n};\r\n\r\n@createModule('Talk')\r\n/**\r\n * Talk module implementation.\r\n *\r\n */\r\nexport class Talk extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.RegisteredUpdate();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tRegisteredUpdate() {\r\n\t\tif(Track.isKnownMarketoLead()) {\r\n\t\t\tthis.$ctx.removeClass('m-talk--locked');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tdetailsWrap: 'js-m-talks__details-wrap',\r\n\tdetails: 'js-m-talks__details',\r\n\tlistButton: 'js-m-talks__list-button',\r\n\tstateButtonActive: 'state-m-talks__list-button--active',\r\n\tlist: 'js-m-talks__list',\r\n\taccordionButton: 'js-m-talks__accordion',\r\n\tstateAccordionOpen: 'state-m-talks__accordion--active',\r\n\tleftImage: 'm-talks__left-image',\r\n\tleftImageItem: 'js-m-talks__left-image-item',\r\n\tstatImageVisible: 'state-m-talks__left-image-item--visible',\r\n};\r\n\r\n@createModule('Talks')\r\n/**\r\n * talks module implementation.\r\n *\r\n */\r\nexport class Talks extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$detailsWrap: JQuery;\r\n\t$details: JQuery;\r\n\t$listButton: JQuery;\r\n\t$list: JQuery;\r\n\t$accordionButton: JQuery;\r\n\t$leftImage: JQuery;\r\n\t$leftImageItem: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$detailsWrap = this.$ctx.find(`.${classes.detailsWrap}`);\r\n\t\tthis.$details = this.$ctx.find(`.${classes.details}`);\r\n\t\tthis.$list = this.$ctx.find(`.${classes.list}`);\r\n\t\tthis.$listButton = this.$ctx.find(`.${classes.listButton}`);\r\n\t\tthis.$accordionButton = this.$ctx.find(`.${classes.accordionButton}`);\r\n\t\tthis.$leftImage = this.$ctx.find(`.${classes.leftImage}`);\r\n\t\tthis.$leftImageItem = this.$ctx.find(`.${classes.leftImageItem}`);\r\n\r\n\t\tthis.$leftImageItem.eq(0).addClass(classes.statImageVisible);\r\n\t\tthis.$listButton.eq(0).addClass(classes.stateButtonActive);\r\n\t\tthis.$details.attr('data-talk-selected', 0);\r\n\r\n\t\tthis.setHeight();\r\n\t\t$(window).on('resize', this.setHeight.bind(this));\r\n\r\n\t\tthis.$listButton.on('click', this.onTriggerClick.bind(this));\r\n\t\tthis.$accordionButton.on('click', this.accordionToggle.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\t// Set the background of color black\r\n\tsetHeight() {\r\n\t\tthis.$details.css('max-height', this.$details.children(\".m-talks__accordion-panel\")[0].offsetHeight);\r\n\t\tsetTimeout(() => {\r\n\t\t\tif(this.$leftImage.length > 0) {\r\n\t\t\t\tthis.$detailsWrap.css('min-height', this.$list.height() + 412);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$detailsWrap.css('min-height', this.$list.height() - 20);\r\n\t\t\t}\r\n\t\t}, 300);\r\n\t}\r\n\r\n\tonTriggerClick(ev: any) {\r\n\t\t$(ev.currentTarget).parent().siblings().children().removeClass(classes.stateButtonActive);\r\n\t\t$(ev.currentTarget).addClass(classes.stateButtonActive);\r\n\t\tthis.$details.attr('data-talk-selected', $(ev.currentTarget).parent().index());\r\n\t\tthis.$leftImageItem.removeClass(classes.statImageVisible);\r\n\t\tthis.$leftImageItem.eq($(ev.currentTarget).parent().index()).addClass(classes.statImageVisible);\r\n\t\tthis.$details.css('max-height', this.$details.children(\".m-talks__accordion-panel\")[$(ev.currentTarget).parent().index()].offsetHeight);\r\n\t};\r\n\r\n\taccordionToggle(ev: any) {\r\n\t\t$(ev.currentTarget).siblings().removeClass(classes.stateAccordionOpen);\r\n\t\t$(ev.currentTarget).toggleClass(classes.stateAccordionOpen);\r\n\t};\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\nconst classes = {\r\n\tstateActive: 'state-m-teaser-benefit--active',\r\n\tongoingTransition: 'state-m-teaser-benefit--ongoing-transition',\r\n};\r\n\r\n@createModule('TeaserBenefit')\r\n/**\r\n * teaser-benefit module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class TeaserBenefit extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\t$(this.$ctx).on('click', (event: Event) => {\r\n\t\t\tthis._triggerAccordion(event);\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\r\n\t_triggerAccordion(event: Event) {\r\n\t\tconst $currentTarget = $(event.currentTarget);\r\n\t\t$currentTarget.toggleClass(classes.stateActive);\r\n\r\n\t\tif ($currentTarget.hasClass(classes.ongoingTransition)) {\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\t$currentTarget.removeClass(classes.ongoingTransition);\r\n\t\t\t}, 620);\r\n\t\t} else {\r\n\t\t\t$currentTarget.addClass(classes.ongoingTransition);\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\n\r\nimport 'select2'; // globally assign select2 fn to $ element\r\n\r\nconst classes = {\r\n\r\n\tsubmitForm: 'js-form__button-event--submit',\r\n\tcancelForm: 'js-form__button-event--cancel',\r\n\tfocusElement: 'js-form__event-show-additional-fields',\r\n\tadditionalFields: 'js-form__additional-fields',\r\n\tstateFormOrderAdditionalFieldsVisible: 'state-m-teaser-contact-form--show-additional-fields',\r\n\tstateFormOrderHiddenAfterSubmit: 'state-m-teaser-contact-form--hidden-after-submit',\r\n\tinputSelect: 'js-form__input-select',\r\n\tinput:'js-form__input',\r\n\tinputCheckBox:'a-input-checkbox__input',\r\n\tinquiryTypeInputSelect: \"js-form__input-inquiry-type\",\r\n\tsdsLinkColumn: \"js-o-form__grid-col-sds-link\",\r\n\tinquiryTextboxColumn: \"js-o-form__grid-col-inquiry-textbox\",\r\n\r\n\tinputSelectCategoryType: \"js-form__input-category-type\",\r\n\tinputSelectCheckMark: 'a-input-select--global-has-check',\r\n\tcategoryInputContainer: \"o-form__grid-col--input-category\",\r\n\tcategoryInputField: 'js-a-input--category',\r\n};\r\n\r\nconst optionValues = {\r\n\tother: \"other\",\r\n\tproductSafetyDataSheets: \"product safety data sheets\"\r\n}\r\n\r\n@createModule('TeaserContactForm')\r\n/**\r\n * teaser-contact-form module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class TeaserContactForm extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$inputSelect: JQuery;\r\n\t$inputCheckBox:JQuery;\r\n\t$input: JQuery;\r\n\r\n\tfocusFromScrollReached: boolean = false;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\r\n\t\tthis.initFormHadling();\r\n\r\n\t\tthis.onClickAnchor();\r\n\t\tthis.onClickLink($('.js-m-stage-product__button'));\r\n\t\tif ($('.js-m-stage-product__button').length > 0) {\r\n\t\t\tthis.onClickLink($('.js-m-navigation-in-page__cta'));\r\n\t\t}\r\n\r\n\t\t$('.js-m-navigation-in-page__list-items').on(\"click\", '[href=\"#' + formID + '\"]', (ev: Event) => {\r\n\t\t\tev.preventDefault();\r\n\t\t\tthis.onFocusAreaFocus();\r\n\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t});\r\n\t\t// this.$ctx.on('scrollReached', this.onScrollReached.bind(this)); //remove feature again due to customer request\r\n\r\n\t\tif (this.$ctx.data('api-endpoint')) {\r\n\t\t\tthis.prefillFormData();\r\n\t\t}\r\n\r\n\t\tthis.$inputSelect = this.$ctx.find(`.${classes.inputSelect}`);\r\n\t\tthis.$inputCheckBox = this.$ctx.find(`.${classes.inputCheckBox}`);\r\n\t\tthis.$input = this.$ctx.find(`.${classes.input}`);\r\n\t\tthis.$inputSelect.on('change', (ev: Event) => this.inputSelecteOptionChanged(ev));\r\n\t\tthis.addOtherOptionForMaterialTag();\r\n\t\tthis.setMaterialTagDefaultValue();\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitFormHadling() {\r\n\t\tthis.$ctx.on('focus', `.${classes.focusElement}`, this.onFocusAreaFocus.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.cancelForm}`, this.onCancleClick.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.submitForm}`, this.onFormSubmit.bind(this));\r\n\t}\r\n\r\n\tonFocusAreaFocus() {\r\n\t\tthis.$ctx.find(`.${classes.additionalFields}`).addClass(classes.stateFormOrderAdditionalFieldsVisible);\r\n\t\tif (!this.focusFromScrollReached) {\r\n\t\t\tif ($('.js-m-navigation-in-page__wrapper').length > 0) {\r\n\t\t\t\tscrollToElement(this.$ctx, true, $('.js-m-navigation-in-page__wrapper').height() + 20);\r\n\t\t\t} else {\r\n\t\t\t\tscrollToElement(this.$ctx, true, 70);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.focusFromScrollReached = false;\r\n\t\t}\r\n\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t}\r\n\r\n\tonCancleClick() {\r\n\t\tthis.$ctx.find(`.${classes.additionalFields}`).removeClass(classes.stateFormOrderAdditionalFieldsVisible);\r\n\t\tscrollToElement(this.$ctx, true);\r\n\t}\r\n\r\n\tonFormSubmit(ev: Event) {\r\n\t\tconst $materialTag: any = this.$ctx.find('select[data-sc-field-name=\"materialTag\"]');\r\n\t\tvar validate=true;\r\n\t\tthis.$inputSelect.each(function(index,item){\r\n\t\t\tvar dataValRequired=$(item).attr(\"data-val\");\r\n\t\t\tif( typeof dataValRequired!== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null){\r\n\t\t\t\tif($(item).val()==\"\")\r\n\t\t\t\t{\r\n\t\t\t\t\t$(item).addClass(\"state-a-input--has-error\");\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').text($(item).attr(\"data-val-required\"));\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t\t\tvalidate=false;\r\n\t\t\t\t}\r\n\t\t\t}});\r\n\r\n\t\t\tthis.$input.each(function(index,item){\r\n\t\t\t\tvar dataValRequired=$(item).attr(\"data-val\");\r\n\t\t\t\tif( typeof dataValRequired!== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null){\r\n\t\t\t\t\tif($(item).val()==\"\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t$(item).addClass(\"input-validation-error\");\r\n\t\t\t\t\t\t$(item).nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t\t\t\t$(item).nextAll('.field-validation-valid').text($(item).attr(\"data-val-required\"));\r\n\t\t\t\t\t\tvalidate=false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}});\r\n\r\n\t\t\tthis.$inputCheckBox.each(function(index,item){\r\n\t\t\t\t\tvar dataValRequired=$(item).attr(\"data-val\");\r\n\t\t\t\t\tif( typeof dataValRequired!== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null){\r\n\t\t\t\t\t\tif(!$(item).is(':checked'))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t$(item).addClass(\"input-validation-error\");\r\n\t\t\t\t\t\t\tvalidate=false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}});\r\n\r\n\t\t\tif(!validate)\r\n\t\t\t{\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t}\r\n\t\tthis.$ctx.addClass(classes.stateFormOrderHiddenAfterSubmit);\r\n\t}\r\n\r\n\t/*onScrollReached() { //remove feature again due to customer request\r\n\t\tthis.focusFromScrollReached = true;\r\n\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t}*/\r\n\r\n\tonClickAnchor() {\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$('[href=\"#' + formID + '\"]')\r\n\t\t\t.unbind(\"click\")\r\n\t\t\t.on(\"click\", (ev: Event) => {\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t\tthis.onFocusAreaFocus();\r\n\t\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t\t});\r\n\t}\r\n\r\n\tonClickLink($el: JQuery) {\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$el.on('click', (ev: JQuery.Event) => {\r\n\t\t\tev.preventDefault();\r\n\t\t\tconst url = $el.attr('href');\r\n\t\t\tconst anchorIdx = url.indexOf('#' + formID);\r\n\t\t\tif (anchorIdx != -1) {\r\n\t\t\t\tthis.onFocusAreaFocus();\r\n\t\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprefillFormData() {\r\n\t\tconst serviceUrl = this.$ctx.data('api-endpoint');\r\n\r\n\t\tif (serviceUrl) {\r\n\t\t\t$.ajax({\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\turl: serviceUrl,\r\n\t\t\t\tsuccess: (jsonData: any) => {\r\n\t\t\t\t\tfor (let key in jsonData) {\r\n\t\t\t\t\t\tconst $input = this.$ctx.find('input[data-sc-field-name=\"' + key + '\"]');\r\n\t\t\t\t\t\t$input.val(jsonData[key]);\r\n\t\t\t\t\t\t$input.trigger('change');\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinputSelecteOptionChanged(ev: any) {\r\n\t\tconst opt: string = ev.currentTarget.value.toLowerCase();\r\n\t\tconst $target: any = $(ev.currentTarget);\r\n\r\n\t\tif($target.val()!==\"\")\r\n\t\t{\r\n\t\t\t$target.removeClass(\"state-a-input--has-error\");\r\n\t\t\t$target.nextAll('.field-validation-valid').text(\"\");\r\n\t\t\t$target.nextAll('.field-validation-valid').removeClass('field-validation-error');\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvar dataValRequired=$target.attr(\"data-val\");\r\n\t\t\tif( typeof dataValRequired!== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null){\r\n\t\t\t$target.addClass(\"state-a-input--has-error\");\r\n\t\t\t$target.nextAll('.field-validation-valid').text($target.attr(\"data-val-required\"));\r\n\t\t\t$target.nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Inquiry Type dropdown\r\n\t\tif ($target.hasClass(classes.inquiryTypeInputSelect)) {\r\n\r\n\t\t\tconst $sdsLinkCol: any = this.$ctx.find(`.${classes.sdsLinkColumn}`);\r\n\t\t\tconst $sdsTextboxCol: any = this.$ctx.find(`.${classes.inquiryTextboxColumn}`);\r\n\r\n\t\t\tlet showCheckMark = false;\r\n\t\t\t// show SDS link\r\n\t\t\tif (opt === optionValues.productSafetyDataSheets) {\r\n\t\t\t\t$sdsLinkCol.css(\"display\", \"flex\");\r\n\t\t\t\tshowCheckMark = true;\r\n\t\t\t} else {\r\n\t\t\t\t$sdsLinkCol.css(\"display\", \"none\");\r\n\t\t\t}\r\n\r\n\t\t\t// show SDS textbox\r\n\t\t\tif (opt === optionValues.other) {\r\n\t\t\t\t$('input[data-sc-field-name=\"otherInquiryType\"]').val(\"\");\r\n\t\t\t\t$sdsTextboxCol.show();\r\n\t\t\t\tshowCheckMark = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$('input[data-sc-field-name=\"otherInquiryType\"]').val(\"-\");\r\n\t\t\t\t$sdsTextboxCol.hide();\r\n\t\t\t}\r\n\r\n\t\t\tif (showCheckMark) {\r\n\t\t\t\t$target.addClass(classes.inputSelectCheckMark);\r\n\t\t\t} else {\r\n\t\t\t\t$target.removeClass(classes.inputSelectCheckMark);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Category Type dropdown\r\n\t\tif ($target.hasClass(classes.inputSelectCategoryType)) {\r\n\r\n\t\t\tconst $categoryInputContainer: any = this.$ctx.find(`.${classes.categoryInputContainer}`);\r\n\t\t\tconst $firstInput: any = this.$ctx.find(\".a-input-first .js-a-input--first-name\");\r\n\r\n\t\t\tif (opt === optionValues.other.toLowerCase()) {\r\n\t\t\t\t$('input[data-sc-field-name=\"OtherCategory\"]').val(\"\");\r\n\t\t\t\t$categoryInputContainer.show();\r\n\t\t\t\t$target.addClass(classes.inputSelectCheckMark);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t$categoryInputContainer\r\n\t\t\t\t\t\t.find(classes.categoryInputField)\r\n\t\t\t\t\t\t.focus()\r\n\t\t\t\t\t\t.select();\r\n\t\t\t\t}, 150);\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$('input[data-sc-field-name=\"OtherCategory\"]').val(\"-\");\r\n\t\t\t\t$categoryInputContainer.hide();\r\n\t\t\t\t$target.removeClass(classes.inputSelectCheckMark);\r\n\t\t\t\tif ($firstInput.length > 0) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tif ($firstInput.val().length < 1) {\r\n\t\t\t\t\t\t\t$firstInput.focus().select();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 150);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Add Other Optioin For MaterialTag field\r\n\t * @returns {void}\r\n\t */\r\n\taddOtherOptionForMaterialTag()\r\n\t{\r\n\t\t var otherText=$('#OtherText').val();\r\n\t\t var otherValue=$('#OtherValue').val();\r\n\t\t const $materialTag: any = this.$ctx.find('select[data-sc-field-name=\"materialTag\"]');\r\n\r\n\t\t if ($materialTag.length > 0) {\r\n\t\t\t$('select[data-sc-field-name=\"materialTag\"]').append(``);\r\n\t\t}\r\n\t}\r\n\r\n\tsetMaterialTagDefaultValue()\r\n\t{\r\n\t\tvar urlParams = new URLSearchParams(window.location.search);\r\n\t\tvar meterialTag=$('#SelectTag').val();\r\n\t\tif(urlParams.has('materialtag'))\r\n\t\t{\r\n\t\t\tmeterialTag=urlParams.get('materialtag');\r\n\t\t}\r\n\t\t$('select[data-sc-field-name=\"materialTag\"]').val(meterialTag);\r\n\t}\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\toverlayButton: 'js-m-teaser-video__overlay-button',\r\n\toverlayArea: 'js-m-teaser-video__overlay',\r\n\tbuttonClose: 'js-m-teaser-video__close'\r\n};\r\n\r\n@createModule('TeaserVideo')\r\n/**\r\n * TeaserVideo module implementation.\r\n *\r\n * @author Ellen Xia\r\n */\r\nexport class TeaserVideo extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$overlayButton: JQuery;\r\n\t$overlayArea: JQuery;\r\n\t$buttonClose: JQuery;\r\n\t\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$overlayButton = $(`.${classes.overlayButton}`, this.$ctx);\r\n\t\tthis.$overlayArea = $(`.${classes.overlayArea}`, this.$ctx);\r\n\t\tthis.$buttonClose = $(`.${classes.buttonClose}`, this.$ctx);\r\n\r\n\t\tthis.showTeaserVideo();\r\n\t\tthis.hideTeaserVideo();\r\n\t\t\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\tshowTeaserVideo() {\r\n\t\tthis.$overlayButton.on('click',\r\n\t\t() => {\r\n\t\t\t// Show dialog\r\n\t\t\tthis.$ctx.addClass('state-m-teaser-video--visible');\r\n\t\t\t$('html').addClass('no-scrolling--without-scrollbar');\r\n\t\t\t// Start playback\r\n\t\t\tthis.startVideoPlayback();\r\n\t\t})\r\n\t}\r\n\t\r\n\thideTeaserVideo() {\r\n\t\tthis.$buttonClose.on('click',\r\n\t\t() => {\r\n\t\t\t// Stop playback\r\n\t\t\tthis.stopVideoPlayback();\r\n\t\t\t// Close dialog\r\n\t\t\tthis.$ctx.removeClass('state-m-teaser-video--visible ');\r\n\t\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t\t})\r\n\t}\r\n\r\n\tprivate startVideoPlayback() : void{\r\n\t\tconst player = this.getVideoPlayer();\r\n\t\tif (player) player.play();\r\n\t}\r\n\r\n\tprivate stopVideoPlayback() : void{\r\n\t\tconst player = this.getVideoPlayer();\r\n\t\tif (player) player.pause();\r\n\t}\r\n\r\n\tprivate getVideoPlayer() : any{\r\n\t\tif ((window as any).VideoPlayer === undefined || (window as any).VideoPlayer.Collection === undefined ) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst componentId = this.$ctx.find(\"[data-t-name=VideoComponent]\").data(\"t-id\");\r\n\t\tif (componentId === undefined || !componentId) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst playerId = `a-video__mi-player-${componentId}`;\r\n\t\t\treturn (window as any).VideoPlayer.Collection.getPlayerById(playerId);\t\r\n\t\t} catch (error) {\r\n\t\t\t// The remote library throws an exception when the video is not yet started.\r\n\t\t\t// This is also the case when the video is lazy-loading, and the user did not click start yet.\r\n\t\t\t// See: https://doc.movingimage.com/display/JA/VideoPlayer.Collection+Object\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\titemBtn: 'm-teaser-large__caption-button'\r\n};\r\n\r\n//const data = require('../_data/teaser-large.json');\r\n@createModule('TeaserLarge')\r\n/*\r\n * teaser-large module implementation.\r\n */\r\nexport class TeaserLarge extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\ttitle: any;\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tvar title = $('.m-teaser-large__caption-title');\r\n\t\t\tvar description = $('.m-teaser-large__caption');\r\n\t\t\tif (title.hasClass('SL') || description.hasClass('SL')) {\r\n\t\t\t\t$('.m-teaser-large__caption-title').removeClass('large').addClass('small');\r\n\t\t\t\t$('.m-teaser-large__caption').removeClass('small').addClass('large');\r\n\t\t\t} else if (title.hasClass('LS') || description.hasClass('LS')) {\r\n\t\t\t\t$('.m-teaser-large__caption-title').removeClass('small').addClass('large');\r\n\t\t\t\t$('.m-teaser-large__caption').removeClass('large').addClass('small');\r\n\t\t\t} else if (title.hasClass('LL') || description.hasClass('LL')) {\r\n\t\t\t\t$('.m-teaser-large__caption-title').removeClass('small').addClass('large');\r\n\t\t\t\t$('.m-teaser-large__caption').removeClass('small').addClass('large');\r\n\t\t\t} else if (title.hasClass('SS') || description.hasClass('SS')) {\r\n\t\t\t\t$('.m-teaser-large__caption-title').removeClass('large').addClass('small');\r\n\t\t\t\t$('.m-teaser-large__caption').removeClass('large').addClass('small');\r\n\t\t\t}\r\n\t\t}, 0);\r\n\t\t\r\n\t\tthis.RegisteredUpdate();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tRegisteredUpdate() {\r\n\t\tif (Track.isKnownMarketoLead()) {\r\n\t\t\tthis.$ctx.removeClass('m-teaser-large--locked');\r\n\t\t}\r\n\t}\r\n\r\n\tstop() { }\r\n\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\ttextArea: 'm-teaser-event__text-area'\r\n};\r\n\r\n@createModule('TeaserEvent')\r\n/**\r\n * TeaserEvent module implementation.\r\n *\r\n * @author Sandy Zhao\r\n */\r\nexport class TeaserEvent extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.initHeight();\r\n\t\t$(window).resize(() => this.initHeight());\r\n\t\t\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitHeight(){\r\n\t\tvar textAreaHeight = this.$ctx.find(`.${classes.textArea}`).height() + 88;\r\n\t\tthis.$ctx.css(\"min-height\",textAreaHeight);\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport 'tooltipster';\r\n\r\nconst classes = {\r\n\tstateTooltipVisible: 'state-m-tooltip--is-visible',\r\n\tstateHeaderPos0: 'state-m-navigation--scroll-0-position',\r\n\ttooltipCloser: 'js-m-tooltip__closer',\r\n};\r\n\r\n@createModule('Tooltip')\r\n/**\r\n * tooltip module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class Tooltip extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\t$ctx.hide();\r\n\r\n\t\tconst $trigger = this._getTriggerElement();\r\n\r\n\t\tthis.initTooltip();\r\n\r\n\t\tif ($ctx.hasClass(`${classes.stateTooltipVisible}`)) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\t$trigger.trigger('click');\r\n\t\t\t}, 1000);\r\n\t\t\t$ctx.removeClass(`${classes.stateTooltipVisible}`);\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\tinitTooltip() {\r\n\t\tconst $trigger = this._getTriggerElement() as any;\r\n\t\tconst content = this._getTooltipContent();\r\n\t\t$trigger.tooltipster({\r\n\t\t\ttheme: 'tooltipster-shadow',\r\n\t\t\tcontent: content,\r\n\t\t\tcontentAsHTML: true,\r\n\t\t\ttrigger: 'click',\r\n\t\t\tinteractive: true,\r\n\t\t\tzIndex: 2,\r\n\t\t\tfunctionReady(instance: any) {\r\n\t\t\t\tinstance._$tooltip.on('click', `.${classes.tooltipCloser}`, (ev: Event) => {\r\n\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t$trigger.trigger('click');\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tfunctionPosition(instance: any, helper: any, position: any) {\r\n\t\t\t\t// fine tuning of tooltip position relative to trigger element\r\n\t\t\t\tif (position.side === 'top') {\r\n\t\t\t\t\tposition.coord.top -= 16;\r\n\t\t\t\t\tposition.coord.left += 8;\r\n\t\t\t\t} else if (position.side === 'bottom') {\r\n\t\t\t\t\tposition.coord.top += 4;\r\n\t\t\t\t}\r\n\t\t\t\treturn position;\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\t_getTooltipContent() {\r\n\t\treturn $(this._ctx).html();\r\n\t}\r\n\t_getTriggerElement() {\r\n\t\treturn $(this._ctx).prev();\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tactionsBtn: 'js-m-tooltip-actions__btn',\r\n\tstatePopupShow: 'state-m-tooltip-actions--open',\r\n\tactionsClose: 'm-tooltip-actions__close-layer',\r\n\tactionsPopup: 'js-m-tooltip-actions__popup',\r\n\tactionItem: 'js-m-tooltip-actions__list-item',\r\n};\r\n\r\n@createModule('TooltipActions')\r\n/**\r\n * Tooltip Actions\r\n *\r\n */\r\nexport class TooltipActions extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.showActions();\r\n\t\tthis.hideActions(); \r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tshowActions() {\r\n\t\tconst $actionsBtn = this.$ctx.find(`.${classes.actionsBtn}`);\r\n\t\t$actionsBtn.on('click', this._openActionsPopup.bind(this));\r\n\t}\r\n\r\n\t_openActionsPopup(ev: any) {\r\n\t\tif (!$(ev.currentTarget).parent().hasClass(classes.statePopupShow)) {\r\n\t\t\t$(ev.currentTarget).parent().addClass(classes.statePopupShow);\r\n\t\t} else {\r\n\t\t\t$(ev.currentTarget).parent().removeClass(classes.statePopupShow);\r\n\t\t}\r\n\t}\r\n\r\n\thideActions() {\r\n\t\tconst $actionsClose = this.$ctx.find(`.${classes.actionsClose}`);\r\n\t\t$actionsClose.on('click', this._hideActionsPopup.bind(this));\r\n\r\n\t\tconst $actionsPopup = this.$ctx.find(`.${classes.actionsPopup}`);\r\n\t\t$actionsPopup.on('click', this._hideActionsPopup.bind(this));\r\n\t}\r\n\r\n\t_hideActionsPopup() {\r\n\t\tthis.$ctx.removeClass(classes.statePopupShow);\r\n\t}\r\n \r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\tleftControl: 'js-m-scrollable-teaser__left-control',\r\n\trightControl: 'js-m-scrollable-teaser__right-control',\r\n\thiddenControl: 'state-m-scrollable-teaser__slider-arrow-hidden',\r\n\tscrollWrapper: \"js-m-scrollable-teaser__scroll-wrapper\",\r\n\theadWrapper: \"js-m-scrollable-teaser__head\",\r\n\tcontentWrapper: \"js-m-scrollable-teaser__content\",\r\n\tcontentScrollWrapper: \"js-m-scrollable-teaser__content-scroll\",\r\n\tlistWrapper: \"js-m-scrollable-teaser__list\",\r\n\tteaserItem: \"js-m-scrollable-teaser__list-item\",\r\n\tvideoWrapper: \"js-m-scrollable-teaser-item__video-area\",\r\n\tlargeTeaser: 'm-scrollable-teaser__list-item--large',\r\n\ttimelineItem: \"js-m-scrollable-teaser__timeline-item\",\r\n\ttimelineItemBar: \"m-scrollable-teaser-item__time-bar\",\r\n\tdisabledSilder: 'm-scrollable-teaser--disabled-silder',\r\n\tteaserItemGated: 'm-scrollable-teaser-item--gated',\r\n\tmainContainer: \"js-m-scrollable-teaser__main-scroll-wrapper\"\r\n};\r\n\r\n@createModule('ScrollableTeaser')\r\n/**\r\n * scrollable-teaser module implementation.\r\n */\r\n\r\nexport class ScrollableTeaser extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$leftControl: JQuery;\r\n\t$rightControl: JQuery;\r\n\t$scrollWrapper: JQuery;\r\n\t$headWrapper: JQuery;\r\n\t$contentWrapper: JQuery;\r\n\t$contentScrollWrapper: JQuery;\r\n\t$listWrapper: JQuery;\r\n\t$teaserItem: JQuery;\r\n\t$videoWrapper: JQuery;\r\n\t$timelineItem: JQuery;\r\n\t$teaserItemGated: JQuery;\r\n\t$mainContainer: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.initVars();\r\n\t\tthis.initNavigationArrows();\r\n\t\tthis.initScroll();\r\n\t\tthis.onScroll();\r\n\t\tthis.onVideoTeaserClick();\r\n\t\tif (this.$timelineItem) {\r\n\t\t\tthis.initTimelineTeaser();\r\n\t\t}\r\n\t\tonBreakpointChange(() => {\r\n\t\t\tthis.initNavigationArrows();\r\n\t\t\tthis.onScroll();\r\n\t\t\tif (this.$timelineItem) {\r\n\t\t\t\tthis.initTimelineTeaser();\r\n\t\t\t}\r\n\t\t});\r\n\t\t$(window).resize(() => {\r\n\t\t\tthis.initScroll();\r\n\t\t});\r\n\r\n\t\tthis.RegisteredUpdate();\r\n\r\n\t\t\r\n\t\t$('.js-o-home-scrollable-teaser__tab-link').on('click', () => {\r\n this.showHideScroll();\r\n });\r\n\t\t\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitVars() {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$leftControl = $(`.${classes.leftControl}`, this.$ctx);\r\n\t\tthis.$rightControl = $(`.${classes.rightControl}`, this.$ctx);\r\n\t\tthis.$scrollWrapper = $(`.${classes.scrollWrapper}`, this.$ctx);\r\n\t\tthis.$headWrapper = $(`.${classes.headWrapper}`, this.$ctx);\r\n\t\tthis.$contentWrapper = $(`.${classes.contentWrapper}`, this.$ctx);\r\n\t\tthis.$contentScrollWrapper = $(`.${classes.contentScrollWrapper}`, this.$ctx);\r\n\t\tthis.$listWrapper = $(`.${classes.listWrapper}`, this.$ctx);\r\n\t\tthis.$teaserItem = $(`.${classes.teaserItem}`, this.$ctx);\r\n\t\tthis.$videoWrapper = $(`.${classes.videoWrapper}`, this.$ctx);\r\n\t\tthis.$timelineItem = $(`.${classes.timelineItem}`, this.$ctx);\r\n\t\tthis.$teaserItemGated = $(`.${classes.teaserItemGated}`, this.$ctx);\r\n\t\tthis.$mainContainer = $(`.${classes.mainContainer}`, this.$ctx).length > 0 ? $(`.${classes.mainContainer}`, this.$ctx) : this.$ctx.closest(`.${classes.mainContainer}`);\r\n\t}\r\n\tinitNavigationArrows() {\r\n\t\tthis.$leftControl.on('click', () => {\r\n\t\t\tthis.onLeftControlClick();\r\n\t\t});\r\n\r\n\t\tthis.$rightControl.on('click', () => {\r\n\t\t\tthis.onRightControlClick()\r\n\t\t});\r\n\t}\r\n\r\n\tinitScroll() {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'small') {\r\n\t\t\tif (this.$listWrapper.width() < this.$contentScrollWrapper.width()) {\r\n\t\t\t\tthis.$ctx.addClass(classes.disabledSilder);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$ctx.removeClass(classes.disabledSilder);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (viewport === 'large' || viewport === 'extra-large') {\r\n\t\t\tif (this.$headWrapper.width() + this.$listWrapper.width() < this.$mainContainer.width()) {\r\n\t\t\t\tthis.$ctx.addClass(classes.disabledSilder);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$ctx.removeClass(classes.disabledSilder);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.showHideScroll();\r\n\t}\r\n\tonVideoTeaserClick() {\r\n\t\tthis.$videoWrapper.on('click', (ev: any) => {\r\n\t\t\t$(ev.currentTarget).parents(`.${classes.teaserItem}`).addClass(classes.largeTeaser);\r\n\t\t\t$(ev.currentTarget).closest('li').siblings().removeClass(classes.largeTeaser);\r\n\r\n\t\t\tvar itemWidth = 365;\r\n\t\t\tvar headWidth = this.$headWrapper.width();\r\n\t\t\tvar videoLeft = $(ev.currentTarget).closest('li').index() * itemWidth + headWidth;\r\n\t\t\tvar videoCurrentLeft = videoLeft + 641 - this.$scrollWrapper.width();\r\n\t\t\tvar currentScrollLeft = this.$scrollWrapper.scrollLeft();\r\n\t\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\t\tif (!$(ev.currentTarget).hasClass(classes.largeTeaser) || viewport === 'medium' || viewport === 'large' || viewport === 'extra-large') {\r\n\t\t\t\tif (currentScrollLeft < videoCurrentLeft) {\r\n\t\t\t\t\tthis.$scrollWrapper.animate(\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tscrollLeft: videoCurrentLeft,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t250\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ($('video').length > 1) {\r\n\t\t\t\t$('html').find(`.${classes.videoWrapper}`).not($(ev.currentTarget)).find('video').trigger('pause');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinitTimelineTeaser() {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tvar maxLength = this.$timelineItem.last().data('step-index');\r\n\t\tvar mobileItemWidth = $(window).width() * 0.768 + 20;\r\n\r\n\t\tfor (var i = 0; i < maxLength + 1; i++) {\r\n\t\t\tvar teaserLength = $($(this.$timelineItem).parent()).find('[data-step-index=\"' + i + '\"]').length;\r\n\t\t\tif (i == maxLength) {\r\n\t\t\t\t$($($(this.$timelineItem).parent()).find('[data-step-index=\"' + i + '\"]')).find(`.${classes.timelineItemBar}`).hide();\r\n\t\t\t} else {\r\n\t\t\t\tif (viewport === 'small' || viewport === 'medium') {\r\n\t\t\t\t\t$($($(this.$timelineItem).parent()).find('[data-step-index=\"' + i + '\"]')).find(`.${classes.timelineItemBar}`).width(teaserLength * mobileItemWidth)\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$($($(this.$timelineItem).parent()).find('[data-step-index=\"' + i + '\"]')).find(`.${classes.timelineItemBar}`).width(teaserLength * 365)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method click left arrow\r\n\t */\r\n\tonLeftControlClick() {\r\n\t\tthis.$rightControl.parent().removeClass(classes.hiddenControl)\r\n\t\tthis.teaserScrollLeft();\r\n\t}\r\n\r\n\tteaserScrollLeft() {\r\n\t\tvar currentScrollLeft = this.$scrollWrapper.scrollLeft();\r\n\t\tvar contentCurrentScrollLeft = this.$contentScrollWrapper.scrollLeft();\r\n\t\tvar mobileItemWidth = $(window).width() * 0.768 + 20;\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tif (viewport === 'small' || viewport === 'medium') {\r\n\t\t\tthis.$contentScrollWrapper.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: contentCurrentScrollLeft - mobileItemWidth,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (contentCurrentScrollLeft <= mobileItemWidth) {\r\n\t\t\t\tthis.$leftControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.$scrollWrapper.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: currentScrollLeft - 365,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (currentScrollLeft <= 365) {\r\n\t\t\t\tthis.$leftControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * method click right arrow\r\n\t */\r\n\tonRightControlClick() {\r\n\t\tthis.$leftControl.parent().removeClass(classes.hiddenControl)\r\n\t\tthis.teaserScrollRight();\r\n\t}\r\n\r\n\tteaserScrollRight() {\r\n\t\tvar currentScrollLeft = this.$scrollWrapper.scrollLeft();\r\n\t\tvar contentCurrentScrollLeft = this.$contentScrollWrapper.scrollLeft();\r\n\t\tvar mobileItemWidth = $(window).width() * 0.768 + 20;\r\n\t\tvar maxScrollArea = this.$headWrapper.width() + this.$contentWrapper.width() - this.$scrollWrapper.width();\r\n\t\tvar maxContentScrollArea = this.$listWrapper.width() - this.$contentScrollWrapper.width();\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tif (viewport === 'small' || viewport === 'medium') {\r\n\t\t\tthis.$contentScrollWrapper.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: contentCurrentScrollLeft + mobileItemWidth,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (contentCurrentScrollLeft + mobileItemWidth > maxContentScrollArea - 1) {\r\n\t\t\t\tthis.$rightControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.$scrollWrapper.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: currentScrollLeft + 365,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (currentScrollLeft + 365 > maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonScroll() {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tthis.$contentScrollWrapper.on('scroll', () => {\r\n\t\t\tvar contentCurrentScrollLeft = this.$contentScrollWrapper.scrollLeft();\r\n\t\t\tvar maxContentScrollArea = this.$listWrapper.width() - this.$contentScrollWrapper.width();\r\n\t\t\tif (viewport === 'small' || viewport === 'medium') {\r\n\t\t\t\tif (contentCurrentScrollLeft > 0) {\r\n\t\t\t\t\tthis.$leftControl.parent().removeClass(classes.hiddenControl)\r\n\t\t\t\t} else if (contentCurrentScrollLeft == 0) {\r\n\t\t\t\t\tthis.$leftControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t\t}\r\n\t\t\t\tif (contentCurrentScrollLeft > maxContentScrollArea - 1) {\r\n\t\t\t\t\tthis.$rightControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t\t} else if (contentCurrentScrollLeft < maxContentScrollArea - 1) {\r\n\t\t\t\t\tthis.$rightControl.parent().removeClass(classes.hiddenControl)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.$scrollWrapper.on('scroll', () => {\r\n\t\t\tvar currentScrollLeft = this.$scrollWrapper.scrollLeft();\r\n\t\t\tvar maxScrollArea = this.$headWrapper.width() + this.$contentWrapper.width() - this.$scrollWrapper.width();\r\n\t\t\tif (currentScrollLeft > 0) {\r\n\t\t\t\tthis.$leftControl.parent().removeClass(classes.hiddenControl)\r\n\t\t\t} else if (currentScrollLeft == 0) {\r\n\t\t\t\tthis.$leftControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t\tif (currentScrollLeft > maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t} else if (currentScrollLeft < maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControl.parent().removeClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tRegisteredUpdate() {\r\n\t\tif (Track.isKnownMarketoLead()) {\r\n\t\t\tthis.$teaserItemGated.removeClass('m-scrollable-teaser-item--locked');\r\n\t\t}\r\n\t}\r\n\t\r\n\tshowHideScroll() {\r\n\t\tconst viewportSize = getCurrentBreakpoint() as string;\r\n\t\tif (viewportSize === 'large' || viewportSize === 'extra-large') {\r\n\t\t\t$('.js-m-scrollable-teaser__list').each(function() {\r\n\t\t\t\tlet parent = $(this).closest('.js-o-home-scrollable-teaser__content-item');\r\n\t\t\t\tconst containerWidth = $(this).width();\r\n\t\t\t\tconst scrollWidth = $('.js-m-scrollable-teaser__content-scroll').width();\r\n\t\r\n\t\t\t\tconst itemWidth = $(this).children().first().outerWidth(true); \r\n\t\r\n\t\t\t\tconsole.log('Container width:', containerWidth);\r\n\t\t\t\tconsole.log('Item width:', itemWidth);\r\n\t\t\t\tconsole.log('Scroll width:', scrollWidth);\r\n\r\n\t\t\t\tconst itemsVisible = Math.floor(containerWidth / itemWidth); \r\n\t\r\n\t\t\t\tif (itemsVisible <= 2) {\r\n\t\t\t\t\tparent.addClass('m-scrollable-teaser--disabled-silder');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tparent.removeClass('m-scrollable-teaser--disabled-silder');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t\t\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\nimport * as $ from 'jquery';\r\n\r\n@createModule('SearchFlyout')\r\n/**\r\n * search-flyout module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class SearchFlyout extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$inputElement: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$inputElement = this.$ctx.find('.js-search-input');\r\n\t\tthis.$inputElement.on('click', (event: Event) => {\r\n\t\t\tevent.stopPropagation();\r\n\t\t});\r\n\t\tthis.$inputElement.on('keyup', this._handleInputChange.bind(this));\r\n\t\tthis.$ctx.find('.js-m-search-flyout__close').on('click', () => {\r\n\t\t\t$(window).trigger('searchFlyout:close');\r\n\t\t});\r\n\r\n\t\t//when the searchFlyout is opened we need to check if there is any content and then show the delete button\r\n\t\t$(window).on('searchFlyout:open', this._open.bind(this));\r\n\r\n\t\t$(window).on('searchFlyout:close', this._close.bind(this));\r\n\r\n\t\t$('.js-search-delete').on('click', (event: Event) => {\r\n\t\t\tthis._deleteFromInput(event);\r\n\t\t\tevent.stopPropagation();\r\n\t\t});\r\n\t\tresolve();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\r\n\t_handleInputChange(event: any) {\r\n\t\tlet inputString = this.$inputElement.val() as string;\r\n\t\tlet newLinkUrl = this.$ctx.data('baseurl') + inputString;\r\n\t\tlet $searchLink = $(this.$ctx).find('.js-m-search-flyout__search-submit');\r\n\r\n\t\tif (inputString.length >= 1) {\r\n\t\t\t$('.js-search-delete').addClass('m-search-flyout__search-delete--active');\r\n\t\t} else {\r\n\t\t\t$('.js-search-delete').removeClass('m-search-flyout__search-delete--active');\r\n\t\t}\r\n\r\n\t\tif (event.keyCode == 13) {\r\n\t\t\twindow.location.href = newLinkUrl;\r\n\t\t}\r\n\r\n\t\t$searchLink.attr('href', newLinkUrl);\r\n\t}\r\n\r\n\t_deleteFromInput(event: Event) {\r\n\t\tthis.$inputElement.val('');\r\n\t\tthis._handleInputChange(event);\r\n\t\tthis.$inputElement.focus();\r\n\t}\r\n\r\n\t_open(event: Event) {\r\n\t\t$(window).trigger('enablePreventStickyScrollBehaviour');\r\n\t\t$(window).trigger('lockScrolling');\r\n\t\tthis.$inputElement.focus();\r\n\t\tthis._handleInputChange(event);\r\n\t}\r\n\r\n\t_close() {\r\n\t\t$(window).trigger('disablePreventStickyScrollBehaviour');\r\n\t\t$(window).trigger('unlockScrolling');\r\n\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t\tthis.$inputElement.val('');\r\n\t\t$('.js-flyout-container').removeClass('m-search-flyout--active');\r\n\t}\r\n\r\n\t/**\r\n\t * method to trigger public event\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst classes = {\r\n\tleftControl: 'js-m-scrollable-jobfeed__left-control',\r\n\trightControl: 'js-m-scrollable-jobfeed__right-control',\r\n\tleftControlNew: 'js-m-scrollable-jobfeed__left-new-control',\r\n\trightControlNew: 'js-m-scrollable-jobfeed__right-new-control',\r\n\thiddenControl: 'state-m-scrollable-jobfeed__slider-arrow-hidden',\r\n\thiddenControlNew: 'state-m-scrollable-jobfeed__slider-new-arrow-hidden',\r\n\tscrollWrapper: \"js-m-scrollable-jobfeed__scroll-wrapper\",\r\n\tscrollWrapperNew: \"js-m-scrollable-jobfeed__scroll-new-wrapper\",\r\n\theadWrapper: \"js-m-scrollable-jobfeed__head\",\r\n\theadWrapperNew: \"js-m-scrollable-jobfeed-new__head\",\r\n\tcontentWrapper: \"js-m-scrollable-jobfeed__content\",\r\n\tcontentWrapperNew: \"js-m-scrollable-jobfeed-new__content\",\r\n\tcontentScrollWrapper: \"js-m-scrollable-jobfeed__content-scroll\",\r\n\tcontentScrollWrapperNew: \"js-m-scrollable-jobfeed__content-new-scroll\",\r\n\tlistWrapper: \"js-m-scrollable-jobfeed__list\",\r\n\tlistWrapperNew: \"js-m-scrollable-jobfeed-new__list\",\r\n\tjobfeedItem: \"js-m-scrollable-jobfeed__list-item\",\r\n\tvideoWrapper: \"js-m-scrollable-jobfeed-item__video-area\",\r\n\tlargejobfeed: 'm-scrollable-jobfeed__list-item--large',\r\n\ttimelineItem: \"js-m-scrollable-jobfeed__timeline-item\",\r\n\ttimelineItemBar: \"m-scrollable-jobfeed-item__time-bar\",\r\n\tdisabledSilder: 'm-scrollable-jobfeed--disabled-silder',\r\n\tmoduleList: 'm-scrollable-jobfeedList',\r\n\tmoduleNew: 'm-scrollable-jobfeedNew',\r\n\ttabsButton: 'js-m-info-list__tab'\r\n};\r\n\r\n@createModule('ScrollableJobfeed')\r\n/**\r\n * scrollable-jobfeed module implementation.\r\n */\r\n\r\nexport class ScrollableJobfeed extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$leftControl: JQuery;\r\n\t$rightControl: JQuery;\r\n\t$leftControlNew: JQuery;\r\n\t$rightControlNew: JQuery;\r\n\t$scrollWrapper: JQuery;\r\n\t$scrollWrapperNew: JQuery;\r\n\t$headWrapper: JQuery;\r\n\t$headWrapperNew: JQuery;\r\n\t$contentWrapper: JQuery;\r\n\t$contentWrapperNew: JQuery;\r\n\t$contentScrollWrapper: JQuery;\r\n\t$contentScrollWrapperNew: JQuery;\r\n\t$listWrapper: JQuery;\r\n\t$listWrapperNew: JQuery;\r\n\t$jobfeedItem: JQuery;\r\n\t$videoWrapper: JQuery;\r\n\t$timelineItem: JQuery;\r\n\t$moduleList: JQuery;\r\n\t$moduleNew: JQuery;\r\n\t$tabsButton: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.initVars();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.initNavigationArrows();\r\n\t\t\tthis.initScroll();\r\n\t\t\tthis.onScroll();\r\n\t\t}, 100);\r\n\r\n\r\n\t\tonBreakpointChange(() => {\r\n\t\t\tthis.initNavigationArrows();\r\n\t\t\tthis.onScroll();\r\n\t\t});\r\n\t\t$(window).resize(() => {\r\n\t\t\tthis.initScroll();\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitVars() {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$leftControl = $(`.${classes.leftControl}`, this.$ctx);\r\n\t\tthis.$rightControl = $(`.${classes.rightControl}`, this.$ctx);\r\n\t\tthis.$leftControlNew = $(`.${classes.leftControlNew}`, this.$ctx);\r\n\t\tthis.$rightControlNew = $(`.${classes.rightControlNew}`, this.$ctx);\r\n\t\tthis.$scrollWrapper = $(`.${classes.scrollWrapper}`, this.$ctx);\r\n\t\tthis.$scrollWrapperNew = $(`.${classes.scrollWrapperNew}`, this.$ctx);\r\n\t\tthis.$headWrapper = $(`.${classes.headWrapper}`, this.$ctx);\r\n\t\tthis.$headWrapperNew = $(`.${classes.headWrapperNew}`, this.$ctx);\r\n\t\tthis.$contentWrapper = $(`.${classes.contentWrapper}`, this.$ctx);\r\n\t\tthis.$contentWrapperNew = $(`.${classes.contentWrapperNew}`, this.$ctx);\r\n\t\tthis.$contentScrollWrapper = $(`.${classes.contentScrollWrapper}`, this.$ctx);\r\n\t\tthis.$contentScrollWrapperNew = $(`.${classes.contentScrollWrapper}`, this.$ctx);\r\n\t\tthis.$listWrapper = $(`.${classes.listWrapper}`, this.$ctx);\r\n\t\tthis.$listWrapperNew = $(`.${classes.listWrapperNew}`, this.$ctx);\r\n\t\tthis.$jobfeedItem = $(`.${classes.jobfeedItem}`, this.$ctx);\r\n\t\tthis.$videoWrapper = $(`.${classes.videoWrapper}`, this.$ctx);\r\n\t\tthis.$timelineItem = $(`.${classes.timelineItem}`, this.$ctx);\r\n\t\tthis.$moduleList = $(`.${classes.moduleList}`, this.$ctx);\r\n\t\tthis.$moduleNew = $(`.${classes.moduleNew}`, this.$ctx);\r\n\t\tthis.$tabsButton = $(`.${classes.tabsButton}`, this.$ctx);\r\n\t}\r\n\r\n\tinitNavigationArrows() {\r\n\t\tthis.$leftControl.on('click', () => {\r\n\t\t\tthis.onLeftControlClick();\r\n\t\t});\r\n\r\n\t\tthis.$rightControl.on('click', () => {\r\n\t\t\tthis.onRightControlClick()\r\n\t\t});\r\n\r\n\t\tthis.$leftControlNew.on('click', () => {\r\n\t\t\tthis.onLeftControlNewClick();\r\n\t\t});\r\n\r\n\t\tthis.$rightControlNew.on('click', () => {\r\n\t\t\tthis.onRightControlNewClick()\r\n\t\t});\r\n\t\t\r\n\t\tthis.$rightControlNew.on('click', () => {\r\n\t\t\tthis.onRightControlNewClick()\r\n\t\t});\r\n\t\tthis.$tabsButton.on('click', () => {\r\n\t\t\tthis.initScroll()\r\n\t\t});\r\n\t}\r\n\r\n\tinitScroll() {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'small') {\r\n\t\t\tif (this.$listWrapper.width() < this.$contentScrollWrapper.width()) {\r\n\t\t\t\tthis.$moduleList.addClass(classes.disabledSilder);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$moduleList.removeClass(classes.disabledSilder);\r\n\t\t\t}\r\n\t\t\tif (this.$listWrapperNew.width() < this.$contentScrollWrapperNew.width()) {\r\n\t\t\t\tthis.$moduleNew.addClass(classes.disabledSilder);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$moduleNew.removeClass(classes.disabledSilder);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.$headWrapper.width() + this.$listWrapper.width() < this.$scrollWrapper.width() + 1) {\r\n\t\t\t\tthis.$moduleList.addClass(classes.disabledSilder);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$moduleList.removeClass(classes.disabledSilder);\r\n\t\t\t}\r\n\t\t\tif (this.$headWrapperNew.width() + this.$listWrapperNew.width() < this.$scrollWrapperNew.width() + 1) {\r\n\t\t\t\tthis.$moduleNew.addClass(classes.disabledSilder);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$moduleNew.removeClass(classes.disabledSilder);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method click left arrow\r\n\t */\r\n\tonLeftControlClick() {\r\n\t\tthis.$rightControl.parent().removeClass(classes.hiddenControl)\r\n\t\tthis.jobfeedScrollLeft();\r\n\t}\r\n\r\n\tjobfeedScrollLeft() {\r\n\t\tvar currentScrollLeft = this.$scrollWrapper.scrollLeft();\r\n\t\tvar contentCurrentScrollLeft = this.$contentScrollWrapper.scrollLeft();\r\n\t\tvar mobileItemWidth = $(window).width() * 0.768 + 20;\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tif (viewport === 'small') {\r\n\t\t\tthis.$contentScrollWrapper.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: contentCurrentScrollLeft - mobileItemWidth,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (contentCurrentScrollLeft <= mobileItemWidth) {\r\n\t\t\t\tthis.$leftControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.$scrollWrapper.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: currentScrollLeft - 250,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (currentScrollLeft <= 250) {\r\n\t\t\t\tthis.$leftControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tjobfeedScrollNewLeft() {\r\n\t\tvar currentScrollLeft = this.$scrollWrapperNew.scrollLeft();\r\n\t\tvar contentCurrentScrollLeft = this.$contentScrollWrapperNew.scrollLeft();\r\n\t\tvar mobileItemWidth = $(window).width() * 0.768 + 20;\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tif (viewport === 'small') {\r\n\t\t\tthis.$contentScrollWrapperNew.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: contentCurrentScrollLeft - mobileItemWidth,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (contentCurrentScrollLeft <= mobileItemWidth) {\r\n\t\t\t\tthis.$leftControlNew.parent().addClass(classes.hiddenControlNew)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.$scrollWrapperNew.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: currentScrollLeft - 250,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (currentScrollLeft <= 250) {\r\n\t\t\t\tthis.$leftControlNew.parent().addClass(classes.hiddenControlNew)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * method click right arrow\r\n\t */\r\n\tonRightControlClick() {\r\n\t\tthis.$leftControl.parent().removeClass(classes.hiddenControl)\r\n\t\tthis.jobfeedScrollRight();\r\n\t}\r\n\r\n\tonLeftControlNewClick() {\r\n\t\tthis.$rightControlNew.parent().removeClass(classes.hiddenControlNew)\r\n\t\tthis.jobfeedScrollNewLeft();\r\n\t}\r\n\r\n\tonRightControlNewClick() {\r\n\t\tthis.$leftControlNew.parent().removeClass(classes.hiddenControlNew)\r\n\t\tthis.jobfeedScrollNewRight();\r\n\t}\r\n\r\n\tjobfeedScrollRight() {\r\n\t\tvar currentScrollLeft = this.$scrollWrapper.scrollLeft();\r\n\t\tvar contentCurrentScrollLeft = this.$contentScrollWrapper.scrollLeft();\r\n\t\tvar mobileItemWidth = $(window).width() * 0.768 + 20;\r\n\t\tvar maxScrollArea = this.$headWrapper.width() + this.$contentWrapper.width() - this.$scrollWrapper.width();\r\n\t\tvar maxContentScrollArea = this.$listWrapper.width() - this.$contentScrollWrapper.width();\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tif (viewport === 'small') {\r\n\t\t\tthis.$contentScrollWrapper.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: contentCurrentScrollLeft + mobileItemWidth,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (contentCurrentScrollLeft + mobileItemWidth > maxContentScrollArea - 1) {\r\n\t\t\t\tthis.$rightControl.parent().addClass(classes.hiddenControl);\r\n\t\t\t}\r\n\t\t} else {\r\n\r\n\t\t\tthis.$scrollWrapper.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: currentScrollLeft + 250,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (currentScrollLeft + 250 > maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tjobfeedScrollNewRight() {\r\n\t\tvar currentScrollLeft = this.$scrollWrapperNew.scrollLeft();\r\n\t\tvar contentCurrentScrollLeft = this.$contentScrollWrapperNew.scrollLeft();\r\n\t\tvar mobileItemWidth = $(window).width() * 0.768 + 20;\r\n\t\tvar maxScrollArea = this.$headWrapperNew.width() + this.$contentWrapperNew.width() - this.$scrollWrapperNew.width();\r\n\t\tvar maxContentScrollArea = this.$listWrapperNew.width() - this.$contentScrollWrapperNew.width();\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\tif (viewport === 'small') {\r\n\t\t\tthis.$contentScrollWrapperNew.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: contentCurrentScrollLeft + mobileItemWidth,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (contentCurrentScrollLeft + mobileItemWidth > maxContentScrollArea - 1) {\r\n\t\t\t\tthis.$rightControlNew.parent().addClass(classes.hiddenControlNew);\r\n\t\t\t}\r\n\t\t} else {\r\n\r\n\t\t\tthis.$scrollWrapperNew.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollLeft: currentScrollLeft + 250,\r\n\t\t\t\t},\r\n\t\t\t\t150\r\n\t\t\t);\r\n\t\t\tif (currentScrollLeft + 250 > maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControlNew.parent().addClass(classes.hiddenControlNew)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonScroll() {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tthis.$scrollWrapper.on('scroll', () => {\r\n\t\t\tconsole.log('scrolling');\r\n\t\t\tvar currentScrollLeft = this.$scrollWrapper.scrollLeft();\r\n\t\t\tvar maxScrollArea = this.$headWrapper.width() + this.$contentWrapper.width() - this.$scrollWrapper.width();\r\n\t\t\tif (currentScrollLeft > 0) {\r\n\t\t\t\tthis.$leftControl.parent().removeClass(classes.hiddenControl)\r\n\t\t\t} else if (currentScrollLeft == 0) {\r\n\t\t\t\tthis.$leftControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t\tif (currentScrollLeft > maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControl.parent().addClass(classes.hiddenControl)\r\n\t\t\t} else if (currentScrollLeft < maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControl.parent().removeClass(classes.hiddenControl)\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.$scrollWrapperNew.on('scroll', () => {\r\n\t\t\tconsole.log('scrolling');\r\n\t\t\tvar currentScrollLeft = this.$scrollWrapperNew.scrollLeft();\r\n\t\t\tvar maxScrollArea = this.$headWrapperNew.width() + this.$contentWrapperNew.width() - this.$scrollWrapperNew.width();\r\n\t\t\tif (currentScrollLeft > 0) {\r\n\t\t\t\tthis.$leftControlNew.parent().removeClass(classes.hiddenControlNew)\r\n\t\t\t} else if (currentScrollLeft == 0) {\r\n\t\t\t\tthis.$leftControlNew.parent().addClass(classes.hiddenControlNew)\r\n\t\t\t}\r\n\t\t\tif (currentScrollLeft > maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControlNew.parent().addClass(classes.hiddenControlNew)\r\n\t\t\t} else if (currentScrollLeft < maxScrollArea - 1) {\r\n\t\t\t\tthis.$rightControlNew.parent().removeClass(classes.hiddenControlNew)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\n\r\nconst classes = {\r\n\ttoggleButton: 'js-m-disclaimer__toggle-button',\r\n\tstateShowMore: 'state-m-disclaimer-show-more',\r\n};\r\n\r\n@createModule('Disclaimer')\r\n/**\r\n * disclaimer module implementation.\r\n *\r\n * @author Christoph Merkelbach \r\n */\r\nexport class Disclaimer extends TerrificSpec {\r\n\tstart(resolve: () => void) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\t$(`.${classes.toggleButton}`, $ctx).on('click', () => {\r\n\t\t\tif ($ctx.hasClass(classes.stateShowMore)) {\r\n\t\t\t\tscrollToElement($ctx, true, $(window).height() / 10, undefined, true);\r\n\t\t\t}\r\n\r\n\t\t\t$ctx.toggleClass(classes.stateShowMore);\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Cookies from 'js-cookie';\r\nimport * as Overlays from '@project/shared/utils/overlays/js/overlays';\r\n\r\nconst classes = {\r\n\tbuttonClose: 'js-m-survey__close'\r\n};\r\n\r\n@createModule('Survey')\r\n/**\r\n * Survey module implementation.\r\n *\r\n * @author Ellen Xia\r\n */\r\nexport class Survey extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tconst $buttonClose = this.$ctx.find(`.${classes.buttonClose}`);\r\n\t\t$buttonClose.on('click', this.onCloseClick.bind(this));\r\n\r\n\t\tthis.initSurvey();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() { }\r\n\r\n\t_showSurvey() {\r\n\t\t$(this._ctx).addClass('state-m-survey--visible ');\r\n\t\t$('html').addClass('no-scrolling--without-scrollbar');\r\n\t}\r\n\r\n\t_hideSurvey() {\r\n\t\t$(this._ctx).removeClass('state-m-survey--visible ');\r\n\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t\t//$(this.$ctx).empty();\r\n\t}\r\n\r\n\tinitSurvey() {\r\n\t\tlet showsurvey = false;\r\n\t\tif (location.search && location.search.indexOf('showsurvey=true') > -1) {\r\n\t\t\tshowsurvey = true;\r\n\t\t}\r\n\r\n\t\tlet waitingTime = parseInt($(this._ctx).attr(\"data-waitTime\"));\r\n\t\tif (isNaN(waitingTime)) {\r\n\t\t\twaitingTime = 10;\r\n\t\t}\r\n\r\n\t\tif (showsurvey || !this.cookieSurveyRead()) {\r\n\t\t\tOverlays.ShowOverlay(\r\n\t\t\t\t() => this._showSurvey(),\r\n\t\t\t\twaitingTime * 1000\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tonCloseClick() {\r\n\t\tthis.setSurveyRead();\r\n\r\n\t\tOverlays.CloseOverlay(\r\n\t\t\t() => this._hideSurvey()\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * returns if cookie notice was already read (cookielifetime 1 year // \"not read\" after 2 month, if not all accepted)\r\n\t *\r\n\t * @returns {boolean} was read\r\n\t */\r\n\tprivate cookieSurveyRead(): boolean {\r\n\t\tconst readCookie = Cookies.get('survey_read');\r\n\t\tif (readCookie) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\t/**\r\n\t * Saves read status of survey, in not already set\r\n\t *\r\n\t * @param {boolean} force defines that cookie should be updated even if already set\r\n\t * @returns {void}\r\n\t */\r\n\tprivate setSurveyRead(): void {\r\n\t\tconst readCookie = Cookies.get('survey_read');\r\n\t\tif (readCookie) {\r\n\t\t\tCookies.remove('survey_read');\r\n\t\t}\r\n\t\tCookies.set('survey_read', '1', { expires: 60 });\r\n\t}\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Cookies from 'js-cookie';\r\nimport * as Overlays from '@project/shared/utils/overlays/js/overlays';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\tbuttonClose: 'js-m-lounge-popup__close',\r\n\tbuttonOpenLink: 'js-m-lounge-popup__open-link',\r\n\tdoNotAskAgainInput: 'js-donot-ask-again__input'\r\n};\r\n\r\n@createModule('CustomerLoungePopup')\r\n/**\r\n * CustomerLoungePopup module implementation.\r\n *\r\n * @author Ellen Xia\r\n */\r\nexport class CustomerLoungePopup extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$buttonClose: JQuery;\r\n\t$buttonOpenLink: JQuery;\r\n\t$checkDoNotAskAgain: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$buttonClose = $(`.${classes.buttonClose}`, this.$ctx);\r\n\t\tthis.$checkDoNotAskAgain = $(`.${classes.doNotAskAgainInput}`, this.$ctx);\r\n\r\n\t\tthis.$buttonClose.on('click', this.onCloseClick.bind(this));\r\n\t\tthis.$checkDoNotAskAgain.on('click', this.setCookie.bind(this));\r\n\r\n\t\tthis.initializePopup()\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() { }\r\n\r\n\t_showLoungePopup() {\r\n\t\t$(this._ctx).addClass('state-m-lounge-popup--visible ');\r\n\t\t$('html').addClass('no-scrolling--without-scrollbar');\r\n\t}\r\n\r\n\t_hideLoungePopup() {\r\n\t\t$(this._ctx).removeClass('state-m-lounge-popup--visible ');\r\n\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t}\r\n\r\n\tprivate initializePopup(): void {\r\n\t\t// Perform a check for the cookie to correctly handle browser-back-behavior (where the component is still on the page).\r\n\t\tif (this.getCookie() != null)\r\n\t\t\treturn;\r\n\r\n\t\tOverlays.ShowOverlay(\r\n\t\t\t() => {\r\n\t\t\t\tthis._showLoungePopup();\r\n\t\t\t\tthis.setCookie();\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate onCloseClick(): void {\r\n\t\tOverlays.CloseOverlay(() => {\r\n\t\t\tthis._hideLoungePopup();\r\n\r\n\t\t\t// Highlight the tooltip inside the header\r\n\t\t\t$('.m-navigation-meta__tooltip').fadeIn();\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getCookie(): string {\r\n\t\tconst cookieName = 'loungepopup_read';\r\n\t\treturn Cookies.get(cookieName);\r\n\t}\r\n\r\n\tprivate setCookie(): void {\r\n\t\tconst cookieName = 'loungepopup_read';\r\n\t\tif (this.$checkDoNotAskAgain.prop('checked') === true) {\r\n\t\t\t// Store as a persistent cookie (replaces session cookie if exists).\r\n\t\t\tCookies.set(cookieName, '1', { 'expires': 365 });\r\n\t\t} else {\r\n\t\t\t// Store as a session cookie (must delete first; does not replace permanent cookie).\r\n\t\t\tCookies.remove(cookieName);\r\n\t\t\tCookies.set(cookieName, '1', {});\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport 'select2'; // globally assign select2 fn to $ element\r\nconst classes = {\r\n\ttinyfilterChannelContainer: \"tintup-filter-channel\",\r\n\t//buttonTest: 'js-m-html-container__button'\r\n};\r\n\r\n@createModule('HTMLContainer')\r\n/**\r\n * HTMLContainer module implementation.\r\n *\r\n * @author Ellen Xia\r\n */\r\nexport class HTMLContainer extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() { }\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\n@createModule('ICalDownload')\r\n/**\r\n * iCal-download module implementation.\r\n */\r\nexport class ICalDownload extends TerrificSpec {\r\n\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n $(\".js-button\").on('click', () => this.downLoadCalendar($ctx));\r\n\t\tresolve();\r\n\t}\r\n\r\n\t\r\n\tstop() { }\r\n\r\n\tdownLoadCalendar($container :JQuery){\r\n\t\tvar calendarString=$container.attr(\"data-CalendarResult\");\r\n\t\twindow.open( \"data:text/calendar;charset=utf8,\" +calendarString);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\ttabButton: 'js-m-info-list__tab',\r\n\ttabPanel: 'js-m-info-list__panel',\r\n\ttabButtonActive: 'state-m-info-list__tab--active',\r\n\ttabPanelActive: 'state-m-info-list__panel--active',\r\n};\r\n\r\n@createModule('InfoList')\r\n/**\r\n * info-list module implementation.\r\n *\r\n */\r\nexport class InfoList extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$tabButton: JQuery;\r\n\t$tabPanel: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$tabButton = $(`.${classes.tabButton}`, this.$ctx);\r\n\t\tthis.$tabPanel = $(`.${classes.tabPanel}`, this.$ctx);\r\n\r\n\t\tthis.initTab();\r\n\t\tthis.$tabButton.on('click', this.onSwichTab.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitTab() {\r\n\t\tthis.$tabButton.first().addClass(classes.tabButtonActive);\r\n\t\tthis.$tabPanel.first().addClass(classes.tabPanelActive);\r\n\t}\r\n\r\n\tonSwichTab(ev: any) {\r\n\t\t$(ev.currentTarget).addClass(classes.tabButtonActive);\r\n\t\t$(ev.currentTarget).siblings().removeClass(classes.tabButtonActive);\r\n\t\tthis.$tabPanel.removeClass(classes.tabPanelActive)\r\n\t\tthis.$tabPanel.eq($(ev.currentTarget).index()).addClass(classes.tabPanelActive);\r\n\t}\r\n \r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tricCode:'m-investor-overview__dax-ricCode',\r\n\tquote:'m-investor-overview__dax-quote',\r\n\tchange:'m-investor-overview__dax-change',\r\n\tupdate:'m-investor-overview__dax-update',\r\n};\r\n\r\n@createModule('InvestorOverview')\r\n/**\r\n * investor-overview module implementation.\r\n *\r\n */\r\nexport class InvestorOverview extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tvar me = this;\r\n\t\r\n\t\tsetTimeout(() => {\r\n\t\t\tme.getDaxData();\r\n\t\t}, 0);\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tgetDaxData(){\r\n\t\tconst configuration = this.$ctx.data(\"configuration\");\r\n\t\tconst apiEndpoint = this.$ctx.data(\"api-endpoint\");\r\n\t\t$.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\turl: apiEndpoint,\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tConfiguration: configuration\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tconsole.log(\"success\");\r\n\t\t\t\tif(response!=null){\r\n\t\t\t\tvar jsonData=JSON.parse(response);\r\n\t\t\t\tthis.$ctx.find(`.${classes.ricCode}`).text(jsonData.riccode);\r\n\t\t\t\tthis.$ctx.find(`.${classes.quote}`).text(jsonData.quote);\r\n\t\t\t\tthis.$ctx.find(`.${classes.change}`).text(jsonData.change);\r\n\t\t\t\tthis.$ctx.find(`.${classes.update}`).text(jsonData.update);\r\n\t\t\t\tif(jsonData.isincrease===true)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(!this.$ctx.find(`.${classes.quote}`).hasClass(\"m-investor-overview__dax-increase\"))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t this.$ctx.find(`.${classes.quote}`).addClass(\"m-investor-overview__dax-increase\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(jsonData.isincrease===false)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this.$ctx.find(`.${classes.quote}`).hasClass(\"m-investor-overview__dax-increase\"))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t \tthis.$ctx.find(`.${classes.quote}`).removeClass(\"m-investor-overview__dax-increase\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t }\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\terror: () => {\r\n\t\t\t\tconsole.log(\"get dax data error\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tbuttonClose: 'js-m-lightbox__close',\r\n\tlightboxMask: 'js-m-lightbox__mask',\r\n\tstateLightboxVisible: \"state-m-lightbox--visible\",\r\n\tstateLightboxCarousel: \"state-m-lightbox--carousel\",\r\n\tlightbox: \"m-lightbox\",\r\n\tcarouselPrev: \"js-m-lightbox__prev\",\r\n\tcarouselNext: \"js-m-lightbox__next\",\r\n};\r\n\r\n@createModule('Lightbox')\r\n/**\r\n * Lightbox module implementation.\r\n *\r\n * @author Ellen Xia\r\n */\r\nexport class Lightbox extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tcarouselLength: number;\r\n\tcurrentIndex: number;\r\n\tnextIndex: number;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.carouselLength = $(\"html\").find(`.${classes.lightbox}`).length;\r\n\r\n\t\tthis.$ctx.find(`.${classes.buttonClose}`).on(\"click\", this.closeLightbox.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.lightboxMask}`).on(\"click\", this.closeLightbox.bind(this));\r\n\t\t\r\n\t\tthis.$ctx.find(`.${classes.carouselPrev}`).on(\"click\", this.carouselPrevClick.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.carouselNext}`).on(\"click\", this.carouselNextClick.bind(this));\r\n\r\n\t\tthis.lightboxAnchorClick();\r\n\t\tthis.lightboxCarousel();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tcloseLightbox() {\r\n\t\tthis.$ctx.removeClass(classes.stateLightboxVisible);\r\n\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t}\r\n\r\n\tlightboxAnchorClick() {\r\n\t\tconst lightboxID = this.$ctx.attr('id');\r\n\t\t$('html').on(\"click\",'[href=\"#' + lightboxID + '\"]',() => {\r\n\t\t\tthis.$ctx.addClass(classes.stateLightboxVisible);\r\n\t\t\t$('html').addClass('no-scrolling--without-scrollbar');\r\n\t\t});\r\n\t}\r\n\r\n\tlightboxCarousel() {\r\n\t\tconst $lightbox = $(\"html\").find(`.${classes.lightbox}`);\r\n\t\tif($lightbox.length > 1) {\r\n\t\t\t$lightbox.addClass(classes.stateLightboxCarousel);\r\n\t\t\t$lightbox.each((i: any, e: any) => {\r\n\t\t\t\t$(e).attr(\"data-carousel-index\", i+1);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcarouselPrevClick(ev: any) {\r\n\t\tconst $currentCarousel = $(ev.currentTarget).parents(`.${classes.lightbox}`)\r\n\t\t$currentCarousel.removeClass(classes.stateLightboxVisible);\r\n\t\tthis.currentIndex = $currentCarousel.data('carousel-index');\r\n\t\tif(this.currentIndex == 1) {\r\n\t\t\tthis.nextIndex = this.carouselLength;\r\n\t\t} else {\r\n\t\t\tthis.nextIndex = this.currentIndex - 1;\r\n\t\t}\r\n\t\t$('[data-carousel-index=\"' + this.nextIndex + '\"]').addClass(classes.stateLightboxVisible);\r\n\t}\r\n\r\n\tcarouselNextClick(ev: any) {\r\n\t\tconst $currentCarousel = $(ev.currentTarget).parents(`.${classes.lightbox}`)\r\n\t\t$currentCarousel.removeClass(classes.stateLightboxVisible);\r\n\t\tthis.currentIndex = $currentCarousel.data('carousel-index');\r\n\t\tif(this.currentIndex == this.carouselLength) {\r\n\t\t\tthis.nextIndex = 1;\r\n\t\t} else {\r\n\t\t\tthis.nextIndex = this.currentIndex + 1;\r\n\t\t}\r\n\t\t$('[data-carousel-index=\"' + this.nextIndex + '\"]').addClass(classes.stateLightboxVisible);\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Cookies from 'js-cookie';\r\nimport * as Overlays from '@project/shared/utils/overlays/js/overlays';\r\n\r\nconst classes = {\r\n\tacceptButton: 'js-m-language-popup__button',\r\n\tcloseButton: 'js-m-language-popup__close',\r\n\tactiveClass: 'state-m-language-popup--active',\r\n};\r\n\r\n@createModule('LanguagePopup')\r\n/**\r\n * language-popup module implementation.\r\n *\r\n */\r\nexport class LanguagePopup extends TerrificSpec {\r\n\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\r\n\t\t$(`.${classes.acceptButton}`, $ctx).on('click', this.onAcceptClick.bind(this));\r\n\t\t$(`.${classes.closeButton}`, $ctx).on('click', this.onCloseClick.bind(this));\r\n\r\n\t\tif (!this.cookieLanguagePopupRead()) {\r\n\t\t\tthis.showLayer();\r\n\t\t}\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * method will accept all cookies and set language-popup to read\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonAcceptClick() {\r\n\t\tthis.setLanguagePopup();\r\n\t\tthis.hideLayer();\r\n\t}\r\n\r\n\t/**\r\n\t * method will close language-popup in Utils\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonCloseClick() {\r\n\t\tthis.setLanguagePopup();\r\n\t\tthis.hideLayer();\r\n\t}\r\n\r\n\t/**\r\n\t * returns if cookie notice was already read (cookielifetime 1 year // \"not read\" after 2 month, if not all accepted)\r\n\t *\r\n\t * @returns {boolean} was read\r\n\t */\r\n\t private cookieLanguagePopupRead(): boolean {\r\n\t\tconst readCookie = Cookies.get('LanguagePopup');\r\n\t\tif (readCookie) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Saves read status of language-popup, in not already set\r\n\t *\r\n\t * @param {boolean} force defines that cookie should be updated even if already set\r\n\t * @returns {void}\r\n\t */\r\n\t private setLanguagePopup(): void {\r\n\t\tconst readCookie = Cookies.get('LanguagePopup');\r\n\t\tif (readCookie) {\r\n\t\t\tCookies.remove('LanguagePopup');\r\n\t\t}\r\n\t\tCookies.set('LanguagePopup', '1', { expires: 365 });\r\n\t}\r\n\r\n\t/**\r\n\t * method hides cookiebar\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thideLayer() {\r\n\t\tOverlays.CloseOverlay(() => $(this._ctx).removeClass(classes.activeClass));\r\n\t}\r\n\r\n\t/**\r\n\t * method hides cookiebar\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tshowLayer() {\r\n\t\tOverlays.ShowOverlay(() => $(this._ctx).addClass(classes.activeClass), 250);\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tbrandsSelector: 'js-m-customer-lounge-brand-intro__brand-select',\r\n};\r\n\r\n@createModule('CustomerLoungeBrandIntro')\r\n/**\r\n * @author \r\n */\r\n\r\nexport class CustomerLoungeBrandIntro extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.openOtherUrl();\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\topenOtherUrl() {\r\n\t\tconst $brandSelect = this.$ctx.find(`.${classes.brandsSelector}`);\r\n\t\tvar curBrand = $brandSelect.find(\"option:selected\").text();\r\n\t\t$brandSelect.on(\"change\",function(ev: Event){\r\n\t\t\tvar brand = $(ev.currentTarget).find(\"option:selected\").text();\r\n\t\t\tvar brandUrl = $(ev.currentTarget).val();\r\n\t\t\tbrandUrl = brandUrl.toString();\r\n\t\t\tif (brand!==curBrand) {\r\n\t\t\t\twindow.location.href = brandUrl;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tteaserItem: 'm-customer-lounge-brand-product-table__item',\r\n\tstateHidden: 'h-visuallyhidden',\r\n\tloadMoreButton: 'js-load-more-button',\r\n\tloadMoreBar: 'js-load-more-bar'\r\n};\r\n\r\n@createModule('CustomerLoungeBrandProductTable')\r\n/**\r\n * @author \r\n */\r\n\r\nexport class CustomerLoungeBrandProductTable extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tisOpen: boolean;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.isOpen = false;\r\n\t\tthis._handleApplicationTeaserLoadMore();\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\t_handleApplicationTeaserLoadMore() {\r\n\t\t// if this an Application/Evergreen and not one of the other teasers and it has not yet been opened:\r\n\t\tif (typeof this.$ctx.data('shown-teasers') !== 'undefined' && this.isOpen === false) {\r\n\t\t\tconst $teaserItems = this.$ctx.find(`.${classes.teaserItem}`);\r\n\t\t\tlet minOfShowTeasers = this.$ctx.data('shown-teasers');\r\n\t\t\tlet PageSizeLoadMore = this.$ctx.data('load-items');\r\n\r\n\t\t\tif ($teaserItems.length <= minOfShowTeasers) {\r\n\t\t\t\tthis.$ctx.find(`.${classes.loadMoreBar}`).addClass(classes.stateHidden);\r\n\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t\t\t} else {\r\n\t\t\t\tminOfShowTeasers++;\r\n\t\t\t\t$teaserItems.filter(`:nth-child(n + ` + minOfShowTeasers + `)`).addClass(classes.stateHidden);\r\n\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\r\n\t\t\t\tlet currentShowTeasers = minOfShowTeasers -1;\r\n\t\t\t\tthis.$ctx.find(`.${classes.loadMoreButton}`).on('click', (ev: any) => {\r\n\t\t\t\t\tlet allOfShowTeasers = currentShowTeasers + PageSizeLoadMore;\r\n\t\t\t\t\tfor( var i=0; i= $teaserItems.length) {\r\n\t\t\t\t\t\t\t$(ev.currentTarget)\r\n\t\t\t\t\t\t\t\t.parent(`.${classes.loadMoreBar}`)\r\n\t\t\t\t\t\t\t\t.addClass(classes.stateHidden);\r\n\r\n\t\t\t\t\t\t\tthis.isOpen = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\tisCarousel: 'm-hero-article-stage--is-carousel',\r\n\tlargeItem: 'js-m-hero-article--large-item',\r\n\tsmallItem: 'js-m-hero-article--small-item',\r\n\tmainWrapper: 'js-m-hero-article-stage__main',\r\n\titemActive: 'state-m-hero-article--item-is-active',\r\n};\r\n\r\n@createModule('HeroArticleStage')\r\n/**\r\n * HeroArticleStage\r\n */\r\nexport class HeroArticleStage extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$largeItem: JQuery;\r\n\t$smallItem: JQuery;\r\n\t$mainWrapper: JQuery;\r\n\t$itemActive: JQuery;\r\n\tactiveIndex: number;\r\n\tsliderlength: number;\r\n\tverticalWrapperHeight: number;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$largeItem = $(`.${classes.largeItem}`, this.$ctx);\r\n\t\tthis.$smallItem = $(`.${classes.smallItem}`, this.$ctx);\r\n\t\tthis.$mainWrapper = $(`.${classes.mainWrapper}`, this.$ctx);\r\n\t\tthis.$itemActive = $(`.${classes.itemActive}`, this.$ctx);\r\n\t\tthis.activeIndex = 0;\r\n\t\tthis.sliderlength = this.$smallItem.length;\r\n\t\tthis.verticalWrapperHeight = 215 * 3;\r\n\r\n\t\tif(this.$ctx.hasClass(classes.isCarousel)) {\r\n\t\t\tthis.initScroller();\r\n\t\t};\r\n\r\n\t\tthis.RegisteredUpdate();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() { }\r\n\r\n\tsetActiveItem(pageNumber: number) {\r\n\t\tthis.$largeItem\r\n\t\t\t.removeClass(classes.itemActive)\r\n\t\t\t.eq(pageNumber)\r\n\t\t\t.addClass(classes.itemActive);\r\n\r\n\t\tthis.$smallItem\r\n\t\t\t.removeClass(classes.itemActive)\r\n\t\t\t.eq(pageNumber)\r\n\t\t\t.addClass(classes.itemActive);\r\n\r\n\t\tthis.$smallItem\r\n\t\t\t.removeAttr('style')\r\n\t\t\t.eq(pageNumber)\r\n\t\t\t.animate({\r\n\t\t\t\theight: 'hide'\r\n\t\t\t});\r\n\t}\r\n\r\n\tsetWrapperHeight(pageNumber: number) {\r\n\t\tvar verticalActiveHeight = this.verticalWrapperHeight;\r\n\t\tvar mainWrapperHeight = this.$largeItem.eq(pageNumber).height();\r\n\t\tif (mainWrapperHeight > verticalActiveHeight) {\r\n\t\t\tthis.$ctx.height(mainWrapperHeight);\r\n\t\t} else {\r\n\t\t\tthis.$ctx.height(verticalActiveHeight);\r\n\t\t}\r\n\t}\r\n\r\n\tgoToItemX(pageNumber: number) {\r\n\t\tvar me = this;\r\n\t\tme.setActiveItem(pageNumber);\r\n\t\t// setTimeout(() => {\r\n\t\t// \tme.setWrapperHeight(pageNumber);\r\n\t\t// }, 500);\r\n\r\n\t\tvar interval = setInterval(function () {\r\n\t\t\tpageNumber++;\r\n\t\t\tif (pageNumber > me.sliderlength - 1) {\r\n\t\t\t\tpageNumber = 0;\r\n\t\t\t}\r\n\t\t\tme.setActiveItem(pageNumber);\r\n\t\t\t//me.setWrapperHeight(pageNumber);\r\n\t\t}, 4000);\r\n\r\n\t\tthis.$ctx.mouseenter(function () {\r\n\t\t\tclearInterval(interval);\r\n\t\t});\r\n\r\n\t\tthis.$ctx.mouseleave(function () {\r\n\t\t\tinterval = setInterval(function () {\r\n\t\t\t\tpageNumber++;\r\n\t\t\t\tif (pageNumber > me.sliderlength - 1) {\r\n\t\t\t\t\tpageNumber = 0;\r\n\t\t\t\t}\r\n\t\t\t\tme.setActiveItem(pageNumber);\r\n\t\t\t\t//me.setWrapperHeight(pageNumber);\r\n\t\t\t}, 4000);\r\n\t\t});\r\n\t}\r\n\r\n\tinitScroller() {\r\n\t\tthis.goToItemX(this.activeIndex);\r\n\t}\r\n\r\n\tRegisteredUpdate() {\r\n\t\tif(Track.isKnownMarketoLead()) {\r\n\t\t\tthis.$ctx.find('.m-hero-article-stage--gated').removeClass('m-hero-article-stage--locked');\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tweChatLabel: 'js-m-contact-teaser-card__weChat-label',\r\n\tweChatQRBox: 'js-m-contact-teaser-card__weChat-qr-box',\r\n\tstateQRShow: 'state-m-contact-teaser-card__weChat-qr-box--active'\r\n};\r\n\r\n@createModule('ContactTeaserCard')\r\n/**\r\n * @author \r\n */\r\n\r\nexport class ContactTeaserCard extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$weChatLabel: JQuery;\r\n\t$weChatQRBox: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$weChatLabel = $(`.${classes.weChatLabel}`, this.$ctx);\r\n\t\tthis.$weChatQRBox = $(`.${classes.weChatQRBox}`, this.$ctx);\r\n\r\n\t\t$('html').on('click', () => {\r\n\t\t\tthis.hideQRCode();\r\n\t\t})\r\n\r\n\t\tthis.$weChatLabel.on('click',this.openQRCode.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\thideQRCode() {\r\n\t\tthis.$weChatQRBox.removeClass(classes.stateQRShow);\r\n\t}\r\n\t\r\n\topenQRCode(ev:Event) { \r\n\t\tev.stopPropagation();\r\n\t\tthis.$weChatQRBox.toggleClass(classes.stateQRShow); \r\n\t}\r\n \r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tbuttonClose: 'js-m-contact-teaser-popup__close',\r\n\tstateContactTeaserPopupShow: 'state-m-contact-teaser-popup--visible'\r\n};\r\n\r\n@createModule('ContactTeaserPopup')\r\n/**\r\n * @author \r\n */\r\n\r\nexport class ContactTeaserPopup extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$buttonClose: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$buttonClose = $(`.${classes.buttonClose}`, this.$ctx);\r\n\r\n\t\tthis.$buttonClose.on('click', this.onCloseClick.bind(this));\r\n\r\n\t\tthis.initContactTeaserPopup();\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\t_showContactTeaserPopup() {\r\n\t\t$(this._ctx).addClass(classes.stateContactTeaserPopupShow);\r\n\t\t$('html').addClass('no-scrolling--without-scrollbar');\r\n\t}\r\n\r\n\t_hideContactTeaserPopup() {\r\n\t\t$(this._ctx).removeClass(classes.stateContactTeaserPopupShow);\r\n\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t}\r\n\r\n\tinitContactTeaserPopup() {\r\n\t\t$(this._ctx).parent().find(\".js-open-more-contacts\").on('click', () => {\r\n\t\t\tthis._showContactTeaserPopup();\r\n\t\t})\r\n\t}\r\n\r\n\tonCloseClick() {\r\n\t\tvar me=this;\r\n\t\tme._hideContactTeaserPopup();\r\n\t}\r\n\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\n\r\n@createModule('ContactTeaserLarge')\r\n/**\r\n * @author \r\n */\r\nexport class ContactTeaserLarge extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\t\r\n\t\tthis.initMobileHide(this._ctx);\r\n\t\tonBreakpointChange(() => this.initMobileHide(this._ctx));\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\tinitMobileHide(ctx: HTMLElement) {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'small' || viewport === 'medium') {\r\n\t\t\tif ($(ctx).siblings().length == 0) {\r\n\t\t\t\t$(ctx).parent('.g-grid__item').hide();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$(ctx).parent('.g-grid__item').removeAttr(\"style\");\r\n\t\t}\r\n\t}\r\n \r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tstateExpanded: 'm-expansion-panel--expanded',\r\n\tcontentWrapper: 'm-expansion-panel--content-wrapper',\r\n};\r\n\r\n@createModule('ExpansionPanel')\r\n/**\r\n * expansion-panel\r\n *\r\n */\r\nexport class ExpansionPanel extends TerrificSpec {\r\n\t$ctx: JQuery; \r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tthis.initExpansionPanel();\r\n\t\tthis.$ctx.on('click', this.togglePanel.bind(this));\r\n\t\tthis.panelAnchorClick();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitExpansionPanel() {\r\n\t\tconst $panelHead = this.$ctx;\r\n\t\t$panelHead.each((index, element) => {\r\n\t\t\tconst $this = $(element);\r\n\t\t\tif (!$this.hasClass(classes.stateExpanded)) {\r\n\t\t\t\t$this.next().addClass(classes.contentWrapper);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\ttogglePanel(ev: Event) {\r\n\t\tconst $this = $(ev.currentTarget)\r\n\t\tif ($this.hasClass(classes.stateExpanded)) {\r\n\t\t\t$this.removeClass(classes.stateExpanded);\r\n\t\t\t$this.next().removeClass(classes.contentWrapper).slideUp();\r\n\t\t} else {\r\n\t\t\t$this.addClass(classes.stateExpanded);\r\n\t\t\t$this.next().removeClass(classes.contentWrapper).slideDown();\r\n\t\t}\r\n\t}\r\n\tpanelAnchorClick() {\r\n\t\tconst panelID = this.$ctx.attr('data-anchor-id');\r\n\t\t$('.o-header__sticky-bar').on(\"click\",'[href=\"#' + panelID + '\"]',() => {\r\n\t\t\tthis.$ctx.next().slideDown();\r\n\t\t\tthis.$ctx.addClass(classes.stateExpanded);\r\n\t\t});\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\nimport { MarketoFormGlobal } from '../../../molecules/marketo-form-global/js/marketo-form-global';\r\n\r\nconst classes = {\r\n\tbuttonClose: 'js-m-marketo-lightbox__close',\r\n\tstateLightboxVisible: 'state-m-marketo-lightbox--visible',\r\n\tlightboxDialog: 'm-marketo-lightbox__dialog',\r\n\tlightboxLoading: 'm-marketo-lightbox__dialog-loading',\r\n\tlightbox: 'm-marketo-lightbox',\r\n\tstateContentHide: 'm-marketo-lightbox--block-hidden',\r\n\tblockedMsg: 'js-m-marketo-lightbox-blocked-msg',\r\n\tformProductName: 'js-m-stage-product__headline',\r\n};\r\n\r\n@createModule('MarketoLightbox')\r\nexport class MarketoLightbox extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tmarketoService: MarketoFormGlobal;\r\n\tproductNameValue: string;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.marketoService = new MarketoFormGlobal();\r\n\r\n\t\tlet $this = this;\r\n\t\tsetTimeout(function() {\r\n\t\t\tvar mktoflowId = $this.$ctx.data('t-mktoflowid');\r\n\t\t\tvar pageHref = $this.$ctx.data('t-pagehref');\r\n\t\t\tvar closeButtonDisabled = $this.$ctx.data('t-closebuttondisabled');\r\n\t\t\tvar campaignId = $this.$ctx.data('t-mktocampaign-main-id');\r\n\t\t\tvar themeModeAttribute = $this.$ctx.data('t-thememodeattribute');\r\n\t\t\tvar target = $this.$ctx.data('t-target');\r\n\t\t\tif (mktoflowId != '' && mktoflowId != undefined && mktoflowId.length > 0) {\r\n\t\t\t\tif (!Track.isKnownMarketoLead()) {\r\n\t\t\t\t\t$this.getMktoLightboxView(\r\n\t\t\t\t\t\tmktoflowId,\r\n\t\t\t\t\t\tpageHref,\r\n\t\t\t\t\t\tcloseButtonDisabled,\r\n\t\t\t\t\t\tthemeModeAttribute,\r\n\t\t\t\t\t\tcampaignId,\r\n\t\t\t\t\t\ttarget\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, 1000);\r\n\r\n\t\tsetTimeout(function() {\r\n\t\t\t$('html')\r\n\t\t\t\t.find('a')\r\n\t\t\t\t.on('click', function(ev: Event) {\r\n\t\t\t\t\tvar flowId = $(this).data('mktoflow-id');\r\n\t\t\t\t\tvar closeButtonDisabled = $(this).data('mktoflow-close-disabled');\r\n\t\t\t\t\tvar videoId = $(this).data('video-id');\r\n\t\t\t\t\tvar campaignId = $(this).data('mktocampaign-main-id');\r\n\t\t\t\t\tlet href = $(this).attr('href');\r\n\t\t\t\t\tvar themeModeAttribute = $(this).data('mkto-themeattribute');\r\n\t\t\t\t\tvar target = $(this).attr('target');\r\n\t\t\t\t\tif (flowId != undefined) {\r\n\t\t\t\t\t\tif (flowId.length > 0) {\r\n\t\t\t\t\t\t\tif (!Track.isKnownMarketoLead()) {\r\n\t\t\t\t\t\t\t\t$this.getMktoLightboxView(\r\n\t\t\t\t\t\t\t\t\tflowId,\r\n\t\t\t\t\t\t\t\t\thref,\r\n\t\t\t\t\t\t\t\t\tcloseButtonDisabled,\r\n\t\t\t\t\t\t\t\t\tthemeModeAttribute,\r\n\t\t\t\t\t\t\t\t\tcampaignId,\r\n\t\t\t\t\t\t\t\t\tvideoId,\r\n\t\t\t\t\t\t\t\t\ttarget\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t\t\t\t$this.getMktoLightboxData(\r\n\t\t\t\t\t\t\t\t\tflowId,\r\n\t\t\t\t\t\t\t\t\thref,\r\n\t\t\t\t\t\t\t\t\tcloseButtonDisabled,\r\n\t\t\t\t\t\t\t\t\tthemeModeAttribute,\r\n\t\t\t\t\t\t\t\t\tcampaignId,\r\n\t\t\t\t\t\t\t\t\tvideoId,\r\n\t\t\t\t\t\t\t\t\ttarget\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconsole.log('lightbox: flow-id is empty');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.log('lightbox: flow-id is undefined');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}, 1000);\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tgetMktoLightboxView(\r\n\t\tflowId: string,\r\n\t\toriginalHref: string,\r\n\t\tcloseButtonDisabled: boolean,\r\n\t\tthemeModeAttribute: string = '',\r\n\t\tcampaignId: string = '',\r\n\t\tvideoId: string = '',\r\n\t\ttarget: string = ''\r\n\t) {\r\n\t\t// partial view is called, show black-transparent overlay and loading indicator\r\n\t\tthis.showLightbox();\r\n\t\tthis.showIndicator();\r\n\r\n\t\tif (closeButtonDisabled == undefined) {\r\n\t\t\tcloseButtonDisabled = false;\r\n\t\t}\r\n\r\n\t\tif (originalHref == undefined) {\r\n\t\t\toriginalHref = '';\r\n\t\t}\r\n\t\tif (themeModeAttribute === undefined || themeModeAttribute === null || themeModeAttribute === '') {\r\n\t\t\tthemeModeAttribute = $('html').hasClass('l-campaign') ? 'l-campaign' : themeModeAttribute;\r\n\t\t}\r\n\r\n\t\tvar formProductName = $('html').find(`.${classes.formProductName}`);\r\n\t\tif (formProductName.length > 0) {\r\n\t\t\tthis.productNameValue = $(formProductName[0]).text();\r\n\t\t}\r\n\t\t\r\n\r\n\t\tconst endpoint = '/partial-updates/marketo/lightboxpartial';\r\n\t\t$.ajax({\r\n\t\t\ttype: 'get',\r\n\t\t\turl: endpoint,\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata: {\r\n\t\t\t\tflowId: flowId,\r\n\t\t\t\toriginLink: originalHref,\r\n\t\t\t\tcloseButtonDisabled: closeButtonDisabled,\r\n\t\t\t\tthemeModeAttribute: themeModeAttribute,\r\n\t\t\t\tcampaignId: campaignId,\r\n\t\t\t\tproductName: this.productNameValue,\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tif (response.length > 2) {\r\n\t\t\t\t\tlet $dialog = this.$ctx.find(`div.${classes.lightboxDialog}`);\r\n\r\n\t\t\t\t\t$dialog.empty();\r\n\t\t\t\t\t$dialog.append(response);\r\n\t\t\t\t\tthis.rebindEvents();\r\n\t\t\t\t\tthis.loadForm(originalHref, videoId, target);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log('lightbox: get partial-view failed');\r\n\t\t\t\t\tthis.closeLightbox();\r\n\t\t\t\t\tthis.doSubmitAction(false, originalHref, videoId, target);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tcomplete: () => {},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(\r\n\t\t\t\t\t`lightbox: get partial-view error, endpoint: ${endpoint}, ${xhr.status}, ${\r\n\t\t\t\t\t\txhr.statusText\r\n\t\t\t\t\t}, ${error}`\r\n\t\t\t\t);\r\n\t\t\t\tthis.doSubmitAction(false, originalHref, videoId, target);\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tgetMktoLightboxData(\r\n\t\tflowId: string,\r\n\t\toriginalHref: string,\r\n\t\tcloseButtonDisabled: boolean,\r\n\t\tthemeModeAttribute: string = '',\r\n\t\tcampaignId: string = '',\r\n\t\tvideoId: string = '',\r\n\t\ttarget: string = ''\r\n\t) {\r\n\t\tlet _this = this;\r\n\t\tlet clickEventTriggered = false;\r\n\t\tif (closeButtonDisabled == undefined) {\r\n\t\t\tcloseButtonDisabled = false;\r\n\t\t}\r\n\r\n\t\tif (originalHref == undefined) {\r\n\t\t\toriginalHref = '';\r\n\t\t}\r\n\t\tif (themeModeAttribute === undefined || themeModeAttribute === null || themeModeAttribute === '') {\r\n\t\t\tthemeModeAttribute = $('html').hasClass('l-campaign') ? 'l-campaign' : themeModeAttribute;\r\n\t\t}\r\n\t\tthis.showLightbox();\r\n\t\tthis.showIndicator();\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'get',\r\n\t\t\turl:\r\n\t\t\t\twindow.location.origin +\r\n\t\t\t\t'/partial-updates/marketo/lightboxpartialformdata?' +\r\n\t\t\t\t'flowId=' +\r\n\t\t\t\tflowId +\r\n\t\t\t\t'&originLink=' +\r\n\t\t\t\toriginalHref +\r\n\t\t\t\t'&isDisplayForm=true' +\r\n\t\t\t\t'&campaignId=' +\r\n\t\t\t\tcampaignId,\r\n\t\t\tdataType: 'html',\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tif (response.length > 2) {\r\n\t\t\t\t\tthis.closeLightbox();\r\n\t\t\t\t\tlet $dialog = _this.$ctx.find(`div.${classes.lightboxDialog}`);\r\n\t\t\t\t\t$dialog.empty();\r\n\t\t\t\t\t$dialog.append(response);\r\n\t\t\t\t\t_this.rebindEvents();\r\n\t\t\t\t\t_this.loadForm('', '', target);\r\n\t\t\t\t\tlet $lightboxContainer = _this.$ctx.find(`div[data-id=\"lightboxContainer\"]`);\r\n\r\n\t\t\t\t\tvar IsHiddenFormSubmitrequired = $lightboxContainer.data('hidden-form-submit-required');\r\n\t\t\t\t\tvar HiddenFormSubmitId = $lightboxContainer.data('lightbox-form-id');\r\n\t\t\t\t\tif (IsHiddenFormSubmitrequired == true) {\r\n\t\t\t\t\t\tconst MktoForms2 = (window as any)['MktoForms2'];\r\n\t\t\t\t\t\tMktoForms2.whenReady(function(form: any) {\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\tHiddenFormSubmitId !== undefined &&\r\n\t\t\t\t\t\t\t\tNumber(HiddenFormSubmitId) == form.getId() &&\r\n\t\t\t\t\t\t\t\tclickEventTriggered !== true\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tform.submit();\r\n\t\t\t\t\t\t\t\tif (originalHref != undefined && originalHref.length > 0) {\r\n\t\t\t\t\t\t\t\t\t// Create the element\r\n\t\t\t\t\t\t\t\t\tclickEventTriggered = true;\r\n\t\t\t\t\t\t\t\t\tconst link: HTMLAnchorElement = document.createElement('a');\r\n\t\t\t\t\t\t\t\t\tlink.href = originalHref;\r\n\t\t\t\t\t\t\t\t\tlink.download = originalHref.split('/').slice(-1)[0];\r\n\t\t\t\t\t\t\t\t\tlink.target = target;\r\n\t\t\t\t\t\t\t\t\t// Append it to the DOM temporarily\r\n\t\t\t\t\t\t\t\t\tdocument.body.appendChild(link);\r\n\r\n\t\t\t\t\t\t\t\t\t// Perform any action, e.g., programmatic click\r\n\t\t\t\t\t\t\t\t\tlink.click();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t_this.hiddenSubmitForm(HiddenFormSubmitId);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.triggerClickEvent(originalHref, target);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log('lightbox: get partial-view failed');\r\n\t\t\t\t\tthis.closeLightbox();\r\n\t\t\t\t\tthis.doSubmitAction(false, '', '', '');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tthis.hideIndicator();\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\ttriggerClickEvent(originalHref: string, target: string) {\r\n\t\t// Create the element\r\n\t\tconst link: HTMLAnchorElement = document.createElement('a');\r\n\t\tlink.href = originalHref;\r\n\t\tlink.download = originalHref.split('/').slice(-1)[0];\r\n\t\tlink.target = target;\r\n\t\t// Append it to the DOM temporarily\r\n\t\tdocument.body.appendChild(link);\r\n\r\n\t\t// Perform any action, e.g., programmatic click\r\n\t\tlink.click();\r\n\r\n\t\t// Remove the element from the DOM\r\n\t\tlink.remove(); // Removes the element from the DOM\r\n\t}\r\n\r\n\tprivate _marketoFormInitialized: boolean = false;\r\n\tprivate _marketoFormInitializationTimer: number = null;\r\n\tloadForm(originalHref: string, videoId: string = '', target: string = '') {\r\n\t\tconst MktoForms2 = (window as any)['MktoForms2'];\r\n\t\tlet _this = this;\r\n\r\n\t\tif (typeof MktoForms2 != 'object' && this._marketoFormInitializationTimer == null) {\r\n\t\t\t// Watch for te Marketo script being loaded.\r\n\t\t\t//\tMechanism based on https://nation.marketo.com/t5/product-blogs/accurately-background-loading-the-mktoforms2-global-object/ba-p/309609\r\n\t\t\tdocument.addEventListener('load', () => this.loadForm(originalHref, videoId, target), true);\r\n\r\n\t\t\t// Display failure text after a delay (give the script some time to load)\r\n\t\t\tthis._marketoFormInitializationTimer = window.setTimeout(() => {\r\n\t\t\t\tthis._marketoFormInitializationTimer = null;\r\n\t\t\t\t// Marketo is broken, user has disabled tracking or scripts are blocked\r\n\t\t\t\tconsole.debug('Lightbox: form is blocked');\r\n\t\t\t\t_this.hideIndicator();\r\n\t\t\t\t_this.displayFormBox();\r\n\t\t\t\t_this.$ctx.find(`.${classes.blockedMsg}`).removeClass(classes.stateContentHide);\r\n\t\t\t}, 3000);\r\n\t\t} else if (typeof MktoForms2 == 'object' && !this._marketoFormInitialized) {\r\n\t\t\tdocument.removeEventListener('load', () => this.loadForm(originalHref, videoId, target), true);\r\n\t\t\tthis._marketoFormInitialized = true;\r\n\t\t\tif (this._marketoFormInitializationTimer) {\r\n\t\t\t\tclearTimeout(this._marketoFormInitializationTimer);\r\n\t\t\t}\r\n\r\n\t\t\tlet $formContainer = this.$ctx.find(`div[data-id=\"formContainer\"]`);\r\n\r\n\t\t\tlet showMessage = $formContainer.parent('div[data-id=\"lightboxContainer\"]').data('show-message');\r\n\t\t\tlet formHref = $formContainer.data('form-href');\r\n\t\t\tlet envId = $formContainer.data('environment-id');\r\n\t\t\tlet formId = $formContainer.data('form-id');\r\n\t\t\tlet $formNode = $formContainer.find('form');\r\n\r\n\t\t\tMktoForms2.loadForm(formHref, envId, formId, function(form: any) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t// partial view is called successfully, hide indicator\r\n\t\t\t\t\t_this.hideIndicator();\r\n\t\t\t\t\t_this.displayFormBox();\r\n\r\n\t\t\t\t\tform.onSuccess(function(values: any, followUpUrl: string) {\r\n\t\t\t\t\t\tTrack.setKnownMarketoLead(true);\r\n\t\t\t\t\t\t_this.doSubmitAction(showMessage, originalHref, videoId, target);\r\n\t\t\t\t\t\tlet IsSendDataToGtm = $formNode.data('sc-send-data-to-gtm');\r\n\t\t\t\t\t\tif (IsSendDataToGtm) {\r\n\t\t\t\t\t\t\tvar typeOfForm = $formNode.data('show-message');\r\n\r\n\t\t\t\t\t\t\tconst trackdata: {\r\n\t\t\t\t\t\t\t\tevent: string;\r\n\t\t\t\t\t\t\t\tform_id: string;\r\n\t\t\t\t\t\t\t\tform_name: string;\r\n\t\t\t\t\t\t\t\tform_destination: string;\r\n\t\t\t\t\t\t\t\tform_submit_text: string;\r\n\t\t\t\t\t\t\t} = {\r\n\t\t\t\t\t\t\t\tevent: 'form_submit',\r\n\t\t\t\t\t\t\t\tform_id: $($formNode).attr('id'),\r\n\t\t\t\t\t\t\t\tform_name: typeOfForm,\r\n\t\t\t\t\t\t\t\tform_destination: '',\r\n\t\t\t\t\t\t\t\tform_submit_text: '',\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tform.onSubmit(function() {\r\n\t\t\t\t\t\t_this.marketoService.formatPhoneNumber(form);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (Track.isKnownMarketoLead()) {\r\n\t\t\t\t\t\tform.vals({ formVersion: 'Known' });\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\t_this.$ctx.find(`.${classes.blockedMsg}`).removeClass(classes.stateContentHide);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_this.marketoService.initializeMarketoOnScriptLoad();\r\n\t\t}\r\n\t}\r\n\r\n\thiddenSubmitForm(hiddenForm: any) {\r\n\t\tlet formId = hiddenForm;\r\n\t\tlet formName = jQuery('div[data-form-id=\"' + formId + '\"] form').attr('data-form-name');\t\t\t\r\n\t\tconst trackdata: {\r\n\t\t\tevent: string;\r\n\t\t\tform_id: string;\r\n\t\t\tform_name: string;\r\n\t\t\tform_destination: string;\r\n\t\t\tform_hidden_submit_text: string;\r\n\t\t} = {\r\n\t\t\tevent: 'hidden_form_submit',\r\n\t\t\tform_id: formId,\r\n\t\t\tform_name: formName.toString(),\r\n\t\t\tform_destination: '',\r\n\t\t\tform_hidden_submit_text: '',\r\n\t\t};\r\n\t\tTrack.gtmTrack(trackdata);\r\n\t}\r\n\trebindEvents() {\r\n\t\tlet $this = this;\r\n\r\n\t\tthis.$ctx.find(`.${classes.buttonClose}`).on('click', function() {\r\n\t\t\t$this.closeLightbox();\r\n\t\t});\r\n\t}\r\n\r\n\tremoveCloseEvents() {\r\n\t\tlet $this = this;\r\n\r\n\t\tthis.$ctx.find(`.${classes.buttonClose}`).off('click', function() {\r\n\t\t\t$this.closeLightbox();\r\n\t\t});\r\n\t}\r\n\r\n\tshowLightbox() {\r\n\t\t$('html')\r\n\t\t\t.find(`.${classes.lightbox}`)\r\n\t\t\t.addClass(classes.stateLightboxVisible);\r\n\t\t$('html').addClass('no-scrolling--without-scrollbar');\r\n\t}\r\n\r\n\tcloseLightbox() {\r\n\t\tthis.$ctx.removeClass(classes.stateLightboxVisible);\r\n\t\tthis.$ctx.find(`.${classes.lightboxDialog}`).empty();\r\n\t\t$('html').removeClass('no-scrolling--without-scrollbar');\r\n\t\tthis._marketoFormInitialized = false;\r\n\t\tthis._marketoFormInitializationTimer == null;\r\n\t}\r\n\r\n\tdisplayConfirmationBox() {\r\n\t\tlet $confirmContainer = this.$ctx.find(`div[data-id=\"confirmationContainer\"]`);\r\n\t\t$confirmContainer.removeClass(classes.stateContentHide);\r\n\t}\r\n\r\n\tdisplayFormBox() {\r\n\t\tlet $formContainer = this.$ctx.find(`div[data-id=\"formContainer\"]`);\r\n\t\t$formContainer.removeClass(classes.stateContentHide);\r\n\t}\r\n\r\n\thideFormBox() {\r\n\t\tlet $formContainer = this.$ctx.find(`div[data-id=\"formContainer\"]`);\r\n\t\t$formContainer.addClass(classes.stateContentHide);\r\n\t}\r\n\r\n\thideIndicator() {\r\n\t\tlet $dialog = this.$ctx.find(`.${classes.lightboxDialog}`);\r\n\t\t$dialog.removeClass(classes.stateContentHide);\r\n\r\n\t\tlet $indicator = this.$ctx.find(`.${classes.lightboxLoading}`);\r\n\t\t$indicator.addClass(classes.stateContentHide);\r\n\t}\r\n\r\n\tshowIndicator() {\r\n\t\tlet $dialog = this.$ctx.find(`.${classes.lightboxDialog}`);\r\n\t\t$dialog.addClass(classes.stateContentHide);\r\n\r\n\t\tlet $indicator = this.$ctx.find(`.${classes.lightboxLoading}`);\r\n\t\t$indicator.removeClass(classes.stateContentHide);\r\n\t}\r\n\r\n\tdoSubmitAction(showConfirmationMsg: boolean, originalHref: string, videoId: string = '', target: string = '') {\r\n\t\t// confirmation message\r\n\t\tif (showConfirmationMsg) {\r\n\t\t\tthis.hideFormBox();\r\n\t\t\tthis.displayConfirmationBox();\r\n\r\n\t\t\t// go to original link\r\n\t\t} else {\r\n\t\t\tthis.closeLightbox();\r\n\t\t\tif (videoId.length > 0) {\r\n\t\t\t\t//play\r\n\t\t\t\t$('[data-video-id=\"' + videoId + '\"] .mi-big-play-cover').trigger('click');\r\n\t\t\t\t$('[data-video-id=\"' + videoId + '\"] .js-a-video__locked').remove();\r\n\t\t\t} else {\r\n\t\t\t\tif (originalHref != undefined && originalHref.length > 0) {\r\n\t\t\t\t\tthis.triggerClickEvent(originalHref, target);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t//unlock\r\n\t\t$('.a-video--locked').removeClass('a-video--locked');\r\n\t\t$('.m-download-item--locked').removeClass('m-download-item--locked');\r\n\t\t$('.m-download-table__item--locked').removeClass('m-download-table__item--locked');\r\n\t\t$('.m-hero-article-stage--locked').removeClass('m-hero-article-stage--locked');\r\n\t\t$('.m-scrollable-teaser-item--locked').removeClass('m-scrollable-teaser-item--locked');\r\n\t\t$('.m-talk--locked').removeClass('m-talk--locked');\r\n\t\t$('.m-teaser-large--locked').removeClass('m-teaser-large--locked');\r\n\t\t$('.o-teaser-content-area__item').each((i, e) => {\r\n\t\t\tconst $teaser = $(e).children();\r\n\t\t\tconst classList = $teaser.attr('class');\r\n\t\t\tconst className = classList.split(' ');\r\n\t\t\t$teaser.removeClass(className[0] + '--locked');\r\n\t\t});\r\n\t}\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('FilterMessage')\r\n/**\r\n * filter-message module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class FilterMessage extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","var t=\"\";if(document.querySelector(\".m-error-404\")instanceof HTMLElement){window.onkeyup=function(e){var n=e.keyCode?e.keyCode:e.which;var r=\"38384040373937396665\";if(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement){t=\"\"}else{t+=\"\"+n;if(r.indexOf(t)!==0){t=\"\"}else if(r===t){t=\"\";var i=document.createElement(\"div\");i.id=\"pm\";i.style=\"height: 450px; width:342px; position: fixed; top:50%; left:50%; transform:translate(-50%,-50%); background: #fff; box-shadow: 0 0 15px 15px #fff; z-index: 9999;\";document.body.appendChild(i);l.init(document.getElementById(\"pm\"))}}};var p=4,R=3,_=2,b=1,O=11,N=5,U=6,F=7,D=8,W=9,B=10,z={};z.FPS=30;z.Ghost=function(v,s,e){var d=null,S=null,y=null,P=null,l=null;function u(e,n){var r=f()?1:c()?4:2,i=e===_&&-r||e===O&&r||0,t=e===b&&r||e===R&&-r||0;return{x:o(n.x,i),y:o(n.y,t)}}function o(e,n){var r=e%10,i=r+n;if(r!==0&&i>10){return e+(10-r)}else if(r>0&&i<0){return e-r}return e+n}function f(){return y!==null}function n(){return P===null}function c(){return y===null&&P!==null}function a(){var e=S===_||S===O?[R,b]:[_,O];return e[Math.floor(Math.random()*2)]}function r(){P=null;y=null;d={x:90,y:80};S=a();l=a()}function i(e){return e%10===0}function t(e){return e===_&&O||e===O&&_||e===R&&b||R}function h(){S=t(S);y=v.getTick()}function m(){y=null;P=v.getTick()}function L(e){return Math.round(e/10)}function T(e,n){var r=e%10;if(r===0){return e}else if(n===O||n===b){return e+(10-r)}else{return e-r}}function x(e){return i(e.y)&&i(e.x)}function E(e){return(v.getTick()-e)/z.FPS}function w(){if(y){if(E(y)>5){return v.getTick()%20>10?\"#FFFFFF\":\"#0000BB\"}else{return\"#0000BB\"}}else if(P){return\"#222\"}return e}function A(e){var n=s.blockSize,r=d.y/10*n,i=d.x/10*n;if(y&&E(y)>8){y=null}if(P&&E(P)>3){P=null}var t=i+n;var l=r+n-3;var u=n/10;var o=v.getTick()%10>5?3:-3;var f=v.getTick()%10>5?-3:3;e.fillStyle=w();e.beginPath();e.moveTo(i,l);e.quadraticCurveTo(i,r,i+n/2,r);e.quadraticCurveTo(i+n,r,i+n,l);e.quadraticCurveTo(t-u*1,l+o,t-u*2,l);e.quadraticCurveTo(t-u*3,l+f,t-u*4,l);e.quadraticCurveTo(t-u*5,l+o,t-u*6,l);e.quadraticCurveTo(t-u*7,l+f,t-u*8,l);e.quadraticCurveTo(t-u*9,l+o,t-u*10,l);e.closePath();e.fill();e.beginPath();e.fillStyle=\"#000\";e.arc(i+6,r+6,n/6,0,300,false);e.arc(i+n-6,r+6,n/6,0,300,false);e.closePath();e.fill();var c=n/12;var a={};a[O]=[c,0];a[_]=[-c,0];a[R]=[0,-c];a[b]=[0,c];e.beginPath();e.fillStyle=\"#fff\";e.arc(i+6+a[S][0],r+6+a[S][1],n/15,0,300,false);e.arc(i+n-6+a[S][0],r+6+a[S][1],n/15,0,300,false);e.closePath();e.fill()}function C(e){if(e.y===100&&e.x>=190&&S===O){return{y:100,x:-10}}if(e.y===100&&e.x<=-10&&S===_){return d={y:100,x:190}}return false}function g(e){var n=d,r=x(d),i=null;if(l!==S){i=u(l,d);if(r&&s.isFloorSpace({y:L(T(i.y,l)),x:L(T(i.x,l))})){S=l}else{i=null}}if(i===null){i=u(S,d)}if(r&&s.isWallSpace({y:L(T(i.y,S)),x:L(T(i.x,S))})){l=a();return g(e)}d=i;var t=C(d);if(t){d=t}l=a();return{new:d,old:n}}return{eat:m,isVunerable:f,isDangerous:n,makeEatable:h,reset:r,move:g,draw:A}};z.User=function(l,u){var o=null,f=null,c=null,a=null,n=null,r=5,i={};i[H.ARROW_LEFT]=_;i[H.ARROW_UP]=R;i[H.ARROW_RIGHT]=O;i[H.ARROW_DOWN]=b;function v(e){r+=e;if(r>=1e4&&r-e<1e4){n+=1}}function e(){return r}function t(){n-=1}function s(){return n}function d(){r=0;n=3;S()}function S(){y();c=0}function y(){o={x:90,y:120};f=_;a=_}function P(){d();y()}function h(e){if(typeof i[e.keyCode]!==\"undefined\"){a=i[e.keyCode];e.preventDefault();e.stopPropagation();return false}return true}function m(e,n){return{x:n.x+(e===_&&-2||e===O&&2||0),y:n.y+(e===b&&2||e===R&&-2||0)}}function L(e){return e%10===0}function T(e){return Math.round(e/10)}function x(e,n){var r=e%10;if(r===0){return e}else if(n===O||n===b){return e+(10-r)}else{return e-r}}function E(e,n){return{y:T(x(e.y,n)),x:T(x(e.x,n))}}function w(e){return L(e.y)&&L(e.x)}function A(e,n){return(e===_||e===O)&&(n===_||n===O)||(e===R||e===b)&&(n===R||n===b)}function C(e){var n=null,r=null,i=o,t=null;if(a!==f){n=m(a,o);if(A(a,f)||w(o)&&u.isFloorSpace(E(n,a))){f=a}else{n=null}}if(n===null){n=m(f,o)}if(w(o)&&u.isWallSpace(E(n,f))){f=p}if(f===p){return{new:o,old:o}}if(n.y===100&&n.x>=190&&f===O){n={y:100,x:-10}}if(n.y===100&&n.x<=-12&&f===_){n={y:100,x:190}}o=n;r=E(o,f);t=u.block(r);if((g(o.y)||g(o.x))&&t===z.BISCUIT||t===z.PILL){u.setBlock(r,z.EMPTY);v(t===z.BISCUIT?10:50);c+=1;if(c===182){l.completedLevel()}if(t===z.PILL){l.eatenPill()}}return{new:o,old:i}}function g(e){var n=e%10;return n>3||n<7}function I(e,n){if(e==O&&n.x%10<5){return{start:.25,end:1.75,direction:false}}else if(e===b&&n.y%10<5){return{start:.75,end:2.25,direction:false}}else if(e===R&&n.y%10<5){return{start:1.25,end:1.75,direction:true}}else if(e===_&&n.x%10<5){return{start:.75,end:1.25,direction:true}}return{start:0,end:2,direction:false}}function k(e,n){var r=u.blockSize,i=r/2;if(n>=1){return}e.fillStyle=\"#ffee00\";e.beginPath();e.moveTo(o.x/10*r+i,o.y/10*r+i);e.arc(o.x/10*r+i,o.y/10*r+i,i,0,Math.PI*2*n,true);e.fill()}function M(e){var n=u.blockSize,r=I(f,o);e.fillStyle=\"#ffee00\";e.beginPath();e.moveTo(o.x/10*n+n/2,o.y/10*n+n/2);e.arc(o.x/10*n+n/2,o.y/10*n+n/2,n/2,Math.PI*r.start,Math.PI*r.end,r.direction);e.fill()}d();return{draw:M,drawDead:k,loseLife:t,getLives:s,score:r,addScore:v,theScore:e,keyDown:h,move:C,newLevel:S,reset:P,resetPosition:y}};z.Map=function(e){var t=null,l=null,u=e,n=0,o=null;function r(e,n){return e>=0&&e=0&&n30){n=0}for(i=0;i0){e()}}function A(e){n=e;r=true}function C(e,n){return Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2))<10}function g(){var e=y.height*y.blockSize,n=e+17;d.fillStyle=\"#fff\";d.fillRect(0,e,y.width*y.blockSize,30);d.fillStyle=\"#009fe4\";for(var r=0,i=P.getLives();rz.FPS/3){y.draw(d);A(F)}else if(n===B){if(f-v>z.FPS*2){w()}else{I(a);for(i=0,len=u.length;i\r\n */\r\nexport class Error404 extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule, startNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\nimport {\r\n\tFormControlLabelStateClass,\r\n\tFormControlSiteCoreStateClass,\r\n} from '@project/shared/utils/form-control/js/form-control';\r\n\r\nconst optionValues = {\r\n\treferredby: 'applicant_source-referral_friends_family',\r\n\ttypeofform: 'hr application form',\r\n};\r\n\r\nconst classes = {\r\n\tsubmitForm: 'js-form__button-event--submit',\r\n\tselectErrorClass: 'input-validation-error',\r\n\tproductsDetailsSection: 'js-form-row-products-category',\r\n\tcategoryOptionsForCompany: 'js-form__input-category-type-main',\r\n\tinput: 'js-form__input',\r\n\tinputCheckBox: 'a-input-checkbox__input',\r\n};\r\n\r\nconst jobProfileLocations: { [key: string]: Set } = {};\r\nlet stepTwoFormLoaded: boolean = true;\r\nlet stepThreeFormLoaded: boolean = true;\r\nlet stepFourOneFormLoaded: boolean = true;\r\nlet stepFourTwoFormLoaded: boolean = true;\r\nlet stepFiveFormLoaded: boolean = true;\r\n@createModule('Form')\r\n/**\r\n * form module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class Form extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$inputSelect: JQuery;\r\n\t$inputSelect1: JQuery;\r\n\t$inputSelectCategory: JQuery;\r\n\tproductValidation = false;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis._initTerrificModules(this.$ctx);\r\n\t\t// On Form Errors after Submit (e.g. email send fails on BE), Form-Builder does re-render\r\n\t\t// the form and all previous bindings are lost.\r\n\t\t// So we track changes on form-wrapper and re-initialize the Terrific controls\r\n\t\tthis.initMutationObserver(this.$ctx);\r\n\t\tthis.initAjaxListeners();\r\n\t\tconst scFormName = this.$ctx.find(\"input[data-sc-field-name='TypeOfForm']\").val();\r\n\r\n\t\tif (this.$ctx.data('api-endpoint')) {\r\n\t\t\tthis.fetchCdpIdData();\r\n\t\t\tthis.prefillFormData();\r\n\r\n\t\t\tif (\r\n\t\t\t\tscFormName !== undefined &&\r\n\t\t\t\tscFormName.toString().toLowerCase() === optionValues.typeofform.toLowerCase()\r\n\t\t\t) {\r\n\t\t\t\tthis.$ctx.find(`.o-form__grid-col--input-reffered-by`).hide();\r\n\t\t\t\tthis.$ctx.find('input[data-sc-field-name=\"yourReferral\"]').val('-');\r\n\t\t\t\tthis.emailValidationChangeEventForWorkdayForm();\r\n\t\t\t\tconst inputSelect = 'js-form__input-select-reffered-by';\r\n\t\t\t\tthis.$inputSelect = this.$ctx.find(`.${inputSelect}`);\r\n\t\t\t\tthis.$inputSelect.on('change', (ev: Event) => this.inputSelecteOptionChanged(ev));\r\n\t\t\t\tthis.$ctx.on('click', `.js-form__button-event--submit-application`, this.onFormSubmit.bind(this));\r\n\t\t\t\tthis.workdayJobsFormData();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.initFormHadling();\r\n\t\tif (scFormName !== undefined && scFormName.toString().toLowerCase() === 'company contact') {\r\n\t\t\tthis.$ctx.find(`.${classes.productsDetailsSection}`).addClass('o-form-row-products-category--hide');\r\n\t\t\tthis.$inputSelectCategory = this.$ctx.find(`.${classes.categoryOptionsForCompany}`);\r\n\t\t\tthis.$inputSelectCategory.on('change', (ev: Event) => this.categorySelectedOptionChanged(ev));\r\n\t\t}\r\n\r\n\t\tthis.initUserVali();\r\n\t\tthis.submitButtonClickForGA();\r\n\t\tthis.sendFromStartDataToGtm();\r\n\r\n\t\tconst inputSelect1 = 'js-form__input-select';\r\n\t\tthis.$inputSelect1 = this.$ctx.find(`.${inputSelect1}`);\r\n\t\tthis.$inputSelect1.on('change', (ev: Event) => this.inputSelecteValidation(ev));\r\n\r\n\t\tif (scFormName !== undefined && scFormName.toString().toLowerCase() === 'legal form') {\r\n\t\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option');\r\n\t\t\tconst sectionStepTwo = $('.js-section__steptwo');\r\n\t\t\tconst sectionStepThree = $('.js-section__stepthree');\r\n\t\t\tconst sectionStepFour = $('.js-section__stepfour');\r\n\t\t\tconst sectionStepFive = $('.js-section__stepfive');\r\n\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\tsectionStepTwo.hide();\r\n\t\t\tsectionStepThree.hide();\r\n\t\t\tsectionStepFour.hide();\r\n\t\t\tsectionStepFive.hide();\r\n\r\n\t\t\tconst radioButtons: any = document.querySelectorAll('.o-form__legal-radio input[type=\"radio\"]');\r\n\t\t\tconst radioButtonsStepTwo: any = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-steptwo-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst radioButtonsStepThree: any = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepthree-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst radioButtonsStepFourOne: any = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepfour-one-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst radioButtonsStepFourTwo: any = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepfour-two-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst buttonNext: any = document.querySelectorAll('.js-form__button-step-one--submit');\r\n\t\t\tconst buttonNextSecond: any = document.querySelectorAll('.js-form__button-step-two--submit');\r\n\t\t\tconst buttonNextThree: any = document.querySelectorAll('.js-form__button-step-three--submit');\r\n\t\t\tconst buttonNextFour: any = document.querySelectorAll('.js-form__button-step-four-submit');\r\n\r\n\t\t\tradioButtons.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tradioButtonsStepTwo.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepTwoClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tradioButtonsStepThree.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepThreeClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tradioButtonsStepFourOne.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepFourOneClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tradioButtonsStepFourTwo.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepFourTwoClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tbuttonNext.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepOneButtonClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tbuttonNextSecond.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepTwoButtonClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tbuttonNextThree.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepThreeOneButtonClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tbuttonNextThree.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepThreeTwoButtonClick(ev));\r\n\t\t\t});\r\n\t\t\tbuttonNextFour.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepFourButtonClick(ev));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tbindRadioButtonClick(event: any) {\r\n\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option');\r\n\t\tvar inputValue = $(event.target).attr('value');\r\n\t\tif (inputValue == 'Ja') {\r\n\t\t\tlegalFormSectionYesOption.show();\r\n\t\t\tconst hiddenSections: any = document.querySelectorAll('.js-form__section-for-yes-option');\r\n\r\n\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\t$(field).val('');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\tconst hiddenSections: any = document.querySelectorAll('.js-form__section-for-yes-option');\r\n\r\n\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\tif ($(field).attr('type') == 'email') {\r\n\t\t\t\t\t\t\t$(field).val('demo@demo.com');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'number') {\r\n\t\t\t\t\t\t\t$(field).val('1234567890');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'tel') {\r\n\t\t\t\t\t\t\t$(field).val('0');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tbindRadioButtonStepTwoClick(event: any) {\r\n\t\tconst legalFormSectionRegStromOption = $('.js-form__section-registration-strom');\r\n\t\tconst legalFormSectionRegGasOption = $('.js-form__section-registration-gas');\r\n\t\tconst spanFileUploadValidationMessage = $('.js-form__file-upload-validation-message');\r\n\t\tlegalFormSectionRegGasOption.hide();\r\n\t\tlegalFormSectionRegStromOption.hide();\r\n\t\tspanFileUploadValidationMessage.hide();\r\n\r\n\t\tconst selectBoxStepTwo: any = $('.o-form__legal-steptwo-select');\r\n\t\tif (\r\n\t\t\tselectBoxStepTwo.val() !== 'Veränderung Netzanschluss' &&\r\n\t\t\tselectBoxStepTwo.val() !== 'Abmeldung Netzanschluss'\r\n\t\t) {\r\n\t\t\tvar inputValue = $(event.target).attr('value');\r\n\t\t\tif (inputValue == 'Gas') {\r\n\t\t\t\tlegalFormSectionRegGasOption.show();\r\n\t\t\t\tconst hiddenSections: any = document.querySelectorAll(\r\n\t\t\t\t\t'.js-form__section-registration-strom,.js-form__section-registration-meter-number'\r\n\t\t\t\t);\r\n\t\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\t\tconst fields = section.querySelectorAll('input,textarea,select');\r\n\t\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\t\tif (field.tagName === 'SELECT') {\r\n\t\t\t\t\t\t\t$(field).val('10 kV*');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else if (inputValue == 'Strom') {\r\n\t\t\t\tlegalFormSectionRegStromOption.show();\r\n\t\t\t\tconst hiddenSections: any = document.querySelectorAll(\r\n\t\t\t\t\t'.js-form__section-registration-gas,.js-form__section-registration-meter-number'\r\n\t\t\t\t);\r\n\t\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tlegalFormSectionRegGasOption.hide();\r\n\t\t\t\tlegalFormSectionRegStromOption.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst fileUploadControls = Array.from(\r\n\t\t\tdocument.querySelectorAll('.js-form__section-registration-file-upload-control')\r\n\t\t);\r\n\t\tfileUploadControls.forEach((control) => {\r\n\t\t\tcontrol.addEventListener('change', (ev) => this.bindFileUploadClick(ev));\r\n\t\t});\r\n\t}\r\n\r\n\tbindFileUploadClick(event: any) {\r\n\t\tconst fileInput = event.target as HTMLInputElement;\r\n\t\tif (fileInput.files && fileInput.files.length > 0) {\r\n\t\t\tconst file = fileInput.files[0];\r\n\r\n\t\t\t// Use FileReader to read the file as a base64 string\r\n\t\t\tconst reader = new FileReader();\r\n\t\t\treader.onloadend = function() {\r\n\t\t\t\tconst base64String = reader.result as string;\r\n\r\n\t\t\t\t// Create an object to hold the base64 string and the file name\r\n\t\t\t\tconst fileData = {\r\n\t\t\t\t\tbase64: base64String,\r\n\t\t\t\t\tname: file.name,\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Convert the object to a JSON string\r\n\t\t\t\tconst fileDataJson = JSON.stringify(fileData);\r\n\r\n\t\t\t\t// Find the hidden field where we will store the base64 string and file name\r\n\t\t\t\tconst hiddenField = document.querySelector(\r\n\t\t\t\t\t'input[data-sc-field-name=\"hiddenFieldForFile\"]'\r\n\t\t\t\t) as HTMLInputElement | null;\r\n\t\t\t\tif (hiddenField) {\r\n\t\t\t\t\thiddenField.value = fileDataJson; // Store JSON string in the hidden field\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconsole.log('File Data JSON:', fileDataJson); // Optionally log the JSON string\r\n\t\t\t};\r\n\r\n\t\t\t// Read the file as a Data URL (Base64-encoded)\r\n\t\t\treader.readAsDataURL(file);\r\n\t\t} else {\r\n\t\t\talert('Please select a file to upload.');\r\n\t\t}\r\n\t}\r\n\r\n\tbindRadioButtonStepThreeClick(event: any) {\r\n\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option');\r\n\t\tlegalFormSectionYesOption.hide();\r\n\t\tvar inputValue = $(event.target).attr('value');\r\n\t\tif (inputValue == 'Ja') {\r\n\t\t\tlegalFormSectionYesOption.show();\r\n\t\t\tconst hiddenSections: any = document.querySelectorAll('.js-form__section-for-yes-option');\r\n\r\n\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\t$(field).val('');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\tconst hiddenSections: any = document.querySelectorAll('.js-form__section-for-yes-option');\r\n\r\n\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\tif ($(field).attr('type') == 'email') {\r\n\t\t\t\t\t\t\t$(field).val('demo@demo.com');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'number') {\r\n\t\t\t\t\t\t\t$(field).val('1234567890');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'tel') {\r\n\t\t\t\t\t\t\t$(field).val('0');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tbindRadioButtonStepFourOneClick(event: any) {\r\n\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option-next');\r\n\t\tconst legalFormSectionNextYesOptionYes = $('.js-form__section-for-next-yes-option-yes');\r\n\t\tconst legalFormSectionNo = $('.js-form__section-for-no-option');\r\n\t\tlegalFormSectionYesOption.hide();\r\n\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\tlegalFormSectionNo.hide();\r\n\t\tvar inputValue = $('.o-form__legal-stepfour-one-radio input[type=\"radio\"]:checked').val();\r\n\t\tif (inputValue == 'Ja') {\r\n\t\t\tconst radioButtonsStepFourTwo = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepfour-two-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst radioButtonsStepFourArray = Array.from(radioButtonsStepFourTwo);\r\n\t\t\tradioButtonsStepFourArray.forEach((radio: any) => {\r\n\t\t\t\t$(radio).prop('checked', false);\r\n\t\t\t});\r\n\t\t\tlegalFormSectionYesOption.show();\r\n\t\t} else {\r\n\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\t\tlegalFormSectionNo.hide();\r\n\t\t\tconst hiddenSections: any = document.querySelectorAll(\r\n\t\t\t\t'.js-form__section-for-no-option,.js-form__section-for-next-yes-option-yes,.js-form__section-for-yes-option-next'\r\n\t\t\t);\r\n\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea, input[type=\"radio\"]');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\tif ($(field).attr('type') == 'email') {\r\n\t\t\t\t\t\t\t$(field).val('demo@demo.com');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'number') {\r\n\t\t\t\t\t\t\t$(field).val('1234567890');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'tel') {\r\n\t\t\t\t\t\t\t$(field).val('0');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'radio') {\r\n\t\t\t\t\t\t\t$(field).prop('checked', true);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tbindRadioButtonStepFourTwoClick(event: any) {\r\n\t\tconst legalFormSectionNextYesOptionYes = $('.js-form__section-for-next-yes-option-yes');\r\n\t\tconst legalFormSectionNo = $('.js-form__section-for-no-option');\r\n\t\tlegalFormSectionNo.hide();\r\n\t\tvar inputValue = $('.o-form__legal-stepfour-two-radio input[type=\"radio\"]:checked').val();\r\n\t\tif (inputValue == 'Ja') {\r\n\t\t\tlegalFormSectionNextYesOptionYes.show();\r\n\t\t\tconst hiddenSections: any = document.querySelectorAll('.js-form__section-for-next-yes-option-yes');\r\n\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\t$(field).val('');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tconst hiddenSectionNo: any = document.querySelectorAll('.js-form__section-for-no-option');\r\n\t\t\thiddenSectionNo.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea,input[type=\"radio\"]');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\tif ($(field).attr('type') == 'email') {\r\n\t\t\t\t\t\t\t$(field).val('demo@demo.com');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'number') {\r\n\t\t\t\t\t\t\t$(field).val('1234567890');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'tel') {\r\n\t\t\t\t\t\t\t$(field).val('0');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'radio') {\r\n\t\t\t\t\t\t\t$(field).prop('checked', true);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else if (inputValue == 'Nein') {\r\n\t\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\t\tlegalFormSectionNo.show();\r\n\t\t\tconst hiddenSections: any = document.querySelectorAll('.js-form__section-for-no-option');\r\n\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\t$(field).val('');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tconst hiddenSectionYes: any = document.querySelectorAll('.js-form__section-for-next-yes-option-yes');\r\n\t\t\thiddenSectionYes.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\t\tlegalFormSectionNo.hide();\r\n\t\t\tconst hiddenSections: any = document.querySelectorAll(\r\n\t\t\t\t'.js-form__section-for-no-option,.js-form__section-for-next-yes-option-yes'\r\n\t\t\t);\r\n\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea,input[type=\"radio\"]');\r\n\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\tif ($(field).attr('type') == 'email') {\r\n\t\t\t\t\t\t\t$(field).val('demo@demo.com');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'number') {\r\n\t\t\t\t\t\t\t$(field).val('1234567890');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'tel') {\r\n\t\t\t\t\t\t\t$(field).val('0');\r\n\t\t\t\t\t\t} else if ($(field).attr('type') == 'radio') {\r\n\t\t\t\t\t\t\t$(field).prop('checked', true);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tbindRadioButtonStepFiveClick(event: any) {}\r\n\r\n\tbindSelectBoxStepTwoChange(event: any) {\r\n\t\tif (event.currentTarget.value === 'Veränderung Netzanschluss') {\r\n\t\t\tthis.hideStepTwoDateSection();\r\n\t\t\tthis.hideStepTwoGasSection();\r\n\t\t\tthis.hideStepTwoStromSection();\r\n\t\t\tthis.hideStepTwoFileUploadSection();\r\n\t\t\t$('.js-form__file-upload-validation-message').hide();\r\n\t\t\tthis.hideStepTwoMeterNoSection();\r\n\t\t} else if (event.currentTarget.value === 'Abmeldung Netzanschluss') {\r\n\t\t\t$('.js-form__section-registration-date').show();\r\n\t\t\t$('.js-form__section-registration-meter-number').show();\r\n\t\t\tthis.hideStepTwoGasSection();\r\n\t\t\tthis.hideStepTwoStromSection();\r\n\t\t\tthis.hideStepTwoFileUploadSection();\r\n\t\t\t$('.js-form__file-upload-validation-message').hide();\r\n\t\t} else {\r\n\t\t\t$('.js-form__section-registration-date').show();\r\n\t\t\t$('.js-form__file-upload-validation-message').hide();\r\n\t\t\t$('.js-form__section-registration-file-upload').show();\r\n\t\t\tthis.hideStepTwoMeterNoSection();\r\n\t\t\tthis.clearStepTwoDateSection();\r\n\t\t}\r\n\t}\r\n\r\n\thideStepTwoDateSection() {\r\n\t\t$('.js-form__section-registration-date').hide();\r\n\t\tconst hiddenSectionsDate: any = document.querySelectorAll('.js-form__section-registration-date');\r\n\r\n\t\thiddenSectionsDate.forEach((section: any) => {\r\n\t\t\tconst fields = section.querySelectorAll('input, select, textarea, input[type=\"date\"]');\r\n\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t$(field).val('1900-01-01');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tclearStepTwoDateSection() {\r\n\t\tconst hiddenSectionsDate: any = document.querySelectorAll('.js-form__section-registration-date');\r\n\r\n\t\thiddenSectionsDate.forEach((section: any) => {\r\n\t\t\tconst fields = section.querySelectorAll('input, select, textarea, input[type=\"date\"]');\r\n\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\tif ($(field).attr('type') !== 'hidden' && $(field).val() === '1900-01-01') {\r\n\t\t\t\t\t$(field).val('');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\thideStepTwoMeterNoSection() {\r\n\t\t$('.js-form__section-registration-meter-number').hide();\r\n\t\tconst hiddenSectionsMeterNo: any = document.querySelectorAll('.js-form__section-registration-meter-number');\r\n\r\n\t\thiddenSectionsMeterNo.forEach((section: any) => {\r\n\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\thideStepTwoGasSection() {\r\n\t\t$('.js-form__section-registration-gas').hide();\r\n\t\tconst hiddenSectionsGas: any = document.querySelectorAll('.js-form__section-registration-gas');\r\n\r\n\t\thiddenSectionsGas.forEach((section: any) => {\r\n\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\thideStepTwoStromSection() {\r\n\t\t$('.js-form__section-registration-strom').hide();\r\n\t\tconst hiddenSectionsStrom: any = document.querySelectorAll('.js-form__section-registration-strom');\r\n\r\n\t\thiddenSectionsStrom.forEach((section: any) => {\r\n\t\t\tconst fields = section.querySelectorAll('input, select, textarea');\r\n\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\tif (field.tagName === 'SELECT') {\r\n\t\t\t\t\t$(field).val('10 kV*');\r\n\t\t\t\t} else if ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\thideStepTwoFileUploadSection() {\r\n\t\t$('.js-form__section-registration-file-upload').hide();\r\n\t\tconst hiddenSectionsFileUpload: any = document.querySelectorAll('.js-form__section-registration-file-upload');\r\n\r\n\t\thiddenSectionsFileUpload.forEach((section: any) => {\r\n\t\t\tconst fields = section.querySelectorAll('input, select, textarea, input[type=\"file\"]');\r\n\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t$(field).removeClass('field-validation-error');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\ttriggerFileUploadValidation(event: any) {\r\n\t\tlet stepThreeFormLoaded = false;\r\n\t\tconst inputFileUploadControl: any = document.querySelector(\r\n\t\t\t'.js-form__section-registration-file-upload-control'\r\n\t\t);\r\n\t\tconst spanFileUploadValidationMessage: any = document.querySelector('.js-form__file-upload-validation-message');\r\n\t\tif (inputFileUploadControl && inputFileUploadControl.files.length !== 0) {\r\n\t\t\tspanFileUploadValidationMessage.style.display = 'none';\r\n\t\t\tstepThreeFormLoaded = true;\r\n\t\t} else {\r\n\t\t\tspanFileUploadValidationMessage.style.display = 'block';\r\n\t\t\tevent.preventDefault();\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tbindStepOneButtonClick(event: any) {\r\n stepTwoFormLoaded = true;\r\n }\r\n\r\n\tbindStepTwoButtonClick(event: any) {\r\n\t\tconst selectBoxStepTwo: any = $('.o-form__legal-steptwo-select');\r\n\t\tif (\r\n\t\t\tselectBoxStepTwo.val() !== 'Veränderung Netzanschluss' &&\r\n\t\t\tselectBoxStepTwo.val() !== 'Abmeldung Netzanschluss'\r\n\t\t) {\r\n\t\t\tthis.triggerFileUploadValidation(event);\r\n\t\t}\r\n\t}\r\n\tbindStepThreeOneButtonClick(event: any) {\r\n\t\tstepFourOneFormLoaded = true;\r\n\t}\r\n\tbindStepThreeTwoButtonClick(event: any) {\r\n\t\tstepFourTwoFormLoaded = true;\r\n\t}\r\n\tbindStepFourButtonClick(event: any) {\r\n\t\tstepFiveFormLoaded = true;\r\n\t}\r\n\t/// Preview Button From 2 to 1 Start\r\n\tbindStepTwoPreviousButtonClick(event: any) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst radioButtons: any = document.querySelectorAll('.o-form__legal-radio input[type=\"radio\"]');\r\n\t\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option');\r\n\t\t\tradioButtons.forEach((radio: any) => {\r\n\t\t\t\tif (radio.checked) {\r\n\t\t\t\t\tif (radio.value !== 'Ja') {\r\n\t\t\t\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tradioButtons.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tconst buttonNext: any = document.querySelectorAll('.js-form__button-step-one--submit');\r\n\t\t\tbuttonNext.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepOneButtonClick(ev));\r\n\t\t\t});\r\n\t\t}, 1000);\r\n\t}\r\n\t/// Preview Button From 2 to 1 End\r\n\t/// Preview Button From 3 to 2 Start\r\n\tbindStepThreePreviousButtonClick(event: any) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst legalFormSectionRegStromOption = $('.js-form__section-registration-strom');\r\n\t\t\tconst legalFormSectionRegGasOption = $('.js-form__section-registration-gas');\r\n\t\t\tconst hiddenSectionsMeterNo = $('.js-form__section-registration-meter-number');\r\n\t\t\tconst spanFileUploadValidationMessage = $('.js-form__file-upload-validation-message');\r\n\t\t\tconst hiddenSectionsDate = $('.js-form__section-registration-date');\r\n\t\t\tconst hiddenSectionsFileUpload = $('.js-form__section-registration-file-upload');\r\n\t\t\thiddenSectionsMeterNo.hide();\r\n\t\t\tlegalFormSectionRegGasOption.hide();\r\n\t\t\tlegalFormSectionRegStromOption.hide();\r\n\t\t\tspanFileUploadValidationMessage.hide();\r\n\t\t\thiddenSectionsDate.hide();\r\n\t\t\thiddenSectionsFileUpload.hide();\r\n\r\n\t\t\tconst radioButtonsStepTwo: any = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-steptwo-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst selectBoxStepTwo: any = $('.o-form__legal-steptwo-select');\r\n\t\t\tif (\r\n\t\t\t\tselectBoxStepTwo.val() !== 'Veränderung Netzanschluss' &&\r\n\t\t\t\tselectBoxStepTwo.val() !== 'Abmeldung Netzanschluss'\r\n\t\t\t) {\r\n\t\t\t\thiddenSectionsFileUpload.show();\r\n\t\t\t\thiddenSectionsDate.show();\r\n\t\t\t\tvar inputValue = $('input[type=\"radio\"]:checked').val();\r\n\t\t\t\tif (inputValue == 'Gas') {\r\n\t\t\t\t\tlegalFormSectionRegGasOption.show();\r\n\t\t\t\t} else if (inputValue == 'Strom') {\r\n\t\t\t\t\tlegalFormSectionRegStromOption.show();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlegalFormSectionRegGasOption.hide();\r\n\t\t\t\t\tlegalFormSectionRegStromOption.hide();\r\n\t\t\t\t}\r\n\t\t\t} else if (selectBoxStepTwo.val() === 'Veränderung Netzanschluss') {\r\n\t\t\t\tthis.hideStepTwoDateSection();\r\n\t\t\t\tthis.hideStepTwoGasSection();\r\n\t\t\t\tthis.hideStepTwoStromSection();\r\n\t\t\t\tthis.hideStepTwoFileUploadSection();\r\n\t\t\t\tthis.hideStepTwoMeterNoSection();\r\n\t\t\t\tspanFileUploadValidationMessage.hide();\r\n\t\t\t\thiddenSectionsFileUpload.hide();\r\n\t\t\t\thiddenSectionsDate.hide();\r\n\t\t\t} else {\r\n\t\t\t\t$('.js-form__section-registration-date').show();\r\n\t\t\t\t$('.js-form__section-registration-meter-number').show();\r\n\t\t\t\tthis.hideStepTwoGasSection();\r\n\t\t\t\tthis.hideStepTwoStromSection();\r\n\t\t\t\tthis.hideStepTwoFileUploadSection();\r\n\t\t\t\tspanFileUploadValidationMessage.hide();\r\n\t\t\t\tthis.clearStepTwoDateSection();\r\n\t\t\t}\r\n\t\t\tradioButtonsStepTwo.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepTwoClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tconst buttonNextSecond: any = document.querySelectorAll('.js-form__button-step-two--submit');\r\n\t\t\tbuttonNextSecond.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepTwoButtonClick(ev));\r\n\t\t\t});\r\n\t\t}, 1000);\r\n\t}\r\n\t/// Preview Button From 3 to 2 End\r\n\t/// Preview Button From 4 to 3 Start\r\n\tbindStepFourPreviousButtonClick(event: any) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst radioButtonsStepThree: any = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepthree-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option');\r\n\t\t\tradioButtonsStepThree.forEach((radio: any) => {\r\n\t\t\t\tif (radio.checked) {\r\n\t\t\t\t\tif (radio.value !== 'Ja') {\r\n\t\t\t\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlegalFormSectionYesOption.show();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tradioButtonsStepThree.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepThreeClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tconst buttonNextThree: any = document.querySelectorAll('.js-form__button-step-three--submit');\r\n\t\t\tbuttonNextThree.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepThreeOneButtonClick(ev));\r\n\t\t\t});\r\n\t\t}, 1000);\r\n\t}\r\n\t/// Preview Button From 4 to 3 End\r\n\t/// Preview Button From 5 to 4 Start\r\n\tbindStepFivePreviousButtonClick(event: any) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst radioButtonsStepFourOne: any = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepfour-one-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option-next');\r\n\t\t\tconst legalFormSectionNextYesOptionYes = $('.js-form__section-for-next-yes-option-yes');\r\n\t\t\tconst legalFormSectionNo = $('.js-form__section-for-no-option');\r\n\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\t\tlegalFormSectionNo.hide();\r\n\r\n\t\t\tvar inputValue = $('.o-form__legal-stepfour-one-radio input[type=\"radio\"]:checked').val();\r\n\t\t\tif (inputValue == 'Ja') {\r\n\t\t\t\tlegalFormSectionYesOption.show();\r\n\t\t\t\tvar inputValueTwo = $('.o-form__legal-stepfour-two-radio input[type=\"radio\"]:checked').val();\r\n\t\t\t\tif (inputValueTwo == 'Ja') {\r\n\t\t\t\t\tlegalFormSectionNextYesOptionYes.show();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlegalFormSectionNo.show();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\t\t\tlegalFormSectionNo.hide();\r\n\t\t\t\tconst hiddenSections: any = document.querySelectorAll(\r\n\t\t\t\t\t'.js-form__section-for-no-option,.js-form__section-for-next-yes-option-yes,.js-form__section-for-yes-option-next'\r\n\t\t\t\t);\r\n\t\t\t\thiddenSections.forEach((section: any) => {\r\n\t\t\t\t\tconst fields = section.querySelectorAll('input, select, textarea, input[type=\"radio\"]');\r\n\t\t\t\t\tfields.forEach((field: any) => {\r\n\t\t\t\t\t\tif ($(field).attr('type') !== 'hidden') {\r\n\t\t\t\t\t\t\tif ($(field).attr('type') == 'email') {\r\n\t\t\t\t\t\t\t\t$(field).val('demo@demo.com');\r\n\t\t\t\t\t\t\t} else if ($(field).attr('type') == 'number') {\r\n\t\t\t\t\t\t\t\t$(field).val('1234567890');\r\n\t\t\t\t\t\t\t} else if ($(field).attr('type') == 'tel') {\r\n\t\t\t\t\t\t\t\t$(field).val('0');\r\n\t\t\t\t\t\t\t} else if ($(field).attr('type') == 'radio') {\r\n\t\t\t\t\t\t\t\t$(field).prop('checked', true);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$(field).val('-');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tradioButtonsStepFourOne.forEach((radio: any) => {\r\n\t\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepFourOneClick(ev));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst buttonNextFour: any = document.querySelectorAll('.js-form__button-step-four-submit');\r\n\t\t\t\tbuttonNextFour.forEach((button: any) => {\r\n\t\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepFourButtonClick(ev));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}, 1000);\r\n\t}\r\n\t/// Preview Button From 5 to 4 End\r\n\tonFormSubmit(ev: Event) {\r\n\t\tconst $fieldValidationError = this.$ctx.find('.field-validation-error');\r\n\t\tconst $fieldValidationErrorLength = this.$ctx.find('.field-validation-error').length;\r\n\t\tvar $validationErrorCount = 0;\r\n\r\n\t\tif ($fieldValidationErrorLength === 0) {\r\n\t\t\tthis.$ctx.find('input[data-sc-field-name=\"applicationFormSubmitClicked\"]').val('true');\r\n\t\t} else {\r\n\t\t\t$fieldValidationError.each((index, element) => {\r\n\t\t\t\tconst $validationError = $(element);\r\n\t\t\t\tif (!$validationError.is(':visible')) {\r\n\t\t\t\t\t$validationErrorCount = $validationErrorCount + 1;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif ($fieldValidationErrorLength === $validationErrorCount) {\r\n\t\t\t\tthis.$ctx.find('input[data-sc-field-name=\"applicationFormSubmitClicked\"]').val('true');\r\n\t\t\t} else {\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst contactingCategoryField = this.$ctx.find(\"[data-sc-field-name='ContactingCategory']\");\r\n\t\tif (contactingCategoryField.length !== 0) {\r\n\t\t\tvar productvalue: any = $(contactingCategoryField).val();\r\n\t\t\tif (productvalue.toLowerCase() === 'products') {\r\n\t\t\t\tlet MktoForms2 = (window as any)['MktoForms2'];\r\n\t\t\t\tif (typeof MktoForms2 != 'undefined') {\r\n\t\t\t\t\tconst hiddenMktoForm: any = this.$ctx.find(\"div[data-allow-hidden-form-submit='true']\");\r\n\t\t\t\t\tif (hiddenMktoForm.length > 0) {\r\n\t\t\t\t\t\tvar mktoFormId = $(hiddenMktoForm[0]).attr('data-form-id');\r\n\t\t\t\t\t\tlet myHiddenMktoForm: any = MktoForms2.getForm(mktoFormId);\r\n\t\t\t\t\t\tlet myHiddenFormFields: any = myHiddenMktoForm.vals();\r\n\t\t\t\t\t\tvar myMktoHiddenMetaDataString = this.$ctx.find(`#dynamicDataSourceFieldsJsonString`).text();\r\n\t\t\t\t\t\tlet myMktoHiddenMetaData: any;\r\n\t\t\t\t\t\tif (myMktoHiddenMetaDataString.length > 0) {\r\n\t\t\t\t\t\t\tmyMktoHiddenMetaDataString = myMktoHiddenMetaDataString.replace('][', ',');\r\n\t\t\t\t\t\t\tmyMktoHiddenMetaData = JSON.parse(myMktoHiddenMetaDataString);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet materialTagValue = this.$ctx.find(\"[data-sc-field-name='materialTag']\").val();\r\n\t\t\t\t\t\tlet industryTagValue = this.$ctx.find(\"[data-sc-field-name='industryType']\").val();\r\n\r\n\t\t\t\t\t\tvar firstName = this.$ctx.find(\"[data-sc-field-name='FirstName']\").val();\r\n\t\t\t\t\t\tvar lastName = this.$ctx.find(\"[data-sc-field-name='LastName']\").val();\r\n\t\t\t\t\t\tvar email = this.$ctx.find(\"[data-sc-field-name='Email']\").val();\r\n\t\t\t\t\t\tvar country = this.$ctx.find(\"[data-sc-field-name='Country']\").val();\r\n\t\t\t\t\t\tvar company = this.$ctx.find(\"[data-sc-field-name='Company']\").val();\r\n\r\n\t\t\t\t\t\tif (typeof myHiddenFormFields != 'undefined') {\r\n\t\t\t\t\t\t\tmyHiddenMktoForm.addHiddenFields({\r\n\t\t\t\t\t\t\t\t//These are the values which will be submitted to Marketo\r\n\t\t\t\t\t\t\t\tformMessage: this.$ctx.find(\"[data-sc-field-name='FormMessage']\").val(),\r\n\t\t\t\t\t\t\t\tFirstName: firstName,\r\n\t\t\t\t\t\t\t\tLastName: lastName,\r\n\t\t\t\t\t\t\t\tEmail: email,\r\n\t\t\t\t\t\t\t\tCountry: country,\r\n\t\t\t\t\t\t\t\tCompany: company,\r\n\t\t\t\t\t\t\t\tmktoindustry: this.getValueFromObject(myMktoHiddenMetaData, industryTagValue),\r\n\t\t\t\t\t\t\t\tinferredMaterialInterest: this.getValueFromObject(\r\n\t\t\t\t\t\t\t\t\tmyMktoHiddenMetaData,\r\n\t\t\t\t\t\t\t\t\tmaterialTagValue\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\tprivacyPolicyAcceptance: true,\r\n\t\t\t\t\t\t\t\tmktooptinchkbxacceptance: true,\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\ttypeof firstName !== 'undefined' &&\r\n\t\t\t\t\t\t\t\tfirstName.toString().length > 0 &&\r\n\t\t\t\t\t\t\t\ttypeof lastName !== 'undefined' &&\r\n\t\t\t\t\t\t\t\tlastName.toString().length > 0 &&\r\n\t\t\t\t\t\t\t\ttypeof email !== 'undefined' &&\r\n\t\t\t\t\t\t\t\temail.toString().length > 0 &&\r\n\t\t\t\t\t\t\t\ttypeof country !== 'undefined' &&\r\n\t\t\t\t\t\t\t\tcountry.toString().length > 0 &&\r\n\t\t\t\t\t\t\t\ttypeof company !== 'undefined' &&\r\n\t\t\t\t\t\t\t\tcompany.toString().length > 0\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tmyHiddenMktoForm.submit();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinitFormHadling() {\r\n\t\tthis.$ctx.on('click', `.${classes.submitForm}`, this.onFormSubmit.bind(this));\r\n\t}\r\n\r\n\tstop() {\r\n\t\t// needs to be here for terrific\r\n\t}\r\n\r\n\t_initTerrificModules($ctx: JQuery) {\r\n\t\tconst cancelButtonSelector = 'js-form__button-event--cancel';\r\n\t\tconst terrificControlMap = [\r\n\t\t\t{\r\n\t\t\t\tselector: '.js-form__input, .js-form__input-number, .js-form__input-email, .js-form__input-date',\r\n\t\t\t\tterrificName: 'Input',\r\n\t\t\t\tcomponentAttr: [],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tselector: '.js-form__input-textarea',\r\n\t\t\t\tterrificName: 'InputTextarea',\r\n\t\t\t\tcomponentAttr: [],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tselector: '.js-form__input-select',\r\n\t\t\t\tterrificName: 'InputSelect',\r\n\t\t\t\tcomponentAttr: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\thelperClass: 'js-form__input-select',\r\n\t\t\t\t\t\tsetAttr: 'data-fullwidth',\r\n\t\t\t\t\t\tsetValue: 'true',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\thelperClass: 'js-form__input-select--search',\r\n\t\t\t\t\t\tsetAttr: 'data-search',\r\n\t\t\t\t\t\tsetValue: 'true',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\thelperClass: 'js-form__input-select--market',\r\n\t\t\t\t\t\tsetAttr: 'data-cookie',\r\n\t\t\t\t\t\tsetValue: 'cov_market',\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\t// make a reset button out of it\r\n\t\tconst $buttonCancel = $(`.${cancelButtonSelector}`, $ctx);\r\n\r\n\t\t// late bind terrfic modules\r\n\t\tterrificControlMap.forEach((control) => {\r\n\t\t\tconst $formControls = $(control.selector, $ctx);\r\n\t\t\tconst $formControlValidationErrorSelector = 'field-validation-error';\r\n\t\t\tif (!$formControls) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t$formControls.each((index, element) => {\r\n\t\t\t\tconst $this = $(element);\r\n\t\t\t\t$this.attr('data-t-name', control.terrificName);\r\n\r\n\t\t\t\t// add additional attributes before startNode\r\n\t\t\t\tcontrol.componentAttr.forEach((attr) => {\r\n\t\t\t\t\tif ($this.hasClass(attr.helperClass)) {\r\n\t\t\t\t\t\t$this.attr(attr.setAttr, attr.setValue);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tstartNode(element);\r\n\r\n\t\t\t\tif ($this.hasClass('input-validation-error')) {\r\n\t\t\t\t\t$this.prev('label').addClass('state-a-label--has-error');\r\n\r\n\t\t\t\t\tconst $select2Container = $this.next('.select2-container');\r\n\t\t\t\t\tif ($select2Container.length) {\r\n\t\t\t\t\t\tconst $select2Single = $select2Container.find('.select2-selection--single');\r\n\t\t\t\t\t\t// Get value from select2 container\r\n\t\t\t\t\t\tconst value =\r\n\t\t\t\t\t\t\t$this instanceof HTMLSelectElement && !$this.val()\r\n\t\t\t\t\t\t\t\t? $select2Container.find('.select2-selection__rendered').attr('title')\r\n\t\t\t\t\t\t\t\t: $this.val();\r\n\r\n\t\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\t\t$select2Single.removeClass('select2-validation-error');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$select2Single.addClass('select2-validation-error');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// hide error on focus\r\n\t\t\t\t$this.on('focus', () => {\r\n\t\t\t\t\tif ($this.next().hasClass($formControlValidationErrorSelector)) {\r\n\t\t\t\t\t\t$this.next().hide();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Handle select2 components\r\n\t\t\t\t\tif ($this.hasClass('input-validation-error')) {\r\n\t\t\t\t\t\tconst $select2Container = $this.next('.select2-container');\r\n\t\t\t\t\t\tif ($select2Container.length) {\r\n\t\t\t\t\t\t\tconst $select2Single = $select2Container.find('.select2-selection--single');\r\n\r\n\t\t\t\t\t\t\t// Get value from select2 container\r\n\t\t\t\t\t\t\tconst value =\r\n\t\t\t\t\t\t\t\t$this instanceof HTMLSelectElement && !$this.val()\r\n\t\t\t\t\t\t\t\t\t? $select2Container.find('.select2-selection__rendered').attr('title')\r\n\t\t\t\t\t\t\t\t\t: $this.val();\r\n\r\n\t\t\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\t\t\t$select2Single.removeClass('select2-validation-error');\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$select2Single.addClass('select2-validation-error');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// show error on blur if value did not change\r\n\t\t\t\t$this.on('blur', () => {\r\n\t\t\t\t\t$this.next().show();\r\n\r\n\t\t\t\t\t// Check if the current field is invalid and has validation error class\r\n\t\t\t\t\tif ($this.hasClass('input-validation-error')) {\r\n\t\t\t\t\t\t// Handle select2 components\r\n\t\t\t\t\t\tconst $select2Container = $this.next('.select2-container');\r\n\t\t\t\t\t\tif ($select2Container.length) {\r\n\t\t\t\t\t\t\tconst $select2Single = $select2Container.find('.select2-selection--single');\r\n\r\n\t\t\t\t\t\t\t// Get value from select2 container\r\n\t\t\t\t\t\t\tconst value =\r\n\t\t\t\t\t\t\t\t$this instanceof HTMLSelectElement && !$this.val()\r\n\t\t\t\t\t\t\t\t\t? $select2Container.find('.select2-selection__rendered').attr('title')\r\n\t\t\t\t\t\t\t\t\t: $this.val();\r\n\r\n\t\t\t\t\t\t\tif (!value) {\r\n\t\t\t\t\t\t\t\t$select2Single.addClass('select2-validation-error');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// check for cancel button placed from sitecore\r\n\t\tif ($buttonCancel.length !== 0) {\r\n\t\t\t// set type to reset\r\n\t\t\t$buttonCancel.attr('type', 'reset');\r\n\t\t\t// cleanup errors on the form & update label state (cause sitecore won't do this for us)\r\n\t\t\t$buttonCancel.on('click', (ev: Event) => {\r\n\t\t\t\t$('input + span, select + span, label + span', $ctx)\r\n\t\t\t\t\t.not('.select2')\r\n\t\t\t\t\t.text('');\r\n\t\t\t\t$('.state-a-label--has-error', $ctx)\r\n\t\t\t\t\t.removeClass('state-a-label--has-error')\r\n\t\t\t\t\t.css('max-width', '');\r\n\t\t\t\t$(`.${FormControlLabelStateClass.Floated.toString()}`, $ctx).each((index, element) => {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!$(element)\r\n\t\t\t\t\t\t\t.next()\r\n\t\t\t\t\t\t\t.is('select')\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t$(element).removeClass(FormControlLabelStateClass.Floated.toString());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t$(`.${FormControlSiteCoreStateClass}`, $ctx).removeClass(FormControlSiteCoreStateClass);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// init normal terrific components\r\n\t\t$.each($ctx.find('[data-t-name]'), (i: number, module: Node) => {\r\n\t\t\tstartNode(module);\r\n\t\t});\r\n\t}\r\n\r\n\tinputSelecteOptionChanged(ev: any) {\r\n\t\tconst opt: string = ev.currentTarget.value.toLowerCase();\r\n\r\n\t\tconst $categoryInputContainer: any = this.$ctx.find(`.o-form__grid-col--input-reffered-by`);\r\n\t\tif (opt === optionValues.referredby.toLowerCase()) {\r\n\t\t\t$('input[data-sc-field-name=\"yourReferral\"]').val('');\r\n\t\t\t$categoryInputContainer.show();\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\t$categoryInputContainer\r\n\t\t\t\t\t.find('.js-a-input--referredby')\r\n\t\t\t\t\t.focus()\r\n\t\t\t\t\t.select();\r\n\t\t\t}, 150);\r\n\t\t} else {\r\n\t\t\t$categoryInputContainer.hide();\r\n\t\t\t$('input[data-sc-field-name=\"yourReferral\"]').val('-');\r\n\t\t}\r\n\t}\r\n\r\n\tcategorySelectedOptionChanged(ev: any) {\r\n\t\tconst opt: string = ev.currentTarget.value.toLowerCase();\r\n\r\n\t\tif (opt.toLowerCase() === 'products') {\r\n\t\t\tthis.$ctx.find(`.${classes.productsDetailsSection}`).removeClass('o-form-row-products-category--hide');\r\n\t\t\tthis.productValidation = true;\r\n\t\t\tthis.$ctx.find('.js-form__input-category-type').val('');\r\n\t\t\tthis.$ctx.find('.js-form__input-material-type').val('');\r\n\t\t\tthis.$ctx.find('.js-form__input-industry-type').val('');\r\n\t\t\tthis.$ctx.find('.js-form__input-inquiry-type').val('');\r\n\t\t} else {\r\n\t\t\tthis.$ctx.find(`.${classes.productsDetailsSection}`).addClass('o-form-row-products-category--hide');\r\n\t\t\tthis.productValidation = false;\r\n\t\t\tthis.$ctx.find('.js-form__input-category-type').val('Supplier');\r\n\t\t\tthis.$ctx.find('.js-form__input-material-type').val('M2_Adhesives');\r\n\t\t\tthis.$ctx.find('.js-form__input-industry-type').val('Automotive');\r\n\t\t\tthis.$ctx.find('.js-form__input-inquiry-type').val('Technical');\r\n\t\t}\r\n\t}\r\n\r\n\tinputSelecteValidation(ev: any) {\r\n\t\tconst $target: any = $(ev.currentTarget);\r\n\t\tconst $formControlValidationErrorSelector = 'field-validation-error';\r\n\r\n\t\tif ($target.val() !== '') {\r\n\t\t\tif ($target.nextAll().hasClass($formControlValidationErrorSelector)) {\r\n\t\t\t\t$target.nextAll('.' + $formControlValidationErrorSelector).hide();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar dataValRequired = $target.attr('data-val');\r\n\t\t\tif (typeof dataValRequired !== 'undefined' && dataValRequired !== '' && dataValRequired !== null) {\r\n\t\t\t\t$target.nextAll('.' + $formControlValidationErrorSelector).show();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinitMutationObserver($ctx: any) {\r\n\t\tnew MutationObserver(() => {\r\n\t\t\tthis._initTerrificModules($ctx);\r\n\t\t\tthis.initAjaxListeners();\r\n\t\t}).observe(this._ctx, {\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t});\r\n\t}\r\n\r\n\tinitUserVali() {\r\n\t\tconst $vali = this.$ctx.find('.js-vali');\r\n\t\tif ($vali.length) {\r\n\t\t\t$vali.val(`${this.$ctx.find('form:eq(0)').data('sc-fxb')}-jsvali`);\r\n\t\t}\r\n\t}\r\n\r\n\tsubmitButtonClickForGA() {\r\n\t\t// Script to submit the data to GA\r\n\t\tconst submitButtonSelector = 'js-form__button-gtm-event--submit';\r\n\t\tconst $buttonSubmit = $(`.${submitButtonSelector}`, this.$ctx);\r\n\t\tif ($buttonSubmit.length !== 0) {\r\n\t\t\t$buttonSubmit.on('click', (ev: Event) => {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif ($($($(ev.target).parents('form:first')[0]).find('.field-validation-error')).length === 0) {\r\n\t\t\t\t\t\tconst formId = $($(ev.target).parents('form:first')[0]).attr('id');\r\n\t\t\t\t\t\tconst formName = $(\r\n\t\t\t\t\t\t\t$($(ev.target).parents('form:first')[0]).find(\"input[data-sc-field-name='HiddenFormName']\")\r\n\t\t\t\t\t\t).val();\r\n\r\n\t\t\t\t\t\tconst trackdata: {\r\n\t\t\t\t\t\t\tevent: string;\r\n\t\t\t\t\t\t\tform_id: string;\r\n\t\t\t\t\t\t\tform_name: string;\r\n\t\t\t\t\t\t\tform_destination: string;\r\n\t\t\t\t\t\t\tform_submit_text: string;\r\n\t\t\t\t\t\t} = {\r\n\t\t\t\t\t\t\tevent: 'form_submit',\r\n\t\t\t\t\t\t\tform_id: formId,\r\n\t\t\t\t\t\t\tform_name: formName.toString(),\r\n\t\t\t\t\t\t\tform_destination: '',\r\n\t\t\t\t\t\t\tform_submit_text: '',\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 1000);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsendFromStartDataToGtm() {\r\n\t\tconst formId = this.$ctx.find('form:first').attr('id');\r\n\t\tconst formName = this.$ctx.find(\"input[data-sc-field-name='HiddenFormName']\").val();\r\n\t\tconst scSendDataToGTMOnPageLoad = this.$ctx.find('input[data-sc-field-name=\"SendDataToGTMOnPageLoad\"]').val();\r\n\t\tconst sendDataToGtm = scSendDataToGTMOnPageLoad !== undefined && scSendDataToGTMOnPageLoad === 'Yes';\r\n\t\tif (sendDataToGtm) {\r\n\t\t\tconst trackdata: {\r\n\t\t\t\tevent: string;\r\n\t\t\t\tform_id: string;\r\n\t\t\t\tform_name: string;\r\n\t\t\t\tform_destination: string;\r\n\t\t\t\tform_submit_text: string;\r\n\t\t\t} = {\r\n\t\t\t\tevent: 'form_start',\r\n\t\t\t\tform_id: formId,\r\n\t\t\t\tform_name: formName.toString(),\r\n\t\t\t\tform_destination: '',\r\n\t\t\t\tform_submit_text: '',\r\n\t\t\t};\r\n\r\n\t\t\tTrack.gtmTrack(trackdata);\r\n\t\t}\r\n\t}\r\n\r\n\temailValidationChangeEventForWorkdayForm() {\r\n\t\tconst emailAddressTextboxSelector = 'js-form__input-email-address';\r\n\t\tconst $emailAddressTextbox = $(`.${emailAddressTextboxSelector}`, this.$ctx);\r\n\r\n\t\tif ($emailAddressTextbox.length !== 0) {\r\n\t\t\t$emailAddressTextbox.on('blur touchend', (ev: Event) => {\r\n\t\t\t\tconst emailPattern = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,17}$/;\r\n\t\t\t\tconst emailAddress = $(ev.target)\r\n\t\t\t\t\t.val()\r\n\t\t\t\t\t.toString();\r\n\t\t\t\tif (emailPattern.test(emailAddress)) {\r\n\t\t\t\t\tconst serviceUrl = window.location.origin + '/api/verifyemail?emailAddress=' + emailAddress;\r\n\r\n\t\t\t\t\tif (serviceUrl) {\r\n\t\t\t\t\t\tthis.onScAjaxStart();\r\n\t\t\t\t\t\t$.ajax({\r\n\t\t\t\t\t\t\tmethod: 'get',\r\n\t\t\t\t\t\t\turl: serviceUrl,\r\n\t\t\t\t\t\t\tsuccess: (jsonData: any) => {\r\n\t\t\t\t\t\t\t\tthis.onScAjaxComplete('', 'success');\r\n\t\t\t\t\t\t\t\tvar emailAddressExistsErrorMessage = this.$ctx\r\n\t\t\t\t\t\t\t\t\t.find('input[data-sc-field-name=\"emailAlreadyExistsErrorMessage\"]')\r\n\t\t\t\t\t\t\t\t\t.val();\r\n\t\t\t\t\t\t\t\tfor (const key in jsonData) {\r\n\t\t\t\t\t\t\t\t\tif (jsonData[key] !== null && jsonData['emailExists'] == true) {\r\n\t\t\t\t\t\t\t\t\t\t$(ev.target).addClass('input-validation-error');\r\n\t\t\t\t\t\t\t\t\t\t$(ev.target)\r\n\t\t\t\t\t\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t\t\t\t\t\t.addClass('field-validation-error');\r\n\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\temailAddressExistsErrorMessage !== undefined &&\r\n\t\t\t\t\t\t\t\t\t\t\temailAddressExistsErrorMessage != null\r\n\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t$(ev.target)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.text(emailAddressExistsErrorMessage.toString());\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t$(ev.target)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.nextAll('.field-validation-valid')\r\n\t\t\t\t\t\t\t\t\t\t\t\t.text($(ev.target).attr('data-val-required'));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tthis.onScAjaxComplete('', 'success');\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tcomplete: () => {},\r\n\t\t\t\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t\t`lightbox: get partial-view error, endpoint: ${serviceUrl}, ${xhr.status}, ${\r\n\t\t\t\t\t\t\t\t\t\txhr.statusText\r\n\t\t\t\t\t\t\t\t\t}, ${error}`\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tthis.onScAjaxComplete(xhr, status);\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprefillFormData() {\r\n\t\tlet serviceUrl = this.$ctx.data('api-endpoint');\r\n\t\tif (serviceUrl) {\r\n\t\t\tserviceUrl =\r\n\t\t\t\tserviceUrl.toString().indexOf('?') > -1\r\n\t\t\t\t\t? serviceUrl + '&callForWorkdayApi=false&callForCdpIdApi=false'\r\n\t\t\t\t\t: serviceUrl + '?callForWorkdayApi=false&callForCdpIdApi=false';\r\n\t\t\t$.ajax({\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\turl: serviceUrl,\r\n\t\t\t\tsuccess: (jsonData: any) => {\r\n\t\t\t\t\tfor (const key in jsonData) {\r\n\t\t\t\t\t\tif (jsonData[key] !== null) {\r\n\t\t\t\t\t\t\tconst $input = this.$ctx.find('[data-sc-field-name=\"' + key + '\"]');\r\n\t\t\t\t\t\t\t$input.val(jsonData[key]);\r\n\t\t\t\t\t\t\t$input.trigger('change');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tgetValueFromObject(myMktoHiddenMetaData: any, materialTagValue: any): string {\r\n\t\tlet title: string = '';\r\n\t\tmyMktoHiddenMetaData.forEach((element: any) => {\r\n\t\t\tif (element.tagId === materialTagValue) {\r\n\t\t\t\ttitle = element.tagTitle.toString();\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn title;\r\n\t}\r\n\r\n\tworkdayJobsFormData() {\r\n\t\tlet workdayapiEndpoint = this.$ctx.data('api-endpoint');\r\n\t\tif (!workdayapiEndpoint) return;\r\n\t\tworkdayapiEndpoint =\r\n\t\t\tworkdayapiEndpoint.toString().indexOf('?') > -1\r\n\t\t\t\t? workdayapiEndpoint + '&callForWorkdayApi=true&callForCdpIdApi=false'\r\n\t\t\t\t: workdayapiEndpoint + '?callForWorkdayApi=true&callForCdpIdApi=false';\r\n\r\n\t\t$.ajax({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: workdayapiEndpoint,\r\n\t\t\tsuccess: (jsonData: any) => {\r\n\t\t\t\tif (jsonData && jsonData.WorkdayJobsTasks) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst tasksData = JSON.parse(jsonData.WorkdayJobsTasks);\r\n\r\n\t\t\t\t\t\tif (tasksData && tasksData.Report_Entry && Array.isArray(tasksData.Report_Entry)) {\r\n\t\t\t\t\t\t\tconst jobEntries: any[] = tasksData.Report_Entry;\r\n\r\n\t\t\t\t\t\t\tconst $jobProfileDropdown = this.$ctx.find('[data-sc-field-name=\"yourPreferredJob\"]');\r\n\t\t\t\t\t\t\tconst $jobProfileDropdownAlt = this.$ctx.find('[data-sc-field-name=\"yourAlternativeJob\"]');\r\n\t\t\t\t\t\t\tconst $locationDropdown = this.$ctx.find('[data-sc-field-name=\"yourAlternateLocation\"]');\r\n\r\n\t\t\t\t\t\t\t$jobProfileDropdown.empty(); // Clear existing options\r\n\t\t\t\t\t\t\t$jobProfileDropdownAlt.empty(); // Clear existing options\r\n\t\t\t\t\t\t\t$locationDropdown.empty(); // Clear existing options\r\n\r\n\t\t\t\t\t\t\t$jobProfileDropdown.append(new Option('', ''));\r\n\r\n\t\t\t\t\t\t\t// Populate jobProfiles and jobProfileLocations\r\n\t\t\t\t\t\t\tjobEntries.forEach((entry: any) => {\r\n\t\t\t\t\t\t\t\tconst jobProfile = entry.Job_Profile;\r\n\t\t\t\t\t\t\t\tconst location = entry.Primary_Location;\r\n\t\t\t\t\t\t\t\tconst jobRequisitionId = entry.Job_Requisition_ID;\r\n\r\n\t\t\t\t\t\t\t\tif ($jobProfileDropdown.find(`option[value=\"${jobProfile}\"]`).length === 0) {\r\n\t\t\t\t\t\t\t\t\t$jobProfileDropdown.append(new Option(jobProfile, jobProfile));\r\n\t\t\t\t\t\t\t\t\t$jobProfileDropdownAlt.append(new Option(jobProfile, jobProfile));\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif ($locationDropdown.find(`option[value=\"${location}\"]`).length === 0) {\r\n\t\t\t\t\t\t\t\t\t$locationDropdown.append(new Option(location, location));\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!jobProfileLocations[jobProfile]) {\r\n\t\t\t\t\t\t\t\t\tjobProfileLocations[jobProfile] = new Set();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tjobProfileLocations[jobProfile].add(location);\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Handle change event for job profile dropdown (yourPreferredJob)\r\n\t\t\t\t\t\t\t$jobProfileDropdown.on('change', () => {\r\n\t\t\t\t\t\t\t\tconst selectedProfile = $jobProfileDropdown.val() as string;\r\n\t\t\t\t\t\t\t\tconst locations = jobProfileLocations[selectedProfile] || new Set();\r\n\r\n\t\t\t\t\t\t\t\tconst $preferredLocationDropdown = this.$ctx.find(\r\n\t\t\t\t\t\t\t\t\t'[data-sc-field-name=\"yourPreferredLocation\"]'\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t$preferredLocationDropdown.empty(); // Clear existing options\r\n\r\n\t\t\t\t\t\t\t\t$preferredLocationDropdown.append(new Option('', ''));\r\n\t\t\t\t\t\t\t\tlocations.forEach((location: string) => {\r\n\t\t\t\t\t\t\t\t\t$preferredLocationDropdown.append(new Option(location, location));\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t// Enable all options first/\r\n\t\t\t\t\t\t\t\t$jobProfileDropdownAlt.find('option').prop('disabled', false);\r\n\r\n\t\t\t\t\t\t\t\t// Disable selected profile in yourAlternativeJob dropdown\r\n\t\t\t\t\t\t\t\tif (selectedProfile) {\r\n\t\t\t\t\t\t\t\t\t$jobProfileDropdownAlt\r\n\t\t\t\t\t\t\t\t\t\t.find(`option[value=\"${selectedProfile}\"]`)\r\n\t\t\t\t\t\t\t\t\t\t.prop('disabled', true);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Disable selected location in yourAlternateLocation dropdown based on yourPreferredLocation\r\n\t\t\t\t\t\t\tconst $preferredLocationDropdown = this.$ctx.find(\r\n\t\t\t\t\t\t\t\t'[data-sc-field-name=\"yourPreferredLocation\"]'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t$preferredLocationDropdown.on('change', () => {\r\n\t\t\t\t\t\t\t\tconst selectedLocation = $preferredLocationDropdown.val() as string;\r\n\r\n\t\t\t\t\t\t\t\t// Enable all options first\r\n\t\t\t\t\t\t\t\t$locationDropdown.find('option').prop('disabled', false);\r\n\r\n\t\t\t\t\t\t\t\t// Disable selected location in yourAlternateLocation dropdown\r\n\t\t\t\t\t\t\t\tif (selectedLocation) {\r\n\t\t\t\t\t\t\t\t\t$locationDropdown\r\n\t\t\t\t\t\t\t\t\t\t.find(`option[value=\"${selectedLocation}\"]`)\r\n\t\t\t\t\t\t\t\t\t\t.prop('disabled', true);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconsole.error('No valid Report_Entry found in WorkdayJobsTasks.');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tconsole.error('Error parsing WorkdayJobsTasks:', error);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error('No WorkdayJobsTasks data found in response.');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: any, error: any) => {\r\n\t\t\t\tconsole.error('Error fetching data:', error);\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tgetCustomerIdFromUrl(): string {\r\n\t\tconst urlParams = new URLSearchParams(window.location.search);\r\n\t\treturn urlParams.get('cdpid') || ''; // Return the customerId from the URL, or an empty string if not present\r\n\t}\r\n\r\n\tfetchCdpIdData() {\r\n\t\tconst customerId = this.getCustomerIdFromUrl();\r\n\t\tif (customerId) {\r\n\t\t\tconst cdpApiEndpoint = window.location.origin + '/api/getCdpIdData?customerId=' + customerId;\r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: cdpApiEndpoint,\r\n\t\t\t\tsuccess: (jsonData: any) => {\r\n\t\t\t\t\tif (jsonData && jsonData.cdpPreferenceData) {\r\n\t\t\t\t\t\tconst cdpData = JSON.parse(jsonData.cdpPreferenceData);\r\n\t\t\t\t\t\tif (cdpData && cdpData.attributes) {\r\n\t\t\t\t\t\t\tconst attributes = cdpData.attributes;\r\n\r\n\t\t\t\t\t\t\t// Prefill simple fields like FirstName, LastName, Company, and Email\r\n\t\t\t\t\t\t\tconst $cdpFirstName = this.$ctx.find('[data-sc-field-name=\"FirstName\"]');\r\n\t\t\t\t\t\t\tconst $cdpLastName = this.$ctx.find('[data-sc-field-name=\"LastName\"]');\r\n\t\t\t\t\t\t\tconst $cdpCompany = this.$ctx.find('[data-sc-field-name=\"Company\"]');\r\n\t\t\t\t\t\t\tconst $cdpCountry = this.$ctx.find('[data-sc-field-name=\"Country\"]');\r\n\t\t\t\t\t\t\tconst $unsubscribeText = this.$ctx.find('.a-heading--style6.a-unsubscribe-email');\r\n\r\n\t\t\t\t\t\t\tif ($cdpFirstName.length > 0 && attributes.firstName) {\r\n\t\t\t\t\t\t\t\t$cdpFirstName.val(attributes.firstName).trigger('change');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ($cdpLastName.length > 0 && attributes.lastName) {\r\n\t\t\t\t\t\t\t\t$cdpLastName.val(attributes.lastName).trigger('change');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ($cdpCompany.length > 0 && attributes.company && attributes.company.name) {\r\n\t\t\t\t\t\t\t\t$cdpCompany.val(attributes.company.name).trigger('change');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t$cdpCountry.length > 0 &&\r\n\t\t\t\t\t\t\t\tattributes.cov_primary_address &&\r\n\t\t\t\t\t\t\t\tattributes.cov_primary_address.cov_country\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t$cdpCountry.val(attributes.cov_primary_address.cov_country).trigger('change');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Fill the hidden field (Email in this case) from API response\r\n\t\t\t\t\t\t\tconst $hiddenEmailField = this.$ctx.find('[data-sc-field-name=\"Email\"]'); // Target hidden field with the data-sc-field-name=\"Email\"\r\n\t\t\t\t\t\t\tif ($hiddenEmailField.length > 0 && attributes.primaryEmail) {\r\n\t\t\t\t\t\t\t\t// Set the value of the hidden email field\r\n\t\t\t\t\t\t\t\t$hiddenEmailField.val(attributes.primaryEmail).trigger('change');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Check if the unsubscribe email text element exists and update it with the email\r\n\t\t\t\t\t\t\tif ($unsubscribeText.length > 0 && attributes.primaryEmail) {\r\n\t\t\t\t\t\t\t\tconst email = attributes.primaryEmail;\r\n\t\t\t\t\t\t\t\t$unsubscribeText.html(function(_, html) {\r\n\t\t\t\t\t\t\t\t\treturn html.replace('{email}', email); // Replace the {email} placeholder\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Prefill checkboxes based on \"cov_interests_ind\", \"cov_interests_mat\", \"cov_interests_st\" from API response\r\n\r\n\t\t\t\t\t\t\t// For \"cov_interests_ind\" (Industry Interest Types)\r\n\t\t\t\t\t\t\tif (cdpData.attributes.cov_interests_ind) {\r\n\t\t\t\t\t\t\t\tconst industryData = cdpData.attributes.cov_interests_ind;\r\n\t\t\t\t\t\t\t\tconst $industryCheckboxes = this.$ctx.find(\r\n\t\t\t\t\t\t\t\t\t'[data-sc-field-name=\"IndustryInterestTypes\"]'\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t$industryCheckboxes.each((index, checkbox) => {\r\n\t\t\t\t\t\t\t\t\tconst checkboxValue = $(checkbox).val(); // Get the value of the checkbox\r\n\r\n\t\t\t\t\t\t\t\t\t// Ensure checkboxValue is a string\r\n\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\ttypeof checkboxValue === 'string' &&\r\n\t\t\t\t\t\t\t\t\t\tindustryData.hasOwnProperty(checkboxValue)\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t// Check if the value in industryData is true and mark the checkbox as checked\r\n\t\t\t\t\t\t\t\t\t\tif (industryData[checkboxValue] === true) {\r\n\t\t\t\t\t\t\t\t\t\t\t$(checkbox).prop('checked', true);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t$(checkbox).prop('checked', false);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// For \"cov_interests_mat\" (Material Interest Types)\r\n\t\t\t\t\t\t\tif (cdpData.attributes.cov_interests_mat) {\r\n\t\t\t\t\t\t\t\tconst materialData = cdpData.attributes.cov_interests_mat;\r\n\t\t\t\t\t\t\t\tconst $materialCheckboxes = this.$ctx.find(\r\n\t\t\t\t\t\t\t\t\t'[data-sc-field-name=\"MaterialInterestTypes\"]'\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t$materialCheckboxes.each((index, checkbox) => {\r\n\t\t\t\t\t\t\t\t\tconst checkboxValue = $(checkbox).val();\r\n\t\t\t\t\t\t\t\t\t// Ensure checkboxValue is a string\r\n\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\ttypeof checkboxValue === 'string' &&\r\n\t\t\t\t\t\t\t\t\t\tmaterialData.hasOwnProperty(checkboxValue)\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t// Check if the value in materialData is true and mark the checkbox as checked\r\n\t\t\t\t\t\t\t\t\t\tif (materialData[checkboxValue] === true) {\r\n\t\t\t\t\t\t\t\t\t\t\t$(checkbox).prop('checked', true);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t$(checkbox).prop('checked', false);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// For \"cov_interests_st\" (Strategic Interest Types)\r\n\t\t\t\t\t\t\tif (cdpData.attributes.cov_interests_st) {\r\n\t\t\t\t\t\t\t\tconst strategicData = cdpData.attributes.cov_interests_st;\r\n\t\t\t\t\t\t\t\tconst $strategicCheckboxes = this.$ctx.find(\r\n\t\t\t\t\t\t\t\t\t'[data-sc-field-name=\"StrategicInterestTypes\"]'\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t$strategicCheckboxes.each((index, checkbox) => {\r\n\t\t\t\t\t\t\t\t\tconst checkboxValue = $(checkbox).val();\r\n\t\t\t\t\t\t\t\t\t// Ensure checkboxValue is a string\r\n\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\ttypeof checkboxValue === 'string' &&\r\n\t\t\t\t\t\t\t\t\t\tstrategicData.hasOwnProperty(checkboxValue)\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t// Check if the value in strategicData is true and mark the checkbox as checked\r\n\t\t\t\t\t\t\t\t\t\tif (strategicData[checkboxValue] === true) {\r\n\t\t\t\t\t\t\t\t\t\t\t$(checkbox).prop('checked', true);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t$(checkbox).prop('checked', false);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Listen for user changes to checkboxes\r\n\t\t\t\t\t\t\t// Define the type of selectedValues explicitly\r\n\t\t\t\t\t\t\tconst selectedValues: { [key: string]: string[] } = {}; // Object with string keys and array of string values\r\n\t\t\t\t\t\t\tthis.$ctx.find('input[type=\"checkbox\"]').on('change', function() {\r\n\t\t\t\t\t\t\t\tconst checkboxValue = $(this).val();\r\n\t\t\t\t\t\t\t\tconst isChecked = $(this).prop('checked');\r\n\r\n\t\t\t\t\t\t\t\t// Collect selected values and store them for submission\r\n\t\t\t\t\t\t\t\tif (typeof checkboxValue === 'string') {\r\n\t\t\t\t\t\t\t\t\tconst fieldName = $(this).data('sc-field-name'); // Get the field name\r\n\t\t\t\t\t\t\t\t\tif (!selectedValues[fieldName]) {\r\n\t\t\t\t\t\t\t\t\t\tselectedValues[fieldName] = [];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (isChecked) {\r\n\t\t\t\t\t\t\t\t\t\tselectedValues[fieldName].push(checkboxValue);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t// If unchecked, remove the value\r\n\t\t\t\t\t\t\t\t\t\tselectedValues[fieldName] = selectedValues[fieldName].filter(\r\n\t\t\t\t\t\t\t\t\t\t\t(value) => value !== checkboxValue\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tconsole.log(selectedValues); // Log the selected values for testing\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.error('No cdpPreferenceData found in response.');\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinitAjaxListeners() {\r\n\t\tconst $form = this.$ctx.find('form[data-ajax]');\r\n\t\tif ($form.length > 0) {\r\n\t\t\tconst formHash = this.hash($form.attr('id'));\r\n\t\t\t(window as any)[`scFromAjaxBegin_${formHash}`] = this.onScAjaxStart.bind(this);\r\n\t\t\t(window as any)[`scFromAjaxComplete_${formHash}`] = this.onScAjaxComplete.bind(this);\r\n\t\t\t$form.attr('data-ajax-begin', `scFromAjaxBegin_${formHash}`);\r\n\t\t\t$form.attr('data-ajax-complete', `scFromAjaxComplete_${formHash}`);\r\n\t\t}\r\n\t}\r\n\r\n\thash(id: string) {\r\n\t\t/* tslint:disable */\r\n\t\t// very basic hashing function\r\n\t\tfor (var i = 0, h = 6; i < id.length; ) h = Math.imul(h ^ id.charCodeAt(i++), 9 ** 9);\r\n\t\treturn h ^ (h >>> 9);\r\n\t\t/* tslint:enable */\r\n\t}\r\n\r\n\tonScAjaxStart() {\r\n\t\tthis.$ctx.append(`\r\n\t
    \r\n\t\t
    \r\n\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t
    `);\r\n\t}\r\n\r\n\tonScAjaxComplete(xhr: any, status: string) {\r\n\t\tif (status !== 'success') {\r\n\t\t\tconsole.info('error', xhr);\r\n\t\t\t// @todo: Add error handling here\r\n\t\t}\r\n\t\tif (!this.productValidation) {\r\n\t\t\tthis.$ctx.find(`.${classes.productsDetailsSection}`).addClass('o-form-row-products-category--hide');\r\n\t\t}\r\n\t\tvar applicationFormHiddenField = this.$ctx\r\n\t\t\t.find('input[data-sc-field-name=\"applicationFormSubmitClicked\"]')\r\n\t\t\t.val();\r\n\t\tif (applicationFormHiddenField !== undefined && applicationFormHiddenField == 'true') {\r\n\t\t\tthis.$ctx.find('input[data-sc-field-name=\"applicationFormSubmitClicked\"]').val('');\r\n\t\t\tconst scFormName = this.$ctx.find(\"input[data-sc-field-name='TypeOfForm']\").val();\r\n\t\t\tif (\r\n\t\t\t\tscFormName !== undefined &&\r\n\t\t\t\tscFormName.toString().toLowerCase() === optionValues.typeofform.toLowerCase()\r\n\t\t\t) {\r\n\t\t\t\tthis.$ctx.find(`.o-form__grid-col--input-reffered-by`).hide();\r\n\t\t\t\tthis.$ctx.find('input[data-sc-field-name=\"yourReferral\"]').val('-');\r\n\t\t\t\tthis.workdayJobsFormData();\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.$ctx.find('.js-o-form__spinner').remove();\r\n\t\tif (stepTwoFormLoaded == true) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tconst legalFormSectionRegStromOption = $('.js-form__section-registration-strom');\r\n\t\t\t\tconst legalFormSectionRegGasOption = $('.js-form__section-registration-gas');\r\n\t\t\t\tconst spanFileUploadValidationMessage = $('.js-form__file-upload-validation-message');\r\n\t\t\t\tconst hiddenSectionsFileUpload = $('.js-form__section-registration-file-upload');\r\n\t\t\t\tconst hiddenSectionsDate = $('.js-form__section-registration-date');\r\n\t\t\t\tconst hiddenSectionsMeterNo = $('.js-form__section-registration-meter-number');\r\n\t\t\t\tspanFileUploadValidationMessage.hide();\r\n\t\t\t\tlegalFormSectionRegGasOption.hide();\r\n\t\t\t\tlegalFormSectionRegStromOption.hide();\r\n\t\t\t\thiddenSectionsMeterNo.hide();\r\n\t\t\t\thiddenSectionsFileUpload.hide();\r\n\t\t\t\tconst radioButtons: any = document.querySelectorAll('.o-form__legal-radio input[type=\"radio\"]');\r\n\t\t\t\tconst radioButtonsStepTwo: any = document.querySelectorAll(\r\n\t\t\t\t\t'.o-form__legal-steptwo-radio input[type=\"radio\"]'\r\n\t\t\t\t);\r\n\t\t\t\tconst selectBoxStepTwo: any = $('.o-form__legal-steptwo-select');\r\n\t\t\t\tif (\r\n\t\t\t\t\tselectBoxStepTwo.val() !== 'Veränderung Netzanschluss' &&\r\n\t\t\t\t\tselectBoxStepTwo.val() !== 'Abmeldung Netzanschluss'\r\n\t\t\t\t) {\r\n\t\t\t\t\thiddenSectionsFileUpload.show();\r\n\t\t\t\t\thiddenSectionsDate.show();\r\n\t\t\t\t\tvar inputValue = $('input[type=\"radio\"]:checked').val();\r\n\t\t\t\t\tif (inputValue == 'Gas') {\r\n\t\t\t\t\t\tlegalFormSectionRegGasOption.show();\r\n\t\t\t\t\t} else if (inputValue == 'Strom') {\r\n\t\t\t\t\t\tlegalFormSectionRegStromOption.show();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlegalFormSectionRegGasOption.hide();\r\n\t\t\t\t\t\tlegalFormSectionRegStromOption.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (selectBoxStepTwo.val() === 'Veränderung Netzanschluss') {\r\n\t\t\t\t\tthis.hideStepTwoDateSection();\r\n\t\t\t\t\tthis.hideStepTwoGasSection();\r\n\t\t\t\t\tthis.hideStepTwoStromSection();\r\n\t\t\t\t\tthis.hideStepTwoFileUploadSection();\r\n\t\t\t\t\tthis.hideStepTwoMeterNoSection();\r\n\t\t\t\t\tspanFileUploadValidationMessage.hide();\r\n\t\t\t\t\thiddenSectionsFileUpload.hide();\r\n\t\t\t\t\thiddenSectionsDate.hide();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$('.js-form__section-registration-date').show();\r\n\t\t\t\t\t$('.js-form__section-registration-meter-number').show();\r\n\t\t\t\t\tthis.hideStepTwoGasSection();\r\n\t\t\t\t\tthis.hideStepTwoStromSection();\r\n\t\t\t\t\tthis.hideStepTwoFileUploadSection();\r\n\t\t\t\t\tspanFileUploadValidationMessage.hide();\r\n\t\t\t\t\tthis.clearStepTwoDateSection();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst radioButtonsStepThree: any = document.querySelectorAll(\r\n\t\t\t\t\t'.o-form__legal-stepthree-radio input[type=\"radio\"]'\r\n\t\t\t\t);\r\n\r\n\t\t\t\tradioButtons.forEach((radio: any) => {\r\n\t\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonClick(ev));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tradioButtonsStepTwo.forEach((radio: any) => {\r\n\t\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepTwoClick(ev));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tradioButtonsStepThree.forEach((radio: any) => {\r\n\t\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepThreeClick(ev));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tArray.from(selectBoxStepTwo).forEach((selectBox: any) => {\r\n\t\t\t\t\t$(selectBox).on('change', (ev: Event) => this.bindSelectBoxStepTwoChange(ev));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tradioButtonsStepTwo.forEach((radio: any) => {\r\n\t\t\t\t\tif (radio.checked) {\r\n\t\t\t\t\t\tif (radio.value == 'Gas' && selectBoxStepTwo.val() === 'Veränderung Netzanschluss') {\r\n\t\t\t\t\t\t\tlegalFormSectionRegGasOption.hide();\r\n\t\t\t\t\t\t} else if (radio.value == 'Strom' && selectBoxStepTwo.val() === 'Veränderung Netzanschluss') {\r\n\t\t\t\t\t\t\tlegalFormSectionRegStromOption.hide();\r\n\t\t\t\t\t\t} else if (radio.value == 'Gas' && selectBoxStepTwo.val() === 'Abmeldung Netzanschluss') {\r\n\t\t\t\t\t\t\tlegalFormSectionRegGasOption.hide();\r\n\t\t\t\t\t\t} else if (radio.value == 'Strom' && selectBoxStepTwo.val() === 'Abmeldung Netzanschluss') {\r\n\t\t\t\t\t\t\tlegalFormSectionRegStromOption.hide();\r\n\t\t\t\t\t\t} else if (radio.value == 'Gas' && selectBoxStepTwo.val() === 'Anmeldung Netzanschluss') {\r\n\t\t\t\t\t\t\tlegalFormSectionRegGasOption.show();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlegalFormSectionRegStromOption.show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst buttonPrevious: any = document.querySelectorAll('.js-form__button--previous');\r\n\t\t\t\tbuttonPrevious.forEach((button: any) => {\r\n\t\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepTwoPreviousButtonClick(ev));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst buttonNextSecond: any = document.querySelectorAll('.js-form__button-step-two--submit');\r\n\t\t\t\tbuttonNextSecond.forEach((button: any) => {\r\n\t\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepTwoButtonClick(ev));\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t\tif (stepThreeFormLoaded == true) {\r\n\t\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option');\r\n\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\tconst radioButtonsStepThree: any = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepthree-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tradioButtonsStepThree.forEach((radio: any) => {\r\n\t\t\t\tif (radio.checked) {\r\n\t\t\t\t\tif (radio.value !== 'Ja') {\r\n\t\t\t\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlegalFormSectionYesOption.show();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tradioButtonsStepThree.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => this.bindRadioButtonStepThreeClick(ev));\r\n\t\t\t});\r\n\t\t\tconst buttonPrevious: any = document.querySelectorAll('.js-form__button--previous');\r\n\t\t\tbuttonPrevious.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepThreePreviousButtonClick(ev));\r\n\t\t\t});\r\n\t\t\tconst buttonNextThree: any = document.querySelectorAll('.js-form__button-step-three--submit');\r\n\t\t\tbuttonNextThree.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepThreeOneButtonClick(ev));\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (stepFourOneFormLoaded == true) {\r\n\t\t\tconst legalFormSectionYesOption = $('.js-form__section-for-yes-option-next');\r\n\t\t\tconst legalFormSectionNextYesOptionYes = $('.js-form__section-for-next-yes-option-yes');\r\n\t\t\tconst legalFormSectionNo = $('.js-form__section-for-no-option');\r\n\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\t\tlegalFormSectionNo.hide();\r\n\t\t\tconst radioButtonsStepFourOne = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepfour-one-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst radioButtonsStepFourOneArray = Array.from(radioButtonsStepFourOne);\r\n\t\t\tradioButtonsStepFourOneArray.forEach((radio: any) => {\r\n\t\t\t\tif (radio.checked) {\r\n\t\t\t\t\tif (radio.value !== 'Ja') {\r\n\t\t\t\t\t\tlegalFormSectionYesOption.hide();\r\n\t\t\t\t\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\t\t\t\t\tlegalFormSectionNo.hide();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlegalFormSectionYesOption.show();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tconst radioButtonsStepFourArray = Array.from(radioButtonsStepFourOne);\r\n\t\t\tradioButtonsStepFourArray.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => {\r\n\t\t\t\t\tthis.bindRadioButtonStepFourOneClick(ev);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tconst buttonPrevious: any = document.querySelectorAll('.js-form__button--previous');\r\n\t\t\tbuttonPrevious.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepFourPreviousButtonClick(ev));\r\n\t\t\t});\r\n\r\n\t\t\tconst buttonNextThree: any = document.querySelectorAll('.js-form__button-step-three--submit');\r\n\t\t\tbuttonNextThree.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepThreeTwoButtonClick(ev));\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (stepFourTwoFormLoaded == true) {\r\n\t\t\tconst legalFormSectionNextYesOptionYes = $('.js-form__section-for-next-yes-option-yes');\r\n\t\t\tconst legalFormSectionNo = $('.js-form__section-for-no-option');\r\n\t\t\tlegalFormSectionNextYesOptionYes.hide();\r\n\t\t\tlegalFormSectionNo.hide();\r\n\t\t\tconst radioButtonsStepFourTwo = document.querySelectorAll(\r\n\t\t\t\t'.o-form__legal-stepfour-two-radio input[type=\"radio\"]'\r\n\t\t\t);\r\n\t\t\tconst radioButtonsStepFourTwoArray = Array.from(radioButtonsStepFourTwo);\r\n\t\t\tradioButtonsStepFourTwoArray.forEach((radio: any) => {\r\n\t\t\t\tif (radio.checked) {\r\n\t\t\t\t\tif (radio.value !== 'Ja') {\r\n\t\t\t\t\t\tlegalFormSectionNo.show();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlegalFormSectionNextYesOptionYes.show();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tconst radioButtonsStepFourArray = Array.from(radioButtonsStepFourTwo);\r\n\t\t\tradioButtonsStepFourArray.forEach((radio: any) => {\r\n\t\t\t\tradio.addEventListener('click', (ev: Event) => {\r\n\t\t\t\t\tthis.bindRadioButtonStepFourTwoClick(ev);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tconst buttonPrevious: any = document.querySelectorAll('.js-form__button--previous');\r\n\t\t\tbuttonPrevious.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepFourPreviousButtonClick(ev));\r\n\t\t\t});\r\n\t\t\tconst buttonNextFour: any = document.querySelectorAll('.js-form__button-step-four-submit');\r\n\t\t\tbuttonNextFour.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepFourButtonClick(ev));\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (stepFiveFormLoaded == true) {\r\n\t\t\tconst buttonPrevious: any = document.querySelectorAll('.js-form__button--previous');\r\n\t\t\tbuttonPrevious.forEach((button: any) => {\r\n\t\t\t\tbutton.addEventListener('click', (ev: Event) => this.bindStepFivePreviousButtonClick(ev));\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nimport getCurrentBreakpoint from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst classes: any = {\r\n\twrapper: 'body',\r\n\tstateSticky: 'state-m-navigation--is-sticky',\r\n\tstateOnTop: 'state-m-navigation--scroll-0-position',\r\n\tstateScrollUp: 'state-m-navigation--scroll-forward',\r\n\tstateScrollTopNoTransition: 'state-m-navigation--scroll-0-position-no-transition',\r\n\tburgerActiveClass: 'state-m-burgernav--visible',\r\n\tinitSticky: 'state-m-navigation--initialized',\r\n\theaderWrapper: 'js-o-header-wrapper',\r\n\theaderStickyBar: 'js-o-header__sticky-bar',\r\n\theaderStickyBarHideNav: 'o-header__sticky-bar--hide-navigation',\r\n\tpageShare: 'm-page-share',\r\n\tctaButton: \"js-sticky-cta\",\r\n\tlogoLink: \"m-logo\",\r\n};\r\n\r\nlet preventStickyHeaderAppearing = false;\r\nlet preventStickyHeaderScrollBehaviour = false;\r\nlet noHasAnchor = false;\r\nlet noHasPageShare = false;\r\n\r\n@createModule('Header')\r\n/**\r\n* Header module implementation.\r\n*\r\n* @author Heiko Frosch \r\n*/\r\nexport class Header extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tstart(resolve: Function) {\r\n\t\tconst $ctx = $(this._ctx);\r\n\t\tthis._initStickyHeader($ctx);\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.track();\r\n\t\t$(window).on('enablePreventStickyHeaderAppearing', () => {\r\n\t\t\tpreventStickyHeaderAppearing = true;\r\n\t\t});\r\n\r\n\t\t$(window).on('enablePreventStickyScrollBehaviour', () => {\r\n\t\t\tpreventStickyHeaderScrollBehaviour = true;\r\n\t\t});\r\n\r\n\t\t$(window).on('disablePreventStickyScrollBehaviour', () => {\r\n\t\t\tpreventStickyHeaderScrollBehaviour = false;\r\n\t\t});\r\n\t\t$(window).on('setHeaderMargin', (event: any, margin: number) => {\r\n\t\t\tconst windowHeight = $(window).height();\r\n\t\t\tmargin = Math.min(margin, windowHeight);\r\n\r\n\t\t\tif (margin >= windowHeight) {\r\n\t\t\t\t$(classes.wrapper).css('max-width', $(classes.wrapper).innerWidth());\r\n\t\t\t\t$(classes.wrapper).css('overflow', 'hidden');\r\n\t\t\t} else {\r\n\t\t\t\t$(classes.wrapper).css('overflow', '');\r\n\t\t\t\t$(classes.wrapper).css('max-width', '');\r\n\t\t\t}\r\n\r\n\t\t\tconst headerMargin = $(classes.wrapper).hasClass(classes.stateOnTop)\r\n\t\t\t\t? 0\r\n\t\t\t\t: margin;\r\n\t\t\t$(classes.wrapper).css('margin-top', margin + 'px');\r\n\t\t\t$(`.${classes.headerWrapper}`, $ctx).css('top', headerMargin + 'px');\r\n\t\t});\r\n\r\n\t\t$(window).on('disablePreventStickyHeaderAppearing', () => {\r\n\t\t\tpreventStickyHeaderAppearing = false;\r\n\t\t});\r\n\r\n\t\t$(\"html\").addClass(this.$ctx.data(\"t-classname\"));\r\n\r\n\t\tthis.$ctx.find(\".js-backhistory\").on(\"click\", this.gobackHistory);\r\n\r\n\t\tthis._initNavInPage();\r\n\r\n\t\tif (window.location.search.substr(1).indexOf('event') > -1) {\r\n\t\t\t$(`.${classes.logoLink}`).attr(\r\n\t\t\t\t'href',\r\n\t\t\t\t$('header[data-t-name=\"header\"]').attr('data-t-newlisturl')\r\n\t\t\t);\r\n\t\t}\r\n\t\tthis.hideEmptyMenu();\r\n\t\t$(window).on('resize', () => { this.hideEmptyMenu(); });\r\n\t\tresolve();\r\n\t}\r\n\tstop() { }\r\n\r\n\t/**\r\n\t * method tracks event\r\n\t *\r\n\t * @param {string} action tracking action name\r\n\t * @param {string} value tracking value\r\n\t * @returns {void}\r\n\t */\r\n\ttrack() {\r\n\t\tvar queryString = location.search.substr(1);\r\n\t\tlet pageCampaignId = $(\"header\").data(\"page-mktocampaign-id\");\r\n\t\tlet utmId = queryString !== undefined\r\n\t\t\t\t\t\t\t? queryString.indexOf(\"utm_id=\") !== -1 ? queryString.split(\"utm_id=\")[1].split(\"&\")[0] : undefined : undefined;\r\n\r\n\t\tif (utmId === undefined) {\r\n\t\t\tif (pageCampaignId === undefined) {\r\n\t\t\t\tutmId = \"\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tutmId = pageCampaignId;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst trackdata: {\r\n\t\t\tosc_id: string;\r\n\t\t} = {\r\n\t\t\tosc_id: utmId,\r\n\t\t};\r\n\r\n\t\tTrack.gtmTrack(trackdata);\r\n\t}\r\n\r\n\thideEmptyMenu() {\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\t/* if (viewport === 'small' || viewport === 'medium') {} */\r\n\t\tif (viewport === \"small\") {\r\n\t\t\t$(\".m-navigation-main__list-level1\").each(function (e) {\r\n\t\t\t\tif ($(this).children().length > 0) {\r\n\t\t\t\t\t$(this).closest(\".js-m-navigation-wrapper\").show();\r\n\t\t\t\t\t$(\".js-search-trigger\").show();\r\n\t\t\t\t\t$(\".a-search-trigger\").show();\r\n\t\t\t\t\t$(\".a-burger\").show();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(this).closest(\".js-m-navigation-wrapper\").hide();\r\n\t\t\t\t\t$(\".js-search-trigger\").hide();\r\n\t\t\t\t\t$(\".a-burger\").hide();\r\n\t\t\t\t\t$(\".a-search-trigger\").hide();\r\n\t\t\t\t\t$('a.js-backhistory[href=\"#\"]').hide();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tgobackHistory() {\r\n\t\tif (document.referrer == \"\") {\r\n\t\t\twindow.location.href = $('header[data-t-name=\"header\"]').attr(\"data-t-newlisturl\");\r\n\t\t}\r\n\t\telse {\r\n\t\t\thistory.go(-1);\r\n\t\t}\r\n\t}\r\n\r\n\t_duplicateMetanavigation() {\r\n\t\tconst source = $('.js-metanavigation-container--source');\r\n\t\tconst destination = $('.js-metanavigation-container--destination');\r\n\r\n\t\t$(source)\r\n\t\t\t.clone()\r\n\t\t\t.appendTo(destination);\r\n\t}\r\n\t_initStickyHeader($ctx: JQuery) {\r\n\t\tlet lastScrollTop: number = 0;\r\n\t\tlet currentScrollTop = 0;\r\n\r\n\t\t$(classes.wrapper).addClass(classes.initSticky);\r\n\t\t$(classes.wrapper).addClass(classes.stateScrollTopNoTransition);\r\n\r\n\t\tif ($(window).scrollTop() < $ctx.outerHeight()) {\r\n\t\t\t$(classes.wrapper).addClass(classes.stateOnTop);\r\n\t\t} else {\r\n\t\t\t$(classes.wrapper).addClass(classes.stateScrollUp);\r\n\t\t\t$(classes.wrapper).removeClass(classes.stateOnTop);\r\n\t\t}\r\n\r\n\t\t$(window).scroll(function () {\r\n\t\t\tif (preventStickyHeaderScrollBehaviour) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tcurrentScrollTop = $(window).scrollTop();\r\n\t\t\tconst navBarHeight = $ctx.height();\r\n\t\t\tconst delta =\r\n\t\t\t\tcurrentScrollTop < navBarHeight || preventStickyHeaderAppearing\r\n\t\t\t\t\t? 0\r\n\t\t\t\t\t: 10;\r\n\t\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\r\n\t\t\tif (!$(classes.wrapper).hasClass(classes.burgerActiveClass)) {\r\n\t\t\t\tif (lastScrollTop < currentScrollTop) {\r\n\t\t\t\t\tif (currentScrollTop >= navBarHeight) {\r\n\t\t\t\t\t\t$(classes.wrapper).addClass(classes.stateScrollUp);\r\n\t\t\t\t\t\tif (viewport === 'large' || viewport === 'extra-large') {\r\n\t\t\t\t\t\t\t$(window).trigger('closeNavigation');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (lastScrollTop - currentScrollTop > delta) {\r\n\t\t\t\t\t\tif (preventStickyHeaderAppearing) {\r\n\t\t\t\t\t\t\t// if \"Prevent Sticky Header Mode\" is active, always hide header, also on scrolling to top\r\n\t\t\t\t\t\t\t$(classes.wrapper).addClass(classes.stateScrollUp);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(classes.wrapper).removeClass(classes.stateScrollUp);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (lastScrollTop >= navBarHeight && currentScrollTop >= navBarHeight) {\r\n\t\t\t\t\t\t$(classes.wrapper).removeClass(classes.stateScrollTopNoTransition);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (currentScrollTop === 0) {\r\n\t\t\t\t\t$(classes.wrapper).addClass(classes.stateOnTop);\r\n\t\t\t\t\t$(classes.wrapper).addClass(classes.stateScrollTopNoTransition);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlastScrollTop = currentScrollTop;\r\n\r\n\t\t\t\tif (currentScrollTop < navBarHeight) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(classes.wrapper).removeClass(classes.stateOnTop);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t_calcTransitionTime(transitionString: string) {\r\n\t\tconst numberPart = transitionString.match(/[\\d\\.]+/)[0];\r\n\t\tconst number = parseFloat(numberPart);\r\n\t\treturn !isNaN(number) ? number * 500 : 200;\r\n\t}\r\n\t_initNavInPage() {\r\n\t\tconst bodyHtml = document.getElementsByTagName('body')[0].innerHTML;\r\n\t\tconst anchorNameId = 'data-anchor-id';\r\n\t\tif (\r\n\t\t\tbodyHtml.indexOf(anchorNameId) == -1 ||\r\n\t\t\t$(`.${classes.headerStickyBarHideNav}`).length > 0\r\n\t\t) {\r\n\t\t\tnoHasAnchor = true;\r\n\t\t}\r\n\t\tif (\r\n\t\t\t$(`.${classes.pageShare}`).length == 0 &&\r\n\t\t\t$(`.${classes.ctaButton}`).length == 0\r\n\t\t) {\r\n\t\t\tnoHasPageShare = true;\r\n\t\t}\r\n\t\tif (noHasAnchor && noHasPageShare) {\r\n\t\t\t$(`.${classes.headerStickyBar}`).hide();\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule, getModuleByDomNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { addScrollClickTrigger, init as initHashScrolling } from '@project/shared/utils/hashscrolling/js/hashscrolling';\r\n\r\nconst classes: any = {\r\n\theaderTop: 'js-o-header-campaign__top',\r\n\twrapper: 'js-o-header-campaign__wrapper',\r\n\tctaArea: 'js-o-header-campaign__cta-area',\r\n\tbutton: 'js-o-header-campaign__button',\r\n\tstateFixed: 'state-o-header-campaign--fixed',\r\n\tstateNearTop: 'state-o-header-campaign--near-top',\r\n\tstateLogoTouchedHeadline: 'state-o-header-campaign--logo-touched-headline',\r\n};\r\n\r\n@createModule('HeaderCampaign')\r\n/**\r\n * Header module implementation.\r\n *\r\n * @author Christoph Merkelbach \r\n */\r\nexport class HeaderCampaign extends TerrificSpec {\r\n\tticking: boolean = false;\r\n\t$ctx: JQuery;\r\n\t$headerTop: JQuery;\r\n\t$wrapper: JQuery;\r\n\t$ctaArea: JQuery;\r\n\tpageStartToLogoEndHeight: number;\r\n\tlineHeightLargeHeadline: number;\r\n\tlogoHeightPlusMarginTop: number;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$headerTop = this.$ctx.find(`.${classes.headerTop}`);\r\n\t\tthis.$wrapper = this.$ctx.find(`.${classes.wrapper}`);\r\n\t\tthis.$ctaArea = this.$ctx.find(`.${classes.ctaArea}`);\r\n\t\tthis.pageStartToLogoEndHeight = 118;\r\n\t\tthis.lineHeightLargeHeadline = 48;\r\n\t\tthis.logoHeightPlusMarginTop = 77;\r\n\r\n\t\twindow.addEventListener('scroll', this.requestScrollTick.bind(this), false);\r\n\t\twindow.addEventListener('resize', this.onResize.bind(this), false);\r\n\r\n\t\tthis.handleCtaButtonClick();\r\n\t\tthis.requestScrollTick();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tscrollUpdate() {\r\n\t\tconst scrollTop = $(window).scrollTop();\r\n\t\tthis.$ctx.toggleClass(classes.stateFixed, scrollTop > this.$ctaArea.offset().top);\r\n\t\tthis.$ctx.toggleClass(classes.stateNearTop, scrollTop > this.$ctaArea.offset().top - 20);\r\n\r\n\t\tconst logoTouchesHeadlinePosition = this.$wrapper.offset().top - this.pageStartToLogoEndHeight;\r\n\r\n\t\tthis.$ctx.toggleClass(\r\n\t\t\tclasses.stateLogoTouchedHeadline,\r\n\t\t\tscrollTop > this.$ctaArea.offset().top - this.logoHeightPlusMarginTop\r\n\t\t);\r\n\r\n\t\tif (scrollTop < logoTouchesHeadlinePosition) {\r\n\t\t\tthis.$headerTop.addClass('state-o-header-campaign__top--expand');\r\n\t\t\tthis.$headerTop.removeClass('state-o-header-campaign__top--collapse');\r\n\t\t} else {\r\n\t\t\tthis.$headerTop.addClass('state-o-header-campaign__top--collapse');\r\n\t\t\tthis.$headerTop.removeClass('state-o-header-campaign__top--expand');\r\n\t\t}\r\n\t\tthis.ticking = false;\r\n\t}\r\n\r\n\tonResize() {\r\n\t\tthis.requestScrollTick();\r\n\t}\r\n\r\n\t/**\r\n\t * Debounces animation with browser's requestAnimation Frame to provide performance and\r\n\t * keep page smoothly scrollable even on older machines\r\n\t */\r\n\trequestScrollTick() {\r\n\t\tif (!this.ticking) {\r\n\t\t\trequestAnimationFrame(this.scrollUpdate.bind(this));\r\n\t\t\tthis.ticking = true;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate handleCtaButtonClick(): void {\r\n\t\tconst button = this.$ctx.find(`.${classes.button}`);\r\n\t\tconst url = button.attr('href');\r\n\t\tconst idx = url.indexOf('#');\r\n\r\n\t\tif (idx === 0) {\r\n\t\t\tthis.applyScrollToHandler(button);\r\n\t\t} else {\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate applyScrollToHandler(button: JQuery): void {\r\n\t\tinitHashScrolling();\r\n\t\taddScrollClickTrigger(button);\r\n\t}\r\n\r\n\tstop() {\r\n\t\t// Stop\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes: any = {\r\n\t\r\n};\r\n\r\n@createModule('CampaignCollectorPageHeader')\r\n/**\r\n * Header module implementation.\r\n *\r\n * @author \r\n */\r\nexport class CampaignCollectorPageHeader extends TerrificSpec {\r\n\tticking: boolean = false;\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as ProductCompareHelper from '@project/shared/utils/product-compare/js/product-compare';\r\nimport { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst classes = {\r\n\theadline: 'js-o-product-compare__headline',\r\n\tremovebutton: 'js-o-product-compare__remove',\r\n\tbackbutton: 'js-o-product-compare__back',\r\n\tproductname: 'js-o-product-compare__productname',\r\n\ttable: 'js-o-product-compare__table',\r\n\ttablerow: 'js-o-product-compare__table-row',\r\n\ttabletop: 'js-o-product-compare__table-top',\r\n\tfixedState: 'state-o-product-compare--fixed',\r\n\ttableHidden: 'state-o-product-compare--table-is-hidden',\r\n};\r\n\r\n@createModule('ProductCompare')\r\n/**\r\n * product-compare module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class ProductCompare extends TerrificSpec {\r\n\theadlineSingleText: string;\r\n\theadlineMultiText: string;\r\n\tanimationFrameId: number;\r\n\tcurScrollTop: number;\r\n\tcurScrollLeft: number;\r\n\tisFixed: boolean;\r\n\ttopThreshold: number = 20;\r\n\t$ctx: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tconst $table = this.$ctx.find(`.${classes.table}`);\r\n\t\tconst $headline = this.$ctx.find(`.${classes.headline}`);\r\n\t\tthis.topThreshold = $table.offset().top;\r\n\t\tthis.headlineSingleText = $headline.data('single-headline');\r\n\t\tthis.headlineMultiText = $headline.data('multi-headline');\r\n\t\tthis.updateHeadline();\r\n\t\tthis.$ctx.find(`.${classes.removebutton}`).on('click', this.onRemoveClick.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.backbutton}`).on('click', () => {\r\n\t\t\twindow.history.back();\r\n\t\t});\r\n\t\t$(window).on('scroll', this.onScroll.bind(this));\r\n\r\n\t\tconst $products = $(`.${classes.productname}`, this.$ctx);\r\n\t\tthis.$ctx.toggleClass(classes.tableHidden, $products.length <= 0);\r\n\r\n\t\tonBreakpointChange(() => (this.topThreshold = $table.offset().top));\r\n\r\n\t\tresolve();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {}\r\n\r\n\t/**\r\n\t * method updates headline and sets count of products\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tupdateHeadline() {\r\n\t\tconst $headline = this.$ctx.find(`.${classes.headline}`);\r\n\t\tconst count = this.$ctx.find(`.${classes.productname}`).length;\r\n\t\tif (count === 1) {\r\n\t\t\t$headline.text(this.headlineSingleText);\r\n\t\t} else {\r\n\t\t\t$headline.text(this.headlineMultiText.replace(/\\{0\\}/, `${count}`));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method handels remove click and therefor removes product from list and cookie\r\n\t *\r\n\t * @param {Object} ev eventObject\r\n\t * @returns {void}\r\n\t */\r\n\tonRemoveClick(ev: Event) {\r\n\t\tev.preventDefault();\r\n\t\tconst $el = $(ev.currentTarget).closest(`.${classes.productname}`);\r\n\t\tProductCompareHelper.removeProduct($el.data('prod-id'));\r\n\t\tthis.$ctx.toggleClass(classes.tableHidden, $el.siblings().length <= 1);\r\n\r\n\t\tif ($el.siblings().length > 0) {\r\n\t\t\tthis.$ctx.find(`.${classes.tablerow} > td:nth-child(${$el.index() + 1})`).remove();\r\n\t\t}\r\n\r\n\t\tthis.updateHeadline();\r\n\t}\r\n\r\n\t/**\r\n\t * method is called on scroll and debounces by requestAnimationFrame\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonScroll() {\r\n\t\tif (this.animationFrameId > 0) {\r\n\t\t\twindow.cancelAnimationFrame(this.animationFrameId);\r\n\t\t}\r\n\t\tthis.animationFrameId = window.requestAnimationFrame(() => {\r\n\t\t\tthis.animationFrameId = 0;\r\n\t\t\tthis.handleScrolling();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * method handles scroll position and calls corresponding methods if scrollposition has changed till last processing\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thandleScrolling() {\r\n\t\tconst scrollTop = window.scrollY;\r\n\t\tconst scrollLeft = window.scrollX;\r\n\r\n\t\tif (scrollTop !== this.curScrollTop) {\r\n\t\t\tthis.curScrollTop = scrollTop;\r\n\t\t\tthis.handleScrollTop();\r\n\t\t}\r\n\t\tif (this.isFixed && scrollLeft !== this.curScrollLeft) {\r\n\t\t\tthis.curScrollLeft = scrollLeft;\r\n\t\t\tthis.handleScrollLeft();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method handles scroll top position and sets tableheader fix when threshold was crossed and viceversa\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thandleScrollTop() {\r\n\t\tconst $table = this.$ctx.find(`.${classes.table}`);\r\n\t\tconst $topRow = $table.find(`.${classes.tabletop}`);\r\n\t\tif (this.curScrollTop > this.topThreshold) {\r\n\t\t\tif (!this.isFixed) {\r\n\t\t\t\tthis.isFixed = true;\r\n\t\t\t\t$table.css('padding-top', `${$topRow.height()}px`);\r\n\t\t\t\tthis.$ctx.addClass(classes.fixedState);\r\n\t\t\t\tthis.handleScrollLeft();\r\n\t\t\t}\r\n\t\t} else if (this.isFixed) {\r\n\t\t\tthis.isFixed = false;\r\n\t\t\t$table.css('padding-top', '0');\r\n\t\t\tthis.$ctx.removeClass(classes.fixedState);\r\n\t\t\t$topRow.css('transform', 'translateX(0)');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method handles scroll left position and moves the tableheader accordingly\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thandleScrollLeft() {\r\n\t\tconst $table = this.$ctx.find(`.${classes.table}`);\r\n\t\tconst $topRow = $table.find(`.${classes.tabletop}`);\r\n\t\t$topRow.css('transform', `translateX(-${this.curScrollLeft}px)`);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as ProductCompareHelper from '@project/shared/utils/product-compare/js/product-compare';\r\nimport getCurrentBreakpoint, { onBreakpointChange } from '@project/shared/utils/breakpoints/js/breakpoints';\r\n\r\nconst classes = {\r\n\theadline: 'js-o-product-compare__headline',\r\n\tremovebutton: 'js-o-product-compare__remove',\r\n\tremoveAllbutton: 'js-o-product-compare__remove-all',\r\n\tbackbutton: 'js-o-product-compare__back',\r\n\tproductname: 'js-o-product-compare__productname',\r\n\ttable: 'js-o-product-compare__table',\r\n\ttablerow: 'js-o-product-compare__table-row',\r\n\ttableDataRow: 'js-o-product-compare__data-row',\r\n\ttabletop: 'js-o-product-compare__table-top',\r\n\tfixedState: 'state-o-product-compare--fixed',\r\n\ttableHidden: 'state-o-product-compare--table-is-hidden',\r\n\tarrowsHidden: 'state-o-product-compare--arrows-is-hidden',\r\n\ttitleTable: 'js-o-product-compare__title-table',\r\n\tfixedStateLeft: 'state-o-product-compare--fixed-left',\r\n\tminiTitle: 'js-o-product-compare__mini-title',\r\n\tcategoryTitle: 'js-o-product-compare__category-title',\r\n\tcategoryChild: 'js-o-product-compare__category-child',\r\n\tcategoryTh: 'js-o-product-compare__category-th',\r\n\tcategoryCollapse : 'state-o-product-compare--category-collapse',\r\n\trightControl : 'js-o-product-compare__right-control',\r\n\tleftControl : 'js-o-product-compare__left-control',\r\n\ttableContent : 'js-o-product-compare__table-content',\r\n\thighlightRowActive : 'state-o-product-compare--highlight-row',\r\n\tshowDifferences : 'js-o-product-compare__show-differences',\r\n\tshowDifferencesActive: 'state-o-product-compare--show-differences',\r\n\ttooltipBtn: 'o-product-compare__tooltip',\r\n\ttooltipPopup: 'o-product-compare__tooltip-popup',\r\n\ttooltipCloser: 'js-m-tooltip__closer',\r\n\r\n\tfavouriteBtn: \"m-favourite-button\",\r\n\tstateFavorBtnActive: \"state-m-favourite-button--active\",\r\n};\r\n\r\n@createModule('ProductCompareV2')\r\n/**\r\n * product-compare module implementation.\r\n *\r\n * @author Lars-Olof Kreim \r\n */\r\nexport class ProductCompareV2 extends TerrificSpec {\r\n\theadlineSingleText: string;\r\n\theadlineMultiText: string;\r\n\tanimationFrameId: number;\r\n\tcurScrollTop: number;\r\n\tcurScrollLeft: number;\r\n\tisFixed: boolean;\r\n\ttopThreshold: number = 0;\r\n\t$ctx: JQuery; \r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\t$('html.l-product-compare').addClass('l-product-compare--improvements');\r\n\t\tconst $headline = this.$ctx.find(`.${classes.headline}`);\r\n\t\tthis.headlineSingleText = $headline.data('single-headline');\r\n\t\tthis.headlineMultiText = $headline.data('multi-headline');\r\n\t\tthis.updateHeadline();\r\n\t\tthis.$ctx.find(`.${classes.removebutton}`).on('click', this.onRemoveClick.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.removeAllbutton}`).on('click', this.onRemoveAllClick.bind(this));\r\n\t\tthis.updateColumnLength();\r\n\t\tthis.$ctx.find(`.${classes.backbutton}`).on('click', () => {\r\n\t\t\twindow.history.back();\r\n\t\t});\r\n\t\tthis.highlightDifferences();\r\n\t\tthis.showDifferences();\r\n\t\tthis.$ctx.find(`.${classes.categoryTitle}`).on('click', this.onCategoryClick.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.tooltipBtn}`).on('click', this.onTooltipBtnClick.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.tooltipCloser}`).on('click', this.onTooltipCloserClick.bind(this));\r\n\r\n\t\tthis.$ctx.find(`.${classes.rightControl}`).on('click', () => {\r\n\t\t\tthis.onRightControlClick()\r\n\t\t});\r\n\t\tthis.$ctx.find(`.${classes.leftControl}`).parent().addClass('disabled');\r\n\t\tthis.$ctx.find(`.${classes.leftControl}`).on('click', () => {\r\n\t\t\tthis.onLeftControlClick()\r\n\t\t});\r\n\t\tthis.hiddenControlArrows();\r\n\t\tthis.setStaticTable();\r\n\t\t$(window).on('scroll', this.onScroll.bind(this));\r\n\t\t$('body').on('scroll', this.onScroll.bind(this));\r\n\t\t$(window).on('resize', () => {\r\n\t\t\tthis.$ctx.find(`.${classes.tooltipPopup}`).hide();\r\n\t\t\tthis.setTitleTableHeight();\r\n\t\t\tthis.setTableTopOffset();\r\n\t\t\tthis.setMiniTitleHeight();\r\n\t\t\tthis.hiddenControlArrows();\r\n\t\t\tthis.setTableTopWidth();\r\n\t\t});\r\n\r\n\t\tconst $products = $(`.${classes.productname}`, this.$ctx);\r\n\t\tthis.$ctx.toggleClass(classes.tableHidden, $products.length <= 0);\r\n\r\n\t\tonBreakpointChange(() => {\r\n\t\t\tthis.setStaticTable();\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() { }\r\n\r\n\t/**\r\n\t * method updates headline and sets count of products\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tupdateHeadline() {\r\n\t\tconst $headline = this.$ctx.find(`.${classes.headline}`);\r\n\t\tconst count = this.$ctx.find(`.${classes.productname}`).length;\r\n\t\tif (count === 1) {\r\n\t\t\t$headline.text(this.headlineSingleText);\r\n\t\t} else {\r\n\t\t\t$headline.text(this.headlineMultiText.replace(/\\{0\\}/, `${count}`));\r\n\t\t}\r\n\t}\r\n\r\n\tupdateColumnLength() {\r\n\t\tconst $categoryTh = this.$ctx.find(`.${classes.categoryTh}`);\r\n\t\tconst count = this.$ctx.find(`.${classes.productname}`).length + 1;\r\n\t\t$categoryTh.attr('colspan', `${count}`);\r\n\r\n\t\tconst $rightControl = this.$ctx.find(`.${classes.rightControl}`);\r\n\t\tif (count < $(window).width() / 250) {\r\n\t\t\t$rightControl.parent().hide();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * method handels remove click and therefor removes product from list and cookie\r\n\t *\r\n\t * @param {Object} ev eventObject\r\n\t * @returns {void}\r\n\t */\r\n\tonRemoveClick(ev: Event) {\r\n\t\tev.preventDefault();\r\n\t\tconst $el = $(ev.currentTarget).closest(`.${classes.productname}`);\r\n\t\tconst productId = $el.data('prod-id');\r\n\r\n\t\t// url won't overwrite cookies\r\n\t\tconst currentQuery = window.location.search.substr(1);\r\n\t\tif (currentQuery.length > 0 && currentQuery.toLocaleLowerCase().indexOf(\"prdset\") > -1) {\r\n\t\t\tthis.removeFromUrl(productId);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tProductCompareHelper.removeProduct(productId);\r\n\t\t}\r\n\t\t\r\n\t\tthis.$ctx.toggleClass(classes.tableHidden, $el.siblings().length <= 1);\r\n\r\n\t\tif ($el.siblings().length > 0) {\r\n\t\t\tthis.$ctx.find(`.${classes.tablerow} > td:nth-child(${$el.index() + 1})`).remove();\r\n\t\t}\r\n\r\n\t\tthis.updateHeadline();\r\n\t\tthis.updateColumnLength();\r\n\t\tthis.setTitleTableHeight();\r\n\t\tthis.setTableTopOffset();\r\n\t\tthis.setTableTopWidth();\r\n\t\tthis.setMiniTitleHeight();\r\n\t\tthis.highlightDifferences();\r\n\t\tthis.hiddenControlArrows();\r\n\t\tthis.setStaticTable();\r\n\t\tthis.tableRemoveScoll();\r\n\t\tthis.updateFavouritesBtnStatus();\r\n\t}\r\n\r\n\tonRemoveAllClick() {\r\n\t\t// url won't overwrite cookies\r\n\t\tconst currentQuery = window.location.search.substr(1);\r\n\t\tif (currentQuery.length > 0 && currentQuery.toLocaleLowerCase().indexOf(\"prdset\") > -1) {\r\n\t\t\tthis.removeAllFromUrl();\r\n\t\t}\r\n\t\telse{\r\n\t\t\tProductCompareHelper.removeAllProduct();\r\n\t\t}\r\n\t\tthis.$ctx.addClass(classes.tableHidden);\r\n\t\tthis.$ctx.find(`.${classes.tablerow} > td`).remove();\r\n\r\n\t\tthis.updateHeadline();\r\n\t\tthis.updateFavouritesBtnStatus();\r\n\t}\r\n\r\n\tonCategoryClick(ev: Event) {\r\n\t\tconst categoryID = $(ev.currentTarget).data('toggle-parent');\r\n\t\t$(`.${classes.categoryTitle}[data-toggle-parent='${categoryID}']`).toggleClass(classes.categoryCollapse);\r\n\t\t$(`.${classes.categoryChild}[data-toggle-child='${categoryID}']`).toggleClass(classes.categoryCollapse);\r\n\t\tthis.setTitleTableHeight();\r\n\t}\r\n\r\n\tonTooltipBtnClick(ev: Event) {\r\n\t\tconst $tooltipPopup = this.$ctx.find(`.${classes.tooltipPopup}`);\r\n\t\tconst currentTop = $(ev.currentTarget).offset().top - 14;\r\n\t\tconst currentLeft = $(ev.currentTarget).offset().left + 14;\r\n\t\t$tooltipPopup.show();\r\n\t\t$tooltipPopup.css('top',currentTop)\r\n\t\t$tooltipPopup.css('left',currentLeft)\r\n\t}\r\n\r\n\tonTooltipCloserClick(ev: Event) {\r\n\t\tev.preventDefault();\r\n\t\t$(ev.currentTarget).parents(`.${classes.tooltipPopup}`).hide();\r\n\t}\r\n\t/**\r\n\t * Highlight all differences\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thighlightDifferences() {\r\n\t\tconst columns = this.$ctx.find(`.${classes.productname}`).length - 1;\r\n\t\tconst $tableDataRow = this.$ctx.find(`.${classes.tableDataRow}`);\r\n\t\tconst $titleTable = this.$ctx.find(`.${classes.titleTable}`);\r\n\t\tconst $categoryTitle = this.$ctx.find(`.${classes.categoryTitle}`);\r\n\t\tif(columns > 0) {\r\n\t\t\t$categoryTitle.removeClass(classes.highlightRowActive);\r\n\t\t\t$tableDataRow.each((i, elem) => {\r\n\t\t\t\tlet highlight: boolean = false;\r\n\t\t\t\tfor (let num: number = 0; num < columns; ++num) {\r\n\t\t\t\t\tif ($(elem).find('td').eq(num).text() != $(elem).find('td').eq(num + 1).text()) {\r\n\t\t\t\t\t\thighlight = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconst categoryID = $(elem).data('toggle-child');\r\n\t\t\t\tconst $curCategoryTitle = $(`.${classes.categoryTitle}[data-toggle-parent='${categoryID}']`);\r\n\t\t\t\tif (highlight == true) {\r\n\t\t\t\t\t$(elem).addClass(classes.highlightRowActive);\r\n\t\t\t\t\t$titleTable.find('tr').eq($(elem).index()).addClass(classes.highlightRowActive);\r\n\t\t\t\t\t$curCategoryTitle.addClass(classes.highlightRowActive);\r\n\t\t\t\t\t$titleTable.find('tr').eq($curCategoryTitle.index()).addClass(classes.highlightRowActive);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(elem).removeClass(classes.highlightRowActive);\r\n\t\t\t\t\t$titleTable.find('tr').eq($(elem).index()).removeClass(classes.highlightRowActive);\r\n\t\t\t\t}\r\n\t\t\t\thighlight = false;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$tableDataRow.removeClass(classes.highlightRowActive);\r\n\t\t\t$titleTable.find('tr').removeClass(classes.highlightRowActive);\r\n\t\t\t$categoryTitle.removeClass(classes.highlightRowActive);\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * Show only the differences\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tshowDifferences() {\r\n\t\tlet $checkboxElement = this.$ctx.find(`.${classes.showDifferences}`).find(\"input[type='checkbox']\");\r\n\t\tconst me = this.$ctx;\r\n\t\tconst that = this;\r\n\t\t$checkboxElement.on(\"input propertychange\", function(ev: any){\r\n\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\tif ($target.is(\":checked\")) {\r\n\t\t\t\tme.addClass(classes.showDifferencesActive);\r\n\t\t\t} else {\r\n\t\t\t\tme.removeClass(classes.showDifferencesActive);\r\n\t\t\t}\r\n\r\n\t\t\tthat.setTitleTableHeight();\r\n\t\t\tthat.setTableTopOffset();\r\n\t\t});\r\n\t}\r\n\t/**\r\n\t * method is called on scroll and debounces by requestAnimationFrame\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonScroll() {\r\n\t\tif (this.animationFrameId > 0) {\r\n\t\t\twindow.cancelAnimationFrame(this.animationFrameId);\r\n\t\t}\r\n\t\tthis.animationFrameId = window.requestAnimationFrame(() => {\r\n\t\t\tthis.animationFrameId = 0;\r\n\t\t\tthis.handleScrolling();\r\n\t\t\t//this.rightControlToggle();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * method handles scroll position and calls corresponding methods if scrollposition has changed till last processing\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thandleScrolling() {\r\n\t\tconst scrollTop = jQuery(window).scrollTop();\r\n\t\tconst scrollLeft = document.body.scrollLeft;\r\n\t\tthis.setTitleTableHeight();\r\n\t\tthis.setTableTopOffset();\r\n\t\tthis.setTableTopWidth();\r\n\t\tthis.setMiniTitleHeight();\r\n\r\n\t\tthis.curScrollTop = scrollTop;\r\n\t\tthis.handleScrollTop();\r\n\r\n\t\tif (this.isFixed && scrollLeft !== this.curScrollLeft) {\r\n\t\t\tthis.curScrollLeft = scrollLeft;\r\n\t\t\tthis.handleScrollLeft();\r\n\t\t}\r\n\t}\r\n\r\n\tsetMiniTitleHeight() {\r\n\t\tconst $tabletop = this.$ctx.find(`.${classes.tabletop}`);\r\n\t\tconst $miniTitle = this.$ctx.find(`.${classes.miniTitle}`);\r\n\t\t$miniTitle.find('th').height($tabletop.find('th').height());\r\n\t}\r\n\r\n\tsetTitleTableHeight() {\r\n\t\tconst $titleTable = this.$ctx.find(`.${classes.titleTable}`);\r\n\t\t$titleTable.find('th').each((i, elem) => {\r\n\t\t\tconst $eIndex = $(elem).parent().index();\r\n\t\t\t$(elem).height(\r\n\t\t\t\tthis.$ctx.find(`.${classes.tablerow}`).eq($eIndex).find('th').height()\r\n\t\t\t)\r\n\t\t});\r\n\t}\r\n\r\n\tsetTableTopWidth() {\r\n\t\tconst $table = this.$ctx.find(`.${classes.table}`);\r\n\t\tconst $tabletop = this.$ctx.find(`.${classes.tabletop}`);\r\n\t\t$tabletop.width($table.width());\r\n\t}\r\n\r\n\thiddenControlArrows() {\r\n\t\tconst $tableContent = this.$ctx.find(`.${classes.tableContent}`);\r\n\t\tconst $screenWidth = this.$ctx.width() - 48;\r\n\t\tconst maxLength = $screenWidth / 250 - 1;\r\n\t\tconst $products = $(`.${classes.productname}`, this.$ctx);\r\n\t\tif ($products.length <= maxLength) {\r\n\t\t\tthis.$ctx.addClass(classes.arrowsHidden);\r\n\t\t\t$tableContent.css('margin-left', 0);\r\n\t\t} else {\r\n\t\t\tthis.$ctx.removeClass(classes.arrowsHidden);\r\n\t\t}\r\n\t}\r\n\r\n\tsetStaticTable() {\r\n\t\tconst $products = $(`.${classes.productname}`, this.$ctx);\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'small' && $products.length <= 2) {\r\n\t\t\tthis.$ctx.addClass(classes.arrowsHidden);\r\n\t\t}\r\n\t}\r\n\r\n\ttableRemoveScoll() {\r\n\t\tconst $tableContent = this.$ctx.find(`.${classes.tableContent}`);\r\n\t\tconst $table = this.$ctx.find(`.${classes.table}`);\r\n\t\tconst curMarginLeft = parseInt($tableContent.css(\"margin-left\"));\r\n\t\tconst maxScrollLeft = $table.width() - this.$ctx.width() + 96;\r\n\t\tif ( -curMarginLeft >= maxScrollLeft ) {\r\n\t\t\t$tableContent.css('margin-left', `-${maxScrollLeft}px`);\r\n\t\t\tthis.$ctx.find(`.${classes.rightControl}`).parent().addClass('disabled');\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * method click right arrow\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonRightControlClick() {\r\n\t\tthis.$ctx.find(`.${classes.leftControl}`).parent().removeClass('disabled');\r\n\t\tthis.tableScrollRight();\r\n\t\tthis.setTitleTableHeight();\r\n\r\n\t\tconst $titleTable = this.$ctx.find(`.${classes.titleTable}`);\r\n\t\t$titleTable.addClass(classes.fixedStateLeft);\r\n\t}\r\n\r\n\ttableScrollRight() {\r\n\t\tconst $tableContent = this.$ctx.find(`.${classes.tableContent}`);\r\n\t\tconst $table = this.$ctx.find(`.${classes.table}`);\r\n\t\tconst curMarginLeft = parseInt($tableContent.css(\"margin-left\"));\r\n\t\tconst maxScrollLeft = $table.width() - this.$ctx.width() + 96;\r\n\t\tconst nextScrollLeft = curMarginLeft - 250;\r\n\r\n\t\tif ( - curMarginLeft < maxScrollLeft - 250) {\r\n\t\t\t$tableContent.css('margin-left', nextScrollLeft + 'px');\r\n\t\t} else {\r\n\t\t\t$tableContent.css('margin-left', `-${maxScrollLeft}px`);\r\n\t\t\tthis.$ctx.find(`.${classes.rightControl}`).parent().addClass('disabled');\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * method click left arrow\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tonLeftControlClick() {\r\n\t\tthis.$ctx.find(`.${classes.rightControl}`).parent().removeClass('disabled');\r\n\t\tthis.tableScrollLeft();\r\n\t}\r\n\r\n\ttableScrollLeft() {\r\n\t\tconst $tableContent = this.$ctx.find(`.${classes.tableContent}`);\r\n\t\tconst curMarginLeft = parseInt($tableContent.css(\"margin-left\"));\r\n\t\tconst nextScrollLeft = curMarginLeft + 250;\r\n\t\tif ( - curMarginLeft > 250) {\r\n\t\t\t$tableContent.css('margin-left', nextScrollLeft + 'px');\r\n\t\t} else {\r\n\t\t\t$tableContent.css('margin-left', 0);\r\n\t\t\tthis.$ctx.find(`.${classes.leftControl}`).parent().addClass('disabled');\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * method handles scroll top position and sets tableheader fix when threshold was crossed and viceversa\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thandleScrollTop() {\r\n\t\tconst $topRow = this.$ctx.find(`.${classes.tabletop}`);\r\n\t\tconst viewport = getCurrentBreakpoint() as string;\r\n\t\tif (viewport === 'small') {\r\n\t\t\tthis.topThreshold = 188;\r\n\t\t} else {\r\n\t\t\tthis.topThreshold = 0;\r\n\t\t}\r\n\r\n\t\tif (this.curScrollTop > this.topThreshold) {\r\n\t\t\tif (!this.isFixed) {\r\n\t\t\t\tthis.isFixed = true;\r\n\t\t\t\tthis.$ctx.addClass(classes.fixedState);\r\n\t\t\t\tif (viewport === 'small') {\r\n\t\t\t\t\tthis.handleScrollLeft();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (this.isFixed) {\r\n\t\t\tthis.isFixed = false;\r\n\t\t\tthis.$ctx.removeClass(classes.fixedState);\r\n\t\t\t$topRow.css('transform', 'translateX(0)');\r\n\t\t}\r\n\t}\r\n\r\n\tsetTableTopOffset() {\r\n\t\tconst $table = this.$ctx.find(`.${classes.table}`);\r\n\t\tconst $topRow = $table.find(`.${classes.tabletop}`);\r\n\t\t$table.css('padding-top', `${$topRow.height()}px`);\r\n\t}\r\n\r\n\t/**\r\n\t * method handles scroll left position and moves the tableheader accordingly\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\thandleScrollLeft() {\r\n\t\tconst $table = this.$ctx.find(`.${classes.table}`);\r\n\t\tconst $tabletop = $table.find(`.${classes.tabletop}`);\r\n\t\t$tabletop.css('transform', `translateX(-${this.curScrollLeft}px)`);\r\n\t}\r\n\r\n\tremoveFromUrl(productId: string) {\r\n\r\n\t\tconst currentQuery = window.location.search.substr(1);\r\n\r\n\t\tif (currentQuery.length > 0) {\r\n\r\n\t\t\tif (currentQuery.toLocaleLowerCase().indexOf(\"prdset\") > -1) {\r\n\r\n\t\t\t\tconst paramArr = currentQuery.split(\"&\");\r\n\r\n\t\t\t\tparamArr.forEach((value: string, index: number, array: string[]) => {\r\n\t\t\t\t\tif (value.toLocaleLowerCase().indexOf(\"prdset\") > -1) {\r\n\t\t\t\t\t\tconst prdsetParamArr = value.split(\"=\");\r\n\t\t\t\t\t\tif(prdsetParamArr.length > 1){\r\n\t\t\t\t\t\t\tconst prdQuery = prdsetParamArr[1]; //eg: \"04196414-12942213:US|00004582-05125840:US|04874625-10771105:US\"\r\n \r\n\t\t\t\t\t\t\tconst prdSegArr = prdQuery.split(\"|\"); // \"04196414-12942213:US\"\r\n\t\t\t\t\t\t\tlet queryArr = new Array();\r\n\r\n\t\t\t\t\t\t\tprdSegArr.forEach((v: string, i: number, a: string[]) => {\r\n\t\t\t\t\t\t\t\tif(v.indexOf(productId)==-1){\r\n\t\t\t\t\t\t\t\t\tqueryArr.push(v); \r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif(queryArr.length > 0){\r\n\t\t\t\t\t\t\t\tlet query = queryArr.join(\"|\");\r\n\t\t\t\t\t\t\t\tquery = `prdset=${query}`;\t\t\t\t\r\n\t\t\t\t\t\t\t\tconst search = `?${query}`; \r\n\t\t\t\t\t\t\t\thistory.pushState(null, null, search);\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\thistory.pushState(null, null, \"?\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}); \r\n\r\n\t\t\t\t \r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tremoveAllFromUrl(){\r\n\t\tconst currentQuery = window.location.search.substr(1);\r\n\t\tif (currentQuery.length > 0) {\r\n\t\t\tif (currentQuery.toLocaleLowerCase().indexOf(\"prdset\") > -1) {\r\n\t\t\t\thistory.pushState(null, null, \"?\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tupdateFavouritesBtnStatus() {\r\n\t\tconst query = window.location.search.substr(1);\r\n\t\tconst $favouritesEle = $(\"html div[data-t-name='FavouriteButton']\");\r\n\r\n\t\tif($favouritesEle.length > 0){\r\n\t\t\tconst url = $favouritesEle.data(\"status-api-endpoint\");\r\n\t\t\tconst pageId = $favouritesEle.data(\"page-id\");\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: 'GET',\r\n\t\t\t\turl: url,\r\n\t\t\t\tdataType: 'json',\r\n\t\t\t\tdata:\r\n\t\t\t\t{\r\n\t\t\t\t\tpageid: pageId,\r\n\t\t\t\t\tquery: query\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: (response: any) => {\r\n\r\n\t\t\t\t\tif (response.isActive) {\r\n\t\t\t\t\t\t$(\"html\").find(`button.${classes.favouriteBtn}`).addClass(classes.stateFavorBtnActive);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(\"html\").find(`button.${classes.favouriteBtn}`).removeClass(classes.stateFavorBtnActive);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcomplete: () => {\r\n\t\r\n\t\t\t\t},\r\n\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\tconsole.log(`after updating url of product-compare page, update status error, ${xhr.status}, ${xhr.statusText}, ${xhr.responseText}, ${error}`);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Track from '@project/shared/utils/tracking/js/tracking';\r\n\r\nconst classes = {\r\n\tteaserItem: 'o-teaser-content-area__item',\r\n\tstateHidden: 'h-visuallyhidden',\r\n\tloadMoreButton: 'js-load-more-button',\r\n\tloadMoreBar: 'js-load-more-bar',\r\n};\r\n\r\n@createModule('TeaserContentArea')\r\n/**\r\n * teaser-content-area module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nexport class TeaserContentArea extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tisOpen: boolean;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.isOpen = false;\r\n\t\tthis._handleApplicationTeaserLoadMore();\r\n\r\n\t\tthis.RegisteredUpdate();\r\n\r\n\t\tresolve();\r\n\t}\r\n\tstop() {}\r\n\r\n\t/**\r\n\t * method handles hide/show of the application/evergreen teasers\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\t_handleApplicationTeaserLoadMore() {\r\n\t\t// if this an Application/Evergreen and not one of the other teasers and it has not yet been opened:\r\n\t\tif (typeof this.$ctx.data('shown-teasers') !== 'undefined' && this.isOpen === false) {\r\n\t\t\tconst $teaserItems = this.$ctx.find(`.${classes.teaserItem}`);\r\n\t\t\tlet minOfShowTeasers = this.$ctx.data('shown-teasers');\r\n\t\t\tlet PageSizeLoadMore = this.$ctx.data('load-items');\r\n\r\n\t\t\tif ($teaserItems.length <= minOfShowTeasers) {\r\n\t\t\t\tthis.$ctx.find(`.${classes.loadMoreBar}`).addClass(classes.stateHidden);\r\n\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t\t\t} else {\r\n\t\t\t\tminOfShowTeasers++;\r\n\t\t\t\t$teaserItems.filter(`:nth-child(n + ` + minOfShowTeasers + `)`).addClass(classes.stateHidden);\r\n\t\t\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\r\n\t\t\t\tlet currentShowTeasers = minOfShowTeasers -1;\r\n\t\t\t\tthis.$ctx.find(`.${classes.loadMoreButton}`).on('click', (ev: any) => {\r\n\t\t\t\t\tlet allOfShowTeasers = currentShowTeasers + PageSizeLoadMore;\r\n\t\t\t\t\tfor( var i=0; i= $teaserItems.length) {\r\n\t\t\t\t\t\t\t$(ev.currentTarget)\r\n\t\t\t\t\t\t\t\t.parent(`.${classes.loadMoreBar}`)\r\n\t\t\t\t\t\t\t\t.addClass(classes.stateHidden);\r\n\r\n\t\t\t\t\t\t\tthis.isOpen = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tRegisteredUpdate() {\r\n\t\tconst $teaserItems = this.$ctx.find(`.${classes.teaserItem}`);\r\n\t\tif(Track.isKnownMarketoLead()) {\r\n\t\t\t$teaserItems.each((i,e) => {\r\n\t\t\t\tconst $teaser = $(e).children();\r\n\t\t\t\tconst classList = $teaser.attr('class');\r\n\t\t\t\tconst className = classList.split(' ');\r\n\t\t\t\t$teaser.removeClass(className[0] + '--locked');\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\tcurrentLink: 'o-customer-lounge-navigation__link-current',\r\n};\r\n\r\n@createModule('CustomerLoungeNavigation')\r\n/**\r\n * customer-lounge-navigation module\r\n */\r\nexport class CustomerLoungeNavigation extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$currentLink: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$currentLink = $(`.${classes.currentLink}`, this.$ctx);\r\n\r\n\t\tthis.initDuplicate();\r\n\t\tthis.initCollapseOverview();\r\n\t\tthis.collapseContent();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {}\r\n\r\n\tinitDuplicate() {\r\n\t\t$('.g-grid--customerLounge').prepend(this.$currentLink.nextAll().clone());\r\n\t}\r\n\r\n\tinitCollapseOverview() {\r\n\t\tlet collapseOverview = false;\r\n\t\tif (location.search && location.search.indexOf('nav=true') > -1) {\r\n\t\t\tcollapseOverview = true;\r\n\t\t} \r\n\r\n\t\tif(this.$currentLink.index() == 0){\r\n\t\t\tif (collapseOverview) {\r\n\t\t\t\t$('.g-grid--customerLounge__content').addClass(\"collapsed\");\r\n\t\t\t\tthis.$currentLink.addClass('collapsed');\r\n\t\t\t}else{\r\n\t\t\t\t$('.g-grid--customerLounge__content').removeClass(\"collapsed\");\r\n\t\t\t\tthis.$currentLink.removeClass('collapsed');\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t}\r\n\r\n\tcollapseContent() {\r\n\t\tthis.$currentLink.on('click', () => {\r\n\t\t\tif (this.$currentLink.hasClass('collapsed')) {\r\n\t\t\t\t$('.g-grid--customerLounge__content').slideDown('fast');\r\n\t\t\t\tthis.$currentLink.removeClass('collapsed');\r\n\t\t\t} else {\r\n\t\t\t\t$('.g-grid--customerLounge__content').slideUp('fast');\r\n\t\t\t\tthis.$currentLink.addClass('collapsed');\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n stateHidden: 'h-visuallyhidden',\r\n loadMoreButton: 'js-load-more-button',\r\n loadMoreBar: 'js-load-more-bar',\r\n activeState: 'm-customer-lounge-project--active',\r\n selectLink: 'js-o-customer-lounge-project-teaser__sort',\r\n projectBody: 'js-m-customer-lounge-project__body',\r\n projectHead: 'js-m-customer-lounge-project__head',\r\n collapseHide: 'js-m-customer-lounge-project__collapse-hide',\r\n teaserContainer: 'o-customer-lounge-project-teaser__container',\r\n loadingBar: 'o-customer-lounge-project-teaser__loading-wrapper',\r\n showLoadingBar: 'state-loading-wrapper--shown'\r\n};\r\n\r\n@createModule('CustomerLoungeProjectTeaser')\r\n/**\r\n * customer-lounge-project-teaser module implementation.\r\n */\r\nexport class CustomerLoungeProjectTeaser extends TerrificSpec {\r\n $ctx: JQuery;\r\n isOpen: boolean;\r\n\r\n start(resolve: Function) {\r\n this.$ctx = $(this._ctx);\r\n\r\n this.initAccordion();\r\n\r\n // init teaser data\r\n this.getTeaserData();\r\n\r\n this.$ctx.find(`.${classes.loadMoreButton}`).on(\"click\", this.loadMore.bind(this));\r\n\r\n this.$ctx.find(`.${classes.selectLink}`).on('change', (ev: Event) => this.sorting());\r\n\r\n resolve();\r\n }\r\n\r\n getTeaserData() {\r\n this.lockLoadMoreButton();\r\n this.showLoadingBar();\r\n\r\n const apiEndpoint = this.$ctx.data(\"api-endpoint\");\r\n const pageNumber = this.$ctx.data(\"page-number\");\r\n const loungeName = this.$ctx.data(\"lounge-name\");\r\n const datasource = this.$ctx.data(\"datasource\");\r\n\r\n const sortingValue = this.$ctx.find(`.${classes.selectLink}`).find(\"option:selected\").val() as string;\r\n const sortingProperties = sortingValue.split(\",\");\r\n const sortBy = sortingProperties[0];\r\n const sortOrder = sortingProperties[1];\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: apiEndpoint,\r\n dataType: 'html',\r\n data:\r\n {\r\n pageNumber: pageNumber,\r\n sortBy: sortBy,\r\n sortOrder: sortOrder,\r\n loungeName: loungeName,\r\n datasource: datasource\r\n },\r\n success: (response: any) => {\r\n console.log(\"get teaser data success\");\r\n\r\n let container = this.$ctx.find(`.${classes.teaserContainer}`);\r\n container.append(response);\r\n\r\n let data = container.find(\"script[type='application/json']\");\r\n\r\n if (data.length > 0) {\r\n let json = data[0].innerHTML;\r\n let jsonData = JSON.parse(json);\r\n\r\n if (jsonData.totalNumber > 0) {\r\n this.updatePageNumber(jsonData.pageNumber + 1);\r\n this.updateLoadMoreButton(jsonData.enableLoadMore);\r\n\r\n } else {\r\n //this.updateNoResult();\r\n }\r\n data.remove();\r\n } else {\r\n //this.updateNoResult();\r\n }\r\n\r\n },\r\n complete: () => {\r\n this.hideLoadingBar();\r\n },\r\n error: () => {\r\n console.log(\"get project teaser data error\");\r\n }\r\n });\r\n }\r\n\r\n loadMore() {\r\n this.getTeaserData();\r\n }\r\n\r\n\r\n updateLoadMoreButton(enable: boolean) {\r\n if (enable) {\r\n this.unlockLoadMoreButton();\r\n } else {\r\n this.lockLoadMoreButton();\r\n }\r\n }\r\n\r\n lockLoadMoreButton() {\r\n this.$ctx.find(`.${classes.loadMoreBar}`).addClass(`${classes.stateHidden}`);\r\n }\r\n\r\n unlockLoadMoreButton() {\r\n this.$ctx.find(`.${classes.loadMoreBar}`).removeClass(`${classes.stateHidden}`);\r\n }\r\n\r\n showLoadingBar() {\r\n this.$ctx.find(`.${classes.loadingBar}`).addClass(`${classes.showLoadingBar}`);\r\n }\r\n\r\n hideLoadingBar() {\r\n this.$ctx.find(`.${classes.loadingBar}`).removeClass(`${classes.showLoadingBar}`);\r\n }\r\n\r\n updatePageNumber(pageNumber: number) {\r\n this.$ctx.data(\"page-number\", pageNumber);\r\n }\r\n\r\n sorting() {\r\n this.$ctx.find(`.${classes.teaserContainer}`).empty();\r\n this.updatePageNumber(0);\r\n this.getTeaserData();\r\n }\r\n\r\n initAccordion() {\r\n $(document).on(\"click\",\r\n `.${classes.projectHead}`,\r\n function () {\r\n $(this).parent().toggleClass(`${classes.activeState}`);\r\n $(this).parent().find(`.${classes.projectBody}`).slideToggle();\r\n });\r\n $(document).on('click',\r\n `.${classes.collapseHide}`,\r\n function () {\r\n $(this).parent().parent().parent().removeClass(classes.activeState);\r\n $(this).parent().parent().slideUp();\r\n });\r\n }\r\n\r\n stop() { }\r\n} \r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { FavouritesShare } from '../../../molecules/favourites-share/js/favourites-share';\r\nimport { FavouritesAction } from '../../../molecules/favourites-action/js/favourites-action';\r\n\r\nconst classes = {\r\n\tstatePopupVisible: \"state-favourite-popup--visible\",\r\n\tstatePopupClose: \"state-favourite-popup--close\",\r\n\tstateCountMax: \"state-textarea-count-max\",\r\n\tstateLoadingVisible: \"state-loading-wrapper--shown\",\r\n\tstateValMsgVisible: \"state-field-validation-error--visible\",\r\n\tstatePromptBoxVisible: \"state-m-prompt-box--hidden\",\r\n\r\n\tcurrentTitle: 'js-m-favourites-entry-table__heading',\r\n\tlistContainer: 'js-o-favourites-overview__filter',\r\n\tentryContainer: \"js-o-favourites-overview-entry\",\r\n\r\n\tfavouritesFilterClose: 'js-o-favourites-overview__filter-closer',\r\n\tstateFavouritesFilterShow: 'state-o-favourites-overview__filter--open',\r\n\r\n\tdynamicContainer: \"js-m-favourites-overview-dynamic-container\",\r\n\r\n\tnoScrollingBar: \"no-scrolling--without-scrollbar\",\r\n\tlistItem: \"js-m-favourites-list-item\",\r\n\tentryItem: \"js-m-favourites-entry-item\",\r\n\tactionItem: \"js-m-tooltip-actions__list-item\",\r\n\taddListItem: \"js-m-favourites-list__add-item\",\r\n\r\n\tloadingIndicator: \"m-favourite-button__loading-wrapper\",\r\n\r\n\tpromptSharedSuccess: \"js-prompt-shared-success\",\r\n\tpromptSharedFailure: \"js-prompt-shared-failure\"\r\n\r\n};\r\n\r\nconst popupClasses = {\r\n\tpopupBox: \"js-m-modal-actions\",\r\n\ttextareaBox: \"js-m-modal-actions__textarea\"\r\n}\r\n\r\nconst actions = {\r\n\taddList: \"AddList\",\r\n\teditList: \"EditList\",\r\n\tdeleteList: \"DeleteList\",\r\n\tcopyList: \"CopyList\",\r\n\tshareList: \"ShareList\",\r\n\r\n\teditEntry: \"EditEntry\",\r\n\tcopyEntry: \"CopyEntry\",\r\n\tmoveEntry: \"MoveEntry\",\r\n\tdeleteEntry: \"DeleteEntry\"\r\n};\r\n\r\nconst params = {\r\n\tsharedSuccess: \"sharedsuccess\",\r\n\tlistId: \"listid\",\r\n};\r\n\r\n@createModule('FavouritesOverview')\r\n/**\r\n * favourites-overview module\r\n */\r\nexport class FavouritesOverview extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$currentTitle: JQuery;\r\n\t$favouritesFilter: JQuery;\r\n\t$favouritesFilterClose: JQuery;\r\n\r\n\t$dynamicContainer: JQuery;\r\n\t$listContainer: JQuery;\r\n\t$entryContainer: JQuery;\r\n\r\n\t$loadingIndicator: JQuery;\r\n\r\n\tactionViewEndpoint: string;\r\n\tcontentType: string;\r\n\r\n\tfavorShare: FavouritesShare;\r\n\tfavorAction: FavouritesAction;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$currentTitle = $(`.${classes.currentTitle}`, this.$ctx);\r\n\t\tthis.$favouritesFilter = $(`.${classes.listContainer}`, this.$ctx);\r\n\t\tthis.$favouritesFilterClose = $(`.${classes.favouritesFilterClose}`, this.$ctx);\r\n\r\n\t\tthis.actionViewEndpoint = this.$ctx.data(\"action-view-endpoint\");\r\n\t\tthis.contentType = this.$ctx.data(\"content-type\");\r\n\r\n\t\tthis.favorShare = new FavouritesShare();\r\n\t\tthis.favorAction = new FavouritesAction();\r\n\r\n\t\tthis.showFavouritesFilter();\r\n\t\tthis.hideFavouritesFilter();\r\n\r\n\t\tthis.$dynamicContainer = this.$ctx.find(`.${classes.dynamicContainer}`);\r\n\t\tthis.$listContainer = this.$ctx.find(`.${classes.listContainer}`);\r\n\t\tthis.$entryContainer = this.$ctx.find(`.${classes.entryContainer}`);\r\n\r\n\t\tthis.$loadingIndicator = this.$ctx.find(`.${classes.loadingIndicator}`);\r\n\r\n\t\tthis.$ctx.find(`.${classes.addListItem}`).on(\"click\", () => {\r\n\t\t\tthis.getActionPartialView(actions.addList, 0);\r\n\t\t});\r\n\r\n\t\tthis.updateUrl();\r\n\r\n\t\tthis.$listContainer.find(`.${classes.actionItem}`).on(\"click\", (ev: any) => {\r\n\t\t\tconst $action = $(ev.currentTarget);\r\n\r\n\t\t\tconst actionType = $action.data(\"action-name\");\r\n\t\t\tconst listId = $action.data(\"item-id\");\r\n\r\n\t\t\tthis.getActionPartialView(actionType, listId);\r\n\r\n\t\t});\r\n\r\n\t\tthis.$entryContainer.find(`.${classes.actionItem}`).on(\"click\", (ev: any) => {\r\n\t\t\tconst $action = $(ev.currentTarget);\r\n\r\n\t\t\tconst actionType = $action.data(\"action-name\");\r\n\t\t\tconst entryId = $action.data(\"item-id\");\r\n\r\n\t\t\tthis.getActionPartialView(actionType, entryId);\r\n\t\t});\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tgetActionPartialView(actionType: string, id: number) {\r\n\t\tconst url = window.location.pathname;\r\n\t\tthis.showLoadingIndicator();\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'post',\r\n\t\t\turl: this.actionViewEndpoint,\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tactionType: actionType,\r\n\t\t\t\tid: id,\r\n\t\t\t\tcurrentUrl: url\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tif (response.length > 2) {\r\n\r\n\t\t\t\t\tthis.$dynamicContainer.append(response);\r\n\t\t\t\t\tconst $popup = this.$dynamicContainer.children();\r\n\t\t\t\t\tthis.favorAction.displayPopup($popup);\r\n\r\n\t\t\t\t\tif (actionType == actions.shareList) {\r\n\t\t\t\t\t\tthis.favorShare.rebindEmailViewEvents($popup);\r\n\t\t\t\t\t\tthis.favorShare.bindEmailSubmitEvent($popup, this.contentType);\r\n\t\t\t\t\t\tthis.favorShare.bindClipboardEvents($popup, this.contentType);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.favorAction.rebindCommonViewEvents($popup);\r\n\t\t\t\t\t\tthis.favorAction.bindSubmitEvent($popup, this.contentType);\r\n\t\t\t\t\t\tthis.prefillTextareaBox();\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tthis.hideLoadingIndicator();\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(`get action-view error, action type: ${actionType}, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprefillTextareaBox() {\r\n\r\n\t\tconst $textareaBox = this.$dynamicContainer.find(`.${popupClasses.textareaBox}`);\r\n\r\n\t\tif ($textareaBox.length > 0) {\r\n\t\t\tconst prefillTxt = $textareaBox.attr(\"value\");\r\n\r\n\t\t\tif (prefillTxt.length > 0) {\r\n\t\t\t\t$textareaBox.val(prefillTxt);\r\n\r\n\t\t\t\t$textareaBox.focus();\r\n\r\n\t\t\t\tthis.favorAction.countTextarea($textareaBox);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tshowLoadingIndicator() {\r\n\t\tthis.$loadingIndicator.addClass(classes.stateLoadingVisible);\r\n\t}\r\n\r\n\thideLoadingIndicator() {\r\n\t\tthis.$loadingIndicator.removeClass(classes.stateLoadingVisible);\r\n\t}\r\n\r\n\tshowFavouritesFilter() {\r\n\t\tthis.$currentTitle.on('click', () => {\r\n\t\t\tthis.$favouritesFilter.addClass(classes.stateFavouritesFilterShow);\r\n\t\t})\r\n\t}\r\n\r\n\thideFavouritesFilter() {\r\n\t\tthis.$favouritesFilterClose.on('click', () => {\r\n\t\t\tthis.$favouritesFilter.removeClass(classes.stateFavouritesFilterShow);\r\n\t\t})\r\n\t}\r\n\r\n\tupdateUrl() {\r\n\t\tconst currentQuery = window.location.search.substr(1).toLocaleLowerCase();\r\n\r\n\t\tif (currentQuery.indexOf(params.listId) > -1) {\r\n\t\t\tconst paramArr = currentQuery.split(\"&\");\r\n\t\t\tlet query = \"\";\r\n\t\t\tparamArr.forEach((value: string, index: number, array: string[]) => {\r\n\t\t\t\tif (value.indexOf(params.listId) > -1) {\r\n\t\t\t\t\tquery = value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tquery = `?${query}`;\r\n\r\n\t\t\thistory.pushState(null, null, query);\r\n\t\t} else {\r\n\t\t\thistory.pushState(null, null, document.location.origin + document.location.pathname);\r\n\t\t}\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { floatControlLabel } from '@project/shared/utils/form-control/js/form-control';\r\nimport { FavouritesAction } from '../../../molecules/favourites-action/js/favourites-action';\r\nimport * as copy from 'copy-to-clipboard';\r\n\r\nconst classes = {\r\n\tpopupBox: \"js-m-modal-actions\",\r\n\ttextareaContainer: \"js-m-modal-actions-textarea-container\",\r\n\ttextareaBox: \"js-m-modal-actions__textarea\",\r\n\ttextareaValLength: \"js-m-modal-actions__textarea-count-length\",\r\n\ttextareaValLengthMax: \"js-m-modal-actions__textarea-count-max\",\r\n\r\n\tconfirmationBtn: \"js-m-modal-actions-confirmation\",\r\n\r\n\temailContainer: \"js-m-modal-actions-email-container\",\r\n\temailAdd: \"js-add-email-input\",\r\n\temailRemove: \"js-remove-email-input\",\r\n\temailTemplate: \"js-m-modal-actions__email-template\",\r\n\temailGroup: \"js-m-modal-actions__email-group\",\r\n\temailRequired: \"js-email-required\",\r\n\taddEmailDisabled: 'state-m-modal-actions__add-email--disabled',\r\n\r\n\tclipboardTitle: \"js-m-modal-actions__clipboard-anchor\",\r\n\r\n\tinputValidationError: \"input-validation-error\",\r\n\tinputAvailableError: \"input-available-error\",\r\n\tfieldValidationError: \"js-checklist-validation-error\",\r\n}\r\n\r\n@createModule('FavouritesShare')\r\n/**\r\n * favourites-prompt\r\n *\r\n */\r\nexport class FavouritesShare extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tresolve();\r\n\t}\r\n\r\n\tgenerateEmailTemplate(emailTemplateHtml: string) {\r\n\r\n\t\tconst $template = $(emailTemplateHtml);\r\n\t\t// get a random id\r\n\t\tconst date = new Date();\r\n\t\tconst id = `emailtemp_${date.getSeconds()}${date.getMilliseconds()}`;\r\n\r\n\t\t$template.find(\"label\").attr(\"for\", id);\r\n\t\t$template.find(\"input\").attr(\"id\", id);\r\n\r\n\t\treturn $template.prop(\"outerHTML\");\r\n\t}\r\n\r\n\trebindEmailViewEvents($popup: JQuery) {\r\n\r\n\t\t// bind Email events\r\n\t\tconst $emailContainer = $popup.find(`.${classes.emailContainer}`);\r\n\t\tif ($emailContainer.length > 0) {\r\n\t\t\tthis.bindEmailContainerEvents($emailContainer);\r\n\t\t}\r\n\r\n\t\tconst $emailMessageContainer = $popup.find(`.${classes.textareaContainer}`);\r\n\t\tif ($emailMessageContainer.length > 0) {\r\n\t\t\tthis.bindEmailMessageEvents($emailMessageContainer);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tbindEmailSubmitEvent($popup: JQuery, contentType: string) {\r\n\t\t// bind submit button\r\n\t\t$popup.find(`.${classes.confirmationBtn}`).on('click', (ev: any) => {\r\n\t\t\tconst url = $popup.data(\"api-endpoint\");\r\n\t\t\tconst id = $popup.data(\"item-id\");\r\n\r\n\t\t\tconst textareaTxt = $popup.find(\"textarea\").val();\r\n\t\t\tconst textbox = this.getEmailAddresses($popup);\r\n\r\n\t\t\tif (this.canSubmit($popup)) {\r\n\r\n\t\t\t\tconst $btnEle = $(ev.currentTarget);\r\n\t\t\t\t$btnEle.attr(\"disabled\", \"disabled\");\r\n\r\n\t\t\t\tnew FavouritesAction().track(\"E-Mail\", contentType);\r\n\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\ttype: 'post',\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\tdata:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpublicId: id,\r\n\t\t\t\t\t\ttextareaInput: textareaTxt,\r\n\t\t\t\t\t\ttextInput: textbox\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: (response: any) => {\r\n\r\n\t\t\t\t\t\tif (response.success) {\r\n\t\t\t\t\t\t\tconst url = this.getReloadUrl(response.id);\r\n\t\t\t\t\t\t\twindow.location.replace(url);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (response.isUnavailable) {\r\n\t\t\t\t\t\t\t\t$popup.find(`.${classes.textareaContainer}`).find(\"textarea\").addClass(classes.inputValidationError);;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconst url = this.getReloadUrl(\"0\");\r\n\t\t\t\t\t\t\t\twindow.location.replace(url);\r\n\t\t\t\t\t\t\t\tconsole.log(response.message);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcomplete: () => {\r\n\t\t\t\t\t\t$btnEle.removeAttr(\"disabled\");\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\t\tconsole.log(`submit action-view error, endpoint: ${url}, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tbindClipboardEvents($popup: JQuery, contentType: string) {\r\n\r\n\t\tconst $clipboardTitle = $popup.find(`.${classes.clipboardTitle}`);\r\n\t\t$clipboardTitle.on(\"click\", (ev: any) => {\r\n\r\n\t\t\tnew FavouritesAction().track(\"Copy Link\", contentType);\r\n\r\n\t\t\tconst opts = {\r\n\t\t\t\tdebug: false,\r\n\t\t\t\tmessage: 'Press #{⌘+C} on macOS or #{Ctrl+C} on Windows to copy',\r\n\t\t\t};\r\n\r\n\t\t\tlet snapshot = \"\";\r\n\t\t\tlet data = $popup.find(\"script[type='application/json']\");\r\n\t\t\tif (data.length > 0) {\r\n\t\t\t\tlet json = data[0].innerHTML;\r\n\t\t\t\tif (json.length > 0) {\r\n\r\n\t\t\t\t\tlet jsonData = JSON.parse(json);\r\n\t\t\t\t\tsnapshot = jsonData.Snapshot;\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tcopy(snapshot, opts);\r\n\r\n\t\t\t$clipboardTitle.prev().removeClass('show');\r\n\t\t\t$clipboardTitle.prev().addClass('show');\r\n\t\t\twindow.setTimeout(() => {\r\n\t\t\t\t$clipboardTitle.prev().removeClass('show');\r\n\t\t\t}, 3500);\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tbindEmailContainerEvents($emailContainer: JQuery) {\r\n\r\n\t\tconst _this = this;\r\n\r\n\t\t// bind email-box floating label\r\n\t\t$emailContainer.find(\".a-input\").on(\"focus\", (ev: any) => {\r\n\t\t\tconst me = ev.currentTarget;\r\n\t\t\tfloatControlLabel(me, true)\r\n\t\t});\r\n\r\n\t\t// bind email box event\r\n\t\t$emailContainer.find(\"input[type=email]\").first().on(\"input propertychange\", function (ev: any) {\r\n\t\t\tconst $target = $(ev.currentTarget);\r\n\t\t\t_this.validateEmailBox($target);\r\n\t\t});\r\n\r\n\t\t// bind add-email event\r\n\t\t$emailContainer.find(`.${classes.emailAdd}`).on(\"click\", (ev: any) => {\r\n\t\t\tconst $emailTemplate = $emailContainer.find(`.${classes.emailTemplate}`);\r\n\r\n\t\t\tconst $emailTemplateHtml = this.generateEmailTemplate($emailTemplate.html());\r\n\r\n\t\t\tconst $addEmailBtn = $(ev.currentTarget);\r\n\r\n\t\t\tvar emailLength = $emailContainer.find(`.${classes.emailGroup}`).length;\r\n\t\t\tif (emailLength > 9) {\r\n\t\t\t\t$addEmailBtn.addClass(classes.addEmailDisabled);\r\n\t\t\t}\r\n\r\n\t\t\t$emailTemplate.before($emailTemplateHtml);\r\n\r\n\t\t\t// bind float event to new created emailbox\r\n\t\t\t$emailTemplate.prev().find(\".a-input\").on(\"focus\", (ev: any) => {\r\n\t\t\t\tconst me = ev.currentTarget;\r\n\t\t\t\tfloatControlLabel(me, true)\r\n\t\t\t});\r\n\r\n\t\t\t// bind remove emailbox event to new created emailbox\r\n\t\t\t$emailTemplate.prev().find(`.${classes.emailRemove}`).on(\"click\", (ev: any) => {\r\n\t\t\t\t$(ev.currentTarget).parent().remove();\r\n\t\t\t\t$addEmailBtn.removeClass(classes.addEmailDisabled);\r\n\t\t\t});\r\n\r\n\t\t\t// bind emailvalidate event to new created emailbox\r\n\t\t\t$emailTemplate.find(\"input[type=email]\").on(\"input propertychange\", function (ev: any) {\r\n\t\t\t\tconst $target = $(ev.currentTarget);\r\n\t\t\t\t_this.validateEmailBox($target);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tbindEmailMessageEvents($textareaContainer: any) {\r\n\r\n\t\tconst _this = this;\r\n\t\tconst favorAction = new FavouritesAction();\r\n\r\n\t\t// bind text area floating label\r\n\t\t$textareaContainer.on(\"focus\", `.${classes.textareaBox}`, (ev: any) => {\r\n\t\t\tconst me = ev.currentTarget;\r\n\t\t\tfloatControlLabel(me, true)\r\n\r\n\t\t\t// remove textarea malicious content validation message\r\n\t\t\tif ($(me).hasClass(classes.inputValidationError)) {\r\n\t\t\t\t$(me).removeClass(classes.inputValidationError);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// bind text area counter\r\n\t\t$textareaContainer.find(`.${classes.textareaBox}`).on(\"input propertychange\", function (ev: any) {\r\n\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\tfavorAction.countTextarea($target);\r\n\t\t})\r\n\t}\r\n\r\n\tgetEmailAddresses($popup: JQuery): string {\r\n\t\tconst $emailGroupEles = $popup.find(`.${classes.emailContainer}`).children(`.${classes.emailGroup}`).find(\"input[type='email']\");\r\n\t\tconst addressArr = new Array();\r\n\t\t$emailGroupEles.each((i: any, e: any) => {\r\n\t\t\tconst value = $(e).val() as string;\r\n\t\t\tif (typeof (value) != \"undefined\") {\r\n\t\t\t\taddressArr.push(value);\r\n\t\t\t}\r\n\t\t});\r\n\t\tconst addressStr = addressArr.join(\";\");\r\n\r\n\t\treturn addressStr;\r\n\r\n\t}\r\n\r\n\t// logic: \r\n\t// 1. first email is required\r\n\t// 2. email addresses are available\r\n\t// 3. email message \r\n\tcanSubmit($popup: JQuery): boolean {\r\n\t\t// validate textbox\r\n\t\tlet emailboxVal = true;\r\n\r\n\t\tconst $emailContainer = $popup.find(`.${classes.emailContainer}`);\r\n\t\tif ($emailContainer.length > 0) {\r\n\t\t\temailboxVal = this.ValidateEmailContainer($emailContainer);\r\n\t\t}\r\n\r\n\t\treturn emailboxVal;\r\n\t}\r\n\r\n\tValidateEmailAddress(email: string): boolean {\r\n\t\tif (email == null || email == undefined || email == '' || email.length == 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tconst re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\t\treturn re.test(String(email).toLowerCase());\r\n\t}\r\n\r\n\tValidateEmailContainer($emailContainer: JQuery) {\r\n\r\n\t\tlet result = true;\r\n\r\n\t\tconst $emailGroupEles = $emailContainer.children(`.${classes.emailGroup}`);\r\n\r\n\t\t$emailGroupEles.each((i: number, e: any) => {\r\n\r\n\t\t\tconst $emailInputBox = $(e).find(\"input[type=email]\");\r\n\r\n\t\t\tconst boxResult = this.validateEmailBox($emailInputBox);\r\n\t\t\tif (!boxResult) {\r\n\t\t\t\tresult = false;\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tvalidateEmailBox($emailBox: any): boolean {\r\n\r\n\t\tconst email = $emailBox.val();\r\n\r\n\t\tlet result = true;\r\n\t\tif ($emailBox.parents(`.${classes.emailGroup}`).hasClass(classes.emailRequired)) {\r\n\r\n\t\t\tif (email == null || email == undefined || email == '' || email.length == 0) {\r\n\t\t\t\t$emailBox.addClass(classes.inputValidationError);\r\n\t\t\t\tresult = false;\r\n\t\t\t} else {\r\n\t\t\t\t$emailBox.removeClass(classes.inputValidationError);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst emailVal = this.ValidateEmailAddress(email);\r\n\r\n\t\tif (emailVal) {\r\n\t\t\t$emailBox.removeClass(classes.inputAvailableError);\r\n\t\t} else {\r\n\t\t\t$emailBox.addClass(classes.inputAvailableError);\r\n\t\t\tresult = false;\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tgetReloadUrl(sharedListId: string): string {\r\n\r\n\t\tlet result = window.location.href;\r\n\r\n\t\tlet currentQuery = window.location.search.substr(1);\r\n\r\n\t\tlet resultArr = new Array();\r\n\t\tconst paramArr = currentQuery.split(\"&\");\r\n\r\n\t\tparamArr.forEach((value: string, index: number, array: string[]) => {\r\n\t\t\tif (value.indexOf(\"sharedsuccess\") < 0) {\r\n\t\t\t\tresultArr.push(value);\r\n\t\t\t}\r\n\t\t});\r\n\t\tresultArr.push(`sharedsuccess=${sharedListId}`);\r\n\r\n\t\tconst query = resultArr.join(\"&\");\r\n\t\tresult = `${window.location.origin}${window.location.pathname}?${query}`;\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { FavouritesAction } from '../../../molecules/favourites-action/js/favourites-action';\r\n\r\nconst classes = {\r\n\tstateLoadingVisible: \"state-loading-wrapper--shown\",\r\n\r\n\taddFavouritesBtn: 'js-add-to-favourites',\r\n\tcheckboxColumn: 'm-table__column-checkbox',\r\n\tloadingIndicator: \"m-favourite-button__loading-wrapper\",\r\n\tdynamicContainer: \"js-m-favourites-sharing-overview-dynamic-container\",\r\n\tcheckbox: 'js-a-input-checkbox__input',\r\n\r\n\ttbody: \"m-table__body\"\r\n};\r\n\r\nconst popupClasses = {\r\n\tpopupBox: \"js-m-modal-actions\",\r\n\ttextareaBox: \"js-m-modal-actions__textarea\"\r\n}\r\n\r\n@createModule('OverviewShareFavourites')\r\n/**\r\n * overview-share-favourites module\r\n */\r\nexport class OverviewShareFavourites extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$loadingIndicator: JQuery;\r\n\t$dynamicContainer: JQuery;\r\n\r\n\tactionViewEndpoint: string;\r\n\tloginViewEndpoint: string;\r\n\r\n\tfavorAction: FavouritesAction;\r\n\r\n\texpired: boolean;\r\n\tcontentType: string;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$loadingIndicator = this.$ctx.find(`.${classes.loadingIndicator}`);\r\n\t\tthis.$dynamicContainer = this.$ctx.find(`.${classes.dynamicContainer}`);\r\n\r\n\t\tthis.actionViewEndpoint = this.$ctx.data(\"action-view-endpoint\");\r\n\t\tthis.loginViewEndpoint = this.$ctx.data(\"login-view-endpoint\");\r\n\r\n\t\tthis.favorAction = new FavouritesAction();\r\n\r\n\t\tthis.expired = this.$ctx.data(\"expired\");\r\n\t\tthis.contentType = this.$ctx.data(\"content-type\");\r\n\r\n\t\tthis.changeSelectAll();\r\n\r\n\t\tthis.$ctx.find(`.${classes.addFavouritesBtn}`).on(\"click\", () => {\r\n\r\n\t\t\tconst $selectedEntries = this.$ctx.find(`.${classes.tbody}`).find(\"input[type=checkbox]:checked\");\r\n\r\n\t\t\tif ($selectedEntries.length > 0) {\r\n\t\t\t\tthis.getActionPartialView();\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tif (this.expired) {\r\n\t\t\tthis.favorAction.track(\"List past timeline\", this.contentType);\r\n\t\t} else {\r\n\t\t\tthis.favorAction.track(\"List within timeline\", this.contentType);\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tgetActionPartialView() {\r\n\t\tthis.showLoadingIndicator();\r\n\r\n\t\tconst ids = this.getSharedEntryIds();\r\n\t\tconst actionType = \"AddSharedEntry\";\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'post',\r\n\t\t\turl: this.actionViewEndpoint,\r\n\t\t\tdataType: 'html',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tactionType: actionType,\r\n\t\t\t\tids: ids\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tif (response.length > 2) {\r\n\r\n\t\t\t\t\tthis.$dynamicContainer.append(response);\r\n\t\t\t\t\tconst $popup = this.$dynamicContainer.children(`.${popupClasses.popupBox}`);\r\n\t\t\t\t\tthis.favorAction.displayPopup($popup);\r\n\t\t\t\t\tthis.favorAction.rebindCommonViewEvents($popup);\r\n\t\t\t\t\tthis.favorAction.bindAddSharedEntrySubmitEvent($popup, this.contentType);\r\n\t\t\t\t}\r\n\r\n\t\t\t},\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tthis.hideLoadingIndicator();\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(`get action-view error, action type: ${actionType}, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetSharedEntryIds() {\r\n\r\n\t\tlet $checkedItems = this.$ctx.find(`.${classes.tbody}`).find(\"input[type=checkbox]:checked\");\r\n\t\tconst idArr = new Array();\r\n\t\t$checkedItems.each((i: any, e: any) => {\r\n\t\t\tconst value = $(e).attr(\"id\");\r\n\t\t\tif (typeof (value) != \"undefined\") {\r\n\t\t\t\tidArr.push(value);\r\n\t\t\t}\r\n\t\t});\r\n\t\tconst ids = idArr.join(\",\");\r\n\r\n\t\treturn ids;\r\n\t}\r\n\r\n\tshowLoadingIndicator() {\r\n\t\tthis.$loadingIndicator.addClass(classes.stateLoadingVisible);\r\n\t}\r\n\r\n\thideLoadingIndicator() {\r\n\t\tthis.$loadingIndicator.removeClass(classes.stateLoadingVisible);\r\n\t}\r\n\r\n\r\n\t//Select All\r\n\tchangeSelectAll() {\r\n\t\tconst $allSubCheckboxes = $('.m-table__body').find('input[type=checkbox]:not(:disabled)');\r\n\t\tvar i = 0;\r\n\t\t$('#SelectAll').on(\"input propertychange\", function (ev: any) {\r\n\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\tif ($target.is(\":checked\")) {\r\n\t\t\t\ti = $allSubCheckboxes.length;\r\n\t\t\t\t$allSubCheckboxes.prop('checked', true);\r\n\t\t\t} else {\r\n\t\t\t\ti = 0;\r\n\t\t\t\t$allSubCheckboxes.prop('checked', false);\r\n\t\t\t}\r\n\t\t});\r\n\t\t$allSubCheckboxes.on(\"input propertychange\", function (ev: any) {\r\n\t\t\tconst $target: any = $(ev.currentTarget);\r\n\t\t\tif ($target.is(\":checked\")) {\r\n\t\t\t\ti++;\r\n\t\t\t\tif (i == $allSubCheckboxes.length) {\r\n\t\t\t\t\t$('#SelectAll').prop('checked', true);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ti--;\r\n\t\t\t\t$('#SelectAll').prop('checked', false);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tareAllSubChecked($checkboxes: JQuery = $('input[type=checkbox]:not(:disabled)', this.$ctx)) {\r\n\t\treturn $checkboxes.toArray().every(this.isElementChecked);\r\n\t}\r\n\r\n\tisElementChecked(element: HTMLInputElement) {\r\n\t\treturn element.checked;\r\n\t}\r\n\r\n\r\n\tstop() { }\r\n\r\n}\r\n","import { createModule, getModuleByDomNode, startNode } from 'terrific-singleton'\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { FilterMultiselect } from '../../../molecules/filter-multiselect/js/filter-multiselect';\r\nimport { FilterTwoLevelMultiselect } from '../../../molecules/filter-two-level-multiselect/js/filter-two-level-multiselect';\r\nimport { FavouriteButton } from '../../../molecules/favourite-button/js/favourite-button';\r\nimport { VideoComponent } from '../../../atoms/video/js/video';\r\nimport * as Cookies from 'js-cookie';\r\n\r\nconst dataAttributes = {\r\n apiEndpointFacetAndList: 'api-endpoint-facetandlist',\r\n apiEndpointList: 'api-endpoint-list',\r\n configuration: 'configuration',\r\n pageid: 'pagid',\r\n filterConfiguration: 'filters',\r\n noResults: 'noresults',\r\n updateUrl: 'update-url',\r\n};\r\n\r\nlet counterForTabs: number = 0;\r\nconst classes = {\r\n container: 'js-teaser-filter-area__container',\r\n counterFooter: 'js-teaser-filter-area__counter-footer',\r\n counterHeading: 'js-teaser-filter-area__counter-heading',\r\n filterClearButton: 'js-teaser-filter-area__clear-filter',\r\n filterOneLevelListSelector: 'm-filter-multiselect__list-level2',\r\n filterOneLevelItemSelector: 'js-m-filter-multiselect__item--level2',\r\n filterTwoLevelFirstLevelListSelector: 'm-filter-two-level-multiselect__list-level2',\r\n filterTwoLevelFirstLevelItemSelector: 'js-m-filter-two-level-multiselect__item--level2',\r\n filterTwoLevelSecondLevelListSelector: 'js-m-filter-two-level-multiselect__list-level3',\r\n filterTwoLevelSecondLevelItemSelector: 'js-m-filter-two-level-multiselect__item--level3',\r\n filterTagsContainer: 'js-teaser-filter-area__filter-tags-container',\r\n loadMoreButton: 'js-load-more-button',\r\n mobileFilterArea: 'js-teaser-filter-area__filter-area',\r\n mobileFilterLabel: 'js-teaser-filter-area__filter-label',\r\n mobileFilterOpen: 'o-teaser-filter-area__filter--open',\r\n mobileFilterClose: 'js-teaser-filter-area__filter--close',\r\n countdown: \"js-m-new-event__countdown-time\",\r\n activeDays: \"state-m-new-event__show-days\",\r\n eventDescription: \"js-m-new-event__description\",\r\n stateBtnActive: \"state-m-favourite-button--active\",\r\n tabsContainer: \"o-teaser-tabs\",\r\n videoEl: 'js-a-video__element',\r\n videoConsentEl: 'js-a-video-consent__element',\r\n videoCaption: 'js-a-video__caption',\r\n videoPlay: 'mi-big-play-cover',\r\n videoLocked: 'js-a-video__locked',\r\n videoGatedPlay: 'js-a-video__gated-play',\r\n videoOpenedBtn: 'js-a-video__opened-btn',\r\n};\r\n\r\ninterface IFilterConfiguration {\r\n id: string;\r\n isTwoLevelFilter: boolean;\r\n backLinkText: string;\r\n sortMode: string;\r\n originalId: string;\r\n}\r\n\r\nlet videoDataGlobalForFilter: any;\r\n\r\ninterface IvideoDataForFilter {\r\n\tplayerId: string;\r\n\tvideoId: string;\r\n\tembedscript: string;\r\n\tflashPath: string;\r\n\tapiUrl: string;\r\n\tconfigType: string;\r\n\ttId: number;\r\n\tusercentricsDpsServiceName: string;\r\n\tmilestonePercentage: number;\r\n\tmktoenvId: string;\r\n}\r\n\r\ninterface IArticleFinderOptions {\r\n apiEndpointFacetAndList: string;\r\n apiEndpointList: string;\r\n configuration: string;\r\n pageid: string;\r\n filters: IFilterConfiguration[];\r\n updateUrl: boolean;\r\n}\r\n\r\ninterface IArticleFinderFilter {\r\n $element: JQuery;\r\n backLinkText: string;\r\n id: string;\r\n sortMode: IArticleFinderFilterSortMode,\r\n twoLevelMultiselect: boolean;\r\n values: IArticleFinderFilterValue[];\r\n originalId: string;\r\n}\r\n\r\nenum IArticleFinderFilterSortMode { None, Label, Value }\r\n\r\ninterface IArticleFinderFilterValue {\r\n checked: boolean;\r\n children: IArticleFinderFilterValue[];\r\n count: number;\r\n disabled: boolean;\r\n humanReadableValue: string;\r\n isPreselected: boolean;\r\n label: string;\r\n value: string;\r\n hideDisableFilters: boolean;\r\n}\r\n\r\n@createModule('TeaserFilterArea')\r\nexport class TeaserFilterArea extends TerrificSpec {\r\n private $ctx: JQuery;\r\n\r\n private currentCount: number = 0;\r\n private hasLoadedMore: boolean = false;\r\n private totalCount: number = 0;\r\n\r\n private filters: IArticleFinderFilter[];\r\n private options: IArticleFinderOptions;\r\n\r\n start(resolve: Function) {\r\n this.$ctx = $(this._ctx);\r\n\r\n this.options = {\r\n apiEndpointFacetAndList: this.$ctx.data(dataAttributes.apiEndpointFacetAndList),\r\n apiEndpointList: this.$ctx.data(dataAttributes.apiEndpointList),\r\n configuration: this.$ctx.data(dataAttributes.configuration),\r\n filters: this.$ctx.data(dataAttributes.filterConfiguration), // Automatically parsed as JSON\r\n updateUrl: this.$ctx.data(dataAttributes.updateUrl), // Automatically parsed as boolean\r\n pageid: this.$ctx.data(dataAttributes.pageid),\r\n };\r\n\r\n // Assign events\r\n this.$ctx.on('click', `.${classes.mobileFilterLabel}`, this.onMobileFiltersOpen.bind(this));\r\n this.$ctx.on('click', `.${classes.mobileFilterClose}`, this.onMobileFiltersClose.bind(this));\r\n this.$ctx.on('FilterMultiCloseButton FilterTwoLevelMultiCloseButton', this.onMobileFiltersClose.bind(this));\r\n this.$ctx.on('FilterMultiCheckboxChanged FilterTwoLevelMultiCheckboxChanged',\r\n (event: any, clickEvent: Event) => { this.facetAndList(false); });\r\n this.$ctx.on('click', `.${classes.loadMoreButton}`, this.loadMore.bind(this));\r\n this.$ctx.on('click', `.${classes.filterClearButton}`, this.clearFilters.bind(this));\r\n\r\n // Initiate\r\n this.filters = this.createFilters();\r\n this.updateLoadMore(false);\r\n this.facetAndList(true);\r\n resolve();\r\n }\r\n\r\n stop() {\r\n }\r\n\r\n private createFilters(): IArticleFinderFilter[] {\r\n let results: IArticleFinderFilter[] = [];\r\n for (let i = 0; i < this.options.filters.length; i++) {\r\n const filter = this.options.filters[i];\r\n const element = document.getElementById(filter.id);\r\n if (element != null) {\r\n let sort = IArticleFinderFilterSortMode.None;\r\n if (filter.sortMode === \"value\") {\r\n sort = IArticleFinderFilterSortMode.Value\r\n } else if (filter.sortMode === \"label\") {\r\n sort = IArticleFinderFilterSortMode.Label\r\n }\r\n results.push({\r\n $element: $(element),\r\n backLinkText: filter.backLinkText,\r\n id: filter.id,\r\n sortMode: sort,\r\n twoLevelMultiselect: filter.isTwoLevelFilter,\r\n values: [],\r\n originalId: filter.originalId,\r\n });\r\n }\r\n }\r\n return results;\r\n }\r\n\r\n private facetAndList(initialRequest: boolean): void {\r\n\r\n let payload: { configuration: string, pageid: string, count?: number, facets: { id: string, values: string[] }[], fromUrl?: boolean, offset: number, initialcall: boolean } = {\r\n configuration: this.options.configuration,\r\n pageid: this.options.pageid,\r\n facets: [],\r\n offset: 0,\r\n initialcall: initialRequest,\r\n };\r\n\r\n if (initialRequest && window.location.search.length > 1) {\r\n let parts = location.search.substr(1).split('&');\r\n for (let i = 0; i < parts.length; i++) {\r\n const keyValue = parts[i].split('=', 2);\r\n if (keyValue.length != 2) continue;\r\n\r\n const key = keyValue[0];\r\n const value = keyValue[1];\r\n //for new events\r\n if (key === \"tab\") {\r\n continue;\r\n }\r\n\r\n if (key === \"show\") {\r\n payload.count = parseInt(value);\r\n payload.fromUrl = true;\r\n } else {\r\n let matches = payload.facets.filter(x => x.id == key);\r\n if (matches && matches.length == 1) {\r\n matches[0].values.push(value);\r\n } else {\r\n payload.facets.push({ id: key, values: [value], });\r\n payload.fromUrl = true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n payload.facets = this.getSelectedFacets();\r\n }\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: this.options.apiEndpointFacetAndList,\r\n dataType: 'html',\r\n data: payload,\r\n }).done((response: string) => {\r\n this.hasLoadedMore = false;\r\n\r\n var container = this.$ctx.find(`.${classes.container}`);\r\n container.html('').append(response);\r\n\r\n // Look for a script tag containing extra data.\r\n const data = container.find(\"script[type='application/json']\");\r\n if (data.length > 0) {\r\n const json = data[0].innerHTML;\r\n const jsonData = JSON.parse(json);\r\n\r\n this.updateCounters(jsonData.count, jsonData.displayed, jsonData.heading, jsonData.footer);\r\n this.updateFacets(jsonData.facets, jsonData.initialcall, jsonData.allowchangingprefiller);\r\n this.updateLoadMore(jsonData.showMore);\r\n this.updateUri(initialRequest);\r\n this.updateFavoriteStatus();\r\n this.onFavoriteButtonClick();\r\n // Remove the script tag.\r\n data.remove();\r\n } else {\r\n counterForTabs = counterForTabs + 1;\r\n var message = this.$ctx.data(dataAttributes.noResults);\r\n $(container)\r\n .closest('.js-o-teaser-tabs__content')\r\n .find(`.js-teaser-filter-area__counter-footer`)\r\n .text(message);\r\n if ($('.o-teaser-tabs').find('.js-o-teaser-tabs__content').length > 1) {\r\n $(container)\r\n .closest('.js-o-teaser-tabs__content')\r\n .hide();\r\n if (counterForTabs == $('.o-teaser-tabs').find('.js-o-teaser-tabs__content').length) {\r\n $('.js-teaser-filter-area__counter-footer')\r\n .closest('.o-teaser-tabs')\r\n .hide();\r\n $('.js-teaser-filter-area__counter-footer')\r\n .closest('.event-container-general-title')\r\n .hide();\r\n }\r\n } else {\r\n //DCJMCP-1673 hide tab if no events instead showing failed to load\r\n $('.js-teaser-filter-area__counter-footer')\r\n .closest('.o-teaser-tabs')\r\n .hide();\r\n $('.js-teaser-filter-area__counter-footer')\r\n .closest('.event-container-general-title')\r\n .hide();\r\n }\r\n }\r\n this.eventDescriptionEllipsis();\r\n this.initCountdown();\r\n this.AssignTeaserVideoComponentEvents();\r\n this.AssignVideoComponentEvents();\r\n }).fail(() => {\r\n // Request failed.\r\n var message = this.$ctx.data(dataAttributes.noResults);\r\n this.$ctx.find(`.${classes.counterFooter}`).text(message);\r\n\r\n });\r\n }\r\n\r\n private loadMore(): void {\r\n var payload = {\r\n configuration: this.options.configuration,\r\n facets: this.getSelectedFacets(),\r\n offset: this.currentCount,\r\n pageid: this.options.pageid,\r\n initialcall: false,\r\n }\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: this.options.apiEndpointList,\r\n dataType: 'html',\r\n data: payload,\r\n }).done((response: string) => {\r\n this.hasLoadedMore = true;\r\n\r\n var container = this.$ctx.find(`.${classes.container}`);\r\n container.append(response);\r\n\r\n // Look for a script tag containing extra data.\r\n const data = container.find(\"script[type='application/json']\");\r\n if (data.length > 0) {\r\n const json = data[0].innerHTML;\r\n const jsonData = JSON.parse(json);\r\n\r\n this.updateCounters(jsonData.count, jsonData.displayed, jsonData.heading, jsonData.footer);\r\n this.updateFacets(jsonData.facets, jsonData.initialcall, jsonData.allowchangingprefiller);\r\n this.updateLoadMore(jsonData.showMore);\r\n this.updateUri(false);\r\n this.updateFavoriteStatus();\r\n this.onFavoriteButtonClick();\r\n // Remove the script tag.\r\n data.remove();\r\n } else {\r\n counterForTabs = counterForTabs + 1;\r\n var message = this.$ctx.data(dataAttributes.noResults);\r\n $(container)\r\n .closest('.js-o-teaser-tabs__content')\r\n .find(`.js-teaser-filter-area__counter-footer`)\r\n .text(message);\r\n if ($('.o-teaser-tabs').find('.js-o-teaser-tabs__content').length > 1) {\r\n $(container)\r\n .closest('.js-o-teaser-tabs__content')\r\n .hide();\r\n if (counterForTabs == $('.o-teaser-tabs').find('.js-o-teaser-tabs__content').length) {\r\n $('.js-teaser-filter-area__counter-footer')\r\n .closest('.o-teaser-tabs')\r\n .hide();\r\n $('.js-teaser-filter-area__counter-footer')\r\n .closest('.event-container-general-title')\r\n .hide();\r\n }\r\n } else {\r\n //DCJMCP-1673 hide tab if no events instead showing failed to load\r\n $('.js-teaser-filter-area__counter-footer')\r\n .closest('.o-teaser-tabs')\r\n .hide();\r\n $('.js-teaser-filter-area__counter-footer')\r\n .closest('.event-container-general-title')\r\n .hide();\r\n }\r\n }\r\n this.eventDescriptionEllipsis();\r\n this.AssignTeaserVideoComponentEvents();\r\n this.AssignVideoComponentEvents();\r\n }).fail(() => {\r\n // Request failed.\r\n var message = this.$ctx.data(dataAttributes.noResults);\r\n this.$ctx.find(`.${classes.counterFooter}`).text(message);\r\n });\r\n }\r\n\r\n private updateCounters(count: number, displayed: number, heading: string, footer: string): void {\r\n this.totalCount = count;\r\n this.currentCount = displayed;\r\n this.$ctx.find(`.${classes.counterHeading}`).text(heading);\r\n this.$ctx.find(`.${classes.counterFooter}`).text(footer);\r\n }\r\n\r\n private updateLoadMore(enabled: boolean): void {\r\n if (enabled) {\r\n this.$ctx.find(`.${classes.loadMoreButton}`).show();\r\n this.$ctx.find(\".o-teaser-filter-area__load-more-bar\").css({ \"border-top\": \"2px solid #e6e6e6\", \"margin-top\": \"20px\" });\r\n }\r\n else {\r\n this.$ctx.find(`.${classes.loadMoreButton}`).hide();\r\n }\r\n }\r\n\r\n private updateFacets(facets: any[], initialcall: boolean, allowchangingprefiller: boolean): void {\r\n if (typeof facets === \"undefined\" || !facets || facets.length === 0) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < facets.length; i++) {\r\n const facet = facets[i];\r\n\r\n let theFilter = this.filters.find(x => x.originalId == facet.id);\r\n if (!theFilter) {\r\n console.warn(`Filter ${facet.id} was not found.`);\r\n continue;\r\n }\r\n\r\n theFilter.values = [];\r\n if (theFilter.twoLevelMultiselect) {\r\n\r\n this.UpdateMultiLevelFacet(facet, theFilter, initialcall, allowchangingprefiller)\r\n }\r\n else {\r\n this.UpdateFacetLevelOne(facet, theFilter, initialcall, allowchangingprefiller);\r\n }\r\n }\r\n\r\n this.updateFilterTags();\r\n this.updateFilterElements();\r\n }\r\n\r\n private updateFilterTags(): void {\r\n const hello = 'o-teaser-filter-area__filter-tags';\r\n\r\n let tags: { value: string, label: string, filter: string }[] = [];\r\n for (let i = 0; i < this.filters.length; i++) {\r\n const filter = this.filters[i];\r\n\r\n if (filter.twoLevelMultiselect) {\r\n filter.values.forEach(x => {\r\n x.children.forEach(y => {\r\n if (y.checked && !y.disabled) tags.push({\r\n filter: filter.id,\r\n value: y.value,\r\n label: y.label,\r\n });\r\n });\r\n });\r\n } else {\r\n filter.values.forEach(x => {\r\n if (x.checked && !x.disabled) tags.push({\r\n filter: filter.id,\r\n value: x.value,\r\n label: x.label,\r\n });\r\n });\r\n }\r\n }\r\n\r\n if (tags.length) {\r\n const tagsContainer = this.$ctx.find(`.${classes.filterTagsContainer}`);\r\n tagsContainer.empty();\r\n\r\n tags.forEach(x => {\r\n var tag = $(`
    \r\n ${x.label}
    `);\r\n tag.on('click', this.onFilterTagClick.bind(this));\r\n tagsContainer.append(tag);\r\n });\r\n\r\n this.$ctx.find(`.${hello}`).show();\r\n } else {\r\n this.$ctx.find(`.${hello}`).hide();\r\n }\r\n }\r\n\r\n private onFilterTagClick(e: Event): void {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n let tag = $(e.currentTarget);\r\n for (let i = 0; i < this.filters.length; i++) {\r\n const filter = this.filters[i];\r\n if (filter.id == tag.data('sc-filter')) {\r\n if (filter.twoLevelMultiselect) {\r\n filter.$element\r\n .find(`.${classes.filterTwoLevelSecondLevelItemSelector}`)\r\n .find(`input[data-sc-id='${tag.data(\"sc-id\")}']`)\r\n .prop('checked', false);\r\n } else {\r\n filter.$element\r\n .find(`input[data-sc-id='${tag.data(\"sc-id\")}']`)\r\n .prop('checked', false);\r\n }\r\n this.facetAndList(false);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n private clearFilters(e: Event): void {\r\n e.preventDefault();\r\n\r\n for (let i = 0; i < this.filters.length; i++) {\r\n this.filters[i].$element.find('input:checked').prop('checked', false);\r\n }\r\n this.facetAndList(false);\r\n }\r\n\r\n private updateFilterElements(): void {\r\n for (let i = 0; i < this.filters.length; i++) {\r\n const filter = this.filters[i];\r\n if (filter.twoLevelMultiselect) {\r\n this.updateFilterElementsWithTwoLevels(filter);\r\n } else {\r\n this.updateFilterElementWithOneLevel(filter);\r\n }\r\n }\r\n }\r\n\r\n private updateFilterElementWithOneLevel(filter: IArticleFinderFilter): void {\r\n const terrificSelector = '[data-t-name=\"FilterMultiselect\"]';\r\n\r\n let newItemsAdded = false;\r\n let container = filter.$element.find(`.${classes.filterOneLevelListSelector}`);\r\n let unhandledItems = container.find(`.${classes.filterOneLevelItemSelector}`);\r\n\r\n for (let j = 0; j < filter.values.length; j++) {\r\n const value = filter.values[j];\r\n\r\n // Try to find existing item in list.\r\n let match = unhandledItems.filter((i, e) => {\r\n return $(e).find('input').data('sc-id') == value.value;\r\n }).first();\r\n\r\n if (match.length > 0) {\r\n unhandledItems = unhandledItems.not(match);\r\n\r\n match.find('input')\r\n .prop('checked', value.checked)\r\n .prop('disabled', value.disabled);\r\n } else {\r\n let match = $(`
  • \r\n
    \r\n \r\n \r\n
    \r\n
  • `);\r\n match.find('input')\r\n .prop('checked', value.checked)\r\n .prop('disabled', value.disabled);\r\n if (value.disabled === false || value.hideDisableFilters === false) {\r\n container.append(match);\r\n newItemsAdded = true;\r\n }\r\n }\r\n }\r\n\r\n // Disable filter values that are no longer recieved.\r\n for (let j = 0; j < unhandledItems.length; j++) {\r\n const unhandledItem = unhandledItems.eq(j);\r\n\r\n unhandledItem.find('input')\r\n .prop('checked', false)\r\n .prop('disabled', true);\r\n }\r\n\r\n // Sort filter values in case new entries were added.\r\n if (newItemsAdded) {\r\n if (filter.sortMode === IArticleFinderFilterSortMode.Label) {\r\n let all = container.find(`.${classes.filterOneLevelItemSelector}`);\r\n let sorted = Array.prototype.sort.apply(all, [(a: HTMLElement, b: HTMLElement) => {\r\n const vA = $('.a-input-checkbox__label', a).text().toLowerCase();\r\n const vB = $('.a-input-checkbox__label', b).text().toLowerCase();\r\n return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;\r\n }]);\r\n container.append(sorted);\r\n } else if (filter.sortMode === IArticleFinderFilterSortMode.Value) {\r\n let all = container.find(`.${classes.filterOneLevelItemSelector}`);\r\n let sorted = Array.prototype.sort.apply(all, [(a: HTMLElement, b: HTMLElement) => {\r\n const vA = $('.a-input-checkbox__input', a).val();\r\n const vB = $('.a-input-checkbox__input', b).val();\r\n return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;\r\n }]);\r\n container.append(sorted);\r\n }\r\n }\r\n\r\n // Execute methods and/or rebind events on the filter-multiselect.\r\n let component = filter.$element.closest(terrificSelector);\r\n if (component.length > 0) {\r\n let filterTwoLevelMultiselect = getModuleByDomNode(component[0]) as FilterMultiselect;\r\n filterTwoLevelMultiselect.setFilterCheckedClass();\r\n }\r\n }\r\n\r\n private updateFilterElementsWithTwoLevels(filter: IArticleFinderFilter): void {\r\n const terrificSelector = '[data-t-name=\"FilterTwoLevelMultiselect\"]';\r\n\r\n let newItemsAdded = false;\r\n const currentYear = new Date().getFullYear().toString();\r\n const levelOneContainer = filter.$element.find(`.${classes.filterTwoLevelFirstLevelListSelector}`);\r\n let unhandledItems = levelOneContainer.find(`.${classes.filterTwoLevelFirstLevelItemSelector}`);\r\n\r\n for (let i = 0; i < filter.values.length; i++) {\r\n const value = filter.values[i];\r\n\r\n // See if we can locate the matching level 1 item.\r\n let match = unhandledItems.filter((i, e) => {\r\n return $(e).find('input').data('sc-id') == value.value;\r\n }).first();\r\n\r\n if (match.length > 0) {\r\n unhandledItems = unhandledItems.not(match);\r\n\r\n match.find('input')\r\n .prop('checked', value.checked)\r\n .prop('disabled', value.disabled);\r\n } else {\r\n match = $(`
  • \r\n \r\n
    \r\n
    \r\n ${filter.backLinkText}\r\n ${value.label}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
      \r\n
      \r\n
    • `);\r\n match.find('input')\r\n .prop('checked', value.checked)\r\n .prop('disabled', value.disabled);\r\n if ((filter.id === \"date_Event Finder Container\" && value.humanReadableValue === currentYear) ||\r\n (filter.id === \"date_Event Finder Container past webinars\" && value.humanReadableValue < currentYear) ||\r\n value.hideDisableFilters === false) {\r\n levelOneContainer.append(match);\r\n newItemsAdded = true;\r\n } else {\r\n continue;\r\n }\r\n }\r\n\r\n let newChildItemsAdded = false;\r\n const levelTwoContainer = match.find(`.${classes.filterTwoLevelSecondLevelListSelector}`);\r\n let unhandledChildItems = levelTwoContainer.find(`.${classes.filterTwoLevelSecondLevelItemSelector}`);\r\n\r\n for (let j = 0; j < value.children.length; j++) {\r\n const childValue = value.children[j];\r\n\r\n let match2 = unhandledChildItems.filter((i, e) => {\r\n return $(e).find('input').data('sc-id') == childValue.value;\r\n }).first();\r\n\r\n if (match2.length > 0) {\r\n unhandledChildItems = unhandledChildItems.not(match2);\r\n\r\n match2.find('input')\r\n .prop('checked', childValue.checked)\r\n .prop('disabled', childValue.disabled);\r\n } else {\r\n let match2 = $(`
    • \r\n
      \r\n \r\n \r\n
      \r\n
    • `);\r\n match2.find('input')\r\n .prop('checked', childValue.checked)\r\n .prop('disabled', childValue.disabled);\r\n if (childValue.disabled === false || childValue.hideDisableFilters === false) {\r\n levelTwoContainer.append(match2);\r\n newChildItemsAdded = true;\r\n }\r\n }\r\n }\r\n\r\n // Disable filter values that are no longer recieved.\r\n for (let j = 0; j < unhandledChildItems.length; j++) {\r\n const unhandledChildItem = unhandledChildItems.eq(j);\r\n unhandledChildItem\r\n .prop('checked', false)\r\n .prop('disabled', true);\r\n }\r\n\r\n // Sort filter values in case new entries were added.\r\n if (newChildItemsAdded) {\r\n if (filter.sortMode === IArticleFinderFilterSortMode.Label) {\r\n let all = levelTwoContainer.find(`.${classes.filterTwoLevelSecondLevelItemSelector}`);\r\n let sorted = Array.prototype.sort.apply(all, [(a: HTMLElement, b: HTMLElement) => {\r\n const vA = $('.a-input-checkbox__label', a).text().toLowerCase();\r\n const vB = $('.a-input-checkbox__label', b).text().toLowerCase();\r\n return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;\r\n }]);\r\n levelTwoContainer.append(sorted);\r\n } else if (filter.sortMode === IArticleFinderFilterSortMode.Value) {\r\n let all = levelTwoContainer.find(`.${classes.filterTwoLevelSecondLevelItemSelector}`);\r\n let sorted = Array.prototype.sort.apply(all, [(a: HTMLElement, b: HTMLElement) => {\r\n const vA = $('.a-input-checkbox__input', a).val();\r\n const vB = $('.a-input-checkbox__input', b).val();\r\n return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;\r\n }]);\r\n levelTwoContainer.append(sorted);\r\n }\r\n }\r\n }\r\n\r\n // Disable filter values that are no longer recieved.\r\n for (let i = 0; i < unhandledItems.length; i++) {\r\n const unhandledItem = unhandledItems.eq(i);\r\n unhandledItem\r\n .prop('checked', false)\r\n .prop('disabled', true);\r\n }\r\n\r\n // Sort filter values in case new entries were added.\r\n if (newItemsAdded) {\r\n if (filter.sortMode === IArticleFinderFilterSortMode.Label) {\r\n let all = levelOneContainer.find(`.${classes.filterTwoLevelFirstLevelItemSelector}`);\r\n let sorted = Array.prototype.sort.apply(all, [(a: HTMLElement, b: HTMLElement) => {\r\n const vA = $('.a-input-checkbox__label', a).text().toLowerCase();\r\n const vB = $('.a-input-checkbox__label', b).text().toLowerCase();\r\n return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;\r\n }]);\r\n levelOneContainer.append(sorted);\r\n } else if (filter.sortMode === IArticleFinderFilterSortMode.Value) {\r\n let all = levelOneContainer.find(`.${classes.filterTwoLevelFirstLevelItemSelector}`);\r\n let sorted = Array.prototype.sort.apply(all, [(a: HTMLElement, b: HTMLElement) => {\r\n const vA = $('.a-input-checkbox__input', a).val();\r\n const vB = $('.a-input-checkbox__input', b).val();\r\n return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;\r\n }]);\r\n levelOneContainer.append(sorted);\r\n }\r\n }\r\n\r\n // Execute methods and/or rebind events on the filter-two-level-multiselect.\r\n let component = filter.$element.closest(terrificSelector);\r\n if (component.length > 0) {\r\n let filterTwoLevelMultiselect = getModuleByDomNode(component[0]) as FilterTwoLevelMultiselect;\r\n filterTwoLevelMultiselect.rebindEvents();\r\n filterTwoLevelMultiselect.setFilterCheckedClass();\r\n filterTwoLevelMultiselect.setFilterDisabledClass();\r\n }\r\n }\r\n\r\n private updateUri(initialRequest: boolean): void {\r\n // Don't update the URL when working in the page editor\r\n if (!this.options.updateUrl) { return; }\r\n\r\n var parts: string[] = [];\r\n\r\n\r\n this.filters.forEach(x => {\r\n x.values.forEach(y => {\r\n if (y.isPreselected) {\r\n parts.push(`${y.value}=${y.humanReadableValue}`);\r\n // Exclude preselected values from being displayed in the query string.\r\n }\r\n\r\n if (x.twoLevelMultiselect) {\r\n // Two level: check the child items.\r\n y.children.forEach(z => {\r\n if (z.checked) {\r\n parts.push(`${x.originalId}=${z.humanReadableValue}`);\r\n\r\n }\r\n });\r\n } else {\r\n // Single level: check these items.\r\n if (y.checked) {\r\n parts.push(`${x.originalId}=${y.humanReadableValue}`);\r\n }\r\n }\r\n });\r\n });\r\n\r\n if (this.hasLoadedMore) {\r\n parts.push(`show=${this.currentCount}`);\r\n }\r\n\r\n //for new events\r\n let urlParts = location.search.substr(1).split('&');\r\n for (let i = 0; i < urlParts.length; i++) {\r\n const keyValue = urlParts[i].split('=', 2);\r\n if (keyValue.length != 2) continue;\r\n\r\n const key = keyValue[0];\r\n const value = keyValue[1];\r\n if (key === \"tab\") {\r\n parts.push(`tab=${value}`);\r\n }\r\n }\r\n\r\n let url = document.location.origin + document.location.pathname;\r\n if (initialRequest) {\r\n url = url + document.location.search;\r\n if (parts.length > 0 && url.includes(\"?\")) {\r\n for (let i = 0; i < parts.length; i++) {\r\n if (url.indexOf(parts[i]) == -1) {\r\n url += '&' + parts[i];\r\n }\r\n }\r\n }\r\n else {\r\n if (parts.length > 0) {\r\n url += \"?\" + parts.join(\"&\");\r\n }\r\n }\r\n }\r\n else {\r\n if (parts.length > 0) url += \"?\" + parts.join(\"&\");\r\n }\r\n\r\n history.replaceState(null, document.title, url);\r\n }\r\n\r\n private getSelectedFacets() {\r\n var results: { id: string, values: string[] }[] = [];\r\n for (let i = 0; i < this.filters.length; i++) {\r\n const filter = this.filters[i];\r\n\r\n if (filter.twoLevelMultiselect) {\r\n let checked = filter.$element.find(`.${classes.filterTwoLevelSecondLevelItemSelector} input:checked`);\r\n if (checked.length) {\r\n var result = {\r\n id: filter.originalId,\r\n values: []\r\n };\r\n for (let j = 0; j < checked.length; j++) {\r\n const value = checked.eq(j).data('sc-id');\r\n // Ensure that the selected values are known, and not preselected.\r\n for (let k = 0; k < filter.values.length; k++) {\r\n const filterValue = filter.values[k];\r\n if (filterValue.children.find(x => x.value == value && !x.isPreselected)) {\r\n result.values.push(value);\r\n break;\r\n }\r\n }\r\n }\r\n if (result.values.length) {\r\n results.push(result);\r\n }\r\n }\r\n } else {\r\n let checked = filter.$element.find('input:checked');\r\n if (checked.length) {\r\n var result = {\r\n id: filter.originalId,\r\n values: []\r\n };\r\n for (let j = 0; j < checked.length; j++) {\r\n const value = checked.eq(j).data('sc-id');\r\n // Ensure that the selected values are known, and not preselected.\r\n if (filter.values.find(x => x.value == value && !x.isPreselected)) {\r\n result.values.push(value);\r\n }\r\n }\r\n if (result.values.length) {\r\n results.push(result);\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n return results;\r\n }\r\n\r\n private onMobileFiltersOpen(e: Event): void {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n this.$ctx\r\n .find(`.${classes.mobileFilterArea}`)\r\n .toggleClass(classes.mobileFilterOpen, true);\r\n }\r\n\r\n private onMobileFiltersClose(e: Event): void {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n this.$ctx\r\n .find(`.${classes.mobileFilterArea}`)\r\n .toggleClass(classes.mobileFilterOpen, false);\r\n }\r\n\r\n\r\n private onFavoriteButtonClick() {\r\n this.$ctx.find(\".m-favourite-button\").off(\"click\").on(\"click\", function (ev: any) {\r\n const $favorBtn = $(ev.currentTarget);\r\n let actionType = \"\";\r\n if ($favorBtn.hasClass(classes.stateBtnActive)) {\r\n actionType = \"RemoveEntry\";\r\n } else {\r\n actionType = \"AddEntry\";\r\n }\r\n var favouriteButton = new FavouriteButton();\r\n favouriteButton.getActionPartialViewForEventList(actionType, ev);\r\n });\r\n }\r\n\r\n private updateFavoriteStatus() {\r\n this.$ctx.find(\".m-favourite-button\").each((i: any, e: any) => {\r\n var favouriteButton = new FavouriteButton();\r\n favouriteButton.updateStatusForEventList(e);\r\n });\r\n }\r\n private initCountdown() {\r\n var me = this;\r\n setInterval(function () {\r\n me.calculator();\r\n }, 1000);\r\n }\r\n\r\n private calculator() {\r\n const $countdown = this.$ctx.find(`.${classes.countdown}`);\r\n $countdown.each((i, e) => {\r\n const totalseconds = parseInt($(e).data('second'));\r\n if (totalseconds > 86400) {\r\n $(e).text(Math.floor(totalseconds / 24 / 3600));\r\n $(e).addClass(classes.activeDays)\r\n } else {\r\n const nextseconds = totalseconds - 1;\r\n const h = Math.floor(nextseconds / 3600) < 10 ? '0' + Math.floor(nextseconds / 3600) : Math.floor(nextseconds / 3600);\r\n const m = Math.floor((nextseconds / 60 % 60)) < 10 ? '0' + Math.floor((nextseconds / 60 % 60)) : Math.floor((nextseconds / 60 % 60));\r\n const s = Math.floor((nextseconds % 60)) < 10 ? '0' + Math.floor((nextseconds % 60)) : Math.floor((nextseconds % 60));\r\n $(e).data('second', nextseconds);\r\n $(e).text(h + \":\" + m + \":\" + s);\r\n }\r\n });\r\n }\r\n\r\n private eventDescriptionEllipsis() {\r\n const $eventDescription = this.$ctx.find(`.${classes.eventDescription}`);\r\n $eventDescription.each((i, e) => {\r\n if ($(e).text().length > 267) {\r\n $(e).text($(e).text().substring(0, 267) + \"...\");\r\n }\r\n });\r\n }\r\n\r\n private UpdateFacetLevelOne(facet: any, filter: IArticleFinderFilter, initialcall: boolean, allowchangingprefiller: boolean): void {\r\n for (let j = 0; j < facet.values.length; j++) {\r\n const value = facet.values[j];\r\n if (initialcall && allowchangingprefiller && value.isPreselected) {\r\n value.disabled = false;\r\n }\r\n\r\n if (!initialcall && value.checked && value.isPreselected) {\r\n value.isPreselected = '';\r\n value.checked = '';\r\n }\r\n filter.values.push({\r\n checked: value.checked,\r\n children: (value.children ? value.children : []),\r\n count: value.count,\r\n disabled: value.disabled,\r\n humanReadableValue: value.humanReadableValue,\r\n isPreselected: value.isPreselected,\r\n label: value.label,\r\n value: value.value,\r\n hideDisableFilters: value.hideDisableFilters\r\n });\r\n }\r\n\r\n }\r\n\r\n private UpdateMultiLevelFacet(facet: any, filter: IArticleFinderFilter, initialcall: boolean, allowchangingprefiller: boolean): void {\r\n for (let j = 0; j < facet.values.length; j++) {\r\n const value = facet.values[j];\r\n if (initialcall && allowchangingprefiller && value.isPreselected) {\r\n value.disabled = false;\r\n }\r\n\r\n if (!initialcall && value.checked && value.isPreselected) {\r\n value.isPreselected = '';\r\n value.checked = '';\r\n }\r\n for (let k = 0; k < value.children.length; k++) {\r\n const childrenValue = value.children[k];\r\n if (initialcall && allowchangingprefiller && childrenValue.isPreselected) {\r\n value.disabled = false;\r\n childrenValue.disabled = false;\r\n }\r\n\r\n }\r\n filter.values.push({\r\n checked: value.checked,\r\n children: (value.children ? value.children : []),\r\n count: value.count,\r\n disabled: value.disabled,\r\n humanReadableValue: value.humanReadableValue,\r\n isPreselected: value.isPreselected,\r\n label: value.label,\r\n value: value.value,\r\n hideDisableFilters: value.hideDisableFilters\r\n });\r\n }\r\n }\r\n\r\n private AssignVideoComponentEvents() {\r\n let videoComponentList = this.$ctx.find(\"div[data-t-name='VideoComponent']\");\r\n if (videoComponentList !== undefined && videoComponentList.length > 0) {\r\n videoComponentList.each((i: any, e: any) => {\r\n if ($(e).length > 0) {\r\n startNode($(e)[0]);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private AssignTeaserVideoComponentEvents() {\r\n let videoTeaserList = this.$ctx.find(\"div[data-t-name='TeaserVideo']\");\r\n if (videoTeaserList !== undefined && videoTeaserList.length > 0) {\r\n videoTeaserList.each((i: any, e: any) => {\r\n if ($(e).length > 0) {\r\n startNode($(e)[0]);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n\ttabItem: 'js-o-home-scrollable-teaser__tab-item',\r\n\ttabItemActive: 'state-o-home-scrollable-teaser__tab-item-active',\r\n\ttabItemLink: 'js-o-home-scrollable-teaser__tab-link',\r\n\tcontentItem: 'o-home-scrollable-teaser__content-item',\r\n\tcontentItemVisible: 'state-o-home-scrollable-teaser__content-item-visible',\r\n\titemList: 'js-m-scrollable-teaser__list'\r\n};\r\n\r\n@createModule('HomeScrollableTeaser')\r\n/**\r\n * home-scrollable-teaser module implementation.\r\n */\r\n\r\nexport class HomeScrollableTeaser extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$tabItem: JQuery;\r\n\t$tabItemLink: JQuery;\r\n\t$contentItem: JQuery;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.$tabItem = $(`.${classes.tabItem}`, this.$ctx);\r\n\t\tthis.$tabItemLink = $(`.${classes.tabItemLink}`, this.$ctx);\r\n\t\tthis.$contentItem = $(`.${classes.contentItem}`, this.$ctx);\r\n\r\n\t\tthis.initTab();\r\n\t\tthis.$tabItemLink.on('click', this.onSwichTab.bind(this));\r\n\t\tthis.onDownLoadCalendar();\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitTab() {\r\n\t\tthis.$tabItem.first().addClass(classes.tabItemActive);\r\n\t\tthis.$contentItem.first().addClass(classes.contentItemVisible);\r\n\t}\r\n\r\n\tonSwichTab(ev: any) {\r\n\t\t$(ev.currentTarget).parent().addClass(classes.tabItemActive);\r\n\t\t$(ev.currentTarget).parent().siblings().removeClass(classes.tabItemActive);\r\n\t\tthis.$contentItem.removeClass(classes.contentItemVisible);\r\n\r\n\t\tlet tabItemIndex = $(ev.currentTarget).parent().index();\r\n\t\tthis.$contentItem.eq(tabItemIndex).addClass(classes.contentItemVisible);\r\n let currentContentItemWidth = this.$contentItem.eq(tabItemIndex).find(`.${classes.itemList}`).width();\r\n\r\n\t\tif (this.$contentItem.eq(tabItemIndex).width() >= currentContentItemWidth) {\r\n this.$contentItem.eq(tabItemIndex).addClass('m-scrollable-teaser--disabled-silder');\r\n }\r\n\t}\r\n\r\n\tprivate onDownLoadCalendar()\r\n {\r\n $(document).off(\"click\").on(\"click\",\".js-a-download\", function () {\r\n\t\t\tvar calendarResult = $(this).attr(\"data-calendarresult\");\r\n\t\t\tif (calendarResult != undefined) {\r\n\t\t\t\tif (calendarResult.length > 0) {\r\n\r\n\t\t\t\t\twindow.open( \"data:text/calendar;charset=utf8,\" +calendarResult);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"calendarResult: calendarResult is empty\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log(\"calendarResult: calendarResult is undefined\");\r\n\t\t\t}\r\n\r\n\t\t});\r\n }\r\n\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { formatLabel } from '@project/shared/utils/labels/js/labels';\r\nimport 'select2';\r\n\r\nconst classes = {\r\n\tfilterBtn: \"o-sds-search__apply-button\",\r\n\tclearBtn: \"o-sds-search__clear-button\",\r\n\tloadMoreBtn: \"o-sds-search__load-more-button\",\r\n\tloadMoreBar: \"js-load-more-bar\",\r\n\tmaterialNumber: \"js-o-sds-search_material-number\",\r\n\tproductName: \"js-o-sds-search_product-name\",\r\n\tcountry: \"js-o-sds-search_country\",\r\n\tlanguage: \"js-o-sds-search_language\",\r\n\r\n\ttbody: \"js-m-table__body\",\r\n\ttRow: \"js-o-sds-search__result-item\",\r\n\tresultContent: \"js-result-content\",\r\n\tnoResultContent: \"js-no-result-content\",\r\n\r\n\tstateLoadMoreHide: \"state-o-sds-search__load-more--hidden\",\r\n\tstateResultContentHide: \"state-o-sds-search__result-content--hidden\",\r\n\tstateErrorMsgHide: \"o-sds-search__error-hidden\",\r\n\tstateLoadingIndicatorHide: \"state-o-sds-search__loading--hidden\",\r\n\tstateResultItemHide: \"state-o-sds-search__result-item--hidden\",\r\n\r\n\ttopMessage: \"js-o-sds-search__top-message\",\r\n\tbottomMessage: \"js-o-sds-search__bottom-message\",\r\n\r\n\tmaterialNumberTHeader: \"js-materialnumber-header\",\r\n\tproductNameTHeader: \"js-productname-header\",\r\n\tdateTHeader: \"js-date-header\",\r\n\tlanguageTHeader: \"js-language-header\",\r\n\tlinkTHeader: \"js-link-header\",\r\n\r\n\terrorContainer: \"validation-summary-errors\",\r\n\tnameNumberError: \"js-error-number-name\",\r\n\teithernameNumberError: \"js-error-either-number-name\",\r\n\tlanguageError: \"js-error-language\",\r\n\tareError: \"js-error-area\",\r\n\r\n\tcontentLoading: \"js-content-loading\",\r\n\tloadMoreLoading: \"js-loadmore-loading\",\r\n\r\n\tloadModalOverlay: \"m-modal-overlay\",\r\n\tloadModalOverlayVisible: \"state-m-modal-overlay--visible\"\r\n}\r\n\r\n@createModule('SafetyDataSheetSearch')\r\nexport class SafetyDataSheetSearch extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\r\n\tpageSize: number;\r\n\ttopResultMsg: string;\r\n\tbottomResultMsg: string;\r\n\turl: string;\r\n\turlLanAndCountry: string;\r\n\r\n\tmaterialNumberTHeader: string;\r\n\tproductNameTHeader: string;\r\n\tdateTHeader: string;\r\n\tlanguageTHeader: string;\r\n\tlinkTHeader: string;\r\n\tlanguageInnerHtml: any;\r\n\tresultResponse: any;\r\n\tlangScript: any;\r\n\r\n\ttableBodyEle: JQuery;\r\n\ttableRowEle: JQuery;\r\n\tresultContentEle: JQuery;\r\n\tnoResultContentEle: JQuery;\r\n\ttopResultMsgEle: JQuery;\r\n\tbottomResultMsgEle: JQuery;\r\n\r\n\tmaterialNumberInputEle: JQuery;\r\n\tproductNameInputEle: JQuery;\r\n\tlanguageSelectEle: JQuery;\r\n\tcountrySelectEle: JQuery;\r\n\r\n\terrorContainerEle: JQuery;\r\n\r\n\tapplyBtnEle: JQuery;\r\n\tclearBtnEle: JQuery;\r\n\tloadMoreBtnEle: JQuery;\r\n\tloadModalOverlayEle: JQuery;\r\n\r\n\tcontentLoadingEle: JQuery;\r\n\tloadMoreLoadingEle: JQuery;\r\n\tSearchDigit: any;\r\n\tSearchName: any;\r\n\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\t\r\n\t\tthis.pageSize = this.$ctx.data(\"page-size\");\r\n\t\tthis.topResultMsg = this.$ctx.data(\"top-message\");\r\n\t\tthis.bottomResultMsg = this.$ctx.data(\"bottom-message\");\r\n\t\tthis.url = \"/api/uwsi/getsdslist\";\r\n\t\tthis.urlLanAndCountry = \"/api/uwsi/getsdslangandcountrylist\";\r\n\r\n\t\tthis.materialNumberTHeader = this.$ctx.find(`.${classes.materialNumberTHeader}`).text();\r\n\t\tthis.productNameTHeader = this.$ctx.find(`.${classes.productNameTHeader}`).text();\r\n\t\tthis.dateTHeader = this.$ctx.find(`.${classes.dateTHeader}`).text();\r\n\t\tthis.languageTHeader = this.$ctx.find(`.${classes.languageTHeader}`).text();\r\n\t\tthis.linkTHeader = this.$ctx.find(`.${classes.linkTHeader}`).text();\r\n\r\n\t\tthis.tableBodyEle = this.$ctx.find(`.${classes.tbody}`);\r\n\t\tthis.tableRowEle = this.$ctx.find(`.${classes.tRow}`);\r\n\t\tthis.resultContentEle = this.$ctx.find(`.${classes.resultContent}`);\r\n\t\tthis.noResultContentEle = this.$ctx.find(`.${classes.noResultContent}`);\r\n\r\n\t\tthis.topResultMsgEle = this.$ctx.find(`.${classes.topMessage}`);\r\n\t\tthis.bottomResultMsgEle = this.$ctx.find(`.${classes.bottomMessage}`);\r\n\r\n\t\tthis.materialNumberInputEle = this.$ctx.find(`.${classes.materialNumber}`);\r\n\t\tthis.productNameInputEle = this.$ctx.find(`.${classes.productName}`);\r\n\r\n\t\tthis.languageSelectEle = this.$ctx.find(`.${classes.language}`);\r\n\t\tthis.countrySelectEle = this.$ctx.find(`.${classes.country}`);\r\n\r\n\t\tthis.errorContainerEle = this.$ctx.find(`.${classes.errorContainer}`);\r\n\r\n\t\tthis.applyBtnEle = this.$ctx.find(`.${classes.filterBtn}`);\r\n\t\tthis.clearBtnEle = this.$ctx.find(`.${classes.clearBtn}`);\r\n\t\tthis.loadMoreBtnEle = this.$ctx.find(`.${classes.loadMoreBtn}`);\r\n\r\n\t\tthis.contentLoadingEle = this.$ctx.find(`.${classes.contentLoading}`);\r\n\t\tthis.loadMoreLoadingEle = this.$ctx.find(`.${classes.loadMoreLoading}`);\r\n\t\tthis.loadModalOverlayEle = $(`.${classes.loadModalOverlay}`);\r\n\r\n\t\tconst handleKeyDown = (event: JQuery.Event) => {\r\n\t\t\tconst inputValue = $(event.target).val().toString();\r\n\t\t\tif (event.key === \"Enter\" && inputValue.length > 0) {\r\n\t\t\t\tthis.applyFilter();\r\n\t\t\t\tthis.getProductorMaterialData();\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\t$(this.productNameInputEle).on(\"keydown\", handleKeyDown);\r\n\t\t$(this.materialNumberInputEle).on(\"keydown\", handleKeyDown);\t\t\r\n\r\n\t\tlet preventBlurone = false;\r\n\t\tthis.applyBtnEle.on('mousedown', function () {\r\n\t\t\tpreventBlurone = true;\r\n\t\t});\r\n\r\n\t\tthis.applyBtnEle.on(\"click\", () => {\r\n\t\t\tthis.applyFilter();\r\n\t\t});\r\n\t\tthis.clearBtnEle.on(\"click\", this.clear.bind(this));\r\n\t\tthis.loadMoreBtnEle.on(\"click\", this.loadMore.bind(this));\r\n\r\n\t\tthis.countrySelectEle.on(\"change\", this.getLanguagebyCountry.bind(this));\r\n\t\tthis.productNameInputEle.on('blur', () => {\r\n\t\t\tif (preventBlurone) {\r\n\t\t\t\tpreventBlurone = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.checkInputHasValue();\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.materialNumberInputEle.on('blur', () => {\r\n\t\t\tif (preventBlurone) {\r\n\t\t\t\tpreventBlurone = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.checkInputHasValue();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$(window).on(\"load\", () => {\r\n\t\t\t$('.js-o-sds-search_language').prop(\"disabled\", true);\r\n\t\t\t$('.js-o-sds-search_country').prop(\"disabled\", true);\r\n\t\t});\r\n\r\n\t\tvar sPageURL = window.location.search.substring(1),\r\n\t\t\tsURLVariables = sPageURL.split('&'),\r\n\t\t\tsParameterName: string[],\r\n\t\t\ti: number;\r\n\t\tfor (i = 0; i < sURLVariables.length; i++) {\r\n\t\t\tsParameterName = sURLVariables[i].split('=');\r\n\t\t\tif (sParameterName[0] === 'SearchDigit') {\r\n\t\t\t\tsParameterName[1] === undefined ? true : $(\".js-o-sds-search_material-number\").val(decodeURIComponent(sParameterName[1]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar sPageURL = window.location.search.substring(1),\r\n\t\t\tsURLVariables = sPageURL.split('&'),\r\n\t\t\tsParameterName1: string[],\r\n\t\t\ti: number;\r\n\t\tfor (i = 0; i < sURLVariables.length; i++) {\r\n\t\t\tsParameterName1 = sURLVariables[i].split('=');\r\n\t\t\tif (sParameterName1[0] === 'SearchName') {\r\n\t\t\t\tsParameterName1[1] === undefined ? true : $(\".js-o-sds-search_product-name\").val(decodeURIComponent(sParameterName1[1]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$(classes.filterBtn).trigger(\"click\");\r\n\t\tthis.langScript = document.createElement(\"script\");\r\n\t\tthis.langScript.type = \"application/json\";\r\n\r\n\t\tresolve();\r\n\r\n\t}\r\n\r\n\tgetlanguageJsonData() {\r\n\t\tthis.languageInnerHtml = this.$ctx.find(\"script[type='application/json']\");\r\n\t\tconst json = this.languageInnerHtml[0].innerHTML;\r\n\t\tconst jsonData = JSON.parse(json);\r\n\t\treturn jsonData;\r\n\t}\r\n\r\n\tgetUrlParameter(sParam: any) {\r\n\t\tvar sPageURL = window.location.search.substring(1),\r\n\t\t\tsURLVariables = sPageURL.split('&'),\r\n\t\t\tsParameterName: string[],\r\n\t\t\ti: number;\r\n\r\n\t\tfor (i = 0; i < sURLVariables.length; i++) {\r\n\t\t\tsParameterName = sURLVariables[i].split('=');\r\n\r\n\t\t\tif (sParameterName[0] === sParam) {\r\n\t\t\t\treturn sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\tapplyFilter() {\r\n\t\tthis.clearResults();\r\n\t\tif (this.validate()) {\r\n\t\t\tthis.showContentLoading();\r\n\t\t\tthis.getData();\r\n\t\t}\r\n\t}\r\n\r\n\tcheckInputHasValue() {\r\n\t\tthis.cleardropdown();\r\n\t\tif (this.validate()) {\r\n\t\t\tthis.getProductorMaterialData();\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tgetProductorMaterialData() {\r\n\t\tlet productNumber = $.trim(this.materialNumberInputEle.val().toString());\r\n\t\tlet productName = $.trim(this.productNameInputEle.val().toString());\r\n\t\tthis.showContentLoading();\r\n\t\tthis.lockButtons();\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\turl: this.urlLanAndCountry,\r\n\t\t\tdataType: 'json',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tproductNumber: productNumber,\r\n\t\t\t\tproductName: productName,\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tif (response) {\r\n\t\t\t\t\t$('.js-o-sds-search_language').prop(\"disabled\", true);\r\n\t\t\t\t\t$('.js-o-sds-search_country').prop(\"disabled\", false);\r\n\t\t\t\t\tlet jsonresponse = JSON.stringify(response.sdsSheet);\r\n\t\t\t\t\tconst container = this.$ctx.find(\"body\");\r\n\t\t\t\t\tconst data = container.find(\"script[type='application/json']\");\r\n\t\t\t\t\tif (data != null && jsonresponse != null && this.langScript.type.length > 0) {\r\n\t\t\t\t\t\tthis.langScript.innerHTML = jsonresponse;\r\n\t\t\t\t\t\tthis.$ctx.append(this.langScript);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet resultsCountry = response.sdsCountry;\r\n\t\t\t\t\tlet elcountry = $('.js-o-sds-search_country') as any;\r\n\t\t\t\t\tvar countryList = $(\"option\", elcountry);\r\n\t\t\t\t\tif (resultsCountry.length > 0) {\r\n\t\t\t\t\t\t$.each(countryList, function (countryidx, countryitem: any) {\r\n\t\t\t\t\t\t\tif (countryidx !== 0 && $.trim(countryitem.value) !== \"\") {\r\n\t\t\t\t\t\t\t\tvar itemIndex = resultsCountry.indexOf($.trim(countryitem.value));\r\n\t\t\t\t\t\t\t\tif (itemIndex === -1) {\r\n\t\t\t\t\t\t\t\t\tcountryitem.disabled = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tcountryitem.disabled = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.unlockButtons();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t$.each(countryList, function (countryidx, countryitem: any) {\r\n\t\t\t\t\t\t\tif (countryidx !== 0 && $.trim(countryitem.value) !== \"\") {\r\n\t\t\t\t\t\t\t\tcountryitem.disabled = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.lockButtons();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar countrySearch = elcountry.attr('data-search') ? 0 : -1;\r\n\t\t\t\t\telcountry.select2({\r\n\t\t\t\t\t\tminimumResultsForSearch: countrySearch,\r\n\t\t\t\t\t\twidth: '100%'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tthis.hideContentLoading();\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(`get sds data errror, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\tthis.hideContentLoading();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetLanguagebyCountry() {\r\n\t\tthis.resultResponse = this.getlanguageJsonData();\r\n\t\tif (this.resultResponse != null) {\r\n\t\t\t$('.js-o-sds-search_language').prop(\"disabled\", false);\r\n\t\t\tlet selectedCountry = $('.js-o-sds-search_country').val();\r\n\t\t\tlet sdsLanguageBasedOnCountry: Array = [];\r\n\t\t\t$.each(this.resultResponse, function (langidx: any, sdsElement: any) {\r\n\t\t\t\tif (sdsElement.country == selectedCountry) {\r\n\t\t\t\t\tsdsLanguageBasedOnCountry.push(sdsElement.language);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tlet ellanguage = $('.js-o-sds-search_language') as any;\r\n\t\t\tvar languageList = $(\"option\", ellanguage);\r\n\t\t\tif (sdsLanguageBasedOnCountry.length > 0) {\r\n\t\t\t\t$.each(languageList, function (langidx: any, langItem: any) {\r\n\t\t\t\t\tif (langidx !== 0 && $.trim(langItem.value) !== \"\") {\r\n\t\t\t\t\t\tvar itemIndex = sdsLanguageBasedOnCountry.indexOf($.trim(langItem.value));\r\n\t\t\t\t\t\tif (itemIndex === -1) {\r\n\t\t\t\t\t\t\tlangItem.disabled = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tlangItem.disabled = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$.each(languageList, function (langidx, langItem: any) {\r\n\t\t\t\t\tif (langidx !== 0 && $.trim(langItem.value) !== \"\") {\r\n\t\t\t\t\t\tlangItem.disabled = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvar langSearch = ellanguage.attr('data-search') ? 0 : -1;\r\n\t\t\tellanguage.select2({\r\n\t\t\t\tminimumResultsForSearch: langSearch,\r\n\t\t\t\twidth: '100%'\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\tcleardropdown() {\r\n\t\t// reset language dropdown\r\n\t\tthis.languageSelectEle.find(\"option[value='']\").prop(\"selected\", true);\r\n\t\tlet lngDefaultText = this.languageSelectEle.find(\"option[value='']\").text();\r\n\t\tlet lngRenderEle = this.languageSelectEle.next(\".select2\").find(\".select2-selection__rendered\");\r\n\t\tlngRenderEle.text(lngDefaultText);\r\n\t\tlngRenderEle.attr(\"title\", lngDefaultText);\r\n\r\n\t\t// reset area dropdown\r\n\t\tthis.countrySelectEle.find(\"option[value='']\").prop(\"selected\", true);\r\n\t\tlet coDefaultText = this.countrySelectEle.find(\"option[value='']\").text();\r\n\t\tlet coRenderEle = this.countrySelectEle.next(\".select2\").find(\".select2-selection__rendered\");\r\n\t\tcoRenderEle.text(coDefaultText);\r\n\t\tcoRenderEle.attr(\"title\", coDefaultText);\r\n\t}\r\n\tclear() {\r\n\t\tthis.clearFilters();\r\n\t\tthis.clearResults();\r\n\t\tvar newurl = window.location.protocol + \"//\" + window.location.host + window.location.pathname;\r\n\t\twindow.history.pushState({ path: newurl }, '', newurl);\r\n\t}\r\n\r\n\tloadMore() {\r\n\t\tthis.setStaticPaging();\r\n\t\tthis.updateResultMessage();\r\n\t}\r\n\r\n\tclearResults() {\r\n\t\tthis.tableBodyEle.empty();\r\n\t\tthis.topResultMsgEle.empty();\r\n\t\tthis.bottomResultMsgEle.empty();\r\n\r\n\t\tthis.resultContentEle.addClass(classes.stateResultContentHide);\r\n\t\tthis.noResultContentEle.addClass(classes.stateResultContentHide);\r\n\t}\r\n\r\n\tclearFilters() {\r\n\t\tthis.productNameInputEle.val(\"\");\r\n\t\tthis.materialNumberInputEle.val(\"\");\r\n\r\n\t\t// reset language dropdown\r\n\t\tthis.languageSelectEle.find(\"option[value='']\").prop(\"selected\", true);\r\n\t\tlet lngDefaultText = this.languageSelectEle.find(\"option[value='']\").text();\r\n\t\tlet lngRenderEle = this.languageSelectEle.next(\".select2\").find(\".select2-selection__rendered\");\r\n\t\tlngRenderEle.text(lngDefaultText);\r\n\t\tlngRenderEle.attr(\"title\", lngDefaultText);\r\n\r\n\t\t// reset area dropdown\r\n\t\tthis.countrySelectEle.find(\"option[value='']\").prop(\"selected\", true);\r\n\t\tlet coDefaultText = this.countrySelectEle.find(\"option[value='']\").text();\r\n\t\tlet coRenderEle = this.countrySelectEle.next(\".select2\").find(\".select2-selection__rendered\");\r\n\t\tcoRenderEle.text(coDefaultText);\r\n\t\tcoRenderEle.attr(\"title\", coDefaultText);\r\n\t}\r\n\r\n\tgetData() {\r\n\t\tlet productNumber = $.trim(this.materialNumberInputEle.val().toString());\r\n\t\tlet productName = $.trim(this.productNameInputEle.val().toString());\r\n\t\tlet language = this.languageSelectEle.find(\"option:selected\").val();\r\n\t\tlet country = this.countrySelectEle.find(\"option:selected\").val();\r\n\t\tthis.lockButtons();\r\n\t\tthis.showContentLoading();\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\turl: this.url,\r\n\t\t\tdataType: 'json',\r\n\t\t\tdata:\r\n\t\t\t{\r\n\t\t\t\tproductNumber: productNumber,\r\n\t\t\t\tproductName: productName,\r\n\t\t\t\tlanguage: language,\r\n\t\t\t\tcountry: country,\r\n\t\t\t},\r\n\t\t\tsuccess: (response: any) => {\r\n\t\t\t\tif (response) {\r\n\t\t\t\t\tif (response.total > 0) {\r\n\t\t\t\t\t\tthis.updateResultContentState(true);\r\n\t\t\t\t\t\tlet results = response.results;\r\n\t\t\t\t\t\tif (results) {\r\n\t\t\t\t\t\t\tthis.renderResultDataOnPage(results);\r\n\t\t\t\t\t\t\tthis.setStaticPaging();\r\n\t\t\t\t\t\t\tthis.updateResultMessage();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.updateResultContentState(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.updateResultContentState(false);\r\n\t\t\t\t}\r\n\t\t\t\tthis.unlockButtons();\r\n\t\t\t\tthis.hideContentLoading();\r\n\t\t\t},\r\n\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\tconsole.log(`get sds data errror, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\tthis.unlockButtons();\r\n\t\t\t\tthis.hideContentLoading();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\trenderResultDataOnPage(results: any) {\r\n\t\tresults.forEach((r: any) => {\r\n\r\n\t\t\tlet materialNumber = r.productNumber;\r\n\t\t\tlet productName = r.productName;\r\n\t\t\tlet date = r.date;\r\n\t\t\tlet lng = r.languageAndCountry;\r\n\t\t\tlet link = r.link;\r\n\r\n\t\t\tlet htmlContent = this.generateHtmlData(materialNumber, productName, date, lng, link);\r\n\t\t\tthis.tableBodyEle.append(htmlContent);\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tgenerateHtmlData(materialNumber: string, productName: string, date: string, LngAndArea: string, link: string) {\r\n\t\tvar htmlContent =\r\n\t\t\t`\r\n ${materialNumber}\r\n ${productName}\r\n ${date}\r\n ${LngAndArea}\r\n
      \r\n `\r\n\t\treturn htmlContent;\r\n\t}\r\n\r\n\tupdateResultMessage() {\r\n\t\tlet currentCount = this.$ctx.find(`.${classes.tRow}:not(.${classes.stateResultItemHide})`).length;\r\n\t\tlet total = this.$ctx.find(`.${classes.tRow}`).length;\r\n\r\n\t\tlet topMessage = formatLabel(this.topResultMsg, total);\r\n\t\tlet bottomMessage = formatLabel(this.bottomResultMsg, currentCount, total);\r\n\r\n\t\tthis.topResultMsgEle.html(topMessage);\r\n\t\tthis.bottomResultMsgEle.html(bottomMessage);\r\n\r\n\t\tif (currentCount >= total) {\r\n\t\t\tthis.$ctx.find(`.${classes.loadMoreBar}`).addClass(classes.stateLoadMoreHide);\r\n\t\t} else {\r\n\t\t\tthis.$ctx.find(`.${classes.loadMoreBar}`).removeClass(classes.stateLoadMoreHide);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tsetStaticPaging() {\r\n\t\tthis.$ctx.find(`.${classes.stateResultItemHide}:lt(${this.pageSize})`).removeClass(classes.stateResultItemHide);\r\n\t}\r\n\r\n\tvalidate(): boolean {\r\n\t\tvar result = true;\r\n\t\tlet number = $.trim(this.materialNumberInputEle.val().toString());\r\n\t\tlet name = $.trim(this.productNameInputEle.val().toString());\r\n\t\tlet lng = this.languageSelectEle.find(\"option:selected\").val();\r\n\t\tlet country = this.countrySelectEle.find(\"option:selected\").val();\r\n\r\n\t\tvar newurl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + '?SearchDigit=' + number + '&SearchName=' + name + '&SelectedLanguage=' + lng + '&SelectedCountry=' + country;\r\n\t\twindow.history.pushState({ path: newurl }, '', newurl);\r\n\r\n\t\tif (number === \"\" && name === \"\") {\r\n\t\t\tthis.errorContainerEle.find(`.${classes.nameNumberError}`).removeClass(classes.stateErrorMsgHide);\r\n\t\t\tthis.materialNumberInputEle.css('border', '1px solid red');\r\n\t\t\tthis.productNameInputEle.css('border', '1px solid red');\r\n\t\t\tresult = false;\r\n\t\t} else {\r\n\t\t\tif (number !== \"\" && name !== \"\") {\r\n\t\t\t\tthis.errorContainerEle.find(`.${classes.eithernameNumberError}`).removeClass(classes.stateErrorMsgHide);\r\n\t\t\t\tthis.materialNumberInputEle.css('border', '1px solid red');\r\n\t\t\t\tthis.productNameInputEle.css('border', '1px solid red');\r\n\t\t\t\tresult = false;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.materialNumberInputEle.css('border', '');\r\n\t\t\t\tthis.productNameInputEle.css('border', '');\r\n\t\t\t\tthis.errorContainerEle.find(`.${classes.nameNumberError}`).addClass(classes.stateErrorMsgHide);\r\n\t\t\t\tthis.errorContainerEle.find(`.${classes.eithernameNumberError}`).addClass(classes.stateErrorMsgHide);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// update error messages contianer\r\n\t\tlet totalErrors = this.errorContainerEle.find(\"li\").length;\r\n\t\tlet activeErrors = this.errorContainerEle.find(`li.${classes.stateErrorMsgHide}`).length;\r\n\t\tif (totalErrors == activeErrors) {\r\n\t\t\tthis.errorContainerEle.addClass(classes.stateErrorMsgHide);\r\n\t\t} else {\r\n\r\n\t\t\tthis.errorContainerEle.removeClass(classes.stateErrorMsgHide);\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\r\n\tupdateResultContentState(anyResult: boolean) {\r\n\t\tif (anyResult) {\r\n\t\t\tthis.noResultContentEle.addClass(classes.stateResultContentHide);\r\n\t\t\tthis.resultContentEle.removeClass(classes.stateResultContentHide);\r\n\t\t} else {\r\n\t\t\tthis.noResultContentEle.removeClass(classes.stateResultContentHide);\r\n\t\t\tthis.resultContentEle.addClass(classes.stateResultContentHide);\r\n\t\t}\r\n\t}\r\n\r\n\t// lock \"apply filter\", \"clear\", \"load more\" button before ajax returns\r\n\tlockButtons() {\r\n\t\tthis.applyBtnEle.attr(\"disabled\", \"disabled\");\r\n\t\tthis.clearBtnEle.attr(\"disabled\", \"disabled\");\r\n\t\tthis.loadMoreBtnEle.attr(\"disabled\", \"disabled\");\r\n\t}\r\n\r\n\tunlockButtons() {\r\n\t\tthis.applyBtnEle.removeAttr(\"disabled\");\r\n\t\tthis.clearBtnEle.removeAttr(\"disabled\");\r\n\t\tthis.loadMoreBtnEle.removeAttr(\"disabled\");\r\n\t}\r\n\r\n\tshowContentLoading() {\r\n\t\tthis.contentLoadingEle.removeClass(classes.stateLoadingIndicatorHide);\r\n\t\tdocument.getElementsByClassName(\"m-modal-overlay\")[0].classList.add(\"state-m-modal-overlay--visible\")\r\n\t}\r\n\r\n\thideContentLoading() {\r\n\t\tthis.contentLoadingEle.addClass(classes.stateLoadingIndicatorHide);\r\n\t\tdocument.getElementsByClassName(\"m-modal-overlay\")[0].classList.remove(\"state-m-modal-overlay--visible\");\r\n\t}\r\n\r\n\tshowLoadMoreLoading() {\r\n\t\tthis.loadMoreLoadingEle.removeClass(classes.stateLoadingIndicatorHide);\r\n\t}\r\n\r\n\thideLoadMoreLoading() {\r\n\t\tthis.loadMoreLoadingEle.addClass(classes.stateLoadingIndicatorHide);\r\n\t}\r\n\r\n\tstop() { }\r\n\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { scrollToElement } from '@project/shared/utils/scroll-to/js/scroll-to';\r\n\r\nimport 'select2'; // globally assign select2 fn to $ element\r\n\r\nconst classes = {\r\n\r\n\tsubmitForm: 'js-form__button-event--submit',\r\n\tcancelForm: 'js-form__button-event--cancel',\r\n\tfocusElement: 'js-form__event-show-additional-fields',\r\n\tadditionalFields: 'js-form__additional-fields',\r\n\tstateFormOrderAdditionalFieldsVisible: 'state-m-stage-keyvisual-search--show-additional-fields',\r\n\tstateFormOrderHiddenAfterSubmit: 'state-m-stage-keyvisual-search--hidden-after-submit',\r\n\tinputSelect: 'js-form__input-select',\r\n\tinput: 'js-form__input',\r\n\tinputCheckBox: 'a-input-checkbox__input',\r\n\tinquiryTypeInputSelect: \"js-form__input-inquiry-type\",\r\n\tsdsLinkColumn: \"js-o-form__grid-col-sds-link\",\r\n\tinquiryTextboxColumn: \"js-o-form__grid-col-inquiry-textbox\",\r\n\r\n\tinputSelectCategoryType: \"js-form__input-category-type\",\r\n\tinputSelectCheckMark: 'a-input-select--global-has-check',\r\n\tcategoryInputContainer: \"o-form__grid-col--input-category\",\r\n\tcategoryInputField: 'js-a-input--category',\r\n\tinputSearchbox: 'js-m-stage-keyvisual-search__search-input',\r\n};\r\n\r\nconst optionValues = {\r\n\tother: \"other\",\r\n\tproductSafetyDataSheets: \"product safety data sheets\"\r\n}\r\n\r\n@createModule('StageSearchNew')\r\n/**\r\n * stage-keyvisual-search module implementation.\r\n *\r\n * @author Robert Schork \r\n */\r\nexport class StageSearchNew extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\t$inputSelect: JQuery;\r\n\t$inputCheckBox: JQuery;\r\n\t$input: JQuery;\r\n\t$inputElement: JQuery;\r\n\tfocusFromScrollReached: boolean = false;\r\n\r\n\tstart(resolve: () => void) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\tthis.initFormHadling();\r\n\t\tthis.onClickAnchor();\r\n\r\n\t\tthis.onClickLink($('.js-m-stage-product__button'));\r\n\t\tif ($('.js-m-stage-product__button').length > 0) {\r\n\t\t\tthis.onClickLink($('.js-m-navigation-in-page__cta'));\r\n\t\t}\r\n\r\n\t\t$('.js-m-navigation-in-page__list-items').on(\"click\", '[href=\"#' + formID + '\"]', (ev: Event) => {\r\n\t\t\tev.preventDefault();\r\n\t\t\tthis.onFocusAreaFocus();\r\n\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t});\r\n\r\n\t\tif (this.$ctx.data('api-endpoint')) {\r\n\t\t\tthis.prefillFormData();\r\n\t\t}\r\n\r\n\t\tthis.$inputSelect = this.$ctx.find(`.${classes.inputSelect}`);\r\n\t\tthis.$inputCheckBox = this.$ctx.find(`.${classes.inputCheckBox}`);\r\n\t\tthis.$input = this.$ctx.find(`.${classes.input}`);\r\n\t\tthis.$inputSelect.on('change', (ev: Event) => this.inputSelecteOptionChanged(ev));\r\n\t\tthis.addOtherOptionForMaterialTag();\r\n\t\tthis.setMaterialTagDefaultValue();\r\n\t\tthis.$inputElement = this.$ctx.find(`.${classes.inputSearchbox}`);\r\n\t\tthis.$inputElement.on('keyup', this._handleInputChange.bind(this));\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tinitFormHadling() {\r\n\t\tthis.$ctx.on('focus', `.${classes.focusElement}`, this.onFocusAreaFocus.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.cancelForm}`, this.onCancleClick.bind(this));\r\n\t\tthis.$ctx.on('click', `.${classes.submitForm}`, this.onFormSubmit.bind(this));\r\n\t}\r\n\r\n\tonFocusAreaFocus() {\r\n\t\tthis.$ctx.find(`.${classes.additionalFields}`).addClass(classes.stateFormOrderAdditionalFieldsVisible);\r\n\t\tif (!this.focusFromScrollReached) {\r\n\t\t\tif ($('.js-m-navigation-in-page__wrapper').length > 0) {\r\n\t\t\t\tscrollToElement(this.$ctx, true, $('.js-m-navigation-in-page__wrapper').height() + 20);\r\n\t\t\t} else {\r\n\t\t\t\tscrollToElement(this.$ctx, true, 70);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.focusFromScrollReached = false;\r\n\t\t}\r\n\t\t$(window).trigger('NavigationInPage:reInitNoClick');\r\n\t}\r\n\r\n\t_handleInputChange(event: any) {\r\n\t\tlet inputString = this.$inputElement.val() as string;\r\n\t\tlet $searchLink = $(this.$ctx).find('.js-m-stage-keyvisual-search__search-btn');\r\n\t\tlet newLinkUrl = $searchLink.data('baseurl') + inputString;\r\n\r\n\t\tif (event.keyCode == 13) {\r\n\t\t\twindow.location.href = newLinkUrl;\r\n\t\t}\r\n\r\n\t\t$searchLink.attr('href', newLinkUrl);\r\n\t}\r\n\r\n\tonCancleClick() {\r\n\t\tthis.$ctx.find(`.${classes.additionalFields}`).removeClass(classes.stateFormOrderAdditionalFieldsVisible);\r\n\t\tscrollToElement(this.$ctx, true);\r\n\t}\r\n\r\n\tonFormSubmit(ev: Event) {\r\n\t\tconst $materialTag: any = this.$ctx.find('select[data-sc-field-name=\"materialTag\"]');\r\n\t\tvar validate = true;\r\n\t\tthis.$inputSelect.each(function (index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr(\"data-val\");\r\n\t\t\tif (typeof dataValRequired !== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null) {\r\n\t\t\t\tif ($(item).val() == \"\") {\r\n\t\t\t\t\t$(item).addClass(\"state-a-input--has-error\");\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').text($(item).attr(\"data-val-required\"));\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.$input.each(function (index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr(\"data-val\");\r\n\t\t\tif (typeof dataValRequired !== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null) {\r\n\t\t\t\tif ($(item).val() == \"\") {\r\n\t\t\t\t\t$(item).addClass(\"input-validation-error\");\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t\t\t$(item).nextAll('.field-validation-valid').text($(item).attr(\"data-val-required\"));\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.$inputCheckBox.each(function (index, item) {\r\n\t\t\tvar dataValRequired = $(item).attr(\"data-val\");\r\n\t\t\tif (typeof dataValRequired !== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null) {\r\n\t\t\t\tif (!$(item).is(':checked')) {\r\n\t\t\t\t\t$(item).addClass(\"input-validation-error\");\r\n\t\t\t\t\tvalidate = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (!validate) {\r\n\t\t\tev.preventDefault();\r\n\t\t}\r\n\t\tthis.$ctx.addClass(classes.stateFormOrderHiddenAfterSubmit);\r\n\t}\r\n\r\n\t/*onScrollReached() { //remove feature again due to customer request\r\n\t\tthis.focusFromScrollReached = true;\r\n\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t}*/\r\n\r\n\tonClickAnchor() {\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$('[href=\"#' + formID + '\"]')\r\n\t\t\t.unbind(\"click\")\r\n\t\t\t.on(\"click\", (ev: Event) => {\r\n\t\t\t\tev.preventDefault();\r\n\t\t\t\tthis.onFocusAreaFocus();\r\n\t\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t\t});\r\n\t}\r\n\r\n\tonClickLink($el: JQuery) {\r\n\t\tconst formID = this.$ctx.attr('id');\r\n\t\t$el.on('click', (ev: JQuery.Event) => {\r\n\t\t\tev.preventDefault();\r\n\t\t\tconst url = $el.attr('href');\r\n\t\t\tconst anchorIdx = url.indexOf('#' + formID);\r\n\t\t\tif (anchorIdx != -1) {\r\n\t\t\t\tthis.onFocusAreaFocus();\r\n\t\t\t\tthis.$ctx.find(`.${classes.focusElement}`).focus();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprefillFormData() {\r\n\t\tconst serviceUrl = this.$ctx.data('api-endpoint');\r\n\r\n\t\tif (serviceUrl) {\r\n\t\t\t$.ajax({\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\turl: serviceUrl,\r\n\t\t\t\tsuccess: (jsonData: any) => {\r\n\t\t\t\t\tfor (let key in jsonData) {\r\n\t\t\t\t\t\tconst $input = this.$ctx.find('input[data-sc-field-name=\"' + key + '\"]');\r\n\t\t\t\t\t\t$input.val(jsonData[key]);\r\n\t\t\t\t\t\t$input.trigger('change');\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinputSelecteOptionChanged(ev: any) {\r\n\t\tconst opt: string = ev.currentTarget.value.toLowerCase();\r\n\t\tconst $target: any = $(ev.currentTarget);\r\n\r\n\t\tif ($target.val() !== \"\") {\r\n\t\t\t$target.removeClass(\"state-a-input--has-error\");\r\n\t\t\t$target.nextAll('.field-validation-valid').text(\"\");\r\n\t\t\t$target.nextAll('.field-validation-valid').removeClass('field-validation-error');\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar dataValRequired = $target.attr(\"data-val\");\r\n\t\t\tif (typeof dataValRequired !== \"undefined\" && dataValRequired !== \"\" && dataValRequired !== null) {\r\n\t\t\t\t$target.addClass(\"state-a-input--has-error\");\r\n\t\t\t\t$target.nextAll('.field-validation-valid').text($target.attr(\"data-val-required\"));\r\n\t\t\t\t$target.nextAll('.field-validation-valid').addClass('field-validation-error');\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Inquiry Type dropdown\r\n\t\tif ($target.hasClass(classes.inquiryTypeInputSelect)) {\r\n\r\n\t\t\tconst $sdsLinkCol: any = this.$ctx.find(`.${classes.sdsLinkColumn}`);\r\n\t\t\tconst $sdsTextboxCol: any = this.$ctx.find(`.${classes.inquiryTextboxColumn}`);\r\n\r\n\t\t\tlet showCheckMark = false;\r\n\t\t\t// show SDS link\r\n\t\t\tif (opt === optionValues.productSafetyDataSheets) {\r\n\t\t\t\t$sdsLinkCol.css(\"display\", \"flex\");\r\n\t\t\t\tshowCheckMark = true;\r\n\t\t\t} else {\r\n\t\t\t\t$sdsLinkCol.css(\"display\", \"none\");\r\n\t\t\t}\r\n\r\n\t\t\t// show SDS textbox\r\n\t\t\tif (opt === optionValues.other) {\r\n\t\t\t\t$('input[data-sc-field-name=\"otherInquiryType\"]').val(\"\");\r\n\t\t\t\t$sdsTextboxCol.show();\r\n\t\t\t\tshowCheckMark = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$('input[data-sc-field-name=\"otherInquiryType\"]').val(\"-\");\r\n\t\t\t\t$sdsTextboxCol.hide();\r\n\t\t\t}\r\n\r\n\t\t\tif (showCheckMark) {\r\n\t\t\t\t$target.addClass(classes.inputSelectCheckMark);\r\n\t\t\t} else {\r\n\t\t\t\t$target.removeClass(classes.inputSelectCheckMark);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Category Type dropdown\r\n\t\tif ($target.hasClass(classes.inputSelectCategoryType)) {\r\n\r\n\t\t\tconst $categoryInputContainer: any = this.$ctx.find(`.${classes.categoryInputContainer}`);\r\n\t\t\tconst $firstInput: any = this.$ctx.find(\".a-input-first .js-a-input--first-name\");\r\n\r\n\t\t\tif (opt === optionValues.other.toLowerCase()) {\r\n\t\t\t\t$('input[data-sc-field-name=\"OtherCategory\"]').val(\"\");\r\n\t\t\t\t$categoryInputContainer.show();\r\n\t\t\t\t$target.addClass(classes.inputSelectCheckMark);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t$categoryInputContainer\r\n\t\t\t\t\t\t.find(classes.categoryInputField)\r\n\t\t\t\t\t\t.focus()\r\n\t\t\t\t\t\t.select();\r\n\t\t\t\t}, 150);\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$('input[data-sc-field-name=\"OtherCategory\"]').val(\"-\");\r\n\t\t\t\t$categoryInputContainer.hide();\r\n\t\t\t\t$target.removeClass(classes.inputSelectCheckMark);\r\n\t\t\t\tif ($firstInput.length > 0) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tif ($firstInput.val().length < 1) {\r\n\t\t\t\t\t\t\t$firstInput.focus().select();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 150);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Add Other Optioin For MaterialTag field\r\n\t * @returns {void}\r\n\t */\r\n\taddOtherOptionForMaterialTag() {\r\n\t\tvar otherText = $('#OtherText').val();\r\n\t\tvar otherValue = $('#OtherValue').val();\r\n\t\tconst $materialTag: any = this.$ctx.find('select[data-sc-field-name=\"materialTag\"]');\r\n\r\n\t\tif ($materialTag.length > 0) {\r\n\t\t\t$('select[data-sc-field-name=\"materialTag\"]').append(``);\r\n\t\t}\r\n\t}\r\n\r\n\tsetMaterialTagDefaultValue() {\r\n\t\tvar urlParams = new URLSearchParams(window.location.search);\r\n\t\tvar meterialTag = $('#SelectTag').val();\r\n\t\tif (urlParams.has('materialtag')) {\r\n\t\t\tmeterialTag = urlParams.get('materialtag');\r\n\t\t}\r\n\t\t$('select[data-sc-field-name=\"materialTag\"]').val(meterialTag);\r\n\t}\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { classes as multiClasses } from '../../event-list/js/event-list';\r\n/**\r\n * product-finder-teaser module implementation.\r\n *\r\n * @author Heiko Frosch \r\n */\r\nconst classes = {\r\n\tfilter: 'm-stage-keyvisual-product-finder__filterwrapper',\r\n\tfilterTag: 'm-stage-keyvisual-product-finder__filter-tag',\r\n\tfilterTags: 'm-stage-keyvisual-product-finder__filter-tags',\r\n\tfilterTagContainer: 'm-stage-keyvisual-product-finder__filter-tags-container',\r\n\tmaterialSelect: 'js-m-stage-keyvisual-product-finder__select-material',\r\n\tcountrySelect: 'js-m-stage-keyvisual-product-finder__select-marketswitch',\r\n\tlink: 'js-m-product-finder-teaser__link',\r\n\tlabelText: 'm-stage-keyvisual-product-finder__filter-tag-text',\r\n\tselectorTag: 'm-filter-two-level-multiselect__layer-level3',\r\n\tfilterSelect: 'm-stage-keyvisual-product-finder__filter',\r\n\tbottomSection: 'm-stage-keyvisual-product-finder__bottom',\r\n\tclearFilterBtn: 'm-product-finder-teaser-V2__clear-filter',\r\n\tlayerFirstLevelBackButtonlink: 'js-m-filter-two-level-multiselect__backlink',\r\n\tlayerSecondLevelBackButtonlink: 'js-m-filter-two-level-multiselect__backlink-level2',\r\n\tmultiselectMainMobile: 'm-filter-two-level-multiselect__item-link--main-mobile',\r\n\tspanMobileIcon: 'js-m-filter-two-level-multiselect__item-link--main-mobile-icon',\r\n\ticonArrowClass: 'm-filter-two-level-multiselect__item-link--main-mobile-arrow-icon',\r\n\toptionCheckedClass: 'm-filter-two-level-multiselect__item-link--main-mobile-checked',\r\n\r\n\tlistFirstNewSearchLevel: 'js-m-filter-two-level-multiselect__list-level1',\r\n\tlistFirstNewSearchLevelOpen: 'm-filter-two-level-multiselect__list-level1--open',\r\n\tlistFirstNewSearchLevelShadow: 'm-filter-two-level-multiselect__list-level1--shadow',\r\n\titemFirstNewSearchLevel: 'js-m-filter-two-level-multiselect__item--level1',\r\n\titemFirstNewSearchLevelOpen: 'm-filter-two-level-multiselect__item--level1-open',\r\n\titemFirstNewSearchLevelHeaderMobile: 'm-filter-two-level-multiselect__item-link--main-mobile',\r\n\titemFirstNewSearchLevelHeaderMobileOpen: 'm-filter-two-level-multiselect__item-link--main-mobile-header',\r\n\r\n\tlayerSecondNewSearchLevel: 'js-m-filter-two-level-multiselect__layer-level2',\r\n\tlayerSecondNewSearchLevelSubfilterOpen: 'm-filter-two-level-multiselect__layer-level2--with-sublevel',\r\n\titemSecondNewSearchLevel: 'js-m-filter-two-level-multiselect__item--level2',\r\n\titemSecondNewSearchLevelOpen: 'm-filter-two-level-multiselect__item--level2-open',\r\n\r\n\tlistThirdNewSearchLevel: 'js-m-filter-two-level-multiselect__list-level3',\r\n\r\n\tlistThirdNewSearchLevelOpen: 'm-filter-two-level-multiselect__list-level3--open',\r\n\r\n\tfloatNewSearchLabel: 'state-a-label--is-floated',\r\n\tfocusNewSearchLabel: 'state-a-label--is-focus',\r\n\tmainDivNewSearch: 'm-info-list',\r\n};\r\n\r\n@createModule('StageProductFinderv2New')\r\nexport class StageProductFinderv2New extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\tdata: any;\r\n\t$form: JQuery;\r\n\t$link: JQuery;\r\n\t$layerSecondNewSearchLevel: JQuery;\r\n\t$itemSecondNewSearchLevel: JQuery;\r\n\t$listFirstNewSearchLevel: JQuery;\r\n\t$itemFirstNewSearchLevel: JQuery;\r\n\t$itemFirstNewSearchLevelHeaderMobile: JQuery;\r\n\r\n\t/**\r\n\t * start method, called on terrific bootstap\r\n\t *\r\n\t * @param {Object} resolve function to call at the end of component start\r\n\t * @returns {void}\r\n\t */\r\n\tstart(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.data = this.$ctx.data();\r\n\t\tthis.$form = $('.js-m-stage-keyvisual-product-finder__form', this.$ctx);\r\n\t\tthis.$link = $(`.${classes.link}`, this._ctx);\r\n\r\n\t\tthis.$ctx.on('FilterTwoLevelMultiCheckboxChanged', this.adjustLinkUrl.bind(this));\r\n\t\tthis.adjustLinkUrl();\r\n\r\n\t\tthis.$ctx.find(`.${classes.selectorTag}`).on('click', this.showFilters.bind(this));\r\n\t\tthis.$ctx.find(`.${classes.clearFilterBtn}`).on(\"click\", this.clearAllFilters.bind(this));\r\n\t\tif (window.screen.width < 600) {\r\n\t\t\tthis.$ctx.find(`.${classes.layerFirstLevelBackButtonlink}`).on(\"click\", this.updateCheckboxSelection.bind(this));\r\n\t\t\tthis.$ctx.find(`.${classes.layerSecondLevelBackButtonlink}`).on(\"click\", this.updateCheckboxSelection.bind(this));\r\n\r\n\t\t\tthis.$layerSecondNewSearchLevel = $(`.${classes.layerSecondNewSearchLevel}`, this.$ctx);\r\n\t\t\tthis.$itemSecondNewSearchLevel = $(`.${classes.itemSecondNewSearchLevel}`, this.$ctx);\r\n\t\t\tthis.$listFirstNewSearchLevel = $(`.${classes.listFirstNewSearchLevel}`, this.$ctx);\r\n\t\t\tthis.$itemFirstNewSearchLevel = $(`.${classes.itemFirstNewSearchLevel}`, this.$ctx);\r\n\t\t\tthis.$itemFirstNewSearchLevelHeaderMobile = $(`.${classes.itemFirstNewSearchLevelHeaderMobile}`, this.$ctx);\r\n\r\n\t\t\t$(`.${classes.listFirstNewSearchLevel}`, this.$ctx).on(\r\n\t\t\t\t'click',\r\n\t\t\t\tthis.onToggleOverlayNewSearchClick.bind(this)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tonToggleOverlayNewSearchClick(event: Event) {\r\n\t\tthis.updateCheckboxSelection(event);\r\n\t\tthis.toggleNewSearchFilter(false);\r\n\t\tevent.stopPropagation();\r\n\t}\r\n\r\n\tshowFilters(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tconst checkboxes = this.$ctx.find(\"input:checked\");\r\n\t\tconst tagsContainer = this.$ctx.find(`.${classes.filterTagContainer}`);\r\n\t\ttagsContainer.empty();\r\n\t\tif (checkboxes.length > 0) {\r\n\t\t\tfor (let i = 0; i < checkboxes.length; i++) {\r\n\t\t\t\tconst checkbox = checkboxes.eq(i);\r\n\t\t\t\tconst id = checkbox.attr('id');\r\n\t\t\t\tconst label = this.$ctx.find(\"label[for='\" + id + \"']\");\r\n\t\t\t\tconst o = \"
      \" + label.text() + \"
      \";\r\n\t\t\t\ttagsContainer.append(o);\r\n\t\t\t}\r\n\t\t\tthis.$ctx.find(`.${classes.filterTag}`).on('click', this.onCloseFilter.bind(this));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.clearAllFilters();\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleNewSearchFilter(toggleState?: any) {\r\n\t\tthis.closeAllSubFilterValues();\r\n\t\tthis.$listFirstNewSearchLevel\r\n\t\t\t.toggleClass(classes.listFirstNewSearchLevelOpen, toggleState)\r\n\t\t\t.toggleClass(classes.listFirstNewSearchLevelShadow, toggleState);\r\n\t\tthis.$itemFirstNewSearchLevel.toggleClass(classes.itemFirstNewSearchLevelOpen, toggleState);\r\n\t\tthis.$itemFirstNewSearchLevelHeaderMobile.toggleClass(classes.itemFirstNewSearchLevelHeaderMobileOpen, toggleState);\r\n\t}\r\n\r\n\tcloseAllSubFilterValues() {\r\n\t\tthis.$layerSecondNewSearchLevel.removeClass(classes.layerSecondNewSearchLevelSubfilterOpen);\r\n\t\tthis.$itemSecondNewSearchLevel\r\n\t\t\t.show()\r\n\t\t\t.removeClass(classes.itemSecondNewSearchLevelOpen)\r\n\t\t\t.find(`.${classes.listThirdNewSearchLevel}`)\r\n\t\t\t.removeClass(classes.listThirdNewSearchLevelOpen);\r\n\t}\r\n\r\n\tupdateCheckboxSelection(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tconst checkboxes = this.$ctx.find(`.${classes.itemFirstNewSearchLevelOpen}`).find(\"input:checked\");\r\n\t\tconst $currentOpenList = this.$ctx.find(`.${classes.itemFirstNewSearchLevelOpen}`);\r\n\r\n\t\tif (checkboxes.length > 0) {\r\n\t\t\tif ($currentOpenList.find(`.${classes.spanMobileIcon}`).hasClass(classes.iconArrowClass)) {\r\n\t\t\t\t$currentOpenList.find(`.${classes.spanMobileIcon}`).removeClass(classes.iconArrowClass);\r\n\t\t\t\t$currentOpenList.find(`.${classes.spanMobileIcon}`).addClass(classes.optionCheckedClass);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif ($currentOpenList.find(`.${classes.spanMobileIcon}`).hasClass(classes.optionCheckedClass)) {\r\n\t\t\t\t$currentOpenList.find(`.${classes.spanMobileIcon}`).removeClass(classes.optionCheckedClass);\r\n\t\t\t\t$currentOpenList.find(`.${classes.spanMobileIcon}`).addClass(classes.iconArrowClass);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tonCloseFilter(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\t$(event.currentTarget).remove();\r\n\t\tconst text = $(event.currentTarget).text();\r\n\t\tconst checkboxes = this.$ctx.find(\"input:checked\");\r\n\r\n\t\tfor (let i = 0; i < checkboxes.length; i++) {\r\n\t\t\tconst checkbox = checkboxes.eq(i);\r\n\t\t\tconst id = checkbox.attr('id'); // get the id\r\n\t\t\tconst label = this.$ctx.find(\"label[for='\" + id + \"']\"); // look for matching label\t\t\t\t\t\t\r\n\t\t\tif (label.text() == text) {\r\n\t\t\t\tlabel.prev().prop('checked', false);\r\n\t\t\t\tif (checkboxes.length == 1) {\r\n\t\t\t\t\tthis.clearAllFilters();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.$ctx.find(`.${multiClasses.twoLevelList}`).removeClass(multiClasses.twoLevelListOpen);\r\n\t\tthis.$ctx.find(`.${multiClasses.oneLevelList}`).removeClass(multiClasses.oneLevelListOpen);\r\n\t}\r\n\r\n\tclearAllFilters() {\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(\"input\").prop('checked', false);\r\n\t\tthis.$ctx.find(`.${classes.bottomSection}`).hide();\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${multiClasses.twoLevelMainChecked}`)\r\n\t\t\t.removeClass(`${multiClasses.twoLevelMainChecked}`);\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${multiClasses.twoLevelParentChecked}`)\r\n\t\t\t.removeClass(`${multiClasses.twoLevelParentChecked}`);\r\n\t\tthis.$ctx.find(`.${classes.filterSelect}`).find(`.${multiClasses.oneLevelMainChecked}`)\r\n\t\t\t.removeClass(`${multiClasses.oneLevelMainChecked}`);\r\n\t\tthis.$ctx.find(`.${classes.filterTagContainer}`).empty();\r\n\t\tthis.$ctx.find(`.${classes.filterTags}`).hide();\r\n\t\tthis.$ctx.find(`.${multiClasses.teaserContainer}`).empty();\r\n\t}\r\n\r\n\tadjustLinkUrl() {\r\n\t\tconst separator = this.data.filterseperator || ':';\r\n\t\tconst sortingParam = this.data.sortingparam ? separator + this.data.sortingparam : '';\r\n\t\tconst countryParam = separator + this.data.countryparam + separator + this.data.marketparam;\r\n\r\n\t\tconst serializedData = this.$form\r\n\t\t\t.serializeArray()\r\n\t\t\t.filter((e) => {\r\n\t\t\t\treturn e.value !== '';\r\n\t\t\t})\r\n\t\t\t.map((e) => {\r\n\t\t\t\treturn encodeURIComponent(e.value);\r\n\t\t\t});\r\n\t\tlet materialAndIndustryParams = '';\r\n\r\n\t\tif (serializedData.length) {\r\n\t\t\tmaterialAndIndustryParams = separator + serializedData.join(separator);\r\n\t\t}\r\n\r\n\t\tconst allParams = sortingParam + countryParam + materialAndIndustryParams;\r\n\t\tconst newLinkUrl = this.data.baseurl + '/?' + this.data.queryparam + '=' + allParams;\r\n\r\n\t\tthis.$link.attr('href', newLinkUrl);\r\n\t}\r\n\r\n\t/**\r\n\t * stop method, called on terrific stop\r\n\t *\r\n\t * @returns {void}\r\n\t */\r\n\tstop() { }\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\nconst classes = {\r\n tabItem: 'js-o-teaser-tabs__item',\r\n tabContent: 'js-o-teaser-tabs__content',\r\n};\r\n\r\n@createModule('TeaserTabs')\r\nexport class TeaserTabs extends TerrificSpec {\r\n $ctx: JQuery;\r\n $tabItem: JQuery;\r\n $tabContent: JQuery;\r\n\r\n start(resolve: Function) {\r\n const _this = this;\r\n this.$ctx = $(this._ctx);\r\n this.$tabItem = $(`.${classes.tabItem}`, this.$ctx);\r\n this.$tabContent = $(`.${classes.tabContent}`, this.$ctx);\r\n this.$tabItem.on(\"click\", function (ev: any) {\r\n\t\t\t_this.updatestatus($(ev.currentTarget));\r\n _this.updateUri(ev);\r\n\t\t});\r\n this.initTab();\r\n resolve();\r\n }\r\n\r\n stop() {\r\n }\r\n\r\n initTab() {\r\n const _this = this;\r\n\r\n this.$tabItem.first().addClass('active');\r\n this.$tabContent.first().addClass('active');\r\n\r\n if (window.location.search.length > 1) {\r\n let parts = location.search.substr(1).split('&');\r\n for (let i = 0; i < parts.length; i++) {\r\n const keyValue = parts[i].split('=', 2);\r\n if (keyValue.length != 2) continue;\r\n const key = keyValue[0];\r\n const value = keyValue[1];\r\n if (key === \"tab\") {\r\n if(this.$ctx.find(`.${classes.tabItem}`).length>parseInt(value))\r\n {\r\n _this.updatestatus($(this.$ctx.find(`.${classes.tabItem}`)[parseInt(value)]));\r\n }\r\n else\r\n {\r\n _this.updatestatus($(this.$ctx.find(`.${classes.tabItem}`).last()));\r\n }\r\n } \r\n }\r\n }\r\n }\r\n\r\n \r\n private updatestatus(ev: any):void\r\n {\r\n const $target: any = ev;\r\n const $url:any=document.location;\r\n $target.siblings().each( function () {\r\n if($(this).hasClass('active'))\r\n {\r\n $(this).attr(\"data-tab-link\",$url);\r\n }\r\n });\r\n $target.siblings().removeClass('active');\r\n $target.addClass('active');\r\n this.$tabContent.removeClass('active');\r\n\t\tthis.$tabContent.eq($target.index()).addClass('active');\r\n }\r\n\r\n private updateUri(ev: any): void {\r\n const $target: any = $(ev.currentTarget);\r\n \r\n var parts: string[] = [];\r\n const _this = this;\r\n parts.push(`tab=${$target.index()}`);\r\n let url = document.location.origin + document.location.pathname;\r\n if(document.location.href.indexOf(\"?\") !== -1) {\r\n url = url + document.location.search;\r\n const keyValue = parts[0].split('=', 2);\r\n if (parts.length > 0 && keyValue[0] === \"tab\") \r\n {\r\n for (let i = 0; i < parts.length; i++) {\r\n const keyValue = parts[i].split('=', 2);\r\n if (keyValue.length != 2) continue;\r\n const key = keyValue[0];\r\n const value = keyValue[1];\r\n if (key === \"tab\") {\r\n var splitUrl = url.split(\"?\");\r\n splitUrl.pop();\r\n url = splitUrl + \"?\" + parts[0].toString();\r\n } \r\n }\r\n }\r\n /* else\r\n {\r\n url += parts.join(\"&\");\r\n }\r\n */\r\n\r\n }\r\n /* else{\r\n if (parts.length > 0) url += \"?\" + parts.join(\"&\");\r\n }\r\n */\r\n history.replaceState(null, document.title, url);\r\n \r\n }\r\n}","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\n\r\n@createModule('AddToCalendar')\r\n/**\r\n * AddToCalendar Component\r\n * @constructor\r\n */\r\nexport class AddToCalendar extends TerrificSpec {\r\n\t/**\r\n\t * start/init Nitro lifecycle hook\r\n\t * @param {function} resolve - Required parameter for start lifecycle\r\n\t * @returns {void} void\r\n\t */\r\n\tstart(resolve: () => void): void {\r\n\t\tsetTimeout(() => {\r\n\r\n $(\".addeventatc\").css(\"text-decoration\", \"none\");\r\n\r\n }, 1000);\r\n\t\tresolve();\r\n\t}\r\n\r\n\t/**\r\n\t * stop/destroy Nitro lifecycle hook\r\n\t * @returns {void}\r\n\t */\r\n\tstop() {\r\n\t}\r\n\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('AlertBanner')\r\n/**\r\n * label module implementation.\r\n *\r\n * @author Nele Rabus \r\n */\r\nexport class AlertBanner extends TerrificSpec {\r\n\tstart(resolve: Function) {\r\n\t\tresolve();\r\n\t}\r\n\tstop() { }\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('StageCrisis')\r\n/**\r\n * Stage Brand module implementation.\r\n */\r\nexport class StageCrisis extends TerrificSpec {\r\n\tstart(resolve: () => void) {\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {\r\n\t\t// Stop\r\n\t}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport { triggerPublicEvent, PublicEvents } from '@project/shared/utils/events/js/events';\r\n\r\n@createModule('CrisisTeaser')\r\n/**\r\n * Stage Brand module implementation.\r\n */\r\nexport class CrisisTeaser extends TerrificSpec {\r\n\tstart(resolve: () => void) {\r\n\r\n\t\tresolve();\r\n\t}\r\n\r\n\tstop() {\r\n\t\t// Stop\r\n\t}\r\n\r\n\t_triggerChangeEvent() {\r\n\t\ttriggerPublicEvent(PublicEvents.uxChange, this, this._ctx);\r\n\t}\r\n}\r\n","import { createModule, startNode } from 'terrific-singleton';\r\nimport { TerrificSpec } from 'terrific-singleton/terrific-module';\r\nimport * as Jspreadsheet from 'Jspreadsheet-ce';\r\nimport 'friendly-challenge/widget';\r\nimport * as Widget from 'friendly-challenge';\r\n\r\nlet sheetElm = document.getElementById('spreadsheetTable');\r\nlet Container = document.getElementById('captcha');\r\nlet initSpreadsheet: any;\r\nconst regexInvoiceDate = new RegExp(/^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$/);\r\nconst regexInvoiceNum = new RegExp(/^(?=.{0,16}$)[a-zA-Z0-9 \\/!@#\\$%\\^\\&*\\)\\(\\{\\}\\'\\\"\\\\+=._-]+$/);\r\nconst regexInvoiceAmu = new RegExp(/^(?=.{0,13}$)^-?[1-9]\\d*(\\.\\d+)?$/);\r\nlet IsError: boolean = false;\r\nlet valCell: any;\r\nlet valRow: any;\r\nlet valValue: any;\r\nlet valCol: any;\r\nlet isSearch: boolean = false;\r\n\r\nconst _global = window as any;\r\n_global.callBack = callBack;\r\n\r\nconst classes = {\r\n\tsearchBtn: 'inquiry-portal__search-button',\r\n\tstateLoadingIndicatorHide: 'state-m-invoice-table__loading--hidden',\r\n\tcontentLoading: 'js-content-loading',\r\n\tloadModalOverlay: 'm-modal-overlay',\r\n\tloadModalOverlayVisible: 'state-m-modal-overlay--visible',\r\n\tresetBtn: 'inquiry-portal__reset-button',\r\n\taddRow: 'm-invoice-table-content__add-btn',\r\n\tdeleteRow: 'm-invoice-table-content__delete-btn',\r\n\tcaptchaBtn: 'frc-container',\r\n};\r\n\r\ninterface IInvoiceLabeldata {\r\n\tinvoiceNumber: string;\r\n\tinvoiceDate: string;\r\n\tbillingAmount: string;\r\n\tpaymentDueDate: string;\r\n\tinvoiceStatus: string;\r\n\tactionColumn: string;\r\n}\r\n\r\ninterface IApiData {\r\n\tinvoiceNumber: string;\r\n\tinvoiceDate: string;\r\n\tbillingAmount: string;\r\n\tpaymentDueDate?: string;\r\n\tinvoiceStatus?: string;\r\n\tisError?: boolean;\r\n}\r\n\r\nlet sheetDataGlobal: IApiData[] = [\r\n\t{\r\n\t\tinvoiceNumber: '',\r\n\t\tinvoiceDate: '',\r\n\t\tpaymentDueDate: '',\r\n\t\tbillingAmount: '',\r\n\t\tinvoiceStatus: '',\r\n\t\tisError: false,\r\n\t},\r\n];\r\n\r\nlet invoiceInquiryLabels: IInvoiceLabeldata;\r\n\r\n@createModule('InvoiceTable')\r\n\r\n/**\r\n * invoice-table module implementation.\r\n */\r\nexport class InvoiceTable extends TerrificSpec {\r\n\t$ctx: JQuery;\r\n\ttableBodyEle: JQuery;\t\r\n\tsearchButtonEle: JQuery;\r\n\tcellInputEle: JQuery;\r\n\tsheetData: any = [];\r\n\tdata: any = [];\r\n\tinvoiceData: any = [];\r\n\tiapiData: IApiData;\r\n\tcontentLoadingEle: JQuery;\r\n\tloadModalOverlayEle: JQuery;\r\n\tresetButtonEle: JQuery;\r\n\tdeleteRowEle: JQuery;\r\n\taddRowEle: JQuery;\r\n\tCaptchaEle: JQuery;\r\n\r\n\tasync start(resolve: Function) {\r\n\t\tthis.$ctx = $(this._ctx);\r\n\t\tthis.tableBodyEle = this.$ctx.find('#spreadsheetTable');\r\n\t\tinvoiceInquiryLabels = this.$ctx.data() as IInvoiceLabeldata;\r\n\t\tthis.initInvoiceSheet(sheetDataGlobal, false);\r\n\t\tthis.searchButtonEle = this.$ctx.find(`.${classes.searchBtn}`);\r\n\t\tthis.CaptchaEle = this.$ctx.find(`.${classes.captchaBtn}`);\r\n\t\tthis.searchButtonEle.on('click', this.getinvoicedatafromapi.bind(this));\r\n\t\tthis.contentLoadingEle = this.$ctx.find(`.${classes.contentLoading}`);\r\n\t\tthis.loadModalOverlayEle = $(`.${classes.loadModalOverlay}`);\r\n\t\tthis.searchButtonEle.attr('disabled', 'true');\r\n\t\t//this.addDeleteRow();\r\n\t\tthis.resetButtonEle = this.$ctx.find(`.${classes.resetBtn}`);\r\n\t\tthis.resetButtonEle.attr('disabled', 'true');\r\n\t\tthis.resetButtonEle.on('click', this.resetSpreadSheet.bind(this));\r\n\t\tthis.deleteRowEle = this.$ctx.find(`.${classes.deleteRow}`);\r\n\t\tthis.deleteRowEle.addClass('__disabled-btn');\r\n\t\tthis.deleteRowEle.on('click', this.DeleteRow.bind(this));\r\n\t\tthis.addRowEle = this.$ctx.find(`.${classes.addRow}`);\r\n\t\tthis.addRowEle.on('click', this.AddRow.bind(this));\r\n\t\tthis.AddDeleteRow();\r\n\t\tresolve();\r\n\t}\r\n\tstop() { }\r\n\r\n\tinitInvoiceSheet(invoiceData: any, updateData: boolean) {\r\n\t\tif (updateData) {\r\n\t\t\tinitSpreadsheet.setData(invoiceData);\r\n\t\t} else {\r\n\t\t\tinitSpreadsheet = Jspreadsheet(sheetElm, {\r\n\t\t\t\ttableOverflow: true,\r\n\t\t\t\ttableHeight: '500px',\r\n\t\t\t\tallowInsertRow: true,\r\n\t\t\t\tallowManualInsertRow: true,\r\n\t\t\t\tallowInsertColumn: false,\r\n\t\t\t\tallowManualInsertColumn: false,\r\n\t\t\t\tallowDeleteRow: true,\r\n\t\t\t\tallowDeleteColumn: false,\r\n\t\t\t\tallowRenameColumn: false,\r\n\t\t\t\tallowComments: false,\r\n\t\t\t\tcolumnSorting: false,\r\n\t\t\t\tcolumnResize: true,\r\n\t\t\t\tdata: invoiceData,\r\n\t\t\t\tminDimensions: [4, 1],\r\n\t\t\t\tcsvHeaders: true,\r\n\t\t\t\tcolumns: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttype: 'text',\r\n\t\t\t\t\t\ttitle: invoiceInquiryLabels.invoiceNumber,\r\n\t\t\t\t\t\twidth: 140,\r\n\t\t\t\t\t\tname: 'invoiceNumber',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttype: 'numeric',\r\n\t\t\t\t\t\ttitle: invoiceInquiryLabels.invoiceDate,\r\n\t\t\t\t\t\twidth: 130,\r\n\t\t\t\t\t\tmask: 'YYYY-MM-DD',\r\n\t\t\t\t\t\tname: 'invoiceDate',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttype: 'text',\r\n\t\t\t\t\t\ttitle: this.extractTextFromHTML(invoiceInquiryLabels.billingAmount.trim()),\r\n\t\t\t\t\t\twidth: 260,\r\n\t\t\t\t\t\tmask: '0.00',\r\n\t\t\t\t\t\tdecimal: '.',\r\n\t\t\t\t\t\tname: 'billingAmount',\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: invoiceInquiryLabels.paymentDueDate,\r\n\t\t\t\t\t\twidth: 130,\r\n\t\t\t\t\t\tname: 'paymentDueDate',\r\n\t\t\t\t\t\treadOnly: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: invoiceInquiryLabels.invoiceStatus,\r\n\t\t\t\t\t\twidth: 190,\r\n\t\t\t\t\t\tname: 'invoiceStatus',\r\n\t\t\t\t\t\treadOnly: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{ title: ' ', type: 'text', width: 50, name: 'alterRow' },\r\n\t\t\t\t],\r\n\t\t\t\t\r\n\t\t\t\tonafterchanges: function () {\r\n\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\tthis.sheetData = initSpreadsheet.getJson();\r\n\t\t\t\t\tsheetDataGlobal = initSpreadsheet.getJson();\r\n\t\t\t\t},\r\n\t\t\t\toninsertrow: function () {\r\n\t\t\t\t\tif (sheetDataGlobal.length > 30) {\r\n\t\t\t\t\t\tthis.sheetData.length = 30;\r\n\t\t\t\t\t\tinitSpreadsheet.setData(this.sheetData);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\r\n\t\t\t\tonload: function () {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tconst tableHeader = document.querySelector(\"[data-x='2']\");\r\n\t\t\t\t\t\ttableHeader.innerHTML = invoiceInquiryLabels.billingAmount.trim();\r\n\t\t\t\t\t}, 100);\r\n\t\t\t\t},\t\t\t\t\r\n\r\n\t\t\t\tupdateTable: function (el, cell, x, y, source, value, id) {\r\n\t\t\t\t\tvalCell = cell;\r\n\t\t\t\t\tvalRow = x;\r\n\t\t\t\t\tvalValue = value;\r\n\t\t\t\t\tvalCol = y;\r\n\r\n\t\t\t\t\tif (isSearch) {\r\n\t\t\t\t\t\tif (valValue === '' && valRow < 3) {\r\n\t\t\t\t\t\t\tvalCell.classList.add('error');\r\n\t\t\t\t\t\t\tIsError = true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (valRow == 0) {\r\n\t\t\t\t\t\t\t\tif (regexInvoiceNum.test(valValue)) {\r\n\t\t\t\t\t\t\t\t\t$(valCell).removeClass('error');\r\n\t\t\t\t\t\t\t\t\tIsError = false;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tvalCell.classList.add('error');\r\n\t\t\t\t\t\t\t\t\tIsError = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (valRow == 1) {\r\n\t\t\t\t\t\t\t\tif (regexInvoiceDate.test(valValue)) {\r\n\t\t\t\t\t\t\t\t\t$(valCell).removeClass('error');\r\n\t\t\t\t\t\t\t\t\tIsError = false;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tvalCell.classList.add('error');\r\n\t\t\t\t\t\t\t\t\tIsError = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (valRow == 2) {\r\n\t\t\t\t\t\t\t\tif (regexInvoiceAmu.test(valValue)) {\r\n\t\t\t\t\t\t\t\t\t$(valCell).removeClass('error');\r\n\t\t\t\t\t\t\t\t\tIsError = false;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tvalCell.classList.add('error');\r\n\t\t\t\t\t\t\t\t\tIsError = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (value == 'true') {\r\n\t\t\t\t\t\t\t\t$(cell)\r\n\t\t\t\t\t\t\t\t\t.parent()\r\n\t\t\t\t\t\t\t\t\t.addClass('errortext');\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$(cell)\r\n\t\t\t\t\t\t\t\t\t.parent()\r\n\t\t\t\t\t\t\t\t\t.removeClass('errortext');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (x == 5) {\r\n\t\t\t\t\t\t$(cell).html(\r\n\t\t\t\t\t\t\t` `\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t// Function to extract text from HTML\r\n\textractTextFromHTML(html:string):string {\r\n\t\tconst parser = new DOMParser();\r\n\t\tconst doc = parser.parseFromString(html, 'text/html');\r\n\t\tconst textContent = doc.body.textContent.replace(//g, '\\n'); // Convert
      and
      to newline\r\n\t\treturn textContent;\r\n\t}\r\n\t\r\n\tvalidation(row: any, cell: any, adderrorclass: boolean) {\r\n\t\tlet rownum = row + 1;\r\n\t\tif (adderrorclass) {\r\n\t\t\t$('.jexcel tr:eq(' + rownum + ') td:eq(' + cell + ')').addClass('error');\r\n\t\t} else {\r\n\t\t\t$('.jexcel tr:eq(' + rownum + ') td:eq(' + cell + ')').removeClass('error');\r\n\t\t}\r\n\t}\r\n\r\n\tvalidate(): boolean {\r\n\t\tvar result = false;\r\n\t\tlet sheetDatalocal: Array = sheetDataGlobal;\r\n\r\n\t\tsheetDatalocal.forEach((object) => {\r\n\t\t\tdelete object['paymentDueDate'];\r\n\t\t\tdelete object['invoiceStatus'];\r\n\t\t});\r\n\t\tlet data = sheetDatalocal;\r\n\r\n\t\tdata.forEach((row, index) => {\r\n\t\t\tif (\r\n\t\t\t\trow.billingAmount === '' ||\r\n\t\t\t\trow.billingAmount === undefined ||\r\n\t\t\t\t!regexInvoiceAmu.test(row.billingAmount)\r\n\t\t\t) {\r\n\t\t\t\tthis.validation(index, 3, true);\r\n\t\t\t} else {\r\n\t\t\t\tthis.validation(index, 3, false);\r\n\t\t\t}\r\n\r\n\t\t\tif (row.invoiceDate === '' || row.invoiceDate === undefined) {\r\n\t\t\t\tthis.validation(index, 2, true);\r\n\t\t\t} else {\r\n\t\t\t\tthis.validation(index, 2, false);\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\trow.invoiceNumber === '' ||\r\n\t\t\t\trow.invoiceNumber === undefined ||\r\n\t\t\t\t!regexInvoiceNum.test(row.invoiceNumber)\r\n\t\t\t) {\r\n\t\t\t\tthis.validation(index, 1, true);\r\n\t\t\t} else {\r\n\t\t\t\tthis.validation(index, 1, false);\r\n\t\t\t}\r\n\t\t\tvar errorClass = this.tableBodyEle.find(`.${'error'}`);\r\n\r\n\t\t\tif (\r\n\t\t\t\trow.billingAmount === '' ||\r\n\t\t\t\trow.invoiceDate === '' ||\r\n\t\t\t\trow.invoiceNumber === '' ||\r\n\t\t\t\terrorClass.length > 0\r\n\t\t\t) {\r\n\t\t\t\tresult = false;\r\n\t\t\t} else {\r\n\t\t\t\tresult = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\tgetinvoicedatafromapi() {\r\n\t\tisSearch = true;\r\n\r\n\t\tif (!IsError && this.validate()) {\r\n\t\t\tthis.showContentLoading();\r\n\t\t\tconst apiEndpoint = '/api/invoiceinquiry/post';\r\n\t\t\tlet sheetDatalocal: Array = sheetDataGlobal;\r\n\t\t\tsheetDatalocal.forEach((object) => {\r\n\t\t\t\tdelete object['paymentDueDate'];\r\n\t\t\t\tdelete object['invoiceStatus'];\r\n\t\t\t\tdelete object['isError'];\r\n\t\t\t});\r\n\t\t\tlet data = sheetDatalocal;\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: 'POST',\r\n\t\t\t\turl: apiEndpoint,\r\n\t\t\t\tcontentType: 'application/json',\r\n\t\t\t\tdataType: 'json',\r\n\t\t\t\tdata: JSON.stringify(data),\r\n\t\t\t\ttraditional: true,\r\n\r\n\t\t\t\tsuccess: (response: any) => {\r\n\t\t\t\t\tthis.initInvoiceSheet(response.responseitems, true);\r\n\t\t\t\t\tthis.hideContentLoading();\r\n\t\t\t\t\tconst widget = new Widget.WidgetInstance(Container, {\r\n\t\t\t\t\t\tstartMode: 'none',\r\n\t\t\t\t\t});\r\n\t\t\t\t\twidget.reset();\r\n\t\t\t\t\tisSearch = false;\r\n\t\t\t\t\tthis.searchButtonEle.attr('disabled', 'true');\r\n\t\t\t\t},\r\n\t\t\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\t\t\tconsole.log(`get invoice data error, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t\t\t\tthis.hideContentLoading();\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tshowContentLoading() {\r\n\t\tthis.contentLoadingEle.removeClass(classes.stateLoadingIndicatorHide);\r\n\t\tthis.loadModalOverlayEle.addClass(classes.loadModalOverlayVisible);\r\n\t}\r\n\r\n\thideContentLoading() {\r\n\t\tthis.contentLoadingEle.addClass(classes.stateLoadingIndicatorHide);\r\n\t\tthis.loadModalOverlayEle.removeClass(classes.loadModalOverlayVisible);\r\n\t}\r\n\r\n\tresetSpreadSheet() {\r\n\t\tlet invoiceData: any = [];\r\n\t\tinitSpreadsheet.setData(invoiceData);\r\n\t\tsheetDataGlobal = initSpreadsheet.getJson();\r\n\t}\r\n\r\n\tDeleteRow(e: any) {\r\n\t\te.preventDefault();\r\n\t\tlet rowIn = $(this)\r\n\t\t\t.parent()\r\n\t\t\t.data('y');\r\n\t\tinitSpreadsheet.deleteRow(rowIn, 0);\r\n\t}\r\n\r\n\tAddRow(e: any) {\r\n\t\te.preventDefault();\r\n\t\tthis.deleteRowEle.removeClass('__disabled-btn');\r\n\t\tlet rowIn = $(this)\r\n\t\t\t.parent()\r\n\t\t\t.data('y');\r\n\t\tinitSpreadsheet.insertRow(0, rowIn);\r\n\t}\r\n\r\n\tAddDeleteRow() {\r\n\t\t$('body').on('click', '.m-invoice-table-content__add-btn', function (e: any) {\r\n\t\t\te.preventDefault();\r\n\t\t\tlet rowNumIn = $(this)\r\n\t\t\t\t.parent()\r\n\t\t\t\t.data('y');\r\n\t\t\tinitSpreadsheet.insertRow(0, rowNumIn);\r\n\t\t\tsheetDataGlobal = initSpreadsheet.getJson();\r\n\t\t});\r\n\r\n\t\t$('body').on('click', '.m-invoice-table-content__delete-btn', function (e: any) {\r\n\t\t\te.preventDefault();\r\n\t\t\tlet rowIn = $(this)\r\n\t\t\t\t.parent()\r\n\t\t\t\t.data('y');\r\n\t\t\tinitSpreadsheet.deleteRow(rowIn, 0);\r\n\t\t\tsheetDataGlobal = initSpreadsheet.getJson();\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction callBack(solution: string) {\r\n\tlet data = { captchasolution: solution };\r\n\r\n\t$.ajax({\r\n\t\ttype: 'POST',\r\n\t\turl: '/api/invoiceinquiry/captchaverification',\r\n\t\tcontentType: 'application/json; charset=utf-8',\r\n\t\tdataType: 'json',\r\n\t\tdata: JSON.stringify(data),\r\n\t\tsuccess: function (response: any) {\r\n\t\t\tif (response == true) {\r\n\t\t\t\t$('.inquiry-portal__search-button').removeAttr('disabled');\r\n\t\t\t\t$('.inquiry-portal__reset-button').removeAttr('disabled');\r\n\t\t\t}\r\n\t\t},\r\n\t\terror: (xhr: any, status: string, error: string) => {\r\n\t\t\tconsole.log(`get captcha response error, ${xhr.status}, ${xhr.statusText}, ${error}`);\r\n\t\t},\r\n\t});\r\n}\r\n(window as any).callBack = callBack;\r\n"],"sourceRoot":""}