{"version":3,"sources":["63d4208eae3809d1ef74.js"],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","webpackUniversalModuleDefinition","root","factory","select","element","selectedText","nodeName","focus","isReadOnly","hasAttribute","setAttribute","setSelectionRange","length","removeAttribute","selection","window","getSelection","range","document","createRange","selectNodeContents","removeAllRanges","addRange","toString","E","on","callback","ctx","e","push","fn","once","self","listener","off","apply","arguments","_","emit","data","slice","evtArr","len","evts","liveEvents","TinyEmitter","is","delegate","listen","target","type","Error","string","TypeError","node","listenNode","nodeList","listenNodeList","listenSelector","addEventListener","destroy","removeEventListener","Array","forEach","selector","body","undefined","HTMLElement","nodeType","String","closest","_delegate","useCapture","listenerFn","elements","querySelectorAll","map","delegateTarget","DOCUMENT_NODE_TYPE","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__webpack_exports__","src_select","select_default","_typeof","iterator","obj","constructor","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_classCallCheck","instance","clipboard_action_ClipboardAction","ClipboardAction","options","resolveOptions","initSelection","action","container","emitter","text","trigger","selectFake","selectTarget","_this","isRTL","documentElement","getAttribute","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","appendChild","copyText","removeChild","succeeded","execCommand","err","handleResult","clearSelection","activeElement","blur","set","_action","_target","clipboard_action","tiny_emitter","tiny_emitter_default","listen_default","clipboard_typeof","clipboard_createClass","clipboard_classCallCheck","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","clipboard_Clipboard","_Emitter","Clipboard","getPrototypeOf","listenClick","defaultAction","defaultTarget","defaultText","_this2","onClick","currentTarget","clipboardAction","getAttributeValue","querySelector","isSupported","actions","support","queryCommandSupported","a","suffix","attribute","clipboard","define","impl","mobileDetectRules","detectMobileBrowsers","fullPattern","shortPattern","tabletPattern","hasOwnProp","isArray","FALLBACK_PHONE","FALLBACK_TABLET","FALLBACK_MOBILE","equalIC","b","toLowerCase","containsIC","array","valueLC","convertPropsToRegExp","RegExp","prepareUserAgent","userAgent","substr","init","values","verPos","indexOf","substring","oss","phones","tablets","uas","utils","oss0","WindowsPhoneOS","WindowsMobileOS","findMatch","rules","test","findMatches","result","getVersionStr","propertyName","patterns","match","exec","getVersion","version","prepareVersionNo","NaN","numbers","split","shift","join","Number","isMobileFallback","isTabletFallback","prepareDetectionCache","cache","maxPhoneWidth","mobile","phone","tablet","phoneSized","MobileDetect","isPhoneSized","mobileGrade","$isMobile","os","detectOS","ua","getDeviceSmallerSide","screen","width","height","_cache","userAgents","versionStr","pattern","grade","_impl","g","Function","animateCSS","ANIMATE_EFFECT","_common_utils__WEBPACK_IMPORTED_MODULE_0__","animationName","isIE","$","addClass","classList","add","handleAnimationEnd","removeClass","remove","freeze","BOUNCE_IN_UP","SLIDE_IN_UP","SLIDE_IN_DOWN","BOUNCE_IN_DOWN","ZOOM_IN","FADE_IN","FADE_IN_UP","FADE_OUT","FADE_OUT_DOWN","BOUNCE_IN","CardComponent","isMobile","outerWidth","hover","event","handleHover","click","handleClick","el","inOut","yellowLine","hasClass","find","parents","cardsEditorialActiveDashes","cardEditorialActiveDash","ex","carouselPublicationsCard","preventDefault","href","parentElement","parent","attr","open","component","CarouselUtils","ready","setTimeout","CookieBanner","_utils__WEBPACK_IMPORTED_MODULE_0__","banner","confirm","refuse","cookieName","cookie","getCookie","console","log","show","hide","setCookie","cname","cvalue","exdays","Date","setTime","getTime","expires","toUTCString","decodedCookie","decodeURIComponent","ca","charAt","DatepickerTranslations","italian","monthsFull","monthsShort","weekdaysFull","weekdaysShort","today","clear","close","format","firstDay","formatSubmit","hiddenName","labelMonthNext","labelMonthPrev","labelMonthSelect","labelYearSelect","english","DIGITAL","isSearch","pageNumber","DigitalDataUtils","DATA_JSON_ID","pageNumeberElement","handleClickItem","handleClickItemSerp","handleClickItemVideo","searchJson","val","digitalData","jsnid","digitalDataJson","eval","location","origin","pageEvent","eventInfo","contentURL","eventType","eventDetail","ctaLabel","contentPageNumber","currentFilter","getEventType","getEventDetail","innerText","fileExt","pop","regex","startsWith","endsWith","item","FiltersUtil","_common_datepicker_translations__WEBPACK_IMPORTED_MODULE_0__","_common_datepicker_translations__WEBPACK_IMPORTED_MODULE_0___default","_common_utils__WEBPACK_IMPORTED_MODULE_1__","_common_digital_data__WEBPACK_IMPORTED_MODULE_2__","dropdowns","dataFilter","dataTargetContainer","dataTargetElementClass","filterButton","children","dropdownButtonsListContainer","dropdownButtons","currentSection","dropdownButtonText","truncateDropdownButtonText","actualDropdownActiveButton","dataFilterValue","prepareFiltersToApply","calendars","calendarLanguage","calendar","calendarFilterIcon","calendarLanguageConfig","calendarConfig","onOpen","onClose","onSet","convertDateForCalendars","calendarIntance","pickadate","checkboxs","checkboxInput","resetFilterContainers","resetFilterButton","allFilters","resetFilters","currentSectionPaginator","paginatorContainer","paginatorContainerDataAjax","searchSection","calendarSection","arrayFiltersToBeApplied","ttPaginator","ajax","filters","arrayOthersFiltersToBeApplied","otherFiltersWithSameDataTarget","otherFilterWithSameDataTarget","otherFilterWithSameDataTargetDataFilter","otherFilterWithSameDataTargetActive","otherFilterWithSameDataTargetFilterKey","otherFilterWithSameDataTargetFilterValue","otherFilterWithSameDataTargetValueInput","otherFilterWithSameDataTargetValue","otherFilterWithSameDataTargetInput","currentSectionAccordions","currentSectionAccordion","accordionDetailItems","hiddenDetailItemsLength","css","filterKey","filterValue","dropdownButton","optionButton","optionButtonText","filterType","ddutils","handleClickItemFilter","getAllFiltersWithSameDataTargetElementClassResponse","getAllFiltersWithSameDataTargetElementClass","dataFilterKeyToApply","dataFilterValueToApply","dataFilterType","areSearchFilters","checkSearchFilters","areCalendarFilers","checkCalendarWidgetFilters","applyFBEFilters","isThereFEPaginator","checkFEPaginator","resetAjaxPaginator","yearFilter","filterToBeApplied","typeFilter","selectedYear","parseInt","currentYear","getFullYear","typeFilterEl","typeFilterElButton","changeDropdownFilterValue","prop","changeFilterValue","applyFilter","replace","results","search","oldUrl","currentUrl","urlFilters","paramsToKeep","paramValue","getUrlParameter","urlLastChar","arrayFilterKeys","index","dataTargetElements","not","isCalendarWidget","arrayElementFilterDataValues","hasTargetElementYearDataAttribute","arrayFilterDifferences","filter","o1","some","o2","valueOf","includes","finalTargetElement","finalTargetElementList","checkAccordions","resetCurrentSectionPaginator","managePublicationListsBorders","error","arrayFiltersToReset","tempArrayFiltersToReset","filterToReset","defaultValueDropdownButton","defaultValueDropdownButtonText","filterToResetFilterKey","filterToResetFilterType","filterToResetFilterValue","calendarInput","FormUtils","form","handleCheckAll","focusout","next","handleDropdowns","handleFile","handlePrivacyPolicy","removeAttr","handleProfileTextareaVisibility","handleUpdatesTextareaVisibility","handleSubmitButtonClick","targetElements","file","filename","file1","filename1","file2","filename2","file3","filename3","fileNext","filenameNext","files","size","stopPropagation","dropdownComponent","dropdownComponentInput","dropdownComponentButton","dropdownComponentItems","currentElement","otherTextArea","updatesTextarea","currentOtherUpdatesCheckbox","ev","privacyPolicyLabel","privacyPolicyYesRadio","privacyPolicyNoRadio","eniNextShares","eniNextTerms","formPrivacyErrorMessage","reportForm","getElementById","shareAndTermsError","recaptcha","currentLang","lang","alert","global","initDynamicContent","_widgets_highlight_editorial_content__WEBPACK_IMPORTED_MODULE_0__","_widgets_media_highlight__WEBPACK_IMPORTED_MODULE_1__","_widgets_herobanner_homepage__WEBPACK_IMPORTED_MODULE_2__","_widgets_event_highlight_countdown__WEBPACK_IMPORTED_MODULE_3__","_common_share__WEBPACK_IMPORTED_MODULE_4__","dynamicContentWidgetMap","Map","dynamicContentWidgets","classesToBeReinstantiated","highlightEditorialContentMap","classes","mediaHighlightMap","heroBannerMap","mediaHighlightVideoMap","dynamicContentContainers","dynamicContentContainer","handleDynamicContentContainer","reinstantiateClasses","warn","picturefill","highlightEditorialContentClasses","highlightEditorialContentClass","mediaHighlightContentClasses","mediaHighlightContentClass","heroBannerContentClasses","heroBannerContentClass","modal","maForm","checkboxes","mailField","isCboxesSelected","isMailValid","checked","owlCarouselUtls","bindClass","opts","isBindMouseWheel","owl","owlCarousel","PaginationUtil","containerDiv","elementsPerPage","targetElementsClass","minElements","perPage","ScrollUtil","backtop","animate","stop","fadeOut","scroll","scrollPercent","isInViewport","fadeIn","SHARE_PROPS","Share","clipboard__WEBPACK_IMPORTED_MODULE_0__","clipboard__WEBPACK_IMPORTED_MODULE_0___default","DROPDOWN_BTN_CLASS","DROPDOWN_ID","MODAL_ID","SHARE_SOCIAL_BTN_CLASS","SHARE_SMALL_ICON_CLASS","BTN_DROPDOWN_COPY_ID","BTN_MODAL_COPY_ID","BTN_COPY_CLASS","DATA_TOGGLE","DATA_URL","DATA_SHARE_URL","DATA_CLIPBOARD_TEXT","DATA_SHARE_SOCIAL","MODAL_SEARCH","initializeForDynamicContent","showModal","mouseup","has","share","jsnid_copy","toast","handleScrollAndResize","closeShareModal","dataUrl","data_jsnid","isModal","btnCopy","offset","innerHeight","rect","getBoundingClientRect","space","left","copyLinkValue","navigator","writeText","shareDesktop","shareMobile","shareUrl","social","shareFacebook","shareTwitter","shareLinkedIn","shareMail","url","openPopupWindow","title","popupWindow","lastPosition","onscroll","absDiff","shareUtils","Tooltip","x","y","id","className","insertBefore","firstChild","innerHTML","display","offsetWidth","gloss","localUrl","site","baseUrl","servletURL","async","jsonResult","JSON","parse","responseText","j","content","properties","dataKey","desc","description","tooltip","placement","html","dataType","k","glossary","currentPage","settings","extend","paginatorIndicatorsContainer","paginatorId","apiUrl","indicatorsContainerSelector","initAjaxPaginator","paginatorIndicatorsContainerSelector","paginatorPrevContainerSelector","paginatorNextContainerSelector","elementsCount","pagesCount","Math","ceil","removeIndicators","injectPaginatorHtml","drawIndicators","showElements","each","jQuery","paginator","contentBox","contentSelector","indicatorsContainerSelectorPages","showLoader","page","success","status","xhr","htmlContent","elementCount","count","drawAjaxIndicators","bindToIndicatorArrowClick","hideLoader","handleError","pagPrevArrow","pagNextArrow","clickedPage","clearIndicatorClickHandler","scrollintoview","duration","pageCount","createIndicator","elementClass","append","paginatorContainerSelector","handleIndicatorClick","isCurrent","start","end","ttShowMore","elementsContainerSelector","targetElementsSelector","indicatorsContainerClass","mainContainerSelector","completeTargetElementsSelector","viewMoreSelector","viewLessSelector","injectIndicatorsContainer","allElements","toggleIndicatorsContainer","showMultiplier","handleShowHideButtons","indicatorsHtml","showHide","showButton","buttonSelector","hideButton","startIndex","endIndex","Utils","mobile_detect__WEBPACK_IMPORTED_MODULE_0__","mobile_detect__WEBPACK_IMPORTED_MODULE_0___default","detect","platform","msie","str","parts","expiryDays","domain","path","secure","exdate","setDate","getDate","localStorageKey","localStorageEncrypt","localStorageValue","localStorage","getItem","atob","btoa","setItem","elementTop","elementBottom","outerHeight","viewportTop","viewportBottom","date","isStarting","isPrimitive","dates","newDate","setYear","setMonth","setHours","setMinutes","setSeconds","bool","isIosDevice","stopBodyScrollingiOSPreventFunction","passive","allPublicationItems","publicationItem","allAccordionsItems","accordionItem","currentSectionLastVisiblePublicationItem","currentSectionLastVisibleAccordionItem","isLastVisiblePublicationItemAnAccordion","accordionDetailItem","publicationListContainers","thereArePublicationLists","checkLastVisiblePublicationItem","checkLastVisibleAccordionsElement","trimmedDropdownButtonText","trim","YtUtils","_common_digital_data__WEBPACK_IMPORTED_MODULE_0__","YT_API_SRC","BASE_RATIO","onYouTubeIframeAPIReadyCallbacks","onYouTubeIframeAPIReady","ytUtils","createPlayer","playerId","ytId","playerDefaults","isAutoPlay","heightPriority","player","checkYtScript","YT","Player","events","onReady","onPlayerReady","onStateChange","onPlayerStateChange","playerVars","h","section","handleClickItemFormatVideo","setSize","loadPlaylist","loadVideoById","cuePlaylist","cueVideoById","playerdefaults","loop","playVideo","w","ratio","pauseVideo","stopVideo","ytScript","src","firstScriptTag","getElementsByTagName","f","RichTextAnchrosCarousel","_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__","richTextAnchrosCarousel","nav","mouseDrag","center","autoWidth","navText","rewind","handleRichTextActiveItems","scrollLeftIntervalId","scrollRightIntervalId","setInterval","clearInterval","richTextSections","notAnchoredRichTextSections","scrollDistance","richTextSection","eq","currentRichTextItem","currentRichTextItemHref","richTextParagraphToReach","richTextParagraphPosition","headerHeight","scrollOffset","scrollYPosition","scrollTo","behavior","updateRichTextActiveItems","HeaderSearchCarousel","headerSearchCarousel","HEADER_PROPS","HeaderComponent","_common_animate__WEBPACK_IMPORTED_MODULE_1__","EXPLORE_MENU","EXPLORE_CLASS","EXPLORE_TITLE","EXPLORE_BTN_CLOSE_ID","EXLORE_BTN_ID","EXLORE_BTN_EXTERNAL_ID","EXPLORE_TAB_TOPIC_BTN_ID","EXPLORE_TAB_FORMAT_BTN_ID","EXPLORE_TAB_TOPIC_CONTENT_CLASS","EXPLORE_TAB_FORMAT_CONTENT_CLASS","EXPLORE_PADDLE_NAVIGATION_BREAKPOINT","EXPLORE_MENU_CONTAINER_CLASS","EXPLORE_MENU_STATIC_ITEM_CLASS","EXPLORE_MENU_STATIC_LAST_ITEM_CLASS","EXPLORE_MENU_ITEM_CLASS","EXPLORE_MENU_LAST_ITEM_CLASS","EXPLORE_MENU_MOBILE_BUTTON_CLASS","EXPLORE_MENU_ITEM_CLASS_FIRST_LEVEL","EXPLORE_CARD","CLASS","PRINCIPAL_CLASS","ADDED_CLASS","ADDED_STATUS","REMOVED_STATUS","LINK_CLASS","ADD_REMOVE_BTN_CLASS","HEADER_MAIN","MAIN_HEADER_CLASS","PRE_HEADER_ID","PRE_HEADER_DESKTOP_HEIGHT","SEARCH_BAR_ID","LANGUAGE_DROPDOWN_BUTTON_CLASS","OUR_CHANNEL_BTN_ID","MOBILE_OUR_CHANNEL_BTN_ID","OUR_CHANNEL_CLOSE_BTN_ID","MOBILE_HEADER_BREAKPOINT","HEADER_SEARCH","MINIMUM_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT","MAXIMUM_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT","INDEX_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT","MINIMUM_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE","MAXIMUM_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE","INDEX_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE","MINIMUM_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE","MAXIMUM_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE","INDEX_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE","MINIMUM_DESKTOP_MAIN_WRAPPER_MARGIN_TOP","MAXIMUM_DESKTOP_MAIN_WRAPPER_MARGIN_TOP","INDEX_DESKTOP_MAIN_WRAPPER_MARGIN_TOP","CLASSES","MAIN_CONTAINER_CLASS","MAIN_WRAPPER_CLASS","HOME_PAGE_CONTAINER_CLASS","SEARCH_PAGE_CONTAINER_CLASS","SEARCH_BAR_CONTAINER_CLASS","SEARCH_INPUT_CLASS","MODAL_SEARCH_INPUT_CLASS","VOCAL_SEARCH_HEADER_BUTTON_CLASS","CLEAR_SEARCH_HEADER_BUTTON_CLASS","VOCAL_SEARCH_MODAL_BUTTON_CLASS","CLEAR_SEARCH_MODAL_BUTTON_CLASS","VOCAL_SEARCH_MODAL_ABORT_SEARCH_BUTTON_CLASS","SEARCH_INPUT_ICON_CLASS","BODY_UNSCROLLABLE_CLASS","STICKY_CLASS","HIDDEN_MOBILE_CLASS","HEADER_LIGHT_CLASS","HEADER_LIGHT_PARTIAL_CLASS","HEADER_LIGHT_PARTIAL_MOBILE_CLASS","SLIDE_IN_DOWN_CLASS","SLIDE_IN_UP_CLASS","MOBILE_SEARCH_MODAL_ID","MOBILE_SEARCH_MODAL_VOCAL_SEARCH_LOADING_CLASS","MOBILE_SEARCH_MODAL_SEARCH_LINKS_CLASS","ADD_REMOVE_BTN_SECTION_CORPORATE_A_CLASS","ADD_REMOVE_BTN_SECTION_MAGAZINE_CLASS","STORAGE","KEY","ENCODING","exploreMenu","syncExploreStorageWithHtml","handleExploreMenu","handleScroll","handlePreHeaderButtons","handleContainerClass","handleMobileModal","handleSearchClearButton","handleSearchOpenButton","headerStorage","getLocalStorage","exploreMenuPrincipalCards","dataInfo","getExploreMenuCardDataAttributesObj","addRemoveExploreMenuCard","exploreMenuStorageDynamicElementsArray","exploreMenuHtmlDynamicElementsArray","exploreMenuCards","exploreFirstLevelMenuHtmlDynamicElementsToBeAdded","comparerStorageWithHtml","htmlArray","current","dataset","comparerHtmlWithStorage","storageArray","storageItem","addExploreFirstlevelMenuItem","editExploreMenuItems","exploreFirstLevelMenuHtmlDynamicElementsToBeRemoved","afterSlideInDownAnimation","exploreMenuItem","handleExploreMenuScrolling","exploreMenuItemToBeAnimated","yellowLink","handleAddRemoveButtonsSectionCorporateA","exploreMenuCardAddRemoveButton","exploreMenuTopicTabContent","exploreMenuFormatTabContent","exploreBtn","exploreBtnExternal","exploreCloseBtn","exploreMenuTopicTabButton","exploreMenuFormatTabButton","showExploreMenu","hideExploreMenu","unmapCardsClick","topicBtn","showExploreTabTopicContent","formatBtn","showExploreTabFormatContent","addRemoveButtonsSectionCorporate","addRemoveButtonsSectionMagazine","addRemoveButtons","currentAddRemoveBtn","addRemoveBtnId","exploreMenuCardWithSameId","updateCurrentAddRemoveBtn","isOutsideExplore","exploreCloseBtnIfAddRemove","scrollToOffset","leftPaddle","rightPaddle","menuItems","scrollDuration","gradientLeft","gradientRight","paddleMargin","marginItems","menuPadding","msieversion","getMenuWrapperSize","getMenuSize","menuTotalSize","clientWidth","handleExploreMenuNavigation","menuWrapperSize","menuSize","menuInvisibleSize","handleScrollEvent","menuPosition","menuEndOffset","checkMsieversion","getMenuPosition","scrollLeft","handleArrowClick","arrowScrollDirection","menuPartialSize","scrollQty","partialItemResidualScrollQty","previousMenuItemIndex","checkMenuWrapperMaxWidth","menuWrapper","menuContainerSize","wasteDifferenceMenu","menuWrapperMaxSize","floor","hasMenuWrapperMaxWidth","applyExploreMenuHandling","handleScrollToOffsetMobile","exploreMenuCardDataAttributes","dataId","exploreMenuCardDataAttributesObj","exploreMenuStorageItemObj","referencedExploreMenuCard","link","decodedUrl","isActiveClass","removeExploreMenuStorageItem","after","before","exploreMenuCardToBeUpdated","exploreMenuHtmlItemObj","currentStorage","stringifiedStorage","parsedStorage","updatedStorage","concat","stringify","newStorage","setLocalStorage","removalItemId","splice","afterAddedItemZoomInAction","afterFadeOutAction","afterRemovedItemZoomInAction","exploreMenuCard","addExploreMenuStorageItem","updateCurrentCard","exploreMenuCardLink","mapExploreMenuCardsAction","lastScrollDown","lastScrollTop","scrollTopIncrement","scrollTopBreakpoint","onScrollLeftMobile","menuPos","isHomePage","isSearchPage","newScroll","scrollY","handleHomeScroll","handleSearchScroll","handleInternalScroll","handleHomeScrollMobile","handleInternalScrollMobile","manageHeaderVisibility","headerSearchBarContainer","headerSearchInput","headerSearchIcon","mainWrapper","searchBarContainerHeight","headerInputFontSize","headerIconFontSize","mainWrapperMarginTop","toFixed","headerType","mainHeader","preHeader","alwaysVisibleHeader","languageDropdown","toggleLanguageDropdown","ourChannelSection","ourChannelBtn","ourChannelMobileBtn","dropdown","ourChannelWithDataBtn","mainWrapperActualMarginTop","ourChannelCloseBtn","ourChannelBtnAnchor","showOurChannel","hideOurChannel","innerWidth","mainContainer","modalClassToAssign","vocalSearchHeaderButton","vocalSearchModalButton","vocalSearchModalAbortButton","showVocalSearchLoading","hideVocalSearchLoading","handleVocalSearch","vocalSearchRecordingButton","recordingAnimationContainer","dataUploadUrl","Recorder","isRecordingSupported","recorder","encoderPath","onstart","onstop","onstreamerror","message","ondataavailable","typedArray","blob","Blob","reader","FileReader","onload","audioInput","submit","readAsDataURL","startAudioRecording","stopAudioRecording","record","abort","loadWorker","searchOpenLink","toggleClass","catch","header","pushy","pushyLeft","pushyOpenLeft","pushyOpenRight","siteOverlay","menuBtn","menuBtnFocus","menuCloseBtn","menuLinkFocus","menuSpeed","menuWidth","submenuClass","submenuOpenClass","submenuClosedClass","submenu","mobileMenuBreakpoint","languageItemsMenuMobile","loginMyeniItemMenuMobile","loginItemMenuMobile","keyup","keyCode","cssTransforms3d","closePushy","closePushyFallback","opened","togglePushy","one","openPushyFallback","right","toggleSubmenu","selected","siblings","externalLinkMenu","windowHeight","contentMenuHeight","csstransforms3d","supported","transforms","getComputedStyle","getPropertyValue","itemAnchor","checkMobileMenuOpenStatus","isMobileMenuOpen","Breadcrumbs","ellipsed","history","back","links","ellipse","Calendar","viewMore","viewLess","truncateText","showMore","showLess","spaceIndex","newText","CardExternalLink","CarouselEditorial","CarouselBigCard","carouserEditorialContainerClass","responsive","items","slideBy","componentBigCard","componentCategoryCard","CarouselEvent","carouserContainerClass","href_target","eventTarget","GenericCarousel","genericCarousel","slibeBy","owlCars","trident","owlWidth","currentWidth","activeButton","activeOwlItem","allOwlItems","currentOwlItemPosition","CarouselGlobalPresence","CarouselPlaces","waterwheelCarousel","startingOptions","carousel","initializeCarouselData","itemsContainer","totalItems","containerWidth","containerHeight","currentCenterItem","previousCenterItem","calculations","carouselRotationsLeft","currentlyMoving","itemsAnimating","currentSpeed","speed","intervalTimer","currentDirection","leftItemsCount","rightItemsCount","performingSetup","activeClassName","autoPlay","clearTimeout","autoPlayTimer","moveOnce","abs","preload","$imageElements","totalImages","loadedImages","preloadImages","complete","setOriginalItemDimensions","forcedImageWidth","forcedImageHeight","forceImageDimensionsIfEnabled","preCalculatePositionProperties","$firstItem","distance","opacity","horizonOffset","separation","flankingItems","horizonOffsetMultiplier","separationMultiplier","opacityMultiplier","edgeFadeEnabled","setupCarousel","horizon","orientation","centerPosLeft","centerPosTop","oldPosition","currentPosition","depth","setupStarterRotation","startingItem","round","moveItem","itemIndex","pos","performCalculations","$item","newPosition","newDistanceFromCenter","distanceFactor","pow","sizeMultiplier","newWidth","newHeight","widthDifference","heightDifference","newOffset","newDistance","newLeft","newTop","newOpacity","newDepth","animationEasing","itemAnimationComplete","TweenMax","to","scaleX","scaleY","ease","rotateCarousel","movedToCenter","movedFromCenter","rotations","quickerForFurther","flankingAllowance","itemPosition","imageNav","clickedCenter","movingFromCenter","movingToCenter","nextItemFromCenter","$next","first","prevItemFromCenter","$prev","prev","last","direction","keydown","keyboardNav","which","keyboardNavOverride","reload","newOptions","combineDefaultWith","defaults","recalculateInitialOptionsResponsive","whaterWheelCarouselDefaults","linkHandling","noop","whaterWheelCarouselDefaultsResponsive","recalculateInitialOptionsResponsivePhotoGallery","$carouselsPublications","carouselsPublicationsIndex","defaultPhotoGalleryOptions","currentCarousel","er","swipe","swipeStatus","phase","triggerOnTouchEnd","threshold","resizeTimer","windowInitialWidth","newPhotoGalleryOptions","ContactsCarousel","CorporateCarousel","DateTable","trunc","isNaN","genData","MobileOptionsDark","animation","legend","bottom","orient","legendData","icon","itemWidth","itemHeight","itemGap","selectedMode","textStyle","color","fontFamily","series","radius","seriesData","emphasis","itemStyle","shadowBlur","shadowOffsetX","shadowColor","label","formatter","labelLine","lineStyle","MobileOptionsLight","DesktopOptionsDark","DesktopOptionsLight","charts","myChart","echarts","isDark","setOption","graph","nameList","labels","bgColor","datasets","backgroundColor","lab","toUpperCase","sections","handleTableScroll","pie","MOBILE_OPTIONS","DESKTOP_OPTIONS","update","leftBtn","rightBtn","dt","eniFocusArea","scrollXDiv","thActive","nextTh","onAfter","diff","previousTh","getDomain","splitDomain","getUrl","correctUrl","getPath","getLink","targetWidget","redirect","modalAll","resetModal","stopImmediatePropagation","redirectUrl","jsonResultTitle","jsonResultStringifyTitle","jsonResultSubtitle","jsonResultStringifySubtitle","subtitle","jsonStringifyTextdisclaimer","textdisclaimer","jsonResultTextdisclaimer","jsonResultStringifyIagree","checkboxlabel","jsonResultIagree","jsonResultStringifyYes","yes","jsonResultYes","jsonResultStringifyNo","no","jsonResultNo","jsonResultStringifyRedirect","redirectionnotacceptance","jsonResultRedirect","jsonResultStringifyContinue","labelbuttonCheckbox","jsonResultContinue","insertAfter","backdrop","keyboard","btnIAgree","checkSpace","buttons","X","EditorialCollectionCard","resize","handleViewMoreContainerResize","handleCards","handleViewMoreClick","handleViewLessClick","catEl","viewMoreContainer","cards","card","details","detail","btn","EDITORIAL_CONTENT_LIST_PROPS","EditorialContentList","TITLE_CLASS","handleTitleHover","divScroll","firstRow","secondRow","firstTh","typeCell","widthTable","totScroll","listRowMobile","classRow","firstTd","firstTdContent","replaceWith","$this","newrows","colorTh","colorTd","primoBefore","textCell","countColumns","classDivScroll","colorDiv","firstRowDiv","lastRowDiv","thBoldList","num","listA","cellIndex","rowList","listTd","widthTablePx","heightTablePx","clientHeight","widthTh","BoxDiv","BoxTable","BoxShadow","heightTd","heightBody","listCol","listRow","cellCol","EventCover","mobile_detect__WEBPACK_IMPORTED_MODULE_1__","mobile_detect__WEBPACK_IMPORTED_MODULE_1___default","currentEventHighlight","eventHighlights","mainSelector","eventStart","eventEnd","eventPublish","isCountdown","currentDate","countdownContainer","liveContainer","onDemandContainer","startCountdown","handlePastEvent","handleLiveEvent","publishDate","progressBar","now","progressBarWidth","days","hours","minutes","seconds","EVENT_HIGHLIGHT_PROPS","EventHighlightHome","SECTION_CLASS","heroBanner","initCountDown","countdownStart","countdownEnd","cta","disclaimer","linkCta","linkCtaTarget","disclaimerStatus","EventHighlight","isDouble","startDateContainer","startDateContainer2","currentEvent","moment","FormatVideoPlayer","_common_yt_utils__WEBPACK_IMPORTED_MODULE_0__","_common_owl_carousel__WEBPACK_IMPORTED_MODULE_1__","seasonParams","getParameterByName","episodeParams","seasonCarousel","episode","season","elem","dots","startPosition","category_old","category","detach","wrap","initMobile","initDesktop","handleVideo","appendTo","pauseVideoFull","videoSection","picture","ytEmbedded","timestamp","createInstance","autoplay","autohide","modestbranding","rel","showinfo","controls","disablekb","enablejsapi","iv_load_policy","startVideo","yt","FullVideoImage","videoSections","top_of_element","bottom_of_element","handleVideoScroll","bottom_of_screen","top_of_screen","SHOW_MORE_STATUS","GlobalPresenceCardCountry4","DEFAULT","SHOW_MORE","SHOW_LESS","handleViewMore","handleViewLess","handleCountryCard","showMoreStatus","handleDesktopPagination","handleMobilePagination","ProjectHighlight","handlePaginations","handlePrevPage","handleNextPage","goTo","slides","actualPage","totalPage","totPage","prevBtn","nextBtn","pageHideBtn","scrollIntoView","imgContainer","GridCard3","handleClick2","isSafari","isIphone","isMobileIosSafari","ontouchmove","HERO_BANNER_PROPS","HeroBannerHomepage","VIDEO_SECTION_CLASS","autoplayTimeout","autoplayHoverPause","responsiveClass","onInitialized","startProgressBar","onTranslate","resetProgressBar","onTranslated","transition","titles","counterBullet","itemTitle","matchMedia","magnificPopup","mainClass","iframe","markup","cursor","verticalFit","tError","closeBtnInside","closeMarkup","tClose","callbacks","mainSelectorDetail","HerobannerVideoSwitch","timing","desktop","stack","checkSize","carousels","timer","initCarousel","draw","img","HIGHLIGHT_EDITORIAL_CONTENT_PROPS","HighlightEditorialContent","TWO_CONTENT_COL","IdentityCard","IframeResizer","handleIframeResize","iframeEurolandToBeResized","iframeToBeResized","idEurolandIframeToResize","EurolandToolIntegrationObject","idIframeToResize","iFrameResize","Infographics","InteractiveMapDetail","_common_tooltip__WEBPACK_IMPORTED_MODULE_0__","MAX_ZOOM_DETAIL","DEFAULT_ZOOM_DETAIL","MIN_ZOOM_DETAIL","ispointer","INIT_ZOOM_DETAIL","mapDiv","initMapDetail","closeBtn","handleLocation","handleZoom","handleCloseBtn","titlemap","titleColor","countTitle","markerNormal","scaledSize","google","maps","Size","labelOrigin","Point","anchor","markerSelected","selectedMarkers","lastZooms","gMarkers","zoomDefault","mapTypeId","maxZoom","minZoom","disableDefaultUI","markers","handleGeoJson","detailsMap","nation","categoryMap","pin","assign","pin_selected","gMarker","Marker","LatLng","lat","lng","zIndex","optimized","setMap","addListener","setIcon","selectNation","categoryMarker","markerCluster","MarkerClusterer","styles","textColor","textSize","getZoom","actualMarker","detailActualDiv","setZoom","setCenter","getPosition","detailDiv","buttonCont","geoJsonUrl","getJSON","geoJson","addGeoJson","idPropertyName","setStyle","fillColor","getProperty","fillOpacity","strokeColor","strokeOpacity","strokeWeight","bounds","LatLngBounds","feature","getGeometry","forEachLatLng","latlng","fitBounds","selectArea","features","myRegexp","regexResult","stroke","percent","geometry","coordinates","createSidePanel","handleMarkers","btnclose","getElementsByClassName","h3","bar","boundsFeature","progressbar","titleContainer","abstractContainer","areaContainer","geolocation","getCurrentPosition","coords","latitude","longitude","inOrOut","newZoom","InteractiveMapLight","MAX_ZOOM_LIGHT","MIN_ZOOM_LIGHT","initMapLight","alt","zoom","mapLock","nationMap","north","south","west","east","restriction","latLngBounds","strictBounds","InteractiveMap","MAX_ZOOM","MIN_ZOOM","initMap","showTooltip","hideTooltip","wa","propt","pageX","pageY","marker","JOULE_EVENT_HIGHLIGHT_PROPS","JouleEventHighlight","ManagerDetail","moreContent","showViewMoreDiv","ManagersCard","_common_animate__WEBPACK_IMPORTED_MODULE_0__","handleCardLink","row","btnLess","btnMore","MediaCollectionDetailCover","_common_yt_utils__WEBPACK_IMPORTED_MODULE_1__","_common_utils__WEBPACK_IMPORTED_MODULE_2__","handlePlaylistClick","handleContentClick","handleGalleryPlaylistContainerScroll","iconContainer","parentContainer","handleActive","closePlaylistContainer","soundcloudUrl","switchSoundCloudIframe","photoPos","goToPhoto","ytVideoIndex","loadYTVideo","SC_URL","ytu","playVideoAt","MEDIA_HIGHLIGHT_PROPS","MediaHighlight","MediaHighlightPlay","MEDIA_HIGHLIGHT_1COL","MEDIA_HIGHLIGHT_2COL","handleOver","handleVideoHover","info","video","NumbersHighlight","NumbersCarousel","OUR_CHANNEL_PANEL_PROPS","OurChannelPanel","PeopleTab","PhotoGallery","photoGalleryContainerClass","handleSwipe","image","titleSrc","youtube","srcAction","gallery","enabled","navigateByImgClick","arrowMarkup","tPrev","tNext","tCounter","stopBodyScrollingiOS","elementParse","markupParse","template","iframeDescription","photoGalleryItem","PublicationList","publicationsItemContainers","publicationsItemContainer","publicationsItemContainerSection","SearchImages","_common_share__WEBPACK_IMPORTED_MODULE_1__","SingleImageVideo","vimeo","gmaps","TabNewComponent","setMaxChildWidth","handleTabClick","max_width","max","parseFloat","clickedBtn","allBtnsCurrentSection","currentSectionContent","startPositionBtn","finalPositionBtn","screenWidth","contentId","showContentById","TabComponent","Timeline","yearsOwl","removeAlmostActiveYears","handleAlmostActiveYears","cardsOwl","onDragged","handleDragItem","handleClickYearItem","itemActive","prevItem","nextItem","ToolInvestor"],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA,KAAO,CAl/UG,CAo/UV,KAAM,sCACN;;+CADM,CAIN,kCAJM,CAKN,KAAO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","file":"app.min.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\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/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/clipboard/dist/clipboard.js\":\n/*!**************************************************!*\\\n  !*** ./node_modules/clipboard/dist/clipboard.js ***!\n  \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\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/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n    var selectedText;\n\n    if (element.nodeName === 'SELECT') {\n        element.focus();\n\n        selectedText = element.value;\n    }\n    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n        var isReadOnly = element.hasAttribute('readonly');\n\n        if (!isReadOnly) {\n            element.setAttribute('readonly', '');\n        }\n\n        element.select();\n        element.setSelectionRange(0, element.value.length);\n\n        if (!isReadOnly) {\n            element.removeAttribute('readonly');\n        }\n\n        selectedText = element.value;\n    }\n    else {\n        if (element.hasAttribute('contenteditable')) {\n            element.focus();\n        }\n\n        var selection = window.getSelection();\n        var range = document.createRange();\n\n        range.selectNodeContents(element);\n        selection.removeAllRanges();\n        selection.addRange(range);\n\n        selectedText = selection.toString();\n    }\n\n    return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n  // Keep this empty so it's easier to inherit from\n  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n  on: function (name, callback, ctx) {\n    var e = this.e || (this.e = {});\n\n    (e[name] || (e[name] = [])).push({\n      fn: callback,\n      ctx: ctx\n    });\n\n    return this;\n  },\n\n  once: function (name, callback, ctx) {\n    var self = this;\n    function listener () {\n      self.off(name, listener);\n      callback.apply(ctx, arguments);\n    };\n\n    listener._ = callback\n    return this.on(name, listener, ctx);\n  },\n\n  emit: function (name) {\n    var data = [].slice.call(arguments, 1);\n    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n    var i = 0;\n    var len = evtArr.length;\n\n    for (i; i < len; i++) {\n      evtArr[i].fn.apply(evtArr[i].ctx, data);\n    }\n\n    return this;\n  },\n\n  off: function (name, callback) {\n    var e = this.e || (this.e = {});\n    var evts = e[name];\n    var liveEvents = [];\n\n    if (evts && callback) {\n      for (var i = 0, len = evts.length; i < len; i++) {\n        if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n          liveEvents.push(evts[i]);\n      }\n    }\n\n    // Remove event from queue to prevent memory leak\n    // Suggested by https://github.com/lazd\n    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n    (liveEvents.length)\n      ? e[name] = liveEvents\n      : delete e[name];\n\n    return this;\n  }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n    if (!target && !type && !callback) {\n        throw new Error('Missing required arguments');\n    }\n\n    if (!is.string(type)) {\n        throw new TypeError('Second argument must be a String');\n    }\n\n    if (!is.fn(callback)) {\n        throw new TypeError('Third argument must be a Function');\n    }\n\n    if (is.node(target)) {\n        return listenNode(target, type, callback);\n    }\n    else if (is.nodeList(target)) {\n        return listenNodeList(target, type, callback);\n    }\n    else if (is.string(target)) {\n        return listenSelector(target, type, callback);\n    }\n    else {\n        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n    }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n    node.addEventListener(type, callback);\n\n    return {\n        destroy: function() {\n            node.removeEventListener(type, callback);\n        }\n    }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n    Array.prototype.forEach.call(nodeList, function(node) {\n        node.addEventListener(type, callback);\n    });\n\n    return {\n        destroy: function() {\n            Array.prototype.forEach.call(nodeList, function(node) {\n                node.removeEventListener(type, callback);\n            });\n        }\n    }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n    return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n    return value !== undefined\n        && value instanceof HTMLElement\n        && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return value !== undefined\n        && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n        && ('length' in value)\n        && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n    return typeof value === 'string'\n        || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n    var listenerFn = listener.apply(this, arguments);\n\n    element.addEventListener(type, listenerFn, useCapture);\n\n    return {\n        destroy: function() {\n            element.removeEventListener(type, listenerFn, useCapture);\n        }\n    }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n    // Handle the regular Element usage\n    if (typeof elements.addEventListener === 'function') {\n        return _delegate.apply(null, arguments);\n    }\n\n    // Handle Element-less usage, it defaults to global delegation\n    if (typeof type === 'function') {\n        // Use `document` as the first parameter, then apply arguments\n        // This is a short way to .unshift `arguments` without running into deoptimizations\n        return _delegate.bind(null, document).apply(null, arguments);\n    }\n\n    // Handle Selector-based usage\n    if (typeof elements === 'string') {\n        elements = document.querySelectorAll(elements);\n    }\n\n    // Handle Array-like based usage\n    return Array.prototype.map.call(elements, function (element) {\n        return _delegate(element, selector, type, callback, useCapture);\n    });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n    return function(e) {\n        e.delegateTarget = closest(e.target, selector);\n\n        if (e.delegateTarget) {\n            callback.call(element, e);\n        }\n    }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n    var proto = Element.prototype;\n\n    proto.matches = proto.matchesSelector ||\n                    proto.mozMatchesSelector ||\n                    proto.msMatchesSelector ||\n                    proto.oMatchesSelector ||\n                    proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n    while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n        if (typeof element.matches === 'function' &&\n            element.matches(selector)) {\n          return element;\n        }\n        element = element.parentNode;\n    }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n    /**\n     * @param {Object} options\n     */\n    function ClipboardAction(options) {\n        _classCallCheck(this, ClipboardAction);\n\n        this.resolveOptions(options);\n        this.initSelection();\n    }\n\n    /**\n     * Defines base properties passed from constructor.\n     * @param {Object} options\n     */\n\n\n    _createClass(ClipboardAction, [{\n        key: 'resolveOptions',\n        value: function resolveOptions() {\n            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n            this.action = options.action;\n            this.container = options.container;\n            this.emitter = options.emitter;\n            this.target = options.target;\n            this.text = options.text;\n            this.trigger = options.trigger;\n\n            this.selectedText = '';\n        }\n\n        /**\n         * Decides which selection strategy is going to be applied based\n         * on the existence of `text` and `target` properties.\n         */\n\n    }, {\n        key: 'initSelection',\n        value: function initSelection() {\n            if (this.text) {\n                this.selectFake();\n            } else if (this.target) {\n                this.selectTarget();\n            }\n        }\n\n        /**\n         * Creates a fake textarea element, sets its value from `text` property,\n         * and makes a selection on it.\n         */\n\n    }, {\n        key: 'selectFake',\n        value: function selectFake() {\n            var _this = this;\n\n            var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n            this.removeFake();\n\n            this.fakeHandlerCallback = function () {\n                return _this.removeFake();\n            };\n            this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n            this.fakeElem = document.createElement('textarea');\n            // Prevent zooming on iOS\n            this.fakeElem.style.fontSize = '12pt';\n            // Reset box model\n            this.fakeElem.style.border = '0';\n            this.fakeElem.style.padding = '0';\n            this.fakeElem.style.margin = '0';\n            // Move element out of screen horizontally\n            this.fakeElem.style.position = 'absolute';\n            this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n            // Move element to the same position vertically\n            var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n            this.fakeElem.style.top = yPosition + 'px';\n\n            this.fakeElem.setAttribute('readonly', '');\n            this.fakeElem.value = this.text;\n\n            this.container.appendChild(this.fakeElem);\n\n            this.selectedText = select_default()(this.fakeElem);\n            this.copyText();\n        }\n\n        /**\n         * Only removes the fake element after another click event, that way\n         * a user can hit `Ctrl+C` to copy because selection still exists.\n         */\n\n    }, {\n        key: 'removeFake',\n        value: function removeFake() {\n            if (this.fakeHandler) {\n                this.container.removeEventListener('click', this.fakeHandlerCallback);\n                this.fakeHandler = null;\n                this.fakeHandlerCallback = null;\n            }\n\n            if (this.fakeElem) {\n                this.container.removeChild(this.fakeElem);\n                this.fakeElem = null;\n            }\n        }\n\n        /**\n         * Selects the content from element passed on `target` property.\n         */\n\n    }, {\n        key: 'selectTarget',\n        value: function selectTarget() {\n            this.selectedText = select_default()(this.target);\n            this.copyText();\n        }\n\n        /**\n         * Executes the copy operation based on the current selection.\n         */\n\n    }, {\n        key: 'copyText',\n        value: function copyText() {\n            var succeeded = void 0;\n\n            try {\n                succeeded = document.execCommand(this.action);\n            } catch (err) {\n                succeeded = false;\n            }\n\n            this.handleResult(succeeded);\n        }\n\n        /**\n         * Fires an event based on the copy operation result.\n         * @param {Boolean} succeeded\n         */\n\n    }, {\n        key: 'handleResult',\n        value: function handleResult(succeeded) {\n            this.emitter.emit(succeeded ? 'success' : 'error', {\n                action: this.action,\n                text: this.selectedText,\n                trigger: this.trigger,\n                clearSelection: this.clearSelection.bind(this)\n            });\n        }\n\n        /**\n         * Moves focus away from `target` and back to the trigger, removes current selection.\n         */\n\n    }, {\n        key: 'clearSelection',\n        value: function clearSelection() {\n            if (this.trigger) {\n                this.trigger.focus();\n            }\n            document.activeElement.blur();\n            window.getSelection().removeAllRanges();\n        }\n\n        /**\n         * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n         * @param {String} action\n         */\n\n    }, {\n        key: 'destroy',\n\n\n        /**\n         * Destroy lifecycle.\n         */\n        value: function destroy() {\n            this.removeFake();\n        }\n    }, {\n        key: 'action',\n        set: function set() {\n            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n            this._action = action;\n\n            if (this._action !== 'copy' && this._action !== 'cut') {\n                throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n            }\n        }\n\n        /**\n         * Gets the `action` property.\n         * @return {String}\n         */\n        ,\n        get: function get() {\n            return this._action;\n        }\n\n        /**\n         * Sets the `target` property using an element\n         * that will be have its content copied.\n         * @param {Element} target\n         */\n\n    }, {\n        key: 'target',\n        set: function set(target) {\n            if (target !== undefined) {\n                if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n                    if (this.action === 'copy' && target.hasAttribute('disabled')) {\n                        throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n                    }\n\n                    if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n                        throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n                    }\n\n                    this._target = target;\n                } else {\n                    throw new Error('Invalid \"target\" value, use a valid Element');\n                }\n            }\n        }\n\n        /**\n         * Gets the `target` property.\n         * @return {String|HTMLElement}\n         */\n        ,\n        get: function get() {\n            return this._target;\n        }\n    }]);\n\n    return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n    _inherits(Clipboard, _Emitter);\n\n    /**\n     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n     * @param {Object} options\n     */\n    function Clipboard(trigger, options) {\n        clipboard_classCallCheck(this, Clipboard);\n\n        var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n        _this.resolveOptions(options);\n        _this.listenClick(trigger);\n        return _this;\n    }\n\n    /**\n     * Defines if attributes would be resolved using internal setter functions\n     * or custom functions that were passed in the constructor.\n     * @param {Object} options\n     */\n\n\n    clipboard_createClass(Clipboard, [{\n        key: 'resolveOptions',\n        value: function resolveOptions() {\n            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n            this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n            this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n            this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n            this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n        }\n\n        /**\n         * Adds a click event listener to the passed trigger.\n         * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n         */\n\n    }, {\n        key: 'listenClick',\n        value: function listenClick(trigger) {\n            var _this2 = this;\n\n            this.listener = listen_default()(trigger, 'click', function (e) {\n                return _this2.onClick(e);\n            });\n        }\n\n        /**\n         * Defines a new `ClipboardAction` on each click event.\n         * @param {Event} e\n         */\n\n    }, {\n        key: 'onClick',\n        value: function onClick(e) {\n            var trigger = e.delegateTarget || e.currentTarget;\n\n            if (this.clipboardAction) {\n                this.clipboardAction = null;\n            }\n\n            this.clipboardAction = new clipboard_action({\n                action: this.action(trigger),\n                target: this.target(trigger),\n                text: this.text(trigger),\n                container: this.container,\n                trigger: trigger,\n                emitter: this\n            });\n        }\n\n        /**\n         * Default `action` lookup function.\n         * @param {Element} trigger\n         */\n\n    }, {\n        key: 'defaultAction',\n        value: function defaultAction(trigger) {\n            return getAttributeValue('action', trigger);\n        }\n\n        /**\n         * Default `target` lookup function.\n         * @param {Element} trigger\n         */\n\n    }, {\n        key: 'defaultTarget',\n        value: function defaultTarget(trigger) {\n            var selector = getAttributeValue('target', trigger);\n\n            if (selector) {\n                return document.querySelector(selector);\n            }\n        }\n\n        /**\n         * Returns the support of the given action, or all actions if no action is\n         * given.\n         * @param {String} [action]\n         */\n\n    }, {\n        key: 'defaultText',\n\n\n        /**\n         * Default `text` lookup function.\n         * @param {Element} trigger\n         */\n        value: function defaultText(trigger) {\n            return getAttributeValue('text', trigger);\n        }\n\n        /**\n         * Destroy lifecycle.\n         */\n\n    }, {\n        key: 'destroy',\n        value: function destroy() {\n            this.listener.destroy();\n\n            if (this.clipboardAction) {\n                this.clipboardAction.destroy();\n                this.clipboardAction = null;\n            }\n        }\n    }], [{\n        key: 'isSupported',\n        value: function isSupported() {\n            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n            var actions = typeof action === 'string' ? [action] : action;\n            var support = !!document.queryCommandSupported;\n\n            actions.forEach(function (action) {\n                support = support && !!document.queryCommandSupported(action);\n            });\n\n            return support;\n        }\n    }]);\n\n    return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n    var attribute = 'data-clipboard-' + suffix;\n\n    if (!element.hasAttribute(attribute)) {\n        return;\n    }\n\n    return element.getAttribute(attribute);\n}\n\n/* harmony default export */ var clipboard = __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n/***/ }),\n\n/***/ \"./node_modules/mobile-detect/mobile-detect.js\":\n/*!*****************************************************!*\\\n  !*** ./node_modules/mobile-detect/mobile-detect.js ***!\n  \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// THIS FILE IS GENERATED - DO NOT EDIT!\n/*!mobile-detect v1.4.4 2019-09-21*/\n/*global module:false, define:false*/\n/*jshint latedef:false*/\n/*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/\n(function (define, undefined) {\ndefine(function () {\n    'use strict';\n\n    var impl = {};\n\n    impl.mobileDetectRules = {\n    \"phones\": {\n        \"iPhone\": \"\\\\biPhone\\\\b|\\\\biPod\\\\b\",\n        \"BlackBerry\": \"BlackBerry|\\\\bBB10\\\\b|rim[0-9]+|\\\\b(BBA100|BBB100|BBD100|BBE100|BBF100|STH100)\\\\b-[0-9]+\",\n        \"HTC\": \"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\\\bEVO\\\\b|T-Mobile G1|Z520m|Android [0-9.]+; Pixel\",\n        \"Nexus\": \"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6\",\n        \"Dell\": \"Dell[;]? (Streak|Aero|Venue|Venue Pro|Flash|Smoke|Mini 3iX)|XCD28|XCD35|\\\\b001DL\\\\b|\\\\b101DL\\\\b|\\\\bGS01\\\\b\",\n        \"Motorola\": \"Motorola|DROIDX|DROID BIONIC|\\\\bDroid\\\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\\\bMoto E\\\\b|XT1068|XT1092|XT1052\",\n        \"Samsung\": \"\\\\bSamsung\\\\b|SM-G950F|SM-G955F|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C|SM-A310F|GT-I9190|SM-J500FN|SM-G903F|SM-J330F\",\n        \"LG\": \"\\\\bLG\\\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323|M257)|LM-G710\",\n        \"Sony\": \"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533\",\n        \"Asus\": \"Asus.*Galaxy|PadFone.*Mobile\",\n        \"NokiaLumia\": \"Lumia [0-9]{3,4}\",\n        \"Micromax\": \"Micromax.*\\\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\\\b\",\n        \"Palm\": \"PalmSource|Palm\",\n        \"Vertu\": \"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature\",\n        \"Pantech\": \"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790\",\n        \"Fly\": \"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250\",\n        \"Wiko\": \"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM\",\n        \"iMobile\": \"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)\",\n        \"SimValley\": \"\\\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\\\b\",\n        \"Wolfgang\": \"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q\",\n        \"Alcatel\": \"Alcatel\",\n        \"Nintendo\": \"Nintendo (3DS|Switch)\",\n        \"Amoi\": \"Amoi\",\n        \"INQ\": \"INQ\",\n        \"OnePlus\": \"ONEPLUS\",\n        \"GenericPhone\": \"Tapatalk|PDA;|SAGEM|\\\\bmmp\\\\b|pocket|\\\\bpsp\\\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\\\bwap\\\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser\"\n    },\n    \"tablets\": {\n        \"iPad\": \"iPad|iPad.*Mobile\",\n        \"NexusTablet\": \"Android.*Nexus[\\\\s]+(7|9|10)\",\n        \"GoogleTablet\": \"Android.*Pixel C\",\n        \"SamsungTablet\": \"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y?|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y|SM-T585|SM-T285|SM-T825|SM-W708|SM-T835|SM-T830|SM-T837V|SM-T720|SM-T510|SM-T387V\",\n        \"Kindle\": \"Kindle|Silk.*Accelerated|Android.*\\\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\\\b|Android.*Silk\\/[0-9.]+ like Chrome\\/[0-9.]+ (?!Mobile)\",\n        \"SurfaceTablet\": \"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)\",\n        \"HPTablet\": \"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10\",\n        \"AsusTablet\": \"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\\\bK00F\\\\b|\\\\bK00C\\\\b|\\\\bK00E\\\\b|\\\\bK00L\\\\b|TX201LA|ME176C|ME102A|\\\\bM80TA\\\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\\\bME70C\\\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\\\\bP027\\\\b|\\\\bP024\\\\b|\\\\bP00C\\\\b\",\n        \"BlackBerryTablet\": \"PlayBook|RIM Tablet\",\n        \"HTCtablet\": \"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410\",\n        \"MotorolaTablet\": \"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617\",\n        \"NookTablet\": \"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2\",\n        \"AcerTablet\": \"Android.*; \\\\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\\\b|W3-810|\\\\bA3-A10\\\\b|\\\\bA3-A11\\\\b|\\\\bA3-A20\\\\b|\\\\bA3-A30\",\n        \"ToshibaTablet\": \"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO\",\n        \"LGTablet\": \"\\\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\\\b\",\n        \"FujitsuTablet\": \"Android.*\\\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\\\b\",\n        \"PrestigioTablet\": \"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002\",\n        \"LenovoTablet\": \"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)|TB-X103F|TB-X304X|TB-X304F|TB-X304L|TB-X505F|TB-X505L|TB-X505X|TB-X605F|TB-X605L|TB-8703F|TB-8703X|TB-8703N|TB-8704N|TB-8704F|TB-8704X|TB-8704V|TB-7304F|TB-7304I|TB-7304X|Tab2A7-10F|Tab2A7-20F|TB2-X30L|YT3-X50L|YT3-X50F|YT3-X50M|YT-X705F|YT-X703F|YT-X703L|YT-X705L|YT-X705X|TB2-X30F|TB2-X30L|TB2-X30M|A2107A-F|A2107A-H|TB3-730F|TB3-730M|TB3-730X|TB-7504F|TB-7504X\",\n        \"DellTablet\": \"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7\",\n        \"YarvikTablet\": \"Android.*\\\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\\\b\",\n        \"MedionTablet\": \"Android.*\\\\bOYO\\\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB\",\n        \"ArnovaTablet\": \"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2\",\n        \"IntensoTablet\": \"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004\",\n        \"IRUTablet\": \"M702pro\",\n        \"MegafonTablet\": \"MegaFon V9|\\\\bZTE V9\\\\b|Android.*\\\\bMT7A\\\\b\",\n        \"EbodaTablet\": \"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)\",\n        \"AllViewTablet\": \"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)\",\n        \"ArchosTablet\": \"\\\\b(101G9|80G9|A101IT)\\\\b|Qilive 97R|Archos5|\\\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\\\b\",\n        \"AinolTablet\": \"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark\",\n        \"NokiaLumiaTablet\": \"Lumia 2520\",\n        \"SonyTablet\": \"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP641|SGP612|SOT31|SGP771|SGP611|SGP612|SGP712\",\n        \"PhilipsTablet\": \"\\\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\\\b\",\n        \"CubeTablet\": \"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT\",\n        \"CobyTablet\": \"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010\",\n        \"MIDTablet\": \"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10\",\n        \"MSITablet\": \"MSI \\\\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\\\b\",\n        \"SMiTTablet\": \"Android.*(\\\\bMID\\\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)\",\n        \"RockChipTablet\": \"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A\",\n        \"FlyTablet\": \"IQ310|Fly Vision\",\n        \"bqTablet\": \"Android.*(bq)?.*\\\\b(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris ([E|M]10|M8))\\\\b|Maxwell.*Lite|Maxwell.*Plus\",\n        \"HuaweiTablet\": \"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim|M2-A01L|BAH-L09|BAH-W09|AGS-L09|CMR-AL19\",\n        \"NecTablet\": \"\\\\bN-06D|\\\\bN-08D\",\n        \"PantechTablet\": \"Pantech.*P4100\",\n        \"BronchoTablet\": \"Broncho.*(N701|N708|N802|a710)\",\n        \"VersusTablet\": \"TOUCHPAD.*[78910]|\\\\bTOUCHTAB\\\\b\",\n        \"ZyncTablet\": \"z1000|Z99 2G|z930|z990|z909|Z919|z900\",\n        \"PositivoTablet\": \"TB07STA|TB10STA|TB07FTA|TB10FTA\",\n        \"NabiTablet\": \"Android.*\\\\bNabi\",\n        \"KoboTablet\": \"Kobo Touch|\\\\bK080\\\\b|\\\\bVox\\\\b Build|\\\\bArc\\\\b Build\",\n        \"DanewTablet\": \"DSlide.*\\\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\\\b\",\n        \"TexetTablet\": \"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE\",\n        \"PlaystationTablet\": \"Playstation.*(Portable|Vita)\",\n        \"TrekstorTablet\": \"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab\",\n        \"PyleAudioTablet\": \"\\\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\\\b\",\n        \"AdvanTablet\": \"Android.* \\\\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\\\b \",\n        \"DanyTechTablet\": \"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1\",\n        \"GalapadTablet\": \"Android.*\\\\bG1\\\\b(?!\\\\))\",\n        \"MicromaxTablet\": \"Funbook|Micromax.*\\\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\\\b\",\n        \"KarbonnTablet\": \"Android.*\\\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\\\b\",\n        \"AllFineTablet\": \"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide\",\n        \"PROSCANTablet\": \"\\\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\\\b\",\n        \"YONESTablet\": \"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026\",\n        \"ChangJiaTablet\": \"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503\",\n        \"GUTablet\": \"TX-A1301|TX-M9002|Q702|kf026\",\n        \"PointOfViewTablet\": \"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10\",\n        \"OvermaxTablet\": \"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)|Qualcore 1027\",\n        \"HCLTablet\": \"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync\",\n        \"DPSTablet\": \"DPS Dream 9|DPS Dual 7\",\n        \"VistureTablet\": \"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10\",\n        \"CrestaTablet\": \"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989\",\n        \"MediatekTablet\": \"\\\\bMT8125|MT8389|MT8135|MT8377\\\\b\",\n        \"ConcordeTablet\": \"Concorde([ ]+)?Tab|ConCorde ReadMan\",\n        \"GoCleverTablet\": \"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042\",\n        \"ModecomTablet\": \"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003\",\n        \"VoninoTablet\": \"\\\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\\\bQ8\\\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\\\b\",\n        \"ECSTablet\": \"V07OT2|TM105A|S10OT1|TR10CS1\",\n        \"StorexTablet\": \"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab\",\n        \"VodafoneTablet\": \"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497|VFD 1400\",\n        \"EssentielBTablet\": \"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2\",\n        \"RossMoorTablet\": \"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711\",\n        \"iMobileTablet\": \"i-mobile i-note\",\n        \"TolinoTablet\": \"tolino tab [0-9.]+|tolino shine\",\n        \"AudioSonicTablet\": \"\\\\bC-22Q|T7-QC|T-17B|T-17P\\\\b\",\n        \"AMPETablet\": \"Android.* A78 \",\n        \"SkkTablet\": \"Android.* (SKYPAD|PHOENIX|CYCLOPS)\",\n        \"TecnoTablet\": \"TECNO P9|TECNO DP8D\",\n        \"JXDTablet\": \"Android.* \\\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\\\b\",\n        \"iJoyTablet\": \"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)\",\n        \"FX2Tablet\": \"FX2 PAD7|FX2 PAD10\",\n        \"XoroTablet\": \"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151\",\n        \"ViewsonicTablet\": \"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a\",\n        \"VerizonTablet\": \"QTAQZ3|QTAIR7|QTAQTZ3|QTASUN1|QTASUN2|QTAXIA1\",\n        \"OdysTablet\": \"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\\\bXELIO\\\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10\",\n        \"CaptivaTablet\": \"CAPTIVA PAD\",\n        \"IconbitTablet\": \"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S\",\n        \"TeclastTablet\": \"T98 4G|\\\\bP80\\\\b|\\\\bX90HD\\\\b|X98 Air|X98 Air 3G|\\\\bX89\\\\b|P80 3G|\\\\bX80h\\\\b|P98 Air|\\\\bX89HD\\\\b|P98 3G|\\\\bP90HD\\\\b|P89 3G|X98 3G|\\\\bP70h\\\\b|P79HD 3G|G18d 3G|\\\\bP79HD\\\\b|\\\\bP89s\\\\b|\\\\bA88\\\\b|\\\\bP10HD\\\\b|\\\\bP19HD\\\\b|G18 3G|\\\\bP78HD\\\\b|\\\\bA78\\\\b|\\\\bP75\\\\b|G17s 3G|G17h 3G|\\\\bP85t\\\\b|\\\\bP90\\\\b|\\\\bP11\\\\b|\\\\bP98t\\\\b|\\\\bP98HD\\\\b|\\\\bG18d\\\\b|\\\\bP85s\\\\b|\\\\bP11HD\\\\b|\\\\bP88s\\\\b|\\\\bA80HD\\\\b|\\\\bA80se\\\\b|\\\\bA10h\\\\b|\\\\bP89\\\\b|\\\\bP78s\\\\b|\\\\bG18\\\\b|\\\\bP85\\\\b|\\\\bA70h\\\\b|\\\\bA70\\\\b|\\\\bG17\\\\b|\\\\bP18\\\\b|\\\\bA80s\\\\b|\\\\bA11s\\\\b|\\\\bP88HD\\\\b|\\\\bA80h\\\\b|\\\\bP76s\\\\b|\\\\bP76h\\\\b|\\\\bP98\\\\b|\\\\bA10HD\\\\b|\\\\bP78\\\\b|\\\\bP88\\\\b|\\\\bA11\\\\b|\\\\bA10t\\\\b|\\\\bP76a\\\\b|\\\\bP76t\\\\b|\\\\bP76e\\\\b|\\\\bP85HD\\\\b|\\\\bP85a\\\\b|\\\\bP86\\\\b|\\\\bP75HD\\\\b|\\\\bP76v\\\\b|\\\\bA12\\\\b|\\\\bP75a\\\\b|\\\\bA15\\\\b|\\\\bP76Ti\\\\b|\\\\bP81HD\\\\b|\\\\bA10\\\\b|\\\\bT760VE\\\\b|\\\\bT720HD\\\\b|\\\\bP76\\\\b|\\\\bP73\\\\b|\\\\bP71\\\\b|\\\\bP72\\\\b|\\\\bT720SE\\\\b|\\\\bC520Ti\\\\b|\\\\bT760\\\\b|\\\\bT720VE\\\\b|T720-3GE|T720-WiFi\",\n        \"OndaTablet\": \"\\\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\\\b[\\\\s]+|V10 \\\\b4G\\\\b\",\n        \"JaytechTablet\": \"TPC-PA762\",\n        \"BlaupunktTablet\": \"Endeavour 800NG|Endeavour 1010\",\n        \"DigmaTablet\": \"\\\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\\\b\",\n        \"EvolioTablet\": \"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\\\bEvotab\\\\b|\\\\bNeura\\\\b\",\n        \"LavaTablet\": \"QPAD E704|\\\\bIvoryS\\\\b|E-TAB IVORY|\\\\bE-TAB\\\\b\",\n        \"AocTablet\": \"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712\",\n        \"MpmanTablet\": \"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\\\bMPG7\\\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010\",\n        \"CelkonTablet\": \"CT695|CT888|CT[\\\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\\\bCT-1\\\\b\",\n        \"WolderTablet\": \"miTab \\\\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\\\b\",\n        \"MediacomTablet\": \"M-MPI10C3G|M-SP10EG|M-SP10EGP|M-SP10HXAH|M-SP7HXAH|M-SP10HXBH|M-SP8HXAH|M-SP8MXA\",\n        \"MiTablet\": \"\\\\bMI PAD\\\\b|\\\\bHM NOTE 1W\\\\b\",\n        \"NibiruTablet\": \"Nibiru M1|Nibiru Jupiter One\",\n        \"NexoTablet\": \"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI\",\n        \"LeaderTablet\": \"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100\",\n        \"UbislateTablet\": \"UbiSlate[\\\\s]?7C\",\n        \"PocketBookTablet\": \"Pocketbook\",\n        \"KocasoTablet\": \"\\\\b(TB-1207)\\\\b\",\n        \"HisenseTablet\": \"\\\\b(F5281|E2371)\\\\b\",\n        \"Hudl\": \"Hudl HT7S3|Hudl 2\",\n        \"TelstraTablet\": \"T-Hub2\",\n        \"GenericTablet\": \"Android.*\\\\b97D\\\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\\\bA7EB\\\\b|CatNova8|A1_07|CT704|CT1002|\\\\bM721\\\\b|rk30sdk|\\\\bEVOTAB\\\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\\\bM6pro\\\\b|CT1020W|arc 10HD|\\\\bTP750\\\\b|\\\\bQTAQZ3\\\\b|WVT101|TM1088|KT107\"\n    },\n    \"oss\": {\n        \"AndroidOS\": \"Android\",\n        \"BlackBerryOS\": \"blackberry|\\\\bBB10\\\\b|rim tablet os\",\n        \"PalmOS\": \"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino\",\n        \"SymbianOS\": \"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\\\bS60\\\\b\",\n        \"WindowsMobileOS\": \"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Windows Mobile|Windows Phone [0-9.]+|WCE;\",\n        \"WindowsPhoneOS\": \"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;\",\n        \"iOS\": \"\\\\biPhone.*Mobile|\\\\biPod|\\\\biPad|AppleCoreMedia\",\n        \"iPadOS\": \"CPU OS 13\",\n        \"MeeGoOS\": \"MeeGo\",\n        \"MaemoOS\": \"Maemo\",\n        \"JavaOS\": \"J2ME\\/|\\\\bMIDP\\\\b|\\\\bCLDC\\\\b\",\n        \"webOS\": \"webOS|hpwOS\",\n        \"badaOS\": \"\\\\bBada\\\\b\",\n        \"BREWOS\": \"BREW\"\n    },\n    \"uas\": {\n        \"Chrome\": \"\\\\bCrMo\\\\b|CriOS|Android.*Chrome\\/[.0-9]* (Mobile)?\",\n        \"Dolfin\": \"\\\\bDolfin\\\\b\",\n        \"Opera\": \"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\\/[0-9.]+$|Coast\\/[0-9.]+\",\n        \"Skyfire\": \"Skyfire\",\n        \"Edge\": \"Mobile Safari\\/[.0-9]* Edge\",\n        \"IE\": \"IEMobile|MSIEMobile\",\n        \"Firefox\": \"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS\",\n        \"Bolt\": \"bolt\",\n        \"TeaShark\": \"teashark\",\n        \"Blazer\": \"Blazer\",\n        \"Safari\": \"Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari\",\n        \"WeChat\": \"\\\\bMicroMessenger\\\\b\",\n        \"UCBrowser\": \"UC.*Browser|UCWEB\",\n        \"baiduboxapp\": \"baiduboxapp\",\n        \"baidubrowser\": \"baidubrowser\",\n        \"DiigoBrowser\": \"DiigoBrowser\",\n        \"Mercury\": \"\\\\bMercury\\\\b\",\n        \"ObigoBrowser\": \"Obigo\",\n        \"NetFront\": \"NF-Browser\",\n        \"GenericBrowser\": \"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger\",\n        \"PaleMoon\": \"Android.*PaleMoon|Mobile.*PaleMoon\"\n    },\n    \"props\": {\n        \"Mobile\": \"Mobile\\/[VER]\",\n        \"Build\": \"Build\\/[VER]\",\n        \"Version\": \"Version\\/[VER]\",\n        \"VendorID\": \"VendorID\\/[VER]\",\n        \"iPad\": \"iPad.*CPU[a-z ]+[VER]\",\n        \"iPhone\": \"iPhone.*CPU[a-z ]+[VER]\",\n        \"iPod\": \"iPod.*CPU[a-z ]+[VER]\",\n        \"Kindle\": \"Kindle\\/[VER]\",\n        \"Chrome\": [\n            \"Chrome\\/[VER]\",\n            \"CriOS\\/[VER]\",\n            \"CrMo\\/[VER]\"\n        ],\n        \"Coast\": [\n            \"Coast\\/[VER]\"\n        ],\n        \"Dolfin\": \"Dolfin\\/[VER]\",\n        \"Firefox\": [\n            \"Firefox\\/[VER]\",\n            \"FxiOS\\/[VER]\"\n        ],\n        \"Fennec\": \"Fennec\\/[VER]\",\n        \"Edge\": \"Edge\\/[VER]\",\n        \"IE\": [\n            \"IEMobile\\/[VER];\",\n            \"IEMobile [VER]\",\n            \"MSIE [VER];\",\n            \"Trident\\/[0-9.]+;.*rv:[VER]\"\n        ],\n        \"NetFront\": \"NetFront\\/[VER]\",\n        \"NokiaBrowser\": \"NokiaBrowser\\/[VER]\",\n        \"Opera\": [\n            \" OPR\\/[VER]\",\n            \"Opera Mini\\/[VER]\",\n            \"Version\\/[VER]\"\n        ],\n        \"Opera Mini\": \"Opera Mini\\/[VER]\",\n        \"Opera Mobi\": \"Version\\/[VER]\",\n        \"UCBrowser\": [\n            \"UCWEB[VER]\",\n            \"UC.*Browser\\/[VER]\"\n        ],\n        \"MQQBrowser\": \"MQQBrowser\\/[VER]\",\n        \"MicroMessenger\": \"MicroMessenger\\/[VER]\",\n        \"baiduboxapp\": \"baiduboxapp\\/[VER]\",\n        \"baidubrowser\": \"baidubrowser\\/[VER]\",\n        \"SamsungBrowser\": \"SamsungBrowser\\/[VER]\",\n        \"Iron\": \"Iron\\/[VER]\",\n        \"Safari\": [\n            \"Version\\/[VER]\",\n            \"Safari\\/[VER]\"\n        ],\n        \"Skyfire\": \"Skyfire\\/[VER]\",\n        \"Tizen\": \"Tizen\\/[VER]\",\n        \"Webkit\": \"webkit[ \\/][VER]\",\n        \"PaleMoon\": \"PaleMoon\\/[VER]\",\n        \"Gecko\": \"Gecko\\/[VER]\",\n        \"Trident\": \"Trident\\/[VER]\",\n        \"Presto\": \"Presto\\/[VER]\",\n        \"Goanna\": \"Goanna\\/[VER]\",\n        \"iOS\": \" \\\\bi?OS\\\\b [VER][ ;]{1}\",\n        \"Android\": \"Android [VER]\",\n        \"BlackBerry\": [\n            \"BlackBerry[\\\\w]+\\/[VER]\",\n            \"BlackBerry.*Version\\/[VER]\",\n            \"Version\\/[VER]\"\n        ],\n        \"BREW\": \"BREW [VER]\",\n        \"Java\": \"Java\\/[VER]\",\n        \"Windows Phone OS\": [\n            \"Windows Phone OS [VER]\",\n            \"Windows Phone [VER]\"\n        ],\n        \"Windows Phone\": \"Windows Phone [VER]\",\n        \"Windows CE\": \"Windows CE\\/[VER]\",\n        \"Windows NT\": \"Windows NT [VER]\",\n        \"Symbian\": [\n            \"SymbianOS\\/[VER]\",\n            \"Symbian\\/[VER]\"\n        ],\n        \"webOS\": [\n            \"webOS\\/[VER]\",\n            \"hpwOS\\/[VER];\"\n        ]\n    },\n    \"utils\": {\n        \"Bot\": \"Googlebot|facebookexternalhit|Google-AMPHTML|s~amp-validator|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom|contentkingapp\",\n        \"MobileBot\": \"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\\/M1A1-R2D2\",\n        \"DesktopMode\": \"WPDesktop\",\n        \"TV\": \"SonyDTV|HbbTV\",\n        \"WebKit\": \"(webkit)[ \\/]([\\\\w.]+)\",\n        \"Console\": \"\\\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|Nintendo Switch|PLAYSTATION|Xbox)\\\\b\",\n        \"Watch\": \"SM-V700\"\n    }\n};\n\n    // following patterns come from http://detectmobilebrowsers.com/\n    impl.detectMobileBrowsers = {\n        fullPattern: /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\n        shortPattern: /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n        tabletPattern: /android|ipad|playbook|silk/i\n    };\n\n    var hasOwnProp = Object.prototype.hasOwnProperty,\n        isArray;\n\n    impl.FALLBACK_PHONE = 'UnknownPhone';\n    impl.FALLBACK_TABLET = 'UnknownTablet';\n    impl.FALLBACK_MOBILE = 'UnknownMobile';\n\n    isArray = ('isArray' in Array) ?\n        Array.isArray : function (value) { return Object.prototype.toString.call(value) === '[object Array]'; };\n\n    function equalIC(a, b) {\n        return a != null && b != null && a.toLowerCase() === b.toLowerCase();\n    }\n\n    function containsIC(array, value) {\n        var valueLC, i, len = array.length;\n        if (!len || !value) {\n            return false;\n        }\n        valueLC = value.toLowerCase();\n        for (i = 0; i < len; ++i) {\n            if (valueLC === array[i].toLowerCase()) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    function convertPropsToRegExp(object) {\n        for (var key in object) {\n            if (hasOwnProp.call(object, key)) {\n                object[key] = new RegExp(object[key], 'i');\n            }\n        }\n    }\n\n    function prepareUserAgent(userAgent) {\n        return (userAgent || '').substr(0, 500); // mitigate vulnerable to ReDoS\n    }\n\n    (function init() {\n        var key, values, value, i, len, verPos, mobileDetectRules = impl.mobileDetectRules;\n        for (key in mobileDetectRules.props) {\n            if (hasOwnProp.call(mobileDetectRules.props, key)) {\n                values = mobileDetectRules.props[key];\n                if (!isArray(values)) {\n                    values = [values];\n                }\n                len = values.length;\n                for (i = 0; i < len; ++i) {\n                    value = values[i];\n                    verPos = value.indexOf('[VER]');\n                    if (verPos >= 0) {\n                        value = value.substring(0, verPos) + '([\\\\w._\\\\+]+)' + value.substring(verPos + 5);\n                    }\n                    values[i] = new RegExp(value, 'i');\n                }\n                mobileDetectRules.props[key] = values;\n            }\n        }\n        convertPropsToRegExp(mobileDetectRules.oss);\n        convertPropsToRegExp(mobileDetectRules.phones);\n        convertPropsToRegExp(mobileDetectRules.tablets);\n        convertPropsToRegExp(mobileDetectRules.uas);\n        convertPropsToRegExp(mobileDetectRules.utils);\n\n        // copy some patterns to oss0 which are tested first (see issue#15)\n        mobileDetectRules.oss0 = {\n            WindowsPhoneOS: mobileDetectRules.oss.WindowsPhoneOS,\n            WindowsMobileOS: mobileDetectRules.oss.WindowsMobileOS\n        };\n    }());\n\n    /**\n     * Test userAgent string against a set of rules and find the first matched key.\n     * @param {Object} rules (key is String, value is RegExp)\n     * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n     * @returns {String|null} the matched key if found, otherwise <tt>null</tt>\n     * @private\n     */\n    impl.findMatch = function(rules, userAgent) {\n        for (var key in rules) {\n            if (hasOwnProp.call(rules, key)) {\n                if (rules[key].test(userAgent)) {\n                    return key;\n                }\n            }\n        }\n        return null;\n    };\n\n    /**\n     * Test userAgent string against a set of rules and return an array of matched keys.\n     * @param {Object} rules (key is String, value is RegExp)\n     * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n     * @returns {Array} an array of matched keys, may be empty when there is no match, but not <tt>null</tt>\n     * @private\n     */\n    impl.findMatches = function(rules, userAgent) {\n        var result = [];\n        for (var key in rules) {\n            if (hasOwnProp.call(rules, key)) {\n                if (rules[key].test(userAgent)) {\n                    result.push(key);\n                }\n            }\n        }\n        return result;\n    };\n\n    /**\n     * Check the version of the given property in the User-Agent.\n     *\n     * @param {String} propertyName\n     * @param {String} userAgent\n     * @return {String} version or <tt>null</tt> if version not found\n     * @private\n     */\n    impl.getVersionStr = function (propertyName, userAgent) {\n        var props = impl.mobileDetectRules.props, patterns, i, len, match;\n        if (hasOwnProp.call(props, propertyName)) {\n            patterns = props[propertyName];\n            len = patterns.length;\n            for (i = 0; i < len; ++i) {\n                match = patterns[i].exec(userAgent);\n                if (match !== null) {\n                    return match[1];\n                }\n            }\n        }\n        return null;\n    };\n\n    /**\n     * Check the version of the given property in the User-Agent.\n     * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n     *\n     * @param {String} propertyName\n     * @param {String} userAgent\n     * @return {Number} version or <tt>NaN</tt> if version not found\n     * @private\n     */\n    impl.getVersion = function (propertyName, userAgent) {\n        var version = impl.getVersionStr(propertyName, userAgent);\n        return version ? impl.prepareVersionNo(version) : NaN;\n    };\n\n    /**\n     * Prepare the version number.\n     *\n     * @param {String} version\n     * @return {Number} the version number as a floating number\n     * @private\n     */\n    impl.prepareVersionNo = function (version) {\n        var numbers;\n\n        numbers = version.split(/[a-z._ \\/\\-]/i);\n        if (numbers.length === 1) {\n            version = numbers[0];\n        }\n        if (numbers.length > 1) {\n            version = numbers[0] + '.';\n            numbers.shift();\n            version += numbers.join('');\n        }\n        return Number(version);\n    };\n\n    impl.isMobileFallback = function (userAgent) {\n        return impl.detectMobileBrowsers.fullPattern.test(userAgent) ||\n            impl.detectMobileBrowsers.shortPattern.test(userAgent.substr(0,4));\n    };\n\n    impl.isTabletFallback = function (userAgent) {\n        return impl.detectMobileBrowsers.tabletPattern.test(userAgent);\n    };\n\n    impl.prepareDetectionCache = function (cache, userAgent, maxPhoneWidth) {\n        if (cache.mobile !== undefined) {\n            return;\n        }\n        var phone, tablet, phoneSized;\n\n        // first check for stronger tablet rules, then phone (see issue#5)\n        tablet = impl.findMatch(impl.mobileDetectRules.tablets, userAgent);\n        if (tablet) {\n            cache.mobile = cache.tablet = tablet;\n            cache.phone = null;\n            return; // unambiguously identified as tablet\n        }\n\n        phone = impl.findMatch(impl.mobileDetectRules.phones, userAgent);\n        if (phone) {\n            cache.mobile = cache.phone = phone;\n            cache.tablet = null;\n            return; // unambiguously identified as phone\n        }\n\n        // our rules haven't found a match -> try more general fallback rules\n        if (impl.isMobileFallback(userAgent)) {\n            phoneSized = MobileDetect.isPhoneSized(maxPhoneWidth);\n            if (phoneSized === undefined) {\n                cache.mobile = impl.FALLBACK_MOBILE;\n                cache.tablet = cache.phone = null;\n            } else if (phoneSized) {\n                cache.mobile = cache.phone = impl.FALLBACK_PHONE;\n                cache.tablet = null;\n            } else {\n                cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n                cache.phone = null;\n            }\n        } else if (impl.isTabletFallback(userAgent)) {\n            cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n            cache.phone = null;\n        } else {\n            // not mobile at all!\n            cache.mobile = cache.tablet = cache.phone = null;\n        }\n    };\n\n    // t is a reference to a MobileDetect instance\n    impl.mobileGrade = function (t) {\n        // impl note:\n        // To keep in sync w/ Mobile_Detect.php easily, the following code is tightly aligned to the PHP version.\n        // When changes are made in Mobile_Detect.php, copy this method and replace:\n        //     $this-> / t.\n        //     self::MOBILE_GRADE_(.) / '$1'\n        //     , self::VERSION_TYPE_FLOAT / (nothing)\n        //     isIOS() / os('iOS')\n        //     [reg] / (nothing)   <-- jsdelivr complaining about unescaped unicode character U+00AE\n        var $isMobile = t.mobile() !== null;\n\n        if (\n            // Apple iOS 3.2-5.1 - Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3), iPad 3 (5.1), original iPhone (3.1), iPhone 3 (3.2), 3GS (4.3), 4 (4.3 / 5.0), and 4S (5.1)\n            t.os('iOS') && t.version('iPad')>=4.3 ||\n            t.os('iOS') && t.version('iPhone')>=3.1 ||\n            t.os('iOS') && t.version('iPod')>=3.1 ||\n\n            // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)\n            // Android 3.1 (Honeycomb)  - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM\n            // Android 4.0 (ICS)  - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices\n            // Android 4.1 (Jelly Bean)  - Tested on a Galaxy Nexus and Galaxy 7\n            ( t.version('Android')>2.1 && t.is('Webkit') ) ||\n\n            // Windows Phone 7-7.5 - Tested on the HTC Surround (7.0) HTC Trophy (7.5), LG-E900 (7.5), Nokia Lumia 800\n            t.version('Windows Phone OS')>=7.0 ||\n\n            // Blackberry 7 - Tested on BlackBerry Torch 9810\n            // Blackberry 6.0 - Tested on the Torch 9800 and Style 9670\n            t.is('BlackBerry') && t.version('BlackBerry')>=6.0 ||\n            // Blackberry Playbook (1.0-2.0) - Tested on PlayBook\n            t.match('Playbook.*Tablet') ||\n\n            // Palm WebOS (1.4-2.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0)\n            ( t.version('webOS')>=1.4 && t.match('Palm|Pre|Pixi') ) ||\n            // Palm WebOS 3.0  - Tested on HP TouchPad\n            t.match('hp.*TouchPad') ||\n\n            // Firefox Mobile (12 Beta) - Tested on Android 2.3 device\n            ( t.is('Firefox') && t.version('Firefox')>=12 ) ||\n\n            // Chrome for Android - Tested on Android 4.0, 4.1 device\n            ( t.is('Chrome') && t.is('AndroidOS') && t.version('Android')>=4.0 ) ||\n\n            // Skyfire 4.1 - Tested on Android 2.3 device\n            ( t.is('Skyfire') && t.version('Skyfire')>=4.1 && t.is('AndroidOS') && t.version('Android')>=2.3 ) ||\n\n            // Opera Mobile 11.5-12: Tested on Android 2.3\n            ( t.is('Opera') && t.version('Opera Mobi')>11 && t.is('AndroidOS') ) ||\n\n            // Meego 1.2 - Tested on Nokia 950 and N9\n            t.is('MeeGoOS') ||\n\n            // Tizen (pre-release) - Tested on early hardware\n            t.is('Tizen') ||\n\n            // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser\n            // @todo: more tests here!\n            t.is('Dolfin') && t.version('Bada')>=2.0 ||\n\n            // UC Browser - Tested on Android 2.3 device\n            ( (t.is('UC Browser') || t.is('Dolfin')) && t.version('Android')>=2.3 ) ||\n\n            // Kindle 3 and Fire  - Tested on the built-in WebKit browser for each\n            ( t.match('Kindle Fire') ||\n                t.is('Kindle') && t.version('Kindle')>=3.0 ) ||\n\n            // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet\n            t.is('AndroidOS') && t.is('NookTablet') ||\n\n            // Chrome Desktop 11-21 - Tested on OS X 10.7 and Windows 7\n            t.version('Chrome')>=11 && !$isMobile ||\n\n            // Safari Desktop 4-5 - Tested on OS X 10.7 and Windows 7\n            t.version('Safari')>=5.0 && !$isMobile ||\n\n            // Firefox Desktop 4-13 - Tested on OS X 10.7 and Windows 7\n            t.version('Firefox')>=4.0 && !$isMobile ||\n\n            // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7\n            t.version('MSIE')>=7.0 && !$isMobile ||\n\n            // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7\n            // @reference: http://my.opera.com/community/openweb/idopera/\n            t.version('Opera')>=10 && !$isMobile\n\n            ){\n            return 'A';\n        }\n\n        if (\n            t.os('iOS') && t.version('iPad')<4.3 ||\n            t.os('iOS') && t.version('iPhone')<3.1 ||\n            t.os('iOS') && t.version('iPod')<3.1 ||\n\n            // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770\n            t.is('Blackberry') && t.version('BlackBerry')>=5 && t.version('BlackBerry')<6 ||\n\n            //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3\n            ( t.version('Opera Mini')>=5.0 && t.version('Opera Mini')<=6.5 &&\n                (t.version('Android')>=2.3 || t.is('iOS')) ) ||\n\n            // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)\n            t.match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||\n\n            // @todo: report this (tested on Nokia N71)\n            t.version('Opera Mobi')>=11 && t.is('SymbianOS')\n            ){\n            return 'B';\n        }\n\n        if (\n        // Blackberry 4.x - Tested on the Curve 8330\n            t.version('BlackBerry')<5.0 ||\n            // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)\n            t.match('MSIEMobile|Windows CE.*Mobile') || t.version('Windows Mobile')<=5.2\n\n            ){\n            return 'C';\n        }\n\n        //All older smartphone platforms and featurephones - Any device that doesn't support media queries\n        //will receive the basic, C grade experience.\n        return 'C';\n    };\n\n    impl.detectOS = function (ua) {\n        return impl.findMatch(impl.mobileDetectRules.oss0, ua) ||\n            impl.findMatch(impl.mobileDetectRules.oss, ua);\n    };\n\n    impl.getDeviceSmallerSide = function () {\n        return window.screen.width < window.screen.height ?\n            window.screen.width :\n            window.screen.height;\n    };\n\n    /**\n     * Constructor for MobileDetect object.\n     * <br>\n     * Such an object will keep a reference to the given user-agent string and cache most of the detect queries.<br>\n     * <div style=\"background-color: #d9edf7; border: 1px solid #bce8f1; color: #3a87ad; padding: 14px; border-radius: 2px; margin-top: 20px\">\n     *     <strong>Find information how to download and install:</strong>\n     *     <a href=\"https://github.com/hgoebl/mobile-detect.js/\">github.com/hgoebl/mobile-detect.js/</a>\n     * </div>\n     *\n     * @example <pre>\n     *     var md = new MobileDetect(window.navigator.userAgent);\n     *     if (md.mobile()) {\n     *         location.href = (md.mobileGrade() === 'A') ? '/mobile/' : '/lynx/';\n     *     }\n     * </pre>\n     *\n     * @param {string} userAgent typically taken from window.navigator.userAgent or http_header['User-Agent']\n     * @param {number} [maxPhoneWidth=600] <strong>only for browsers</strong> specify a value for the maximum\n     *        width of smallest device side (in logical \"CSS\" pixels) until a device detected as mobile will be handled\n     *        as phone.\n     *        This is only used in cases where the device cannot be classified as phone or tablet.<br>\n     *        See <a href=\"http://developer.android.com/guide/practices/screens_support.html\">Declaring Tablet Layouts\n     *        for Android</a>.<br>\n     *        If you provide a value < 0, then this \"fuzzy\" check is disabled.\n     * @constructor\n     * @global\n     */\n    function MobileDetect(userAgent, maxPhoneWidth) {\n        this.ua = prepareUserAgent(userAgent);\n        this._cache = {};\n        //600dp is typical 7\" tablet minimum width\n        this.maxPhoneWidth = maxPhoneWidth || 600;\n    }\n\n    MobileDetect.prototype = {\n        constructor: MobileDetect,\n\n        /**\n         * Returns the detected phone or tablet type or <tt>null</tt> if it is not a mobile device.\n         * <br>\n         * For a list of possible return values see {@link MobileDetect#phone} and {@link MobileDetect#tablet}.<br>\n         * <br>\n         * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n         * the patterns of <a href=\"http://detectmobilebrowsers.com/\">detectmobilebrowsers.com</a>. If this test\n         * is positive, a value of <code>UnknownPhone</code>, <code>UnknownTablet</code> or\n         * <code>UnknownMobile</code> is returned.<br>\n         * When used in browser, the decision whether phone or tablet is made based on <code>screen.width/height</code>.<br>\n         * <br>\n         * When used server-side (node.js), there is no way to tell the difference between <code>UnknownTablet</code>\n         * and <code>UnknownMobile</code>, so you will get <code>UnknownMobile</code> here.<br>\n         * Be aware that since v1.0.0 in this special case you will get <code>UnknownMobile</code> only for:\n         * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n         * In versions before v1.0.0 all 3 methods returned <code>UnknownMobile</code> which was tedious to use.\n         * <br>\n         * In most cases you will use the return value just as a boolean.\n         *\n         * @returns {String} the key for the phone family or tablet family, e.g. \"Nexus\".\n         * @function MobileDetect#mobile\n         */\n        mobile: function () {\n            impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n            return this._cache.mobile;\n        },\n\n        /**\n         * Returns the detected phone type/family string or <tt>null</tt>.\n         * <br>\n         * The returned tablet (family or producer) is one of following keys:<br>\n         * <br><tt>iPhone, BlackBerry, HTC, Nexus, Dell, Motorola, Samsung, LG, Sony, Asus,\n         * NokiaLumia, Micromax, Palm, Vertu, Pantech, Fly, Wiko, iMobile, SimValley,\n         * Wolfgang, Alcatel, Nintendo, Amoi, INQ, OnePlus, GenericPhone</tt><br>\n         * <br>\n         * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n         * the patterns of <a href=\"http://detectmobilebrowsers.com/\">detectmobilebrowsers.com</a>. If this test\n         * is positive, a value of <code>UnknownPhone</code> or <code>UnknownMobile</code> is returned.<br>\n         * When used in browser, the decision whether phone or tablet is made based on <code>screen.width/height</code>.<br>\n         * <br>\n         * When used server-side (node.js), there is no way to tell the difference between <code>UnknownTablet</code>\n         * and <code>UnknownMobile</code>, so you will get <code>null</code> here, while {@link MobileDetect#mobile}\n         * will return <code>UnknownMobile</code>.<br>\n         * Be aware that since v1.0.0 in this special case you will get <code>UnknownMobile</code> only for:\n         * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n         * In versions before v1.0.0 all 3 methods returned <code>UnknownMobile</code> which was tedious to use.\n         * <br>\n         * In most cases you will use the return value just as a boolean.\n         *\n         * @returns {String} the key of the phone family or producer, e.g. \"iPhone\"\n         * @function MobileDetect#phone\n         */\n        phone: function () {\n            impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n            return this._cache.phone;\n        },\n\n        /**\n         * Returns the detected tablet type/family string or <tt>null</tt>.\n         * <br>\n         * The returned tablet (family or producer) is one of following keys:<br>\n         * <br><tt>iPad, NexusTablet, GoogleTablet, SamsungTablet, Kindle, SurfaceTablet,\n         * HPTablet, AsusTablet, BlackBerryTablet, HTCtablet, MotorolaTablet, NookTablet,\n         * AcerTablet, ToshibaTablet, LGTablet, FujitsuTablet, PrestigioTablet,\n         * LenovoTablet, DellTablet, YarvikTablet, MedionTablet, ArnovaTablet,\n         * IntensoTablet, IRUTablet, MegafonTablet, EbodaTablet, AllViewTablet,\n         * ArchosTablet, AinolTablet, NokiaLumiaTablet, SonyTablet, PhilipsTablet,\n         * CubeTablet, CobyTablet, MIDTablet, MSITablet, SMiTTablet, RockChipTablet,\n         * FlyTablet, bqTablet, HuaweiTablet, NecTablet, PantechTablet, BronchoTablet,\n         * VersusTablet, ZyncTablet, PositivoTablet, NabiTablet, KoboTablet, DanewTablet,\n         * TexetTablet, PlaystationTablet, TrekstorTablet, PyleAudioTablet, AdvanTablet,\n         * DanyTechTablet, GalapadTablet, MicromaxTablet, KarbonnTablet, AllFineTablet,\n         * PROSCANTablet, YONESTablet, ChangJiaTablet, GUTablet, PointOfViewTablet,\n         * OvermaxTablet, HCLTablet, DPSTablet, VistureTablet, CrestaTablet,\n         * MediatekTablet, ConcordeTablet, GoCleverTablet, ModecomTablet, VoninoTablet,\n         * ECSTablet, StorexTablet, VodafoneTablet, EssentielBTablet, RossMoorTablet,\n         * iMobileTablet, TolinoTablet, AudioSonicTablet, AMPETablet, SkkTablet,\n         * TecnoTablet, JXDTablet, iJoyTablet, FX2Tablet, XoroTablet, ViewsonicTablet,\n         * VerizonTablet, OdysTablet, CaptivaTablet, IconbitTablet, TeclastTablet,\n         * OndaTablet, JaytechTablet, BlaupunktTablet, DigmaTablet, EvolioTablet,\n         * LavaTablet, AocTablet, MpmanTablet, CelkonTablet, WolderTablet, MediacomTablet,\n         * MiTablet, NibiruTablet, NexoTablet, LeaderTablet, UbislateTablet,\n         * PocketBookTablet, KocasoTablet, HisenseTablet, Hudl, TelstraTablet,\n         * GenericTablet</tt><br>\n         * <br>\n         * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n         * the patterns of <a href=\"http://detectmobilebrowsers.com/\">detectmobilebrowsers.com</a>. If this test\n         * is positive, a value of <code>UnknownTablet</code> or <code>UnknownMobile</code> is returned.<br>\n         * When used in browser, the decision whether phone or tablet is made based on <code>screen.width/height</code>.<br>\n         * <br>\n         * When used server-side (node.js), there is no way to tell the difference between <code>UnknownTablet</code>\n         * and <code>UnknownMobile</code>, so you will get <code>null</code> here, while {@link MobileDetect#mobile}\n         * will return <code>UnknownMobile</code>.<br>\n         * Be aware that since v1.0.0 in this special case you will get <code>UnknownMobile</code> only for:\n         * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n         * In versions before v1.0.0 all 3 methods returned <code>UnknownMobile</code> which was tedious to use.\n         * <br>\n         * In most cases you will use the return value just as a boolean.\n         *\n         * @returns {String} the key of the tablet family or producer, e.g. \"SamsungTablet\"\n         * @function MobileDetect#tablet\n         */\n        tablet: function () {\n            impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n            return this._cache.tablet;\n        },\n\n        /**\n         * Returns the (first) detected user-agent string or <tt>null</tt>.\n         * <br>\n         * The returned user-agent is one of following keys:<br>\n         * <br><tt>Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n         * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n         * ObigoBrowser, NetFront, GenericBrowser, PaleMoon</tt><br>\n         * <br>\n         * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n         * cases where a mobile device pretends to be more than one particular browser. You can get the\n         * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n         * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n         *\n         * @returns {String} the key for the detected user-agent or <tt>null</tt>\n         * @function MobileDetect#userAgent\n         */\n        userAgent: function () {\n            if (this._cache.userAgent === undefined) {\n                this._cache.userAgent = impl.findMatch(impl.mobileDetectRules.uas, this.ua);\n            }\n            return this._cache.userAgent;\n        },\n\n        /**\n         * Returns all detected user-agent strings.\n         * <br>\n         * The array is empty or contains one or more of following keys:<br>\n         * <br><tt>Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n         * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n         * ObigoBrowser, NetFront, GenericBrowser, PaleMoon</tt><br>\n         * <br>\n         * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n         * cases where a mobile device pretends to be more than one particular browser. You can get the\n         * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n         * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n         *\n         * @returns {Array} the array of detected user-agent keys or <tt>[]</tt>\n         * @function MobileDetect#userAgents\n         */\n        userAgents: function () {\n            if (this._cache.userAgents === undefined) {\n                this._cache.userAgents = impl.findMatches(impl.mobileDetectRules.uas, this.ua);\n            }\n            return this._cache.userAgents;\n        },\n\n        /**\n         * Returns the detected operating system string or <tt>null</tt>.\n         * <br>\n         * The operating system is one of following keys:<br>\n         * <br><tt>AndroidOS, BlackBerryOS, PalmOS, SymbianOS, WindowsMobileOS, WindowsPhoneOS,\n         * iOS, iPadOS, MeeGoOS, MaemoOS, JavaOS, webOS, badaOS, BREWOS</tt><br>\n         *\n         * @returns {String} the key for the detected operating system.\n         * @function MobileDetect#os\n         */\n        os: function () {\n            if (this._cache.os === undefined) {\n                this._cache.os = impl.detectOS(this.ua);\n            }\n            return this._cache.os;\n        },\n\n        /**\n         * Get the version (as Number) of the given property in the User-Agent.\n         * <br>\n         * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n         *\n         * @param {String} key a key defining a thing which has a version.<br>\n         *        You can use one of following keys:<br>\n         * <br><tt>Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n         * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n         * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n         * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon, Gecko, Trident,\n         * Presto, Goanna, iOS, Android, BlackBerry, BREW, Java, Windows Phone OS, Windows\n         * Phone, Windows CE, Windows NT, Symbian, webOS</tt><br>\n         *\n         * @returns {Number} the version as float or <tt>NaN</tt> if User-Agent doesn't contain this version.\n         *          Be careful when comparing this value with '==' operator!\n         * @function MobileDetect#version\n         */\n        version: function (key) {\n            return impl.getVersion(key, this.ua);\n        },\n\n        /**\n         * Get the version (as String) of the given property in the User-Agent.\n         * <br>\n         *\n         * @param {String} key a key defining a thing which has a version.<br>\n         *        You can use one of following keys:<br>\n         * <br><tt>Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n         * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n         * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n         * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon, Gecko, Trident,\n         * Presto, Goanna, iOS, Android, BlackBerry, BREW, Java, Windows Phone OS, Windows\n         * Phone, Windows CE, Windows NT, Symbian, webOS</tt><br>\n         *\n         * @returns {String} the \"raw\" version as String or <tt>null</tt> if User-Agent doesn't contain this version.\n         *\n         * @function MobileDetect#versionStr\n         */\n        versionStr: function (key) {\n            return impl.getVersionStr(key, this.ua);\n        },\n\n        /**\n         * Global test key against userAgent, os, phone, tablet and some other properties of userAgent string.\n         *\n         * @param {String} key the key (case-insensitive) of a userAgent, an operating system, phone or\n         *        tablet family.<br>\n         *        For a complete list of possible values, see {@link MobileDetect#userAgent},\n         *        {@link MobileDetect#os}, {@link MobileDetect#phone}, {@link MobileDetect#tablet}.<br>\n         *        Additionally you have following keys:<br>\n         * <br><tt>Bot, MobileBot, DesktopMode, TV, WebKit, Console, Watch</tt><br>\n         *\n         * @returns {boolean} <tt>true</tt> when the given key is one of the defined keys of userAgent, os, phone,\n         *                    tablet or one of the listed additional keys, otherwise <tt>false</tt>\n         * @function MobileDetect#is\n         */\n        is: function (key) {\n            return containsIC(this.userAgents(), key) ||\n                   equalIC(key, this.os()) ||\n                   equalIC(key, this.phone()) ||\n                   equalIC(key, this.tablet()) ||\n                   containsIC(impl.findMatches(impl.mobileDetectRules.utils, this.ua), key);\n        },\n\n        /**\n         * Do a quick test against navigator::userAgent.\n         *\n         * @param {String|RegExp} pattern the pattern, either as String or RegExp\n         *                        (a string will be converted to a case-insensitive RegExp).\n         * @returns {boolean} <tt>true</tt> when the pattern matches, otherwise <tt>false</tt>\n         * @function MobileDetect#match\n         */\n        match: function (pattern) {\n            if (!(pattern instanceof RegExp)) {\n                pattern = new RegExp(pattern, 'i');\n            }\n            return pattern.test(this.ua);\n        },\n\n        /**\n         * Checks whether the mobile device can be considered as phone regarding <code>screen.width</code>.\n         * <br>\n         * Obviously this method makes sense in browser environments only (not for Node.js)!\n         * @param {number} [maxPhoneWidth] the maximum logical pixels (aka. CSS-pixels) to be considered as phone.<br>\n         *        The argument is optional and if not present or falsy, the value of the constructor is taken.\n         * @returns {boolean|undefined} <code>undefined</code> if screen size wasn't detectable, else <code>true</code>\n         *          when screen.width is less or equal to maxPhoneWidth, otherwise <code>false</code>.<br>\n         *          Will always return <code>undefined</code> server-side.\n         */\n        isPhoneSized: function (maxPhoneWidth) {\n            return MobileDetect.isPhoneSized(maxPhoneWidth || this.maxPhoneWidth);\n        },\n\n        /**\n         * Returns the mobile grade ('A', 'B', 'C').\n         *\n         * @returns {String} one of the mobile grades ('A', 'B', 'C').\n         * @function MobileDetect#mobileGrade\n         */\n        mobileGrade: function () {\n            if (this._cache.grade === undefined) {\n                this._cache.grade = impl.mobileGrade(this);\n            }\n            return this._cache.grade;\n        }\n    };\n\n    // environment-dependent\n    if (typeof window !== 'undefined' && window.screen) {\n        MobileDetect.isPhoneSized = function (maxPhoneWidth) {\n            return maxPhoneWidth < 0 ? undefined : impl.getDeviceSmallerSide() <= maxPhoneWidth;\n        };\n    } else {\n        MobileDetect.isPhoneSized = function () {};\n    }\n\n    // should not be replaced by a completely new object - just overwrite existing methods\n    MobileDetect._impl = impl;\n    \n    MobileDetect.version = '1.4.4 2019-09-21';\n\n    return MobileDetect;\n}); // end of call of define()\n})((function (undefined) {\n    if ( true && module.exports) {\n        return function (factory) { module.exports = factory(); };\n    } else if (true) {\n        return __webpack_require__(/*! !webpack amd define */ \"./node_modules/webpack/buildin/amd-define.js\");\n    } else {}\n})());\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/amd-define.js\":\n/*!***************************************!*\\\n  !*** (webpack)/buildin/amd-define.js ***!\n  \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/global.js\":\n/*!***********************************!*\\\n  !*** (webpack)/buildin/global.js ***!\n  \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/animate.js\":\n/*!***************************************!*\\\n  !*** ./src/scripts/common/animate.js ***!\n  \\***************************************/\n/*! exports provided: animateCSS, ANIMATE_EFFECT */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"animateCSS\", function() { return animateCSS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ANIMATE_EFFECT\", function() { return ANIMATE_EFFECT; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nconst animateCSS = (element, animationName, callback) => {\r\n  const isIE = _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isIE();\r\n  const node = element instanceof String ? document.querySelector(element) : element;\r\n  if (isIE) {\r\n    $(node).addClass('animated');\r\n    $(node).addClass(animationName);\r\n  } else {\r\n    node.classList.add('animated', animationName);\r\n  }\r\n\r\n  function handleAnimationEnd() {\r\n    if (isIE) {\r\n      $(node).removeClass('animated');\r\n      $(node).removeClass(animationName);\r\n    } else {\r\n      node.classList.remove('animated', animationName);\r\n      node.removeEventListener('animationend', handleAnimationEnd);\r\n    }\r\n    if (typeof callback === 'function') callback();\r\n  }\r\n\r\n  node.addEventListener('animationend', handleAnimationEnd);\r\n};\r\n\r\nconst ANIMATE_EFFECT = Object.freeze({\r\n  BOUNCE_IN_UP: 'bounceInUp',\r\n  SLIDE_IN_UP: 'slideInUp',\r\n  SLIDE_IN_DOWN: 'slideInDown',\r\n  BOUNCE_IN_DOWN: 'bounceInDown',\r\n  ZOOM_IN: 'zoomIn',\r\n  FADE_IN: 'fadeIn',\r\n  FADE_IN_UP: 'fadeInUp',\r\n  FADE_OUT: 'fadeOut',\r\n  FADE_OUT_DOWN: 'fadeOutDown',\r\n  BOUNCE_IN: 'bounceIn'\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/card.js\":\n/*!************************************!*\\\n  !*** ./src/scripts/common/card.js ***!\n  \\************************************/\n/*! exports provided: CardComponent */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CardComponent\", function() { return CardComponent; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nclass CardComponent {\r\n    constructor() {\r\n\r\n        var isMobile = $(window).outerWidth() < 1024;\r\n        if (!isMobile) {\r\n            $('.card-editorial').hover(\r\n                (event) => {\r\n                    this.handleHover(event.target, true);\r\n                },\r\n                (event) => {\r\n                    this.handleHover(event.target, false);\r\n                }\r\n            );\r\n        }\r\n\r\n        $('.card-editorial, .cover-card-big, .cover-card').click(this.handleClick);\r\n    }\r\n\r\n    handleHover(el, inOut) {\r\n        try {\r\n            const yellowLine = $(el).hasClass('.card-editorial') ? $(el).find('i.dash') : $(el).parents('.card-editorial')\r\n                .find('i.dash');\r\n            if (yellowLine && yellowLine.length > 0) {\r\n                if (inOut) {\r\n                    yellowLine.addClass('active');\r\n                } else {\r\n                    yellowLine.removeClass('active');\r\n                }\r\n            } else {\r\n                const cardsEditorialActiveDashes = $('.card-editorial').find('i.dash.active');\r\n                if (cardsEditorialActiveDashes && cardsEditorialActiveDashes.length > 0) {\r\n                    for (let i = 0; i < cardsEditorialActiveDashes.length; i++) {\r\n                        const cardEditorialActiveDash = cardsEditorialActiveDashes[i];\r\n                        $(cardEditorialActiveDash).removeClass('active');\r\n                    }\r\n                }\r\n            }\r\n            return false;\r\n        } catch (ex) {\r\n\r\n        }\r\n    }\r\n\r\n    handleClick(event) {\r\n\r\n        // Carousel Publications - Prevent click when card is not centered/active\r\n        if ($(event.target).parents('.card-editorial').length && $(event.target).parents(\r\n                '.carousel-publications-container').length) {\r\n            let carouselPublicationsCard = $(event.target).parents('.card-editorial');\r\n            if ((carouselPublicationsCard.hasClass('publication-type') ||\r\n                    carouselPublicationsCard.hasClass('press-release-type')) &&\r\n                !carouselPublicationsCard.hasClass(\r\n                    'carousel-center')) {\r\n                event.preventDefault();\r\n                return;\r\n            }\r\n        }\r\n\r\n        if ($(event.target).hasClass('icon-share-small') || $(event.target).hasClass('btn-share')) {\r\n            event.preventDefault();\r\n            return;\r\n        }\r\n\r\n        let href, target;\r\n        if ($(event.target).hasClass('external-link') || $(event.target.parentElement).hasClass('external-link')) {\r\n            const a = $(event.target).parent('a');\r\n            href = a.attr('href');\r\n            target = a.attr('target');\r\n        } else {\r\n            href = $(event.currentTarget).attr('data-href');\r\n            target = ( $(event.currentTarget).attr('data-target') ) ? $(event.currentTarget).attr('data-target') : '_self';\r\n            event.preventDefault();\r\n            \r\n        }\r\n\r\n        //questo if è stato messo perchè deve aprire il pdf solo se non c'è la modale vedi discalimer-all-pages.js\r\n        if ($(this).attr(\"data-modal-custom\")){\r\n\r\n            return;\r\n\r\n        } else{\r\n\r\n            window.open(href, target);\r\n        }\r\n       \r\n\r\n    }\r\n}\r\n\r\n$(() => {\r\n    const component = new CardComponent();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/common/carousel-utils.js\":\n/*!**********************************************!*\\\n  !*** ./src/scripts/common/carousel-utils.js ***!\n  \\**********************************************/\n/*! exports provided: CarouselUtils */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CarouselUtils\", function() { return CarouselUtils; });\nclass CarouselUtils {\r\n\r\n  constructor() {\r\n    $(document).ready(() => {\r\n      setTimeout(() => {\r\n        $(\".carousel-widget\").find(\".carousel-container\").addClass(\"visible\");\r\n      }, 570);\r\n    });\r\n  }\r\n}\r\n\r\n\r\n$(() => {\r\n  const component = new CarouselUtils();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/cookie-banner.js\":\n/*!*********************************************!*\\\n  !*** ./src/scripts/common/cookie-banner.js ***!\n  \\*********************************************/\n/*! exports provided: CookieBanner */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CookieBanner\", function() { return CookieBanner; });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nclass CookieBanner {\r\n  constructor() {\r\n    var banner = $(\"#eni-cookie-banner\");\r\n    var confirm = $(banner).find(\".btn.confirm\");\r\n    var refuse = $(banner).find(\".btn.refuse\");\r\n\r\n    var cookieName = \"cookies-accepted\"\r\n    var cookie = this.getCookie(cookieName);\r\n    console.log(\"Cookies cookie\", cookie);\r\n    if (!cookie) {\r\n      $(banner).show();\r\n    }\r\n\r\n    $(confirm).click(() => {\r\n      $(banner).hide();\r\n      this.setCookie(cookieName, true, 50 * 365);\r\n    });\r\n\r\n    $(refuse).click(() => {\r\n      $(banner).hide();\r\n      this.setCookie(cookieName, false, 50 * 365);\r\n    });\r\n\r\n  }\r\n\r\n\r\n\r\n  setCookie(cname, cvalue, exdays) {\r\n    var d = new Date();\r\n    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n    var expires = \"expires=\" + d.toUTCString();\r\n    document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\r\n  }\r\n\r\n  getCookie(cname) {\r\n    var name = cname + \"=\";\r\n    var decodedCookie = decodeURIComponent(document.cookie);\r\n    var ca = decodedCookie.split(';');\r\n    for (var i = 0; i < ca.length; i++) {\r\n      var c = ca[i];\r\n      while (c.charAt(0) == ' ') {\r\n        c = c.substring(1);\r\n      }\r\n      if (c.indexOf(name) == 0) {\r\n        return c.substring(name.length, c.length);\r\n      }\r\n    }\r\n    return null;\r\n  }\r\n}\r\n\r\n\r\n$(() => {\r\n  const component = new CookieBanner();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/datepicker_translations.js\":\n/*!*******************************************************!*\\\n  !*** ./src/scripts/common/datepicker_translations.js ***!\n  \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar DatepickerTranslations = function () {\r\n\r\n  var italian = {\r\n    monthsFull: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre',\r\n      'Ottobre', 'Novembre', 'Dicembre'\r\n    ],\r\n    monthsShort: ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'],\r\n    weekdaysFull: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'],\r\n    weekdaysShort: ['D', 'L', 'M', 'M', 'G', 'V', 'S'],\r\n    today: 'Oggi',\r\n    clear: 'Cancella',\r\n    close: 'Chiudi',\r\n    format: 'd / m / yyyy',\r\n    firstDay: 0,\r\n    formatSubmit: 'dd/mm/yyyy',\r\n    hiddenName: true,\r\n    labelMonthNext: 'Mese successivo',\r\n    labelMonthPrev: 'Mese precedente',\r\n    labelMonthSelect: 'Seleziona un mese',\r\n    labelYearSelect: 'Seleziona un anno'\r\n  };\r\n\r\n  var english = {\r\n    monthsFull: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October',\r\n      'November', 'December'\r\n    ],\r\n    monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n    weekdaysFull: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n    weekdaysShort: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\r\n    today: 'Oggi',\r\n    clear: 'Clear',\r\n    close: 'close',\r\n    format: 'd / m / yyyy',\r\n    firstDay: 0,\r\n    formatSubmit: 'dd/mm/yyyy',\r\n    hiddenName: true,\r\n    labelMonthNext: 'Next month',\r\n    labelMonthPrev: 'Previous month',\r\n    labelMonthSelect: 'Select the month',\r\n    labelYearSelect: 'Select the year',\r\n  };\r\n\r\n  return {\r\n    italian: italian,\r\n    english: english\r\n  };\r\n}();\r\n\r\nmodule.exports = DatepickerTranslations;\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/digital-data.js\":\n/*!********************************************!*\\\n  !*** ./src/scripts/common/digital-data.js ***!\n  \\********************************************/\n/*! exports provided: DIGITAL, isSearch, pageNumber, DigitalDataUtils */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DIGITAL\", function() { return DIGITAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSearch\", function() { return isSearch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pageNumber\", function() { return pageNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DigitalDataUtils\", function() { return DigitalDataUtils; });\nconst DIGITAL = {\r\n  DATA_JSON_ID: 'data-jsnid'\r\n};\r\n\r\nconst isSearch = $('.page-search .search-results-container').length>0;\r\n//export const pageNumber = $('.search-results-container .paginator-full-backend .pages a.current').attr('data-value');\r\nconst pageNumeberElement = $('.search-results-container .paginator-full-backend .pages a.current').attr('data-value');\r\nconst pageNumber = pageNumeberElement != undefined ? pageNumeberElement : 1;\r\n\r\n\r\nclass DigitalDataUtils {\r\n\r\n  constructor(init) {\r\n\r\n    if(init) {\r\n      //Card External Link\r\n      $('.card-external-link .cards-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Carousel Editorial Card - Carousel Editorial Big Card - Carousel Publication\r\n      $('.card-editorial, .cover-card-big, .cover-card').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Carousel Event\r\n      $('.card-event').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Carousel Category Card\r\n      $('.carousel-category-card .category-card a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Contacts Carousel\r\n      $('.contacts-carousel .contact-card a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Contacts Grid Three\r\n      $('.contacts-grid .contact-card a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Carousel Corporate Card\r\n      $('.corporate-carousel .card-corporate').on('click',(event) => {\r\n        if($(event.target).hasClass('icon-arrow-right-small') || $(event.target).hasClass('cta-link')){\r\n          return;\r\n        }\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.corporate-carousel .card-corporate .cta-link').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Board of directors - Managers Card\r\n      $('.managers-card .manager-item').on('click',(event) => {\r\n        if($(event.target).hasClass('icon-arrow-right-small')){\r\n          return;\r\n        }\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.managers-card .manager-item .manager-arrow .icon-arrow-right-small').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Corporate Detail Launch\r\n      $('.corporate-detail-launch .content-title a,.corporate-detail-launch a.btn-view').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Corporate generic Launch\r\n      $('.corporate-generic-launch .content-type a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Editorial Content List - Filter press - Filter news - Serp\r\n      $('.editorial-content-list .content-box a').on('click',(event) => {\r\n        if(event.target.closest('.search-results-container'))\r\n          this.handleClickItemSerp(event);\r\n        else\r\n          this.handleClickItem(event);\r\n      });\r\n      //Eni Headquarter Contact\r\n      $('.headquarter-contacts .content-type a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Filter channel\r\n      $('.filter-channel .icon-arrow-right-small').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Link Band\r\n      $('.fascia-link .intro a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Grid Card 3\r\n      $('.grid-card-3 .grid-card a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.grid-card-3 .grid-card.link-card').on('click',(event) => {\r\n        if ($(event.target).is('a')) {\r\n          return;\r\n        } else {\r\n          this.handleClickItem(event);\r\n        }\r\n      });\r\n      //Calendar\r\n      $('.eni-calendar a.icon-add-calendar').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.eni-calendar .card-body a.external-link').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.eni-calendar .card-header .btn-link').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Editorial Collection Detail - Editorial Collection Highlight\r\n      $('.editorial-collection-highlight .view-more-container').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.editorial-collection-highlight .description-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.editorial-collection-highlight .content-type > a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.editorial-collection-highlight .collection-col-right a.link').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Global Presence Card Country Grid Four\r\n      $('.global-presence-card-country-grid-da-4 .card-country a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Global presence - Carousel Places\r\n      $('.carousel-places .card-places a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Global Presence Project Highlight\r\n      $('.global-presence-project-highlight .description-container a.eni-btn').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Global presence project highlight complex page\r\n      $('.global-presence-project-highlight-complex-page-desktop .btn-view-more').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Numbers\r\n      $('.carousel-numbers .card-number').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Full Video Image\r\n      $('section.full-video-image-widget.yt-video').on('click',(event) => {\r\n        this.handleClickItemVideo(event);\r\n      });\r\n      //Highlight Editorial Content\r\n      $('.highlight-editorial-content').on('click',(event) => {\r\n        if ($(event.currentTarget).hasClass('two-content')) {\r\n          return;\r\n        } else {\r\n          this.handleClickItem(event);\r\n        }\r\n      });\r\n      $('.highlight-editorial-content.two-content .highlight-2col').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Hero Banner Video\r\n      $('.herobanner-video-widget .card--main a.eni-btn').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Manager Detail\r\n      $('.manager-detail .content-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.manager-detail .btn-view-more, .manager-detail .btn-view-less').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Publications List\r\n      $('.publications-list-container .card-header .btn-link').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.publications-list-container .title-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.publications-list-container .buttons-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Media Highlight\r\n      $('.media-highlight-widget.media-highlight-1col, .media-highlight-widget .media-highlight-2col').on('click',(event) => {\r\n        if ($(event.currentTarget).hasClass('media-video-highlight')) {\r\n          return;\r\n        } else {\r\n          this.handleClickItem(event);\r\n        }\r\n      });\r\n      //Video Highlight\r\n      $('section.media-video-highlight .video-box picture').on('click',(event) => {\r\n        this.handleClickItemVideo(event);\r\n      });\r\n      //Hero banner homepage\r\n      $('.carousel-container.generic-carousel.herobanner-homepage').on('click', '.item h2 a:not(.popup-youtube)', (event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.carousel-container.generic-carousel.herobanner-homepage').on('click', '.item a.eni-btn', (event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.carousel-container.generic-carousel.herobanner-homepage').on('click', '.item a.popup-youtube', (event) => {\r\n        this.handleClickItemVideo(event);\r\n      });\r\n      //Event Hightlight countdown\r\n      $('section.event-highlight-countdown').on('click',(event) => {\r\n        if($(event.target).hasClass('eni-btn')){\r\n          return;\r\n        }\r\n        if($(event.target).hasClass('icon-arrow-right-small') || $(event.target).hasClass('arrow-link')){\r\n          return;\r\n        }\r\n        this.handleClickItem(event);\r\n      });\r\n      $('section.event-highlight-countdown a.eni-btn').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Event Hightlight\r\n      $('section.event-highlight').on('click',(event) => {\r\n        if($(event.currentTarget).hasClass('double')){\r\n          return;\r\n        }\r\n        this.handleClickItem(event);\r\n      });\r\n      $('section.event-highlight.double .section-content').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Opportunità professionali\r\n      $('.job-opportunities-container a.job-opportunity-card').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Media Collection Detail Cover\r\n      $('.media-detail-cover .playlist-container .drawer-btn').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.media-detail-cover .playlist-details .content-detail-item a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.media-detail-cover .playlist-image, .media-detail-cover .playlist-detail-title').on('click',(event) => {\r\n        if ($(event.currentTarget).attr('data-yt-index')) {\r\n          this.handleClickItemVideo(event);\r\n        } else {\r\n          this.handleClickItem(event);\r\n        }\r\n      });\r\n       //Single Video\r\n       $('section.single-image-video .video-container .overlay-video').on('click',(event) => {\r\n        this.handleClickItemVideo(event);\r\n      });\r\n       //Gallery Video\r\n       $('section.photo-gallery-widget .photo-gallery-item.mfp-iframe').on('click',(event) => {\r\n        this.handleClickItemVideo(event);\r\n      });\r\n      //Highlight Search\r\n      $('.highlight-search-container .img-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.highlight-search-container .content-box h2 a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.highlight-search-container .links-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      $('.highlight-search-container .office-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });    \r\n      //Joule Link Band\r\n      $('.joule-fascia-link .intro a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Joule Event Highlight\r\n      $('.joule-event-highlight-section .joule-event-container .owl-carousel').on('click', '.item a', (event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      \r\n\r\n\r\n      /*Link comuni*/\r\n      //carousel-link\r\n      $('.carousel-link').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //arrow-link\r\n      $('.arrow-link').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //view-more-box\r\n      $('.view-more-box button').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n      //Download transcript\r\n      $('.icon-transcript-container a').on('click',(event) => {\r\n        this.handleClickItem(event);\r\n      });\r\n\r\n      //Header submit search\r\n      $('.eni-searchbar-header-input').on('keydown',(event) => {\r\n        if(event.key == \"Enter\"){\r\n          let searchJson = {\r\n            \"event\":\"submitSearch\",\r\n            \"pageEvent\" : {\r\n              \"eventInfo\" : {\r\n                \"eventDetail\": \"Header\",\r\n                \"contentWidget\":\"header-search-bar\",\r\n                \"submitSearchTerm\": $('.eni-searchbar-header-input').val()\r\n              }\r\n            }\r\n          } \r\n          console.log(searchJson);\r\n          try{\r\n            window.digitalData.push(searchJson);\r\n          }\r\n          catch(ex){} \r\n        }\r\n      });\r\n      //Modal submit search\r\n      $('.eni-search-modal-input').on('keydown',(event) => {\r\n        if(event.key == \"Enter\"){\r\n          let searchJson = {\r\n            \"event\":\"submitSearch\",\r\n            \"pageEvent\" : {\r\n              \"eventInfo\" : {\r\n                \"eventDetail\": \"Modal\",\r\n                \"contentWidget\":\"modal-search-bar\",\r\n                \"submitSearchTerm\": $('.eni-search-modal-input').val()\r\n              }\r\n            }\r\n          } \r\n          console.log(searchJson);\r\n          try{\r\n            window.digitalData.push(searchJson);\r\n          }\r\n          catch(ex){} \r\n        }   \r\n      });\r\n\r\n    }\r\n  }\r\n\r\n  handleClickItemVideo(event){\r\n    if ($(event.target).hasClass('icon-share-small') || $(event.target).hasClass('btn-share')) {\r\n      event.preventDefault();\r\n      return;\r\n    }\r\n    let target = $( event.currentTarget );\r\n    console.log(target);\r\n    let jsnid = target.attr(DIGITAL.DATA_JSON_ID);\r\n    console.log('jsnid: %s',jsnid);\r\n\r\n    if(jsnid && jsnid.length > 0 ) {\r\n      let digitalDataJson = \"\";\r\n      try{\r\n        digitalDataJson = eval(jsnid);\r\n      }\r\n      catch(ex){}\r\n      if(digitalDataJson) {\r\n        let href = target.attr('data-href') || target.attr('data-url') || target.attr('data-mfp-src') || '';\r\n        console.log('href: %s',href);\r\n        if (href.charAt(0) === \"/\") {\r\n          href = window.location.origin + href;\r\n        }\r\n        digitalDataJson.pageEvent.eventInfo.contentURL = href;\r\n        let eventType = 'click-video';\r\n        digitalDataJson.event = eventType;    \r\n        digitalDataJson.pageEvent.eventInfo.eventDetail = 'Play';\r\n        digitalDataJson.pageEvent.eventInfo.ctaLabel = '';\r\n        if(isSearch)\r\n          digitalDataJson.pageEvent.eventInfo.contentPageNumber = pageNumber;\r\n\r\n        console.log(digitalDataJson);\r\n        try{\r\n          window.digitalData.push(digitalDataJson);\r\n        }\r\n        catch(ex){}\r\n      }\r\n    }\r\n  }\r\n\r\n  handleClickItemFilter(currentFilter){\r\n  \r\n    let jsnid = currentFilter.attr(DIGITAL.DATA_JSON_ID);\r\n    console.log('jsnid: %s',jsnid);\r\n\r\n    if(jsnid && jsnid.length > 0 ) {\r\n      let digitalDataJson = \"\";\r\n      try{\r\n        digitalDataJson = eval(jsnid);\r\n      }\r\n      catch(ex){}\r\n      if(digitalDataJson) {\r\n        digitalDataJson.pageEvent.eventInfo.ctaLabel = '';\r\n        if(isSearch)\r\n          digitalDataJson.pageEvent.eventInfo.contentPageNumber = pageNumber;\r\n        console.log(digitalDataJson);\r\n        try{\r\n          window.digitalData.push(digitalDataJson);\r\n        }\r\n        catch(ex){}\r\n      }\r\n    }\r\n  }\r\n\r\n  static handleClickItemFormatVideo(item){\r\n  \r\n    let jsnid = item.attr(DIGITAL.DATA_JSON_ID);\r\n    console.log('jsnid: %s',jsnid);\r\n\r\n    if(jsnid && jsnid.length > 0 ) {\r\n      let digitalDataJson = \"\";\r\n      try{\r\n        digitalDataJson = eval(jsnid);\r\n      }\r\n      catch(ex){}\r\n      if(digitalDataJson) {\r\n        let href = item.attr('data-href') || item.attr('data-url') || '';\r\n        console.log('href: %s',href);\r\n        if (href.charAt(0) === \"/\") {\r\n          href = window.location.origin + href;\r\n        }\r\n        digitalDataJson.pageEvent.eventInfo.contentURL = href;\r\n        let eventType = 'click-video';\r\n        digitalDataJson.event = eventType;    \r\n        digitalDataJson.pageEvent.eventInfo.eventDetail = 'Play';\r\n        digitalDataJson.pageEvent.eventInfo.ctaLabel = '';\r\n        if(isSearch)\r\n          digitalDataJson.pageEvent.eventInfo.contentPageNumber = pageNumber;\r\n\r\n        console.log(digitalDataJson);\r\n        try{\r\n          window.digitalData.push(digitalDataJson);\r\n        }\r\n        catch(ex){}\r\n      }\r\n    }\r\n  }\r\n\r\n  handleClickItem(event) {\r\n\r\n    //lo share è gestito in share.js\r\n    if ($(event.target).hasClass('icon-share-small') || $(event.target).hasClass('btn-share')) {\r\n      event.preventDefault();\r\n      return;\r\n    }\r\n    let target = $( event.currentTarget );\r\n    console.log(target);\r\n    let jsnid = target.attr(DIGITAL.DATA_JSON_ID);\r\n    console.log('jsnid: %s',jsnid);\r\n\r\n    if(jsnid && jsnid.length > 0 ) {\r\n      let digitalDataJson = \"\";\r\n      try{\r\n        digitalDataJson = eval(jsnid);\r\n      }\r\n      catch(ex){}\r\n\r\n      if(digitalDataJson) {\r\n        let href = target.attr('href') || target.attr('data-href') || target.attr('data-url') || '';\r\n        console.log('href: %s',href);\r\n        let eventType = this.getEventType(target, href);\r\n        let eventDetail = this.getEventDetail(eventType,target,href);\r\n        if (href.charAt(0) === \"/\") {\r\n          href = window.location.origin + href;\r\n        }\r\n        digitalDataJson.pageEvent.eventInfo.contentURL = href;\r\n        digitalDataJson.event = eventType;    \r\n        digitalDataJson.pageEvent.eventInfo.eventDetail = eventDetail;\r\n        digitalDataJson.pageEvent.eventInfo.ctaLabel = '';\r\n        if(isSearch)\r\n          digitalDataJson.pageEvent.eventInfo.contentPageNumber = pageNumber;\r\n\r\n        //CTAlabel\r\n        if(target.hasClass('btn-view') || target.hasClass('eni-btn') || target.hasClass('arrow-link') || target.hasClass('carousel-link') || target.hasClass('view-less') || target.hasClass('view-more') || target.hasClass('btn-view-less') || target.hasClass('btn-view-more') || target.hasClass('cta-link') || target.hasClass('drawer-btn') || target.hasClass('intro-link')){ \r\n          digitalDataJson.pageEvent.eventInfo.ctaLabel = target[0].innerText;\r\n        }\r\n        if(target.hasClass('job-opportunity-card')){\r\n          digitalDataJson.pageEvent.eventInfo.ctaLabel = target.find('h3')[0].innerText;\r\n        }\r\n        \r\n        console.log(digitalDataJson);\r\n        try{\r\n          window.digitalData.push(digitalDataJson);\r\n        }\r\n        catch(ex){}\r\n      }\r\n    }\r\n  }\r\n\r\n  handleClickItemSerp(event) {\r\n\r\n    //lo share è gestito in share.js\r\n    if ($(event.target).hasClass('icon-share-small') || $(event.target).hasClass('btn-share')) {\r\n      event.preventDefault();\r\n      return;\r\n    }\r\n    let target = $( event.currentTarget );\r\n    console.log(target);\r\n    let jsnid = target.attr(DIGITAL.DATA_JSON_ID);\r\n    console.log('jsnid: %s',jsnid);\r\n\r\n    if(jsnid && jsnid.length > 0 ) {\r\n      let digitalDataJson = \"\";\r\n      try{\r\n        digitalDataJson = eval(jsnid);\r\n      }\r\n      catch(ex){}\r\n\r\n      if(digitalDataJson) {\r\n        let href = target.attr('href') || target.attr('data-href') || target.attr('data-url') || '';\r\n        console.log('href: %s',href);\r\n        let eventType = 'click-serp';\r\n        let fileExt = href.split('.').pop();\r\n        let eventDetail = fileExt == 'pdf' ? 'PDF' : (fileExt == 'txt' ? 'Transcript' : 'Link');\r\n        \r\n        if (href.charAt(0) === \"/\") {\r\n          href = window.location.origin + href;\r\n        }\r\n        digitalDataJson.pageEvent.eventInfo.contentURL = href;\r\n        digitalDataJson.event = eventType;    \r\n        digitalDataJson.pageEvent.eventInfo.eventDetail = eventDetail;\r\n        digitalDataJson.pageEvent.eventInfo.ctaLabel = '';\r\n        if(isSearch)\r\n          digitalDataJson.pageEvent.eventInfo.contentPageNumber = pageNumber;\r\n        \r\n        console.log(digitalDataJson);\r\n        try{\r\n          window.digitalData.push(digitalDataJson);\r\n        }\r\n        catch(ex){}\r\n      }\r\n    }\r\n  }\r\n  \r\n  getEventType(target, href){\r\n    const regex = new RegExp(\"(.*?)\\.(docx|doc|pdf|xls|xlsx|ppt|zip|ics|png|jpg|txt)$\");\r\n    let eventType = '';\r\n    //if(href.startsWith('http') && !(href.includes(\"eni.com/it-IT\") || href.includes(\"eni.com/en-IT\") || href.includes(\"eni.com/assets\")))\r\n    if(href.startsWith('http'))\r\n      eventType = 'click-link-external';\r\n    else if(regex.test(href))\r\n      eventType = 'click-download';\r\n    else if(target.hasClass('btn-view') || target.hasClass('arrow-link') || target.hasClass('carousel-link') || target.hasClass('eni-btn') || target.hasClass('icon-arrow-right-small') || target.hasClass('cta-link') || target.hasClass('intro-link') )\r\n      eventType = 'click-cta';\r\n    else if(target.hasClass('btn-link') || target.hasClass('view-more') || target.hasClass('view-less') || (target.hasClass('btn-view-more') && target.is('button')) || (target.hasClass('btn-view-less') && target.is('button')) || target.hasClass('drawer-btn')) \r\n      eventType = 'click-accordion';\r\n    else if(href.startsWith('tel:'))\r\n      eventType = 'click-tel';\r\n    else if(href.startsWith('mailto:'))\r\n      eventType = 'click-mail-to';\r\n    else \r\n      eventType = 'click-link';\r\n\r\n    return eventType;\r\n  }\r\n\r\n  getEventDetail(eventType,target,href){\r\n    let eventDetail;\r\n    switch (eventType) {\r\n      case 'click-link-external':\r\n        eventDetail='Link External';\r\n        break;\r\n      case 'click-cta':\r\n        eventDetail='Cta';\r\n        break;\r\n      case 'click-tel':\r\n        eventDetail='Telephone';\r\n        break;\r\n      case 'click-mail-to':\r\n        eventDetail='Mail to';\r\n        break;\r\n      case 'click-link':\r\n        eventDetail='Link';\r\n        break;\r\n      case 'click-download':\r\n        let fileExt = href.split('.').pop();\r\n        if(href.endsWith(\"calendars.zip\") || fileExt == 'ics')\r\n          eventDetail = 'Calendar';\r\n        else if(href.endsWith(\"transcript.txt\"))\r\n          eventDetail = 'Transcript';\r\n        else if(fileExt == 'jpg' || fileExt == 'png')\r\n          eventDetail = 'Image';\r\n        else if(fileExt == 'docx' || fileExt == 'doc')\r\n          eventDetail = 'Doc';\r\n        else if(fileExt == 'xlsx' || fileExt == 'xls')\r\n          eventDetail = 'Excel';\r\n        else if(fileExt == 'pptx' || fileExt == 'ppt')\r\n          eventDetail = 'Presentation';\r\n        else if(fileExt == 'pdf')\r\n          eventDetail = 'PDF';\r\n        else if(fileExt == 'zip')\r\n          eventDetail = 'Zip';\r\n        else \r\n          eventDetail = fileExt;\r\n        break;\r\n      case 'click-accordion':\r\n        if(target.attr('aria-expanded') == 'true' || target.hasClass('view-less') || target.hasClass('btn-view-less') || (!target.parent().hasClass('closed') && target.parent().hasClass('playlist-container')))\r\n          eventDetail = 'Close';\r\n        else \r\n          eventDetail = 'Open';\r\n          break;\r\n    }\r\n    return eventDetail;\r\n  }\r\n\r\n}\r\n$(() => {\r\n  const component = new DigitalDataUtils(true);\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/common/eni-tales.js\":\n/*!*****************************************!*\\\n  !*** ./src/scripts/common/eni-tales.js ***!\n  \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n$(document).ready(function () {\r\n\r\n  $(\".icon-close-small\").on(\"click\", function () {\r\n    $(\"#eni-tales-banner\").hide();\r\n  });\r\n\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/filters-util.js\":\n/*!********************************************!*\\\n  !*** ./src/scripts/common/filters-util.js ***!\n  \\********************************************/\n/*! exports provided: FiltersUtil */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FiltersUtil\", function() { return FiltersUtil; });\n/* harmony import */ var _common_datepicker_translations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/datepicker_translations */ \"./src/scripts/common/datepicker_translations.js\");\n/* harmony import */ var _common_datepicker_translations__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_common_datepicker_translations__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n/* harmony import */ var _common_digital_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/digital-data */ \"./src/scripts/common/digital-data.js\");\n\r\n\r\n\r\n\r\nclass FiltersUtil {\r\n  constructor() {\r\n\r\n    // Dropdown Filters in page\r\n    const dropdowns = $('.eni-filters .dropdown.filter');\r\n    if (dropdowns && dropdowns.length > 0) {\r\n      for (let i = 0; i < dropdowns.length; i++) {\r\n        const dataFilter = $(dropdowns[i]).data('filter');\r\n        const dataTargetContainer = $(dropdowns[i]).data('target-container');\r\n        const dataTargetElementClass = $(dropdowns[i]).data('target-element-class');\r\n\r\n        const filterButton = $(dropdowns[i]).children('.dropdown-toggle');\r\n        const dropdownButtonsListContainer = $(dropdowns[i]).children('.dropdown-menu');\r\n        const dropdownButtons = $(dropdownButtonsListContainer).children('button.dropdown-item');\r\n\r\n        if (dropdownButtons && dropdownButtons.length > 0) {\r\n          for (let i = 0; i < dropdownButtons.length; i++) {\r\n\r\n            \r\n            // Map click of dropdown element\r\n            $(dropdownButtons[i]).on('click', (e) => {\r\n\r\n              const currentTarget = e.currentTarget;\r\n              const currentSection = $(currentTarget).parents('section');\r\n\r\n              //const currentFilter = $(currentTarget).parents('.dropdown.filter');\r\n              //const ddutils = new DigitalDataUtils()\r\n              //ddutils.handleClickItemFilter(currentFilter);\r\n\r\n              // Update main button with new label\r\n              const dropdownButtonText = $(currentTarget).text();\r\n              $(filterButton).text(_common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].truncateDropdownButtonText(dropdownButtonText));\r\n\r\n              // Update item with active class and remove active from others (if present)\r\n              const actualDropdownActiveButton = $(currentTarget.parentElement).children(\r\n                'button.dropdown-item.active');\r\n              if (actualDropdownActiveButton && actualDropdownActiveButton.length > 0) {\r\n                $(actualDropdownActiveButton).removeClass('active');\r\n              }\r\n              $(currentTarget).addClass('active');\r\n\r\n              const dataFilterValue = $(currentTarget).attr(dataFilter);\r\n\r\n              this.prepareFiltersToApply(\r\n                'dropdown', currentSection, dataTargetContainer, currentTarget, dataFilter, dataFilterValue,\r\n                dataTargetElementClass);\r\n            });\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    // Calendar Filters in page\r\n    const calendars = $('.eni-filters .calendar.filter');\r\n    if (calendars && calendars.length > 0) {\r\n      for (let i = 0; i < calendars.length; i++) {\r\n        const dataFilter = $(calendars[i]).data('filter');\r\n        const dataTargetContainer = $(calendars[i]).data('target-container');\r\n        const dataTargetElementClass = $(calendars[i]).data('target-element-class');\r\n        const calendarLanguage = $(calendars[i]).data('language');\r\n\r\n        const calendar = $(calendars[i]).children('.datepicker');\r\n        const calendarFilterIcon = $(calendars[i]).children('.icon-calendar-filter');\r\n        const currentSection = $(calendars[i]).parents('section');\r\n        const currentTarget = calendars[i];\r\n\r\n        let calendarLanguageConfig = calendarLanguage === 'ita' ? _common_datepicker_translations__WEBPACK_IMPORTED_MODULE_0___default.a.italian :\r\n          _common_datepicker_translations__WEBPACK_IMPORTED_MODULE_0___default.a.english;\r\n\r\n        // const calendarConfig =\r\n        // Object.assign({}, calendarLanguageConfig,\r\n        //   {\r\n        //   onOpen: (() => $(calendarFilterIcon).addClass('active')),\r\n        //   onClose: (() => $(calendarFilterIcon).removeClass('active')),\r\n        //   onSet: ((e) => e && e.select ? this.prepareFiltersToApply(\r\n        //     'calendar', currentSection, dataTargetContainer, currentTarget, dataFilter,\r\n        //     Utils.convertDateForCalendars(e.select, dataFilter === 'data-date-from' ? true : false, true),\r\n        //     dataTargetElementClass, true) : null)\r\n        //   });\r\n\r\n\r\n        const calendarConfig = {\r\n          ...calendarLanguageConfig,\r\n          onOpen: (() => $(calendarFilterIcon).addClass('active')),\r\n          onClose: (() => $(calendarFilterIcon).removeClass('active')),\r\n          onSet: ((e) => e && e.select ? this.prepareFiltersToApply(\r\n            'calendar', currentSection, dataTargetContainer, currentTarget, dataFilter,\r\n            _common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].convertDateForCalendars(e.select, dataFilter === 'data-date-from' ? true : false, true),\r\n            dataTargetElementClass, true) : null),\r\n        };\r\n\r\n        const calendarIntance = $(calendar).pickadate(calendarConfig);\r\n\r\n        $(calendarFilterIcon).on('click', (e) => {\r\n\r\n          // Open pickadate with api method (causes multiple opened filter at same time when dropdown is opened)\r\n\r\n          // Close all opened section calendar instances (done automatically whenl clicked on imput instead icon)\r\n          /* const allSectionCalendarInstances = $(currentSection).find('.picker__input.picker__input--active');\r\n          if (allSectionCalendarInstances && allSectionCalendarInstances.length > 0) {\r\n            for (let index = 0; index < allSectionCalendarInstances.length; index++) {\r\n              const otherOpenedCalendarInstance = allSectionCalendarInstances[index];\r\n              $(otherOpenedCalendarInstance).pickadate().pickadate(\"picker\").close();\r\n            }\r\n          }\r\n          // Open calendar\r\n          $(calendarIntance).pickadate(\"picker\").open();\r\n\r\n          // If a “click” is involved, prevent the event bubbling.\r\n          e.stopPropagation();\r\n          */\r\n\r\n          // Open pickadate with click trigger (causes multiple opened filter at same time when dropdown is opened)\r\n\r\n          if (!$(calendarFilterIcon).hasClass('active')) {\r\n            setTimeout(function () {\r\n              $(calendar).click();\r\n            }, 0);\r\n          }\r\n        });\r\n      }\r\n    }\r\n\r\n    const checkboxs = $('.eni-filters .checkbox.filter');\r\n    if (checkboxs && checkboxs.length > 0) {\r\n      for (let i = 0; i < checkboxs.length; i++) {\r\n        const currentSection = $(checkboxs[i]).parents('section');\r\n        const currentTarget = $(checkboxs[i]);\r\n        const dataFilter = $(checkboxs[i]).data('filter');\r\n        const dataTargetContainer = $(checkboxs[i]).data('target-container');\r\n        const dataTargetElementClass = $(checkboxs[i]).data('target-element-class');\r\n\r\n        const checkboxInput = $(checkboxs[i]).find(\"input[type=checkbox]\");\r\n        console.log(checkboxInput);\r\n        $(checkboxInput).on('change', (e) => {\r\n          console.log(e);\r\n          var self = $(e.currentTarget);\r\n          let dataFilterValue = '0';\r\n          if (self.is(\":checked\")) {\r\n            dataFilterValue = '1';\r\n          } else {\r\n            dataFilterValue = 'all';\r\n          }\r\n\r\n          this.prepareFiltersToApply(\r\n            'checkbox', currentSection, dataTargetContainer, currentTarget, dataFilter, dataFilterValue,\r\n            dataTargetElementClass);\r\n        });\r\n\r\n\r\n        // Apply checkbox filter after load page because unchecked checkbox has value 0\r\n        /* if (!this.checkSearchFilters(currentSection)) {\r\n          this.prepareFiltersToApply(\r\n            'checkbox', currentSection, dataTargetContainer, currentTarget, dataFilter, '0', dataTargetElementClass);\r\n        } */\r\n      }\r\n    }\r\n\r\n    // Reset Buttons in page\r\n    const resetFilterContainers = $('.eni-filters .reset-filters-container');\r\n    if (resetFilterContainers && resetFilterContainers.length > 0) {\r\n      for (let i = 0; i < resetFilterContainers.length; i++) {\r\n\r\n        const resetFilterButton = $(resetFilterContainers[i]).children('.btn.btn-reset-filters');\r\n        $(resetFilterButton).on('click', (e) => {\r\n          const currentSection = $(e.currentTarget).parents('section');\r\n\r\n          // All filters in page\r\n          const allFilters = $(currentSection).find('.eni-filters .filter');\r\n\r\n          const dataTargetContainer = $(resetFilterContainers[i]).data('target-container');\r\n          const dataTargetElementClass = $(resetFilterContainers[i]).data('target-element-class');\r\n\r\n          this.resetFilters(allFilters, currentSection, dataTargetContainer, dataTargetElementClass);\r\n        });\r\n      }\r\n    };\r\n  }\r\n\r\n  checkFEPaginator(currentSection, dataTargetContainer) {\r\n    const currentSectionPaginator = $(currentSection).find('.tt-paginator-container');\r\n    const paginatorContainer = $(currentSection).find(dataTargetContainer);\r\n    if (currentSectionPaginator && currentSectionPaginator.length > 0) {\r\n      const paginatorContainerDataAjax = $(paginatorContainer).data('ajax');\r\n      if (paginatorContainerDataAjax && paginatorContainerDataAjax === true) {\r\n        return false;\r\n      } else {\r\n        return true;\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  checkSearchFilters(currentSection) {\r\n    const searchSection = $(\"section.search-template-filters\");\r\n    if (searchSection && searchSection.length > 0) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  checkCalendarWidgetFilters(currentSection) {\r\n    const calendarSection = $(currentSection).hasClass(\"eni-calendar\");\r\n    if (calendarSection) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  resetAjaxPaginator(currentSection, dataTargetContainer, arrayFiltersToBeApplied) {\r\n    const currentSectionPaginator = $(currentSection).find('.tt-paginator-container');\r\n    const paginatorContainer = $(currentSection).find(dataTargetContainer);\r\n    if (currentSectionPaginator && currentSectionPaginator.length > 0) {\r\n      // Do a new call for applied filters when there is be paginator\r\n      $(paginatorContainer).ttPaginator({\r\n        ajax: true,\r\n        filters: arrayFiltersToBeApplied\r\n      }, 'setFilters');\r\n      return;\r\n    }\r\n  }\r\n\r\n  getAllFiltersWithSameDataTargetElementClass(allFilters, dataFilter, dataTargetElementClass) {\r\n    const arrayOthersFiltersToBeApplied = [];\r\n    const otherFiltersWithSameDataTarget = [];\r\n\r\n    for (let i = 0; i < allFilters.length; i++) {\r\n\r\n      const otherFilterWithSameDataTarget = allFilters[i];\r\n\r\n      switch ($(otherFilterWithSameDataTarget).data('filter-type')) {\r\n        case 'dropdown':\r\n          // Exclude current filter and push into array other filters\r\n          if (!$(otherFilterWithSameDataTarget).hasClass('show') &&\r\n            $(otherFilterWithSameDataTarget).data('filter') !== dataFilter &&\r\n            $(otherFilterWithSameDataTarget).data('target-element-class') ===\r\n            dataTargetElementClass) {\r\n\r\n            otherFiltersWithSameDataTarget.push(otherFilterWithSameDataTarget);\r\n\r\n            const otherFilterWithSameDataTargetDataFilter = $(otherFilterWithSameDataTarget).data('filter');\r\n            const otherFilterWithSameDataTargetActive = $(otherFilterWithSameDataTarget).find(\r\n              '.dropdown-item.active');\r\n            const otherFilterWithSameDataTargetFilterKey = $(otherFilterWithSameDataTarget).data('filter');\r\n            const otherFilterWithSameDataTargetFilterValue = $(otherFilterWithSameDataTargetActive)\r\n              .attr(otherFilterWithSameDataTargetDataFilter);\r\n\r\n            arrayOthersFiltersToBeApplied.push({\r\n              key: otherFilterWithSameDataTargetFilterKey,\r\n              value: otherFilterWithSameDataTargetFilterValue,\r\n              type: 'dropdown'\r\n            });\r\n          }\r\n          break;\r\n\r\n        case 'calendar':\r\n\r\n          // Exclude current filter and push into array other filters\r\n          if (!$(otherFilterWithSameDataTarget).children('.picker__input').hasClass('picker__input--active') &&\r\n            $(otherFilterWithSameDataTarget).data('filter') !== dataFilter &&\r\n            $(otherFilterWithSameDataTarget).data('target-element-class') ===\r\n            dataTargetElementClass) {\r\n\r\n\r\n\r\n            otherFiltersWithSameDataTarget.push(otherFilterWithSameDataTarget);\r\n\r\n            const otherFilterWithSameDataTargetFilterKey = $(otherFilterWithSameDataTarget).data('filter');\r\n            const otherFilterWithSameDataTargetValueInput = $(otherFilterWithSameDataTarget)\r\n              .children('input[type=hidden]');\r\n            const otherFilterWithSameDataTargetValue = $(otherFilterWithSameDataTargetValueInput).val();\r\n\r\n            arrayOthersFiltersToBeApplied.push({\r\n              key: otherFilterWithSameDataTargetFilterKey,\r\n              value: otherFilterWithSameDataTargetValue === '' ? 'all' : _common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].convertDateForCalendars(\r\n                otherFilterWithSameDataTargetValue, otherFilterWithSameDataTargetFilterKey ===\r\n                'data-date-from' ? true : false, false),\r\n              type: 'calendar'\r\n            });\r\n          }\r\n          break;\r\n\r\n        case 'checkbox':\r\n          // Exclude current filter and push into array other filters\r\n          if ($(otherFilterWithSameDataTarget).data('filter') !== dataFilter &&\r\n            $(otherFilterWithSameDataTarget).data('target-element-class') ===\r\n            dataTargetElementClass) {\r\n\r\n            otherFiltersWithSameDataTarget.push(otherFilterWithSameDataTarget);\r\n            const otherFilterWithSameDataTargetFilterKey = $(otherFilterWithSameDataTarget).data('filter');\r\n            const otherFilterWithSameDataTargetInput = $(otherFilterWithSameDataTarget).find(\"input[type=checkbox]\");\r\n            console.log($(otherFilterWithSameDataTargetInput).is(\":checked\"));\r\n            const otherFilterWithSameDataTargetFilterValue = $(otherFilterWithSameDataTargetInput).is(\":checked\") ?\r\n              '1' : 'all';\r\n            arrayOthersFiltersToBeApplied.push({\r\n              key: otherFilterWithSameDataTargetFilterKey,\r\n              value: otherFilterWithSameDataTargetFilterValue,\r\n              type: 'checkbox'\r\n            });\r\n          }\r\n          break;\r\n\r\n        default:\r\n          break;\r\n      }\r\n    }\r\n\r\n    return arrayOthersFiltersToBeApplied;\r\n\r\n  }\r\n\r\n  checkAccordions(currentSection) {\r\n    const currentSectionAccordions = $(currentSection).find('.accordion.accordion-container');\r\n    if (currentSectionAccordions && currentSectionAccordions.length > 0) {\r\n      for (let i = 0; i < currentSectionAccordions.length; i++) {\r\n        const currentSectionAccordion = currentSectionAccordions[i];\r\n\r\n        // Find all accordion detail items and check if all of them have hidden class\r\n        const accordionDetailItems = $(currentSectionAccordion).find('.accordion-detail-item');\r\n        let hiddenDetailItemsLength = 0;\r\n        if (accordionDetailItems && accordionDetailItems.length > 0) {\r\n          for (let i = 0; i < accordionDetailItems.length; i++) {\r\n            if ($(accordionDetailItems[i]).css('display') === 'none') {\r\n              hiddenDetailItemsLength++;\r\n            }\r\n          }\r\n          if (accordionDetailItems.length === hiddenDetailItemsLength) {\r\n            $(currentSectionAccordion).hide();\r\n          } else {\r\n            $(currentSectionAccordion).show();\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  /* manageYearFilter(currentSection, arrayFiltersToBeApplied) {\r\n    if ($(currentSection).hasClass('calendar-filters')) {\r\n      arrayFiltersToBeApplied.find(\r\n        filterApplied.key === 'data-year'\r\n      );\r\n    }\r\n  } */\r\n\r\n  resetCurrentSectionPaginator(currentSection, dataTargetContainer) {\r\n    const currentSectionPaginator = $(currentSection).find('.tt-paginator-container');\r\n    const paginatorContainer = $(currentSection).find('[data-pagination=\"true\"]');\r\n    if (currentSectionPaginator && currentSectionPaginator.length > 0) {\r\n      $(paginatorContainer).ttPaginator(null, 'reinit');\r\n    }\r\n  }\r\n\r\n  changeFilterValue(arrayFiltersToBeApplied, filterKey, filterValue) {\r\n    for (let i = 0; i < arrayFiltersToBeApplied.length; i++) {\r\n      const element = arrayFiltersToBeApplied[i];\r\n      if (element.key === filterKey) {\r\n        element.value = filterValue;\r\n      }\r\n    }\r\n  }\r\n\r\n  changeDropdownFilterValue(dropdownButton, value) {\r\n\r\n    const optionButton = $(dropdownButton).parents().children('.dropdown-menu').children(\r\n      '.dropdown-item[data-type=\"' + value + '\"]');\r\n    const optionButtonText = $(optionButton).text();\r\n\r\n    // Update main button with new label\r\n    $(dropdownButton).text(optionButtonText);\r\n\r\n    // Update item with active class and remove active from others (if present)\r\n    const actualDropdownActiveButton = $(dropdownButton).parents().children('.dropdown-menu').children(\r\n      '.dropdown-item.active');\r\n    if (actualDropdownActiveButton && actualDropdownActiveButton.length > 0) {\r\n      $(actualDropdownActiveButton).removeClass('active');\r\n    }\r\n    $(optionButton).addClass('active');\r\n\r\n\r\n  }\r\n\r\n  prepareFiltersToApply(filterType, currentSection, dataTargetContainer, currentTarget, dataFilter, dataFilterValue,\r\n    dataTargetElementClass) {\r\n\r\n    //digital data push  \r\n    const ddutils = new _common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DigitalDataUtils\"]();\r\n    if(filterType === 'dropdown')\r\n      ddutils.handleClickItemFilter($(currentTarget).parents('.dropdown.filter'));\r\n    else if(filterType === 'calendar')\r\n      ddutils.handleClickItemFilter($(currentTarget));\r\n\r\n    // All filters in page\r\n    const allFilters = $(currentSection).find('.eni-filters .filter');\r\n\r\n    // Check all other filters that have same dataTargetElementClass and get its pair of key value, based on filter type\r\n    let arrayFiltersToBeApplied = [];\r\n\r\n    if (allFilters && allFilters.length > 1) {\r\n\r\n      const getAllFiltersWithSameDataTargetElementClassResponse =\r\n        this.getAllFiltersWithSameDataTargetElementClass(\r\n          allFilters, dataFilter, dataTargetElementClass, filterType);\r\n\r\n      if (getAllFiltersWithSameDataTargetElementClassResponse &&\r\n        getAllFiltersWithSameDataTargetElementClassResponse.length > 0) {\r\n        arrayFiltersToBeApplied = getAllFiltersWithSameDataTargetElementClassResponse;\r\n      }\r\n    }\r\n\r\n    // Data filter of current clicked button to apply\r\n    const dataFilterKeyToApply = dataFilter;\r\n    const dataFilterValueToApply = dataFilterValue;\r\n    const dataFilterType = filterType;\r\n\r\n    arrayFiltersToBeApplied.push({\r\n      key: dataFilterKeyToApply,\r\n      value: dataFilterValueToApply,\r\n      type: dataFilterType\r\n    });\r\n\r\n    const areSearchFilters = this.checkSearchFilters(currentSection);\r\n    const areCalendarFilers = this.checkCalendarWidgetFilters(currentSection);\r\n\r\n    if (areSearchFilters) {\r\n      console.log(\"Search Section found! Full back end filters in use.\");\r\n      if (!(arrayFiltersToBeApplied && arrayFiltersToBeApplied.length > 0)) {\r\n        const arrayFiltersToBeApplied = [];\r\n      }\r\n      this.applyFBEFilters(arrayFiltersToBeApplied);\r\n\r\n    } else {\r\n      // Check if there is front end paginator\r\n      const isThereFEPaginator = this.checkFEPaginator(currentSection, dataTargetContainer);\r\n      if (!isThereFEPaginator) {\r\n        this.resetAjaxPaginator(currentSection, dataTargetContainer, arrayFiltersToBeApplied);\r\n      }\r\n\r\n      // If calendar filters apply specific handling to type related filter\r\n      if (areCalendarFilers) {\r\n        const yearFilter = arrayFiltersToBeApplied.find(filterToBeApplied => filterToBeApplied.key === 'data-date');\r\n        const typeFilter = arrayFiltersToBeApplied.find(filterToBeApplied => filterToBeApplied.key === 'data-type');\r\n        console.log('yearFilter', yearFilter);\r\n        console.log('typeFilter', typeFilter);\r\n        const selectedYear = parseInt(yearFilter.value) ? parseInt(yearFilter.value) : yearFilter.value;\r\n        const currentYear = (new Date()).getFullYear();\r\n\r\n        const typeFilterEl = $(currentSection).find('[data-filter=\"data-type\"]');\r\n        const typeFilterElButton = $(typeFilterEl).children('.dropdown-toggle');\r\n\r\n        if (selectedYear !== 'all' && selectedYear !== currentYear) {\r\n          if (typeFilterElButton && typeFilterElButton.length > 0) {\r\n            // Apply past or future value\r\n            // Edit arrayFiltersToBeApplied changing value of data-type from 'all' to 'past' or 'future'\r\n            typeFilter.value = parseInt(selectedYear) < currentYear ? 'past' : 'future';\r\n            this.changeDropdownFilterValue(typeFilterElButton, typeFilter.value);\r\n\r\n            // Make readonly (if not yet)\r\n            $(typeFilterElButton).prop('disabled', true);\r\n          }\r\n        } else if ($(currentTarget).data('date') &&\r\n          $(currentTarget).data('date').toString() &&\r\n          $(currentTarget).data('date').toString().length > 0) {\r\n          // Remove readonly (if already)\r\n          console.log('currentTarget', currentTarget);\r\n          $(typeFilterElButton).prop('disabled', false);\r\n          this.changeDropdownFilterValue(typeFilterElButton, 'all');\r\n          this.changeFilterValue(arrayFiltersToBeApplied, 'data-type', 'all');\r\n        }\r\n      };\r\n\r\n      // Apply filter to target elements to dataTargetContainer -> dataTargetContainer only for fe paginator\r\n      this.applyFilter(currentSection, dataTargetContainer, dataTargetElementClass, arrayFiltersToBeApplied,\r\n        filterType);\r\n    }\r\n  }\r\n\r\n  getUrlParameter(name) {\r\n    name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n    var regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\r\n    var results = regex.exec(location.search);\r\n    return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n  };\r\n\r\n  applyFBEFilters(arrayFiltersToBeApplied) {\r\n    var oldUrl = window.location.href;\r\n    var currentUrl = oldUrl.split('?')[0];\r\n    var urlFilters = [];\r\n    var paramsToKeep = [\"query\", \"tab\", \"page\", \"wcmmode\", \"question\", \"onlytab\"];\r\n\r\n    for (var i = 0; i < arrayFiltersToBeApplied.length; i++) {\r\n      const key = arrayFiltersToBeApplied[i].key;\r\n      const value = arrayFiltersToBeApplied[i].value;\r\n      if (value && value.toString().length > 0 && value != \"all\" && value != 0) {\r\n        urlFilters.push({\r\n          key: key,\r\n          value: value,\r\n          type: arrayFiltersToBeApplied[i].type\r\n        });\r\n      }\r\n    }\r\n\r\n    for (var i = 0; i < paramsToKeep.length; i++) {\r\n      var paramValue = this.getUrlParameter(paramsToKeep[i]);\r\n      if (paramValue) {\r\n        urlFilters.push({\r\n          key: paramsToKeep[i],\r\n          value: paramValue,\r\n          type: \"urlParamToKeep\"\r\n        });\r\n      }\r\n    }\r\n\r\n\r\n    if (currentUrl[currentUrl.length - 1] != \"?\") {\r\n      currentUrl += \"?\";\r\n    }\r\n\r\n    for (var i = 0; i < urlFilters.length; i++) {\r\n      currentUrl += urlFilters[i].key + \"=\" + urlFilters[i].value + \"&\";\r\n    }\r\n\r\n    const urlLastChar = currentUrl[currentUrl.length - 1];\r\n    if (urlLastChar == \"&\") {\r\n      currentUrl = currentUrl.substring(0, currentUrl.length - 1);\r\n    }\r\n    window.location = currentUrl;\r\n  }\r\n\r\n  applyFilter(currentSection, dataTargetContainer, dataTargetElementClass, arrayFiltersToBeApplied) {\r\n    const arrayFilterKeys = [];\r\n    for (let index = 0; index < arrayFiltersToBeApplied.length; index++) {\r\n      arrayFilterKeys.push(arrayFiltersToBeApplied[index].key);\r\n    }\r\n\r\n    try {\r\n      const dataTargetElements = $(currentSection).find(dataTargetContainer + ' ' + dataTargetElementClass)\r\n        .not('accordion-container'); // Avoid considering accordion container items as filterable elements\r\n      const isCalendarWidget = this.checkCalendarWidgetFilters(currentSection);\r\n      if (dataTargetElements && dataTargetElements.length > 0) {\r\n        for (let i = 0; i < dataTargetElements.length; i++) {\r\n\r\n          // Save into an array all filter value of item and compare with filter array, then apply hidden/show based on array of differences\r\n          const arrayElementFilterDataValues = [];\r\n\r\n          for (let index = 0; index < arrayFiltersToBeApplied.length; index++) {\r\n            const filterToBeApplied = arrayFiltersToBeApplied[index];\r\n            const filterKey = filterToBeApplied.key;\r\n            const filterType = filterToBeApplied.type;\r\n\r\n            if ((filterKey === 'data-type') && isCalendarWidget) {\r\n              const currentYear = (new Date()).getFullYear();\r\n              const hasTargetElementYearDataAttribute = $(dataTargetElements[i]).attr('data-date') &&\r\n                $(dataTargetElements[i]).attr('data-date').toString().length > 0;\r\n\r\n              arrayElementFilterDataValues.push({\r\n                key: filterKey,\r\n                value: hasTargetElementYearDataAttribute ? $(dataTargetElements[i]).attr('data-date') : 'all'\r\n              });\r\n            } else {\r\n              arrayElementFilterDataValues.push({\r\n                key: filterKey,\r\n                /* value: $(dataTargetElements[i]).attr(filterType) === 'calendar' ? 'data-date' : (\r\n                  $(dataTargetElements[i]).attr(filterType) === 'type' ? 'data-year' : filterKey\r\n                ) */\r\n                value: $(dataTargetElements[i]).attr(filterType === 'calendar' ? 'data-date' : filterKey)\r\n              });\r\n            }\r\n          }\r\n\r\n          const currentYear = (new Date()).getFullYear();\r\n\r\n          let arrayFilterDifferences = arrayFiltersToBeApplied.filter(\r\n            o1 => arrayElementFilterDataValues.some(\r\n              o1.type === 'calendar' ?\r\n              (o2 => o1.key === 'data-date-from' ?\r\n                (o1.value === 'all' || o1.key === o2.key && parseInt(o1.value) < parseInt(o2.value)) :\r\n                (o1.value === 'all' || o1.key === o2.key && parseInt(o1.value) > parseInt(o2.value))) :\r\n\r\n              (\r\n\r\n                o1.type === 'dropdown' && o1.key === 'data-type' && isCalendarWidget ?\r\n                (o2 => o1.value === 'all' || (o1.value === 'past' ? parseInt(o2.value) < (new Date()).valueOf() :\r\n                  (new Date()).valueOf() < parseInt(o2.value))) :\r\n\r\n                (\r\n                  o1.type === 'dropdown' && o1.key === 'data-date' && isCalendarWidget ?\r\n                  (o2 => o1.value === 'all' || parseInt(o1.value) === (new Date(parseInt(o2.value)))\r\n                    .getFullYear()) :\r\n\r\n                  o2 => o1.value === 'all' || o1.key === o2.key &&\r\n                  (o2.value && Array.isArray(o2.value.split(',')) ? o2.value.split(',').includes(o1.value) : o1\r\n                    .value === o2.value)\r\n                )\r\n              )\r\n            ));\r\n\r\n          console.log('arrayFilterDifferences', arrayFilterDifferences);\r\n\r\n          // Check if dataTargetElement has card-project-filters class, so apply filter to parent container\r\n          let finalTargetElement = $(dataTargetElements[i]).hasClass('card-project-filters') ?\r\n            $(dataTargetElements[i]).parent('.card-container') : $(dataTargetElements[i]);\r\n\r\n          if ($(dataTargetElements[i]).hasClass('card-project-filters')) {\r\n            let finalTargetElement = $(dataTargetElements[i]).parent('.card-container');\r\n            if (arrayFiltersToBeApplied.length !== arrayFilterDifferences.length) {\r\n              console.log('finalTargetElement', finalTargetElement);\r\n              $(finalTargetElement).attr('style', 'display: none !important');\r\n              $(finalTargetElement).addClass('filtered');\r\n            } else {\r\n              $(finalTargetElement).css('display', '');\r\n              $(finalTargetElement).removeClass('filtered');\r\n            }\r\n          } else {\r\n            const finalTargetElementList = $(dataTargetElements[i]);\r\n            if (arrayFiltersToBeApplied.length !== arrayFilterDifferences.length) {\r\n              $(finalTargetElementList).attr('style', 'display: none !important');\r\n              $(finalTargetElementList).parents().addClass('filtered');\r\n            } else {\r\n              $(finalTargetElementList).css('display', '');\r\n              $(finalTargetElementList).parents().removeClass('filtered');\r\n            }\r\n          }\r\n\r\n\r\n        }\r\n      }\r\n\r\n      // Check if accordion items are filtered so hide all accordion container if all child elements are hidden\r\n      this.checkAccordions(currentSection);\r\n\r\n      // Reset paginator (if available in current section)\r\n      this.resetCurrentSectionPaginator(currentSection, dataTargetContainer);\r\n\r\n      // Manage border bottom of last publication items and children accordion elements\r\n      _common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].managePublicationListsBorders(currentSection);\r\n\r\n    } catch (error) {\r\n      console.log(error);\r\n    }\r\n  }\r\n\r\n  resetFilters(allFilters, currentSection, dataTargetContainer, dataTargetElementClass) {\r\n    const arrayFiltersToReset = [];\r\n    const tempArrayFiltersToReset = [];\r\n    for (let i = 0; i < allFilters.length; i++) {\r\n      const filterToReset = allFilters[i];\r\n      switch ($(filterToReset).data('filter-type')) {\r\n        case 'dropdown':\r\n          // Exclude current filter and push into array other filters\r\n          if ($(filterToReset).data('target-element-class') ===\r\n            dataTargetElementClass) {\r\n\r\n            tempArrayFiltersToReset.push(filterToReset);\r\n\r\n            // Apply default dropdown value\r\n\r\n            const dataFilter = $(filterToReset).data('filter');\r\n            const filterButton = $(filterToReset).children('.dropdown-toggle');\r\n            const dropdownButtonsListContainer = $(filterToReset).children('.dropdown-menu');\r\n            const dropdownButtons = $(dropdownButtonsListContainer).children('button.dropdown-item');\r\n            const defaultValueDropdownButton = $(dropdownButtonsListContainer).children('[' + dataFilter +\r\n              '=\"all\"]');\r\n\r\n            const defaultValueDropdownButtonText = $(defaultValueDropdownButton).text();\r\n            $(filterButton).text(_common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].truncateDropdownButtonText(defaultValueDropdownButtonText));\r\n\r\n            // Update item with active class and remove active from others\r\n            const actualDropdownActiveButton = $(dropdownButtonsListContainer).children(\r\n              'button.dropdown-item.active');\r\n            if (actualDropdownActiveButton && actualDropdownActiveButton.length > 0) {\r\n              $(actualDropdownActiveButton).removeClass('active');\r\n            }\r\n            $(defaultValueDropdownButton).addClass('active');\r\n\r\n            const filterToResetFilterKey = $(filterToReset).data('filter');\r\n            const filterToResetFilterType = $(filterToReset).data('filter-type');\r\n            const filterToResetFilterValue = 'all';\r\n\r\n            arrayFiltersToReset.push({\r\n              key: filterToResetFilterKey,\r\n              value: filterToResetFilterValue,\r\n              type: filterToResetFilterType\r\n            });\r\n          }\r\n          break;\r\n\r\n        case 'calendar':\r\n\r\n          if ($(filterToReset).data('target-element-class') ===\r\n            dataTargetElementClass) {\r\n            tempArrayFiltersToReset.push(filterToReset);\r\n            const calendarInput = $(filterToReset).find(\".picker__input\");\r\n            const filterToResetFilterKey = $(filterToReset).data('filter');\r\n            const filterToResetFilterType = $(filterToReset).data('filter-type');\r\n            $(calendarInput).pickadate().pickadate(\"picker\").clear();\r\n            arrayFiltersToReset.push({\r\n              key: filterToResetFilterKey,\r\n              value: 'all',\r\n              type: filterToResetFilterType\r\n            });\r\n          }\r\n          break;\r\n\r\n        case 'checkbox':\r\n\r\n          if ($(filterToReset).data('target-element-class') ===\r\n            dataTargetElementClass) {\r\n            tempArrayFiltersToReset.push(filterToReset);\r\n            const checkboxInput = $(filterToReset).find(\"input[type=checkbox]\");\r\n            const filterToResetFilterKey = $(filterToReset).data('filter');\r\n            const filterToResetFilterType = $(filterToReset).data('filter-type');\r\n\r\n            if (!$(checkboxInput).is(':checked')) {\r\n              $(checkboxInput).prop(\"checked\", false);\r\n            }\r\n\r\n            arrayFiltersToReset.push({\r\n              key: filterToResetFilterKey,\r\n              value: 'all',\r\n              type: filterToResetFilterType\r\n            });\r\n          }\r\n          break;\r\n\r\n        default:\r\n          break;\r\n      }\r\n    }\r\n\r\n    // Check if there is front end paginator\r\n    const isThereFEPaginator = this.checkFEPaginator(currentSection, dataTargetContainer);\r\n\r\n    if (!isThereFEPaginator) {\r\n      this.resetAjaxPaginator(currentSection, dataTargetContainer, arrayFiltersToReset);\r\n      return;\r\n    }\r\n\r\n    try {\r\n      const dataTargetElements = $(currentSection).find(dataTargetContainer + ' ' + dataTargetElementClass);\r\n      if (dataTargetElements && dataTargetElements.length > 0) {\r\n        for (let i = 0; i < dataTargetElements.length; i++) {\r\n          // Check if dataTargetElement has card-project-filters class, so apply filter to parent container\r\n          const finalTargetElement = $(dataTargetElements[i]).hasClass('card-project-filters') ?\r\n            $(dataTargetElements[i]).parent('.card-container') : $(dataTargetElements[i]);\r\n          $(finalTargetElement).css('display', '');\r\n          $(finalTargetElement).removeClass('filtered');\r\n        }\r\n      }\r\n\r\n      // Reset paginator (if available in current section)\r\n      this.resetCurrentSectionPaginator(currentSection, dataTargetContainer);\r\n    } catch (error) {\r\n      console.log(error);\r\n    }\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  const component = new FiltersUtil();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/form-utils.js\":\n/*!******************************************!*\\\n  !*** ./src/scripts/common/form-utils.js ***!\n  \\******************************************/\n/*! exports provided: FormUtils */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FormUtils\", function() { return FormUtils; });\nclass FormUtils {\r\n  constructor(form) {\r\n    console.log(\"Init Form Utils\", form);\r\n    console.log(\"Select-all buttons: \", form.find(\".select-all\"));\r\n\r\n    // Handle check-all checkboxes\r\n    $(form).find(\".select-all\").click((el) => {\r\n      this.handleCheckAll(el, form);\r\n    });\r\n\r\n    // Handle touched class\r\n    $(form).find(\"input\").focusout((el) => {\r\n      var target = el.target;\r\n      $(target).addClass(\"touched\");\r\n      if ($(target).val() === '') {\r\n        $(target).next().addClass(\"visible\");\r\n      } else {\r\n        $(target).next().removeClass(\"visible\");\r\n      }\r\n\r\n    });\r\n    $(form).find(\"textarea\").focusout((el) => {\r\n      var target = el.target;\r\n      $(target).addClass(\"touched\");\r\n    });\r\n    if ($(\"input\").hasClass(\"touched\")) {\r\n      $(\"error-message\").addClass(\"visible\");\r\n    }\r\n\r\n    // Dropdowns Handler\r\n    this.handleDropdowns(form);\r\n\r\n    // File Handler\r\n    this.handleFile(form);\r\n\r\n    // Privacy Policy Handler\r\n    this.handlePrivacyPolicy(form);\r\n\r\n    // EniNext CheckBox\r\n    $(form).find(\"#eni-next-shares\").click((el) => {\r\n      $('#ShareAndTerms').hide();\r\n    });\r\n\r\n    $(form).find(\"#eni-next-terms\").click((el) => {\r\n      $('#ShareAndTerms').hide();\r\n    });\r\n\r\n\r\n    $(\"#company\").on(\"click\", function () {\r\n      $(\"#company-section\").addClass('visible');\r\n      $(\"#denominazione\").prop('required', true);\r\n      $(\"#taxId\").prop('required', true);\r\n      $(\"#sedelegale\").prop('required', true);\r\n      $(\"#estremi\").prop('required', true);\r\n    });\r\n\r\n    $(\"#person\").on(\"click\", function () {\r\n      $(\"#company-section\").removeClass('visible');\r\n      $(\"#denominazione\").removeClass('touched');\r\n      $(\"#denominazione\").next().removeClass('visible');\r\n      $(\"#denominazione\").removeAttr(\"required\");\r\n      $(\"#taxId\").removeClass('touched');\r\n\r\n      $(\"#taxId\").next().removeClass('visible');\r\n      $(\"#taxId\").removeAttr(\"required\");\r\n      $(\"#sedelegale\").removeClass('touched');\r\n      $(\"#sedelegale\").next().removeClass('visible');\r\n      $(\"#sedelegale\").removeAttr(\"required\");\r\n      $(\"#estremi\").removeClass('touched');\r\n      $(\"#estremi\").next().removeClass('visible');\r\n      $(\"#estremi\").removeAttr(\"required\");\r\n\r\n    });\r\n\r\n    //Handle \"profile\" textarea investor-relations form visibility\r\n    this.handleProfileTextareaVisibility();\r\n\r\n    //Handle \"updates\" textarea investor-relations form visibility\r\n    this.handleUpdatesTextareaVisibility(form);\r\n\r\n    // Handle Submit Privacy Policy Validation\r\n    $(form).find(\"#submitButton\").click((el) => {\r\n      this.handleSubmitButtonClick(el, form);\r\n    });\r\n  }\r\n\r\n  handleCheckAll(el, form) {\r\n    var target = $(el.target).data(\"target\");\r\n    var targetElements = $(form).find(target).find(\"input\");\r\n    console.log(\"Select all clicked! Target:\", target);\r\n    console.log(\"Target elements\", $(targetElements));\r\n    if ($(el.target).prop(\"checked\") == true) {\r\n      $(targetElements).prop(\"checked\", true);\r\n    } else {\r\n      $(targetElements).prop(\"checked\", false);\r\n    }\r\n  }\r\n  \r\n  handleFile(form) {\r\n    const file = $('#FileAttachment');\r\n    const filename = $('#fileuploadurl');\r\n\r\n    const file1 = $('#FileAttachmentReportFirst');\r\n    const filename1 = $('#fileuploadurl1');\r\n\r\n    const file2 = $('#FileAttachmentReportSecond');\r\n    const filename2 = $('#fileuploadurl2');\r\n\r\n    const file3 = $('#FileAttachmentReportThird');\r\n    const filename3 = $('#fileuploadurl3');\r\n\r\n    const fileNext = $('#FileAttachmentNext');\r\n    const filenameNext = $('#fileuploadurlNext');\r\n    \r\n    $(file).on('change', function () {\r\n      var file = this.files[0];\r\n\r\n      if (file.size > 2000000) {\r\n        $('.file-error-message').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filename).css({\r\n          'display': 'none'\r\n        });\r\n      } \r\n      else {\r\n        $('.file-error-message').css({\r\n          'display': 'none'\r\n        });\r\n        const name = this.value.replace(\"C:\\\\fakepath\\\\\", \"\");\r\n        $(filename).val(name);\r\n        $(filename).css({\r\n          'display': 'inline-block'\r\n        });\r\n      }\r\n      if (file.type === 'application/pdf' || file.type === 'image/jpeg') {\r\n        $('.type-error-message').css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n      else {\r\n        $('.type-error-message').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filename).css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n    });\r\n    $(file1).on('change', function () {\r\n      var file = this.files[0];\r\n\r\n      if (file.size > 10485760) {\r\n        $('.file-error-message1').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filename1).css({\r\n          'display': 'none'\r\n        });\r\n      } \r\n      else {\r\n        $('.file-error-message1').css({\r\n          'display': 'none'\r\n        });\r\n        const name = this.value.replace(\"C:\\\\fakepath\\\\\", \"\");\r\n        $(filename1).val(name);\r\n        $(filename1).css({\r\n          'display': 'inline-block'\r\n        });\r\n      }\r\n      if (file.type === 'application/pdf' || file.type === 'image/jpeg') {\r\n        $('.type-error-message1').css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n      else {\r\n        $('.type-error-message1').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filename1).css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n    });\r\n    $(file2).on('change', function () {\r\n      var file = this.files[0];\r\n\r\n      if (file.size > 10485760) {\r\n        $('.file-error-message2').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filename2).css({\r\n          'display': 'none'\r\n        });\r\n      } \r\n      else {\r\n        $('.file-error-message2').css({\r\n          'display': 'none'\r\n        });\r\n        const name = this.value.replace(\"C:\\\\fakepath\\\\\", \"\");\r\n        $(filename2).val(name);\r\n        $(filename2).css({\r\n          'display': 'inline-block'\r\n        });\r\n      }\r\n      if (file.type === 'application/pdf' || file.type === 'image/jpeg') {\r\n        $('.type-error-message2').css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n      else {\r\n        $('.type-error-message2').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filename2).css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n    });\r\n    $(file3).on('change', function () {\r\n      var file = this.files[0];\r\n\r\n      if (file.size > 10485760) {\r\n        $('.file-error-message3').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filename3).css({\r\n          'display': 'none'\r\n        });\r\n      } \r\n      else {\r\n        $('.file-error-message3').css({\r\n          'display': 'none'\r\n        });\r\n        const name = this.value.replace(\"C:\\\\fakepath\\\\\", \"\");\r\n        $(filename3).val(name);\r\n        $(filename3).css({\r\n          'display': 'inline-block'\r\n        });\r\n      }\r\n      if (file.type === 'application/pdf' || file.type === 'image/jpeg') {\r\n        $('.type-error-message3').css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n      else {\r\n        $('.type-error-message3').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filename3).css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n    });\r\n    $(fileNext).on('change', function () {\r\n      var file = this.files[0];\r\n\r\n      if (file.size > 10485760) {\r\n        $('.file-error-message').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filenameNext).css({\r\n          'display': 'none'\r\n        });\r\n      } \r\n      else {\r\n        $('.file-error-message').css({\r\n          'display': 'none'\r\n        });\r\n        const name = this.value.replace(\"C:\\\\fakepath\\\\\", \"\");\r\n        $(filenameNext).val(name);\r\n        $(filenameNext).css({\r\n          'display': 'inline-block'\r\n        });\r\n      }\r\n      if (file.type === 'application/pdf') {\r\n        $('.type-error-message').css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n      else {\r\n        $('.type-error-message').css({\r\n          'display': 'inline-block'\r\n        });\r\n        $(filenameNext).css({\r\n          'display': 'none'\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  handlePrivacyPolicy(form) {\r\n    /*\r\n    const formPrivacyErrorMessage = $(form).find('.button-form-privacy-error-message');\r\n    $('#privacyPolicyYes').click(function () {\r\n      $(formPrivacyErrorMessage).hide();\r\n    });\r\n\r\n    // Enable if error message has to be showed when change privacy instead when click submit button\r\n    /* $('#privacyPolicyNo').click(function () {\r\n      $(formPrivacyErrorMessage).show();\r\n    }); */\r\n    $('#privacyPolicyYes').click(function () {\r\n      //$('#submitButton').prop(\"disabled\", !$(\"#privacyPolicyYes\").prop(\"checked\"));\r\n      //  $('#submitButton').removeClass(\"no-submit\");\r\n      // $('#submitButton').addClass(\"ok-submit\");\r\n      //$('.button-error-message').removeClass('visible');\r\n    $('.button-error-message').hide();\r\n      $('.no-submit').css({\r\n        'display': 'none'\r\n      });\r\n      $('#submitButton').css({\r\n        'display': 'block'\r\n      });\r\n    });\r\n    $('#privacyPolicyNo').click(function () {\r\n      // $('#submitButton').addClass(\"no-submit\");\r\n      // $('#submitButton').removeClass(\"ok-submit\");\r\n      //   $('#submitButton').prop(\"disabled\", !$(\"#privacyPolicyNo\").prop(\"\"));\r\n      $('.no-submit').css({\r\n        'display': 'block'\r\n      });\r\n      $('#submitButton').css({\r\n        'display': 'none'\r\n      });\r\n\r\n    });\r\n    $('.no-submit').click(function (e) {\r\n      //$('.button-error-message').addClass('visible');\r\n      $('.button-error-message').show();\r\n      e.stopPropagation();\r\n    });\r\n\r\n  }\r\n\r\n  handleDropdowns(form) {\r\n    // Handle form dropdowns\r\n    var dropdownComponent = $(form).find(\".form-dropdown\");\r\n    var dropdownComponentInput = $(dropdownComponent).find(\"input\");\r\n    var dropdownComponentButton = $(dropdownComponent).find(\".dropdown-toggle\");\r\n    var dropdownComponentItems = $(dropdownComponent).find(\".dropdown-item\");\r\n\r\n    $(dropdownComponentItems).click((el) => {\r\n      // Set vars to correct elements\r\n      var currentElement = el.target;\r\n      dropdownComponent = $(currentElement).parent().parent();\r\n      dropdownComponentInput = $(dropdownComponent).find(\"input\");\r\n      dropdownComponentButton = $(dropdownComponent).find(\".dropdown-toggle\");\r\n      dropdownComponentItems = $(dropdownComponent).find(\".dropdown-item\");\r\n\r\n      $(dropdownComponent).addClass(\"touched\");\r\n      $(dropdownComponentItems).removeClass(\"active\");\r\n      $(currentElement).addClass(\"active\");\r\n\r\n      $(dropdownComponentButton).text($(currentElement).text());\r\n      $(dropdownComponentInput).val($(currentElement).data(\"value\"));\r\n    });\r\n  }\r\n\r\n  handleProfileTextareaVisibility() {\r\n    const otherTextArea = $(\"#other-textarea\");\r\n    $(\"#other-label\").on(\"click\", function () {\r\n      $(otherTextArea).addClass('visible');\r\n      $(otherTextArea).prop('required', true);\r\n    });\r\n\r\n    $(\".profile-activity-label\").on(\"click\", function () {\r\n      $(otherTextArea).removeClass('visible');\r\n      $(otherTextArea).prop('required', false);\r\n    });\r\n  }\r\n\r\n  handleUpdatesTextareaVisibility(form) {\r\n    const updatesTextarea = $(form).find('#updates-textarea');\r\n    $(\".other-updates-checkbox\").on(\"click\", function (el) {\r\n      const currentOtherUpdatesCheckbox = el.target;\r\n      if ($(currentOtherUpdatesCheckbox).is(':checked')) {\r\n        $(updatesTextarea).prop('required', true);\r\n      } else {\r\n        $(updatesTextarea).prop('required', false);\r\n      }\r\n    });\r\n  }\r\n\r\n  handleSubmitButtonClick(ev, form) {\r\n    const privacyPolicyLabel = $(form).find('privacy-label');\r\n    const privacyPolicyYesRadio = $(form).find('#privacyPolicyYes');\r\n    const privacyPolicyNoRadio = $(form).find('#privacyPolicyNo');\r\n\r\n    const eniNextShares = $(form).find('#eni-next-shares');\r\n    const eniNextTerms = $(form).find('#eni-next-terms');\r\n\r\n    if (privacyPolicyLabel && privacyPolicyYesRadio && privacyPolicyNoRadio) {\r\n      const formPrivacyErrorMessage = $(form).find('.button-form-privacy-error-message');\r\n      \r\n      // Check if privacy is accepted\r\n      if ($(privacyPolicyNoRadio).is(':checked') || !$(privacyPolicyYesRadio).is(':checked')) {\r\n        $(formPrivacyErrorMessage).show();\r\n        ev.preventDefault();\r\n      }\r\n    }\r\n\r\n    // check report form files for encription\r\n    var reportForm = $(\"#reportForm\");\r\n    if(reportForm.length){\r\n      var file1 = document.getElementById(\"FileAttachmentReportFirst\").files[0];\r\n      var file2 = document.getElementById(\"FileAttachmentReportSecond\").files[0];\r\n      var file3 = document.getElementById(\"FileAttachmentReportThird\").files[0];\r\n\r\n      if(file1 != undefined || file2 != undefined || file3 != undefined){\r\n        reportForm.attr(\"enctype\",\"multipart/form-data\");        \r\n      }\r\n      else{\r\n        reportForm.removeAttr(\"enctype\");\r\n      }\r\n      //var file2 = $(\"#FileAttachment2\");\r\n      //var file3 = $(\"#FileAttachment3\");\r\n      \r\n      /*if( (file1.size>0 && (file1.type=='jpg' || file1.type=='pdf')) || (file2.size>0 && (file2.type=='jpg' || file2.type=='pdf')) || (file3.size>0 && (file3.type=='jpg' || file1.type=='pdf')) ){\r\n        reportForm.attr(\"enctype\",\"multipart/form-data\");\r\n      }\r\n      \r\n      if(file1.size>0 && (file1.type=='image/jpeg' || file1.type=='application/pdf')){\r\n        reportForm.attr(\"enctype\",\"multipart/form-data\");\r\n      }\r\n      \r\n      else{\r\n        reportForm.removeAttr(\"enctype\");\r\n      }  \r\n      */\r\n    }\r\n    if(eniNextShares.length && eniNextTerms.length){\r\n      const shareAndTermsError = $(form).find('#ShareAndTerms');\r\n\r\n      if (!$(eniNextShares).is(':checked') || !$(eniNextTerms).is(':checked')) {\r\n        $(shareAndTermsError).show();\r\n        ev.preventDefault();\r\n      }\r\n    }\r\n    var recaptcha = $(\"#g-recaptcha-response\").val();\r\n    if (recaptcha === \"\") {\r\n        event.preventDefault();\r\n        var currentLang = $('html')[0].lang;\r\n      if(currentLang.indexOf('it')>-1){\r\n        alert(\"Captcha: campo obbligatorio\");\r\n      }\r\n      else alert(\"Captcha: compulsory field\");\r\n    }\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const form = $('form');\r\n  const component = new FormUtils(form);\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/initDynamicContent.js\":\n/*!**************************************************!*\\\n  !*** ./src/scripts/common/initDynamicContent.js ***!\n  \\**************************************************/\n/*! exports provided: initDynamicContent */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initDynamicContent\", function() { return initDynamicContent; });\n/* harmony import */ var _widgets_highlight_editorial_content__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../widgets/highlight_editorial_content */ \"./src/scripts/widgets/highlight_editorial_content.js\");\n/* harmony import */ var _widgets_media_highlight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../widgets/media-highlight */ \"./src/scripts/widgets/media-highlight.js\");\n/* harmony import */ var _widgets_herobanner_homepage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../widgets/herobanner-homepage */ \"./src/scripts/widgets/herobanner-homepage.js\");\n/* harmony import */ var _widgets_event_highlight_countdown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../widgets/event-highlight-countdown */ \"./src/scripts/widgets/event-highlight-countdown.js\");\n/* harmony import */ var _common_share__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/share */ \"./src/scripts/common/share.js\");\n// Highlight editorial content classes\r\n\r\n// Media highlight classes\r\n\r\n// Hero banner classes\r\n\r\n// Event highlight countdown classes\r\n\r\n// Share class\r\n\r\n\r\n\r\n\r\nconst dynamicContentWidgetMap = new Map();\r\nconst dynamicContentWidgets = [];\r\nconst classesToBeReinstantiated = [];\r\n\r\nconst highlightEditorialContentMap = {\r\n  key: 'highlight-editorial-content',\r\n  classes: ['highlight-editorial-content', 'share']\r\n};\r\nconst mediaHighlightMap = {\r\n  key: 'media-highlight',\r\n  classes: ['media-highlight', 'share']\r\n};\r\nconst heroBannerMap = {\r\n  key: 'hero-banner',\r\n  classes: ['hero-banner-homepage', 'share']\r\n};\r\nconst mediaHighlightVideoMap = {\r\n  key: 'media-highlight',\r\n  classes: ['media-highlight', 'yt-video']\r\n};\r\n\r\n\r\n\r\ndynamicContentWidgets.push(highlightEditorialContentMap, mediaHighlightMap, heroBannerMap);\r\nfor (let i = 0; i < dynamicContentWidgets.length; i++) {\r\n  dynamicContentWidgetMap.set(dynamicContentWidgets[i].key, dynamicContentWidgets[i].classes);\r\n}\r\n\r\nfunction initDynamicContent() {\r\n  console.log('Init dynamic content');\r\n  const dynamicContentContainers = $('.eni-target-widget');\r\n  if (dynamicContentContainers && dynamicContentContainers.length > 0) {\r\n\r\n    for (let i = 0; i < dynamicContentContainers.length; i++) {\r\n      const dynamicContentContainer = dynamicContentContainers[i];\r\n      handleDynamicContentContainer(dynamicContentContainer);\r\n    }\r\n\r\n    reinstantiateClasses();\r\n  } else {\r\n    console.warn('No dynamic content widgets found while trying to reinstantiate dynamic content classes');\r\n  }\r\n\r\n  // Fix Pciturefill polyfill IE11 for dynamic content\r\n  if(typeof picturefill !== 'undefined'){\r\n    picturefill();\r\n  }\r\n\r\n}\r\n\r\n// Make initDynamicContent global accessibility outside app.min\r\nglobal.initDynamicContent = initDynamicContent;\r\nfunction handleDynamicContentContainer(dynamicContentContainer) {\r\n  if ($(dynamicContentContainer).hasClass('highlight-editorial-content')) {\r\n    const highlightEditorialContentClasses = dynamicContentWidgetMap.get('highlight-editorial-content');\r\n    for (let i = 0; i < highlightEditorialContentClasses.length; i++) {\r\n      const highlightEditorialContentClass = highlightEditorialContentClasses[i];\r\n      if (classesToBeReinstantiated.indexOf(highlightEditorialContentClass) === -1) {\r\n        classesToBeReinstantiated.push(highlightEditorialContentClass);\r\n      }\r\n    }\r\n  } else if ($(dynamicContentContainer).hasClass('media-highlight-widget')) {\r\n    const mediaHighlightContentClasses = dynamicContentWidgetMap.get('media-highlight');\r\n    for (let i = 0; i < mediaHighlightContentClasses.length; i++) {\r\n      const mediaHighlightContentClass = mediaHighlightContentClasses[i];\r\n      if (classesToBeReinstantiated.indexOf(mediaHighlightContentClass) === -1) {\r\n        classesToBeReinstantiated.push(mediaHighlightContentClass);\r\n      }\r\n    }\r\n  } else if ($(dynamicContentContainer).hasClass('herobanner-homepage')) {\r\n    const heroBannerContentClasses = dynamicContentWidgetMap.get('hero-banner');\r\n    for (let i = 0; i < heroBannerContentClasses.length; i++) {\r\n      const heroBannerContentClass = heroBannerContentClasses[i];\r\n      if (classesToBeReinstantiated.indexOf(heroBannerContentClass) === -1) {\r\n        classesToBeReinstantiated.push(heroBannerContentClass);\r\n      }\r\n    }\r\n \r\n  }\r\n}\r\n\r\nfunction reinstantiateClasses() {\r\n  if (classesToBeReinstantiated.length > 0) {\r\n    for (let i = 0; i < classesToBeReinstantiated.length; i++) {\r\n      switch (classesToBeReinstantiated[i]) {\r\n        case 'highlight-editorial-content':\r\n          console.log('REINITIALIZING HighlightEditorialContent');\r\n          new _widgets_highlight_editorial_content__WEBPACK_IMPORTED_MODULE_0__[\"HighlightEditorialContent\"](true);\r\n          break;\r\n        case 'media-highlight':\r\n          console.log('REINITIALIZING MediaHighlight');\r\n          new _widgets_media_highlight__WEBPACK_IMPORTED_MODULE_1__[\"MediaHighlight\"](true);\r\n          break;\r\n        case 'hero-banner-homepage':\r\n          console.log('REINITIALIZING HeroBannerHomepage');\r\n          new _widgets_herobanner_homepage__WEBPACK_IMPORTED_MODULE_2__[\"HeroBannerHomepage\"](true);\r\n          break;\r\n        case 'share':\r\n          console.log('REINITIALIZING Share');\r\n          new _common_share__WEBPACK_IMPORTED_MODULE_4__[\"Share\"](true);\r\n          break;\r\n          \r\n        default:\r\n          break;\r\n      }\r\n    }\r\n  } else {\r\n    console.warn('No classes to be reinstantiated found for dynamic content widgets');\r\n  }\r\n}\r\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n/***/ }),\n\n/***/ \"./src/scripts/common/modals.js\":\n/*!**************************************!*\\\n  !*** ./src/scripts/common/modals.js ***!\n  \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n//const modalDisclaimer = $(\"#ModalDisclaimerPressRelease']\");\r\n//const modalOpen = $(\"#ModalEmailNewsletter']\");\r\n//if (modalOpen && modalOpen.length > 0) {\r\n$('#ModalDisclaimerPressRelease').modal('show');\r\n$('#ModalEmailNewsletter').modal('show');\r\n//}\r\n\r\n\r\n\r\n$(document).ready(function () {\r\n  var maForm = $(\"#maForm\");\r\n  $(\"#enterMail\").on(\"click\",function(){\r\n    $(\"#emailError\").hide();\r\n  });\r\n  $(\".ma_interests\").on(\"click\",function(){\r\n    $(\"#interestError\").hide();\r\n  });\r\n  $(\".mail-alert-continue-btn\").on(\"click\", function () {\r\n    var checkboxes=maForm.find('.ma_interests');\r\n    var mailField=$('#enterMail').val();\r\n    var isCboxesSelected = false;\r\n    var isMailValid = false;\r\n    var currentLang = $('html')[0].lang;\r\n    for(var i = 0;i<checkboxes.length;i++){\r\n      if(checkboxes[i].checked){\r\n        isCboxesSelected=true;\r\n      }\r\n    }\r\n    if( (mailField!=\"\" || mailField!=null) && mailField.indexOf('@')>-1 && mailField.indexOf('.')>-1){\r\n      isMailValid=true;\r\n    }\r\n    if(isMailValid && isCboxesSelected){\r\n      $(\".step-one\").hide();\r\n      $(\".step-two\").show();\r\n    }\r\n    else{\r\n      if(!isMailValid){\r\n        $(\"#emailError\").show();\r\n      }\r\n      if(!isCboxesSelected){\r\n        $(\"#interestError\").show();\r\n      }\r\n    }\r\n  });\r\n\r\n  $(\".mail-alert-go-back-btn\").on(\"click\", function () {\r\n    $(\".step-one\").show();\r\n    $(\".step-two\").hide();\r\n  });\r\n\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/owl-carousel.js\":\n/*!********************************************!*\\\n  !*** ./src/scripts/common/owl-carousel.js ***!\n  \\********************************************/\n/*! exports provided: owlCarouselUtls */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"owlCarouselUtls\", function() { return owlCarouselUtls; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nconst owlCarouselUtls = (bindClass, opts, isBindMouseWheel) => {\r\n\r\n  const owl = $(bindClass).owlCarousel(opts);\r\n\r\n  /* if (isBindMouseWheel) {\r\n    $(bindClass).on('mousewheel', '.owl-stage', (e) => {\r\n\r\n      if (e.deltaY > 0) {\r\n        $(e.target).trigger('next.owl');\r\n      } else {\r\n        $(e.target).trigger('prev.owl');\r\n      }\r\n      e.preventDefault();\r\n    });\r\n\r\n    $(bindClass).on('change.owl.carousel', () => {\r\n      // Close card share modal when owl carousel changes\r\n      Utils.closeShareModal();\r\n    });\r\n\r\n\r\n  } */\r\n\r\n  return owl;\r\n};\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/pagination-util.js\":\n/*!***********************************************!*\\\n  !*** ./src/scripts/common/pagination-util.js ***!\n  \\***********************************************/\n/*! exports provided: PaginationUtil */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PaginationUtil\", function() { return PaginationUtil; });\nclass PaginationUtil {\r\n\r\n  constructor(containerDiv) {\r\n    const elements = $(containerDiv);\r\n    console.log(\"PAGINATORS\", elements);\r\n    for (let i = 0; i < elements.length; i++) {\r\n      this.init(elements[i]);\r\n    }\r\n  }\r\n\r\n\r\n  init(currentElement) {\r\n    const elementsPerPage = $(currentElement).data('per-page');\r\n    const targetElementsClass = $(currentElement).data('target');\r\n    const ajax = $(currentElement).data('ajax');\r\n    const minElements = $(currentElement).data('min-elements');\r\n    console.log(\"Paginator Initialized!\", currentElement);\r\n    console.log(\"Elements per page!\", elementsPerPage);\r\n\r\n    $(currentElement).ttPaginator({\r\n      perPage: elementsPerPage,\r\n      targetElementsClass: targetElementsClass,\r\n      ajax: ajax,\r\n      minElements: minElements\r\n    });\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const elements = $('[data-pagination=\"true\"]');\r\n  for (var i = 0; i < elements.length; i++) {\r\n    const component = new PaginationUtil(elements[i]);\r\n  }\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/scroll.js\":\n/*!**************************************!*\\\n  !*** ./src/scripts/common/scroll.js ***!\n  \\**************************************/\n/*! exports provided: ScrollUtil */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ScrollUtil\", function() { return ScrollUtil; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\nclass ScrollUtil {\r\n    constructor() {\r\n        const backtop = $('.backtop');\r\n        var isMobile = $(window).outerWidth() < 1024;\r\n\r\n        $('.fab-search-mobile').on('click', function () {\r\n            $('#mobileSearchModal').modal('show');\r\n            $('.eni-search-modal-input').trigger('focus');\r\n            return false;\r\n        });\r\n\r\n        if (backtop && backtop.length > 0) {\r\n\r\n            $(backtop).on('click', function () {\r\n                $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n                $(backtop).removeClass(\"backtop-absolute\");\r\n                $(backtop).removeClass(\"backtop-fixed\");\r\n                $(backtop).stop(true, true).fadeOut(1);\r\n                return false;\r\n            });\r\n\r\n            $(window).scroll(function (event) {\r\n\r\n\r\n                \r\n                var scrollPercent = 100 * $(window).scrollTop() / ($(document).height() - $(window).height());\r\n               \r\n\r\n                if (_common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isInViewport(\".footer-description-enicom div:nth-last-child(3)\") || (isMobile)) {\r\n\r\n                    $(backtop).removeClass(\"backtop-fixed\");\r\n                    $(backtop).addClass(\"backtop-absolute\");\r\n                    $(backtop).fadeIn(1500);\r\n                    //console.error('viewport');\r\n                } else if (scrollPercent > 66) {\r\n\r\n                   \r\n                    $(backtop).removeClass(\"backtop-absolute\");\r\n                    $(backtop).addClass(\"backtop-fixed\");\r\n                    \r\n                    $(backtop).fadeIn(1500);\r\n                    //console.error('maggiore di 66');\r\n                } else {\r\n                    $(backtop).removeClass(\"backtop-absolute\");\r\n                    $(backtop).stop(true, true).fadeOut(1);\r\n\r\n                   // console.error('minore di 66');\r\n\r\n                }\r\n              \r\n\r\n               \r\n            });\r\n        }\r\n    }\r\n}\r\n\r\n$(() => {\r\n    const component = new ScrollUtil();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/search-tab-utils.js\":\n/*!************************************************!*\\\n  !*** ./src/scripts/common/search-tab-utils.js ***!\n  \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n$(document).ready(() => {\r\n  setTimeout(() => {\r\n    $(\".eni-searchbar-container\").find(\".carousel-container\").addClass(\"visible\");\r\n  }, 500);\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/share.js\":\n/*!*************************************!*\\\n  !*** ./src/scripts/common/share.js ***!\n  \\*************************************/\n/*! exports provided: SHARE_PROPS, Share */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHARE_PROPS\", function() { return SHARE_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Share\", function() { return Share; });\n/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clipboard */ \"./node_modules/clipboard/dist/clipboard.js\");\n/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clipboard__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n/* harmony import */ var _common_digital_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/digital-data */ \"./src/scripts/common/digital-data.js\");\n\r\n\r\n\r\n\r\nconst SHARE_PROPS = {\r\n  DROPDOWN_BTN_CLASS: '.btn.btn-share',\r\n  DROPDOWN_ID: '#share-dropdown',\r\n  MODAL_ID: '#shareModal',\r\n  SHARE_SOCIAL_BTN_CLASS: '.btn.btn-share.btn-social',\r\n  SHARE_SMALL_ICON_CLASS: '.icon-share-small',\r\n  BTN_DROPDOWN_COPY_ID: '#copyDropdownBtn',\r\n  BTN_MODAL_COPY_ID: '#copyModalBtn',\r\n  BTN_COPY_CLASS: '.btn-copy-url',\r\n  DATA_TOGGLE: 'data-toggle',\r\n  DATA_URL: 'data-url',\r\n  DATA_SHARE_URL: 'data-share-url',\r\n  DATA_CLIPBOARD_TEXT: 'data-clipboard-text',\r\n  DATA_SHARE_SOCIAL: 'data-share-social',\r\n  MODAL_SEARCH: '.search-gallery-popup'\r\n};\r\nclass Share {\r\n\r\n\r\n  constructor(initializeForDynamicContent) {\r\n\r\n    // Manage children selector when dynamic section instantiate class\r\n    if (initializeForDynamicContent) {\r\n      SHARE_PROPS.DROPDOWN_BTN_CLASS = '.eni-target-widget ' + SHARE_PROPS.DROPDOWN_BTN_CLASS;\r\n      SHARE_PROPS.SHARE_SOCIAL_BTN_CLASS = '.eni-target-widget ' + SHARE_PROPS.SHARE_SOCIAL_BTN_CLASS;\r\n      SHARE_PROPS.BTN_COPY_CLASS = '.eni-target-widget ' + SHARE_PROPS.BTN_COPY_CLASS;\r\n    }\r\n\r\n    $(SHARE_PROPS.DROPDOWN_BTN_CLASS).on('click', (el) => this.showModal(el));\r\n\r\n    $(document).mouseup((e) => {\r\n      const container = $(SHARE_PROPS.DROPDOWN_ID);\r\n      if (!container.is(e.target) && container.has(e.target).length === 0) {\r\n        container.fadeOut();\r\n      }\r\n    });\r\n    if($(SHARE_PROPS.MODAL_SEARCH).length<1){ \r\n      $(SHARE_PROPS.SHARE_SOCIAL_BTN_CLASS).on('click', (e) => {\r\n        // Carousel Publications - Prevent share click when card is not centered/active\r\n        if ($(e.currentTarget).parents('.card-editorial') &&\r\n          $(e.currentTarget).parents('.carousel-publications-container')) {\r\n          let carouselPublicationsCard = $(e).parents('.card-editorial');\r\n          if ((carouselPublicationsCard.hasClass('publication-type') ||\r\n              carouselPublicationsCard.hasClass('press-release-type')) &&\r\n            !carouselPublicationsCard.hasClass(\r\n              'carousel-center')) {\r\n            e.preventDefault();\r\n            return;\r\n          }\r\n        }\r\n        this.share(e.target);\r\n      });\r\n    }\r\n    \r\n    if($(SHARE_PROPS.MODAL_SEARCH).length<1){\r\n      var clipboard = new clipboard__WEBPACK_IMPORTED_MODULE_0___default.a(SHARE_PROPS.BTN_COPY_CLASS);\r\n    \r\n      clipboard.on('success', (e) => {\r\n        console.log('text copied', e.text);\r\n        console.log('action', e.action);\r\n        console.log('trigger', e.trigger);\r\n\r\n        let jsnid_copy = $( e.trigger ).attr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID);\r\n\r\n        if(jsnid_copy && jsnid_copy.length > 0) {\r\n          console.log(jsnid_copy);\r\n          let digitalDataJson = \"\";\r\n\r\n          try{\r\n            digitalDataJson = eval(jsnid_copy);\r\n          }\r\n          catch(ex){}\r\n          if(digitalDataJson) {\r\n            digitalDataJson.event = \"click-share\";\r\n            digitalDataJson.pageEvent.eventInfo.eventDetail = \"CopyLink\";\r\n            digitalDataJson.pageEvent.eventInfo.contentURL = e.text;\r\n            digitalDataJson.pageEvent.eventInfo.ctaLabel = \"\";\r\n            if(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"isSearch\"])\r\n              digitalDataJson.pageEvent.eventInfo.contentPageNumber = _common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"pageNumber\"];\r\n            console.log(digitalDataJson);\r\n            try{\r\n              window.digitalData.push(digitalDataJson);\r\n            }\r\n            catch(ex){}\r\n            finally{\r\n              $( e.trigger ).removeAttr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID);\r\n            }\r\n          }\r\n        }\r\n        \r\n        $('.toast').toast('show');\r\n        // setTimeout(() => {\r\n        //   $(SHARE_PROPS.DROPDOWN_ID).fadeOut(400)\r\n        // }, 700);\r\n      });\r\n      clipboard.on('error', (e) => {\r\n        console.log('clipboard error');\r\n      });\r\n    }\r\n    this.handleScrollAndResize(initializeForDynamicContent);\r\n  }\r\n\r\n\r\n  showModal(event) {\r\n    const el = event.currentTarget;\r\n    if(!$(el).hasClass('btn-social')){\r\n      console.log('showModal');\r\n      \r\n      // Carousel Publications - Prevent share click when card is not centered/active\r\n      if ($(el).parents('.card-editorial').length > 0 && $(el).parents('.carousel-publications-container').length > 0) {\r\n        let carouselPublicationsCard = $(el).parents('.card-editorial');\r\n        if ((carouselPublicationsCard.hasClass('publication-type') ||\r\n            carouselPublicationsCard.hasClass('press-release-type')) &&\r\n          !carouselPublicationsCard.hasClass(\r\n            'carousel-center')) {\r\n          event.preventDefault();\r\n          return;\r\n        }\r\n      }\r\n\r\n      // Close share modal if there is one already opened\r\n      if (_common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].closeShareModal()) {\r\n        return;\r\n      };\r\n\r\n      var dataUrl = $(el).attr(SHARE_PROPS.DATA_URL);\r\n      \r\n\r\n      if (dataUrl != undefined) {\r\n        // Check if dataUrl is a relative path beginning with \"/\", if so add current domain, otherwise leave it as is\r\n        if (dataUrl.charAt(0) === \"/\") {\r\n          dataUrl = window.location.origin + dataUrl;\r\n        }\r\n      }\r\n\r\n      var data_jsnid =  $(el).attr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID);\r\n\r\n      const isModal = $(el).attr(SHARE_PROPS.DATA_TOGGLE) === 'modal';\r\n      if (dataUrl) {\r\n        if (isModal) {\r\n          $(SHARE_PROPS.MODAL_ID).attr(SHARE_PROPS.DATA_SHARE_URL, dataUrl);\r\n          $(SHARE_PROPS.MODAL_ID).attr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID, data_jsnid);\r\n          const btnCopy = $(SHARE_PROPS.BTN_MODAL_COPY_ID);\r\n          if (btnCopy) {\r\n            btnCopy.attr(SHARE_PROPS.DATA_CLIPBOARD_TEXT, dataUrl);\r\n            btnCopy.attr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID, data_jsnid);\r\n          }\r\n        } else {\r\n          $(SHARE_PROPS.DROPDOWN_ID).attr(SHARE_PROPS.DATA_SHARE_URL, dataUrl);\r\n          $(SHARE_PROPS.DROPDOWN_ID).attr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID, data_jsnid);\r\n          const btnCopy = $(SHARE_PROPS.BTN_DROPDOWN_COPY_ID);\r\n          if (btnCopy) {\r\n            btnCopy.attr(SHARE_PROPS.DATA_CLIPBOARD_TEXT, dataUrl);\r\n            btnCopy.attr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID, data_jsnid);\r\n          }\r\n          const position = $(el).offset(); //$(el).position();\r\n          const height = $(el).height();\r\n\r\n          const innerHeight = window.innerHeight;\r\n          const rect = el.getBoundingClientRect();\r\n          let space = innerHeight - rect.top - 330;\r\n\r\n          // editorial-collection-highlight exception\r\n          if ($(el).parents('.editorial-collection-highlight') && $(el).parents('.editorial-collection-highlight')\r\n            .length > 0) {\r\n            space = space - 30;\r\n          }\r\n\r\n          $(SHARE_PROPS.DROPDOWN_ID).css({\r\n            'position': 'absolute',\r\n            'top': space >= 0 ? `${position.top + height}px` : `${position.top - (space * -1) + height}px`,\r\n            'left': $(el).parents('.carousel-event').length > 0 ? `${position.left - 50}px` :\r\n              `${position.left - 252}px`\r\n          });\r\n          if($(SHARE_PROPS.MODAL_SEARCH).length>0){\r\n            $(SHARE_PROPS.DROPDOWN_ID).css({\r\n              'z-index': '1044'\r\n            });\r\n          }\r\n          $(SHARE_PROPS.DROPDOWN_ID).show();\r\n        }\r\n\r\n      }\r\n    }\r\n  }\r\n\r\n  share(el) {\r\n    //fix copy link search image\r\n    if($(SHARE_PROPS.MODAL_SEARCH).length>0 && $(el).hasClass('btn-copy-url')){\r\n      let copyLinkValue = $(SHARE_PROPS.BTN_COPY_CLASS).attr('data-clipboard-text');\r\n      console.log('copyLinkValue'+copyLinkValue);\r\n      navigator.clipboard.writeText(copyLinkValue);\r\n    } \r\n\r\n    const shareDesktop = $(SHARE_PROPS.DROPDOWN_ID);\r\n    const shareMobile = $(SHARE_PROPS.MODAL_ID);\r\n\r\n    let shareUrl = '';\r\n    let jsnid = '';\r\n\r\n    if (shareDesktop && shareDesktop.length > 0 && !shareMobile.is(\":visible\")) {\r\n      shareUrl = $(shareDesktop).attr(SHARE_PROPS.DATA_SHARE_URL);\r\n      jsnid = $(shareDesktop).attr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID);\r\n    } else if (shareMobile && shareMobile.length > 0 && shareMobile.is(\":visible\")) {\r\n      shareUrl = $(shareMobile).attr(SHARE_PROPS.DATA_SHARE_URL);\r\n      jsnid = $(shareMobile).attr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID);\r\n    }\r\n    console.log(jsnid);\r\n\r\n    const social = $(el).attr(SHARE_PROPS.DATA_SHARE_SOCIAL);\r\n\r\n    if(social && jsnid && jsnid.length > 0 ){\r\n      let digitalData = \"\";\r\n      try{\r\n        digitalData = eval(jsnid);\r\n      }\r\n      catch(ex){}\r\n      if(digitalData) {\r\n        digitalData.event = \"click-share\";\r\n        if(social == 'facebook') digitalData.pageEvent.eventInfo.eventDetail = \"Facebook\";\r\n        else if(social == 'twitter') digitalData.pageEvent.eventInfo.eventDetail = \"Twitter\";\r\n        else if(social == 'linkedin') digitalData.pageEvent.eventInfo.eventDetail = \"Linkedin\";\r\n        else if(social == 'mail') digitalData.pageEvent.eventInfo.eventDetail = \"Email\";\r\n        digitalData.pageEvent.eventInfo.contentURL = shareUrl;\r\n        digitalData.pageEvent.eventInfo.ctaLabel = \"\";\r\n        if(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"isSearch\"])\r\n          digitalDataJson.pageEvent.eventInfo.contentPageNumber = _common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"pageNumber\"];\r\n        console.log(digitalData);\r\n        try{\r\n          window.digitalData.push(digitalData);\r\n        }\r\n        catch(ex){}\r\n        finally{\r\n          $(shareDesktop).removeAttr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID);\r\n          $(shareMobile).removeAttr(_common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DIGITAL\"].DATA_JSON_ID);\r\n        }\r\n      }\r\n    }\r\n\r\n    if (shareUrl && shareUrl.length > 0) {\r\n      switch (social) {\r\n        case 'facebook':\r\n          this.shareFacebook(shareUrl);\r\n          break;\r\n        case 'twitter':\r\n          this.shareTwitter(shareUrl);\r\n          break;\r\n        case 'linkedin':\r\n          this.shareLinkedIn(shareUrl);\r\n          break;\r\n        case 'mail':\r\n          this.shareMail(shareUrl);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  shareFacebook(url) {\r\n    console.log('shareFacebook', url);\r\n    return this.openPopupWindow(`https://www.facebook.com/sharer/sharer.php?u=${url}`, 'Facebook');\r\n  }\r\n\r\n  shareTwitter(url) {\r\n    console.log('shareTwitter', url);\r\n    return this.openPopupWindow(`https://twitter.com/share?url=${url}`, 'Twitter');\r\n  }\r\n\r\n  shareLinkedIn(url) {\r\n    console.log('shareLinkedIn', url);\r\n    return this.openPopupWindow(`https://www.linkedin.com/shareArticle?mini=true&url=${url}`, 'LinkedIn');\r\n  }\r\n\r\n  shareMail(url) {\r\n    window.location.href = `mailto:?body=${url}`;\r\n  }\r\n\r\n  openPopupWindow(url, title) {\r\n    var popupWindow = window.open(url, title, 'height=350,width=600');\r\n    if (popupWindow.focus) {\r\n      popupWindow.focus();\r\n    }\r\n    $(SHARE_PROPS.DROPDOWN_ID).fadeOut();\r\n    return false;\r\n  }\r\n\r\n  closeModal() {\r\n    const container = $(SHARE_PROPS.DROPDOWN_ID);\r\n    if (container && container.length > 0) {\r\n      for (let i = 0; i < container.length; i++) {\r\n        if ($(container[i]).is(':visible')) {\r\n          $(container[i]).hide();\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  handleScrollAndResize(initializeForDynamicContent) {\r\n    $(SHARE_PROPS.SHARE_SMALL_ICON_CLASS).click(() => {\r\n      var lastPosition = window.pageYOffset;\r\n      document.onscroll = function () {\r\n        var scroll = window.pageYOffset;\r\n        var absDiff = lastPosition - scroll;\r\n        if (absDiff < 0) {\r\n          absDiff = absDiff * -1;\r\n        }\r\n        if (absDiff > 300) {\r\n          _common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].closeShareModal();\r\n        }\r\n      };\r\n    });\r\n\r\n    if (!initializeForDynamicContent) {\r\n      $(window).on('resize', function () {\r\n        // Close card share modal at resize action\r\n        _common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].closeShareModal();\r\n      });\r\n    }\r\n  }\r\n\r\n  static createInstance(initDynamicContent) {\r\n    const shareUtils = new Share(initDynamicContent);\r\n    return shareUtils;\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const share = new Share(false);\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/common/tab-utils.js\":\n/*!*****************************************!*\\\n  !*** ./src/scripts/common/tab-utils.js ***!\n  \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n$(document).ready(() => {\r\n  setTimeout(() => {\r\n    $(\".tab-content-container\").find(\".carousel-container\").addClass(\"visible\");\r\n  }, 500);\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/tooltip.js\":\n/*!***************************************!*\\\n  !*** ./src/scripts/common/tooltip.js ***!\n  \\***************************************/\n/*! exports provided: Tooltip */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Tooltip\", function() { return Tooltip; });\nclass Tooltip {\r\n\r\n  constructor() {\r\n\r\n  }\r\n\r\n  show(x, y, text) {\r\n    // creating element if not exists\r\n    if (this.element === undefined) {\r\n      console.log('element');\r\n      this.element = document.createElement('div');\r\n      this.element.id = 'map-tooltip';\r\n      this.element.className = 'mapTooltip';\r\n      document.body.insertBefore(this.element, document.body.firstChild);\r\n      this.body = document.createElement('div');\r\n      this.body.id = 'tooltip-body';\r\n      this.body.className = 'body';\r\n      this.element.appendChild(this.body);\r\n    }\r\n    this.body.innerHTML = text;\r\n    // filling and giving position\r\n    this.element.style.display = 'block';\r\n    var left = x - (this.body.offsetWidth / 2);\r\n    var top = y - 50;\r\n    this.element.style.top = top + 'px';\r\n    this.element.style.left = left + 'px';\r\n  }\r\n\r\n  hide() {\r\n    this.element.style.display = 'none';\r\n  }\r\n}\r\n\r\n//Glossary Rewind - Ravenna CCS\r\n$(function() {\r\n  let gloss = $(\".glossary\");\r\n\r\n  if(gloss.length > 0 && gloss.is(\"span\")){\r\n    var localUrl = window.location.href;\r\n    var site = \"enicom\";\r\n    var lang = \"en\";\r\n\r\n    if(localUrl.indexOf(\"/enirewind/\")>-1){\r\n      site = \"enirewind\";\r\n      if(localUrl.indexOf(\"/it-IT/\")>-1){\r\n        lang = \"it\";\r\n      }\r\n    }\r\n\r\n    if(localUrl.indexOf(\"/ravenna-ccs-hub/\")>-1){\r\n      site = \"ravenna-ccs-hub\";\r\n      if(localUrl.indexOf(\"/it/it\")>-1 || localUrl.indexOf(\"it-IT\")>-1){\r\n        lang = \"it\";\r\n      }\r\n    }\r\n\r\n    var baseUrl = window.location.origin;\r\n    var servletURL = \"/services/data/glossary.json?site=\";\r\n\r\n    var result = $.ajax({\r\n      type: \"GET\",\r\n      async: false,\r\n      url: baseUrl + servletURL + site + \"&lang=\" + lang\r\n    });\r\n\r\n    var jsonResult = JSON.parse(result.responseText);\r\n\r\n    for (var i = 0; i < gloss.length; i++) {\r\n      for (var j = 0; j < jsonResult.content.length; j++) {\r\n        let key = $(gloss[i]).attr(\"dataKey\");\r\n\r\n        if (key === jsonResult.content[j].properties.dataKey) {\r\n          let title = jsonResult.content[j].properties.title;\r\n          let desc  = jsonResult.content[j].properties.description;\r\n\r\n          let content = \"<em>\" + title + \"</em> <br></br> <span>\" + desc + \"</span>\";\r\n\r\n          $(gloss[i]).attr(\"data-toggle\", \"tooltip\");\r\n          $(gloss[i]).attr(\"data-original-title\", content);\r\n        }\r\n      }\r\n    }\r\n\r\n    $(\".glossary\").tooltip({\r\n      placement: \"auto\",\r\n      html: true,\r\n    });\r\n  }\r\n});\r\n\r\n// Glossary-enicom\r\n$(document).ready(function(){\r\n  let gloss = $(\".glossary-centralized\");\r\n  \r\n    for (var i = 0; i < gloss.length; i++){\r\n      \r\n      gloss[i].addEventListener(\"mouseover\", function(e){\r\n        e.preventDefault();\r\n        \r\n        var localUrl = window.location.href;\r\n        var site=\"enicom\";\r\n        var lang=\"en\";\r\n        \r\n        if(site.indexOf(\"enicom\")>-1){\r\n          if(localUrl.indexOf(\"it-IT\")>-1 || localUrl.indexOf(\"/it/it/\")>-1){\r\n            lang='it';\r\n          }\r\n        }\r\n\r\n        var dataType=this.getAttribute('dataType');\r\n        var dataKey=this.getAttribute('dataKey');\r\n\r\n        var baseUrl = window.location.origin;\r\n        var servletURL = \"/bin/enicom/data/glossary/centralized.json?dataType=\"+dataType+\"&site=\"+site+\"&lang=\"+lang;\r\n\r\n        var result = $.ajax({\r\n          type: \"GET\",\r\n          async: false,\r\n          url: baseUrl + servletURL\r\n        });\r\n\r\n        var jsonResult = JSON.parse(result.responseText);\r\n\r\n        for(var i=0; i<jsonResult.length; i++){\r\n          for(var k=0; k<jsonResult[i].properties.glossary.length; k++){\r\n            if (dataKey === jsonResult[i].properties.glossary[k].key) {\r\n              let title = jsonResult[i].properties.glossary[k].title;\r\n              let desc  = jsonResult[i].properties.glossary[k].description;\r\n\r\n              if( title.length > 60){\r\n                title = title.substring(0,57)+\"...\";\r\n              }\r\n              if( desc.length > 650){\r\n                desc = desc.substring(0,647)+\"...\";\r\n              }\r\n              \r\n              \r\n              let content = \"<em>\" + title + \"</em> <br></br> <span>\" + desc + \"</span>\";\r\n              \r\n              this.setAttribute(\"data-toggle\", \"tooltip\");\r\n              this.setAttribute(\"data-original-title\", content);\r\n            }  \r\n          }\r\n        }\r\n\r\n        $(this).tooltip({\r\n          placement: \"auto\",\r\n          html: true,\r\n        });\r\n       \r\n        \r\n      });\r\n    }\r\n    $(\".glossary-centralized\").tooltip({\r\n      placement: \"auto\",\r\n      html: true,\r\n    });\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/common/tt-paginator.plugin.js\":\n/*!***************************************************!*\\\n  !*** ./src/scripts/common/tt-paginator.plugin.js ***!\n  \\***************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\n(function ($) {\r\n  var currentPage = 1;\r\n\r\n  $.fn.ttPaginator = function (options, action) {\r\n    var settings = $.extend({\r\n      // Default Settings here\r\n      perPage: 2, // Number of items per page\r\n      paginatorIndicatorsContainer: 'tt-paginator-container',\r\n      targetElementsClass: '',\r\n      ajax: false,\r\n      filters: null,\r\n      minElements: 1\r\n    }, options);\r\n\r\n    if (settings.ajax && settings.ajax === true) {\r\n\r\n      if (action === 'setFilters') {\r\n        const paginatorId = $(this).attr(\"id\");\r\n        const perPage = $(this).data(\"per-page\");\r\n        const apiUrl = $(this).data(\"api-url\");\r\n        settings.perPage = perPage;\r\n        settings.apiUrl = apiUrl;\r\n        const indicatorsContainerSelector = '#' + paginatorId + ' .' + settings.paginatorIndicatorsContainer;\r\n        $(indicatorsContainerSelector).remove();\r\n        console.log(\"Paginator Set Filters!\", settings);\r\n        initAjaxPaginator(settings, $(this));\r\n      } else {\r\n        initAjaxPaginator(settings, $(this));\r\n      }\r\n    } else {\r\n      if (action && action === 'reinit') {\r\n        const paginatorId = $(this).attr('id');\r\n        if (!paginatorId || paginatorId.length === 0) {\r\n          console.error(\r\n            \"Please always set an ID when using the ttPaginator jQuery plugin! If an ID is set, please check if you are applying the reinit function to the right DOM element (the one which contains data-pagination='true')\"\r\n          );\r\n        };\r\n\r\n        settings.perPage = $(this).data('per-page');\r\n        settings.targetElementsClass = $(this).data('target');\r\n\r\n        const paginatorIndicatorsContainerSelector = '#' + paginatorId + ' .' + settings\r\n          .paginatorIndicatorsContainer +\r\n          ' .pages';\r\n        const paginatorPrevContainerSelector = '#' + paginatorId + ' .' + settings\r\n          .paginatorIndicatorsContainer +\r\n          ' .ttpaginator-prev';\r\n        const paginatorNextContainerSelector = '#' + paginatorId + ' .' + settings\r\n          .paginatorIndicatorsContainer +\r\n          ' .ttpaginator-next';\r\n        const elements = $(this).children('.' + settings.targetElementsClass + ':visible');\r\n        const elementsCount = elements.length;\r\n        const pagesCount = Math.ceil(elementsCount / settings.perPage);\r\n        removeIndicators('#' + paginatorId + ' .' + settings\r\n          .paginatorIndicatorsContainer);\r\n        injectPaginatorHtml(paginatorId, settings.paginatorIndicatorsContainer);\r\n\r\n        drawIndicators(1, pagesCount, paginatorIndicatorsContainerSelector, elements, settings\r\n          .perPage, paginatorPrevContainerSelector, paginatorNextContainerSelector, paginatorId, settings);\r\n        showElements(elements, 0, settings.perPage - 1);\r\n      } else {\r\n        console.log('PAGINATOR ACTION');\r\n        return this.each(function () {\r\n          const paginatorId = $(this).attr('id');\r\n          console.log(\"Settato il paginator ID\", paginatorId);\r\n          if (!paginatorId || paginatorId.length === 0) {\r\n            console.error(\"Please always set an ID when using the ttPaginator jQuery plugin!\");\r\n          }\r\n          console.log(\"Paginator Initialized with id \" + paginatorId);\r\n          const paginatorIndicatorsContainerSelector = '#' + paginatorId + ' .' + settings\r\n            .paginatorIndicatorsContainer +\r\n            ' .pages';\r\n          const paginatorPrevContainerSelector = '#' + paginatorId + ' .' + settings\r\n            .paginatorIndicatorsContainer +\r\n            ' .ttpaginator-prev';\r\n          const paginatorNextContainerSelector = '#' + paginatorId + ' .' + settings\r\n            .paginatorIndicatorsContainer +\r\n            ' .ttpaginator-next';\r\n          const elements = $(this).children('.' + settings.targetElementsClass);\r\n          const elementsCount = elements.length;\r\n          const pagesCount = Math.ceil(elementsCount / settings.perPage);\r\n          console.log(\"Number of Pages: \", pagesCount);\r\n\r\n          if (elementsCount >= settings.minElements) {\r\n            injectPaginatorHtml(paginatorId, settings.paginatorIndicatorsContainer);\r\n            drawIndicators(currentPage, pagesCount, paginatorIndicatorsContainerSelector, elements, settings\r\n              .perPage, paginatorPrevContainerSelector, paginatorNextContainerSelector, paginatorId, settings);\r\n            showElements(elements, 0, settings.perPage - 1);\r\n          }\r\n        });\r\n      }\r\n    }\r\n\r\n  };\r\n\r\n}(jQuery));\r\n\r\nfunction initAjaxPaginator(settings, paginator) {\r\n  console.log(\"Ajax Paginator Initialized\");\r\n  const paginatorId = $(paginator).attr(\"id\");\r\n  const perPage = $(paginator).data(\"per-page\");\r\n  const apiUrl = $(paginator).data(\"api-url\");\r\n  const contentBox = $(paginator).data(\"content-box\"); // class of the div where content from the api will be placed\r\n  const contentSelector = '#' + paginatorId + ' .' + contentBox;\r\n  const indicatorsContainerSelector = '#' + paginatorId + ' .' + settings.paginatorIndicatorsContainer;\r\n  const indicatorsContainerSelectorPages = '#' + paginatorId + ' .' + settings.paginatorIndicatorsContainer + ' .pages';\r\n  // First call to load basic data\r\n  showLoader(contentSelector);\r\n  $.ajax({\r\n    url: apiUrl,\r\n    data: {\r\n      page: 1,\r\n      perPage: perPage,\r\n      filters: settings.filters\r\n    },\r\n    success: function (data, status, xhr) {\r\n      console.log(\"First Ajax call done!\");\r\n      const htmlContent = data.content;\r\n      const currentPage = data.page;\r\n      const elementCount = data.count;\r\n\r\n      $(contentSelector).html(htmlContent);\r\n      console.log(\"Content selector\", contentSelector);\r\n      injectPaginatorHtml(paginatorId, settings.paginatorIndicatorsContainer); //TODO: Inject div.ajax-data\r\n      drawAjaxIndicators(indicatorsContainerSelector, indicatorsContainerSelectorPages, settings, elementCount,\r\n        currentPage);\r\n      bindToIndicatorArrowClick(indicatorsContainerSelector, indicatorsContainerSelectorPages, settings,\r\n        currentPage, perPage, apiUrl, contentSelector, paginatorId);\r\n      setTimeout(function () {\r\n        hideLoader(contentSelector);\r\n      }, 2000);\r\n    },\r\n    error: function (data) {\r\n      handleError(data);\r\n    }\r\n  });\r\n}\r\n\r\n// Handle Indicators Click (AJAX PAGINATOR)\r\nfunction bindToIndicatorArrowClick(indicatorsContainerSelector, indicatorsContainerSelectorPages, settings, currentPage,\r\n  perPage, apiUrl, contentSelector, paginatorId) {\r\n  const selector = indicatorsContainerSelectorPages + ' button';\r\n  const pagPrevArrow = indicatorsContainerSelector + ' .ttpaginator-prev';\r\n  const pagNextArrow = indicatorsContainerSelector + ' .ttpaginator-next';\r\n  $(selector).click(function () {\r\n    console.log(\"Current Page: \", currentPage);\r\n    const clickedPage = $(this).data('value');\r\n    console.log(\"Indicator clicked! Page: \", clickedPage);\r\n\r\n    // Every call after the first one happens here\r\n    showLoader(contentSelector);\r\n    $.ajax({\r\n      url: apiUrl,\r\n      data: {\r\n        page: clickedPage,\r\n        perPage: perPage,\r\n        filters: settings.filters\r\n      },\r\n      success: function (data, status, xhr) {\r\n        console.log(\"Ajax call done!\");\r\n        const htmlContent = data.content;\r\n        const currentPage = data.page;\r\n        const elementCount = data.count;\r\n\r\n        $(contentSelector).html(htmlContent);\r\n        console.log(\"Content selector\", contentSelector);\r\n        removeIndicators(selector);\r\n        drawAjaxIndicators(indicatorsContainerSelector, indicatorsContainerSelectorPages, settings,\r\n          elementCount,\r\n          currentPage);\r\n        clearIndicatorClickHandler(selector, pagPrevArrow, pagNextArrow);\r\n        bindToIndicatorArrowClick(indicatorsContainerSelector, indicatorsContainerSelectorPages, settings,\r\n          currentPage, perPage, apiUrl, contentSelector, paginatorId);\r\n        setTimeout(function () {\r\n          hideLoader(contentSelector);\r\n        }, 2000);\r\n        if ($('#' + paginatorId).closest(\"section\").length > 0)\r\n          $('#' + paginatorId).closest(\"section\").scrollintoview({\r\n            duration: 300\r\n          });\r\n        else\r\n          $('#' + paginatorId).closest(\".main-container\").scrollintoview({\r\n            duration: 300\r\n          });\r\n      }\r\n    });\r\n  });\r\n\r\n  $(pagPrevArrow).click(function () {\r\n    console.log(\"Current Page: \", currentPage);\r\n    const clickedPage = currentPage - 1;\r\n    console.log(\"Prev arrow clicked! Page: \", clickedPage);\r\n\r\n    // Every call after the first one happens here\r\n    showLoader(contentSelector);\r\n    $.ajax({\r\n      url: apiUrl,\r\n      data: {\r\n        page: clickedPage,\r\n        perPage: perPage,\r\n        filters: settings.filters\r\n      },\r\n      success: function (data, status, xhr) {\r\n        console.log(\"Ajax call done!\");\r\n        const htmlContent = data.content;\r\n        const currentPage = data.page;\r\n        const elementCount = data.count;\r\n\r\n        $(contentSelector).html(htmlContent);\r\n        console.log(\"Content selector\", contentSelector);\r\n        removeIndicators(selector);\r\n        drawAjaxIndicators(indicatorsContainerSelector, indicatorsContainerSelectorPages, settings,\r\n          elementCount,\r\n          currentPage);\r\n        clearIndicatorClickHandler(selector, pagPrevArrow, pagNextArrow);\r\n        bindToIndicatorArrowClick(indicatorsContainerSelector, indicatorsContainerSelectorPages,\r\n          settings,\r\n          currentPage, perPage, apiUrl, contentSelector, paginatorId);\r\n        setTimeout(function () {\r\n          hideLoader(contentSelector);\r\n        }, 2000);\r\n        if ($('#' + paginatorId).closest(\"section\").length > 0)\r\n          $('#' + paginatorId).closest(\"section\").scrollintoview({\r\n            duration: 300\r\n          });\r\n        else\r\n          $('#' + paginatorId).closest(\".main-container\").scrollintoview({\r\n            duration: 300\r\n          });\r\n      }\r\n    });\r\n  });\r\n\r\n  $(pagNextArrow).click(function () {\r\n    console.log(\"Current Page: \", currentPage);\r\n    const clickedPage = currentPage + 1;\r\n    console.log(\"Next arrow clicked! Page: \", clickedPage);\r\n\r\n    // Every call after the first one happens here\r\n    showLoader(contentSelector);\r\n    $.ajax({\r\n      url: apiUrl,\r\n      data: {\r\n        page: clickedPage,\r\n        perPage: perPage,\r\n        filters: settings.filters\r\n      },\r\n      success: function (data, status, xhr) {\r\n        console.log(\"Ajax call done!\");\r\n        const htmlContent = data.content;\r\n        const currentPage = data.page;\r\n        const elementCount = data.count;\r\n\r\n        $(contentSelector).html(htmlContent);\r\n        console.log(\"Content selector\", contentSelector);\r\n        removeIndicators(selector);\r\n        drawAjaxIndicators(indicatorsContainerSelector, indicatorsContainerSelectorPages, settings,\r\n          elementCount,\r\n          currentPage);\r\n        clearIndicatorClickHandler(selector, pagPrevArrow, pagNextArrow);\r\n        bindToIndicatorArrowClick(indicatorsContainerSelector, indicatorsContainerSelectorPages,\r\n          settings,\r\n          currentPage, perPage, apiUrl, contentSelector, paginatorId);\r\n        setTimeout(function () {\r\n          hideLoader(contentSelector);\r\n        }, 2000);\r\n        if ($('#' + paginatorId).closest(\"section\").length > 0)\r\n          $('#' + paginatorId).closest(\"section\").scrollintoview({\r\n            duration: 300\r\n          });\r\n        else\r\n          $('#' + paginatorId).closest(\".main-container\").scrollintoview({\r\n            duration: 300\r\n          });\r\n      }\r\n    });\r\n  });\r\n}\r\n\r\nfunction drawAjaxIndicators(indicatorsContainerSelector, indicatorsContainerSelectorPages, settings, elementCount,\r\n  currentPage) {\r\n  const pageCount = Math.ceil(elementCount / settings.perPage);\r\n  const pagPrevArrow = indicatorsContainerSelector + ' .ttpaginator-prev';\r\n  const pagNextArrow = indicatorsContainerSelector + ' .ttpaginator-next';\r\n\r\n  // Disable Next and Prev arrows when needed\r\n  $(pagPrevArrow).removeClass(\"disabled\");\r\n  $(pagPrevArrow).attr(\"disabled\", false);\r\n  $(pagNextArrow).removeClass(\"disabled\");\r\n  $(pagNextArrow).attr(\"disabled\", false);\r\n  if (currentPage === 1) {\r\n    $(pagPrevArrow).addClass(\"disabled\");\r\n    $(pagPrevArrow).attr(\"disabled\", true);\r\n  }\r\n  if (currentPage === pageCount) {\r\n    $(pagNextArrow).addClass(\"disabled\");\r\n    $(pagNextArrow).attr(\"disabled\", true);\r\n  }\r\n\r\n  if (pageCount === 0 || pageCount === 1) {\r\n    $(indicatorsContainerSelector).attr(\"style\", \"display: none !important;\");\r\n  } else if (pageCount <= 7) {\r\n    for (let i = 1; i < pageCount + 1; i++) {\r\n      createIndicator(indicatorsContainerSelectorPages, i, i === currentPage);\r\n    }\r\n  } else {\r\n    if (currentPage < 5) {\r\n      for (let i = 1; i <= 5; i++) {\r\n        createIndicator(indicatorsContainerSelectorPages, i, i === currentPage);\r\n      }\r\n      createIndicator(indicatorsContainerSelectorPages, -1, false); // Three-dot dummy button when pageCount is -1\r\n      createIndicator(indicatorsContainerSelectorPages, pageCount, false);\r\n    } else if (currentPage > pageCount - 5) {\r\n      for (let i = 1; i < pageCount + 1; i++) {\r\n        if (i === 1) {\r\n          createIndicator(indicatorsContainerSelectorPages, i, i === currentPage);\r\n          createIndicator(indicatorsContainerSelectorPages, -1, false);\r\n        }\r\n        if (i > pageCount - 5) {\r\n          createIndicator(indicatorsContainerSelectorPages, i, i === currentPage);\r\n        }\r\n      }\r\n    } else {\r\n      for (let i = 1; i < pageCount + 1; i++) {\r\n        if (i === 1) {\r\n          createIndicator(indicatorsContainerSelectorPages, i, i === currentPage);\r\n          createIndicator(indicatorsContainerSelectorPages, -1, false);\r\n        }\r\n        if (i === currentPage - 1 | i === currentPage | i === currentPage + 1) {\r\n          createIndicator(indicatorsContainerSelectorPages, i, i === currentPage);\r\n        }\r\n        if (i === pageCount) {\r\n          createIndicator(indicatorsContainerSelectorPages, -1, false);\r\n          createIndicator(indicatorsContainerSelectorPages, i, i === currentPage);\r\n        }\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\nfunction injectPaginatorHtml(paginatorId, elementClass) {\r\n  $('#' + paginatorId).append('<div class=\"' + elementClass +\r\n    '\"><button class=\"ttpaginator-prev icon-arrow-left\"></button><div class=\"pages\"></div><button class=\"ttpaginator-next icon-arrow-right\"></button></div>'\r\n  );\r\n}\r\n\r\nfunction removeIndicators(selector) {\r\n  $(selector).remove();\r\n}\r\n\r\nfunction drawIndicators(currentPage, pagesCount, paginatorContainerSelector, elements, perPage,\r\n  paginatorPrevContainerSelector, paginatorNextContainerSelector, paginatorId, settings) {\r\n  const elementsCount = elements.length;\r\n  pagesCount = Math.ceil(elementsCount / settings.perPage);\r\n  paginatorContainerSelector = $('#' + paginatorId)\r\n    .children('.' + settings.paginatorIndicatorsContainer)\r\n    .children('.pages');\r\n  console.log(\"paginatorId drawIndicators\", paginatorContainerSelector);\r\n\r\n  // Disable Next and Prev arrows when needed\r\n  $(paginatorPrevContainerSelector).removeClass(\"disabled\");\r\n  $(paginatorPrevContainerSelector).attr(\"disabled\", false);\r\n  $(paginatorNextContainerSelector).removeClass(\"disabled\");\r\n  $(paginatorNextContainerSelector).attr(\"disabled\", false);\r\n\r\n  if (currentPage === 1) {\r\n    $(paginatorPrevContainerSelector).addClass(\"disabled\");\r\n    $(paginatorPrevContainerSelector).attr(\"disabled\", true);\r\n  }\r\n  if (currentPage === pagesCount) {\r\n    $(paginatorNextContainerSelector).addClass(\"disabled\");\r\n    $(paginatorNextContainerSelector).attr(\"disabled\", true);\r\n  }\r\n\r\n  if (pagesCount === 0 || pagesCount === 1) {\r\n    $('#' + paginatorId + ' .' + settings.paginatorIndicatorsContainer).attr(\"style\", \"display: none !important;\");\r\n  } else if (pagesCount <= 7) {\r\n    for (let i = 1; i < pagesCount + 1; i++) {\r\n      createIndicator(paginatorContainerSelector, i, i === currentPage);\r\n    }\r\n  } else if (pagesCount > 7) {\r\n    if (currentPage < 5) {\r\n      for (let i = 1; i < pagesCount + 1; i++) {\r\n        if (i < 6) {\r\n          createIndicator(paginatorContainerSelector, i, i === currentPage);\r\n        }\r\n      }\r\n      $(paginatorContainerSelector).append('<button disabled=\"true\">...</button>');\r\n\r\n    } else if (currentPage > pagesCount - 4) {\r\n      createIndicator(paginatorContainerSelector, 1, 1 === currentPage);\r\n      $(paginatorContainerSelector).append('<button disabled=\"true\">...</button>');\r\n      for (let i = pagesCount - 4; i < pagesCount; i++) {\r\n        createIndicator(paginatorContainerSelector, i, i === currentPage);\r\n      }\r\n    } else {\r\n      createIndicator(paginatorContainerSelector, 1, 1 === currentPage);\r\n      $(paginatorContainerSelector).append('<button disabled=\"true\">...</button>');\r\n      if (currentPage + 1 < pagesCount) {\r\n        createIndicator(paginatorContainerSelector, currentPage - 1, (currentPage - 1) === currentPage);\r\n        createIndicator(paginatorContainerSelector, currentPage, currentPage === currentPage);\r\n        createIndicator(paginatorContainerSelector, currentPage + 1, (currentPage + 1) === currentPage);\r\n        $(paginatorContainerSelector).append('<button disabled=\"true\">...</button>');\r\n      }\r\n\r\n    }\r\n    createIndicator(paginatorContainerSelector, pagesCount, pagesCount === currentPage);\r\n  }\r\n\r\n  if (pagesCount > 1) {\r\n    $('#' + paginatorId + ' .' + settings.paginatorIndicatorsContainer).show();\r\n  }\r\n\r\n  clearIndicatorClickHandler(paginatorContainerSelector.children('button'), paginatorPrevContainerSelector,\r\n    paginatorNextContainerSelector);\r\n  handleIndicatorClick(paginatorContainerSelector.children('button'), currentPage, pagesCount,\r\n    paginatorContainerSelector,\r\n    elements, perPage, paginatorPrevContainerSelector, paginatorNextContainerSelector, paginatorId, settings);\r\n}\r\n\r\n// Append one page button to the container specified as selector\r\nfunction createIndicator(selector, pageNumber, isCurrent) {\r\n  if (pageNumber === -1) {\r\n    $(selector).append('<button disabled=\"true\">...</button>');\r\n  } else {\r\n    if (isCurrent) {\r\n      $(selector).append('<button class=\"current\" data-value=\"' + pageNumber + '\">' + pageNumber + '</button>');\r\n    } else {\r\n      $(selector).append('<button data-value=\"' + pageNumber + '\">' + pageNumber + '</button>');\r\n    }\r\n  }\r\n}\r\n\r\n// Unbinds from click events\r\nfunction clearIndicatorClickHandler(selector, paginatorPrevContainerSelector, paginatorNextContainerSelector) {\r\n  $(selector).off();\r\n  $(paginatorPrevContainerSelector).off();\r\n  $(paginatorNextContainerSelector).off();\r\n}\r\n\r\n// Handle Page Indicator Click (FRONTEND PAGINATOR)\r\nfunction handleIndicatorClick(selector, currentPage, pagesCount, paginatorContainerSelector, elements, perPage,\r\n  paginatorPrevContainerSelector, paginatorNextContainerSelector, paginatorId, settings) {\r\n\r\n  // Handle indicator click\r\n  $(selector).click(function (event) {\r\n    const paginatorId = $(this).parent().parent().parent().attr(\"id\");\r\n    const selector = $('#' + paginatorId).children(\".tt-paginator-container\").children(\".pages\").children(\"button\");\r\n    const paginatorContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .pages';\r\n    const paginatorPrevContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .ttpaginator-prev';\r\n    const paginatorNextContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .ttpaginator-next';\r\n    settings.perPage = $(\"#\" + paginatorId).data('per-page');\r\n    settings.targetElementsClass = $(\"#\" + paginatorId).data('target');\r\n    elements = $(\"#\" + paginatorId).children('.' + settings.targetElementsClass).not('.filtered');\r\n\r\n    const clickedPage = $(this).data('value');\r\n    const elementsCount = elements.length;\r\n    const pagesCount = Math.ceil(elementsCount / settings.perPage);\r\n    currentPage = clickedPage;\r\n    console.log(\"Elements\", elements);\r\n    console.log(\"Target Elements Class\", settings.targetElementsClass);\r\n    console.log(\"paginatorId\", paginatorId);\r\n\r\n    removeIndicators(selector);\r\n    drawIndicators(currentPage, pagesCount, paginatorContainerSelector, elements, perPage,\r\n      paginatorPrevContainerSelector, paginatorNextContainerSelector, paginatorId, settings);\r\n    showElements(elements, ((currentPage - 1) * perPage), (currentPage * perPage) - 1);\r\n    if ($('#' + paginatorId).closest(\"section\").length > 0)\r\n      $('#' + paginatorId).closest(\"section\").scrollintoview({\r\n        duration: 300\r\n      });\r\n    else\r\n      $('#' + paginatorId).closest(\".main-container\").scrollintoview({\r\n        duration: 300\r\n      });\r\n  });\r\n\r\n  // Handle Prev Click\r\n  $(paginatorPrevContainerSelector).click(function () {\r\n    const paginatorId = $(this).parent().parent().attr(\"id\");\r\n    const selector = $('#' + paginatorId).children(\".tt-paginator-container\").children(\".pages\").children(\"button\");\r\n    const paginatorContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .pages';\r\n    const paginatorPrevContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .ttpaginator-prev';\r\n    const paginatorNextContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .ttpaginator-next';\r\n    settings.perPage = $(\"#\" + paginatorId).data('per-page');\r\n    settings.targetElementsClass = $(\"#\" + paginatorId).data('target');\r\n    elements = $(\"#\" + paginatorId).children('.' + settings.targetElementsClass).not('.filtered');\r\n\r\n    const elementsCount = elements.length;\r\n    const pagesCount = Math.ceil(elementsCount / settings.perPage);\r\n    if (currentPage > 1) {\r\n      currentPage--;\r\n      console.log(\"Elements\", elements);\r\n      console.log(\"Target Elements Class\", settings.targetElementsClass);\r\n      console.log(\"paginatorId\", paginatorId);\r\n      removeIndicators(selector);\r\n      drawIndicators(currentPage, pagesCount, paginatorContainerSelector, elements, perPage,\r\n        paginatorPrevContainerSelector, paginatorNextContainerSelector, paginatorId, settings);\r\n      showElements(elements, ((currentPage - 1) * perPage), (currentPage * perPage) - 1);\r\n      if ($('#' + paginatorId).closest(\"section\").length > 0)\r\n        $('#' + paginatorId).closest(\"section\").scrollintoview({\r\n          duration: 300\r\n        });\r\n      else\r\n        $('#' + paginatorId).closest(\".main-container\").scrollintoview({\r\n          duration: 300\r\n        });\r\n    }\r\n  });\r\n\r\n  // Handle Next Click\r\n  $(paginatorNextContainerSelector).click(function () {\r\n    const paginatorId = $(this).parent().parent().attr(\"id\");\r\n    const selector = $('#' + paginatorId).children(\".tt-paginator-container\").children(\".pages\").children(\"button\");\r\n    const paginatorContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .pages';\r\n    const paginatorPrevContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .ttpaginator-prev';\r\n    const paginatorNextContainerSelector = '#' + paginatorId + ' .' + settings\r\n      .paginatorIndicatorsContainer +\r\n      ' .ttpaginator-next';\r\n    settings.perPage = $(\"#\" + paginatorId).data('per-page');\r\n    settings.targetElementsClass = $(\"#\" + paginatorId).data('target');\r\n    elements = $(\"#\" + paginatorId).children('.' + settings.targetElementsClass).not('.filtered');\r\n    const elementsCount = elements.length;\r\n    const pagesCount = Math.ceil(elementsCount / settings.perPage);\r\n    if (currentPage < pagesCount) {\r\n      currentPage++;\r\n      console.log(\"Elements\", elements);\r\n      console.log(\"Target Elements Class\", settings.targetElementsClass);\r\n      console.log(\"paginatorId\", paginatorId);\r\n      removeIndicators(selector);\r\n      drawIndicators(currentPage, pagesCount, paginatorContainerSelector, elements, perPage,\r\n        paginatorPrevContainerSelector, paginatorNextContainerSelector, paginatorId, settings);\r\n      showElements(elements, ((currentPage - 1) * perPage), (currentPage * perPage) - 1);\r\n      if ($('#' + paginatorId).closest(\"section\").length > 0)\r\n        $('#' + paginatorId).closest(\"section\").scrollintoview({\r\n          duration: 300\r\n        });\r\n      else\r\n        $('#' + paginatorId).closest(\".main-container\").scrollintoview({\r\n          duration: 300\r\n        });\r\n    }\r\n  });\r\n}\r\n\r\n// Show elements from start to end\r\nfunction showElements(elements, start, end) {\r\n  for (let i = 0; i < elements.length; i++) {\r\n    if (i >= start && i <= end) {\r\n      $(elements[i]).show();\r\n    } else {\r\n      $(elements[i]).attr(\"style\", \"display: none !important;\");\r\n    }\r\n  }\r\n\r\n  // Manage border bottom of last publication items and children accordion elements\r\n  const currentSection = $(elements).parents('section');\r\n  _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].managePublicationListsBorders(currentSection);\r\n}\r\n\r\nfunction handleError() {\r\n\r\n}\r\n\r\nfunction showLoader(selector) {\r\n  $(selector).append('<div class=\"pagination-loader\"></div>'); // il log va ma non aggiunge il div\r\n  console.log(\"Pagination Loader Visible!\", $(selector));\r\n}\r\n\r\nfunction hideLoader(selector) {\r\n  $(selector).remove(\".pagination-loader\");\r\n  console.log(\"Pagination Loader Hidden!\");\r\n}\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/tt-show-more.plugin.js\":\n/*!***************************************************!*\\\n  !*** ./src/scripts/common/tt-show-more.plugin.js ***!\n  \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n(function ($) {\r\n  $.fn.ttShowMore = function (options, action) {\r\n    var settings = $.extend({\r\n      perPage: 2, // Number of elements added when showMore is clicked\r\n      elementsContainerSelector: \"\", // Optional jQuery selector of the container where elements to be hidden and shown are placed\r\n      targetElementsSelector: \"\", // Mandatory jQuery selector of the elements to be hidden or shown\r\n      indicatorsContainerClass: \"tt-show-more-indicators\"\r\n    }, options);\r\n\r\n    return this.each(function () {\r\n      const mainContainerSelector = '#' + $(this).attr('id');\r\n      if (!mainContainerSelector || mainContainerSelector === \"#undefined\") {\r\n        console.error(\"TTShowMore: Please set an ID on the main container on which .ttShowMore is applied!\");\r\n      } else {\r\n        // Set Settings as per data attributes\r\n        settings.perPage = $(this).data(\"per-page\");\r\n        settings.elementsContainerSelector = $(this).data(\"elements-container-selector\");\r\n        settings.targetElementsSelector = $(this).data(\"target-selector\");\r\n\r\n        // Build jQuery selector for the elements to be shown or hidden\r\n        const completeTargetElementsSelector = mainContainerSelector + \" \" + settings\r\n          .elementsContainerSelector + \" \" +\r\n          settings.targetElementsSelector;\r\n        // Build jQuery selector for View More and View Less buttons\r\n        const viewMoreSelector = mainContainerSelector + \" .\" + settings.indicatorsContainerClass +\r\n          \" .view-more\";\r\n        const viewLessSelector = mainContainerSelector + \" .\" + settings.indicatorsContainerClass +\r\n          \" .view-less\";\r\n\r\n        // Inject the HTML container and buttons into the DOM\r\n        injectIndicatorsContainer(mainContainerSelector, settings.indicatorsContainerClass);\r\n\r\n        // Get an array of target elements\r\n        const allElements = $(this).children(settings.targetElementsSelector + ':visible');\r\n        console.log(\"All elements\", allElements);\r\n\r\n        // Show first n elements\r\n        showElements(allElements, 0, settings.perPage);\r\n\r\n        if (allElements.length < settings.perPage) {\r\n          toggleIndicatorsContainer(false, mainContainerSelector, settings.indicatorsContainerClass);\r\n        }\r\n\r\n        // Bind to indicator click\r\n        var showMultiplier = 1;\r\n        $(viewMoreSelector).click(function () {\r\n          showMultiplier++;\r\n          showElements(allElements, 0, settings.perPage * showMultiplier);\r\n          handleShowHideButtons(viewMoreSelector, viewLessSelector, settings.perPage, showMultiplier,\r\n            allElements);\r\n        });\r\n\r\n        $(viewLessSelector).click(function () {\r\n          showMultiplier = 1;\r\n          showElements(allElements, 0, settings.perPage);\r\n          handleShowHideButtons(viewMoreSelector, viewLessSelector, settings.perPage, showMultiplier,\r\n            allElements);\r\n        })\r\n      }\r\n    });\r\n\r\n  };\r\n\r\n}(jQuery));\r\n\r\n// Inject the HTML container and buttons into the DOM\r\nfunction injectIndicatorsContainer(mainContainerSelector, indicatorsContainerClass) {\r\n  const indicatorsHtml =\r\n    '<div class=\"view-more-box ' + indicatorsContainerClass +\r\n    '\"> <button class=\"btn view-more text-uppercase\">View more<i class=\"d-block icon-arrow-down-small\"></i></button><button class=\"btn view-less text-uppercase\" style=\"display: none;\"><i class=\"d-block icon-arrow-up\"></i>View less</button></div>';\r\n  $(mainContainerSelector).append(indicatorsHtml);\r\n}\r\n\r\nfunction toggleIndicatorsContainer(showHide, mainContainerSelector, indicatorsContainerClass) {\r\n  if (showHide === true) {\r\n    $(mainContainerSelector + ' .' + indicatorsContainerClass).show();\r\n  } else {\r\n    $(mainContainerSelector + ' .' + indicatorsContainerClass).hide();\r\n    console.log(\"TTShowMore: Indicators hidden due to perPage > elements count\")\r\n  }\r\n}\r\n\r\nfunction showButton(buttonSelector) {\r\n  $(buttonSelector).show();\r\n}\r\n\r\nfunction hideButton(buttonSelector) {\r\n  $(buttonSelector).hide();\r\n}\r\n\r\nfunction showElements(allElements, startIndex, endIndex) {\r\n  for (let i = 0; i < allElements.length; i++) {\r\n    if (i >= startIndex && i < endIndex) {\r\n      $(allElements[i]).show();\r\n    } else {\r\n      $(allElements[i]).hide();\r\n    }\r\n  }\r\n}\r\n\r\nfunction handleShowHideButtons(viewMoreSelector, viewLessSelector, perPage, showMultiplier, allElements) {\r\n  if (showMultiplier === 1) {\r\n    showButton(viewMoreSelector);\r\n    hideButton(viewLessSelector);\r\n  }\r\n\r\n  if ((showMultiplier * perPage) >= allElements.length) {\r\n    showButton(viewLessSelector);\r\n    hideButton(viewMoreSelector);\r\n  }\r\n}\r\n\r\n\r\n// TT Show More Utils\r\n$(() => {\r\n  const elements = '[data-show-more=\"true\"]';\r\n  $(elements).ttShowMore();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/utils.js\":\n/*!*************************************!*\\\n  !*** ./src/scripts/common/utils.js ***!\n  \\*************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Utils; });\n/* harmony import */ var mobile_detect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mobile-detect */ \"./node_modules/mobile-detect/mobile-detect.js\");\n/* harmony import */ var mobile_detect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mobile_detect__WEBPACK_IMPORTED_MODULE_0__);\n\r\n\r\nclass Utils {\r\n\r\n  static isMobile() {\r\n    const detect = new mobile_detect__WEBPACK_IMPORTED_MODULE_0___default.a(window.navigator.userAgent);\r\n    return detect.mobile() !== null;\r\n  }\r\n\r\n  static isPhone() {\r\n    const detect = new mobile_detect__WEBPACK_IMPORTED_MODULE_0___default.a(window.navigator.userAgent);\r\n    return detect.phone() !== null;\r\n  }\r\n  static isIosDevice() {\r\n    if (typeof window !== 'undefined' && window.navigator && window.navigator.platform && /iP(ad|hone|od)/.test(window\r\n        .navigator.platform)) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    };\r\n  };\r\n\r\n  static isIE() {\r\n    const ua = window.navigator.userAgent;\r\n    const msie = ua.indexOf(\"MSIE \");\r\n    return msie > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./) || navigator.userAgent.indexOf(\"Edge\") > 0 ?\r\n      true : false;\r\n  }\r\n\r\n  static ellipse(str, n) {\r\n    return str.length > n ? str.substr(0, n) + '...' : str;\r\n  }\r\n\r\n  static getCookie(name) {\r\n    var value = '; ' + document.cookie;\r\n    var parts = value.split('; ' + name + '=');\r\n    return parts.length < 2 ?\r\n      undefined :\r\n      parts\r\n      .pop()\r\n      .split(';')\r\n      .shift();\r\n  };\r\n\r\n  static setCookie(name, value, expiryDays, domain, path, secure) {\r\n    var exdate = new Date();\r\n    exdate.setDate(exdate.getDate() + (expiryDays || 365));\r\n\r\n    var cookie = [\r\n      name + '=' + value,\r\n      'expires=' + exdate.toUTCString(),\r\n      'path=' + (path || '/')\r\n    ];\r\n\r\n    if (domain) {\r\n      cookie.push('domain=' + domain);\r\n    }\r\n    if (secure) {\r\n      cookie.push('secure');\r\n    }\r\n    document.cookie = cookie.join(';');\r\n  };\r\n\r\n  static getLocalStorage(localStorageKey, localStorageEncrypt) {\r\n    const currentLang = $('html')[0].lang;\r\n    var localStorageValue = localStorage.getItem(localStorageKey + '_' + currentLang);\r\n    if (localStorageValue && localStorageEncrypt) {\r\n      return atob(localStorageValue);\r\n    } else if (localStorageValue && !localStorageEncrypt) {\r\n      return localStorageValue;\r\n    } else {\r\n      return undefined;\r\n    }\r\n  }\r\n\r\n  static setLocalStorage(localStorageKey, localStorageValue, localStorageEncrypt) {\r\n    const currentLang = $('html')[0].lang;\r\n    if (localStorageEncrypt) {\r\n      localStorageValue = btoa(localStorageValue);\r\n    }\r\n    localStorage.setItem(localStorageKey + '_' + currentLang, localStorageValue);\r\n  }\r\n\r\n  static isInViewport(el) {\r\n    const elementTop = $(el).offset().top;\r\n    const elementBottom = elementTop + $(el).outerHeight();\r\n\r\n    const viewportTop = $(window).scrollTop();\r\n    const viewportBottom = viewportTop + $(window).height();\r\n\r\n    return elementBottom > (viewportTop + ($(el).outerHeight() / 3 * 2)) && elementTop < (viewportBottom + ($(el)\r\n      .outerHeight() / 3 * 2));\r\n  };\r\n\r\n  static closeShareModal() {\r\n    const container = $('#share-dropdown');\r\n    if (container && container.length > 0) {\r\n      for (let i = 0; i < container.length; i++) {\r\n        if ($(container[i]).is(':visible')) {\r\n          //  setTimeout(function() {\r\n          $(container[i]).hide();\r\n          // }, 300);\r\n          return true;\r\n        } else {\r\n          return false;\r\n        }\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  static convertDateForCalendars(date, isStarting, isPrimitive) {\r\n    if (!isPrimitive) {\r\n      var date = date.toString();\r\n      var dates = date.split('/');\r\n      var newDate = new Date();\r\n      newDate.setYear(dates[2]);\r\n      newDate.setMonth(Number(dates[1]) - 1);\r\n      newDate.setDate(dates[0]);\r\n    } else {\r\n      var newDate = new Date(date);\r\n      console.log('new date from primitive', newDate);\r\n    }\r\n\r\n    if (isStarting == true) {\r\n      newDate.setHours('00');\r\n      newDate.setMinutes('00');\r\n      newDate.setSeconds('00');\r\n    } else {\r\n      newDate.setHours('23');\r\n      newDate.setMinutes('59');\r\n      newDate.setSeconds('59');\r\n    }\r\n\r\n    return newDate.valueOf();\r\n  }\r\n\r\n  static stopBodyScrollingiOSPreventFunction(e) {\r\n    e.preventDefault();\r\n  };\r\n\r\n  static stopBodyScrollingiOS(bool) {\r\n    if (this.isIosDevice) {\r\n      if (bool === true) {\r\n        document.body.addEventListener('touchmove', this.stopBodyScrollingiOSPreventFunction, {\r\n          passive: false\r\n        });\r\n      } else {\r\n        document.body.removeEventListener(\"touchmove\", this.stopBodyScrollingiOSPreventFunction, {\r\n          passive: false\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n  static checkLastVisiblePublicationItem(currentSection) {\r\n\r\n    const allPublicationItems = $(currentSection).find(\r\n      '.publications-item-container .list-item');\r\n    if (allPublicationItems.length > 0) {\r\n      for (let i = 0; i < allPublicationItems.length; i++) {\r\n        const publicationItem = allPublicationItems[i];\r\n        if ($(publicationItem).hasClass('nbb')) {\r\n          $(publicationItem).removeClass('nbb');\r\n        }\r\n      }\r\n    }\r\n\r\n    const allAccordionsItems = $(currentSection).find(\r\n      '.publications-item-container .accordion.accordion-container');\r\n    if (allAccordionsItems.length > 0) {\r\n      for (let i = 0; i < allAccordionsItems.length; i++) {\r\n        const accordionItem = allAccordionsItems[i];\r\n        if ($(accordionItem).hasClass('nbb')) {\r\n          $(accordionItem).removeClass('nbb');\r\n        }\r\n      }\r\n    }\r\n\r\n    const currentSectionLastVisiblePublicationItem = $(currentSection).find(\r\n      '.publications-item-container .list-item:visible:last');\r\n    const currentSectionLastVisibleAccordionItem = $(currentSection).find(\r\n      '.publications-item-container .accordion.accordion-container:visible:last');\r\n\r\n    if ((currentSectionLastVisiblePublicationItem.length + currentSectionLastVisibleAccordionItem.length) > 1) {\r\n      const isLastVisiblePublicationItemAnAccordion = !currentSectionLastVisiblePublicationItem.is(\r\n        currentSectionLastVisibleAccordionItem);\r\n\r\n      if (isLastVisiblePublicationItemAnAccordion) {\r\n        $(currentSectionLastVisibleAccordionItem).addClass('nbb');\r\n      } else {\r\n        $(currentSectionLastVisiblePublicationItem).addClass('nbb');\r\n      }\r\n    } else if ((currentSectionLastVisiblePublicationItem.length + currentSectionLastVisibleAccordionItem.length) ===\r\n      1) {\r\n      if (currentSectionLastVisiblePublicationItem.length > 0) {\r\n        $(currentSectionLastVisiblePublicationItem).addClass('nbb');\r\n      } else {\r\n        $(currentSectionLastVisibleAccordionItem).addClass('nbb');\r\n      }\r\n    }\r\n  }\r\n\r\n  static checkLastVisibleAccordionsElement(currentSection) {\r\n    const currentSectionAccordions = $(currentSection).find('.accordion.accordion-container');\r\n    for (let i = 0; i < currentSectionAccordions.length; i++) {\r\n      const currentSectionAccordion = currentSectionAccordions[i];\r\n\r\n      // Find all accordion detail items and check if all of them have hidden class\r\n      const accordionDetailItems = $(currentSectionAccordion).find('.accordion-detail-item');\r\n\r\n      if (accordionDetailItems && accordionDetailItems.length > 0) {\r\n        for (let i = 0; i < accordionDetailItems.length; i++) {\r\n          //Check if has nbb class then remove it\r\n          if ($(accordionDetailItems[i]).hasClass('nbb')) {\r\n            $(accordionDetailItems[i]).removeClass('nbb');\r\n          }\r\n        }\r\n        // Check last visible accordion children\r\n        for (let j = accordionDetailItems.length - 1; j >= 0; j--) {\r\n          const accordionDetailItem = accordionDetailItems[j];\r\n          if ($(accordionDetailItem).css('display') !== 'none') {\r\n            $(accordionDetailItem).addClass('nbb');\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  static managePublicationListsBorders(currentSection) {\r\n    const publicationListContainers = $(currentSection).find('.publications-item-container');\r\n    const thereArePublicationLists = publicationListContainers && publicationListContainers.length > 0 ? true : false;\r\n    if (thereArePublicationLists) {\r\n      this.checkLastVisiblePublicationItem(currentSection);\r\n      this.checkLastVisibleAccordionsElement(currentSection);\r\n    }\r\n  }\r\n\r\n  static truncateDropdownButtonText(dropdownButtonText) {\r\n    const trimmedDropdownButtonText = dropdownButtonText.trim();\r\n    if (trimmedDropdownButtonText.length > 20)\r\n      return trimmedDropdownButtonText.substring(0, 20) + '...';\r\n    else\r\n      return trimmedDropdownButtonText;\r\n  };\r\n}\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/common/yt-utils.js\":\n/*!****************************************!*\\\n  !*** ./src/scripts/common/yt-utils.js ***!\n  \\****************************************/\n/*! exports provided: YtUtils */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"YtUtils\", function() { return YtUtils; });\n/* harmony import */ var _common_digital_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/digital-data */ \"./src/scripts/common/digital-data.js\");\n\r\n\r\nconst YT_API_SRC = \"https://www.youtube.com/player_api\";\r\n\r\nconst BASE_RATIO = 16 / 9;\r\n\r\nvar onYouTubeIframeAPIReadyCallbacks = [];\r\n\r\nwindow.onYouTubeIframeAPIReady = () => {\r\n  console.log( 'onYouTubeIframeAPIReady' );\r\n  onYouTubeIframeAPIReadyCallbacks.forEach(ytUtils => {\r\n    setTimeout(() => {\r\n      ytUtils.createPlayer();\r\n    }, 500);\r\n  });\r\n};\r\n\r\nclass YtUtils {\r\n  constructor(playerId, ytId, playerDefaults, isAutoPlay, heightPriority) {\r\n    this.player = null;\r\n    this.playerId = playerId;\r\n    this.ytId = ytId;\r\n    this.playerDefaults = playerDefaults;\r\n    this.isAutoPlay = isAutoPlay || false;\r\n    this.heightPriority = heightPriority || false;\r\n    this.checkYtScript();\r\n    // window.onYouTubeIframeAPIReady();\r\n\r\n    $(document).ready(() => {\r\n      setTimeout(() => {\r\n        window.onYouTubeIframeAPIReady();\r\n      }, 100);\r\n    });\r\n  }\r\n\r\n  get YTPlayer() {\r\n    return this.player;\r\n  }\r\n\r\n  get PlayerId() {\r\n    return this.playerId;\r\n  }\r\n\r\n  createPlayer() {\r\n\r\n    console.log( 'YtUtils createPlayer playerId', this.playerId );\r\n    console.log( 'YtUtils createPlayer player', this.player );\r\n    //console.log( 'YtUtils createPlayer', YT );\r\n\r\n    if (this.playerId && this.player === null) {\r\n      console.log( 'YtUtils YT.Player', YT.Player );\r\n      console.log( 'YtUtils YT', YT );\r\n      this.player = new YT.Player(this.playerId, {\r\n        events: {\r\n          onReady: event => this.onPlayerReady(event),\r\n          onStateChange: event => this.onPlayerStateChange(event, this.playerDefaults)\r\n        },\r\n        playerVars: this.playerDefaults\r\n      });\r\n    } else {\r\n      console.log( 'YtUtils createPlayer NOP' );\r\n    }\r\n  }\r\n\r\n  onPlayerReady(event) {\r\n    const isArray = Array.isArray(this.ytId);\r\n    console.log( 'YtUtils onPlayerReady isAutoPlay', this.ytId, this.isAutoPlay );\r\n    if (this.isAutoPlay) {\r\n      //const container = $(event.target.f).parent();\r\n      const container = $(event.target.h).parent();\r\n      console.log( 'YtUtils onPlayerReady container', isArray, event.target, event.target.h );\r\n      //START push digitalData\r\n      const section = container.closest('section.media-detail-cover');\r\n      if(section.length > 0) _common_digital_data__WEBPACK_IMPORTED_MODULE_0__[\"DigitalDataUtils\"].handleClickItemFormatVideo(section);\r\n      //END push digitalData\r\n\r\n      this.setSize(container, event.target);\r\n      if (isArray) {\r\n        event.target.loadPlaylist(this.ytId);\r\n      } else {\r\n       \r\n        event.target.loadVideoById(this.ytId);\r\n      }\r\n    } else {\r\n      if (isArray) {\r\n        event.target.cuePlaylist(this.ytId);\r\n      } else {\r\n        event.target.cueVideoById(this.ytId);\r\n      }\r\n    }\r\n  }\r\n\r\n  onPlayerStateChange(event, playerdefaults) {\r\n    if (event && event.data === 0 && playerdefaults.loop && playerdefaults.loop === 1) {\r\n      event.target.playVideo();\r\n    }\r\n  }\r\n\r\n  setSize(container, player) {\r\n    console.log( 'YtUtils setSize', container, player );\r\n    const w = $(container).width();\r\n    const h = $(container).height();\r\n    console.log( 'YtUtils setSize', w, h );\r\n    const ratio = w / h;\r\n\r\n    if (this.heightPriority === true) {\r\n      player.setSize(w, h);\r\n    } else {\r\n      if (w > 1024) {\r\n        if (ratio > BASE_RATIO) {\r\n          // player.setSize(w, w / 16 * 9);\r\n          player.setSize(w, h);\r\n        } else {\r\n          // player.setSize(h / 9 * 16, h);\r\n          player.setSize(w, h);\r\n        }\r\n      } else {\r\n        player.setSize(w, h);\r\n      }\r\n    }\r\n  }\r\n\r\n  startVideo(container) {\r\n    if (this.player) {\r\n      if (container) {\r\n        this.setSize(container, this.player);\r\n      }\r\n      if (typeof this.player.playVideo == \"function\") {\r\n        this.player.playVideo();\r\n      } else {\r\n        setTimeout(() => {\r\n          this.player.playVideo();\r\n        }, 1000);\r\n      }\r\n    }\r\n  }\r\n\r\n  pauseVideo() {\r\n     if (this.player) {\r\n      if (typeof this.player.pauseVideo == \"function\") {\r\n        this.player.pauseVideo();\r\n      } else {\r\n        setTimeout(() => {\r\n          this.player.pauseVideo();\r\n        }, 1000);\r\n      }\r\n     }\r\n  }\r\n\r\n  pauseVideoFull() {\r\n    if (this.player) {\r\n     if (typeof this.player.pauseVideo == \"function\") {\r\n       this.player.pauseVideo();\r\n       this.player.destroy();\r\n     } else {\r\n       setTimeout(() => {\r\n         this.player.pauseVideo();\r\n         this.player.destroy();\r\n       }, 1000);\r\n     }\r\n    }\r\n }\r\n\r\n  stopVideo() {\r\n    if (typeof this.player.stopVideo == \"function\") {\r\n      this.player.stopVideo();\r\n      \r\n    } else {\r\n      setTimeout(() => {\r\n        this.player.stopVideo();\r\n        \r\n      }, 1000);\r\n    }\r\n  }\r\n\r\n  static createInstance(playerId, ytId, playerDefaults, isAutoPlay, heightPriority) {\r\n    const ytUtils = new YtUtils(playerId, ytId, playerDefaults, isAutoPlay, heightPriority);\r\n    onYouTubeIframeAPIReadyCallbacks.push(ytUtils);\r\n    return ytUtils;\r\n  }\r\n\r\n  checkYtScript() {\r\n    console.log( 'YtUtils checkYtScript' );\r\n\r\n    // check if yt script exists\r\n    let ytScript = $(document).find(`script[src=\"${YT_API_SRC}\"]`);\r\n    if (ytScript.length === 0) {\r\n      ytScript = document.createElement(\"script\");\r\n      ytScript.src = YT_API_SRC;\r\n      const firstScriptTag = document.getElementsByTagName(\"script\")[0];\r\n      firstScriptTag.parentNode.insertBefore(ytScript, firstScriptTag);\r\n    }\r\n  }\r\n}\r\n\r\n$(window).on(\"resize\", () => {\r\n  onYouTubeIframeAPIReadyCallbacks.forEach(ytUtils => {\r\n    if (ytUtils.player && ytUtils.player.f) {\r\n      const container = $(ytUtils.player.f).parent();\r\n      ytUtils.setSize(container, ytUtils.player);\r\n    }\r\n  });\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/header/header-rich-text-carousel.js\":\n/*!*********************************************************!*\\\n  !*** ./src/scripts/header/header-rich-text-carousel.js ***!\n  \\*********************************************************/\n/*! exports provided: RichTextAnchrosCarousel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RichTextAnchrosCarousel\", function() { return RichTextAnchrosCarousel; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass RichTextAnchrosCarousel {\r\n\r\n  constructor(bindClass) {\r\n    this.richTextAnchrosCarousel = Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(bindClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      margin: 20,\r\n      navText: [],\r\n      rewind: false,\r\n    }, true);\r\n\r\n    // Active items handling based on paragraph visibility during scroll\r\n    this.handleRichTextActiveItems();\r\n\r\n    // Scroll to target paragraph handling\r\n    $('.eni-header-rich-text .owl-item').click((e) => this.handleClick(e));\r\n\r\n    // Click and longpress on navigation arrow\r\n    let scrollLeftIntervalId = 0;\r\n    let scrollRightIntervalId = 0;\r\n\r\n    // Go to the previous item with longpress\r\n    $('.owl-prev').on('mousedown touchstart', (event) => {\r\n      scrollLeftIntervalId = setInterval(() => {\r\n        this.richTextAnchrosCarousel.trigger('prev.owl.carousel', [500]);\r\n      }, 500);\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      clearInterval(scrollLeftIntervalId);\r\n    });\r\n\r\n    // Go to the next item with longpress\r\n    $('.owl-next').on('mousedown touchstart', (event) => {\r\n      scrollRightIntervalId = setInterval(() => {\r\n        this.richTextAnchrosCarousel.trigger('next.owl.carousel', [500]);\r\n      }, 500);\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      clearInterval(scrollRightIntervalId);\r\n    });\r\n  }\r\n\r\n  updateRichTextActiveItems(richTextSections, notAnchoredRichTextSections) {\r\n    const scrollDistance = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n    for (let i = 0; i < richTextSections.length; i++) {\r\n      const richTextSection = richTextSections[i];\r\n\r\n      if ($(richTextSection).position().top - $('.eni-header').height() - 20 <= scrollDistance) {\r\n        if ($(richTextSection).data('menu') && $(richTextSection).data('menu') === 1) {\r\n          $('.eni-header-rich-text .owl-item a.active').removeClass('active');\r\n          $('.eni-header-rich-text .owl-item a').eq(i).addClass('active');\r\n        } else {\r\n          $('.eni-header-rich-text .owl-item a.active').removeClass('active');\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  handleClick(e) {\r\n    e.preventDefault();\r\n    const currentRichTextItem = $(e.currentTarget).children('.rich-text-tab');\r\n    const currentRichTextItemHref = $(currentRichTextItem).attr('href');\r\n    const richTextParagraphToReach = $(currentRichTextItemHref);\r\n    const richTextParagraphPosition = $(richTextParagraphToReach).offset().top;\r\n\r\n    const headerHeight = $('.eni-header').height();\r\n    const scrollOffset = headerHeight;\r\n    let scrollYPosition = richTextParagraphPosition - scrollOffset - 10;\r\n\r\n    window.scrollTo({\r\n      top: scrollYPosition,\r\n      left: 0,\r\n      behavior: 'smooth'\r\n    });\r\n  }\r\n\r\n  handleRichTextActiveItems() {\r\n    const richTextSections = $('.rich-text-section');\r\n\r\n    if (richTextSections && richTextSections.length > 0) {\r\n\r\n      this.updateRichTextActiveItems(richTextSections);\r\n      document.addEventListener(\"scroll\", () => {\r\n        this.updateRichTextActiveItems(richTextSections);\r\n      });\r\n    }\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  const component = new RichTextAnchrosCarousel('.rich-text-anchors-carousel.carousel-container .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/header/header-search-carousel.js\":\n/*!******************************************************!*\\\n  !*** ./src/scripts/header/header-search-carousel.js ***!\n  \\******************************************************/\n/*! exports provided: HeaderSearchCarousel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HeaderSearchCarousel\", function() { return HeaderSearchCarousel; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass HeaderSearchCarousel {\r\n\r\n  constructor(bindClass) {\r\n    this.headerSearchCarousel = Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(bindClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      margin: 20,\r\n      navText: [],\r\n      rewind: false,\r\n    }, true);\r\n\r\n    // Click and longpress on navigation arrow\r\n    let scrollLeftIntervalId = 0;\r\n    let scrollRightIntervalId = 0;\r\n\r\n    // Go to the previous item with longpress\r\n    $('.owl-prev').on('mousedown touchstart', (event) => {\r\n      scrollLeftIntervalId = setInterval(() => {\r\n        this.headerSearchCarousel.trigger('prev.owl.carousel', [500]);\r\n      }, 500);\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      clearInterval(scrollLeftIntervalId);\r\n    });\r\n\r\n    // Go to the next item with longpress\r\n    $('.owl-next').on('mousedown touchstart', (event) => {\r\n      scrollRightIntervalId = setInterval(() => {\r\n        this.headerSearchCarousel.trigger('next.owl.carousel', [500]);\r\n      }, 500);\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      clearInterval(scrollRightIntervalId);\r\n    });\r\n\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  const component = new HeaderSearchCarousel('.search-header-carousel.carousel-container .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/header/header.component.js\":\n/*!************************************************!*\\\n  !*** ./src/scripts/header/header.component.js ***!\n  \\************************************************/\n/*! exports provided: HEADER_PROPS, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_PROPS\", function() { return HEADER_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HeaderComponent; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n/* harmony import */ var _common_animate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/animate */ \"./src/scripts/common/animate.js\");\n\r\n\r\n\r\n\r\n\r\nconst HEADER_PROPS = {\r\n  EXPLORE_MENU: {\r\n    EXPLORE_CLASS: \"aside.enicom-explore\",\r\n    EXPLORE_TITLE: \"aside.enicom-explore .explore-menu-title\",\r\n    EXPLORE_BTN_CLOSE_ID: \"#explore-menu-btn-close\",\r\n    EXLORE_BTN_ID: \"#explore-button\",\r\n    EXLORE_BTN_EXTERNAL_ID: \"#explore-button-external\",\r\n    EXPLORE_TAB_TOPIC_BTN_ID: \"#category-topic\",\r\n    EXPLORE_TAB_FORMAT_BTN_ID: \"#category-format\",\r\n    EXPLORE_TAB_TOPIC_CONTENT_CLASS: \".topic-container\",\r\n    EXPLORE_TAB_FORMAT_CONTENT_CLASS: \".format-container\",\r\n    EXPLORE_PADDLE_NAVIGATION_BREAKPOINT: 1024, // $lg\r\n    EXPLORE_MENU_CONTAINER_CLASS: \".eni-firstlevel-explore-menu\",\r\n    EXPLORE_MENU_STATIC_ITEM_CLASS: \".eni-firstlevel-explore-menu-listitem-default\",\r\n    EXPLORE_MENU_STATIC_LAST_ITEM_CLASS: \".eni-firstlevel-explore-menu-listitem-default:last\",\r\n    EXPLORE_MENU_ITEM_CLASS: \".eni-firstlevel-explore-menu .eni-firstlevel-explore-menu-listitem-dynamic\",\r\n    EXPLORE_MENU_LAST_ITEM_CLASS: \".eni-firstlevel-explore-menu .eni-firstlevel-explore-menu-listitem-dynamic:last\",\r\n    EXPLORE_MENU_MOBILE_BUTTON_CLASS: \".eni-firstlevel-explore-menu .eni-firstlevel-explore-menu-listitem-explore-action\",\r\n    EXPLORE_MENU_ITEM_CLASS_FIRST_LEVEL: \".eni-firstlevel-explore-menu-item\"\r\n  },\r\n  EXPLORE_CARD: {\r\n    CLASS: \".explore-scroll .explore-menu-card\",\r\n    PRINCIPAL_CLASS: \".explore-scroll .principal-cards-container .explore-menu-card\",\r\n    ADDED_CLASS: \"added\",\r\n    ADDED_STATUS: \"added-to-menu-status\",\r\n    REMOVED_STATUS: \"removed-from-menu-status\",\r\n    LINK_CLASS: \".explore-card-link\",\r\n    ADD_REMOVE_BTN_CLASS: \".btn.add-remove-btn\"\r\n  },\r\n  HEADER_MAIN: {\r\n    MAIN_HEADER_CLASS: \"header.eni-header\",\r\n    PRE_HEADER_ID: \"#eni-pre-header\",\r\n    PRE_HEADER_DESKTOP_HEIGHT: 74,\r\n    SEARCH_BAR_ID: \"#eni-header-always-visible-container\",\r\n    LANGUAGE_DROPDOWN_BUTTON_CLASS: \".eni-preheader-language-dropdown\",\r\n    OUR_CHANNEL_BTN_ID: \"#preheader-menu-our-channels-btn\",\r\n    MOBILE_OUR_CHANNEL_BTN_ID: \"#preheader-menu-mobile-our-channels-btn\",\r\n    OUR_CHANNEL_CLOSE_BTN_ID: '#close-our-channels-btn',\r\n    MOBILE_HEADER_BREAKPOINT: 1024 //$lg,\r\n  },\r\n  HEADER_SEARCH: {\r\n    MINIMUM_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT: 285,\r\n    MAXIMUM_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT: 115,\r\n    INDEX_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT: 2.428,\r\n    MINIMUM_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE: 36,\r\n    MAXIMUM_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE: 18,\r\n    INDEX_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE: 0.257,\r\n    MINIMUM_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE: 24,\r\n    MAXIMUM_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE: 20,\r\n    INDEX_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE: 0.057,\r\n    MINIMUM_DESKTOP_MAIN_WRAPPER_MARGIN_TOP: 423,\r\n    MAXIMUM_DESKTOP_MAIN_WRAPPER_MARGIN_TOP: 330,\r\n    INDEX_DESKTOP_MAIN_WRAPPER_MARGIN_TOP: 1.328,\r\n  },\r\n  CLASSES: {\r\n    MAIN_CONTAINER_CLASS: \".main-container\",\r\n    MAIN_WRAPPER_CLASS: \".main-wrapper\",\r\n    HOME_PAGE_CONTAINER_CLASS: \"home-page\",\r\n    SEARCH_PAGE_CONTAINER_CLASS: \"search-page\",\r\n    SEARCH_BAR_CONTAINER_CLASS: \".eni-searchbar-container\",\r\n    SEARCH_INPUT_CLASS: \".eni-searchbar-header-input\",\r\n    MODAL_SEARCH_INPUT_CLASS: \".eni-search-modal-input\",\r\n    VOCAL_SEARCH_HEADER_BUTTON_CLASS: \"button.eni-searchbar-vocal-search\",\r\n    CLEAR_SEARCH_HEADER_BUTTON_CLASS: \"button.eni-searchbar-header-clear\",\r\n    VOCAL_SEARCH_MODAL_BUTTON_CLASS: \"button.eni-search-modal-vocal-search\",\r\n    CLEAR_SEARCH_MODAL_BUTTON_CLASS: \"button.eni-search-modal-clear\",\r\n    VOCAL_SEARCH_MODAL_ABORT_SEARCH_BUTTON_CLASS: \"button.eni-search-modal-abort-vocal-search\",\r\n    SEARCH_INPUT_ICON_CLASS: \".eni-searchbar-header-icon\",\r\n    BODY_UNSCROLLABLE_CLASS: \"unscrollable\",\r\n    STICKY_CLASS: \"sticky\",\r\n    HIDDEN_MOBILE_CLASS: \"hader-mobile-hidden\",\r\n    HEADER_LIGHT_CLASS: \"header-light\",\r\n    HEADER_LIGHT_PARTIAL_CLASS: \"header-light-partial\",\r\n    HEADER_LIGHT_PARTIAL_MOBILE_CLASS: \"header-light-partial-mobile\",\r\n    SLIDE_IN_DOWN_CLASS: \"slideInDown\",\r\n    SLIDE_IN_UP_CLASS: \"slideInUp\",\r\n    MOBILE_SEARCH_MODAL_ID: \"#mobileSearchModal\",\r\n    MOBILE_SEARCH_MODAL_VOCAL_SEARCH_LOADING_CLASS: \".vocal-search\",\r\n    MOBILE_SEARCH_MODAL_SEARCH_LINKS_CLASS: \".search-links\",\r\n    ADD_REMOVE_BTN_SECTION_CORPORATE_A_CLASS: \".btn-add-remove-section-corporate-a\",\r\n    ADD_REMOVE_BTN_SECTION_MAGAZINE_CLASS: \".btn-add-remove-section-magazine\",\r\n  },\r\n  STORAGE: {\r\n    EXPLORE_MENU: {\r\n      KEY: \"explore_menu\",\r\n      ENCODING: false // true in production\r\n    }\r\n  }\r\n};\r\nclass HeaderComponent {\r\n  constructor(exploreMenu) {\r\n    if(!$('header.eni-header').hasClass('header-enicountry')){\r\n      this.syncExploreStorageWithHtml(true);\r\n    }\r\n    this.handleExploreMenu();\r\n    this.handleScroll();\r\n    this.handlePreHeaderButtons();\r\n    this.handleContainerClass();\r\n    this.handleMobileModal();\r\n    this.handleSearchClearButton();\r\n    this.handleSearchOpenButton();\r\n    // this.getLocation();\r\n  }\r\n\r\n  // getLocation(){\r\n  //   console.log('location', $(location).attr('href'));\r\n  //   var loc = $(location).attr('href');\r\n  //   console.log('location', loc);\r\n  //   if(loc.includes(\"ricerca.html\")){\r\n  //     $(HEADER_PROPS.CLASSES.VOCAL_SEARCH_HEADER_BUTTON_CLASS).hide();\r\n  //     $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_HEADER_BUTTON_CLASS).show();\r\n  //   } else if (loc.includes(\"search-template\")){\r\n  //     console.log('pippo');\r\n  //     $(HEADER_PROPS.CLASSES.VOCAL_SEARCH_HEADER_BUTTON_CLASS).hide();\r\n  //     $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_HEADER_BUTTON_CLASS).show();\r\n  //   }\r\n  // }\r\n\r\n  syncExploreStorageWithHtml(init) {\r\n    // Get local storage\r\n    var headerStorage = _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getLocalStorage(\r\n      HEADER_PROPS.STORAGE.EXPLORE_MENU.KEY,\r\n      HEADER_PROPS.STORAGE.EXPLORE_MENU.ENCODING\r\n    );\r\n\r\n    // Populate local storage with default principale explore menu cards\r\n    if (!headerStorage && init) {\r\n      const exploreMenuPrincipalCards = $(HEADER_PROPS.EXPLORE_CARD.PRINCIPAL_CLASS);\r\n\r\n      if (exploreMenuPrincipalCards && exploreMenuPrincipalCards.length > 0) {\r\n        for (let i = 0; i < exploreMenuPrincipalCards.length; i++) {\r\n          const dataInfo = this.getExploreMenuCardDataAttributesObj($(exploreMenuPrincipalCards[i]).data());\r\n          this.addRemoveExploreMenuCard(exploreMenuPrincipalCards[i], dataInfo, 'true');\r\n        }\r\n        headerStorage = _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getLocalStorage(\r\n          HEADER_PROPS.STORAGE.EXPLORE_MENU.KEY,\r\n          HEADER_PROPS.STORAGE.EXPLORE_MENU.ENCODING\r\n        );\r\n      }\r\n    }\r\n\r\n\r\n    // Parse local storage\r\n    if (headerStorage) {\r\n      var exploreMenuStorageDynamicElementsArray = JSON.parse(headerStorage);\r\n    };\r\n\r\n    // Get html explore firstlevel menu items\r\n    var exploreMenuHtmlDynamicElementsArray = $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_ITEM_CLASS);\r\n\r\n    // Get html explore menu items\r\n    var exploreMenuCards = $(HEADER_PROPS.EXPLORE_CARD.CLASS);\r\n\r\n    if (exploreMenuStorageDynamicElementsArray) {\r\n      // Enable following line if firstlevel explore menu must cotain at least 1 dynamic item\r\n      /* if (exploreMenuHtmlDynamicElementsArray.length > 0) { */\r\n\r\n      // Compare local storage items with html firstlevel menu items and prepare missing items\r\n      // that will be added\r\n      var exploreFirstLevelMenuHtmlDynamicElementsToBeAdded = [];\r\n\r\n      function comparerStorageWithHtml(htmlArray) {\r\n        return function (current) {\r\n          return (\r\n            htmlArray.filter(function (i) {\r\n              return htmlArray[i].dataset.id ? htmlArray[i].dataset.id == current.id : false;\r\n            }).length == 0\r\n          );\r\n        };\r\n      }\r\n\r\n      function comparerHtmlWithStorage(storageArray) {\r\n        return function (i) {\r\n          return (\r\n            storageArray.filter(function (storageItem) {\r\n              return storageItem.id == exploreMenuHtmlDynamicElementsArray[i].dataset.id;\r\n            }).length == 0\r\n          );\r\n        };\r\n      }\r\n\r\n      // Compare storage items with firstlevel menu items and create an array with items to add\r\n      exploreFirstLevelMenuHtmlDynamicElementsToBeAdded = exploreMenuStorageDynamicElementsArray.filter(\r\n        comparerStorageWithHtml(exploreMenuHtmlDynamicElementsArray)\r\n      );\r\n\r\n      if (exploreMenuStorageDynamicElementsArray && exploreFirstLevelMenuHtmlDynamicElementsToBeAdded.length > 0) {\r\n        for (var i = 0; i < exploreFirstLevelMenuHtmlDynamicElementsToBeAdded.length; i++) {\r\n          // Sync Explore Firstlevel Menu Items -> Add\r\n          this.addExploreFirstlevelMenuItem(exploreFirstLevelMenuHtmlDynamicElementsToBeAdded[i]);\r\n\r\n          if (init) {\r\n            // Sync Explore Menu Items (Cards) -> Edit active css class\r\n            this.editExploreMenuItems(exploreFirstLevelMenuHtmlDynamicElementsToBeAdded[i], exploreMenuCards);\r\n          }\r\n        }\r\n      }\r\n\r\n      if (!init) {\r\n        // Sync Explore Firstlevel Menu Items -> Remove and Animate (when closing explore menu)\r\n        var exploreFirstLevelMenuHtmlDynamicElementsToBeRemoved = exploreMenuHtmlDynamicElementsArray.filter(\r\n          comparerHtmlWithStorage(exploreMenuStorageDynamicElementsArray)\r\n        );\r\n\r\n        var afterSlideInDownAnimation = function (exploreMenuItem) {\r\n          setTimeout(() => {\r\n            $(exploreMenuItem).remove();\r\n          }, 1000);\r\n        };\r\n\r\n        if (\r\n          exploreFirstLevelMenuHtmlDynamicElementsToBeRemoved &&\r\n          exploreFirstLevelMenuHtmlDynamicElementsToBeRemoved.length > 0\r\n        ) {\r\n          for (var i = 0; i < exploreFirstLevelMenuHtmlDynamicElementsToBeRemoved.length; i++) {\r\n            console.log(\"To remove: \", exploreFirstLevelMenuHtmlDynamicElementsToBeRemoved[i]);\r\n            Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n              exploreFirstLevelMenuHtmlDynamicElementsToBeRemoved[i],\r\n              _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_OUT_DOWN,\r\n              afterSlideInDownAnimation(exploreFirstLevelMenuHtmlDynamicElementsToBeRemoved[i])\r\n            );\r\n          }\r\n          setTimeout(() => {\r\n            this.handleExploreMenuScrolling();\r\n          }, 1000);\r\n        }\r\n\r\n        // Sync Explore Firstlevel Menu Items -> Animate (when closing explore menu)\r\n        if (\r\n          exploreFirstLevelMenuHtmlDynamicElementsToBeAdded &&\r\n          exploreFirstLevelMenuHtmlDynamicElementsToBeAdded.length > 0\r\n        ) {\r\n          for (var i = 0; i < exploreFirstLevelMenuHtmlDynamicElementsToBeAdded.length; i++) {\r\n            var exploreMenuItemToBeAnimated = $(\r\n              HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_ITEM_CLASS +\r\n              '[data-id=\"' +\r\n              exploreFirstLevelMenuHtmlDynamicElementsToBeAdded[i].id +\r\n              '\"]'\r\n            );\r\n            Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(exploreMenuItemToBeAnimated[0], _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].SLIDE_IN_UP);\r\n            var yellowLink = $(\r\n              HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_ITEM_CLASS +\r\n              '[data-id=\"' +\r\n              exploreFirstLevelMenuHtmlDynamicElementsToBeAdded[i].id +\r\n              '\"]' +\r\n              \" .eni-firstlevel-explore-menu-item\"\r\n            );\r\n\r\n            $(yellowLink[0]).css({\r\n              'color': '#ffd300'\r\n            });\r\n            window.setInterval(() => {\r\n              $('.eni-firstlevel-explore-menu-item').css({\r\n                'color': '#ffffff'\r\n              });\r\n            }, 2000);\r\n            window.setInterval(() => {\r\n              $('.header-light .eni-firstlevel-explore-menu-item').css({\r\n                'color': '#333333'\r\n              });\r\n            }, 2000);\r\n          }\r\n          this.handleExploreMenuScrolling(true);\r\n        }\r\n      } else {\r\n        this.handleExploreMenuScrolling();\r\n      }\r\n\r\n      /* } */\r\n    } else {\r\n      this.handleExploreMenuScrolling();\r\n    }\r\n\r\n    // Handle Add Remove Buttons Section Corporate A after Sync of explore storage with html\r\n    if (init) {\r\n      this.handleAddRemoveButtonsSectionCorporateA();\r\n    }\r\n  }\r\n\r\n  unmapCardsClick() {\r\n    try {\r\n      var exploreMenuCards = $(HEADER_PROPS.EXPLORE_CARD.CLASS);\r\n      if (exploreMenuCards && exploreMenuCards.length > 0) {\r\n        for (let i = 0; i < exploreMenuCards.length; i++) {\r\n          var exploreMenuCardAddRemoveButton = $(exploreMenuCards[i])\r\n            .children()\r\n            .children(HEADER_PROPS.EXPLORE_CARD.ADD_REMOVE_BTN_CLASS);\r\n          if (exploreMenuCardAddRemoveButton) {\r\n            $(exploreMenuCardAddRemoveButton).off(\"click\");\r\n          }\r\n        }\r\n      }\r\n    } catch (e) {\r\n      console.error(e);\r\n    }\r\n  }\r\n\r\n  handleExploreMenu() {\r\n    try {\r\n      this.body = $(\"body\");\r\n      this.exploreMenu = $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_CLASS)[0];\r\n      this.exploreMenuTopicTabContent = $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_TAB_TOPIC_CONTENT_CLASS);\r\n      this.exploreMenuFormatTabContent = $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_TAB_FORMAT_CONTENT_CLASS);\r\n      if (this.exploreMenu) {\r\n        let exploreBtn = $(HEADER_PROPS.EXPLORE_MENU.EXLORE_BTN_ID);\r\n        let exploreBtnExternal = $(HEADER_PROPS.EXPLORE_MENU.EXLORE_BTN_EXTERNAL_ID);\r\n        let exploreCloseBtn = $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_BTN_CLOSE_ID);\r\n        let exploreMenuTopicTabButton = $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_TAB_TOPIC_BTN_ID);\r\n        let exploreMenuFormatTabButton = $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_TAB_FORMAT_BTN_ID);\r\n        if (exploreBtn && exploreBtnExternal && exploreCloseBtn) {\r\n          exploreBtn.on(\"click\", () => {\r\n            this.showExploreMenu();\r\n          });\r\n          exploreBtnExternal.on(\"click\", () => {\r\n            this.showExploreMenu();\r\n          });\r\n          exploreCloseBtn.on(\"click\", () => {\r\n            this.hideExploreMenu();\r\n            this.syncExploreStorageWithHtml(false);\r\n            this.unmapCardsClick();\r\n          });\r\n          exploreMenuTopicTabButton.on(\"click\", topicBtn => {\r\n            exploreMenuFormatTabButton.removeClass(\"active\");\r\n            this.showExploreTabTopicContent();\r\n            exploreMenuTopicTabButton.addClass(\"active\");\r\n          });\r\n          exploreMenuFormatTabButton.on(\"click\", formatBtn => {\r\n            exploreMenuTopicTabButton.removeClass(\"active\");\r\n            this.showExploreTabFormatContent();\r\n            exploreMenuFormatTabButton.addClass(\"active\");\r\n          });\r\n        }\r\n      }\r\n    } catch (e) {\r\n      console.error(e);\r\n    }\r\n  }\r\n\r\n  handleAddRemoveButtonsSectionCorporateA() {\r\n    var addRemoveButtonsSectionCorporate = $(`${HEADER_PROPS.CLASSES.ADD_REMOVE_BTN_SECTION_CORPORATE_A_CLASS}`);\r\n    var addRemoveButtonsSectionMagazine = $(`${HEADER_PROPS.CLASSES.ADD_REMOVE_BTN_SECTION_MAGAZINE_CLASS}`);\r\n\r\n    const addRemoveButtons = addRemoveButtonsSectionCorporate.length > 0 ? addRemoveButtonsSectionCorporate : (\r\n      addRemoveButtonsSectionMagazine.length > 0 ? addRemoveButtonsSectionMagazine : []);\r\n\r\n    if (addRemoveButtons && addRemoveButtons.length > 0) {\r\n      for (let i = 0; i < addRemoveButtons.length; i++) {\r\n        var currentAddRemoveBtn = $(addRemoveButtons[i]);\r\n        var addRemoveBtnId = currentAddRemoveBtn.data('id');\r\n\r\n        // Looking for explore menu card with same id of add remove button and set button classes (add/remove)\r\n        var exploreMenuCardWithSameId = $(HEADER_PROPS.EXPLORE_CARD.CLASS +\r\n          '[data-id=\"' + addRemoveBtnId.toString() + '\"]');\r\n\r\n        var updateCurrentAddRemoveBtn = function () {\r\n          if (exploreMenuCardWithSameId && exploreMenuCardWithSameId.hasClass(HEADER_PROPS.EXPLORE_CARD\r\n              .ADDED_CLASS)) {\r\n            currentAddRemoveBtn.removeClass('add');\r\n            currentAddRemoveBtn.addClass('remove');\r\n          } else if (!currentAddRemoveBtn.hasClass('add')) {\r\n            currentAddRemoveBtn.removeClass('remove');\r\n            currentAddRemoveBtn.addClass('add');\r\n          }\r\n        };\r\n\r\n        updateCurrentAddRemoveBtn();\r\n\r\n\r\n        $(currentAddRemoveBtn).click(() => {\r\n          var dataInfo = this.getExploreMenuCardDataAttributesObj($(exploreMenuCardWithSameId).data());\r\n          var isOutsideExplore = true;\r\n          this.addRemoveExploreMenuCard(exploreMenuCardWithSameId, dataInfo, isOutsideExplore);\r\n          this.syncExploreStorageWithHtml(false);\r\n          updateCurrentAddRemoveBtn();\r\n        });\r\n\r\n        // Update add/remove buttons if some items are added/remove from explore menu overlay (only when in the page there is one or more add/remove buttons)\r\n        let exploreCloseBtnIfAddRemove = $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_BTN_CLOSE_ID);\r\n        exploreCloseBtnIfAddRemove.on(\"click\", () => {\r\n          updateCurrentAddRemoveBtn();\r\n        });\r\n      }\r\n\r\n    }\r\n  }\r\n\r\n  applyExploreMenuHandling(scrollToOffset) {\r\n    var leftPaddle = $(\".left-paddle\")[0];\r\n    var rightPaddle = $(\".right-paddle\")[0];\r\n    var menuItems = [];\r\n\r\n    // duration of scroll animation\r\n    var scrollDuration = 150;\r\n    // get menu items array\r\n    menuItems = $(\".eni-firstlevel-explore-menu-listitem\");\r\n\r\n    // div with gradient\r\n    var gradientLeft = $('.eni-firstlevel-explore-menu-wrapper-shadow-left');\r\n    var gradientRight = $('.eni-firstlevel-explore-menu-wrapper-shadow-right');\r\n\r\n    // get some relevant size for the paddle triggering point\r\n    var paddleMargin = 5;\r\n    // margin-right of menu items\r\n    var marginItems = 16;\r\n    // padding of menu wrapper (to calculate paddles area)\r\n    var menuPadding = 20;\r\n\r\n    // detect internet explorer user agent\r\n    var msieversion = function () {\r\n      var ua = window.navigator.userAgent;\r\n      var isIE = /MSIE|Trident/.test(ua);\r\n      return isIE ? true : false;\r\n    };\r\n\r\n    // get wrapper width\r\n    var getMenuWrapperSize = function () {\r\n      return $(\".eni-firstlevel-explore-menu-wrapper\").outerWidth() - menuPadding;\r\n    };\r\n\r\n    // get total size width of all menu items\r\n    var getMenuSize = function () {\r\n      var menuTotalSize = 0;\r\n      for (let i = 0; i < menuItems.length - 1; i++) {\r\n        menuTotalSize += menuItems[i].clientWidth + marginItems;\r\n      }\r\n      return menuTotalSize;\r\n    };\r\n\r\n    // Menu horizontal scrolling management\r\n    var handleExploreMenuNavigation = function () {\r\n      var menuWrapperSize = 0;\r\n      var menuSize = 0;\r\n      var menuInvisibleSize = 0;\r\n\r\n      menuWrapperSize = getMenuWrapperSize();\r\n      menuSize = getMenuSize();\r\n\r\n      // get how much of menu is invisible\r\n      menuInvisibleSize = menuSize - menuWrapperSize;\r\n\r\n      // declare handling of scroll event\r\n      var handleScrollEvent = function () {\r\n        var menuPosition = 0;\r\n        var menuEndOffset = 0;\r\n        var checkMsieversion = false;\r\n\r\n        // get how much of menu is invisible\r\n        menuInvisibleSize = menuSize - menuWrapperSize;\r\n\r\n        // get how much have we scrolled so far\r\n        menuPosition = getMenuPosition();\r\n\r\n        /* var menuEndOffset = menuInvisibleSize - paddleMargin; */\r\n        checkMsieversion = msieversion();\r\n\r\n        menuEndOffset = checkMsieversion ? menuInvisibleSize - 8 + 20 : menuInvisibleSize - 8 - 1;\r\n\r\n        // show & hide the paddles depending on scroll position\r\n\r\n        // console.log(\"menuPosition : \" + menuPosition + \"  menuEndOffset : \" + menuEndOffset);\r\n\r\n        if (menuPosition <= paddleMargin) {\r\n          // show right paddle and hide left paddle\r\n          $(leftPaddle).addClass(\"hidden\");\r\n          $('.paddles').css({\r\n            'display': 'block'\r\n          });\r\n          $(gradientLeft).css({\r\n            'visibility': 'hidden'\r\n          });\r\n          $(rightPaddle).removeClass(\"hidden\");\r\n          $(gradientRight).css({\r\n            'visibility': 'visible'\r\n          });\r\n          console.log('1');\r\n\r\n        } else if (menuPosition < menuEndOffset) {\r\n          // show both paddles\r\n          $('.paddles').css({\r\n            'display': 'block'\r\n          });\r\n          $(leftPaddle).removeClass(\"hidden\");\r\n          $(gradientLeft).css({\r\n            'visibility': 'visible'\r\n          });\r\n          $(rightPaddle).removeClass(\"hidden\");\r\n          $(gradientRight).css({\r\n            'visibility': 'visible'\r\n          });\r\n          console.log('2');\r\n        } else if (menuPosition >= menuEndOffset) {\r\n          $('.paddles').css({\r\n            'display': 'block'\r\n          });\r\n          // show left paddle and hide right paddle\r\n          $(leftPaddle).removeClass(\"hidden\");\r\n          $(gradientLeft).css({\r\n            'visibility': 'visible'\r\n          });\r\n          $(rightPaddle).addClass(\"hidden\");\r\n          $(gradientRight).css({\r\n            'visibility': 'hidden'\r\n          });\r\n        }\r\n      };\r\n\r\n      // get how much have we scrolled to the left\r\n      var getMenuPosition = function () {\r\n        return $(\".eni-firstlevel-explore-menu\").scrollLeft();\r\n      };\r\n\r\n      var handleArrowClick = function (arrowScrollDirection) {\r\n        var menuPosition = 0;\r\n        var menuPartialSize = 0;\r\n        var scrollQty = 0;\r\n        var index = 0;\r\n\r\n        menuPosition = getMenuPosition();\r\n\r\n        // get how much size of menu based on each item width\r\n        for (let i = 0; i < menuItems.length - 1; i++) {\r\n          menuPartialSize += menuItems[i].clientWidth + marginItems;\r\n          if (menuPosition < menuPartialSize) {\r\n            break;\r\n          }\r\n          index++;\r\n        }\r\n\r\n        if (arrowScrollDirection === \"right\") {\r\n          if (menuItems[index].clientWidth + marginItems > menuPartialSize - menuPosition) {\r\n            // scroll right only to end of first visible item (item partial scrolled)\r\n            scrollQty = menuPartialSize - menuPosition;\r\n          } else {\r\n            // scroll right the entire size of first visible item (item not scrolled yet)\r\n            scrollQty = menuItems[index].clientWidth + marginItems;\r\n\r\n          }\r\n          return menuPosition + scrollQty;\r\n        } else {\r\n          if (menuItems[index].clientWidth + marginItems > menuPartialSize - menuPosition) {\r\n            // scroll left only to start of first visible item (item partial scrolled)\r\n            var partialItemResidualScrollQty =\r\n              menuItems[index].clientWidth + marginItems - (menuPartialSize - menuPosition);\r\n            scrollQty = partialItemResidualScrollQty;\r\n\r\n          } else {\r\n            // scroll left the entire size of first visible item (item not scrolled yet)\r\n            var previousMenuItemIndex = index > 0 ? index - 1 : index;\r\n            scrollQty = menuItems[previousMenuItemIndex].clientWidth + marginItems;\r\n\r\n          }\r\n          return menuPosition - scrollQty;\r\n        }\r\n      };\r\n\r\n      // on scroll event\r\n      $(\".eni-firstlevel-explore-menu\").on(\"scroll\", () => {\r\n        handleScrollEvent();\r\n      });\r\n\r\n      handleScrollEvent();\r\n\r\n      // left paddle click\r\n      $(rightPaddle).click(() => {\r\n        $(rightPaddle).attr(\"disabled\", true);\r\n        var scrollQty = handleArrowClick(\"right\");\r\n        $(\".eni-firstlevel-explore-menu\").animate({\r\n            scrollLeft: scrollQty\r\n            /* scrollLeft: menuInvisibleSize */\r\n          },\r\n          scrollDuration\r\n        );\r\n        $(rightPaddle).attr(\"disabled\", false);\r\n      });\r\n\r\n      // right paddle click\r\n      $(leftPaddle).click(() => {\r\n        $(leftPaddle).attr(\"disabled\", true);\r\n        var scrollQty = handleArrowClick(\"left\");\r\n        $(\".eni-firstlevel-explore-menu\").animate({\r\n            scrollLeft: scrollQty\r\n          },\r\n          scrollDuration\r\n        );\r\n        $(leftPaddle).attr(\"disabled\", false);\r\n      });\r\n    };\r\n\r\n    // check if eni-firstlevel-explore-menu-wrapper reaches his max width\r\n    var checkMenuWrapperMaxWidth = function () {\r\n      var menuWrapper = $(\".eni-firstlevel-explore-menu-wrapper\");\r\n      var menuWrapperSize = menuWrapper.outerWidth();\r\n      var menuContainerSize = $(\".eni-firstlevel-explore-menu-container\").width();\r\n\r\n      // Apply different menu width calculation based on desktop breakpoint (differnet menu type)\r\n      const wasteDifferenceMenu = 87 + 2 * 20;\r\n\r\n      var menuWrapperMaxSize = menuContainerSize - (wasteDifferenceMenu);\r\n      // console.log('menuWrapperSize ', Math.floor(menuWrapperSize));\r\n      // console.log('menuContainerSize: ', menuContainerSize);\r\n      // console.log('menuWrapperMaxSize: ', Math.floor(menuWrapperMaxSize));9\r\n      if (Math.floor(menuWrapperSize) === Math.floor(menuWrapperMaxSize)) {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    };\r\n\r\n    var hasMenuWrapperMaxWidth = false;\r\n    hasMenuWrapperMaxWidth = checkMenuWrapperMaxWidth();\r\n\r\n    if (hasMenuWrapperMaxWidth) {\r\n      console.log(hasMenuWrapperMaxWidth);\r\n\r\n      //     $(gradientRight).css({\r\n      //       'visibility': 'visible'\r\n      //     });\r\n\r\n    } else {\r\n      //   $(gradientLeft).css({\r\n      //     'visibility': 'hidden'\r\n      //   });\r\n      $(gradientRight).css({\r\n        'visibility': 'hidden'\r\n      });\r\n      console.log(hasMenuWrapperMaxWidth);\r\n      $('.paddles').css({\r\n        'display': 'none'\r\n      });\r\n    }\r\n\r\n    if (hasMenuWrapperMaxWidth && scrollToOffset) {\r\n      var menuWrapperSize = 0;\r\n      var menuSize = 0;\r\n      var menuInvisibleSize = 0;\r\n      var menuEndOffset = 0;\r\n\r\n      menuWrapperSize = getMenuWrapperSize();\r\n      menuSize = getMenuSize();\r\n\r\n      // get how much of menu is invisible\r\n      menuInvisibleSize = menuSize - menuWrapperSize;\r\n\r\n      menuEndOffset = menuInvisibleSize;\r\n\r\n      $(\".eni-firstlevel-explore-menu\").animate({\r\n          scrollLeft: menuEndOffset\r\n          /* scrollLeft: menuInvisibleSize */\r\n        },\r\n        scrollDuration\r\n      );\r\n    }\r\n\r\n    // Start managing explore menu only on mouse hover\r\n    // $(\".eni-firstlevel-explore-menu-wrapper\").hover(\r\n\r\n    //   function () {\r\n\r\n    // inFunction\r\n    //console.log('hasMenuWrapperMaxWidth: ', hasMenuWrapperMaxWidth);\r\n    if (hasMenuWrapperMaxWidth) {\r\n      handleExploreMenuNavigation();\r\n      Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(leftPaddle, _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].SLIDE_IN_UP);\r\n      Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(rightPaddle, _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].SLIDE_IN_UP);\r\n      //   $(gradientRight).css({\r\n      //     'visibility': 'visible'\r\n      //   });\r\n    } else {\r\n      $(rightPaddle).addClass(\"hidden\");\r\n      //   $(gradientRight).css({\r\n      //     'visibility': 'visible'\r\n      //   });\r\n    }\r\n    //   },\r\n    //   function () {\r\n    //     if (hasMenuWrapperMaxWidth) {\r\n    //       // outFunction\r\n    //       animateCSS(leftPaddle, ANIMATE_EFFECT.SLIDE_IN_DOWN);\r\n    //       animateCSS(rightPaddle, ANIMATE_EFFECT.SLIDE_IN_DOWN);\r\n    //       // $(gradientLeft).css({\r\n    //       //   'visibility': 'hidden'\r\n    //       // });\r\n    //       // $(gradientRight).css({\r\n    //       //   'visibility': 'hidden'\r\n    //       // });\r\n    //     }\r\n    //   }\r\n    // );\r\n  }\r\n\r\n  handleScrollToOffsetMobile() {\r\n    var menuWrapperSize = 0;\r\n    var menuSize = 0;\r\n    var menuInvisibleSize = 0;\r\n    var menuEndOffset = 0;\r\n    // duration of scroll animation\r\n    var scrollDuration = 150;\r\n\r\n    var marginItems = 16;\r\n    var menuPadding = 10;\r\n    // get menu items array\r\n    var menuItems = $(\".eni-firstlevel-explore-menu-listitem\");\r\n\r\n    var getMenuSize = function () {\r\n      var menuTotalSize = 0;\r\n      for (let i = 0; i < menuItems.length - 1; i++) {\r\n        menuTotalSize += menuItems[i].clientWidth + marginItems;\r\n      }\r\n      return menuTotalSize;\r\n    };\r\n\r\n    menuWrapperSize = $(\".eni-firstlevel-explore-menu-wrapper\").outerWidth() - menuPadding;\r\n    menuSize = getMenuSize();\r\n\r\n    // get how much of menu is invisible\r\n    menuInvisibleSize = menuSize - menuWrapperSize;\r\n\r\n    menuEndOffset = menuInvisibleSize;\r\n\r\n    $(\".eni-firstlevel-explore-menu\").animate({\r\n        scrollLeft: menuEndOffset\r\n        /* scrollLeft: menuInvisibleSize */\r\n      },\r\n      scrollDuration\r\n    );\r\n  }\r\n\r\n  handleExploreMenuScrolling(scrollToOffset) {\r\n\r\n    var checkMenuWrapperMaxWidth = function () {\r\n      var menuWrapper = $(\".eni-firstlevel-explore-menu-wrapper\");\r\n      var menuWrapperSize = menuWrapper.outerWidth();\r\n      var menuContainerSize = $(\".eni-firstlevel-explore-menu-container\").width();\r\n\r\n      // Apply different menu width calculation based on mobile breakpoint (differnet menu type)\r\n      const wasteDifferenceMenu = 25;\r\n\r\n      var menuWrapperMaxSize = menuContainerSize - (wasteDifferenceMenu);\r\n      if (Math.floor(menuWrapperSize) === Math.floor(menuWrapperMaxSize)) {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    };\r\n\r\n    if ($(window).width() >= HEADER_PROPS.EXPLORE_MENU.EXPLORE_PADDLE_NAVIGATION_BREAKPOINT) {\r\n      // Manage paddles scrolling only on screen resolution > 1024 (in combo with scss)\r\n      this.applyExploreMenuHandling(scrollToOffset);\r\n    } else if (scrollToOffset) {\r\n      const hasMenuWrapperMaxWidth = checkMenuWrapperMaxWidth();\r\n      if (hasMenuWrapperMaxWidth) {\r\n        this.handleScrollToOffsetMobile();\r\n      }\r\n    }\r\n\r\n    $(window).on(\"resize\", () => {\r\n      if ($(window).width() >= HEADER_PROPS.EXPLORE_MENU.EXPLORE_PADDLE_NAVIGATION_BREAKPOINT) {\r\n        this.applyExploreMenuHandling(scrollToOffset);\r\n      }\r\n      /*  } */\r\n    });\r\n  }\r\n\r\n  getExploreMenuCardDataAttributesObj(exploreMenuCardDataAttributes) {\r\n    if (exploreMenuCardDataAttributes) {\r\n      try {\r\n        var dataId = exploreMenuCardDataAttributes.id;\r\n        /* var dataTitle = exploreMenuCardDataAttributes.title; */\r\n        /* var dataUrl = exploreMenuCardDataAttributes.url; */\r\n\r\n        if (dataId /* && dataTitle */ /* && dataUrl */ ) {\r\n          var exploreMenuCardDataAttributesObj = {\r\n            id: dataId,\r\n            /* title: dataTitle */\r\n            /* url: encodeURIComponent(dataUrl) */\r\n          };\r\n\r\n          return exploreMenuCardDataAttributesObj;\r\n        } else {\r\n          return undefined;\r\n        }\r\n      } catch (e) {\r\n        console.error(e);\r\n      }\r\n    }\r\n  }\r\n\r\n  addExploreFirstlevelMenuItem(exploreMenuStorageItemObj) {\r\n    if (exploreMenuStorageItemObj) {\r\n      var id = exploreMenuStorageItemObj.id;\r\n      var referencedExploreMenuCard = $(HEADER_PROPS.EXPLORE_CARD.CLASS + '[data-id=\"' + id + '\"]');\r\n      if (referencedExploreMenuCard && referencedExploreMenuCard.length > 0) {\r\n        var title = $(referencedExploreMenuCard).data('title');\r\n        var link = $(referencedExploreMenuCard).find(HEADER_PROPS.EXPLORE_CARD.LINK_CLASS);\r\n        var decodedUrl = $(link).attr(\"href\");\r\n        var isActiveClass = $(referencedExploreMenuCard).hasClass('active') ? 'active' : '';\r\n      } else {\r\n        // Remove explore item to menu\r\n        this.removeExploreMenuStorageItem(exploreMenuStorageItemObj);\r\n        console.log('Error finding reference explore card with id: ' + id);\r\n        return;\r\n      }\r\n\r\n      if (\r\n        $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_ITEM_CLASS).length > 0 &&\r\n        $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_LAST_ITEM_CLASS).length > 0\r\n      ) {\r\n        // Already present dynamic items, add item after last dynamic item\r\n        $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_LAST_ITEM_CLASS).after(\r\n          '<li class=\"eni-firstlevel-explore-menu-listitem eni-firstlevel-explore-menu-listitem-dynamic eni-menu-element ' +\r\n          isActiveClass + '\"' +\r\n          ' data-id=\"' +\r\n          id +\r\n          '\"><a class=\"eni-firstlevel-explore-menu-item\" href=\"' +\r\n          decodedUrl +\r\n          '\" title=\"' +\r\n          title +\r\n          '\">' +\r\n          title +\r\n          \"</a></li>\"\r\n        );\r\n      } else if (\r\n        $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_STATIC_ITEM_CLASS).length > 0 &&\r\n        $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_STATIC_LAST_ITEM_CLASS).length > 0\r\n      ) {\r\n        // No dynamic items, add item after last static item\r\n        $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_STATIC_LAST_ITEM_CLASS).after(\r\n          '<li class=\"eni-firstlevel-explore-menu-listitem eni-firstlevel-explore-menu-listitem-dynamic eni-menu-element ' +\r\n          isActiveClass + '\"' +\r\n          'data-id=\"' +\r\n          id +\r\n          '\"><a class=\"eni-firstlevel-explore-menu-item\" href=\"' +\r\n          decodedUrl +\r\n          '\" title=\"' +\r\n          title +\r\n          '\">' +\r\n          title +\r\n          \"</a></li>\"\r\n        );\r\n      } else {\r\n        // No menu items, add item in main explore menu container before explore button visible only < $lg\r\n        $(HEADER_PROPS.EXPLORE_MENU.EXPLORE_MENU_MOBILE_BUTTON_CLASS).before(\r\n          '<li class=\"eni-firstlevel-explore-menu-listitem eni-firstlevel-explore-menu-listitem-dynamic eni-menu-element ' +\r\n          isActiveClass + '\"' +\r\n          'data-id=\"' +\r\n          id +\r\n          '\"><a class=\"eni-firstlevel-explore-menu-item\" href=\"' +\r\n          decodedUrl +\r\n          '\" title=\"' +\r\n          title +\r\n          '\">' +\r\n          title +\r\n          \"</a></li>\"\r\n        );\r\n      }\r\n    }\r\n  }\r\n\r\n  editExploreMenuItems(exploreMenuStorageItemObj, exploreMenuCards) {\r\n    if (exploreMenuStorageItemObj && exploreMenuCards && exploreMenuCards.length > 0) {\r\n      var id = exploreMenuStorageItemObj.id;\r\n      var title = exploreMenuStorageItemObj.title;\r\n      var decodedUrl = decodeURIComponent(exploreMenuStorageItemObj.url);\r\n      var exploreMenuCardToBeUpdated = $(HEADER_PROPS.EXPLORE_CARD.CLASS + '[data-id=\"' + id + '\"]');\r\n      if (exploreMenuCardToBeUpdated) {\r\n        exploreMenuCardToBeUpdated.addClass(HEADER_PROPS.EXPLORE_CARD.ADDED_CLASS);\r\n\r\n        // Update background opacity of card\r\n        if (!$(exploreMenuCardToBeUpdated).hasClass('format-card')) {\r\n          $(exploreMenuCardToBeUpdated).css(\r\n            'background-image',\r\n            $(exploreMenuCardToBeUpdated).css('background-image').replace(/0.5/g, '0.9')\r\n          );\r\n        };\r\n      }\r\n    }\r\n  }\r\n\r\n  removeExploreMenuItem(exploreMenuHtmlItemObj) {\r\n    if (exploreMenuHtmlItemObj) {}\r\n  }\r\n\r\n  addExploreMenuStorageItem(exploreMenuStorageItemObj) {\r\n    var currentStorage = _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getLocalStorage(\r\n      HEADER_PROPS.STORAGE.EXPLORE_MENU.KEY,\r\n      HEADER_PROPS.STORAGE.EXPLORE_MENU.ENCODING\r\n    );\r\n    var stringifiedStorage = \"\";\r\n\r\n    if (currentStorage && JSON.parse(currentStorage) && JSON.parse(currentStorage).length > 0) {\r\n      // Items already present in storage, concat new items\r\n      var parsedStorage = JSON.parse(currentStorage);\r\n      var updatedStorage = parsedStorage.concat(exploreMenuStorageItemObj);\r\n      stringifiedStorage = JSON.stringify(updatedStorage);\r\n    } else {\r\n      // No item in storage, so create new array\r\n      var newStorage = [];\r\n      newStorage.push(exploreMenuStorageItemObj);\r\n      stringifiedStorage = JSON.stringify(newStorage);\r\n    }\r\n\r\n    if (stringifiedStorage) {\r\n      // Items will be added to explore firstlevel menu when explore will be closed\r\n      // this.addExploreFirstlevelMenuItem(exploreMenuStorageItemObj);\r\n      _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setLocalStorage(\r\n        HEADER_PROPS.STORAGE.EXPLORE_MENU.KEY,\r\n        stringifiedStorage,\r\n        HEADER_PROPS.STORAGE.EXPLORE_MENU.ENCODING\r\n      );\r\n    }\r\n  }\r\n\r\n  removeExploreMenuStorageItem(exploreMenuStorageItemObj) {\r\n    var currentStorage = _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getLocalStorage(\r\n      HEADER_PROPS.STORAGE.EXPLORE_MENU.KEY,\r\n      HEADER_PROPS.STORAGE.EXPLORE_MENU.ENCODING\r\n    );\r\n    var stringifiedStorage = \"\";\r\n\r\n    if (\r\n      currentStorage &&\r\n      JSON.parse(currentStorage) &&\r\n      JSON.parse(currentStorage).length > 0 &&\r\n      exploreMenuStorageItemObj.id\r\n    ) {\r\n      // Items already present in storage, remove specific item\r\n      var parsedStorage = JSON.parse(currentStorage);\r\n      var removalItemId = exploreMenuStorageItemObj.id;\r\n      for (var i = 0; i < parsedStorage.length; i++) {\r\n        if (parsedStorage[i].id === removalItemId) {\r\n          parsedStorage.splice(i, 1);\r\n          break;\r\n        }\r\n      }\r\n      stringifiedStorage = JSON.stringify(parsedStorage);\r\n\r\n      if (stringifiedStorage) {\r\n        // Items will be removed from explore menu when explore will be closed\r\n        /* this.removeExploreMenuItem(exploreMenuStorageItemObj); */\r\n        _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].setLocalStorage(\r\n          HEADER_PROPS.STORAGE.EXPLORE_MENU.KEY,\r\n          stringifiedStorage,\r\n          HEADER_PROPS.STORAGE.EXPLORE_MENU.ENCODING\r\n        );\r\n      }\r\n    } else {\r\n      console.log(\"No storage for remove explore items\");\r\n    }\r\n    var stringifiedStorage = \"\";\r\n    console.log(\"Remove explore menu item from storage\");\r\n  }\r\n\r\n  updateCurrentCard(exploreMenuCardToBeUpdated, action, isOutsideExplore) {\r\n    if (action === \"add\") {\r\n\r\n      // Update background opacity of card\r\n      if (!$(exploreMenuCardToBeUpdated).hasClass('format-card')) {\r\n        $(exploreMenuCardToBeUpdated).css(\r\n          'background-image',\r\n          $(exploreMenuCardToBeUpdated).css('background-image').replace(/0.5/g, '0.9')\r\n        );\r\n      };\r\n\r\n      if (!isOutsideExplore) {\r\n        $(exploreMenuCardToBeUpdated).addClass(HEADER_PROPS.EXPLORE_CARD.ADDED_STATUS);\r\n        var afterAddedItemZoomInAction = function () {\r\n          setTimeout(function () {\r\n            var afterFadeOutAction = function () {\r\n              $(exploreMenuCardToBeUpdated).removeClass(HEADER_PROPS.EXPLORE_CARD.ADDED_STATUS);\r\n              $(exploreMenuCardToBeUpdated).addClass(HEADER_PROPS.EXPLORE_CARD.ADDED_CLASS);\r\n              Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n                $(exploreMenuCardToBeUpdated)\r\n                .children()\r\n                .children(HEADER_PROPS.EXPLORE_CARD.ADD_REMOVE_BTN_CLASS)[0],\r\n                _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_IN\r\n              );\r\n              Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n                $(exploreMenuCardToBeUpdated)\r\n                .children()\r\n                .children(HEADER_PROPS.EXPLORE_CARD.LINK_CLASS)[0],\r\n                _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_IN\r\n              );\r\n              Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n                $(exploreMenuCardToBeUpdated)\r\n                .children()\r\n                .children(\".icon-card\")[0],\r\n                _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_IN\r\n              );\r\n            };\r\n            Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n              $(exploreMenuCardToBeUpdated)\r\n              .children()\r\n              .children(\".icon-added-to-menu\")[0],\r\n              _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_OUT\r\n            );\r\n            Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n              $(exploreMenuCardToBeUpdated)\r\n              .children()\r\n              .children(\".added-to-menu-message\")[0],\r\n              _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_OUT,\r\n              afterFadeOutAction\r\n            );\r\n            /* $(exploreMenuCardToBeUpdated).removeClass(HEADER_PROPS.EXPLORE_CARD.ADDED_STATUS);\r\n            $(exploreMenuCardToBeUpdated).addClass(HEADER_PROPS.EXPLORE_CARD.ADDED_CLASS); */\r\n          }, 1000);\r\n        };\r\n\r\n        Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])($(exploreMenuCardToBeUpdated)[0], _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].ZOOM_IN, afterAddedItemZoomInAction);\r\n      } else {\r\n        // Add action without animation and intermediate states (Add/remove buttons action)\r\n        $(exploreMenuCardToBeUpdated).addClass(HEADER_PROPS.EXPLORE_CARD.ADDED_CLASS);\r\n      }\r\n    } else if (action === \"remove\") {\r\n\r\n      // Update background opacity of card\r\n      if (!$(exploreMenuCardToBeUpdated).hasClass('format-card')) {\r\n        $(exploreMenuCardToBeUpdated).css(\r\n          'background-image',\r\n          $(exploreMenuCardToBeUpdated).css('background-image').replace(/0.9/g, '0.5')\r\n        );\r\n      };\r\n\r\n      if (!isOutsideExplore) {\r\n        $(exploreMenuCardToBeUpdated).addClass(HEADER_PROPS.EXPLORE_CARD.REMOVED_STATUS);\r\n        var afterRemovedItemZoomInAction = function () {\r\n          setTimeout(function () {\r\n            var afterFadeOutAction = function () {\r\n              $(exploreMenuCardToBeUpdated).removeClass(\r\n                `${HEADER_PROPS.EXPLORE_CARD.REMOVED_STATUS} ${HEADER_PROPS.EXPLORE_CARD.ADDED_CLASS}`);\r\n              Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n                $(exploreMenuCardToBeUpdated)\r\n                .children()\r\n                .children(HEADER_PROPS.EXPLORE_CARD.ADD_REMOVE_BTN_CLASS)[0],\r\n                _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_IN\r\n              );\r\n              Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n                $(exploreMenuCardToBeUpdated)\r\n                .children()\r\n                .children(HEADER_PROPS.EXPLORE_CARD.LINK_CLASS)[0],\r\n                _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_IN\r\n              );\r\n              Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n                $(exploreMenuCardToBeUpdated)\r\n                .children()\r\n                .children(\".icon-card\")[0],\r\n                _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_IN\r\n              );\r\n            };\r\n            Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n              $(exploreMenuCardToBeUpdated)\r\n              .children()\r\n              .children(\".icon-added-to-menu\")[0],\r\n              _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_OUT\r\n            );\r\n            Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])(\r\n              $(exploreMenuCardToBeUpdated)\r\n              .children()\r\n              .children(\".removed-from-menu-message\")[0],\r\n              _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].FADE_OUT,\r\n              afterFadeOutAction\r\n            );\r\n          }, 1000);\r\n        };\r\n\r\n        Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])($(exploreMenuCardToBeUpdated)[0], _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].ZOOM_IN, afterRemovedItemZoomInAction);\r\n      } else {\r\n        // Remove action without animation and intermediate states (Add/remove buttons action)\r\n        $(exploreMenuCardToBeUpdated).removeClass(HEADER_PROPS.EXPLORE_CARD.ADDED_CLASS);\r\n      }\r\n    } else {\r\n      console.log(\"Clicked explore card has unvalid action\");\r\n    };\r\n  };\r\n\r\n  addRemoveExploreMenuCard(exploreMenuCard, dataInfo, isOutsideExplore) {\r\n    var action = $(exploreMenuCard).hasClass(HEADER_PROPS.EXPLORE_CARD.ADDED_CLASS) ?\r\n      \"remove\" :\r\n      \"add\";\r\n\r\n    // Get title from data attribute\r\n    /* dataInfo.title = $(exploreMenuCard).attr('title'); */\r\n\r\n    // Get url from href in card\r\n    /* dataInfo.url = encodeURIComponent(\r\n      $(exploreMenuCard)\r\n      .find(HEADER_PROPS.EXPLORE_CARD.LINK_CLASS)\r\n      .attr(\"href\")\r\n    ); */\r\n\r\n    if (action && action === \"add\") {\r\n      // Add explore item to menu\r\n      this.addExploreMenuStorageItem(dataInfo);\r\n      this.updateCurrentCard(exploreMenuCard, action, isOutsideExplore);\r\n    } else if (action && action === \"remove\") {\r\n      // Remove explore item to menu\r\n      this.removeExploreMenuStorageItem(dataInfo);\r\n      this.updateCurrentCard(exploreMenuCard, action, isOutsideExplore);\r\n      // TODO: update current item class (added/ removed)\r\n    }\r\n  };\r\n\r\n  mapExploreMenuCardsAction() {\r\n    try {\r\n      var exploreMenuCards = $(HEADER_PROPS.EXPLORE_CARD.CLASS);\r\n\r\n      if (exploreMenuCards && exploreMenuCards.length > 0) {\r\n        for (let i = 0; i < exploreMenuCards.length; i++) {\r\n          var exploreMenuCardLink = $(exploreMenuCards[i]).find(HEADER_PROPS.EXPLORE_CARD.LINK_CLASS);\r\n          var exploreMenuCardAddRemoveButton = $(exploreMenuCards[i])\r\n            .children()\r\n            .children(\".btn.add-remove-btn\");\r\n\r\n          // Map active card click action\r\n          if (exploreMenuCardLink && $(exploreMenuCards[i]).hasClass('active')) {\r\n            exploreMenuCardLink.on('click', (e) => {\r\n              e.preventDefault();\r\n              this.hideExploreMenu();\r\n            });\r\n          }\r\n\r\n          // Map add/remove button click action\r\n          if (exploreMenuCardAddRemoveButton) {\r\n            /* var addExploreMenuStorageItem = this.addExploreMenuStorageItem(); */\r\n            $(exploreMenuCardAddRemoveButton).bind(\r\n              \"click\", {\r\n                exploreMenuCard: exploreMenuCards[i],\r\n                // Check of presence of added class moved into click function because it remain unmodified after class changes of card\r\n                // action: $(exploreMenuCards[i]).hasClass(HEADER_PROPS.EXPLORE_CARD.ADDED_CLASS) ? 'remove' : 'add',\r\n                dataInfo: this.getExploreMenuCardDataAttributesObj($(exploreMenuCards[i]).data())\r\n              },\r\n              event => {\r\n                if (event.data.dataInfo && event.data.exploreMenuCard) {\r\n                  var isOutsideExplore = false;\r\n                  this.addRemoveExploreMenuCard(event.data.exploreMenuCard, event.data.dataInfo,\r\n                    isOutsideExplore);\r\n                } else {\r\n                  console.log(\"Clicked explore card has unvalid data-attribute\");\r\n                }\r\n              }\r\n            );\r\n          }\r\n        }\r\n      }\r\n    } catch (e) {\r\n      console.error(e);\r\n    }\r\n  }\r\n\r\n  showExploreMenu() {\r\n    try {\r\n      $(this.exploreMenu).show();\r\n      $(this.body).addClass(`${HEADER_PROPS.CLASSES.BODY_UNSCROLLABLE_CLASS}`);\r\n      Object(_common_animate__WEBPACK_IMPORTED_MODULE_1__[\"animateCSS\"])($(HEADER_PROPS.EXPLORE_MENU.EXPLORE_TITLE)[0], _common_animate__WEBPACK_IMPORTED_MODULE_1__[\"ANIMATE_EFFECT\"].BOUNCE_IN);\r\n      this.mapExploreMenuCardsAction();\r\n    } catch (e) {\r\n      console.error(e);\r\n    }\r\n  }\r\n\r\n  hideExploreMenu() {\r\n    try {\r\n      $(this.body).removeClass(`${HEADER_PROPS.CLASSES.BODY_UNSCROLLABLE_CLASS}`);\r\n      $(this.exploreMenu).hide();\r\n    } catch (e) {\r\n      console.error(e);\r\n    }\r\n  }\r\n\r\n  showExploreTabTopicContent() {\r\n    this.exploreMenuTopicTabContent.removeClass(\"hidden\");\r\n    this.exploreMenuFormatTabContent.addClass(\"hidden\");\r\n  }\r\n\r\n  showExploreTabFormatContent() {\r\n    this.exploreMenuTopicTabContent.addClass(\"hidden\");\r\n    this.exploreMenuFormatTabContent.removeClass(\"hidden\");\r\n  }\r\n\r\n  handleScroll() {\r\n    // UpScroll variables\r\n    let lastScrollDown,\r\n      lastScrollTop,\r\n      scrollTopIncrement = 0;\r\n    let scrollTopBreakpoint = 10;\r\n\r\n\r\n\r\n    var isMobile = $(window).outerWidth() < HEADER_PROPS.HEADER_MAIN.MOBILE_HEADER_BREAKPOINT;\r\n\r\n    $(window).on(\"resize\", () => {\r\n      isMobile = $(window).outerWidth() >= HEADER_PROPS.HEADER_MAIN.MOBILE_HEADER_BREAKPOINT ? false : true;\r\n    });\r\n\r\n    var onScrollLeftMobile = () => {\r\n      var getMenuPosition = () => {\r\n        return $(\".eni-firstlevel-explore-menu\").scrollLeft();\r\n      };\r\n      var menuPos = 0;\r\n      //console.log(menuPos);\r\n      var gradientLeft = $('.eni-firstlevel-explore-menu-wrapper-shadow-left');\r\n      var gradientRight = $('.eni-firstlevel-explore-menu-wrapper-shadow-right');\r\n      $(\".eni-firstlevel-explore-menu\").on(\"scroll\", () => {\r\n        menuPos = getMenuPosition();\r\n        //console.log(menuPos);\r\n        if (isMobile && menuPos == 0) {\r\n          $(gradientLeft).css({\r\n            'visibility': 'hidden'\r\n          });\r\n        } else if (isMobile && menuPos > 0) {\r\n          $(gradientLeft).css({\r\n            'visibility': 'visible'\r\n          });\r\n        }\r\n      });\r\n    };\r\n\r\n    onScrollLeftMobile();\r\n\r\n\r\n\r\n\r\n\r\n\r\n    document.addEventListener(\"scroll\", () => {\r\n      let isHomePage = $(`${HEADER_PROPS.CLASSES.MAIN_CONTAINER_CLASS}`).hasClass(\r\n        HEADER_PROPS.CLASSES.HOME_PAGE_CONTAINER_CLASS\r\n      );\r\n      let isSearchPage = $(`${HEADER_PROPS.CLASSES.MAIN_CONTAINER_CLASS}`).hasClass(\r\n        HEADER_PROPS.CLASSES.SEARCH_PAGE_CONTAINER_CLASS\r\n      );\r\n\r\n      /* custom siti esteri*/\r\n      if($('body').hasClass('eni-light-rounded')){\r\n        $('.eni-searchbar-container').removeClass('open');\r\n        $('body').removeClass('open-search-bar');\r\n        $('.search-open-link').removeClass('active'); \r\n      }\r\n      /* fine custom*/\r\n      try {\r\n        let newScroll = window.scrollY || window\r\n          .pageYOffset; // window.scrollY not available in IE (use pageYOffset for IE9+)\r\n        let scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n        // console.log('goingUp scrollTop > lastScrollTop', scrollTop, lastScrollTop);\r\n        if (scrollTop > lastScrollTop) {\r\n          // console.log('goingUp false');\r\n          $('.eni-header').removeClass('goingUp');\r\n        } else {\r\n          // console.log('goingUp true');\r\n          $('.eni-header').addClass('goingUp');\r\n        }\r\n\r\n        !isMobile\r\n          ?\r\n          isHomePage ?\r\n          this.handleHomeScroll(newScroll) :\r\n          isSearchPage ? this.handleSearchScroll(newScroll) & this.handleInternalScroll(newScroll) :\r\n          this.handleInternalScroll(newScroll) :\r\n          isHomePage ?\r\n          this.handleHomeScrollMobile(newScroll) :\r\n          isSearchPage ? this.handleInternalScrollMobile(newScroll) :\r\n          this.handleInternalScrollMobile(newScroll);\r\n\r\n        // console.log('scrollTop > lastScrollTop', scrollTop, lastScrollTop);\r\n        if (scrollTop > lastScrollTop) {\r\n          // DownScroll behaviour\r\n\r\n          scrollTopIncrement = 0;\r\n          lastScrollDown = scrollTop;\r\n        } else {\r\n          // UpScroll Handling - Start\r\n\r\n          if ( isMobile || (!$('body').hasClass('eni-rounded') && !$('body').hasClass('eni-light-rounded'))){\r\n\r\n\r\n            if (isMobile && newScroll > 127) {\r\n              // Mobile UpScroll\r\n\r\n              this.manageHeaderVisibility(\"mobile-upscroll\");\r\n            } else {\r\n              // Desktop UpScroll\r\n              scrollTopIncrement = lastScrollDown === 0 ? 0 : lastScrollDown - scrollTop;\r\n              if (\r\n                scrollTopIncrement >= scrollTopBreakpoint &&\r\n                newScroll > (isHomePage ? 270 : 70) + HEADER_PROPS.HEADER_MAIN.PRE_HEADER_DESKTOP_HEIGHT\r\n              ) {\r\n                isHomePage\r\n                  ?\r\n                  this.manageHeaderVisibility(\"light-full\") :\r\n                  this.manageHeaderVisibility(\"light-full-internal\");\r\n              }\r\n            }\r\n          }\r\n        }\r\n        lastScrollTop = scrollTop <= 0 ? 0 : scrollTop; // For Mobile or negative scrolling\r\n        // UpScroll Handling - End\r\n      } catch (e) {\r\n        console.error(e);\r\n      }\r\n    });\r\n  }\r\n\r\n  handleHomeScroll(newScroll) {\r\n\r\n    if ( !$('body').hasClass('eni-rounded') && !$('body').hasClass('eni-light-rounded')){\r\n      if (newScroll < 70) {\r\n        this.manageHeaderVisibility(\"default\");\r\n      }\r\n      if (newScroll >= 70 && newScroll < 270) {\r\n        this.manageHeaderVisibility(\"light-full\");\r\n      }\r\n      if (newScroll >= 270) {\r\n        this.manageHeaderVisibility(\"light-partial\");\r\n      }\r\n    } else {\r\n      if($('body').hasClass('eni-light-rounded')){\r\n        if (newScroll < 70) {\r\n          this.manageHeaderVisibility(\"default\");\r\n        }\r\n        if (newScroll >= 70 && newScroll < 600) {\r\n          this.manageHeaderVisibility(\"light-full\");\r\n        }\r\n      }\r\n      else{\r\n        //inside eni.com new search\r\n        if ( newScroll < 70) {\r\n          this.manageHeaderVisibility(\"default\");\r\n        }\r\n        if (newScroll >= 70 && newScroll < 600) {\r\n          this.manageHeaderVisibility(\"light-full\");\r\n        }\r\n        if (newScroll >= 600) {\r\n          this.manageHeaderVisibility(\"light-partial\");\r\n        }\r\n      }\r\n    }\r\n\r\n  }\r\n  \r\n  handleInternalScroll(newScroll) {\r\n    if ( !$('body').hasClass('eni-rounded') && !$('body').hasClass('eni-light-rounded') ){\r\n      if ( newScroll < 70) {\r\n        this.manageHeaderVisibility(\"default-internal\");\r\n      }\r\n      if (newScroll >= 70) {\r\n        this.manageHeaderVisibility(\"light-full-internal\");\r\n      }\r\n    } else { \r\n      if($('body').hasClass('eni-light-rounded')){\r\n        if($('body').hasClass('eni-light-rounded')){\r\n          if (newScroll < 70) {\r\n            this.manageHeaderVisibility(\"default-internal\");\r\n          }\r\n          if (newScroll >= 70 && newScroll < 600) {\r\n            this.manageHeaderVisibility(\"light-full-internal\");\r\n          }\r\n        }\r\n      }\r\n      else{ \r\n        if ( newScroll < 70) {\r\n          this.manageHeaderVisibility(\"default-internal\");\r\n        }\r\n        if (newScroll >= 70 && newScroll < 270) {\r\n          this.manageHeaderVisibility(\"light-full-internal\");\r\n        }\r\n        if (newScroll >= 600) {\r\n          this.manageHeaderVisibility(\"light-partial-internal\");\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  handleHomeScrollMobile(newScroll) {\r\n    if (newScroll == 0) {\r\n      this.manageHeaderVisibility(\"default\");\r\n    }\r\n    if (newScroll > 127) {\r\n      this.manageHeaderVisibility(\"mobile-downscroll\");\r\n    }\r\n  }\r\n\r\n  handleInternalScrollMobile(newScroll) {\r\n    if (newScroll == 0) {\r\n      this.manageHeaderVisibility(\"default-internal\");\r\n\r\n    }\r\n    if (newScroll > 127) {\r\n      this.manageHeaderVisibility(\"mobile-downscroll\");\r\n    }\r\n  }\r\n\r\n  handleSearchScroll(newScroll) {\r\n\r\n    let headerSearchBarContainer = $(`${HEADER_PROPS.CLASSES.SEARCH_BAR_CONTAINER_CLASS}`);\r\n    let headerSearchInput = $(`${HEADER_PROPS.CLASSES.SEARCH_INPUT_CLASS}`);\r\n    let headerSearchIcon = $(`${HEADER_PROPS.CLASSES.SEARCH_INPUT_ICON_CLASS}`);\r\n    let mainWrapper = $(`${HEADER_PROPS.CLASSES.MAIN_WRAPPER_CLASS}`);\r\n\r\n    if (newScroll >= 0 && newScroll < 70) {\r\n\r\n      // Set height of eni-searchbar-container from 285 to minimum 115px\r\n      // Set font size of eni-searchbar-header-input from 36px to minimum 18px\r\n      // Set font size of eni-searchbar-header-icon from 24px to minimum 20px\r\n      // Set margin-top of main-wrapper from 423px to minimum 330px\r\n\r\n\r\n      let searchBarContainerHeight = HEADER_PROPS.HEADER_SEARCH.MINIMUM_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT -\r\n        (newScroll * HEADER_PROPS.HEADER_SEARCH.INDEX_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT);\r\n      let headerInputFontSize = HEADER_PROPS.HEADER_SEARCH.MINIMUM_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE -\r\n        (newScroll * HEADER_PROPS.HEADER_SEARCH.INDEX_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE);\r\n      let headerIconFontSize = HEADER_PROPS.HEADER_SEARCH.MINIMUM_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE -\r\n        (newScroll * HEADER_PROPS.HEADER_SEARCH.INDEX_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE);\r\n      let mainWrapperMarginTop = HEADER_PROPS.HEADER_SEARCH.MINIMUM_DESKTOP_MAIN_WRAPPER_MARGIN_TOP -\r\n        (newScroll * HEADER_PROPS.HEADER_SEARCH.INDEX_DESKTOP_MAIN_WRAPPER_MARGIN_TOP);\r\n\r\n      if (searchBarContainerHeight && headerInputFontSize && headerIconFontSize) {\r\n        try {\r\n          headerSearchBarContainer.css('height', searchBarContainerHeight.toFixed(2) + 'px');\r\n          headerSearchInput.css('font-size', headerInputFontSize.toFixed(2) + 'px');\r\n          headerSearchIcon.css('font-size', headerIconFontSize.toFixed(2) + 'px');\r\n          mainWrapper.css('margin-top', mainWrapperMarginTop.toFixed(2) + 'px');\r\n        } catch (error) {\r\n          console.log(error);\r\n        }\r\n      }\r\n    } else {\r\n      if (headerSearchBarContainer.css('height') !== HEADER_PROPS.HEADER_SEARCH\r\n        .MAXIMUM_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT + 'px') {\r\n        headerSearchBarContainer.css('height', HEADER_PROPS.HEADER_SEARCH\r\n          .MAXIMUM_DESKTOP_SEARCHBAR_CONTAINER_HEIGHT + 'px');\r\n      }\r\n      if (headerSearchInput.css('font-size') !== HEADER_PROPS.HEADER_SEARCH\r\n        .MAXIMUM_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE + 'px') {\r\n        headerSearchInput.css('font-size', HEADER_PROPS.HEADER_SEARCH\r\n          .MAXIMUM_DESKTOP_SEARCHBAR_HEADER_INPUT_FONT_SIZE + 'px');\r\n      }\r\n      if (headerSearchIcon.css('font-size') !== HEADER_PROPS.HEADER_SEARCH\r\n        .MAXIMUM_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE + 'px') {\r\n        headerSearchIcon.css('font-size', HEADER_PROPS.HEADER_SEARCH\r\n          .MAXIMUM_DESKTOP_SEARCHBAR_HEADER_ICON_FONT_SIZE + 'px');\r\n      }\r\n      if (mainWrapper.css('margin-top') !==\r\n        HEADER_PROPS.HEADER_SEARCH.MAXIMUM_DESKTOP_MAIN_WRAPPER_MARGIN_TOP + 'px') {\r\n        mainWrapper.css('margin-top', HEADER_PROPS.HEADER_SEARCH.MAXIMUM_DESKTOP_MAIN_WRAPPER_MARGIN_TOP + 'px');\r\n      }\r\n    }\r\n  }\r\n\r\n  manageHeaderVisibility(headerType) {\r\n    try {\r\n      let mainHeader = $(HEADER_PROPS.HEADER_MAIN.MAIN_HEADER_CLASS)[0];\r\n      let preHeader = $(HEADER_PROPS.HEADER_MAIN.PRE_HEADER_ID);\r\n      let alwaysVisibleHeader = $(HEADER_PROPS.HEADER_MAIN.SEARCH_BAR_ID);\r\n      let languageDropdown = $(HEADER_PROPS.HEADER_MAIN.LANGUAGE_DROPDOWN_BUTTON_CLASS)[0];\r\n\r\n      // Check if language dropdown is opened, so close it\r\n      if ($(languageDropdown).hasClass(\"show\")) {\r\n        this.toggleLanguageDropdown(languageDropdown);\r\n      }\r\n\r\n      if (mainHeader && preHeader && alwaysVisibleHeader) {\r\n        switch (headerType) {\r\n          case \"default\":\r\n            // Header Default\r\n            $(mainHeader).removeClass(\r\n              `${HEADER_PROPS.CLASSES.HEADER_LIGHT_CLASS} ${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_CLASS}\r\n              ${HEADER_PROPS.CLASSES.STICKY_CLASS} ${HEADER_PROPS.CLASSES.SLIDE_IN_DOWN_CLASS}`\r\n            );\r\n\r\n            // Check if mobile default-internal class has to be removed\r\n            if ($(mainHeader).hasClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_MOBILE_CLASS}`)) {\r\n              $(mainHeader).removeClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_MOBILE_CLASS}`);\r\n            }\r\n\r\n            break;\r\n          case \"default-internal\":\r\n            // Header Default\r\n            $(mainHeader).removeClass(\r\n              `${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_CLASS}\r\n              ${HEADER_PROPS.CLASSES.STICKY_CLASS} ${HEADER_PROPS.CLASSES.SLIDE_IN_DOWN_CLASS}`\r\n            );\r\n\r\n            // Check if mobile default-internal class has to be removed\r\n            if ($(mainHeader).hasClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_MOBILE_CLASS}`)) {\r\n              $(mainHeader).removeClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_MOBILE_CLASS}`);\r\n            }\r\n\r\n            break;\r\n          case \"light-full\":\r\n            $(mainHeader).addClass(\r\n              `${HEADER_PROPS.CLASSES.HEADER_LIGHT_CLASS} ${HEADER_PROPS.CLASSES.STICKY_CLASS}`\r\n            );\r\n            if ( !$('body').hasClass('eni-rounded') && !$('body').hasClass('eni-light-rounded') ){\r\n              $(mainHeader).addClass(\r\n                `${HEADER_PROPS.CLASSES.SLIDE_IN_DOWN_CLASS}`\r\n              );\r\n            }\r\n            $(mainHeader).removeClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_CLASS}`);\r\n\r\n            /* if ($(languageDropdown).hasClass(\"show\")) {\r\n              this.toggleLanguageDropdown(languageDropdown);\r\n            } */\r\n            break;\r\n          case \"light-full-internal\":\r\n            $(mainHeader).addClass(\r\n              `${HEADER_PROPS.CLASSES.HEADER_LIGHT_CLASS} ${HEADER_PROPS.CLASSES.STICKY_CLASS}`);\r\n            // ${HEADER_PROPS.CLASSES.SLIDE_IN_DOWN_CLASS} not present because menu is already fixed\r\n            $(mainHeader).removeClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_CLASS}`);\r\n\r\n            /* if ($(languageDropdown).hasClass(\"show\")) {\r\n              this.toggleLanguageDropdown(languageDropdown);\r\n            } */\r\n            break;\r\n          case \"light-partial\":\r\n            $(mainHeader).addClass(\r\n              `${HEADER_PROPS.CLASSES.HEADER_LIGHT_CLASS} ${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_CLASS}\r\n              ${HEADER_PROPS.CLASSES.STICKY_CLASS} fab_active`\r\n            );\r\n            if ( !$('body').hasClass('eni-rounded') && !$('body').hasClass('eni-light-rounded') ){\r\n              $(mainHeader).addClass(\r\n                `${HEADER_PROPS.CLASSES.SLIDE_IN_DOWN_CLASS}`\r\n              );\r\n            }\r\n\r\n            /* if ($(languageDropdown).hasClass(\"show\")) {\r\n              this.toggleLanguageDropdown(languageDropdown);\r\n            } */\r\n            break;\r\n          case \"light-partial-internal\":\r\n            $(mainHeader).addClass(\r\n              `${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_CLASS}\r\n              ${HEADER_PROPS.CLASSES.STICKY_CLASS} fab_active`\r\n            );\r\n\r\n            // ${HEADER_PROPS.CLASSES.SLIDE_IN_DOWN_CLASS} not present because menu is already fixed,\r\n            // so applying animation it will bounce in a wrong visual manner\r\n\r\n            // code block\r\n            break;\r\n          case \"mobile-downscroll\":\r\n            if ( !$('body').hasClass('eni-rounded') && !$('body').hasClass('eni-light-rounded') ){\r\n              if ($(mainHeader).hasClass(`${HEADER_PROPS.CLASSES.STICKY_CLASS}`)) {\r\n                const ourChannelSection = $('section.our-channel-panel');\r\n                if ((ourChannelSection && !$(ourChannelSection).hasClass('visible')) || !ourChannelSection) {\r\n                  $(mainHeader).addClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_MOBILE_CLASS}`);\r\n                }\r\n              } \r\n            } else {\r\n              const ourChannelSection = $('section.our-channel-panel');\r\n                if ((ourChannelSection && !$(ourChannelSection).hasClass('visible')) || !ourChannelSection) {\r\n                  $(mainHeader).addClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_MOBILE_CLASS}`);\r\n                }\r\n              \r\n            }\r\n            break;\r\n          case \"mobile-upscroll\":\r\n            this.manageHeaderVisibility(\"light-partial\");\r\n            $(mainHeader).removeClass(`${HEADER_PROPS.CLASSES.HEADER_LIGHT_PARTIAL_MOBILE_CLASS}`);\r\n            // code block\r\n            if ($('section.our-channel-panel').hasClass('visible')){\r\n              //inserisco un transition più alto\r\n              $('section.our-channel-panel').css('transition','all ease-in-out 1.3s');\r\n              const mainWrapper = $(`${HEADER_PROPS.CLASSES.MAIN_WRAPPER_CLASS}`);\r\n\r\n              // Restore margin at main wrapper removing height of our channel\r\n              $(mainWrapper).css('margin-top', '');\r\n\r\n              const ourChannelSection = $('section.our-channel-panel');\r\n              $(ourChannelSection).removeClass('visible');\r\n\r\n              // Remove active from menu items\r\n              const ourChannelBtn = $(HEADER_PROPS.HEADER_MAIN.OUR_CHANNEL_BTN_ID);\r\n              $(ourChannelBtn).removeClass('active');\r\n\r\n              const ourChannelMobileBtn = $(HEADER_PROPS.HEADER_MAIN.MOBILE_OUR_CHANNEL_BTN_ID);\r\n              $(ourChannelMobileBtn).removeClass('active');\r\n\r\n              $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n              \r\n            }\r\n            break;\r\n          default:\r\n            break;\r\n        }\r\n      }\r\n    } catch (error) {\r\n      console.log(error);\r\n    }\r\n  }\r\n\r\n  toggleLanguageDropdown(languageDropdown) {\r\n    $(languageDropdown).dropdown(\"toggle\");\r\n  }\r\n\r\n  showOurChannel(ourChannelWithDataBtn, ourChannelSection, ourChannelMobileBtn, ourChannelBtn) {\r\n    $(ourChannelSection).css('transition','all ease-in-out .8s');\r\n    const url = $(ourChannelWithDataBtn).data('url');\r\n    const target = $(ourChannelWithDataBtn).data('target');\r\n    const isMobile = $(window).outerWidth() < HEADER_PROPS.HEADER_MAIN.MOBILE_HEADER_BREAKPOINT;\r\n\r\n    // Check if anchor has data-URL and data-target. If yes open url, if not open panel\r\n    if (url && url.length > 0) {\r\n      window.open(url, target);\r\n    } else {\r\n      const mainWrapper = $(`${HEADER_PROPS.CLASSES.MAIN_WRAPPER_CLASS}`);\r\n      const mainWrapperActualMarginTop = parseInt($(mainWrapper).css('margin-top'), 10);\r\n\r\n      // Apply margin at main wrapper adding height of our channel\r\n      if ($(mainWrapper).css('transition') && $(mainWrapper).css('transition') !== 'all ease-in-out 0.8s') {\r\n        $(mainWrapper).css('transition', 'all ease-in-out 0.8s');\r\n      }\r\n      $(mainWrapper).css('margin-top', mainWrapperActualMarginTop + (isMobile ? 640 : 397) + 'px');\r\n\r\n      $(ourChannelSection).addClass('visible');\r\n\r\n      // Make menu items active\r\n      $(ourChannelBtn).addClass('active');\r\n      $(ourChannelMobileBtn).addClass('active');\r\n\r\n    }\r\n  };\r\n\r\n  hideOurChannel(ourChannelSection, ourChannelMobileBtn, ourChannelBtn) {\r\n    const mainWrapper = $(`${HEADER_PROPS.CLASSES.MAIN_WRAPPER_CLASS}`);\r\n\r\n    // Restore margin at main wrapper removing height of our channel\r\n    $(mainWrapper).css('margin-top', '');\r\n    $(ourChannelSection).removeClass('visible');\r\n\r\n    // Remove active from menu items\r\n    $(ourChannelBtn).removeClass('active');\r\n    $(ourChannelMobileBtn).removeClass('active');\r\n  };\r\n\r\n  handlePreHeaderButtons() {\r\n    try {\r\n      const ourChannelMobileBtn = $(HEADER_PROPS.HEADER_MAIN.MOBILE_OUR_CHANNEL_BTN_ID);\r\n      const ourChannelBtn = $(HEADER_PROPS.HEADER_MAIN.OUR_CHANNEL_BTN_ID);\r\n      const ourChannelCloseBtn = $(HEADER_PROPS.HEADER_MAIN.OUR_CHANNEL_CLOSE_BTN_ID);\r\n      const ourChannelSection = $('section.our-channel-panel');\r\n\r\n      if (ourChannelBtn) {\r\n        ourChannelBtn.on(\"click\", (e) => {\r\n          e.preventDefault();\r\n          const ourChannelBtnAnchor = $(e.currentTarget).children('.our-channel-btn-anchor');\r\n\r\n          if (!$(ourChannelSection).hasClass('visible')) {\r\n            this.showOurChannel(ourChannelBtnAnchor, ourChannelSection, ourChannelMobileBtn, ourChannelBtn);\r\n          }\r\n        });\r\n      }\r\n      if (ourChannelMobileBtn) {\r\n        ourChannelMobileBtn.on(\"click\", (e) => {\r\n          e.preventDefault();\r\n          if (!$(ourChannelSection).hasClass('visible')) {\r\n            const ourChannelBtnAnchor = $(e.currentTarget);\r\n            this.showOurChannel(ourChannelBtnAnchor, ourChannelSection, ourChannelMobileBtn, ourChannelBtn);\r\n          }\r\n        });\r\n      }\r\n\r\n      if (ourChannelCloseBtn) {\r\n        ourChannelCloseBtn.on(\"click\", (e) => {\r\n          this.hideOurChannel(ourChannelSection, ourChannelMobileBtn, ourChannelBtn);\r\n        });\r\n      }\r\n\r\n      $(window).on(\"resize\", () => {\r\n        if (window.innerWidth > 768){\r\n                if ($(ourChannelSection).hasClass('visible')) {\r\n                  this.hideOurChannel(ourChannelSection, ourChannelMobileBtn, ourChannelBtn);\r\n                }\r\n        }\r\n      });\r\n\r\n    } catch (error) {}\r\n\r\n  }\r\n\r\n  handleContainerClass() {\r\n    try {\r\n      let mainHeader = $(HEADER_PROPS.HEADER_MAIN.MAIN_HEADER_CLASS)[0];\r\n      if (mainHeader) {\r\n        let mainContainer = $(`${HEADER_PROPS.CLASSES.MAIN_CONTAINER_CLASS}`);\r\n        if ($(mainHeader).hasClass('header-default') &&\r\n          $(mainHeader).hasClass('header-home') && $(mainContainer)) {\r\n          $(mainContainer).addClass('home-page');\r\n        }\r\n        /* else if ($(mainHeader).hasClass('header-light header-internal')) {\r\n                 // Do not add any class\r\n               }  */\r\n        else if ($(mainHeader).hasClass('header-light') &&\r\n          $(mainHeader).hasClass('header-search') && $(mainContainer)) {\r\n          $(mainContainer).addClass('search-page');\r\n        } else if ($(mainHeader).hasClass('header-light') &&\r\n          $(mainHeader).hasClass('header-detail') && $(mainContainer)) {\r\n          $(mainContainer).addClass('detail-page');\r\n        }\r\n\r\n        /* Check rich text in header */\r\n        if ($(mainHeader).hasClass('header-rich-text') && $(mainContainer)) {\r\n          $(mainContainer).addClass('rich-text-page');\r\n        }\r\n      }\r\n    } catch (error) {}\r\n  }\r\n\r\n  handleMobileModal() {\r\n\r\n    $(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_ID}`).on(\"shown.bs.modal\", function () {\r\n      $(window).scrollTo(0, 0);\r\n      $('#mobileSearchModal').removeClass(modalClassToAssign);\r\n    });\r\n\r\n    let modalClassToAssign = 'mobile-modal-vocal-search';\r\n    let vocalSearchHeaderButton = $(`${HEADER_PROPS.CLASSES.VOCAL_SEARCH_HEADER_BUTTON_CLASS}`);\r\n    let vocalSearchModalButton = $(`${HEADER_PROPS.CLASSES.VOCAL_SEARCH_MODAL_BUTTON_CLASS}`);\r\n    let vocalSearchModalAbortButton = $(`${HEADER_PROPS.CLASSES.VOCAL_SEARCH_MODAL_ABORT_SEARCH_BUTTON_CLASS}`);\r\n\r\n    $(vocalSearchHeaderButton).click(() => {\r\n\r\n      // $('#mobileSearchModal').addClass('ffjewiofhew');\r\n      // Open search modal, start vocal search and show loading\r\n      $(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_ID}`).modal('show');\r\n      this.showVocalSearchLoading();\r\n    });\r\n\r\n    $(vocalSearchModalButton).click(() => {\r\n      $('#mobileSearchModal').addClass(modalClassToAssign);\r\n      // Start vocal search and show loading\r\n      this.showVocalSearchLoading();\r\n    });\r\n\r\n    $(vocalSearchModalAbortButton).click(() => {\r\n      // Abort vocal search and close modal\r\n      $(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_ID}`).modal('hide');\r\n      this.hideVocalSearchLoading();\r\n    });\r\n\r\n  }\r\n\r\n  showVocalSearchLoading() {\r\n    $(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_ID}`)\r\n      .find(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_VOCAL_SEARCH_LOADING_CLASS}`).show();\r\n    $(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_ID}`)\r\n      .find(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_SEARCH_LINKS_CLASS}`).hide();\r\n\r\n    this.handleVocalSearch();\r\n  }\r\n\r\n  hideVocalSearchLoading() {\r\n    $(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_ID}`)\r\n      .find(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_VOCAL_SEARCH_LOADING_CLASS}`).hide();\r\n    $(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_ID}`)\r\n      .find(`${HEADER_PROPS.CLASSES.MOBILE_SEARCH_MODAL_SEARCH_LINKS_CLASS}`).show();\r\n  }\r\n\r\n  handleSearchClearButton() {\r\n    $(HEADER_PROPS.CLASSES.SEARCH_INPUT_CLASS).on('input', function () {\r\n      if ($(HEADER_PROPS.CLASSES.SEARCH_INPUT_CLASS).val() == \"\") {\r\n        console.log(\"Empty Searchbar!\");\r\n        $(HEADER_PROPS.CLASSES.VOCAL_SEARCH_HEADER_BUTTON_CLASS).show();\r\n        $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_HEADER_BUTTON_CLASS).hide();\r\n      } else {\r\n        console.log(\"Full Searchbar!\");\r\n        $(HEADER_PROPS.CLASSES.VOCAL_SEARCH_HEADER_BUTTON_CLASS).hide();\r\n        $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_HEADER_BUTTON_CLASS).show();\r\n      }\r\n    });\r\n\r\n    $(HEADER_PROPS.CLASSES.MODAL_SEARCH_INPUT_CLASS).on('input', function () {\r\n      if ($(HEADER_PROPS.CLASSES.MODAL_SEARCH_INPUT_CLASS).val() == \"\") {\r\n        console.log(\"Vuota\");\r\n        $(HEADER_PROPS.CLASSES.VOCAL_SEARCH_MODAL_BUTTON_CLASS).show();\r\n        $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_MODAL_BUTTON_CLASS).hide();\r\n      } else {\r\n        console.log(\"Piena\");\r\n        $(HEADER_PROPS.CLASSES.VOCAL_SEARCH_MODAL_BUTTON_CLASS).hide();\r\n        $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_MODAL_BUTTON_CLASS).show();\r\n      }\r\n    });\r\n\r\n    $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_HEADER_BUTTON_CLASS).click(function () {\r\n      $(HEADER_PROPS.CLASSES.SEARCH_INPUT_CLASS).attr('value', '');\r\n      $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_HEADER_BUTTON_CLASS).hide();\r\n      $(HEADER_PROPS.CLASSES.VOCAL_SEARCH_HEADER_BUTTON_CLASS).show();\r\n    });\r\n\r\n    $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_MODAL_BUTTON_CLASS).click(function () {\r\n      $(HEADER_PROPS.CLASSES.MODAL_SEARCH_INPUT_CLASS).attr('value', '');\r\n      $(HEADER_PROPS.CLASSES.CLEAR_SEARCH_MODAL_BUTTON_CLASS).hide();\r\n      $(HEADER_PROPS.CLASSES.VOCAL_SEARCH_MODAL_BUTTON_CLASS).show();\r\n    });\r\n  }\r\n\r\n  handleVocalSearch() {\r\n    const vocalSearchRecordingButton = $(\".btn-vocal-search\");\r\n    const recordingAnimationContainer = $(\".speaker-container\");\r\n    const dataUploadUrl = $(\".eni-header\").data(\"upload-url\");\r\n\r\n    console.log(\"Vocal Search recording button\", vocalSearchRecordingButton);\r\n\r\n    if (Recorder.isRecordingSupported()) {\r\n      console.log(\"Recording is supported!\");\r\n\r\n      var recorder = new Recorder({\r\n        encoderPath: \"/assets/js/waveWorker.min.js\"\r\n      });\r\n\r\n      recorder.onstart = function () {\r\n        console.log(\"Recording started\");\r\n      };\r\n\r\n      recorder.onstop = function () {\r\n        console.log(\"Recording stopped\");\r\n      };\r\n\r\n      recorder.onstreamerror = function (e) {\r\n        console.log('Error encountered: ' + e.message);\r\n      };\r\n\r\n      recorder.ondataavailable = function (typedArray) {\r\n        var blob = new Blob([typedArray], {\r\n          type: 'audio/wav'\r\n        });\r\n\r\n        console.log(\"Uploading the audio blob\");\r\n\r\n        var reader = new FileReader();\r\n        reader.onload = function () {\r\n          var form = document.createElement(\"form\");\r\n          $(form).attr(\"method\", \"POST\");\r\n          $(form).attr(\"action\", dataUploadUrl);\r\n          console.log(\"FORM\", form);\r\n          var audioInput = document.createElement(\"input\");\r\n          $(audioInput).attr(\"value\", reader.result);\r\n          $(audioInput).attr(\"name\", \"audio\");\r\n          console.log(\"INPUT\", audioInput);\r\n          $(form).append(audioInput);\r\n          document.body.appendChild(form);\r\n          form.submit();\r\n        };\r\n        reader.readAsDataURL(blob);\r\n      };\r\n\r\n    }\r\n    $(vocalSearchRecordingButton).on('mousedown touchstart', (event) => {\r\n      this.startAudioRecording(recorder, recordingAnimationContainer, vocalSearchRecordingButton);\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      this.stopAudioRecording(recorder, recordingAnimationContainer, vocalSearchRecordingButton);\r\n    });\r\n\r\n\r\n\r\n    // Start Vocal Recording on Button Press Down\r\n\r\n\r\n    var record = false;\r\n    // $(vocalSearchRecordingButton).click( (e) => {\r\n    //   if ( !record ) {\r\n\r\n    //     this.startAudioRecording(recorder, recordingAnimationContainer, vocalSearchRecordingButton);\r\n    //     record = true;\r\n\r\n    //   } else {\r\n    //     this.stopAudioRecording(recorder, recordingAnimationContainer, vocalSearchRecordingButton);\r\n    //     record = false;\r\n    //   }\r\n\r\n    // });\r\n\r\n    const abort = $('.eni-search-modal-abort-vocal-search');\r\n\r\n    $(abort).click(() => {\r\n      $(recordingAnimationContainer).addClass(\"not-animated\");\r\n      $(vocalSearchRecordingButton).removeClass('clicked');\r\n      recorder.loadWorker();\r\n      record = false;\r\n    });\r\n\r\n    $('.eni-focus-area .close').click(() => {\r\n      $(recordingAnimationContainer).addClass(\"not-animated\");\r\n      $(vocalSearchRecordingButton).removeClass('clicked');\r\n      recorder.loadWorker();\r\n      record = false;\r\n    });\r\n\r\n  }\r\n\r\n\r\n  handleSearchOpenButton() {\r\n    const searchOpenLink = $('.search-open-link');\r\n    $(searchOpenLink).click((event) => {\r\n      if($('.eni-searchbar-container').length) {\r\n        $(searchOpenLink).toggleClass('active');\r\n        $('.eni-searchbar-container').toggleClass('open');\r\n        $('body.header-light-search').toggleClass('open-search-bar');\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n  startAudioRecording(recorder, recordingAnimationContainer, vocalSearchRecordingButton) {\r\n    console.log(\"Start Recording!\");\r\n    recorder.start().catch(function (e) {\r\n      console.log(\"Recording error encountered \", e.message);\r\n    });\r\n    $(recordingAnimationContainer).removeClass(\"not-animated\");\r\n    $(vocalSearchRecordingButton).addClass('clicked');\r\n  }\r\n\r\n  stopAudioRecording(recorder, recordingAnimationContainer, vocalSearchRecordingButton) {\r\n    console.log(\"Stop Recording!\");\r\n\r\n    $(recordingAnimationContainer).addClass(\"not-animated\");\r\n    $(vocalSearchRecordingButton).removeClass('clicked');\r\n    setTimeout(() => {\r\n      recorder.stop();\r\n    }, 10);\r\n  }\r\n\r\n  /* uploadVocalSearchAudio(uploadUrl, blob) {\r\n    console.log(\"Uploading the audio blob\");\r\n\r\n    var reader = new FileReader();\r\n    reader.onload = function () {\r\n      var form = document.createElement(\"form\");\r\n      $(form).attr(\"method\", \"POST\");\r\n      $(form).attr(\"action\", uploadUrl);\r\n      console.log(\"FORM\", form);\r\n      var audioInput = document.createElement(\"input\");\r\n      $(audioInput).attr(\"value\", reader.result);\r\n      $(audioInput).attr(\"name\", \"audio\");\r\n      console.log(\"INPUT\", audioInput);\r\n      $(form).append(audioInput);\r\n      document.body.appendChild(form);\r\n      form.submit();\r\n    }\r\n    reader.readAsDataURL(blob);\r\n  } */\r\n}\r\n\r\n$(() => {\r\n  const header = new HeaderComponent();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/mobile-menu.js\":\n/*!************************************!*\\\n  !*** ./src/scripts/mobile-menu.js ***!\n  \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*! Pushy - v1.2.0 - 2019-4-24\r\n * Pushy is a responsive off-canvas navigation menu using CSS transforms & transitions.\r\n * https://github.com/christophery/pushy/\r\n * by Christopher Yee */\r\n\r\n(function ($) {\r\n  var pushy = $('.pushy'), //menu css class\r\n    body = $('body'),\r\n    container = $('.main-container'), //container css class\r\n    push = $('.push'), //css class to add pushy capability\r\n    pushyLeft = 'pushy-left', //css class for left menu position\r\n    pushyOpenLeft = 'pushy-open-left', //css class when menu is open (left position)\r\n    pushyOpenRight = 'pushy-open-right', //css class when menu is open (right position)\r\n    siteOverlay = $('.site-overlay'), //site overlay\r\n    menuBtn = $('.preheader-menu-mobile-menu-mobile-btn'), //css classes to toggle the menu\r\n    menuBtnFocus = $('.preheader-menu-mobile-menu-mobile-btn'), //css class to focus when menu is closed w/ esc key\r\n    menuCloseBtn = $('.menu-mobile-close-btn'), //css classes to toggle the menu\r\n    menuLinkFocus = $(pushy.data('focus')), //focus on link when menu is open\r\n    menuSpeed = 200, //jQuery fallback menu speed\r\n    menuWidth = pushy.width() + 'px', //jQuery fallback menu width\r\n    submenuClass = '.pushy-submenu',\r\n    submenuOpenClass = 'pushy-submenu-open',\r\n    submenuClosedClass = 'pushy-submenu-closed',\r\n    submenu = $(submenuClass),\r\n    mobileMenuBreakpoint = 1024,\r\n    languageItemsMenuMobile = $('.eni-menu-mobile .change-language li'),\r\n    loginMyeniItemMenuMobile = $('.eni-menu-mobile .myeni-container-mobile li button.myeni-btn'),\r\n    loginItemMenuMobile = $('.eni-menu-mobile .login-mobile li a');\r\n\r\n  //close menu w/ esc key\r\n  $(document).keyup(function (e) {\r\n    //check if esc key is pressed\r\n    if (e.keyCode == 27) {\r\n\r\n      //check if menu is open\r\n      if (body.hasClass(pushyOpenLeft) || body.hasClass(pushyOpenRight)) {\r\n        if (cssTransforms3d) {\r\n          closePushy(); //close pushy\r\n        } else {\r\n          closePushyFallback();\r\n          opened = false; //set menu state\r\n        }\r\n\r\n        //focus on menu button after menu is closed\r\n        if (menuBtnFocus) {\r\n          menuBtnFocus.focus();\r\n        }\r\n\r\n      }\r\n\r\n    }\r\n  });\r\n\r\n  function togglePushy() {\r\n    //add class to body based on menu position\r\n    if (pushy.hasClass(pushyLeft)) {\r\n      body.toggleClass(pushyOpenLeft);\r\n    } else {\r\n      body.toggleClass(pushyOpenRight);\r\n    }\r\n\r\n    //focus on link in menu after css transition ends\r\n    if (menuLinkFocus) {\r\n      pushy.one('transitionend', function () {\r\n        menuLinkFocus.focus();\r\n      });\r\n    }\r\n\r\n  }\r\n\r\n  function closePushy() {\r\n    if (pushy.hasClass(pushyLeft)) {\r\n      body.removeClass(pushyOpenLeft);\r\n    } else {\r\n      body.removeClass(pushyOpenRight);\r\n    }\r\n  }\r\n\r\n  function openPushyFallback() {\r\n    //animate menu position based on CSS class\r\n    if (pushy.hasClass(pushyLeft)) {\r\n      body.addClass(pushyOpenLeft);\r\n      pushy.animate({\r\n        left: \"0px\"\r\n      }, menuSpeed);\r\n      container.animate({\r\n        left: menuWidth\r\n      }, menuSpeed);\r\n      //css class to add pushy capability\r\n      push.animate({\r\n        left: menuWidth\r\n      }, menuSpeed);\r\n    } else {\r\n      body.addClass(pushyOpenRight);\r\n      pushy.animate({\r\n        right: '0px'\r\n      }, menuSpeed);\r\n      container.animate({\r\n        right: menuWidth\r\n      }, menuSpeed);\r\n      push.animate({\r\n        right: menuWidth\r\n      }, menuSpeed);\r\n    }\r\n\r\n    //focus on link in menu\r\n    if (menuLinkFocus) {\r\n      menuLinkFocus.focus();\r\n    }\r\n  }\r\n\r\n  function closePushyFallback() {\r\n    //animate menu position based on CSS class\r\n    if (pushy.hasClass(pushyLeft)) {\r\n      body.removeClass(pushyOpenLeft);\r\n      pushy.animate({\r\n        left: \"-\" + menuWidth\r\n      }, menuSpeed);\r\n      container.animate({\r\n        left: \"0px\"\r\n      }, menuSpeed);\r\n      //css class to add pushy capability\r\n      push.animate({\r\n        left: \"0px\"\r\n      }, menuSpeed);\r\n    } else {\r\n      body.removeClass(pushyOpenRight);\r\n      pushy.animate({\r\n        right: \"-\" + menuWidth\r\n      }, menuSpeed);\r\n      container.animate({\r\n        right: \"0px\"\r\n      }, menuSpeed);\r\n      push.animate({\r\n        right: \"0px\"\r\n      }, menuSpeed);\r\n    }\r\n  }\r\n\r\n  function toggleSubmenu() {\r\n    //hide submenu by default\r\n    $(submenuClass).addClass(submenuClosedClass);\r\n\r\n    $(submenuClass).on('click', function (e) {\r\n      var selected = $(this);\r\n\r\n      if (selected.hasClass(submenuClosedClass)) {\r\n        //hide same-level opened submenus\r\n        selected.siblings(submenuClass).addClass(submenuClosedClass).removeClass(submenuOpenClass);\r\n        //show submenu\r\n        selected.removeClass(submenuClosedClass).addClass(submenuOpenClass);\r\n      } else {\r\n        //hide submenu\r\n        selected.addClass(submenuClosedClass).removeClass(submenuOpenClass);\r\n      }\r\n      // prevent event to be triggered on parent\r\n      e.stopPropagation();\r\n    });\r\n  }\r\n\r\n  function externalLinkMenu() {\r\n    if($('.eni-menu-mobile').length && $('.menu-container').length && $('.external-link-menu').length) {\r\n      var windowHeight = $(window).height();\r\n      var contentMenuHeight = parseInt($('.primary-menu').outerHeight())+parseInt($('.secondary-menu').outerHeight());\r\n      contentMenuHeight += 100;\r\n\r\n      if(windowHeight>contentMenuHeight) {\r\n        $('.external-link-menu').addClass('bottom');\r\n      } else {\r\n        $('.external-link-menu').removeClass('bottom');\r\n      }\r\n    }\r\n  }\r\n\r\n  //checks if 3d transforms are supported removing the modernizr dependency\r\n  var cssTransforms3d = (function csstransforms3d() {\r\n    var el = document.createElement('p'),\r\n      supported = false,\r\n      transforms = {\r\n        'webkitTransform': '-webkit-transform',\r\n        'OTransform': '-o-transform',\r\n        'msTransform': '-ms-transform',\r\n        'MozTransform': '-moz-transform',\r\n        'transform': 'transform'\r\n      };\r\n\r\n    if (document.body !== null) {\r\n      // Add it to the body to get the computed style\r\n      document.body.insertBefore(el, null);\r\n\r\n      for (var t in transforms) {\r\n        if (el.style[t] !== undefined) {\r\n          el.style[t] = 'translate3d(1px,1px,1px)';\r\n          supported = window.getComputedStyle(el).getPropertyValue(transforms[t]);\r\n        }\r\n      }\r\n\r\n      document.body.removeChild(el);\r\n\r\n      return (supported !== undefined && supported.length > 0 && supported !== \"none\");\r\n    } else {\r\n      return false;\r\n    }\r\n  })();\r\n\r\n  if (cssTransforms3d) {\r\n    //toggle submenu\r\n    /* toggleSubmenu(); */\r\n\r\n    //toggle menu\r\n    menuBtn.on('click', function () {\r\n      togglePushy();\r\n    });\r\n    //toggle menu close\r\n    menuCloseBtn.on('click', function () {\r\n      togglePushy();\r\n    });\r\n    //close menu when clicking site overlay\r\n    siteOverlay.on('click', function () {\r\n      togglePushy();\r\n    });\r\n  } else {\r\n    //add css class to body\r\n    body.addClass('no-csstransforms3d');\r\n\r\n    //hide menu by default\r\n    if (pushy.hasClass(pushyLeft)) {\r\n      pushy.css({\r\n        left: \"-\" + menuWidth\r\n      });\r\n    } else {\r\n      pushy.css({\r\n        right: \"-\" + menuWidth\r\n      });\r\n    }\r\n\r\n    //fixes IE scrollbar issue\r\n    container.css({\r\n      \"overflow-x\": \"hidden\"\r\n    });\r\n\r\n    //keep track of menu state (open/close)\r\n    var opened = false;\r\n\r\n    //toggle submenu\r\n    /* toggleSubmenu(); */\r\n\r\n    //toggle menu\r\n    menuBtn.on('click', function () {\r\n      if (opened) {\r\n        closePushyFallback();\r\n        opened = false;\r\n      } else {\r\n        openPushyFallback();\r\n        opened = true;\r\n      }\r\n    });\r\n\r\n    menuCloseBtn.on('click', function () {\r\n      if (opened) {\r\n        closePushyFallback();\r\n        opened = false;\r\n      } else {\r\n        openPushyFallback();\r\n        opened = true;\r\n      }\r\n    });\r\n\r\n    //close menu when clicking site overlay\r\n    siteOverlay.on('click', function () {\r\n      if (opened) {\r\n        closePushyFallback();\r\n        opened = false;\r\n      } else {\r\n        openPushyFallback();\r\n        opened = true;\r\n      }\r\n    });\r\n  }\r\n\r\n  //close menu when clicking language anchors\r\n  if (languageItemsMenuMobile && languageItemsMenuMobile.length > 0) {\r\n    languageItemsMenuMobile.each((i, el) => {\r\n      const itemAnchor = $(el).children('a');\r\n      if (itemAnchor && itemAnchor.length > 0) {\r\n        $(itemAnchor).on('click', function (e) {\r\n          togglePushy();\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  //close menu when clicking login to myeni button\r\n  if (loginMyeniItemMenuMobile && loginMyeniItemMenuMobile.length > 0) {\r\n    loginMyeniItemMenuMobile.on('click', function (e) {\r\n      togglePushy();\r\n    });\r\n  }\r\n\r\n  //close menu when clicking login button\r\n  if (loginItemMenuMobile && loginItemMenuMobile.length > 0) {\r\n    loginItemMenuMobile.on('click', function (e) {\r\n      togglePushy();\r\n    });\r\n  }\r\n\r\n  function checkMobileMenuOpenStatus() {\r\n    return (body.hasClass(pushyOpenLeft) || body.hasClass(pushyOpenRight)) ? true : false;\r\n  };\r\n\r\n\r\n  $(document).ready(() => {\r\n    externalLinkMenu();\r\n  });\r\n\r\n\r\n  $(window).on('resize', () => {\r\n    if ($(window).width() >= mobileMenuBreakpoint) {\r\n      var isMobileMenuOpen = checkMobileMenuOpenStatus();\r\n      if (isMobileMenuOpen) {\r\n        togglePushy();\r\n      }\r\n    }\r\n\r\n    externalLinkMenu();\r\n  });\r\n\r\n}(jQuery));\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/breadcrumbs.js\":\n/*!********************************************!*\\\n  !*** ./src/scripts/widgets/breadcrumbs.js ***!\n  \\********************************************/\n/*! exports provided: Breadcrumbs */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Breadcrumbs\", function() { return Breadcrumbs; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nclass Breadcrumbs {\r\n\r\n  constructor() {\r\n    if (_common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMobile()) {\r\n      this.ellipsed($('.eni-breadcrumbs .breadcrumbs a'));\r\n    }\r\n\r\n    $('.eni-breadcrumbs button.icon-arrow-left-bread').click(() => window.history.back());\r\n  }\r\n\r\n  ellipsed(links) {\r\n    console.log(links);\r\n    if (links) {\r\n      $(links).each((i, el) => {\r\n        $(el).text(_common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ellipse($(el).text(), 9));\r\n      });\r\n    }\r\n  }\r\n\r\n}\r\n\r\n$(() => {\r\n  const component = new Breadcrumbs();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/calendar.js\":\n/*!*****************************************!*\\\n  !*** ./src/scripts/widgets/calendar.js ***!\n  \\*****************************************/\n/*! exports provided: Calendar */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Calendar\", function() { return Calendar; });\nclass Calendar {\r\n  constructor() {\r\n    const viewMore = $(\".eni-calendar button.view-more\");\r\n    const viewLess = $(\".eni-calendar button.view-less\");\r\n    const p = $(\".eni-calendar .view-more-less\");\r\n\r\n    if (p && p.length > 0 && viewMore && viewMore.length > 0 && viewLess && viewLess.length > 0) {\r\n      const text = $(p).html();\r\n      console.log(\"TEXT\", text);\r\n\r\n      if ($(window).width() < 992) {\r\n        if (text.length > 280) {\r\n          $(p).html(this.truncateText(text, 280));\r\n        }\r\n      }\r\n      $(viewMore).click(() => {\r\n        this.showMore(p, text);\r\n        $(viewMore).hide();\r\n        $(viewLess).show();\r\n      });\r\n\r\n      $(viewLess).click(() => {\r\n        this.showLess(p, text);\r\n        $(viewLess).hide();\r\n        $(viewMore).show();\r\n      });\r\n    }\r\n  }\r\n\r\n  // Find the first space after the defined length and truncate there.\r\n  // This allows for safe handling of HTML.\r\n\r\n  truncateText(text, length) {\r\n    var spaceIndex = text.indexOf(' ', length);\r\n    var newText = text.substring(0, spaceIndex);\r\n    return newText;\r\n  }\r\n\r\n  showMore(p, text) {\r\n    console.log(\"View More\");\r\n    $(p).html(text);\r\n  }\r\n\r\n  showLess(p, text) {\r\n    console.log(\"View Less\");\r\n    $(p).html(this.truncateText(text, 280));\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new Calendar();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/card-external-link.js\":\n/*!***************************************************!*\\\n  !*** ./src/scripts/widgets/card-external-link.js ***!\n  \\***************************************************/\n/*! exports provided: CardExternalLink */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CardExternalLink\", function() { return CardExternalLink; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nclass CardExternalLink {\r\n  constructor() {\r\n    this.ellipsed($('.card-external-link .card-external p'));\r\n  }\r\n\r\n  ellipsed(p) {\r\n    console.log(p);\r\n    if (p) {\r\n      $(p).each((i, el) => {\r\n        $(el).text(_common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ellipse($(el).text(), 120));\r\n      });\r\n    }\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new CardExternalLink();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/carousel-editorial.js\":\n/*!***************************************************!*\\\n  !*** ./src/scripts/widgets/carousel-editorial.js ***!\n  \\***************************************************/\n/*! exports provided: CarouselEditorial, CarouselBigCard */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CarouselEditorial\", function() { return CarouselEditorial; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CarouselBigCard\", function() { return CarouselBigCard; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass CarouselEditorial {\r\n\r\n    constructor(carouserEditorialContainerClass) {\r\n        Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(carouserEditorialContainerClass, {\r\n            loop: false,\r\n            nav: true,\r\n            mouseDrag: false,\r\n            center: false,\r\n            autoWidth: true,\r\n            navText: [],\r\n            /* onTranslate: this.onTranslated, */\r\n            rewind: false,\r\n            responsive: {\r\n                0: {\r\n                    items: 1.5,\r\n                    slideBy: 1\r\n                },\r\n                // 768: {\r\n                //   items: 2.5,\r\n                //   slideBy: 2\r\n                // },\r\n                1024: {\r\n                    items: 3.5,\r\n                    slideBy: 3\r\n                },\r\n                1440: {\r\n                    items: 4.5,\r\n                    slideBy: 4\r\n                },\r\n                1920: {\r\n                    items: 5.5,\r\n                    slideBy: 5\r\n                }\r\n            }\r\n        }, true);\r\n    }\r\n}\r\n\r\nclass CarouselBigCard {\r\n\r\n    constructor(carouserEditorialContainerClass) {\r\n        return Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(carouserEditorialContainerClass, {\r\n            loop: false,\r\n            nav: true,\r\n            mouseDrag: false,\r\n            center: false,\r\n            autoWidth: true,\r\n            navText: [],\r\n            /* onTranslate: this.onTranslated, */\r\n            rewind: false,\r\n            responsive: {\r\n                0: {\r\n                    items: 1,\r\n                    slideBy: 1\r\n                },\r\n                768: {\r\n                    items: 1.5,\r\n                    slideBy: 2\r\n                },\r\n                1024: {\r\n                    items: 1.5,\r\n                    slideBy: 3\r\n                },\r\n                1440: {\r\n                    items: 2.5,\r\n                    slideBy: 4\r\n                },\r\n                1920: {\r\n                    items: 3.5,\r\n                    slideBy: 5\r\n                }\r\n            }\r\n        }, true);\r\n    }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n    const componentBigCard = new CarouselBigCard('.carousel-container.carousel-big-card .owl-carousel'); \r\n    const component = new CarouselEditorial('.carousel-container.carousel-editorial-card .owl-carousel');\r\n    const componentCategoryCard = new CarouselEditorial('.carousel-container.carousel-category-card .owl-carousel');\r\n\r\n    console.log( 'CarouselBigCard', componentBigCard );\r\n    $( componentBigCard ).owlCarousel('refresh');\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/carousel-event.js\":\n/*!***********************************************!*\\\n  !*** ./src/scripts/widgets/carousel-event.js ***!\n  \\***********************************************/\n/*! exports provided: CarouselEvent */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CarouselEvent\", function() { return CarouselEvent; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass CarouselEvent {\r\n  constructor(carouserContainerClass) {\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(carouserContainerClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      margin: 20,\r\n      navText: [],\r\n      /* onTranslate: this.onTranslated, */\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 3.5,\r\n          slideBy: 3\r\n        },\r\n        1440: {\r\n          items: 4.5,\r\n          slideBy: 4\r\n        },\r\n        1920: {\r\n          items: 5.5,\r\n          slideBy: 5\r\n        }\r\n      }\r\n    });\r\n\r\n    $('.carousel-event .card-event').click((event) => this.handleClick(event));\r\n  }\r\n\r\n  handleClick(event) {\r\n    console.log(event);\r\n    if ($(event.target).is('a') || $(event.target).hasClass('icon-share-small')) {\r\n      return;\r\n    }\r\n\r\n    const currentTarget = $(event.currentTarget);\r\n    const href = $(currentTarget).attr('data-href');\r\n    const href_target = $(currentTarget).attr('data-target');\r\n    const eventTarget = event.target;\r\n\r\n    if (!($(eventTarget).hasClass(\"btn-share\") || $(eventTarget).hasClass(\"icon-share-small\")) &&\r\n      (href && href.length > 0)) {\r\n      window.open(href, href_target);\r\n    }\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  const component = new CarouselEvent('.carousel-container.carousel-event-card .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/carousel-generic.js\":\n/*!*************************************************!*\\\n  !*** ./src/scripts/widgets/carousel-generic.js ***!\n  \\*************************************************/\n/*! exports provided: GenericCarousel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GenericCarousel\", function() { return GenericCarousel; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass GenericCarousel {\r\n\r\n  constructor(bindClass) {\r\n    this.genericCarousel = Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(bindClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      autoWidth: true,\r\n      navText: [],\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          slibeBy: 1,\r\n          center: true\r\n        },\r\n        429: {\r\n          center: false\r\n        }\r\n      }\r\n    }, true);\r\n\r\n    // Click and longpress on navigation arrow\r\n    let scrollLeftIntervalId = 0;\r\n    let scrollRightIntervalId = 0;\r\n\r\n    // for fix bug tab owl carousel on ie11\r\n\r\n    const innerWidth = $(window).width();\r\n\r\n    const owlCars = $('.generic-carousel .owl-stage');\r\n    var ua = window.navigator.userAgent; //Check the userAgent property of the window.navigator object\r\n    var msie = ua.indexOf('MSIE '); // IE 10 or older\r\n    var trident = ua.indexOf('Trident/'); //IE 11\r\n\r\n\r\n    if (msie > 0 || trident > 0) {\r\n      if (innerWidth >= 1200) {\r\n        for (let i = 0; i < owlCars.length; i++) {\r\n          if (owlCars && $(owlCars)) {\r\n            console.log('my func', $(owlCars[i]).width());\r\n            var owlWidth = $(owlCars[i]).width();\r\n            if (owlWidth < 1040) {\r\n              $(owlCars[i]).css({\r\n                \"width\": \"100%\",\r\n                \"display\": \"flex\",\r\n                \"justify-content\": \"center\"\r\n              });\r\n            }\r\n            else{\r\n              var currentWidth = parseInt(owlWidth);\r\n              $(owlCars[i]).css('width',currentWidth+20+'px');\r\n            }\r\n          }\r\n\r\n        }\r\n      }\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    // Go to the previous item with longpress\r\n    $('.owl-prev').on('mousedown touchstart', (event) => {\r\n      scrollLeftIntervalId = setInterval(() => {\r\n        this.genericCarousel.trigger('prev.owl.carousel', [500]);\r\n      }, 500);\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      clearInterval(scrollLeftIntervalId);\r\n    });\r\n\r\n    // Go to the next item with longpress\r\n    $('.owl-next').on('mousedown touchstart', (event) => {\r\n      scrollRightIntervalId = setInterval(() => {\r\n        this.genericCarousel.trigger('next.owl.carousel', [500]);\r\n      }, 500);\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      clearInterval(scrollRightIntervalId);\r\n    });\r\n\r\n    const activeButton = $(bindClass).find('.btn.eni-tab.active');\r\n\r\n    if (activeButton && activeButton.length > 0) {\r\n\r\n      const activeOwlItem = $(activeButton).parent('.owl-item');\r\n      const allOwlItems = $(bindClass).find('.owl-item');\r\n      const currentOwlItemPosition = $(allOwlItems).index(activeOwlItem);\r\n      // console.log(\"Figa Igor\", currentOwlItemPosition, allOwlItems.length, activeOwlItem);\r\n\r\n\r\n\r\n      if (activeButton && activeOwlItem && this.genericCarousel && allOwlItems.length && currentOwlItemPosition) {\r\n        this.genericCarousel.trigger('to.owl.carousel', [currentOwlItemPosition, 0, true]);\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  const component = new GenericCarousel('.generic-carousel.carousel-container .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/carousel-global-presence.js\":\n/*!*********************************************************!*\\\n  !*** ./src/scripts/widgets/carousel-global-presence.js ***!\n  \\*********************************************************/\n/*! exports provided: CarouselGlobalPresence */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CarouselGlobalPresence\", function() { return CarouselGlobalPresence; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nclass CarouselGlobalPresence {\r\n\r\n  constructor() {\r\n    $('.carousel-inner').each(function() {\r\n      let x = $(this).children('div').length;\r\n          if ($(this).children('div').length === 1) $(this).siblings('.carousel-indicators').hide();\r\n\r\n      });\r\n  }\r\n\r\n\r\n}\r\n\r\n$(() => {\r\n  const component = new CarouselGlobalPresence();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/carousel-places.js\":\n/*!************************************************!*\\\n  !*** ./src/scripts/widgets/carousel-places.js ***!\n  \\************************************************/\n/*! exports provided: CarouselPlaces */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CarouselPlaces\", function() { return CarouselPlaces; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass CarouselPlaces {\r\n  constructor(carouserContainerClass) {\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(carouserContainerClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      navText: [],\r\n      /* onTranslate: this.onTranslated, */\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 3.5,\r\n          slideBy: 3\r\n        },\r\n        1440: {\r\n          items: 4.5,\r\n          slideBy: 4\r\n        },\r\n        1920: {\r\n          items: 5.5,\r\n          slideBy: 5\r\n        }\r\n      }\r\n    });\r\n\r\n    $('.carousel-places .card-places').click((event) => this.handleClick(event));\r\n  }\r\n\r\n  handleClick(event) {\r\n    console.log(event);\r\n    if ($(event.target).is('a')) {\r\n      return;\r\n    }\r\n\r\n    const currentTarget = $(event.currentTarget);\r\n    const href = $(currentTarget).attr('data-href');\r\n    const target = $(currentTarget).attr('data-target');\r\n    window.open(href, target);\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  const component = new CarouselPlaces('.carousel-container.carousel-places-card .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/carousel-publications.js\":\n/*!******************************************************!*\\\n  !*** ./src/scripts/widgets/carousel-publications.js ***!\n  \\******************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n/*!\r\n * Waterwheel Carousel\r\n * Version 2.3.0\r\n * https://www.bkosborne.com\r\n *\r\n * Copyright 2011-2013 Brian Osborne\r\n * Dual licensed under GPLv3 or MIT\r\n * Copies of the licenses have been distributed\r\n * with this plugin.\r\n *\r\n * Plugin written by Brian Osborne\r\n * for use with the jQuery JavaScript Framework\r\n * https://www.jquery.com\r\n */\r\n;\r\n\r\n\r\n(function ($) {\r\n  'use strict';\r\n\r\n  $.fn.waterwheelCarousel = function (startingOptions) {\r\n\r\n    // Adds support for intializing multiple carousels from the same selector group\r\n    if (this.length > 1) {\r\n      this.each(function () {\r\n        $(this).waterwheelCarousel(startingOptions);\r\n      });\r\n      return this; // allow chaining\r\n    }\r\n\r\n    var carousel = this;\r\n    var options = {};\r\n    var data = {};\r\n\r\n    function initializeCarouselData() {\r\n      data = {\r\n        itemsContainer: $(carousel),\r\n        totalItems: $(carousel).children().length,\r\n        containerWidth: $(carousel).width(),\r\n        containerHeight: $(carousel).height(),\r\n        currentCenterItem: null,\r\n        previousCenterItem: null,\r\n        items: [],\r\n        calculations: [],\r\n        carouselRotationsLeft: 0,\r\n        currentlyMoving: false,\r\n        itemsAnimating: 0,\r\n        currentSpeed: options.speed,\r\n        intervalTimer: null,\r\n        currentDirection: 'forward',\r\n        leftItemsCount: 0,\r\n        rightItemsCount: 0,\r\n        performingSetup: true\r\n      };\r\n      data.itemsContainer.children().removeClass(options.activeClassName);\r\n    }\r\n\r\n    /**\r\n     * This function will set the autoplay for the carousel to\r\n     * automatically rotate it given the time in the options\r\n     * Can clear the autoplay by passing in true\r\n     */\r\n    function autoPlay(stop) {\r\n      // clear timer\r\n      clearTimeout(data.autoPlayTimer);\r\n      // as long as no stop command, and autoplay isn't zeroed...\r\n      if (!stop && options.autoPlay !== 0) {\r\n        // set timer...\r\n        data.autoPlayTimer = setTimeout(function () {\r\n          // to move the carousl in either direction...\r\n          if (options.autoPlay > 0) {\r\n            moveOnce('forward');\r\n          } else {\r\n            moveOnce('backward');\r\n          }\r\n        }, Math.abs(options.autoPlay));\r\n      }\r\n    }\r\n\r\n    /**\r\n     * This function will preload all the images in the carousel before\r\n     * calling the passed in callback function. This is only used so we can\r\n     * properly determine the width and height of the items. This is not needed\r\n     * if a user instead manually specifies that information.\r\n     */\r\n    function preload(callback) {\r\n\r\n      var $imageElements = data.itemsContainer.find('img'),\r\n        totalImages = $imageElements.length,\r\n        loadedImages = 0;\r\n\r\n      if (options.preloadImages === false || $imageElements.length === 0) {\r\n        callback();\r\n        return;\r\n      }\r\n\r\n      $imageElements.each(function () {\r\n        $(this).bind('load', function () {\r\n          // Add to number of images loaded and see if they are all done yet\r\n          loadedImages += 1;\r\n          if (loadedImages === totalImages) {\r\n            // All done, perform callback\r\n            callback();\r\n            return;\r\n          }\r\n        });\r\n        // May need to manually reset the src to get the load event to fire\r\n        // http://stackoverflow.com/questions/7137737/ie9-problems-with-jquery-load-event-not-firing\r\n        $(this).attr('src', $(this).attr('src'));\r\n\r\n        // If browser has cached the images, it may not call trigger a load. Detect this and do it ourselves\r\n        if (this.complete) {\r\n          $(this).trigger('load');\r\n        }\r\n      });\r\n    }\r\n\r\n    /**\r\n     * Makes a record of the original width and height of all the items in the carousel.\r\n     * If we re-intialize the carousel, these values can be used to re-establish their\r\n     * original dimensions.\r\n     */\r\n    function setOriginalItemDimensions() {\r\n      data.itemsContainer.children().each(function () {\r\n        if ($(this).data('original_width') == undefined || options.forcedImageWidth > 0) {\r\n          $(this).data('original_width', $(this).width());\r\n        }\r\n        if ($(this).data('original_height') == undefined || options.forcedImageHeight > 0) {\r\n          $(this).data('original_height', $(this).height());\r\n        }\r\n      });\r\n    }\r\n\r\n    /**\r\n     * Users can pass in a specific width and height that should be applied to every image.\r\n     * While this option can be used in conjunction with the image preloader, the intended\r\n     * use case is for when the preloader is turned off and the images don't have defined\r\n     * dimensions in CSS. The carousel needs dimensions one way or another to work properly.\r\n     */\r\n    function forceImageDimensionsIfEnabled() {\r\n      if (options.forcedImageWidth && options.forcedImageHeight) {\r\n        data.itemsContainer.children().each(function () {\r\n          $(this).width(options.forcedImageWidth);\r\n          $(this).height(options.forcedImageHeight);\r\n        });\r\n      }\r\n    }\r\n\r\n    /**\r\n     * For each \"visible\" item slot (# of flanking items plus the middle),\r\n     * we pre-calculate all of the properties that the item should possess while\r\n     * occupying that slot. This saves us some time during the actual animation.\r\n     */\r\n    function preCalculatePositionProperties() {\r\n      // The 0 index is the center item in the carousel\r\n      var $firstItem = data.itemsContainer.children().eq(0);\r\n\r\n      data.calculations[0] = {\r\n        distance: 0,\r\n        offset: 0,\r\n        opacity: 1\r\n      };\r\n\r\n      // Then, for each number of flanking items (plus one more, see below), we\r\n      // perform the calcations based on our user options\r\n      var horizonOffset = options.horizonOffset;\r\n      var separation = options.separation;\r\n      for (var i = 1; i <= options.flankingItems + 2; i++) {\r\n        if (i > 1) {\r\n          horizonOffset *= options.horizonOffsetMultiplier;\r\n          separation *= options.separationMultiplier;\r\n        }\r\n        data.calculations[i] = {\r\n          distance: data.calculations[i - 1].distance + separation,\r\n          offset: data.calculations[i - 1].offset + horizonOffset,\r\n          opacity: data.calculations[i - 1].opacity * options.opacityMultiplier\r\n        };\r\n      }\r\n      // We performed 1 extra set of calculations above so that the items that\r\n      // are moving out of sight (based on # of flanking items) gracefully animate there\r\n      // However, we need them to animate to hidden, so we set the opacity to 0 for\r\n      // that last item\r\n      if (options.edgeFadeEnabled) {\r\n        data.calculations[options.flankingItems + 1].opacity = 0;\r\n      } else {\r\n        data.calculations[options.flankingItems + 1] = {\r\n          distance: 0,\r\n          offset: 0,\r\n          opacity: 0\r\n        };\r\n      }\r\n    }\r\n\r\n    /**\r\n     * Here we prep the carousel and its items, like setting default CSS\r\n     * attributes. All items start in the middle position by default\r\n     * and will \"fan out\" from there during the first animation\r\n     */\r\n    function setupCarousel() {\r\n      // Fill in a data array with jQuery objects of all the images\r\n      data.items = data.itemsContainer.children();\r\n      for (var i = 0; i < data.totalItems; i++) {\r\n        data.items[i] = $(data.items[i]);\r\n      }\r\n\r\n      // May need to set the horizon if it was set to auto\r\n      if (options.horizon === 0) {\r\n        if (options.orientation === 'horizontal') {\r\n          options.horizon = data.containerHeight / 2;\r\n        } else {\r\n          options.horizon = data.containerWidth / 2;\r\n        }\r\n      }\r\n\r\n      // Default all the items to the center position\r\n      data.itemsContainer\r\n        .css('position', 'relative')\r\n        .children()\r\n        .each(function () {\r\n          // Figure out where the top and left positions for center should be\r\n          var centerPosLeft, centerPosTop;\r\n          if (options.orientation === 'horizontal') {\r\n            centerPosLeft = (data.containerWidth / 2) - ($(this).data('original_width') / 2);\r\n            centerPosTop = options.horizon - ($(this).data('original_height') / 2);\r\n          } else {\r\n            centerPosLeft = options.horizon - ($(this).data('original_width') / 2);\r\n            centerPosTop = (data.containerHeight / 2) - ($(this).data('original_height') / 2);\r\n          }\r\n          $(this)\r\n            // Apply positioning and layering to the images\r\n            .css({\r\n              'left': centerPosLeft,\r\n              'top': centerPosTop,\r\n              'visibility': 'visible',\r\n              'position': 'absolute',\r\n              'z-index': 0,\r\n              'opacity': 0\r\n            })\r\n            // Give each image a data object so it remembers specific data about\r\n            // it's original form\r\n            .data({\r\n              top: centerPosTop,\r\n              left: centerPosLeft,\r\n              oldPosition: 0,\r\n              currentPosition: 0,\r\n              depth: 0,\r\n              opacity: 0\r\n            })\r\n            // The image has been setup... Now we can show it\r\n            .show();\r\n        });\r\n    }\r\n\r\n    /**\r\n     * All the items to the left and right of the center item need to be\r\n     * animated to their starting positions. This function will\r\n     * figure out what items go where and will animate them there\r\n     */\r\n    function setupStarterRotation() {\r\n      options.startingItem = (options.startingItem === 0) ? Math.round(data.totalItems / 2) : options.startingItem;\r\n\r\n      data.rightItemsCount = Math.ceil((data.totalItems - 1) / 2);\r\n      data.leftItemsCount = Math.floor((data.totalItems - 1) / 2);\r\n\r\n      // We are in effect rotating the carousel, so we need to set that\r\n      data.carouselRotationsLeft = 1;\r\n\r\n      // Center item\r\n      moveItem(data.items[options.startingItem - 1], 0);\r\n      data.items[options.startingItem - 1].css('opacity', 1);\r\n\r\n      // All the items to the right of center\r\n      var itemIndex = options.startingItem - 1;\r\n      for (var pos = 1; pos <= data.rightItemsCount; pos++) {\r\n        (itemIndex < data.totalItems - 1) ? itemIndex += 1: itemIndex = 0;\r\n\r\n        data.items[itemIndex].css('opacity', 1);\r\n        moveItem(data.items[itemIndex], pos);\r\n      }\r\n\r\n      // All items to left of center\r\n      var itemIndex = options.startingItem - 1;\r\n      for (var pos = -1; pos >= data.leftItemsCount * -1; pos--) {\r\n        (itemIndex > 0) ? itemIndex -= 1: itemIndex = data.totalItems - 1;\r\n\r\n        data.items[itemIndex].css('opacity', 1);\r\n        moveItem(data.items[itemIndex], pos);\r\n      }\r\n    }\r\n\r\n    /**\r\n     * Given the item and position, this function will calculate the new data\r\n     * for the item. One the calculations are done, it will store that data in\r\n     * the items data object\r\n     */\r\n    function performCalculations($item, newPosition) {\r\n      var newDistanceFromCenter = Math.abs(newPosition);\r\n\r\n      // Distance to the center\r\n      if (newDistanceFromCenter < options.flankingItems + 1) {\r\n        var calculations = data.calculations[newDistanceFromCenter];\r\n      } else {\r\n        var calculations = data.calculations[options.flankingItems + 1];\r\n      }\r\n\r\n      var distanceFactor = Math.pow(options.sizeMultiplier, newDistanceFromCenter);\r\n      var newWidth = distanceFactor * $item.data('original_width');\r\n      var newHeight = distanceFactor * $item.data('original_height');\r\n      var widthDifference = Math.abs($item.width() - newWidth);\r\n      var heightDifference = Math.abs($item.height() - newHeight);\r\n\r\n      var newOffset = calculations.offset;\r\n      var newDistance = calculations.distance;\r\n      if (newPosition < 0) {\r\n        newDistance *= -1;\r\n      }\r\n\r\n      if (options.orientation == 'horizontal') {\r\n        var center = data.containerWidth / 2;\r\n        var newLeft = center + newDistance - (newWidth / 2);\r\n        var newTop = options.horizon - newOffset - (newHeight / 2);\r\n      } else {\r\n        var center = data.containerHeight / 2;\r\n        var newLeft = options.horizon - newOffset - (newWidth / 2);\r\n        var newTop = center + newDistance - (newHeight / 2);\r\n      }\r\n\r\n      newTop -= heightDifference / 2;\r\n      newLeft -= widthDifference / 2;\r\n\r\n      var newOpacity;\r\n      if (newPosition === 0) {\r\n        newOpacity = 1;\r\n      } else {\r\n        newOpacity = calculations.opacity;\r\n      }\r\n\r\n      // Depth will be reverse distance from center\r\n      var newDepth = options.flankingItems + 2 - newDistanceFromCenter;\r\n\r\n      $item.data('width', newWidth);\r\n      $item.data('height', newHeight);\r\n      $item.data('top', newTop);\r\n      $item.data('left', newLeft);\r\n      $item.data('oldPosition', $item.data('currentPosition'));\r\n      $item.data('depth', newDepth);\r\n      $item.data('opacity', newOpacity);\r\n      $item.data('distanceFactor', distanceFactor);\r\n    }\r\n\r\n    function moveItem($item, newPosition) {\r\n      // Only want to physically move the item if it is within the boundaries\r\n      // or in the first position just outside either boundary\r\n      if (Math.abs(newPosition) <= options.flankingItems + 1) {\r\n        performCalculations($item, newPosition);\r\n\r\n        data.itemsAnimating++;\r\n\r\n        $item\r\n          .css('z-index', $item.data().depth)\r\n          // Animate the items to their new position values\r\n          .animate({\r\n            'left': $item.data().left,\r\n            'top': $item.data().top,\r\n            'opacity': $item.data().opacity\r\n          }, data.currentSpeed, options.animationEasing, function () {\r\n            // Animation for the item has completed, call method\r\n            itemAnimationComplete($item, newPosition);\r\n          });\r\n\r\n        TweenMax.to($item, data.currentSpeed / 1000, {\r\n          scaleX: $item.data('distanceFactor'),\r\n          scaleY: $item.data('distanceFactor'),\r\n          ease: options.animationEasing\r\n        });\r\n\r\n      } else {\r\n        $item.data('currentPosition', newPosition);\r\n        // Move the item to the 'hidden' position if hasn't been moved yet\r\n        // This is for the intitial setup\r\n        if ($item.data('oldPosition') === 0) {\r\n          $item\r\n            .css({\r\n              'left': $item.data().left,\r\n              'top': $item.data().top,\r\n              'opacity': $item.data().opacity,\r\n              'z-index': $item.data().depth\r\n            });\r\n\r\n          TweenMax.to($item, 0, {\r\n            scaleX: $item.data('distanceFactor'),\r\n            scaleY: $item.data('distanceFactor')\r\n          });\r\n        }\r\n      }\r\n\r\n    }\r\n\r\n    /**\r\n     * This function is called once an item has finished animating to its\r\n     * given position. Several different statements are executed here, such as\r\n     * dealing with the animation queue\r\n     */\r\n    function itemAnimationComplete($item, newPosition) {\r\n      data.itemsAnimating--;\r\n\r\n      $item.data('currentPosition', newPosition);\r\n\r\n      // Keep track of what items came and left the center position,\r\n      // so we can fire callbacks when all the rotations are completed\r\n      if (newPosition === 0) {\r\n        data.currentCenterItem = $item;\r\n      }\r\n\r\n      // all items have finished their rotation, lets clean up\r\n      if (data.itemsAnimating === 0) {\r\n        data.carouselRotationsLeft -= 1;\r\n        data.currentlyMoving = false;\r\n\r\n        // If there are still rotations left in the queue, rotate the carousel again\r\n        // we pass in zero because we don't want to add any additional rotations\r\n        if (data.carouselRotationsLeft > 0) {\r\n          rotateCarousel(0);\r\n          // Otherwise there are no more rotations and...\r\n        } else {\r\n          // Reset the speed of the carousel to original\r\n          data.currentSpeed = options.speed;\r\n\r\n          data.currentCenterItem.addClass(options.activeClassName);\r\n\r\n          if (data.performingSetup === false) {\r\n            options.movedToCenter(data.currentCenterItem);\r\n            options.movedFromCenter(data.previousCenterItem);\r\n          }\r\n\r\n          data.performingSetup = false;\r\n          // reset & initate the autoPlay\r\n          autoPlay();\r\n        }\r\n      }\r\n    }\r\n\r\n    /**\r\n     * Function called to rotate the carousel the given number of rotations\r\n     * in the given direciton. Will check to make sure the carousel should\r\n     * be able to move, and then adjust speed and move items\r\n     */\r\n    function rotateCarousel(rotations) {\r\n      // Check to see that a rotation is allowed\r\n      if (data.currentlyMoving === false) {\r\n\r\n        // Close card share modal when carousel publication rotates\r\n        _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].closeShareModal();\r\n\r\n        // Remove active class from the center item while we rotate\r\n        data.currentCenterItem.removeClass(options.activeClassName);\r\n\r\n        data.currentlyMoving = true;\r\n        data.itemsAnimating = 0;\r\n        data.carouselRotationsLeft += rotations;\r\n\r\n        if (options.quickerForFurther === true) {\r\n          // Figure out how fast the carousel should rotate\r\n          if (rotations > 1) {\r\n            data.currentSpeed = options.speed / rotations;\r\n          }\r\n          // Assure the speed is above the minimum to avoid weird results\r\n          data.currentSpeed = (data.currentSpeed < 100) ? 100 : data.currentSpeed;\r\n        }\r\n\r\n        // Iterate thru each item and move it\r\n        for (var i = 0; i < data.totalItems; i++) {\r\n          var $item = $(data.items[i]);\r\n          var currentPosition = $item.data('currentPosition');\r\n\r\n          var newPosition;\r\n          if (data.currentDirection == 'forward') {\r\n            newPosition = currentPosition - 1;\r\n          } else {\r\n            newPosition = currentPosition + 1;\r\n          }\r\n          // We keep both sides as even as possible to allow circular rotation to work.\r\n          // We will \"wrap\" the item arround to the other side by negating its current position\r\n          var flankingAllowance = (newPosition > 0) ? data.rightItemsCount : data.leftItemsCount;\r\n          if (Math.abs(newPosition) > flankingAllowance) {\r\n            newPosition = currentPosition * -1;\r\n            // If there's an uneven number of \"flanking\" items, we need to compenstate for that\r\n            // when we have an item switch sides. The right side will always have 1 more in that case\r\n            if (data.totalItems % 2 == 0) {\r\n              newPosition += 1;\r\n            }\r\n          }\r\n\r\n          moveItem($item, newPosition);\r\n        }\r\n      }\r\n    }\r\n\r\n    /**\r\n     * The event handler when an image within the carousel is clicked\r\n     * This function will rotate the carousel the correct number of rotations\r\n     * to get the clicked item to the center, or will fire the custom event\r\n     * the user passed in if the center item is clicked\r\n     */\r\n    $(this).children().bind(\"click\", function () {\r\n      var itemPosition = $(this).data().currentPosition;\r\n\r\n      if (options.imageNav == false) {\r\n        return;\r\n      }\r\n      // Don't allow hidden items to be clicked\r\n      if (Math.abs(itemPosition) >= options.flankingItems + 1) {\r\n        return;\r\n      }\r\n      // Do nothing if the carousel is already moving\r\n      if (data.currentlyMoving) {\r\n        return;\r\n      }\r\n\r\n      data.previousCenterItem = data.currentCenterItem;\r\n\r\n      // Remove autoplay\r\n      autoPlay(true);\r\n      options.autoPlay = 0;\r\n\r\n      var rotations = Math.abs(itemPosition);\r\n      if (itemPosition == 0) {\r\n        options.clickedCenter($(this));\r\n      } else {\r\n        // Fire the 'moving' callbacks\r\n        options.movingFromCenter(data.currentCenterItem);\r\n        options.movingToCenter($(this));\r\n        if (itemPosition < 0) {\r\n          data.currentDirection = 'backward';\r\n          rotateCarousel(rotations);\r\n        } else if (itemPosition > 0) {\r\n          data.currentDirection = 'forward';\r\n          rotateCarousel(rotations);\r\n        }\r\n      }\r\n    });\r\n\r\n    function nextItemFromCenter() {\r\n      // Prevent error when mouse scroll is fired during reload after resize\r\n      if (data && data.currentCenterItem) {\r\n        var $next = data.currentCenterItem.next();\r\n        if ($next.length <= 0) {\r\n          $next = data.currentCenterItem.parent().children().first();\r\n        }\r\n        return $next;\r\n      }\r\n    }\r\n\r\n    function prevItemFromCenter() {\r\n      // Prevent error when mouse scroll is fired during reload after resize\r\n      if (data && data.currentCenterItem) {\r\n        var $prev = data.currentCenterItem.prev();\r\n        if ($prev.length <= 0) {\r\n          $prev = data.currentCenterItem.parent().children().last();\r\n        }\r\n        return $prev;\r\n      }\r\n    }\r\n\r\n    /**\r\n     * Intiate a move of the carousel in either direction. Takes care of firing\r\n     * the 'moving' callbacks\r\n     */\r\n    function moveOnce(direction) {\r\n      if (data.currentlyMoving === false) {\r\n        data.previousCenterItem = data.currentCenterItem;\r\n\r\n        options.movingFromCenter(data.currentCenterItem);\r\n        if (direction == 'backward') {\r\n          options.movingToCenter(prevItemFromCenter());\r\n          data.currentDirection = 'backward';\r\n        } else if (direction == 'forward') {\r\n          options.movingToCenter(nextItemFromCenter());\r\n          data.currentDirection = 'forward';\r\n        }\r\n      }\r\n\r\n      rotateCarousel(1);\r\n    }\r\n\r\n    /**\r\n     * Navigation with arrow keys\r\n     */\r\n    $(document).keydown(function (e) {\r\n      if (options.keyboardNav) {\r\n        // arrow left or up\r\n        if ((e.which === 37 && options.orientation == 'horizontal') || (e.which === 38 && options.orientation ==\r\n            'vertical')) {\r\n          autoPlay(true);\r\n          options.autoPlay = 0;\r\n          moveOnce('backward');\r\n          // arrow right or down\r\n        } else if ((e.which === 39 && options.orientation == 'horizontal') || (e.which === 40 && options\r\n            .orientation == 'vertical')) {\r\n          autoPlay(true);\r\n          options.autoPlay = 0;\r\n          moveOnce('forward');\r\n        }\r\n        // should we override the normal functionality for the arrow keys?\r\n        if (options.keyboardNavOverride && (\r\n            (options.orientation == 'horizontal' && (e.which === 37 || e.which === 39)) ||\r\n            (options.orientation == 'vertical' && (e.which === 38 || e.which === 40))\r\n          )) {\r\n          e.preventDefault();\r\n          return false;\r\n        }\r\n      }\r\n    });\r\n\r\n    /**\r\n     * Public API methods\r\n     */\r\n    this.reload = function (newOptions) {\r\n      if (typeof newOptions === \"object\") {\r\n        var combineDefaultWith = newOptions;\r\n      } else {\r\n        var combineDefaultWith = {};\r\n      }\r\n      options = $.extend({}, $.fn.waterwheelCarousel.defaults, newOptions);\r\n\r\n      initializeCarouselData();\r\n      data.itemsContainer.children().hide();\r\n      forceImageDimensionsIfEnabled();\r\n\r\n      preload(function () {\r\n        setOriginalItemDimensions();\r\n        preCalculatePositionProperties();\r\n        setupCarousel();\r\n        setupStarterRotation();\r\n      });\r\n    };\r\n\r\n\r\n\r\n    this.next = function () {\r\n      autoPlay(true);\r\n      options.autoPlay = 0;\r\n\r\n      moveOnce('forward');\r\n    };\r\n    this.prev = function () {\r\n      autoPlay(true);\r\n      options.autoPlay = 0;\r\n\r\n      moveOnce('backward');\r\n    };\r\n\r\n    this.reload(startingOptions);\r\n\r\n    return this;\r\n  };\r\n\r\n  var recalculateInitialOptionsResponsive = function () {\r\n    var newOptions = {};\r\n    var currentWidth = 0;\r\n    currentWidth = $(window).outerWidth();\r\n    if (currentWidth < 768) {\r\n      newOptions.separation = 260;\r\n      newOptions.forcedImageWidth = 290;\r\n    } else if (currentWidth > 768 && currentWidth < 1024) {\r\n      newOptions.separation = 310;\r\n      newOptions.forcedImageWidth = 330;\r\n    } else {\r\n      newOptions.separation = 262;\r\n      newOptions.forcedImageWidth = 262;\r\n    }\r\n    return newOptions;\r\n  };\r\n\r\n  var whaterWheelCarouselDefaults = {\r\n    // number tweeks to change apperance\r\n    startingItem: 1, // item to place in the center of the carousel. Set to 0 for auto\r\n    separation: 280, // distance between items in carousel\r\n    separationMultiplier: 0.9, // multipled by separation distance to increase/decrease distance for each additional item (default: 0.6)\r\n    horizonOffset: 0, // offset each item from the \"horizon\" by this amount (causes arching)\r\n    horizonOffsetMultiplier: 1, // multipled by horizon offset to increase/decrease offset for each additional item\r\n    sizeMultiplier: 0.7, // determines how drastically the size of each item changes\r\n    opacityMultiplier: 0.6, // determines how drastically the opacity of each item changes\r\n    horizon: 0, // how \"far in\" the horizontal/vertical horizon should be set from the container wall. 0 for auto\r\n    flankingItems: 1, // the number of items visible on either side of the center\r\n\r\n    // animation\r\n    speed: 300, // speed in milliseconds it will take to rotate from one to the next\r\n    animationEasing: 'linear', // the easing effect to use when animating\r\n    quickerForFurther: true, // set to true to make animations faster when clicking an item that is far away from the center\r\n    edgeFadeEnabled: false, // when true, items fade off into nothingness when reaching the edge. false to have them move behind the center image\r\n\r\n    // misc\r\n    linkHandling: 2, // 1 to disable all (used for facebox), 2 to disable all but center (to link images out)\r\n    autoPlay: 0, // indicate the speed in milliseconds to wait before autorotating. 0 to turn off. Can be negative\r\n    orientation: 'horizontal', // indicate if the carousel should be 'horizontal' or 'vertical'\r\n    activeClassName: 'carousel-center', // the name of the class given to the current item in the center\r\n    keyboardNav: false, // set to true to move the carousel with the arrow keys\r\n    keyboardNavOverride: true, // set to true to override the normal functionality of the arrow keys (prevents scrolling)\r\n    imageNav: true, // clicking a non-center image will rotate that image to the center\r\n\r\n    // preloader\r\n    preloadImages: true, // disable/enable the image preloader.\r\n    forcedImageWidth: 0, // specify width of all images; otherwise the carousel tries to calculate it\r\n    forcedImageHeight: 0, // specify height of all images; otherwise the carousel tries to calculate it\r\n\r\n    // callback functions\r\n    movingToCenter: $.noop, // fired when an item is about to move to the center position\r\n    movedToCenter: $.noop, // fired when an item has finished moving to the center\r\n    clickedCenter: $.noop, // fired when the center item has been clicked\r\n    movingFromCenter: $.noop, // fired when an item is about to leave the center position\r\n    movedFromCenter: $.noop // fired when an item has finished moving from the center\r\n  };\r\n\r\n  // Set initial responsive options only for carousel-publication widget\r\n  // For other carousel variant such as gallery inspect  recalculateInitialOptionsResponsivePhotoGallery() functions\r\n  var whaterWheelCarouselDefaultsResponsive = recalculateInitialOptionsResponsive();\r\n\r\n  // Object spread get error in edge e ie11\r\n\r\n   $.fn.waterwheelCarousel.defaults = {\r\n     ...whaterWheelCarouselDefaults,\r\n     separation: whaterWheelCarouselDefaultsResponsive.separation,\r\nforcedImageWidth: whaterWheelCarouselDefaultsResponsive.forcedImageWidth\r\n\r\n   };\r\n})(jQuery);\r\n\r\n// $.fn.waterwheelCarousel.defaults =\r\n//     Object.assign({}, whaterWheelCarouselDefaults,\r\n//     {separation: whaterWheelCarouselDefaultsResponsive.separation,\r\n//     forcedImageWidth: whaterWheelCarouselDefaultsResponsive.forcedImageWidth});\r\n// })(jQuery);\r\n\r\nwindow.addEventListener('load', () => {\r\n\r\n  // Recalculate initial options responsive for Carousel Publications\r\n  var recalculateInitialOptionsResponsive = function () {\r\n    var newOptions = {};\r\n    var currentWidth = 0;\r\n    currentWidth = $(window).outerWidth();\r\n    if (currentWidth < 768) {\r\n      newOptions.separation = 260;\r\n      newOptions.forcedImageWidth = 290;\r\n    } else if (currentWidth >= 768 && currentWidth < 1024) {\r\n      newOptions.separation = 310;\r\n      newOptions.forcedImageWidth = 330;\r\n    } else {\r\n      newOptions.separation = 263;\r\n      newOptions.forcedImageWidth = 263;\r\n    }\r\n    return newOptions;\r\n  };\r\n\r\n  // Recalculate initial options responsive for Photo Gallery\r\n  var recalculateInitialOptionsResponsivePhotoGallery = function () {\r\n    var newOptions = {};\r\n    var currentWidth = 0;\r\n    currentWidth = $(window).outerWidth();\r\n    if (currentWidth < 500) {\r\n      newOptions.separation = 100;\r\n      newOptions.forcedImageWidth = 289;\r\n    } else if (currentWidth >= 500 && currentWidth < 768) {\r\n      newOptions.separation = 160;\r\n      newOptions.forcedImageWidth = 289;\r\n    } else if (currentWidth >= 768 && currentWidth < 1024) {\r\n      newOptions.separation = 310;\r\n      newOptions.forcedImageWidth = 600;\r\n    } else if (currentWidth >= 1024 && currentWidth < 1440) {\r\n      newOptions.separation = 180;\r\n      newOptions.forcedImageWidth = 550;\r\n    } else {\r\n      newOptions.separation = 250;\r\n      newOptions.forcedImageWidth = 712;\r\n    }\r\n    return newOptions;\r\n  };\r\n\r\n  if ($(\".carousel-publications-container\").length > 0) {\r\n    var $carouselsPublications = [];\r\n    var carouselsPublicationsIndex = 0;\r\n\r\n    // Initialize waterwheel carousel for each carousel present in the page\r\n    $(\".carousel-publications-container\").each(function () {\r\n      $carouselsPublications[carouselsPublicationsIndex] = $(this);\r\n      $carouselsPublications[carouselsPublicationsIndex].prop('carousel-publication-id',\r\n        carouselsPublicationsIndex);\r\n      // Photo gallery widget default value support\r\n      if ($($carouselsPublications[carouselsPublicationsIndex]).hasClass('photo-gallery-container')) {\r\n        var defaultPhotoGalleryOptions = recalculateInitialOptionsResponsivePhotoGallery();\r\n        $carouselsPublications[carouselsPublicationsIndex].waterwheelCarousel({\r\n          separation: defaultPhotoGalleryOptions.separation,\r\n          forcedImageWidth: defaultPhotoGalleryOptions.forcedImageWidth\r\n        });\r\n      } else {\r\n        $carouselsPublications[carouselsPublicationsIndex].waterwheelCarousel();\r\n      };\r\n\r\n      // Prev button handling\r\n      $carouselsPublications[carouselsPublicationsIndex].parent().children('.carousel-publications-prev').on(\r\n        'click',\r\n        function (event) {\r\n          try {\r\n            const currentCarousel = $(event.target).parents('.carousel-publications-wrap').children(\r\n              '.carousel-publications-container');\r\n            var id = currentCarousel.prop('carousel-publication-id');\r\n            id = Number(id);\r\n            $carouselsPublications[id].prev();\r\n          } catch (er) {\r\n            console.error(er);\r\n          }\r\n          return false;\r\n        });\r\n\r\n      // Next button handling\r\n      $carouselsPublications[carouselsPublicationsIndex].parent().children('.carousel-publications-next').on(\r\n        'click',\r\n        function (event) {\r\n          try {\r\n            const currentCarousel = $(event.target).parents('.carousel-publications-wrap').children(\r\n              '.carousel-publications-container');\r\n            var id = currentCarousel.prop('carousel-publication-id');\r\n            id = Number(id);\r\n            $carouselsPublications[id].next();\r\n          } catch (er) {\r\n            console.error(er);\r\n          }\r\n          return false;\r\n        });\r\n\r\n      carouselsPublicationsIndex += 1;\r\n    });\r\n\r\n    // Swipe handling\r\n    $(\".carousel-publications-container\").swipe({\r\n      swipeStatus: function (event, phase, direction, distance) {\r\n        const currentCarousel = $(event.target).parents('.carousel-publications-wrap').children(\r\n          '.carousel-publications-container');\r\n        var id = currentCarousel.prop('carousel-publication-id');\r\n        id = Number(id);\r\n\r\n        if (phase == \"end\") {\r\n          if (direction == \"right\") {\r\n            $carouselsPublications[id].prev();\r\n          } else if (direction == \"left\") {\r\n            $carouselsPublications[id].next();\r\n          } else {\r\n            return false;\r\n          }\r\n        }\r\n      },\r\n      triggerOnTouchEnd: false,\r\n      threshold: 100\r\n    });\r\n\r\n    // Mouse Wheel Handling (disabled)\r\n\r\n    /* $(\".carousel-publications-wrap\").on('mousewheel', '.carousel-publications-container', function (e) {\r\n      const currentCarousel = $(e.target).parents('.carousel-publications-wrap').children(\r\n        '.carousel-publications-container');\r\n      var id = currentCarousel.prop('carousel-publication-id');\r\n      id = Number(id);\r\n\r\n      if (e.deltaY > 0) {\r\n        $carouselsPublications[id].next();\r\n      } else {\r\n        $carouselsPublications[id].prev();\r\n      }\r\n\r\n      e.preventDefault();\r\n    }); */\r\n\r\n\r\n    // Reload on resize handling\r\n\r\n    var resizeTimer;\r\n    var windowInitialWidth = $(window).outerWidth();\r\n\r\n    $(window).on('resize', function (e) {\r\n      // Prevent multiple reload when change screen orientation or window is resized multiple times\r\n      if ($(window).outerWidth() != windowInitialWidth) {\r\n        windowInitialWidth = $(window).outerWidth();\r\n        clearTimeout(resizeTimer);\r\n        resizeTimer = setTimeout(function () {\r\n          var newOptions = recalculateInitialOptionsResponsive();\r\n          var newPhotoGalleryOptions = recalculateInitialOptionsResponsivePhotoGallery();\r\n          for (var i = 0; i < $carouselsPublications.length; i++) {\r\n            if ($carouselsPublications[i].hasClass('photo-gallery-container')) {\r\n              // Photo gallery widget default value support\r\n              $carouselsPublications[i].reload(newPhotoGalleryOptions);\r\n            } else {\r\n              $carouselsPublications[i].reload(newOptions);\r\n            }\r\n          }\r\n        }, 500);\r\n      }\r\n    });\r\n  }\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/contacts-carousel.js\":\n/*!**************************************************!*\\\n  !*** ./src/scripts/widgets/contacts-carousel.js ***!\n  \\**************************************************/\n/*! exports provided: ContactsCarousel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ContactsCarousel\", function() { return ContactsCarousel; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass ContactsCarousel {\r\n\r\n  constructor(bindClass) {\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(bindClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      margin: 20,\r\n      navText: [],\r\n      /* onTranslate: this.onTranslated, */\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 2.5,\r\n          slideBy: 2\r\n        },\r\n        1440: {\r\n          items: 3.5,\r\n          slideBy: 3\r\n        }\r\n      }\r\n    }, true);\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  const component = new ContactsCarousel('.contacts-carousel.carousel-container .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/corporate-carousel.js\":\n/*!***************************************************!*\\\n  !*** ./src/scripts/widgets/corporate-carousel.js ***!\n  \\***************************************************/\n/*! exports provided: CorporateCarousel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CorporateCarousel\", function() { return CorporateCarousel; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass CorporateCarousel {\r\n  constructor(bindClass) {\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(bindClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      navText: [],\r\n      /* onTranslate: this.onTranslated, */\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 3.5,\r\n          slideBy: 3\r\n        },\r\n        1440: {\r\n          items: 4.5,\r\n          slideBy: 4\r\n        },\r\n        1920: {\r\n          items: 5.2,\r\n          slideBy: 5\r\n        }\r\n      }\r\n    }, true);\r\n    $('.corporate-carousel .card-corporate').click(this.handleClick);\r\n  }\r\n\r\n  handleClick(event) {\r\n   \r\n    if ($(event.target).is('span') || $(event.target).is('a')) {\r\n      event.preventDefault();\r\n    } \r\n    const el = event.currentTarget;\r\n    const url = $(el).attr('data-url');\r\n    const target = $(el).attr('data-target');\r\n    if (url && url.length > 0) {\r\n      window.open(url, target);\r\n    }\r\n    \r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new CorporateCarousel('.carousel-container.corporate-carousel .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/data-table-old.js\":\n/*!***********************************************!*\\\n  !*** ./src/scripts/widgets/data-table-old.js ***!\n  \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n// export const MOBILE_OPTIONS = {\r\n//   aspectRatio: 1,\r\n//   legend: {\r\n//     position: 'bottom',\r\n//     labels: {\r\n//       padding: 20,\r\n//       fontSize: 18,\r\n//       fontFamily: 'EniTabReg',\r\n//       fontColor: '#333',\r\n//       usePointStyle: true,\r\n//       boxWidth: 10\r\n//     },\r\n//   },\r\n//   layout: {\r\n//     padding: {\r\n//       left: 0,\r\n//       right: 0,\r\n//       top: 0,\r\n//       bottom: 0\r\n//     }\r\n//   },\r\n//   showAllTooltips: true,\r\n//   tooltips: {\r\n\r\n//     backgroundColor: 'rgba(0,0,0,0)',\r\n//     titleFontColor: 'rgba(0,0,0,0)',\r\n//     animationDuration: 0,\r\n//     bodyFontColor: '#333',\r\n//     xAlign: 'center',\r\n//   }  \r\n// };\r\n// export const DESKTOP_OPTIONS = {\r\n//   aspectRatio: 2.3,\r\n//   legend: {\r\n//     position: 'right',\r\n//     labels: {\r\n//       padding: 52,\r\n//       fontSize: 18,\r\n//       fontFamily: 'EniTabReg',\r\n//       fontColor: '#333',\r\n//       usePointStyle: true,\r\n//       boxWidth: 30,\r\n      \r\n//     }\r\n \r\n//   },\r\n//   layout: {\r\n//     padding: {\r\n//       left: 0,\r\n//       right: 0,\r\n//       top: 50,\r\n//       bottom: 50\r\n//     }\r\n//   },\r\n  \r\n//   tooltips: {\r\n//   //   callbacks: {\r\n//   //     labelColor: function(tooltipItem, chart) {\r\n//   //       return {\r\n           \r\n//   //       };\r\n//   //     },\r\n//   //     label: function(tooltipItem, data) {\r\n        \r\n//   //       var label = data.datasets[tooltipItem.datasetIndex].label || '';\r\n//   //       console.log('data: ', chart.config.data.datasets);\r\n//   //       if (label) {\r\n//   //           label += ': ';\r\n//   //       }\r\n//   //       label += Math.round(tooltipItem.yLabel * 100) / 100;\r\n//   //       return label;\r\n//   //   }\r\n//   // },\r\n//    backgroundColor: 'rgba(0,0,0,0)',\r\n//     animationDuration: 0,\r\n//     bodyFontColor: '#333',\r\n//     xAlign: 'center',\r\n//   },\r\n//   showAllTooltips: true,\r\n// };\r\n\r\n// // Add a polyfill for Math.trunc() because of error on IE (the object doesn't accept property or method trunc)\r\n// Math.trunc = Math.trunc || function (x) {\r\n//   if (isNaN(x)) {\r\n//     return NaN;\r\n//   }\r\n//   if (x > 0) {\r\n//     return Math.floor(x);\r\n//   }\r\n//   return Math.ceil(x);\r\n// };\r\n\r\n// export class DateTable {\r\n//   constructor() {\r\n\r\n//     Chart.pluginService.register({\r\n//       beforeRender: function (chart) {\r\n//           if (chart.config.options.showAllTooltips) {\r\n//               // create an array of tooltips\r\n//               // we can't use the chart tooltip because there is only one tooltip per chart\r\n//               chart.pluginTooltips = [];\r\n//               chart.config.data.datasets.forEach(function (dataset, i) {\r\n//                   chart.getDatasetMeta(i).data.forEach(function (sector, j) {\r\n//                       chart.pluginTooltips.push(new Chart.Tooltip({\r\n//                           _chart: chart.chart,\r\n//                           _chartInstance: chart,\r\n//                           _data: chart.data,\r\n//                           _options: chart.options.tooltips,\r\n//                           _active: [sector]\r\n//                       }, chart));\r\n//                   });\r\n//               });\r\n  \r\n//               // turn off normal tooltips\r\n//               chart.options.tooltips.enabled = false;\r\n//           }\r\n//       },\r\n//       afterDraw: function (chart, easing) {\r\n//           if (chart.config.options.showAllTooltips) {\r\n//               // we don't want the permanent tooltips to animate, so don't do anything till the animation runs atleast once\r\n//               if (!chart.allTooltipsOnce) {\r\n//                   if (easing !== 1)\r\n//                       return;\r\n//                   chart.allTooltipsOnce = true;\r\n//               }\r\n  \r\n//               // turn on tooltips\r\n//               chart.options.tooltips.enabled = true;\r\n//               Chart.helpers.each(chart.pluginTooltips, function (tooltip) {\r\n//                   tooltip.initialize();\r\n//                   tooltip.update();\r\n//                   // we don't actually need this since we are not animating tooltips\r\n//                   tooltip.pivot();\r\n//                   tooltip.transition(easing).draw();\r\n//               });\r\n//               chart.options.tooltips.enabled = false;\r\n//           }\r\n//       },\r\n      \r\n//   });\r\n\r\n\r\n//     const sections = $('section.data-table');\r\n//     if (sections.length > 0) {\r\n//       sections.each((i, el) => {\r\n//         this.handleTableScroll(el);\r\n//         const graphCanvas = $(el).find('canvas.data-table-graph');\r\n//         const isDark = $(el).hasClass('dark-gray-theme');\r\n//         if (graphCanvas.length > 0) {\r\n//           this.drawGraphs(graphCanvas, isDark);\r\n//         }\r\n\r\n//       });\r\n//     }\r\n\r\n    \r\n\r\n//     // const graphSections = $('section.data-table canvas.data-table-graph');\r\n//     // if (graphSections.length > 0) {\r\n//     //   graphSections.each((i, graphCanvas) => {        \r\n//     //     this.drawGraphs(graphCanvas);\r\n//     //   });\r\n//     // }\r\n\r\n\r\n//   }\r\n\r\n//   checkScroll(target, settings) {\r\n//     console.log('checkScroll', target, settings);\r\n//   }\r\n\r\n//   drawGraphs(graphCanvas, isDark) {\r\n//     console.log(graphCanvas);\r\n//     const data = JSON.parse($(graphCanvas).attr('data-graph'));\r\n//     const color = isDark ? '#fff' : '#333';\r\n//     MOBILE_OPTIONS.legend.labels.fontColor = DESKTOP_OPTIONS.legend.labels.fontColor = color;\r\n\r\n//     const pie = new Chart(graphCanvas, {\r\n//       type: 'pie',\r\n//       data: data,\r\n//       options: \r\n//         window.innerWidth < 1025 ? MOBILE_OPTIONS : DESKTOP_OPTIONS\r\n    \r\n    \r\n//     });\r\n\r\n//     // pie.options.legend.onHover = (event, legendItem) => {\r\n//     //   const index = data.labels.findIndex(l => l === legendItem.text);\r\n//     //   const color = pie.data.datasets[0].backgroundColor[0];\r\n//     // };\r\n\r\n//     window.onresize = () => {\r\n//       this.updateGraph(pie);\r\n//     };\r\n//   }\r\n\r\n//   updateGraph(pie) {\r\n//     if (pie) {\r\n//       pie.options = window.innerWidth < 1025 ? MOBILE_OPTIONS : DESKTOP_OPTIONS;\r\n//       pie.update();\r\n//     }\r\n//   }\r\n\r\n//   handleTableScroll(el) {\r\n//     const leftBtn = $(el).find('button.left-scroll');\r\n//     leftBtn.addClass(\"hidden\");\r\n\r\n//     const rightBtn = $(el).find('button.right-scroll');\r\n\r\n//     const dt = $(el).find('table.eni-table');\r\n//     if (dt.width() <= dt.parent('.scroll-x').width()) {\r\n//       // disable right btn\r\n//       rightBtn.addClass(\"hidden\");\r\n//     }\r\n//     let scrollLeftIntervalId = 0;\r\n//     let scrollRightIntervalId = 0;\r\n\r\n//     rightBtn.on('mousedown touchstart', (event) => {\r\n//       scrollRightIntervalId = setInterval(() => {\r\n//         // Handle right scroll\r\n//         console.log('handleRightScroll', event);\r\n//         const section = $(event.currentTarget).parents('section.data-table');\r\n//         const eniFocusArea = section.find('.eni-focus-area');\r\n//         const scrollXDiv = section.find('.scroll-x');\r\n//         const dt = section.find('.eni-table');\r\n//         const thActive = dt.find('th.active');\r\n//         $(thActive).toggleClass('active');\r\n//         const nextTh = $(thActive).next('th');\r\n//         if (nextTh) {\r\n//           scrollXDiv.scrollTo($(nextTh), 'slow', {\r\n//             onAfter: (t) => {\r\n//               console.log('onAfter', t);\r\n//               $(t).toggleClass('active');\r\n//               const diff = Math.trunc(dt.width() - scrollXDiv.scrollLeft());\r\n//               section.find('button.left-scroll').removeClass(\"hidden\");\r\n//               if (diff <= eniFocusArea.width()) {\r\n//                 section.find('button.right-scroll').addClass(\"hidden\");\r\n//               }\r\n//             }\r\n//           });\r\n//         }\r\n//       }, 50);\r\n\r\n//     }).bind('mouseup mouseleave touchend', () => {\r\n//       clearInterval(scrollRightIntervalId);\r\n//     });\r\n\r\n//     leftBtn.on('mousedown touchstart', (event) => {\r\n//       scrollLeftIntervalId = setInterval(() => {\r\n\r\n//         // Handle left scroll\r\n//         console.log('handleLeftScroll', event);\r\n//         const section = $(event.currentTarget).parents('section.data-table');\r\n//         const scrollXDiv = section.find('.scroll-x');\r\n//         const dt = section.find('.eni-table');\r\n//         const thActive = dt.find('th.active');\r\n//         $(thActive).toggleClass('active');\r\n//         const previousTh = $(thActive).prev('th');\r\n//         if (previousTh) {\r\n//           scrollXDiv.scrollTo($(previousTh), 'slow', {\r\n//             onAfter: (t) => {\r\n//               console.log('onAfter', t);\r\n//               $(t).toggleClass('active');\r\n//               section.find('button.right-scroll').removeClass(\"hidden\");\r\n//               if (scrollXDiv.scrollLeft() == 0) {\r\n//                 section.find('button.left-scroll').addClass(\"hidden\");\r\n//               }\r\n//             }\r\n//           });\r\n//         }\r\n\r\n//       }, 50);\r\n\r\n//     }).bind('mouseup mouseleave touchend', () => {\r\n//       clearInterval(scrollLeftIntervalId);\r\n//     });\r\n//   }\r\n// }\r\n\r\n// $(() => {\r\n//   const component = new DateTable();\r\n// });\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/data-table.js\":\n/*!*******************************************!*\\\n  !*** ./src/scripts/widgets/data-table.js ***!\n  \\*******************************************/\n/*! exports provided: DateTable */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DateTable\", function() { return DateTable; });\n// Add a polyfill for Math.trunc() because of error on IE (the object doesn't accept property or method trunc)\r\nMath.trunc = Math.trunc || function (x) {\r\n  if (isNaN(x)) {\r\n    return NaN;\r\n  }\r\n  if (x > 0) {\r\n    return Math.floor(x);\r\n  }\r\n  return Math.ceil(x);\r\n};\r\n\r\nclass DateTable {\r\n  constructor() {\r\n    var data = genData();\r\n\r\n    if (data) {\r\n      var MobileOptionsDark = {\r\n        animation: false,\r\n        legend: {\r\n          left: 'center',\r\n          bottom: 0,\r\n          orient: 'horizontal',\r\n          data: data.legendData,\r\n          icon: 'circle',\r\n          itemWidth: 20,\r\n          itemHeight: 20,\r\n          itemGap: 30,\r\n          selectedMode: false,\r\n          textStyle: {\r\n            color: '#fff',\r\n            fontFamily: 'EniTabReg',\r\n            fontSize: 16\r\n          }\r\n        },\r\n        series: [{\r\n          type: 'pie',\r\n          radius: '70%',\r\n          bottom: 20,\r\n          center: ['50%', '50%'],\r\n          data: data.seriesData,\r\n\r\n          emphasis: {\r\n            itemStyle: {\r\n              shadowBlur: 10,\r\n              shadowOffsetX: 0,\r\n              shadowColor: 'rgba(0, 0, 0, 0.8)'\r\n            }\r\n          },\r\n          label: {\r\n            color: '#fff',\r\n            formatter: '{@name}'\r\n          },\r\n          labelLine: {\r\n            lineStyle: {\r\n              color: '#fff'\r\n            },\r\n\r\n          }\r\n        }]\r\n      };\r\n\r\n      var MobileOptionsLight = {\r\n        animation: false,\r\n        legend: {\r\n          left: 'center',\r\n          bottom: 0,\r\n          orient: 'horizontal',\r\n          data: data.legendData,\r\n          icon: 'circle',\r\n          itemWidth: 20,\r\n          itemHeight: 20,\r\n          itemGap: 30,\r\n          selectedMode: false,\r\n          textStyle: {\r\n            color: '#333',\r\n            fontFamily: 'EniTabReg',\r\n            fontSize: 16\r\n          }\r\n        },\r\n        series: [{\r\n          type: 'pie',\r\n          radius: '70%',\r\n          bottom: 20,\r\n          center: ['50%', '50%'],\r\n          data: data.seriesData,\r\n\r\n          emphasis: {\r\n            itemStyle: {\r\n              shadowBlur: 10,\r\n              shadowOffsetX: 0,\r\n              shadowColor: 'rgba(0, 0, 0, 0.8)'\r\n            }\r\n          },\r\n          label: {\r\n            color: '#333',\r\n            formatter: '{@name}'\r\n          },\r\n          labelLine: {\r\n            lineStyle: {\r\n              color: '#333'\r\n            },\r\n\r\n          }\r\n        }]\r\n      };\r\n\r\n      var DesktopOptionsDark = {\r\n        animation: false,\r\n        legend: {\r\n          orient: 'vertical',\r\n          right: 20,\r\n          top: '40%',\r\n          bottom: 'auto',\r\n          icon: 'circle',\r\n          itemWidth: 30,\r\n          itemHeight: 30,\r\n          itemGap: 30,\r\n          data: data.legendData,\r\n          selectedMode: false,\r\n          textStyle: {\r\n            color: '#fff',\r\n            fontFamily: 'EniTabReg',\r\n            fontSize: 18\r\n          }\r\n        },\r\n        series: [{\r\n          type: 'pie',\r\n          radius: '85%',\r\n          top: 20,\r\n          center: ['40%', '50%'],\r\n          data: data.seriesData,\r\n          emphasis: {\r\n            itemStyle: {\r\n              shadowBlur: 10,\r\n              shadowOffsetX: 0,\r\n              shadowColor: 'rgba(0, 0, 0, 0.8)'\r\n            }\r\n          },\r\n          label: {\r\n            color: '#fff',\r\n            formatter: '{@name}'\r\n          },\r\n          labelLine: {\r\n            lineStyle: {\r\n              color: '#fff'\r\n            }\r\n          }\r\n        }]\r\n      };\r\n\r\n      var DesktopOptionsLight = {\r\n        animation: false,\r\n        legend: {\r\n          orient: 'vertical',\r\n          right: 20,\r\n          top: '40%',\r\n          bottom: 'auto',\r\n          data: data.legendData,\r\n          selectedMode: false,\r\n          icon: 'circle',\r\n          itemWidth: 30,\r\n          itemHeight: 30,\r\n          itemGap: 30,\r\n          textStyle: {\r\n            color: '#333',\r\n            fontFamily: 'EniTabReg',\r\n            fontSize: 18\r\n          }\r\n        },\r\n        series: [{\r\n          type: 'pie',\r\n          radius: '85%',\r\n          top: 20,\r\n          center: ['40%', '50%'],\r\n          data: data.seriesData,\r\n          emphasis: {\r\n            itemStyle: {\r\n              shadowBlur: 10,\r\n              shadowOffsetX: 0,\r\n              shadowColor: 'rgba(0, 0, 0, 0.8)'\r\n            }\r\n          },\r\n          label: {\r\n            color: '#333',\r\n            formatter: '{@name}'\r\n          },\r\n          labelLine: {\r\n            lineStyle: {\r\n              color: '#333'\r\n            },\r\n\r\n          }\r\n        }]\r\n      };\r\n\r\n      const charts = $('.maindata-table-graph');\r\n\r\n      for (let i = 0; i < charts.length; i++) {\r\n        if (charts && $(charts)) {\r\n          var myChart = echarts.init(charts[i]);\r\n          const section = $(charts[i]).parent().parent();\r\n\r\n          let isDark = $(section).hasClass('dark-gray-theme');\r\n          var color;\r\n          (isDark) ? color = '#fff': color = '#333';\r\n          console.log('color', color);\r\n          if (window.innerWidth < 1025 && isDark) {\r\n            myChart.setOption(MobileOptionsDark);\r\n          } else if (window.innerWidth < 1025 && !isDark) {\r\n            myChart.setOption(MobileOptionsLight);\r\n          } else if (window.innerWidth > 1024 && isDark) {\r\n            myChart.setOption(DesktopOptionsDark);\r\n          } else {\r\n            myChart.setOption(DesktopOptionsLight);\r\n          }\r\n          // (window.innerWidth < 1025) ? myChart.setOption(MobileOption) : myChart.setOption(DesktopOptions);\r\n          // (isDark) ? myChart.setOption(DesktopOptionsDark) : myChart.setOption(DesktopOptionsLight);\r\n        }\r\n      }\r\n    }\r\n\r\n    function genData() {\r\n      var graph = $('#main');\r\n\r\n      if (graph && graph.length > 0) {\r\n        var nameList = JSON.parse($(graph).attr('data-graph'));\r\n        const count = nameList.labels.length;\r\n\r\n        var legendData = [];\r\n        var data = [];\r\n        for (var i = 0; i < count; i++) {\r\n          var bgColor = nameList.datasets[0].backgroundColor[i];\r\n          var lab = nameList.datasets[0].data[i];\r\n\r\n          var label = nameList.labels[i].toUpperCase();\r\n          legendData.push(label);\r\n\r\n          data.push({\r\n            value: lab,\r\n            name: label,\r\n            itemStyle: {\r\n              color: bgColor\r\n            },\r\n          });\r\n        }\r\n        return {\r\n          legendData: legendData,\r\n          seriesData: data\r\n        };\r\n      } else return false;\r\n    }\r\n\r\n    const sections = $('section.data-table');\r\n    if (sections && sections.length > 0) {\r\n      sections.each((i, el) => {\r\n        this.handleTableScroll(el);\r\n        //    const graphCanvas = $(el).find('div.maindata-table-graph');\r\n        //    const isDark = $(el).hasClass('dark-gray-theme');\r\n      });\r\n    }\r\n  }\r\n\r\n  checkScroll(target, settings) {\r\n    console.log('checkScroll', target, settings);\r\n  }\r\n\r\n  // drawGraphs(graphCanvas, isDark) {\r\n  //   console.log(graphCanvas);\r\n  //   const data = JSON.parse($(graphCanvas).attr('data-graph'));\r\n  //   const color = isDark ? '#fff' : '#333';\r\n  //   // pie.options.legend.onHover = (event, legendItem) => {\r\n  //   //   const index = data.labels.findIndex(l => l === legendItem.text);\r\n  //   //   const color = pie.data.datasets[0].backgroundColor[0];\r\n  //   // };\r\n\r\n  //   window.onresize = () => {\r\n  //     this.updateGraph(pie);\r\n  //   };\r\n  // }\r\n\r\n  updateGraph(pie) {\r\n    if (pie) {\r\n      pie.options = window.innerWidth < 1025 ? MOBILE_OPTIONS : DESKTOP_OPTIONS;\r\n      pie.update();\r\n    }\r\n  }\r\n\r\n  handleTableScroll(el) {\r\n    const leftBtn = $(el).find('button.left-scroll');\r\n    leftBtn.addClass(\"hidden\");\r\n\r\n    const rightBtn = $(el).find('button.right-scroll');\r\n\r\n    const dt = $(el).find('table.eni-table');\r\n    if (dt.width() <= dt.parent('.scroll-x').width()) {\r\n      // disable right btn\r\n      rightBtn.addClass(\"hidden\");\r\n    }\r\n    let scrollLeftIntervalId = 0;\r\n    let scrollRightIntervalId = 0;\r\n\r\n    rightBtn.on('mousedown touchstart', (event) => {\r\n      scrollRightIntervalId = setInterval(() => {\r\n        // Handle right scroll\r\n        console.log('handleRightScroll', event);\r\n        const section = $(event.currentTarget).parents('section.data-table');\r\n        const eniFocusArea = section.find('.eni-focus-area');\r\n        const scrollXDiv = section.find('.scroll-x');\r\n        const dt = section.find('.eni-table');\r\n        const thActive = dt.find('th.active');\r\n        $(thActive).toggleClass('active');\r\n        const nextTh = $(thActive).next('th');\r\n        if (nextTh) {\r\n          scrollXDiv.scrollTo($(nextTh), 'slow', {\r\n            onAfter: (t) => {\r\n              console.log('onAfter', t);\r\n              $(t).toggleClass('active');\r\n              const diff = Math.trunc(dt.width() - scrollXDiv.scrollLeft());\r\n              section.find('button.left-scroll').removeClass(\"hidden\");\r\n              if (diff <= eniFocusArea.width()) {\r\n                section.find('button.right-scroll').addClass(\"hidden\");\r\n              }\r\n            }\r\n          });\r\n        }\r\n      }, 50);\r\n\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      clearInterval(scrollRightIntervalId);\r\n    });\r\n\r\n    leftBtn.on('mousedown touchstart', (event) => {\r\n      scrollLeftIntervalId = setInterval(() => {\r\n\r\n        // Handle left scroll\r\n        console.log('handleLeftScroll', event);\r\n        const section = $(event.currentTarget).parents('section.data-table');\r\n        const scrollXDiv = section.find('.scroll-x');\r\n        const dt = section.find('.eni-table');\r\n        const thActive = dt.find('th.active');\r\n        $(thActive).toggleClass('active');\r\n        const previousTh = $(thActive).prev('th');\r\n        if (previousTh) {\r\n          scrollXDiv.scrollTo($(previousTh), 'slow', {\r\n            onAfter: (t) => {\r\n              console.log('onAfter', t);\r\n              $(t).toggleClass('active');\r\n              section.find('button.right-scroll').removeClass(\"hidden\");\r\n              if (scrollXDiv.scrollLeft() == 0) {\r\n                section.find('button.left-scroll').addClass(\"hidden\");\r\n              }\r\n            }\r\n          });\r\n        }\r\n      }, 50);\r\n\r\n    }).bind('mouseup mouseleave touchend', () => {\r\n      clearInterval(scrollLeftIntervalId);\r\n    });\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new DateTable();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/disclaimer-all-pages.js\":\n/*!*****************************************************!*\\\n  !*** ./src/scripts/widgets/disclaimer-all-pages.js ***!\n  \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n(function ($) {\r\n  \r\n  let getDomain = document.location.origin;\r\n  let splitDomain = getDomain.split(':');\r\n  let getUrl = splitDomain[1];\r\n  let correctUrl = \"\";\r\n\r\n  if ( (getUrl.includes('redazione')) || (getUrl.includes('localhost')) ){\r\n    correctUrl ='/images_failover/bin/enicom/data/disclaimer.json';\r\n  } else {\r\n    correctUrl ='/images_failover/bin/enicom/data/disclaimer.json'; \r\n  }\r\n\r\n  // All pages\r\n  if ($(\"#ModalPageDisclaimer\").attr(\"data-modal-custom\")) {\r\n    var getPath = $(\"#ModalPageDisclaimer\").attr(\"data-modal-custom\");\r\n    var getLink = '';\r\n    var targetWidget = '';\r\n    var redirect = true;\r\n\r\n    modalAll(getPath, getLink, targetWidget, redirect);\r\n  }\r\n\r\n  // Click document publication\r\n  $(\".publications-item-container a[data-modal-custom]\").on(\"click\", function (e) {\r\n    resetModal();\r\n    var getLink = $(this).attr(\"href\");\r\n    var targetWidget = $(this).attr(\"target\");\r\n    var getPath = $(this).attr(\"data-modal-custom\");\r\n    var redirect = false;\r\n\r\n    if (targetWidget) {\r\n      targetWidget = targetWidget;\r\n    } else {\r\n      targetWidget = '';\r\n    }\r\n\r\n    modalAll(getPath, getLink, targetWidget, redirect);\r\n\r\n    e.preventDefault();\r\n    e.stopImmediatePropagation();\r\n    e.stopPropagation();\r\n    return false;\r\n  });\r\n\r\n  // Click carousel publication\r\n  $(\".carousel-publications-widget div.card-publication[data-modal-custom]\").on(\"click\", function (e) {\r\n    resetModal();\r\n    var getLink = $(this).attr(\"data-href\");\r\n    var getPath = $(this).attr(\"data-modal-custom\");\r\n    var targetWidget = $(this).attr(\"data-target\");\r\n    var redirect = false;\r\n\r\n    if (targetWidget) {\r\n      targetWidget = targetWidget;\r\n    } else {\r\n      targetWidget = '';\r\n    }\r\n\r\n    modalAll(getPath, getLink, targetWidget, redirect);\r\n\r\n    e.preventDefault();\r\n    e.stopImmediatePropagation();\r\n    e.stopPropagation();\r\n    return false;\r\n  });\r\n\r\n  // Corporate Detail Launch\r\n  $(\".corporate-detail-launch a[data-modal-custom]\").on(\"click\", function (e) {\r\n    resetModal();\r\n    var getLink = $(this).attr(\"href\");\r\n    var getPath = $(this).attr(\"data-modal-custom\");\r\n    var targetWidget = $(this).attr(\"target\");\r\n    var redirect = false;\r\n\r\n    if (targetWidget) {\r\n      targetWidget = targetWidget;\r\n    } else {\r\n      targetWidget = '';\r\n    }\r\n\r\n    modalAll(getPath, getLink, targetWidget, redirect);\r\n\r\n    e.preventDefault();\r\n    e.stopImmediatePropagation();\r\n    e.stopPropagation();\r\n    return false;\r\n  });\r\n  \r\n  // Hero banner \r\n \r\n  $(\"section.herobanner-homepage-section[data-modal-custom]\").on(\"click\", function (e) {\r\n    resetModal();\r\n    var getLink = $(this).attr(\"data-url\");\r\n    var getPath = $(this).attr(\"data-modal-custom\");\r\n    var targetWidget = $(this).attr(\"data-target\");\r\n    var redirect = false;\r\n\r\n    if (targetWidget) {\r\n      targetWidget = targetWidget;\r\n    } else {\r\n      targetWidget = '';\r\n    }\r\n\r\n    modalAll(getPath, getLink, targetWidget, redirect);\r\n\r\n    e.preventDefault();\r\n    e.stopImmediatePropagation();\r\n    e.stopPropagation();\r\n    return false;\r\n  });\r\n\r\n\r\n \r\n  $(\"section.herobanner-homepage-section a[data-modal-custom]\").on(\"click\", function (e) {\r\n    resetModal();\r\n    var getLink = $(this).attr(\"href\");\r\n    var getPath = $(this).attr(\"data-modal-custom\");\r\n    var targetWidget = $(this).attr(\"target\");\r\n    var redirect = false;\r\n\r\n    if (targetWidget) {\r\n      targetWidget = targetWidget;\r\n    } else {\r\n      targetWidget = '';\r\n    }\r\n\r\n    modalAll(getPath, getLink, targetWidget, redirect);\r\n\r\n    e.preventDefault();\r\n    e.stopImmediatePropagation();\r\n    e.stopPropagation();\r\n    return false;\r\n  });\r\n\r\n\r\n  // Event-highlight-countdown \r\n  $(\"section.event-highlight-countdown[data-modal-custom]\").on(\"click\", function (e) {\r\n    resetModal();\r\n    var getLink = $(this).attr(\"data-url\");\r\n    var getPath = $(this).attr(\"data-modal-custom\");\r\n    var targetWidget = $(this).attr(\"data-target\");\r\n    var redirect = false;\r\n\r\n    if (targetWidget) {\r\n      targetWidget = targetWidget;\r\n    } else {\r\n      targetWidget = '';\r\n    }\r\n\r\n    modalAll(getPath, getLink, targetWidget, redirect);\r\n\r\n    e.preventDefault();\r\n    e.stopImmediatePropagation();\r\n    e.stopPropagation();\r\n    return false;\r\n  });\r\n\r\n  $(\"section.event-highlight-countdown a[data-modal-custom]\").on(\"click\", function (e) {\r\n    resetModal();\r\n    var getLink = $(this).attr(\"href\");\r\n    var getPath = $(this).attr(\"data-modal-custom\");\r\n    var targetWidget = $(this).attr(\"target\");\r\n    var redirect = false;\r\n\r\n    if (targetWidget) {\r\n      targetWidget = targetWidget;\r\n    } else {\r\n      targetWidget = '';\r\n    }\r\n\r\n    modalAll(getPath, getLink, targetWidget, redirect);\r\n\r\n    e.preventDefault();\r\n    e.stopImmediatePropagation();\r\n    e.stopPropagation();\r\n    return false;\r\n  });\r\n\r\n  // Carousel publication\r\n  // reset la modale perchè se si apre la pagina e poi i pdf i campi vengono contaminati\r\n  function resetModal() {\r\n    $(\"#ModalPageDisclaimer .modal-header .modal-title\").remove();\r\n    $(\"#ModalPageDisclaimer .modal-subheader\").remove();\r\n    $(\"#ModalPageDisclaimer .modal-body button.procede-btn\").remove();\r\n    $(\"#ModalPageDisclaimer .modal-body button.go-back-btn\").remove();\r\n    // TO DO verificare\r\n    $(\"#ModalPageDisclaimer .modal-body a.btnRedirectUrl\").remove();\r\n    $(\"#ModalPageDisclaimer #disclaimer-terms-allpage span.checkbox-label\").remove();\r\n    $(\"#ModalPageDisclaimer #disclaimer-terms-allpage span.checkmark\").remove();\r\n    $(\"#ModalPageDisclaimer .modal-body button.procede-btn\").removeAttr(\"href\");\r\n    $(\"#ModalPageDisclaimer .modal-body button.go-back-btn\").removeAttr(\"href\");\r\n    $(\"#ModalPageDisclaimer .modal-content .close\").remove();\r\n    $('#ModalPageDisclaimer #checkbox-space-container').addClass('notVisible');\r\n    $('#ModalPageDisclaimer #link-disclaimer-page').removeClass('visible');\r\n    $(\"#ModalPageDisclaimer #link-disclaimer-page\").removeAttr(\"href\");\r\n    $(\"#ModalPageDisclaimer #link-disclaimer-page\").removeAttr(\"target\");\r\n    $(\"#ModalPageDisclaimer #link-disclaimer-page\").text('');\r\n  }\r\n\r\n  // Call ajax\r\n  function modalAll(getPath, getLink, targetWidget, redirect) {\r\n    $.ajax({\r\n      type: \"GET\",\r\n      // async: false,\r\n      // url: \"/assets/disclaimer/disclaimer.json\",\r\n      // url: \"/bin/enicom/data/disclaimer.json\",\r\n      url:correctUrl,\r\n      data: { path: getPath },\r\n      success: function (result) {\r\n\r\n        var redirectUrl = \"javascript:void(0)\";\r\n\r\n        var jsonResultTitle = \"\";\r\n        var jsonResultStringifyTitle = JSON.stringify(result.properties.title);\r\n        if (jsonResultStringifyTitle) {\r\n          jsonResultTitle = JSON.parse(jsonResultStringifyTitle);\r\n        }\r\n\r\n        var jsonResultSubtitle = \"\";\r\n        var jsonResultStringifySubtitle = JSON.stringify(result.properties.subtitle);\r\n        if (jsonResultStringifySubtitle) {\r\n            jsonResultSubtitle = JSON.parse(jsonResultStringifySubtitle);\r\n        }\r\n\r\n        var jsonStringifyTextdisclaimer = JSON.stringify(result.properties.textdisclaimer);\r\n        var jsonResultTextdisclaimer = JSON.parse(jsonStringifyTextdisclaimer);\r\n\r\n        //console.log(\"risultato json: \"+jsonResultTextdiscalimer );\r\n        $(\"#ModalPageDisclaimer .scroll-area\").html(jsonResultTextdisclaimer);\r\n\r\n        var jsonResultStringifyIagree = JSON.stringify(result.properties.checkboxlabel);\r\n        var jsonResultIagree = \"\";\r\n        if (jsonResultStringifyIagree) {\r\n          jsonResultIagree = JSON.parse(jsonResultStringifyIagree);\r\n        }\r\n\r\n        var jsonResultStringifyYes = JSON.stringify(result.properties.yes);\r\n        var jsonResultYes = \"\";\r\n        if (jsonResultStringifyYes) {\r\n          jsonResultYes = JSON.parse(jsonResultStringifyYes);\r\n        }\r\n\r\n        var jsonResultStringifyNo = JSON.stringify(result.properties.no);\r\n        var jsonResultNo = \"\";\r\n        if (jsonResultStringifyNo) {\r\n          jsonResultNo = JSON.parse(jsonResultStringifyNo);\r\n        }\r\n\r\n        var jsonResultStringifyRedirect = JSON.stringify(result.properties.redirectionnotacceptance);\r\n        var jsonResultRedirect = \"\";\r\n        if (jsonResultStringifyRedirect) {\r\n          jsonResultRedirect = JSON.parse(jsonResultStringifyRedirect);\r\n        }\r\n\r\n        var jsonResultStringifyContinue = JSON.stringify(result.properties.labelbuttonCheckbox);\r\n        var jsonResultContinue = \"\";\r\n        if (jsonResultStringifyContinue) {\r\n          jsonResultContinue = JSON.parse(jsonResultStringifyContinue);\r\n        }\r\n\r\n        if (getLink !== '') {\r\n          $(\"#ModalPageDisclaimer #link-disclaimer-page\").attr(\"href\", getLink);\r\n          $(\"#ModalPageDisclaimer #link-disclaimer-page\").attr(\"target\", targetWidget)\r\n\r\n          $(\"#ModalPageDisclaimer .modal-body\").on(\"click\", \".procede-btn\", function (e) {\r\n            window.open($(this).prev().attr(\"href\"), $(this).prev().attr(\"target\")); \r\n            e.preventDefault();\r\n            e.stopImmediatePropagation(); \r\n            e.stopPropagation();\r\n            return false;\r\n          });\r\n        }\r\n\r\n        if (redirect==true) {\r\n          redirectUrl=jsonResultRedirect;\r\n        }\r\n\r\n        if (jsonResultYes.length) {\r\n          $(\"#ModalPageDisclaimer .modal-body\").append(' <button type=\"button\" class=\"btn procede-btn\" >' + jsonResultYes + ' </button>');\r\n\r\n          if (jsonResultNo.length) {\r\n            $(\"#ModalPageDisclaimer .modal-body\").append('<a href=\"' + redirectUrl + '\" target=\"_self\" class=\"btnRedirectUrl\"><button type=\"button\" class=\"btn go-back-btn\">' + jsonResultNo + '</button></a>');\r\n          }\r\n        } else {\r\n          if (jsonResultIagree.length) {\r\n            $(\"#ModalPageDisclaimer .modal-content\").append('<a href=\"' + redirectUrl + '\" target=\"_self\"><button type=\"button\" class=\"close\"><span aria-hidden=\"true\" class=\"icon-close-small\"></span></button></a>');\r\n            $(\"#ModalPageDisclaimer #disclaimer-terms-allpage\").append('<span class=\"checkbox-label\">' + jsonResultIagree + '</span>' + '<span class=\"checkmark\"></span>');\r\n            $(\"#ModalPageDisclaimer #link-disclaimer-page\").text(jsonResultContinue);\r\n            $('#ModalPageDisclaimer #checkbox-space-container').removeClass(\"notVisible\");\r\n          }\r\n        }\r\n\r\n        if (redirect==false) {\r\n          $(\"#ModalPageDisclaimer .modal-content\").on(\"click\", \".close\", function (e) {\r\n            $('#ModalPageDisclaimer').modal('hide');\r\n          });\r\n\r\n          $(\"#ModalPageDisclaimer .modal-body\").on(\"click\", \".go-back-btn\", function (e) {\r\n            $('#ModalPageDisclaimer').modal('hide');\r\n          });\r\n        }\r\n\r\n        if (jsonResultTitle.length) {\r\n          $(\"#ModalPageDisclaimer .modal-header\").html('<h4 class=\"modal-title\">' + jsonResultTitle + '</h4>');\r\n        }\r\n\r\n        if (jsonResultSubtitle.length) {\r\n          $('<div class=\"modal-subheader\"><h5 class=\"modal-subtitle\">' + jsonResultSubtitle + '</h5></div>').remove().insertAfter(\"#ModalPageDisclaimer .modal-header\");\r\n        }\r\n\r\n      },\r\n      error: function () {\r\n        $(\"#ModalPageDisclaimer .scroll-area\").html('ERROR');\r\n        window.location.href = 'https://www.eni.com';\r\n      }\r\n    });\r\n\r\n    // show modal \r\n    $('#ModalPageDisclaimer').modal({ backdrop: 'static', keyboard: false });\r\n    $('.modal-backdrop.fade.show').css('opacity', '0.9');\r\n    \r\n    //i agree with button \r\n    let show = false;\r\n    var btnIAgree = $('#ModalPageDisclaimer #link-disclaimer-page');\r\n    var checkSpace = $('#ModalPageDisclaimer #checkbox-space-container');\r\n\r\n    $('#ModalPageDisclaimer #disclaimer-terms-allpage').click(() => {\r\n      if (!show) {\r\n        $('#ModalPageDisclaimer #disclaimer-terms-allpage').click(() => {\r\n          $(btnIAgree).addClass(\"visible\");\r\n          $(checkSpace).addClass(\"notVisible\");\r\n          show = true;\r\n        });\r\n      } else {\r\n        $('#ModalPageDisclaimer #disclaimer-terms-allpage').click(() => {\r\n          $(btnIAgree).removeClass(\"visible\");\r\n          $(checkSpace).removeClass(\"notVisible\");\r\n          show = false;\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  $(\"#ModalPageDisclaimer #link-disclaimer-page\").on(\"click\", function (e) {\r\n    $('#ModalPageDisclaimer').modal('hide');\r\n  });\r\n\r\n  $(\"#ModalPageDisclaimer .modal-body\").on(\"click\", \".procede-btn\", function (e) {\r\n    $('#ModalPageDisclaimer').modal('hide');\r\n  });\r\n\r\n}(jQuery));\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/document-disclaimer-egl.js\":\n/*!********************************************************!*\\\n  !*** ./src/scripts/widgets/document-disclaimer-egl.js ***!\n  \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n$(document).ready(() => {\r\n\r\n  const buttons = $('.document-disclaimer-btn');\r\n\r\n  for (let i = 0; i < buttons.length; i++) {\r\n    if (buttons && $(buttons)) {\r\n      $(buttons[i]).on('click', () => {\r\n        console.log('BOTTONE CLICCATO');\r\n        var X = $(buttons[i]).attr('document-link');\r\n        console.log('BOTTONE CLICCATO X', X);\r\n        $('#link-disclaimer-egl').attr('href', X);\r\n      });\r\n    }\r\n  }\r\n\r\n  let show = false;\r\n  var target = $('#link-disclaimer-egl');\r\n  $('#disclaimer-terms-egl').click(() => {\r\n\r\n    if (!show) {\r\n      $('#disclaimer-terms-egl').click(() => {\r\n        $(target).addClass(\"visible\");\r\n        show = true;\r\n      });\r\n    } else {\r\n      $('#disclaimer-terms-egl').click(() => {\r\n        $(target).removeClass(\"visible\");\r\n        show = false;\r\n      });\r\n    }\r\n  });\r\n\r\n  $(target).click( () => {\r\n    $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n  });\r\n\r\n  $('.eni-modal').on(\"hide.bs.modal\", function() {\r\n    $(target).removeClass(\"visible\");\r\n    setTimeout(() => {\r\n      $(\"input\").prop('checked', false);\r\n    }, 20);\r\n    show = false;\r\n  });\r\n   \r\n});\r\n\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/document-disclaimer.js\":\n/*!****************************************************!*\\\n  !*** ./src/scripts/widgets/document-disclaimer.js ***!\n  \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n$(document).ready(() => {\r\n\r\n  const buttons = $('.document-disclaimer-btn');\r\n\r\n  for (let i = 0; i < buttons.length; i++) {\r\n    if (buttons && $(buttons)) {\r\n      $(buttons[i]).on('click', () => {\r\n        console.log('BOTTONE CLICCATO');\r\n        var X = $(buttons[i]).attr('document-link');\r\n        console.log('BOTTONE CLICCATO X', X);\r\n        $('#link-disclaimer').attr('href', X);\r\n      });\r\n    }\r\n  }\r\n\r\n  let show = false;\r\n  var target = $('#link-disclaimer');\r\n  $('#disclaimer-terms').click(() => {\r\n\r\n    if (!show) {\r\n      $('#disclaimer-terms').click(() => {\r\n        $(target).addClass(\"visible\");\r\n        show = true;\r\n      });\r\n    } else {\r\n      $('#disclaimer-terms').click(() => {\r\n        $(target).removeClass(\"visible\");\r\n        show = false;\r\n      });\r\n    }\r\n  });\r\n\r\n  $(target).click( () => {\r\n    $('#ModalDocumentDisclaimer').modal('toggle');\r\n  });\r\n\r\n  $('.eni-modal').on(\"hide.bs.modal\", function() {\r\n    $(target).removeClass(\"visible\");\r\n    setTimeout(() => {\r\n      $(\"input\").prop('checked', false);\r\n    }, 20);\r\n    show = false;\r\n  });\r\n   \r\n});\r\n\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/editorial-collection-card.js\":\n/*!**********************************************************!*\\\n  !*** ./src/scripts/widgets/editorial-collection-card.js ***!\n  \\**********************************************************/\n/*! exports provided: EditorialCollectionCard */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EditorialCollectionCard\", function() { return EditorialCollectionCard; });\nclass EditorialCollectionCard {\r\n  constructor() {\r\n    var isMobile = $(window).outerWidth() < 1024;\r\n    if(!isMobile){\r\n    $('.editorial-collection-highlight .content-type .title a, .editorial-collection-highlight .content-box a.title').hover(\r\n      (event) => this.handleHover(event.currentTarget, true),\r\n      (event) => this.handleHover(event.currentTarget, false)\r\n    );\r\n    }\r\n    if ($('.editorial-collection-highlight .view-more-container')) {\r\n      $(window).resize(event => this.handleViewMoreContainerResize(event));\r\n      if ($('.editorial-collection-highlight .view-more-container').is(':visible')) {\r\n        this.handleCards($('.editorial-collection-highlight .cards-container'));\r\n      }\r\n      $('.editorial-collection-highlight .view-more-container .btn-view-more').click(this.handleViewMoreClick);\r\n      $('.editorial-collection-highlight .view-more-container .btn-view-less').click(event => this.handleViewLessClick(event));\r\n    }\r\n  }\r\n\r\n  handleHover(el, inOut) {\r\n    const catEl = $(el).parent().parent().find('.category');\r\n\r\n    if (inOut) {\r\n      catEl.addClass('active');\r\n    } else {\r\n      catEl.removeClass('active');\r\n    }\r\n  }\r\n\r\n  handleViewMoreContainerResize(event) {\r\n    const viewMoreContainer = $('.editorial-collection-highlight .view-more-container');\r\n    if (viewMoreContainer && viewMoreContainer.is(':visible')) {\r\n      this.handleCards($('.editorial-collection-highlight .cards-container'));\r\n    }\r\n  }\r\n\r\n  handleCards(cards) {\r\n    cards.each((i, card) => {\r\n      const details = $(card).find('.detail');\r\n      if (details && details.length > 3) {\r\n        details.each((j, detail) => {\r\n          if (j > 3) {\r\n            $(detail).hide();\r\n          }\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  handleViewMoreClick(event) {\r\n    console.log('handleViewMoreClick', event);\r\n    try {\r\n      const btn = event.currentTarget;\r\n      $(btn).hide();\r\n      const parent = $(btn).parents('.collection-col-right');\r\n      const cards = parent.find('.detail');\r\n      cards.show();\r\n      $(btn).next('.btn-view-less').show();\r\n\r\n    } catch (ex) {\r\n      console.error(ex);\r\n    }\r\n  }\r\n\r\n  handleViewLessClick(event) {\r\n    console.log('handleViewLessClick', event);\r\n    try {\r\n      const btn = event.currentTarget;\r\n      $(btn).hide();\r\n      const parent = $(btn).parents('.collection-col-right');\r\n      const cards = parent.find('.detail');\r\n      cards.each((i, card) => {\r\n        if (i > 3) {\r\n          $(card).hide();\r\n        }\r\n      });\r\n      $(btn).prev('.btn-view-more').show();\r\n\r\n    } catch (ex) {\r\n      console.error(ex);\r\n    }\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new EditorialCollectionCard();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/editorial-content-list.js\":\n/*!*******************************************************!*\\\n  !*** ./src/scripts/widgets/editorial-content-list.js ***!\n  \\*******************************************************/\n/*! exports provided: EDITORIAL_CONTENT_LIST_PROPS, EditorialContentList */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDITORIAL_CONTENT_LIST_PROPS\", function() { return EDITORIAL_CONTENT_LIST_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EditorialContentList\", function() { return EditorialContentList; });\nconst EDITORIAL_CONTENT_LIST_PROPS = {\r\n  TITLE_CLASS: '.editorial-content-list .content-title'\r\n};\r\nclass EditorialContentList {\r\n  constructor() {\r\n    var isMobile = $(window).outerWidth() < 1024;\r\n    if(!isMobile){\r\n    $(EDITORIAL_CONTENT_LIST_PROPS.TITLE_CLASS).hover(\r\n      (event) => {\r\n        this.handleTitleHover(event.target);\r\n      }\r\n      ,\r\n      (event) => {\r\n        this.handleTitleHover(event.target);\r\n      }\r\n    );\r\n    }\r\n  }\r\n\r\n  handleTitleHover(el) {\r\n    const contentBox = $(el).parents('.content-box');\r\n    const yellowLine = $(contentBox).find('i.dash');\r\n\r\n    yellowLine.toggleClass('yellow-line');\r\n    yellowLine.toggleClass('yellow-pipe');\r\n\r\n  }\r\n\r\n}\r\n\r\n$(() => {\r\n  const component = new EditorialContentList();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/eni-table.js\":\n/*!******************************************!*\\\n  !*** ./src/scripts/widgets/eni-table.js ***!\n  \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n$( document ).ready(function() {\r\n    var innerWidth = $(window).width();\r\n\r\n    //Calculate width window\r\n    $(window).on('resize', function() {\r\n    innerWidth = $(window).width();\r\n    });\r\n\r\n    $(\".table--improved\").each(function() {\r\n    const divScroll = $(this).parent();\r\n\r\n        //Fix yellow border table without th\r\n        const firstRow = $(this).find(\"tr\")[0];\r\n        const secondRow = $(this).find(\"tr\")[1];\r\n        const firstTh = $(firstRow).children().first();\r\n        const typeCell = $(firstTh)[0].nodeName;\r\n        if (typeCell == \"TD\")\r\n        $(secondRow).children().addClass('borderTd');\r\n\r\n        if (innerWidth < 1024){\r\n\r\n                $(divScroll).scroll(function () {\r\n                    var widthTable = this.clientWidth;\r\n                    var scroll = $(this).scrollLeft();\r\n                    var totScroll = $(this).prop(\"scrollWidth\");\r\n                    totScroll = totScroll - widthTable;\r\n\r\n                    if ((totScroll - scroll) < 15)\r\n                   $(this).closest(\".shadow-improved\").addClass('no-shadow'); //Remove before\r\n                   else\r\n                   $(this).closest(\".shadow-improved\").removeClass('no-shadow'); //Add before\r\n                });\r\n\r\n\r\n        //Tranform row-selected desktop to col-selected mobile\r\n        if($(this).find(\"tr\").hasClass(\"row-selected\")){\r\n            var listRowMobile = $(this).find(\".row-selected\");\r\n\r\n            //Start new highlight from first cell and add <p> to shot text of first cell\r\n            $(listRowMobile).each(function() {\r\n            var classRow = $(this).attr(\"class\");\r\n            classRow = classRow.replace(\"row-selected\",\"\");\r\n            var firstTd = $(this).find(\"td\")[0];\r\n            var firstTdContent = $(firstTd).text();\r\n            //$(firstTd).replaceWith(\"<td style='position: initial; z-index: 2;'><span style='position:relative; z-index: 2;'>\"+firstTdContent+\"</span><div scope='col' class='col-selected' style='position: relative;'></div></td>\");\r\n            $(firstTd).replaceWith('<td scope=\"col\" class=\"col-selected '+classRow+'\"><div scope=\"col\" class=\"col-selected\"><span style=\"position:relative; z-index: 2;\">'+firstTdContent+'</span></div></td>');\r\n\r\n            });\r\n        }\r\n\r\n        var $this = $(this);\r\n        var newrows = [];\r\n        $this.find(\"tr\").each(function(){\r\n\r\n            //Add class Bold td of row-text-bold desktop to mobile (Bold row-desktop to col-mobile)\r\n            if($(this).hasClass('bold-text'))\r\n            $(this).children().addClass('bold-text');\r\n\r\n            var i = 0;\r\n            //Generate row for each th desktop and insert th for each row generate\r\n            $(this).find(\"th\").each(function(){\r\n                i++;\r\n                if(newrows[i] === undefined) { newrows[i] = $(\"<tr></tr>\"); }\r\n                newrows[i].append($(this));\r\n\r\n                //Trasformazione colonna desktop in riga mobile\r\n                if($(this).hasClass(\"col-selected\")){\r\n                    $(this).each(function() {\r\n                    $(this).parent(\"tr\").addClass(\"row-selected\");\r\n                    });\r\n                }\r\n            });\r\n\r\n            //Insert td dekstop for each tr generated before\r\n            $(this).find(\"td\").each(function(){\r\n                i++;\r\n                if(newrows[i] === undefined) { newrows[i] = $(\"<tr></tr>\"); } //Not important\r\n                newrows[i].append($(this));\r\n            });\r\n        });\r\n        $this.find(\"tr\").remove();\r\n        $.each(newrows, function(){\r\n            $this.append(this);\r\n        });\r\n\r\n        //Add class Tr to add Bold-text desktop to mobile\r\n        $(this).find(\"th\").each(function(){\r\n            if($(this).hasClass(\"bold-text\")){\r\n            $(this).parent().addClass('bold-text');\r\n            }\r\n        });\r\n\r\n        if($(this).find(\"row-selected\")){\r\n            $(this).find(\".row-selected\").each(function(){\r\n            //Find class th (get color class)\r\n            var colorTh = $(this).find(\"th\");\r\n            var colorTd = '';\r\n\r\n            if($(colorTh).hasClass('gray'))\r\n                colorTd = 'gray';\r\n            else if ($(colorTh).hasClass('yellow'))\r\n                colorTd = 'yellow';\r\n\r\n            //Find first td to start row selected\r\n            var primoBefore = $(this).find(\"td\");\r\n            primoBefore = $(primoBefore)[0];\r\n            var textCell = $(primoBefore).text();\r\n            $(primoBefore).replaceWith('<td class=\"cell-selected '+colorTd+'\"><span style=\"position: relative; z-index: 2;\">'+textCell+'</span></td>');\r\n            });\r\n            }\r\n        }\r\n\r\n    var countColumns = 0;\r\n    var widthTable = $(this).width();\r\n\r\n    //Calculate width table to scroll\r\n    if (innerWidth >= 1024){\r\n        const classDivScroll = $(divScroll).attr(\"class\");\r\n\r\n        if(classDivScroll == \"scrolltable\")\r\n            $(divScroll).scroll(function () {\r\n                var widthTable = this.clientWidth;\r\n                var scroll = $(this).scrollLeft();\r\n                var totScroll = $(this).prop(\"scrollWidth\");\r\n                totScroll = totScroll - widthTable;\r\n\r\n                if ((totScroll - scroll) < 15)\r\n                $(this).closest(\".shadow-improved\").addClass('no-shadow'); //Remove before\r\n                else\r\n                $(this).closest(\".shadow-improved\").removeClass('no-shadow'); //Add before\r\n            });\r\n\r\n        //On Dekstop count td (dekstop have columns as th)\r\n        countColumns--; //Minus thead\r\n        $(this).find(\"th\").each(function() {\r\n        if($(this).attr(\"scope\",\"col\"))\r\n        countColumns++;\r\n        });\r\n    }\r\n    else{\r\n\r\n        //On mobile count td (mobile have columns as td)\r\n        const firstRow = $(this).find(\"tr\")[0];\r\n        $(firstRow).find(\"td\").each(function() {\r\n        countColumns++;\r\n        });\r\n\r\n        //Add class Div color row-selected (th have color if row-selected)\r\n        // - If there are crossings between row and column must overwrite color first td col-selected (row color > col-color)\r\n        $(this).find(\".row-selected\").each(function(){\r\n            var colorTh = $(this).find(\"th\");\r\n            var colorDiv = '';\r\n            if($(colorTh).hasClass('gray')){\r\n                colorDiv = 'gray';}\r\n            else if ($(colorTh).hasClass('yellow')){\r\n                colorDiv = 'yellow';\r\n                }\r\n            $(this).find(\"div\").addClass(colorDiv);\r\n        });\r\n\r\n    var firstRowDiv = $(this).find(\"tbody\").children().first();\r\n    var lastRowDiv = $(this).find(\"tbody\").children().last();\r\n    $(firstRowDiv).find(\"th\").append($('<div class=\"first-cover\"></div>'));\r\n    $(lastRowDiv).find(\"th\").append($('<div class=\"last-cover\"></div>'));\r\n\r\n    }\r\n\r\n    if (innerWidth >= 1024){\r\n        $(this).find(\"tr\").children().each(function(){\r\n            $(this).append('<div class=\"border-cell\"></div>');\r\n        });\r\n\r\n        if(countColumns > 5){\r\n            widthTable = 25 + (16*countColumns) + '%';\r\n            $(this).width(widthTable);\r\n        }\r\n\r\n        //Add bold-text col if th have bold-text desktop\r\n        var thBoldList = $(this).find(\"th.bold-text\");\r\n        thBoldList = $(thBoldList);\r\n        var num=0;\r\n        var listA=null;\r\n        for(num; num<thBoldList.length; num++){\r\n        listA = thBoldList[num].cellIndex;\r\n        var rowList = $(this).closest(\".table--improved\").find(\"tbody tr\");\r\n            $(rowList).each(function(){\r\n                var listTd = $(this).find(\"td\");\r\n                listTd = $(listTd);\r\n                listTd.each(function(){\r\n                    if(this.cellIndex == listA)\r\n                    this.classList.add(\"bold-text\");\r\n                });\r\n            });\r\n        }\r\n    }\r\n\r\n    //Table Tablet\r\n    else if (innerWidth >= 768 && innerWidth < 1024){\r\n        widthTable = 25 + (16*countColumns) + '%';\r\n        $(this).width(widthTable);\r\n        }\r\n\r\n    //Table Mobile\r\n    else if (innerWidth < 768){\r\n        widthTable = 33 + (25*countColumns) + '%';\r\n        $(this).width(widthTable);\r\n        }\r\n\r\n        //Add width for highlight row\r\n        var widthTablePx = this.clientWidth;\r\n        $(this).find('.row-selected').css('--widthRow', widthTablePx + 'px');\r\n\r\n        $(this).find(\"tr\").each(function(){\r\n            var heightTablePx = this.clientHeight;\r\n            $(this).css('--heightRow', heightTablePx + 'px');\r\n        });\r\n\r\n        //Add height for highlight col\r\n        var heightTablePx = this.clientHeight;\r\n        $(this).find('tr').css('--heightCol', heightTablePx + 'px');\r\n\r\n        //Aggiunta larghezza th selezionato\r\n        var widthTh = $(this).find(\"th\").outerWidth();\r\n        widthTh = $(widthTh)[0];\r\n        $(this).find('.row-selected').css('--widthTh', widthTh + 'px');\r\n\r\n\r\n        if(innerWidth < 1024 && widthTh!=undefined){\r\n             var BoxDiv = $(this).closest('.eni-focus-area');\r\n             var BoxTable = $(this).parent();\r\n             var BoxShadow = $('<div class=\"shadow-improved line\"></div>');\r\n             $(BoxDiv).append(BoxShadow);\r\n             $(BoxShadow).append(BoxTable);\r\n             $(BoxDiv).find('.shadow-improved').css('--widthShadow', widthTh + 'px');\r\n\r\n             $(BoxDiv).append($(BoxDiv).find(\".note\"));\r\n             $(BoxDiv).append($(BoxDiv).find(\".didascalia\"));\r\n         }\r\n\r\n        //Aggiunta larghezza td selezionato\r\n        var heightTd = $(this).find(\"tr\").outerHeight();\r\n        heightTd = $(heightTd)[0];\r\n        $(this).closest(\".table--improved\").css('--heightTd', heightTd + 'px');\r\n\r\n        $(this).find(\".row-selected\").each(function(){\r\n            $(this).css('background-color','transparent');\r\n        });\r\n\r\n        //Add height shadow-improved table\r\n        var heightBody = $(this).find(\"tbody\").height();\r\n        heightBody = heightBody + 1;\r\n        $(this).closest(\".shadow-improved\").css('--heightBody', heightBody + 'px');\r\n\r\n      $(window).bind('orientationchange', function () {\r\n        location.reload(true);\r\n      });\r\n\r\n        //FIX IE\r\n        var ua = window.navigator.userAgent;\r\n        var msie = ua.indexOf(\"MSIE \");\r\n        \r\n        if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./))  // If Internet Explorer\r\n        {\r\n\r\n        //Background th IE\r\n        $(this).find(\"th\").css(\"background-color\",\"transparent\");\r\n        if (typeCell != \"TD\")\r\n        $(firstRow).css(\"background-color\",\"#ffffff !important\");\r\n\r\n        //List table columns + rows\r\n        var listCol = $(this).find(\"th\");\r\n        var listRow = $(this).find(\"tbody tr\");\r\n\r\n        //Add background cell when col is selected\r\n        for(var i=0; i<listCol.length; i++){\r\n                if($(listCol[i]).hasClass('col-selected')){\r\n                \r\n                //Add bg-cell row in the same position of column selected i=position-col j=position-cell\r\n                for(var j=0; j<listRow.length; j++){\r\n                var cellCol = $(listRow[j]).children();\r\n                cellCol = cellCol[i];\r\n\r\n                //Not add bg-color cell if this is in row-selected\r\n                if(!$(cellCol).parent(\"tr\").hasClass(\"row-selected\"))\r\n                    if(j%2==0){\r\n                        if($(listCol[i]).hasClass(\"yellow\"))\r\n                        $(cellCol).css(\"background-color\",\"#fdf2b7\");\r\n                        \r\n                        if($(listCol[i]).hasClass(\"gray\"))\r\n                        $(cellCol).css(\"background-color\",\"#dddddd\");}\r\n                    else if((j%2!=0)){\r\n                        if($(listCol[i]).hasClass(\"yellow\"))\r\n                        $(cellCol).css(\"background-color\",\"#f8edb3\");\r\n\r\n                        if($(listCol[i]).hasClass(\"gray\"))\r\n                        $(cellCol).css(\"background-color\",\"#d8d9da\");}\r\n                    }\r\n                }\r\n\r\n                }\r\n            }\r\n    });\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/event-cover.js\":\n/*!********************************************!*\\\n  !*** ./src/scripts/widgets/event-cover.js ***!\n  \\********************************************/\n/*! exports provided: EventCover */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventCover\", function() { return EventCover; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n/* harmony import */ var mobile_detect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mobile-detect */ \"./node_modules/mobile-detect/mobile-detect.js\");\n/* harmony import */ var mobile_detect__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mobile_detect__WEBPACK_IMPORTED_MODULE_1__);\n\r\n\r\n\r\nclass EventCover {\r\n\r\n  constructor(currentEventHighlight) {\r\n    const eventHighlights = $(currentEventHighlight);\r\n    for (let i = 0; i < eventHighlights.length; i++) {\r\n      this.init(eventHighlights[i]);\r\n    }\r\n  }\r\n\r\n  init(currentEventHighlight) {\r\n    // Get Data Attributes\r\n    var mainSelector = '#' + $(currentEventHighlight).attr('id');\r\n\r\n    var eventStart = new Date($(mainSelector).data(\"event-start\")).getTime();\r\n    var eventEnd = new Date($(mainSelector).data(\"event-end\")).getTime();\r\n    var eventPublish = new Date($(mainSelector).data(\"event-pub\")).getTime();\r\n    var isCountdown = $(mainSelector).data(\"countdown\");\r\n\r\n    // Get Current Date\r\n    var currentDate = new Date().getTime();\r\n\r\n    var countdownContainer = mainSelector + ' .countdown-container';\r\n    var liveContainer = mainSelector + ' .live-container';\r\n    var onDemandContainer = mainSelector + ' .ondemand-container';\r\n\r\n    if (isCountdown === true) {\r\n      $(countdownContainer).show();\r\n      $(liveContainer).hide();\r\n      $(onDemandContainer).hide();\r\n\r\n      // Check if Event is Current, Past or Future\r\n      if (eventStart > currentDate) {\r\n        // Future Event\r\n        this.startCountdown(mainSelector, eventStart, eventPublish);\r\n      } else if (eventStart <= currentDate) {\r\n        if (eventEnd < currentDate) {\r\n          // Past\r\n          this.handlePastEvent(countdownContainer, liveContainer, onDemandContainer);\r\n        } else {\r\n          // Current\r\n          this.handleLiveEvent(countdownContainer, liveContainer, onDemandContainer);\r\n        }\r\n      }\r\n    } else {\r\n      $(countdownContainer).hide();\r\n      $(liveContainer).hide();\r\n      $(onDemandContainer).hide();\r\n    }\r\n\r\n  }\r\n\r\n  startCountdown(mainSelector, date, publishDate) {\r\n    var countdownContainer = mainSelector + ' .countdown-container';\r\n    var liveContainer = mainSelector + ' .live-container';\r\n    var progressBar = mainSelector + ' .countdown-container .progress-bar-container .progress-bar';\r\n    var x = setInterval(function () {\r\n      var now = new Date().getTime();\r\n      var distance = date - now;\r\n\r\n      var progressBarWidth = ((now - publishDate) / (date - publishDate)) * 100;\r\n\r\n      var days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n      var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n      var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n      var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n\r\n      if(seconds < 10) {\r\n        seconds = \"0\" + seconds;\r\n      }\r\n      if(minutes < 10) {\r\n        minutes = \"0\" + minutes;\r\n      }\r\n      if(hours < 10) {\r\n        hours = \"0\" + hours;\r\n      }\r\n      if (days < 10) {\r\n        days = \"0\" + days;\r\n      }\r\n\r\n      // Inject values into DOM\r\n\r\n      $(countdownContainer + ' .numbers .days .value').text(days);\r\n      $(countdownContainer + ' .numbers .hours .value').text(hours);\r\n      $(countdownContainer + ' .numbers .minutes .value').text(minutes);\r\n      $(countdownContainer + ' .numbers .seconds .value').text(seconds);\r\n      $(progressBar).css(\"width\", progressBarWidth + \"%\");\r\n\r\n      if (distance < 0) {\r\n        clearInterval(x);\r\n        $(countdownContainer).hide();\r\n        $(liveContainer).show();\r\n      }\r\n    }, 1000);\r\n\r\n  }\r\n\r\n  handleLiveEvent(countdownContainer, liveContainer, onDemandContainer) {\r\n    $(countdownContainer).hide();\r\n    $(liveContainer).show();\r\n    $(onDemandContainer).hide();\r\n  };\r\n\r\n  handlePastEvent(countdownContainer, liveContainer, onDemandContainer) {\r\n    $(countdownContainer).hide();\r\n    $(liveContainer).hide();\r\n    $(onDemandContainer).show();\r\n  }\r\n}\r\n\r\n\r\n\r\n$(document).ready(function () {\r\n  const init = new EventCover(\".event-cover\");\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/event-highlight-countdown.js\":\n/*!**********************************************************!*\\\n  !*** ./src/scripts/widgets/event-highlight-countdown.js ***!\n  \\**********************************************************/\n/*! exports provided: EVENT_HIGHLIGHT_PROPS, EventHighlightHome */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EVENT_HIGHLIGHT_PROPS\", function() { return EVENT_HIGHLIGHT_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventHighlightHome\", function() { return EventHighlightHome; });\n\r\nconst EVENT_HIGHLIGHT_PROPS = {\r\n  SECTION_CLASS: 'section.event-highlight-countdown',\r\n};\r\n\r\nclass EventHighlightHome {\r\n\r\n  constructor() {\r\n\r\n    console.log('EventHighlightHome');\r\n    // Manage children selector when dynamic section instantiate class\r\n\r\n    $(EVENT_HIGHLIGHT_PROPS.SECTION_CLASS).click(this.handleClick);\r\n    $(EVENT_HIGHLIGHT_PROPS.SECTION_CLASS).hover((event) => this.handleHover(event, true), (event) => this.handleHover(\r\n      event, false));\r\n\r\n    const heroBanner = $(EVENT_HIGHLIGHT_PROPS.SECTION_CLASS);\r\n    for (let i = 0; i < heroBanner.length; i++) {\r\n      this.initCountDown(heroBanner[i]);\r\n    }\r\n    \r\n  }\r\n\r\n  initCountDown(heroBanner){\r\n    // Get Data Attributes\r\n    var mainSelector = '#' + $(heroBanner).attr('id');\r\n\r\n    var countdownStart = new Date($(mainSelector).data(\"countdown-start\")).getTime();\r\n    var countdownEnd = new Date($(mainSelector).data(\"countdown-end\")).getTime();\r\n    var isCountdown = $(mainSelector).data(\"countdown\");\r\n    var cta = $(mainSelector).data(\"cta\");\r\n    var disclaimer = $(mainSelector).data(\"disclaimer\");\r\n\r\n    // Get Current Date\r\n    var currentDate = new Date().getTime();\r\n\r\n    var countdownContainer = mainSelector + ' .content-box .statement-container .countdown-container';\r\n    var liveContainer = mainSelector + ' .content-box .statement-container .live-container';\r\n    var onDemandContainer = mainSelector + ' .content-box .statement-container .on-demand-container';\r\n\r\n    //$(countdownContainer).hide();\r\n    $(countdownContainer).css(\"display\", \"none\");\r\n    $(liveContainer).hide();\r\n    $(onDemandContainer).hide();\r\n\r\n    if (isCountdown === true) {\r\n\r\n      if (countdownEnd > currentDate && countdownStart <= currentDate && countdownEnd > countdownStart) {\r\n        //$(countdownContainer).show();\r\n        $(countdownContainer).css(\"display\", \"inline-block\");\r\n        $(liveContainer).hide();\r\n        $(onDemandContainer).hide();\r\n        this.startCountdown(mainSelector, countdownStart, countdownEnd, disclaimer);\r\n      }\r\n      else if(countdownEnd <= currentDate) {\r\n        //setto link section, title, share\r\n        let linkCta = $(liveContainer + ' a.eni-btn').attr('href');\r\n        let linkCtaTarget = $(liveContainer + ' a.eni-btn').attr('target');\r\n        $(mainSelector).attr('data-url',linkCta);\r\n        $(mainSelector).attr('data-target',linkCtaTarget);\r\n        $(mainSelector + ' h2 a').attr('href',linkCta);\r\n        $(mainSelector + ' h2 a').attr('target',linkCtaTarget);\r\n        $(mainSelector + ' .share-container .btn-share').attr('data-url',linkCta);\r\n        if(disclaimer){\r\n          $(mainSelector).attr('data-disclaimer-status','on');\r\n          $(mainSelector + ' h2 a').attr('href','#');\r\n          $(liveContainer + ' a.eni-btn').attr('href','#');\r\n          $(mainSelector + ' h2 a').on('click', (event) => {\r\n            $('#link-disclaimer-egl').attr('href', linkCta);\r\n            $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n            event.preventDefault();\r\n          });\r\n          $(liveContainer + ' a.eni-btn').on('click', (event) => {\r\n            $('#link-disclaimer-egl').attr('href', linkCta);\r\n            $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n            event.preventDefault();\r\n          });\r\n        }\r\n        //$(countdownContainer).hide();\r\n        $(countdownContainer).css(\"display\", \"none\");\r\n        $(liveContainer).show();\r\n        $(onDemandContainer).hide();\r\n      }\r\n\r\n    } else if (cta == \"live\"){\r\n      if(disclaimer){\r\n        $(mainSelector).attr('data-disclaimer-status','on');\r\n        let linkCta = $(liveContainer + ' a.eni-btn').attr('href');\r\n        $(mainSelector + ' h2 a').attr('href','#');\r\n        $(liveContainer + ' a.eni-btn').attr('href','#');\r\n        $(mainSelector + ' h2 a').on('click', (event) => {\r\n          $('#link-disclaimer-egl').attr('href', linkCta);\r\n          $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n          event.preventDefault();\r\n        });\r\n        $(liveContainer + ' a.eni-btn').on('click', (event) => {\r\n          $('#link-disclaimer-egl').attr('href', linkCta);\r\n          $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n          event.preventDefault();\r\n        });\r\n      }\r\n      $(countdownContainer).css(\"display\", \"none\");\r\n      $(liveContainer).show();\r\n      $(onDemandContainer).hide();\r\n\r\n    } else if(cta == \"ondemand\") {\r\n      if(disclaimer){\r\n        $(mainSelector).attr('data-disclaimer-status','on');\r\n        let linkCta = $(onDemandContainer + ' a.eni-btn').attr('href');\r\n        $('#link-disclaimer-egl').attr('href', linkCta);\r\n        $(mainSelector + ' h2 a').attr('href','#');\r\n        $(onDemandContainer + ' a.eni-btn').attr('href','#');\r\n        $(mainSelector + ' h2 a').on('click', (event) => {\r\n          $('#link-disclaimer-egl').attr('href', linkCta);\r\n          $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n          event.preventDefault();\r\n        });\r\n        $(onDemandContainer + ' a.eni-btn').on('click', (event) => {\r\n          $('#link-disclaimer-egl').attr('href', linkCta);\r\n          $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n          event.preventDefault();\r\n        });\r\n      }\r\n      $(countdownContainer).css(\"display\", \"none\");\r\n      $(liveContainer).hide();\r\n      $(onDemandContainer).show();\r\n    }\r\n\r\n  }\r\n\r\n  startCountdown(mainSelector, start, end, disclaimer) {\r\n    console.log('start countdown');\r\n    const countdownContainer = mainSelector + ' div.content-box div.countdown-container';\r\n    const progressBar = mainSelector +\r\n      ' div.content-box div.countdown-container div.progress-bar-container > div';\r\n    const liveContainer = mainSelector + ' div.content-box div.live-container';\r\n\r\n    var x = setInterval(function () {\r\n      var now = new Date().getTime();\r\n      var distance = end - now;\r\n\r\n      var progressBarWidth = ((now - start) / (end - start)) * 100;\r\n\r\n      var days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n      var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n      var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n      var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n\r\n      if(seconds < 10) {\r\n        seconds = \"0\" + seconds;\r\n      }\r\n      if(minutes < 10) {\r\n        minutes = \"0\" + minutes;\r\n      }\r\n      if(hours < 10) {\r\n        hours = \"0\" + hours;\r\n      }\r\n      if (days < 10) {\r\n        days = \"0\" + days;\r\n      }\r\n\r\n      // Inject values into DOM\r\n      $(countdownContainer + ' .numbers .days .value').text(days);\r\n      $(countdownContainer + ' .numbers .hours .value').text(hours);\r\n      $(countdownContainer + ' .numbers .minutes .value').text(minutes);\r\n      $(countdownContainer + ' .numbers .seconds .value').text(seconds);\r\n\r\n      $(progressBar).css(\"width\", progressBarWidth + \"%\");\r\n\r\n      if (distance <= 500) {\r\n        $(countdownContainer).fadeOut(500);\r\n\r\n        if (distance <= 0) {\r\n          clearInterval(x);\r\n          $(liveContainer).fadeIn(500);\r\n          //setto link section, title, share\r\n          let linkCta = $(liveContainer + ' a.eni-btn').attr('href');\r\n          let linkCtaTarget = $(liveContainer + ' a.eni-btn').attr('target');\r\n          $(mainSelector).attr('data-url',linkCta);\r\n          $(mainSelector).attr('data-target',linkCtaTarget);\r\n          $(mainSelector + ' h2 a').attr('href',linkCta);\r\n          $(mainSelector + ' h2 a').attr('target',linkCtaTarget);\r\n          $(mainSelector + ' .share-container .btn-share').attr('data-url',linkCta);\r\n          if(disclaimer){\r\n            $(mainSelector).attr('data-disclaimer-status','on');\r\n            $(mainSelector + ' h2 a').attr('href','#');\r\n            $(liveContainer + ' a.eni-btn').attr('href','#');\r\n            $(mainSelector + ' h2 a').on('click', (event) => {\r\n              $('#link-disclaimer-egl').attr('href', linkCta);\r\n              $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n              event.preventDefault();\r\n            });\r\n            $(liveContainer + ' a.eni-btn').on('click', (event) => {\r\n              $('#link-disclaimer-egl').attr('href', linkCta);\r\n              $('#ModalDocumentDisclaimerEGL').modal('toggle');\r\n              event.preventDefault();\r\n            });\r\n          }\r\n        }\r\n      }\r\n    }, 250);\r\n\r\n  }\r\n\r\n  handleClick(event) {\r\n\r\n    if ($(event.target).hasClass('icon-share-small') || $(event.target).hasClass('btn-share')) {\r\n      event.preventDefault();\r\n      return;\r\n    } \r\n    if($(event.target).hasClass('icon-arrow-right-small') || $(event.target).hasClass('arrow-link')){\r\n      return;\r\n    }\r\n    if($(event.target).hasClass('eni-btn')){\r\n      return;\r\n    }\r\n    const section = event.currentTarget;\r\n    const url = $(section).attr('data-url');\r\n    const target = $(section).attr('data-target');\r\n    const disclaimerStatus = $(section).attr('data-disclaimer-status');\r\n    if (url && url.length > 0) {\r\n      if(disclaimerStatus == 'on'){\r\n        $('#link-disclaimer-egl').attr('href', url);\r\n        $(\"#ModalDocumentDisclaimerEGL\").modal(\"toggle\");\r\n      }\r\n      else\r\n        window.open(url, target);\r\n      \r\n    }\r\n    event.preventDefault();\r\n  }\r\n  \r\n  handleHover(event, inOut) {\r\n    const section = event.currentTarget;\r\n    const yellowLine = $(section).find('i.dash');\r\n    if (inOut) {\r\n      yellowLine.addClass('active');\r\n    } else {\r\n      yellowLine.removeClass('active');\r\n    }\r\n  }\r\n\r\n \r\n}\r\n\r\n$(() => {\r\n  const component = new EventHighlightHome();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/event-highlight.js\":\n/*!************************************************!*\\\n  !*** ./src/scripts/widgets/event-highlight.js ***!\n  \\************************************************/\n/*! exports provided: EventHighlight */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventHighlight\", function() { return EventHighlight; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n/* harmony import */ var mobile_detect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mobile-detect */ \"./node_modules/mobile-detect/mobile-detect.js\");\n/* harmony import */ var mobile_detect__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mobile_detect__WEBPACK_IMPORTED_MODULE_1__);\n\r\n\r\n\r\nclass EventHighlight {\r\n\r\n  constructor(currentEventHighlight) {\r\n    const eventHighlights = $(currentEventHighlight);\r\n    for (let i = 0; i < eventHighlights.length; i++) {\r\n      this.init(eventHighlights[i]);\r\n    }\r\n  }\r\n\r\n  init(currentEventHighlight) {\r\n    // Get Data Attributes\r\n    const isDouble = $(currentEventHighlight).data(\"double-event\");\r\n    var mainSelector = '#' + $(currentEventHighlight).attr('id');\r\n\r\n    var eventStart = new Date($(mainSelector).data(\"event-start\")).getTime();\r\n    var eventEnd = new Date($(mainSelector).data(\"event-end\")).getTime();\r\n    var eventPublish = new Date($(mainSelector).data(\"event-pub\")).getTime();\r\n    var isCountdown = $(mainSelector).data(\"countdown\");\r\n\r\n    // Get Current Date\r\n    var currentDate = new Date().getTime();\r\n\r\n    var countdownContainer = mainSelector + ' .content-box .eni-focus-area .countdown-container';\r\n    var liveContainer = mainSelector + ' .content-box .eni-focus-area .live-container';\r\n    var startDateContainer = mainSelector + '> div.content-box > div > p > span.ts__year';\r\n    var startDateContainer2 = mainSelector + '> div.content-box > div > p > span.ts__days';\r\n    var onDemandContainer = mainSelector + '> .content-box > .eni-focus-area .on-demand-container';\r\n\r\n\r\n    if (isDouble && isDouble === true) {\r\n      mainSelector += \" .section-content\";\r\n\r\n      const events = $(mainSelector);\r\n\r\n      for (let i = 0; i < 2; i++) {\r\n        let currentEvent = events[i];\r\n\r\n        // Handle click\r\n        $(currentEvent).click(function () {\r\n          const url = $(currentEvent).data('url');\r\n          const target = $(currentEvent).data('target');\r\n          const eventTarget = event.target;\r\n\r\n          if (!($(eventTarget).hasClass(\"btn-share\") || $(eventTarget).hasClass(\"icon-share-small\")) &&\r\n            url && url.length > 0) {\r\n            window.open(url, target);\r\n          }\r\n        });\r\n\r\n        countdownContainer = $(currentEvent).find('.content-box .eni-focus-area .countdown-container');\r\n        liveContainer = $(currentEvent).find('.content-box .eni-focus-area .live-container');\r\n        // startDateContainer = $(currentEvent).find('div.content-box > div > p');\r\n        startDateContainer = $(currentEvent).find('div.content-box > div > p > span.ts__year');\r\n        startDateContainer2 = $(currentEvent).find('div.content-box > div > p > span.ts__days');\r\n        onDemandContainer = $(currentEvent).find('.content-box > .eni-focus-area .on-demand-container');\r\n\r\n        eventStart = new Date($(currentEvent).data(\"event-start\")).getTime();\r\n        eventEnd = new Date($(currentEvent).data(\"event-end\")).getTime();\r\n        eventPublish = new Date($(currentEvent).data(\"event-pub\")).getTime();\r\n        isCountdown = $(currentEvent).data(\"countdown\");\r\n\r\n        // Set date in DOM\r\n        $(startDateContainer).text(moment(eventStart).format(\"dddd[,] D MMMM YYYY\"));\r\n        $(startDateContainer2).text(moment(eventStart).format(\"h:mm a [CEST]\"));\r\nconsole.log('startDateContainer: ', startDateContainer);\r\n\r\n\r\n        if (isCountdown === true) {\r\n          $(countdownContainer).show();\r\n          $(liveContainer).hide();\r\n          $(onDemandContainer).hide();\r\n\r\n          // Check if Event is Current, Past or Future\r\n          if (eventStart > currentDate) {\r\n            // Future Event\r\n            this.startCountdown(mainSelector, eventStart, eventPublish);\r\n          } else if (eventStart <= currentDate) {\r\n            if (eventEnd < currentDate) {\r\n              // Past\r\n              this.handlePastEvent(countdownContainer, liveContainer, onDemandContainer);\r\n            } else {\r\n              // Current\r\n              this.handleLiveEvent(countdownContainer, liveContainer, onDemandContainer);\r\n            }\r\n          }\r\n        } else {\r\n          $(countdownContainer).hide();\r\n          $(liveContainer).hide();\r\n          $(onDemandContainer).hide();\r\n        }\r\n\r\n      }\r\n\r\n    } else {\r\n      // Set date in DOM\r\n      $(startDateContainer).text(moment(eventStart).format(\"dddd[,] D MMMM YYYY\"));\r\n      $(startDateContainer2).text(moment(eventStart).format(\"h:mm a [CEST]\"));\r\n\r\n      $(mainSelector).click(function (event) {\r\n        const url = $(mainSelector).data('url');\r\n        const target = $(mainSelector).data('target');\r\n        const eventTarget = event.target;\r\n\r\n        if (!($(eventTarget).hasClass(\"btn-share\") || $(eventTarget).hasClass(\"icon-share-small\")) &&\r\n          url && url.length > 0) {\r\n          window.open(url, target);\r\n        }\r\n      });\r\n\r\n      if (isCountdown === true) {\r\n        $(countdownContainer).show();\r\n        $(liveContainer).hide();\r\n        $(onDemandContainer).hide();\r\n\r\n        // Check if Event is Current, Past or Future\r\n        if (eventStart > currentDate) {\r\n          // Future Event\r\n          this.startCountdown(mainSelector, eventStart, eventPublish);\r\n        } else if (eventStart <= currentDate) {\r\n          if (eventEnd < currentDate) {\r\n            // Past\r\n            this.handlePastEvent(countdownContainer, liveContainer, onDemandContainer);\r\n          } else {\r\n            // Current\r\n            this.handleLiveEvent(countdownContainer, liveContainer, onDemandContainer);\r\n          }\r\n        }\r\n      } else {\r\n        $(countdownContainer).hide();\r\n        $(liveContainer).hide();\r\n        $(onDemandContainer).hide();\r\n      }\r\n    }\r\n  }\r\n\r\n  startCountdown(mainSelector, date, publishDate) {\r\n    const countdownContainer = mainSelector + ' > div.content-box > div > div.countdown-container';\r\n    const progressBar = mainSelector +\r\n      ' > div.content-box > div > div.countdown-container > div.progress-bar-container > div';\r\n    const liveContainer = mainSelector + ' > div.content-box > div > div.live-container';\r\n\r\n    var x = setInterval(function () {\r\n      var now = new Date().getTime();\r\n      var distance = date - now;\r\n\r\n      var progressBarWidth = ((now - publishDate) / (date - publishDate)) * 100;\r\n\r\n      var days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n      var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n      var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n      var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n\r\n      if(seconds < 10) {\r\n        seconds = \"0\" + seconds;\r\n      }\r\n      if(minutes < 10) {\r\n        minutes = \"0\" + minutes;\r\n      }\r\n      if(hours < 10) {\r\n        hours = \"0\" + hours;\r\n      }\r\n      if (days < 10) {\r\n        days = \"0\" + days;\r\n      }\r\n\r\n      // Inject values into DOM\r\n      $(countdownContainer + ' .numbers .days .value').text(days);\r\n      $(countdownContainer + ' .numbers .hours .value').text(hours);\r\n      $(countdownContainer + ' .numbers .minutes .value').text(minutes);\r\n      $(countdownContainer + ' .numbers .seconds .value').text(seconds);\r\n\r\n      $(progressBar).css(\"width\", progressBarWidth + \"%\");\r\n\r\n      if (distance < 0) {\r\n        clearInterval(x);\r\n        $(countdownContainer).hide();\r\n        $(liveContainer).show();\r\n      }\r\n    }, 1000);\r\n\r\n  }\r\n\r\n  handleLiveEvent(countdownContainer, liveContainer, onDemandContainer) {\r\n    $(countdownContainer).hide();\r\n    $(liveContainer).show();\r\n    $(onDemandContainer).hide();\r\n  };\r\n\r\n  handlePastEvent(countdownContainer, liveContainer, onDemandContainer) {\r\n    $(countdownContainer).hide();\r\n    $(liveContainer).hide();\r\n    $(onDemandContainer).show();\r\n  }\r\n}\r\n\r\n\r\n\r\n$(document).ready(function () {\r\n  const init = new EventHighlight(\".event-highlight\");\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/format-video-player.js\":\n/*!****************************************************!*\\\n  !*** ./src/scripts/widgets/format-video-player.js ***!\n  \\****************************************************/\n/*! exports provided: FormatVideoPlayer */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FormatVideoPlayer\", function() { return FormatVideoPlayer; });\n/* harmony import */ var _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/yt-utils */ \"./src/scripts/common/yt-utils.js\");\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n/* harmony import */ var _common_digital_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/digital-data */ \"./src/scripts/common/digital-data.js\");\n\r\n\r\n\r\n\r\n// import Utils from '../common/utils';\r\n\r\nclass FormatVideoPlayer {\r\n\r\n    constructor() {\r\n\r\n        console.log('FormatVideoPlayer timestamp');\r\n        $(\".format-video-player .card--main\").hover(function() {\r\n            $(\".full-video-image-widget\").addClass(\"hover\");\r\n        });\r\n\r\n        $(\".full-video-image-widget .icon-video-outline\").on(\"mouseout\", function() {\r\n            $(\".full-video-image-widget\").removeClass(\"hover\");\r\n        });\r\n        \r\n        this.seasonParams = (this.getParameterByName('stagione')) ? this.getParameterByName('stagione') : 1;\r\n        this.episodeParams = (this.getParameterByName('episodio')) ? this.getParameterByName('episodio') : 1;\r\n\r\n        const seasonCarousel = $(\".format-video-player\");\r\n        for (let i = 0; i < seasonCarousel.length; i++) {\r\n            if (seasonCarousel && $(seasonCarousel)) {\r\n                \r\n                this.episode( $(seasonCarousel[i]), $(seasonCarousel[i]).find('.card--main') );\r\n                this.season( $(seasonCarousel[i]) );\r\n                \r\n                //this.init( $(videoSections[i]).find('.card--main') );\r\n                \r\n                //this.handleVideo();\r\n            }\r\n        }\r\n\r\n        if ( $( window ).width() < 1024 ){\r\n            $('.card--list').eq( this.seasonParams - 1 ).find('.item').eq( this.episodeParams - 1 ).addClass('active');\r\n        } else {\r\n            $('.card--list').eq( this.seasonParams - 1 ).find('.item').eq( this.episodeParams - 1 ).click();\r\n        }\r\n\r\n       \r\n    }\r\n\r\n    getParameterByName(name) {\r\n        var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);\r\n        return match && decodeURIComponent(match[1].replace(/\\+/g, ' '));\r\n    }\r\n\r\n    season( elem ) {\r\n\r\n        //const urlParams = new URLSearchParams(window.location.search);\r\n        //const mySeason = urlParams.get('season');\r\n\r\n        Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_1__[\"owlCarouselUtls\"])( $(elem).find('.card-carousel') , {\r\n            loop: false,\r\n            dots: false,\r\n            nav: true,\r\n            mouseDrag: false,\r\n            center: false,\r\n            autoWidth: false,\r\n            margin: 0,\r\n            navText: [ $(elem).find('.icon-arrow-left') , $(elem).find('.icon-arrow-right') ],\r\n            rewind: false,\r\n            items: 1,\r\n            startPosition: (this.seasonParams - 1),\r\n        }, true);\r\n\r\n    }\r\n\r\n    episode( elem, container ) {\r\n        \r\n        $(elem).find('.item').on('click', (e) => {\r\n\r\n            const item = $(e.target).hasClass('item') ? $(e.target) : $(e.target).closest('.item');\r\n\r\n            if ( item ){\r\n                if ( $(elem).find('.item.active') ){\r\n                    let category_old = $(elem).find('.item.active').attr('data-category');\r\n                    $(container).closest('.format-video-player').removeClass(category_old);\r\n                }\r\n                let category = $(item).attr('data-category');\r\n                // let category = 'deep-science';\r\n                console.log('format-video-player episode', $(container), $(container).closest('.format-video-player'));\r\n                $(container).closest('.format-video-player').addClass( category + ' open');\r\n                $(elem).find('.item').removeClass('active');\r\n                $(item).addClass('active');\r\n                $(container).html( $(item).html() ).show();\r\n                $(container).attr( 'class', 'card--main ' + $(item).attr('data-yt-category') );\r\n                $(container).find('.media source').detach();\r\n\r\n                console.log('format-video-player episode', $(container), $(container).closest('.format-video-player'));\r\n\r\n                if ( $( window ).width() < 1024 ){\r\n                    $(container).find('.yt-embedded').wrap( \"<div class='yt-embedded-wrapper'></div>\" );\r\n                    this.initMobile( container, item )\r\n                } else {\r\n                    this.initDesktop( container, item )\r\n                }\r\n            }\r\n            \r\n        });\r\n\r\n    }\r\n\r\n    initDesktop(elem, item) {\r\n        console.log( 'format-video-player initDesktop');\r\n\r\n        $(elem).find('picture').on( 'click', (e) => {\r\n\r\n            this.handleVideo(elem, false, item);\r\n\r\n            //let top_of_element = $(elem).offset().top;\r\n            //let bottom_of_element = $(elem).offset().top + $(elem).outerHeight();\r\n            //document.onscroll = () => this.handleVideoScroll(top_of_element, bottom_of_element);\r\n            //e.preventDefault();\r\n\r\n        });\r\n\r\n        let _this = this;\r\n        $('<div class=\"icon-close-small\"></div>').appendTo( elem ).on('click', (e) => {\r\n            $( elem ).closest('.format-video-player').removeClass('open');\r\n            $( 'body' ).removeClass( 'modal-open' );\r\n            console.log( 'format-video-player initDesktop', elem );\r\n            console.log( 'format-video-player initDesktop', $( elem ).closest('.format-video-player') );\r\n            console.log( 'format-video-player initDesktop', _this.ytUtils );\r\n            _this.ytUtils.pauseVideoFull();\r\n            $(elem).hide();\r\n            $(elem).html('');\r\n        });\r\n\r\n    }\r\n\r\n    initMobile(elem, item) {\r\n        console.log( 'format-video-player initDesktop');\r\n\r\n        this.handleVideo(elem, true, item);\r\n        $( 'body' ).addClass( 'modal-open' );\r\n        \r\n        let _this = this;\r\n        $('<div class=\"icon-close-small\"></div>').appendTo( elem ).on('click', (e) => {\r\n            console.log( 'format-video-player', _this.ytUtils );\r\n            $( elem ).closest('.format-video-player').removeClass('open');\r\n            $( 'body' ).removeClass( 'modal-open' );\r\n            _this.ytUtils.pauseVideoFull();\r\n            $(elem).hide();\r\n        });\r\n\r\n    }\r\n\r\n    handleVideo(videoSection, picture, item) {\r\n        _common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DigitalDataUtils\"].handleClickItemFormatVideo(item);\r\n\r\n        const ytEmbedded = $(videoSection).find(\".yt-embedded\");\r\n\r\n        console.log( 'format-video-player handleVideo', ytEmbedded );\r\n\r\n        if (ytEmbedded) {\r\n            const timestamp = new Date().getTime();\r\n            const playerId = String('yt-' + timestamp);\r\n            $(ytEmbedded).attr(\"id\", playerId);\r\n            const ytId = $(ytEmbedded).attr(\"data-yt-id\");\r\n            this.ytUtils = _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__[\"YtUtils\"].createInstance(\r\n                playerId,\r\n                [ytId], {\r\n                    autoplay: 1,\r\n                    autohide: 1,\r\n                    modestbranding: 0,\r\n                    rel: 0,\r\n                    showinfo: 0,\r\n                    controls: 1,\r\n                    disablekb: 1,\r\n                    enablejsapi: 0,\r\n                    iv_load_policy: 3,\r\n                    loop: 0\r\n                },\r\n                true,\r\n                true\r\n            );\r\n            this.startVideo( this.ytUtils, videoSection, picture );\r\n        }\r\n    }\r\n\r\n    startVideo(yt, container, picture) {\r\n        if ( !picture ){\r\n            $(container).find(\"picture\").hide();\r\n        }\r\n        $(container).find(\"iframe\").show();\r\n        //yt.startVideo(container);\r\n    }\r\n\r\n    /*handleVideoScroll(top_of_element, bottom_of_element) {\r\n        var bottom_of_screen = $(window).scrollTop() + $(window).innerHeight();\r\n        var top_of_screen = $(window).scrollTop();\r\n\r\n        if ((bottom_of_screen > top_of_element) && (top_of_screen < bottom_of_element)) {\r\n            // this.ytUtils.startVideo();\r\n        } else {\r\n            this.ytUtils.pauseVideoFull();\r\n            $('.full-video-image-bg').css({\r\n                'display': 'block'\r\n            });\r\n\r\n        }\r\n    }*/\r\n}\r\n\r\n$(() => {\r\n    const component = new FormatVideoPlayer();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/full-video-image.js\":\n/*!*************************************************!*\\\n  !*** ./src/scripts/widgets/full-video-image.js ***!\n  \\*************************************************/\n/*! exports provided: FullVideoImage */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FullVideoImage\", function() { return FullVideoImage; });\n/* harmony import */ var _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/yt-utils */ \"./src/scripts/common/yt-utils.js\");\n\r\n// import Utils from '../common/utils';\r\n\r\nclass FullVideoImage {\r\n\r\n  constructor() {\r\n\r\n    console.log('FullVideoImage');\r\n\r\n    $(\".full-video-image-widget .icon-video-outline\").hover(function() {\r\n      $(\".full-video-image-widget\").addClass(\"hover\");\r\n    });\r\n\r\n    $(\".full-video-image-widget .icon-video-outline\").on(\"mouseout\", function() {\r\n      $(\".full-video-image-widget\").removeClass(\"hover\");\r\n    });\r\n\r\n    // const videoSection = $(\"section.full-video-image-widget.yt-video\");\r\n    // $(\"section.full-video-image-widget.yt-video\").click(ev => {\r\n    //   if (!($(ev.target).hasClass(\"btn-share\") || $(ev.target).hasClass(\"icon-share-small\"))) {\r\n    //     $(\"section.full-video-image-widget .icon-share-small\").hide();\r\n    //     if (videoSection && videoSection.length > 0) {\r\n    //       this.handleVideo(ev.currentTarget);\r\n    //       $(window).scroll(() => this.handleVideoScroll(videoSection));\r\n    //     }\r\n    //     this.handleVideo();\r\n    //   }\r\n    // });\r\n\r\n    \r\n    const videoSections = $(\"section.full-video-image-widget.yt-video\");\r\n    for (let i = 0; i < videoSections.length; i++) {\r\n      if (videoSections && $(videoSections)) {\r\n        $(videoSections[i]).click( (e) => {\r\n          \r\n          if ($(e.target).hasClass('icon-share-small') || $(e.target).hasClass('btn-share')) {\r\n            e.preventDefault();\r\n            return;\r\n          }\r\n\r\n          $(\"section.full-video-image-widget .icon-share-small\").hide();\r\n          \r\n          this.handleVideo(videoSections[i]);\r\n         \r\n          let top_of_element = $(videoSections[i]).offset().top;\r\n          let bottom_of_element = $(videoSections[i]).offset().top + $(videoSections[i]).outerHeight();\r\n          document.onscroll = () => this.handleVideoScroll(top_of_element, bottom_of_element);\r\n          e.preventDefault();\r\n          // $(window).scroll(() => this.handleVideoScroll($(videoSections[i])));\r\n        });\r\n      }\r\n      this.handleVideo();\r\n    }\r\n \r\n  }\r\n\r\n  handleVideo(videoSection) {\r\n    const ytEmbedded = $(videoSection).find(\".yt-embedded\");\r\n    if (ytEmbedded) {\r\n      const playerId = $(ytEmbedded).attr(\"id\");\r\n      const ytId = $(ytEmbedded).attr(\"data-yt-id\");\r\n      this.ytUtils = _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__[\"YtUtils\"].createInstance(\r\n        playerId,\r\n        [ytId],\r\n        {\r\n          autoplay: 1,\r\n          autohide: 1,\r\n          modestbranding: 0,\r\n          rel: 0,\r\n          showinfo: 0,\r\n          controls: 1,\r\n          disablekb: 1,\r\n          enablejsapi: 0,\r\n          iv_load_policy: 3,\r\n          loop: 1\r\n        },\r\n        true,\r\n        true\r\n      );\r\n      this.startVideo(this.ytUtils, videoSection);\r\n    }\r\n  }\r\n\r\n  startVideo(yt, container) {\r\n    if ($(\"html[class*='aem-AuthorLayer-']\").length > 0) {\r\n    } else {\r\n      $(container)\r\n        .find(\"img\")\r\n        .hide();\r\n      $(container)\r\n        .find(\".eni-focus-area\")\r\n        .hide();\r\n      yt.startVideo(container);\r\n    }\r\n  }\r\n\r\n  handleVideoScroll( top_of_element, bottom_of_element) {\r\n    var bottom_of_screen = $(window).scrollTop() + $(window).innerHeight();\r\n    var top_of_screen = $(window).scrollTop();\r\n\r\n    if ((bottom_of_screen > top_of_element) && (top_of_screen < bottom_of_element)){\r\n      // this.ytUtils.startVideo();\r\n    } else {\r\n      this.ytUtils.pauseVideoFull();\r\n      $('.full-video-image-bg').css({\r\n        'display': 'block'\r\n      });\r\n     \r\n    }\r\n    \r\n    // if (Utils.isInViewport(videoSection)) {\r\n    //   // this.ytUtils.startVideo();\r\n    //   console.log('start video', videoSection);\r\n    //   console.log('dentro');\r\n    // } else {\r\n    //     this.ytUtils.pauseVideo();\r\n    //     console.log('pause video', videoSection);\r\n    //     console.log('this.ytUtils.player', this.ytUtils.player);\r\n    // }\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new FullVideoImage();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/global-presence-card-country4.js\":\n/*!**************************************************************!*\\\n  !*** ./src/scripts/widgets/global-presence-card-country4.js ***!\n  \\**************************************************************/\n/*! exports provided: SHOW_MORE_STATUS, GlobalPresenceCardCountry4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHOW_MORE_STATUS\", function() { return SHOW_MORE_STATUS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GlobalPresenceCardCountry4\", function() { return GlobalPresenceCardCountry4; });\nconst SHOW_MORE_STATUS = {\r\n  DEFAULT: 'default',\r\n  SHOW_MORE: 'more',\r\n  SHOW_LESS: 'less'\r\n};\r\nclass GlobalPresenceCardCountry4 {\r\n  constructor() {\r\n    if ($('.global-presence-card-country-grid-da-4').length > 0) {\r\n\r\n      $('.global-presence-card-country-grid-da-4 .btn.view-more').click((event) => this.handleViewMore(event));\r\n      $('.global-presence-card-country-grid-da-4 .btn.view-less').click((event) => this.handleViewLess(event));\r\n\r\n      $('.global-presence-card-country-grid-da-4').each((i, el) => {\r\n        this.handleCountryCard(el);\r\n      });\r\n    }\r\n  }\r\n\r\n  handleCountryCard(container, showMoreStatus = SHOW_MORE_STATUS.DEFAULT) {\r\n    console.log(container);\r\n    if (window.innerWidth > 1023) {\r\n      this.handleDesktopPagination(container, showMoreStatus);\r\n    } else {\r\n      this.handleMobilePagination(container, showMoreStatus);\r\n    }\r\n  }\r\n\r\n  handleDesktopPagination(container, showMoreStatus) {\r\n    const cards = $(container).find('.card-country');\r\n    if (cards && cards.length > 16) {\r\n      switch (showMoreStatus) {\r\n        case SHOW_MORE_STATUS.DEFAULT:\r\n        case SHOW_MORE_STATUS.SHOW_LESS:\r\n          $(cards).filter(':gt(15)').hide();\r\n          $(container).find('.btn.view-more').show();\r\n          $(container).find('.btn.view-less').hide();\r\n          break;\r\n\r\n        case SHOW_MORE_STATUS.SHOW_MORE:\r\n          $(cards).show();\r\n          $(container).find('.btn.view-more').hide();\r\n          $(container).find('.btn.view-less').show();\r\n          break;\r\n      }\r\n\r\n    } else {\r\n      // remove view-more button\r\n      $(container).find('.btn.view-more').hide();\r\n      $(container).find('.btn.view-less').hide();\r\n    }\r\n  }\r\n\r\n  handleMobilePagination(container, showMoreStatus) {\r\n    const cards = $(container).find('.card-country');\r\n    if (cards && cards.length > 3) {\r\n      switch (showMoreStatus) {\r\n        case SHOW_MORE_STATUS.DEFAULT:\r\n        case SHOW_MORE_STATUS.SHOW_LESS:\r\n          $(cards).filter(':gt(2)').hide();\r\n          $(container).find('.btn.view-more').show();\r\n          $(container).find('.btn.view-less').hide();\r\n          break;\r\n        case SHOW_MORE_STATUS.SHOW_MORE:\r\n          $(cards).filter(':hidden:lt(3)').show();\r\n          if ($(cards).length === $(cards).filter(':visible').length) {\r\n            $(container).find('.btn.view-more').hide();\r\n            $(container).find('.btn.view-less').show();\r\n          }\r\n          break;\r\n      }\r\n    } else {\r\n      // remove view-more button\r\n      $(container).find('.btn.view-more').hide();\r\n      $(container).find('.btn.view-less').hide();\r\n    }\r\n  }\r\n\r\n  handleViewMore(event) {\r\n    console.log(event);\r\n    const container = $(event.target).parents('.global-presence-card-country-grid-da-4');\r\n    this.handleCountryCard(container, SHOW_MORE_STATUS.SHOW_MORE);\r\n  }\r\n\r\n  handleViewLess(event) {\r\n    console.log(event);\r\n    const container = $(event.target).parents('.global-presence-card-country-grid-da-4');\r\n    this.handleCountryCard(container, SHOW_MORE_STATUS.SHOW_LESS);\r\n  }\r\n\r\n}\r\n\r\n$(() => {\r\n  const component = new GlobalPresenceCardCountry4();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/global-presence-project-highlight.js\":\n/*!******************************************************************!*\\\n  !*** ./src/scripts/widgets/global-presence-project-highlight.js ***!\n  \\******************************************************************/\n/*! exports provided: ProjectHighlight */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ProjectHighlight\", function() { return ProjectHighlight; });\nclass ProjectHighlight {\r\n  constructor() {\r\n    if ($('.global-presence-project-highlight').length > 0) {\r\n      $('.global-presence-project-highlight').each((i, el) => {\r\n        this.handlePaginations(el);\r\n      });\r\n\r\n      $('.global-presence-project-highlight div.eni-focus-area > div.slider-paginator > div > button.btn.icon-arrow-left')\r\n        .click((event) => this.handlePrevPage(event));\r\n      $('.global-presence-project-highlight div.eni-focus-area > div.slider-paginator > div > button.btn.icon-arrow-right')\r\n        .click((event) => this.handleNextPage(event));\r\n    }\r\n  }\r\n\r\n  handlePaginations(container, goTo = '') {\r\n    const slides = $(container).find('.slide-container');\r\n\r\n    if (slides && slides.length > 1) {\r\n      $(slides).hide();\r\n      const actualPage = $(container).find('.page-active');\r\n      const page = +$(actualPage).text();\r\n      const totalPage = $(container).find('.page-total');\r\n      const totPage = +$(totalPage).text();\r\n      const prevBtn = $(container).find('.btn.icon-arrow-left');\r\n      const nextBtn = $(container).find('.btn.icon-arrow-right');\r\n      var pageHideBtn = 0;\r\n\r\n      console.log(\"Current Page: \", page);\r\n      console.log(\"Total Page Count: \", totPage);\r\n\r\n      switch (goTo) {\r\n        case 'next':\r\n          pageHideBtn = page + 1;\r\n          break;\r\n\r\n        case 'prev':\r\n          pageHideBtn = page - 1;\r\n          break;\r\n      }\r\n\r\n      if (pageHideBtn === totPage) {\r\n        $(nextBtn).css(\"visibility\", \"hidden\");\r\n      } else {\r\n        $(nextBtn).css(\"visibility\", \"visible\");\r\n      }\r\n\r\n      if (pageHideBtn === 1) {\r\n        $(prevBtn).css(\"visibility\", \"hidden\");\r\n      } else {\r\n        $(prevBtn).css(\"visibility\", \"visible\");\r\n      }\r\n      switch (goTo) {\r\n        case 'next':\r\n          $($(slides).get(page - 1)).hide();\r\n          $($(slides).get(page)).show();\r\n          $(actualPage).text(page + 1);\r\n          $(prevBtn).show();\r\n          if ($(window).width() < 1023) {\r\n            $($(slides).get(page)).find(\".slider-image\")[0].scrollIntoView();\r\n          }\r\n          break;\r\n        case 'prev':\r\n          $($(slides).get(page - 1)).hide();\r\n          $($(slides).get(page - 2)).show();\r\n          $(actualPage).text(page - 1);\r\n          $(nextBtn).show();\r\n          if ($(window).width() < 1023) {\r\n            $($(slides).get(page - 2)).find(\".slider-image\")[0].scrollIntoView();\r\n          }\r\n          break;\r\n        default:\r\n          $(slides).filter(':lt(1)').show();\r\n          $(actualPage).text('1');\r\n          $(totalPage).text(slides.length);\r\n\r\n          $(prevBtn).hide();\r\n      }\r\n    } else {\r\n      $(container).find('.slider-paginator').hide();\r\n    }\r\n  }\r\n\r\n  handlePrevPage(event) {\r\n    const container = $(event.target).parents('.global-presence-project-highlight');\r\n    this.handlePaginations(container, 'prev');\r\n  }\r\n\r\n  handleNextPage(event) {\r\n    const container = $(event.target).parents('.global-presence-project-highlight');\r\n    this.handlePaginations(container, 'next');\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new ProjectHighlight();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/global-presence-sustainability-goal.js\":\n/*!********************************************************************!*\\\n  !*** ./src/scripts/widgets/global-presence-sustainability-goal.js ***!\n  \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n$(document).ready(function () {\r\n  if ($(window).width() < 1023) {\r\n    $(\".flip-card\").click(function () {\r\n      var description = $(this).find(\".description\");\r\n      var imgContainer = $(this).find(\".img-container\");\r\n\r\n      if (!$(imgContainer).hasClass(\"remove\")) {\r\n        $(imgContainer).addClass(\"remove\");\r\n        $(description).addClass(\"show\");\r\n      } else {\r\n        $(imgContainer).removeClass(\"remove\");\r\n        $(description).removeClass(\"show\");\r\n      }\r\n    });\r\n  }\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/grid-card3.js\":\n/*!*******************************************!*\\\n  !*** ./src/scripts/widgets/grid-card3.js ***!\n  \\*******************************************/\n/*! exports provided: GridCard3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GridCard3\", function() { return GridCard3; });\nclass GridCard3 {\r\n  constructor() {\r\n    $('.grid-card-3 .grid-card.link-card').click((event)=>this.handleClick(event));\r\n    $('.grid-card-3 .grid-card.link-badge-store').click((event)=>this.handleClick2(event));\r\n  }\r\n\r\n  handleClick(event) {\r\n    if ($(event.target).is('a')) {\r\n      return;\r\n    }\r\n    const currentTarget = $(event.currentTarget);\r\n    console.log(currentTarget);\r\n    const href = $(currentTarget).attr('data-url');\r\n    const target = $(currentTarget).attr('data-target');\r\n    window.open(href, target);\r\n  }\r\n\r\n  handleClick2(event) {\r\n\r\n    const isSafari = navigator.userAgent.indexOf(\"Safari\") !== -1;\r\n    const isIphone = navigator.userAgent.indexOf(\"iPhone\") !== -1;\r\n    const isMobileIosSafari = isSafari && isIphone;\r\n\r\n    if (isMobileIosSafari){\r\n      if ($(event.target).is('a')) {\r\n        return;\r\n      }\r\n\r\n      document.ontouchmove = (e) => e.preventDefault();\r\n\r\n      if ($(\"body\").hasClass(\"modal-open\")) {\r\n        document.ontouchmove = (e) => true;\r\n      }\r\n      else {\r\n        document.ontouchmove = (e) => e.preventDefault();\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new GridCard3();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/herobanner-homepage.js\":\n/*!****************************************************!*\\\n  !*** ./src/scripts/widgets/herobanner-homepage.js ***!\n  \\****************************************************/\n/*! exports provided: HERO_BANNER_PROPS, HeroBannerHomepage */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HERO_BANNER_PROPS\", function() { return HERO_BANNER_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HeroBannerHomepage\", function() { return HeroBannerHomepage; });\n/* harmony import */ var _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/yt-utils */ \"./src/scripts/common/yt-utils.js\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\n\r\nconst HERO_BANNER_PROPS = {\r\n  SECTION_CLASS: 'section.herobanner-homepage-section',\r\n  VIDEO_SECTION_CLASS: 'section.herobanner-homepage.yt-video'\r\n};\r\n\r\nclass HeroBannerHomepage {\r\n\r\n  constructor(initializeForDynamicContent) {\r\n\r\n    //console.log('HeroBannerHomepage');\r\n\r\n    // Manage children selector when dynamic section instantiate class\r\n    if (initializeForDynamicContent) {\r\n      HERO_BANNER_PROPS.SECTION_CLASS = HERO_BANNER_PROPS.SECTION_CLASS + '.eni-target-widget';\r\n      HERO_BANNER_PROPS.VIDEO_SECTION_CLASS = HERO_BANNER_PROPS.VIDEO_SECTION_CLASS + '.eni-target-widget';\r\n    }\r\n\r\n    $(HERO_BANNER_PROPS.SECTION_CLASS).click(this.handleClick);\r\n    $(HERO_BANNER_PROPS.SECTION_CLASS).hover((event) => this.handleHover(event, true), (event) => this.handleHover(\r\n      event, false));\r\n    const videoSection = $(HERO_BANNER_PROPS.VIDEO_SECTION_CLASS);\r\n    if (videoSection && videoSection.length > 0) {\r\n      this.handleVideo(videoSection);\r\n      $(window).scroll(() => this.handleVideoScroll(videoSection));\r\n    }\r\n\r\n    const heroBanner = $(HERO_BANNER_PROPS.SECTION_CLASS+\" .item\");\r\n    for (let i = 0; i < heroBanner.length; i++) {\r\n      this.initCountDown(heroBanner[i]);\r\n    }\r\n\r\n    /* OWL carousel */\r\n    $('.herobanner-homepage-section .herobanner-homepage .owl-carousel').owlCarousel({\r\n      dots:true,\r\n      loop:true,\r\n      margin:10,\r\n      nav: true,\r\n      autoplay:true,\r\n      autoplayTimeout:5000,\r\n      autoplayHoverPause:true,\r\n      responsiveClass:true,\r\n      onInitialized: startProgressBar,\r\n      onTranslate: resetProgressBar,\r\n      onTranslated: startProgressBar,\r\n      responsive:{\r\n        0: {\r\n          items: 1,\r\n          slideBy: 1,\r\n          nav:true\r\n        },\r\n        1024: {\r\n          items: 1,\r\n          slideBy: 1,\r\n          nav:true\r\n        },\r\n        1440: {\r\n          items: 1,\r\n          slideBy: 1,\r\n          nav:true\r\n        },\r\n        1920: {\r\n          items: 1,\r\n          slideBy: 1,\r\n          nav:true\r\n        }\r\n      }\r\n    });\r\n  \r\n    function startProgressBar() {\r\n      // apply keyframe animation\r\n      $(\".slide-progress\").css({\r\n        width: \"100%\",\r\n        transition: \"width 5000ms\"\r\n      });\r\n    }\r\n    \r\n    function resetProgressBar() {\r\n      $(\".slide-progress\").css({\r\n        width: 0,\r\n        transition: \"width 0s\"\r\n      });\r\n    }\r\n  \r\n    /*\r\n    if (window.matchMedia(\"(min-width: 1024px)\").matches) {\r\n      $('.herobanner-homepage-section .herobanner-homepage .owl-carousel .owl-dots').addClass('eni-focus-area');\r\n    }\r\n    */\r\n\r\n    $( '.herobanner-homepage-section .herobanner-homepage .owl-carousel .owl-dots' ).wrap( \"<div class='eni-focus-area'></div>\" );\r\n  \r\n    for (var i=0; i<$(\".herobanner-homepage-section\").length; i++) {\r\n      var id=$(\".herobanner-homepage-section\").eq(i).attr(\"id\");\r\n      //console.log(\"ID: \"+id+\" - length: \"+$(\"#\"+id+\" .owl-dot\").length);\r\n  \r\n      //if ($(\"#\"+id+\" .owl-dot\").length==1) {\r\n      if ($(\"#\"+id+\" .owl-item:not(.cloned) .item\").length==1) {\r\n        $(\"#\"+id+\" .owl-stage\").addClass(\"owl-stage-single-item\");\r\n        $(\"#\"+id+\" .owl-dot\").css(\"display\",\"none\");\r\n      }\r\n  \r\n      //if ($(\"#\"+id+\" .owl-dot span\").length>1) {\r\n      if ($(\"#\"+id+\" .owl-item:not(.cloned) .item\").length>1) {\r\n\r\n        var titles = $(\"#\"+id+\" .owl-item:not(.cloned) .start-item-carousel\");\r\n        var counterBullet = $(\"#\"+id+\" .owl-dot span\");\r\n        var ua = window.navigator.userAgent; //Check the userAgent property of the window.navigator object\r\n        var msie = ua.indexOf('MSIE '); // IE 10 or older\r\n        var trident = ua.indexOf('Trident/'); //IE 11\r\n\r\n        if ((msie > 0 || trident > 0) && (titles.length>counterBullet.length)) {\r\n          location.reload(true);\r\n        }\r\n  \r\n        if (titles.length>1) {\r\n          for (var j=0; j<counterBullet.length; j++) {\r\n            var itemTitle = titles.eq(j).attr(\"data-title-carousel\");\r\n            counterBullet.eq(j).append('<div class=\"slide-progress-main\"><div class=\"slide-progress\"></div></div>');\r\n            if (window.matchMedia(\"(min-width: 1024px)\").matches) {\r\n              counterBullet.eq(j).append(''+itemTitle+'');\r\n            }\r\n          }\r\n  \r\n          if (window.matchMedia(\"(min-width: 1024px)\").matches) {\r\n            $( \".owl-dot\" ).on(\"mouseover\",function(event) {\r\n              $(\" .owl-dot\").addClass('onmouseover-other');\r\n              $(this).removeClass(\"onmouseover-other\");\r\n              $(this).addClass(\"onmouseover-element\"); \r\n            });\r\n            $( \".owl-dot\" ).on(\"mouseout\",function(event) {\r\n              $(\" .owl-dot\").removeClass('onmouseover-other');\r\n              $(this).removeClass(\"onmouseover-element\");\r\n            });\r\n          }\r\n        }\r\n  \r\n        //activate animation\r\n        $('.herobanner-homepage-section .herobanner-homepage .owl-carousel').trigger('to.owl.carousel', 0);\r\n        $(\".slide-progress\").css({\r\n          width: \"100%\",\r\n          transition: \"width 5000ms\"\r\n        });\r\n      }\r\n    }\r\n    /* OWL carousel END - commentato failover */\r\n\r\n   /* $(\".item-titleCarousel:not(.popup-youtube)\").on(\"click\",function(event){\r\n      var url=$(this).attr(\"href\");\r\n      var target=$(this).attr(\"target\");\r\n      if(undefined==target)\r\n      target=\"_blank\";\r\n      window.open(url,target);\r\n    });*/\r\n\r\n    /* VIDEO */\r\n    $('.startVideoComponent .popup-youtube').each(function () {\r\n\r\n      $(window).bind('orientationchange', function () {\r\n        location.reload(true);\r\n      });\r\n     \r\n      $(this).magnificPopup({\r\n        type: 'iframe',\r\n        //delegate: 'div.overlay',\r\n        mainClass: 'herobanner-homepage-popup',\r\n        // Image Type\r\n        iframe: {\r\n          markup: '<div class=\"row\">'+\r\n                    '<div class=\"col-lg-12 col-md-12 col-sm-12\">' +\r\n                    '<div class=\"mfp-iframe-scaler\">'+\r\n                      '<div class=\"mfp-close\"></div>'+\r\n                      '<iframe class=\"mfp-iframe\" frameborder=\"0\" allowfullscreen></iframe>'+\r\n                    '</div>'+ \r\n                    '</div>' +\r\n                  '</div>', \r\n           // HTML markup of popup, `mfp-close` will be replaced by the close button +\r\n\r\n          cursor: null, // Class that adds zoom cursor, will be added to body. Set to null to disable zoom out cursor.\r\n          verticalFit: true, // Fits image in area vertically\r\n          tError: '<a href=\"%url%\">The image</a> could not be loaded.' // Error message\r\n        },\r\n        closeBtnInside: false,\r\n        closeMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\"></button>',\r\n        tClose: 'Chiudi',\r\n        callbacks: {\r\n          open: function () {\r\n            // Make body unscrollable (fix mobile scroll when magnificPopup open)\r\n            $('body').addClass('unscrollable');\r\n            //Utils.stopBodyScrollingiOS(true);\r\n            //share button\r\n            //this.shareUtils = Share.createInstance(false);\r\n            if($('.mfp-imageauthor').text().length < 4) \r\n              $('.mfp-imageauthor').remove();\r\n          },\r\n          close: function () {\r\n            $('body').removeClass('unscrollable');\r\n            //Utils.stopBodyScrollingiOS(false);\r\n          }\r\n        }\r\n      });\r\n\r\n    });\r\n    /* END VIDEO */\r\n  }\r\n\r\n  initCountDown(heroBanner){\r\n    // Get Data Attributes\r\n    var mainSelector = '#' + $(heroBanner).attr('id') ;\r\n    var mainSelectorDetail=mainSelector+\" .start-item-carousel\";\r\n    //console.log(\"initCountDown(heroBanner)  \"+mainSelector);\r\n    var countdownStart = new Date($(mainSelectorDetail).data(\"countdown-start\")).getTime();\r\n    var countdownEnd = new Date($(mainSelectorDetail).data(\"countdown-end\")).getTime();\r\n    var isCountdown = $(mainSelectorDetail).data(\"countdown\");\r\n    var cta = $(mainSelectorDetail).data(\"cta\");\r\n    //console.log(\"cinzia: \"+countdownStart+\" \"+countdownEnd+\" \"+isCountdown+\" \"+cta);\r\n\r\n    if(undefined!=isCountdown && (isCountdown==true || isCountdown==false)){\r\n      // Get Current Date\r\n      var currentDate = new Date().getTime();\r\n\r\n      var countdownContainer = mainSelector + ' .content-box .statement-container .countdown-container';\r\n      var liveContainer = mainSelector + ' .content-box .statement-container .live-container';\r\n      var onDemandContainer = mainSelector + ' .content-box .statement-container .on-demand-container';\r\n\r\n      //$(countdownContainer).hide();\r\n      $(countdownContainer).css(\"display\", \"none\");\r\n      $(liveContainer).hide();\r\n      $(onDemandContainer).hide();\r\n\r\n      //console.log(\"isCountdown: \"+isCountdown);\r\n      //console.log(\"CTA: \"+cta);\r\n\r\n      if (isCountdown === true) {\r\n        if (countdownEnd > currentDate && countdownStart <= currentDate && countdownEnd > countdownStart) {\r\n          console.log(\"STATO: Countdown\");\r\n          //$(countdownContainer).show();\r\n          $(countdownContainer).css(\"display\", \"inline-block\");\r\n          $(liveContainer).hide();\r\n          $(onDemandContainer).hide();\r\n          this.startCountdown(mainSelector, countdownStart, countdownEnd);\r\n        }\r\n        else if(countdownEnd <= currentDate) {\r\n          console.log(\"STATO: Live Auto\");\r\n          //setto link section, title\r\n          let linkCta = $(liveContainer + ' a.eni-btn').attr('href');\r\n          let linkCtaTarget = $(liveContainer + ' a.eni-btn').attr('target');\r\n          $(mainSelector).attr('data-url',linkCta);\r\n          $(mainSelector).attr('data-target',linkCtaTarget);\r\n          $(mainSelector + ' h2 a').attr('href',linkCta);\r\n          $(mainSelector + ' h2 a').attr('target',linkCtaTarget);\r\n          //$(countdownContainer).hide();\r\n          $(countdownContainer).css(\"display\", \"none\");\r\n          $(liveContainer).show();\r\n          $(onDemandContainer).hide();\r\n        }\r\n      } else if (cta == \"live\"){\r\n        //console.log(\"STATO: \"+cta);\r\n        $(countdownContainer).css(\"display\", \"none\");\r\n        $(liveContainer).show();\r\n        $(onDemandContainer).hide();\r\n      } else if(cta == \"ondemand\") {\r\n        //console.log(\"STATO: \"+cta);\r\n        $(countdownContainer).css(\"display\", \"none\");\r\n        $(liveContainer).hide();\r\n        $(onDemandContainer).show();\r\n      }\r\n    }\r\n  }\r\n\r\n  startCountdown(mainSelector, start, end) {\r\n    console.log('start countdown');\r\n    const countdownContainer = mainSelector + ' div.content-box div.countdown-container';\r\n    const progressBar = mainSelector +\r\n      ' div.content-box div.countdown-container div.progress-bar-container > div';\r\n    const liveContainer = mainSelector + ' div.content-box div.live-container';\r\n\r\n    var x = setInterval(function () {\r\n      var now = new Date().getTime();\r\n      var distance = end - now;\r\n\r\n      var progressBarWidth = ((now - start) / (end - start)) * 100;\r\n\r\n      var days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n      var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n      var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n      var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n\r\n      if(seconds < 10) {\r\n        seconds = \"0\" + seconds;\r\n      }\r\n      if(minutes < 10) {\r\n        minutes = \"0\" + minutes;\r\n      }\r\n      if(hours < 10) {\r\n        hours = \"0\" + hours;\r\n      }\r\n      if (days < 10) {\r\n        days = \"0\" + days;\r\n      }\r\n\r\n      // Inject values into DOM\r\n      $(countdownContainer + ' .numbers .days .value').text(days);\r\n      $(countdownContainer + ' .numbers .hours .value').text(hours);\r\n      $(countdownContainer + ' .numbers .minutes .value').text(minutes);\r\n      $(countdownContainer + ' .numbers .seconds .value').text(seconds);\r\n\r\n      $(progressBar).css(\"width\", progressBarWidth + \"%\");\r\n\r\n      if (distance <= 500) {\r\n        $(countdownContainer).fadeOut(500);\r\n\r\n        if (distance <= 0) {\r\n          clearInterval(x);\r\n          $(liveContainer).fadeIn(500);\r\n          //setto link section, title\r\n          let linkCta = $(liveContainer + ' a.eni-btn').attr('href');\r\n          let linkCtaTarget = $(liveContainer + ' a.eni-btn').attr('target');\r\n          $(mainSelector).attr('data-url',linkCta);\r\n          $(mainSelector).attr('data-target',linkCtaTarget);\r\n          $(mainSelector + ' h2 a').attr('href',linkCta);\r\n          $(mainSelector + ' h2 a').attr('target',linkCtaTarget);\r\n        }\r\n      }\r\n    }, 250);\r\n\r\n  }\r\n\r\n  handleClick(event) {\r\n    if($(event.target).hasClass('icon-arrow-right-small') || $(event.target).hasClass('arrow-link')){\r\n      return;\r\n    }\r\n    if($(event.target).hasClass('eni-btn')){\r\n      return;\r\n    }\r\n    const section = event.currentTarget;\r\n    const url = $(section).attr('data-url');\r\n    const target = $(section).attr('data-target');\r\n    if (url && url.length > 0) {\r\n      window.open(url, target);\r\n    }\r\n    event.preventDefault();\r\n  }\r\n\r\n  handleHover(event, inOut) {\r\n    const section = event.currentTarget;\r\n    const yellowLine = $(section).find('i.dash');\r\n    if (inOut) {\r\n      yellowLine.addClass('active');\r\n    } else {\r\n      yellowLine.removeClass('active');\r\n    }\r\n  }\r\n\r\n  handleVideo(videoSection) {\r\n    const ytEmbedded = $(videoSection).find('.yt-embedded');\r\n    if (ytEmbedded) {\r\n      const playerId = $(ytEmbedded).attr('id');\r\n      const ytId = $(ytEmbedded).attr('data-yt-id');\r\n      this.ytUtils = _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__[\"YtUtils\"].createInstance(playerId, [ytId], {\r\n        autoplay: 0,\r\n        autohide: 1,\r\n        modestbranding: 0,\r\n        rel: 0,\r\n        showinfo: 0,\r\n        controls: 0,\r\n        disablekb: 1,\r\n        enablejsapi: 0,\r\n        iv_load_policy: 3,\r\n        loop: 1\r\n      });\r\n      setTimeout(() => this.startVideo(this.ytUtils, videoSection), 4000);\r\n    }\r\n  }\r\n\r\n  startVideo(yt, container) {\r\n    if ($(\"html[class*='aem-AuthorLayer-']\").length > 0) {\r\n      console.log('no start video');\r\n    } else {\r\n      $(container).find('img').hide();\r\n      $(container).find('.eni-focus-area').hide();\r\n      yt.startVideo(container);\r\n    }\r\n  }\r\n\r\n  handleVideoScroll(videoSection) {\r\n    if (_common_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isInViewport(videoSection)) {\r\n      this.ytUtils.startVideo();\r\n    } else {\r\n      console.log('is not in viewport', this.ytUtils);\r\n      this.ytUtils.pauseVideo();\r\n    }\r\n  }\r\n\r\n}\r\n\r\n$(() => {\r\n  const component = new HeroBannerHomepage(false);\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/herobanner-video.js\":\n/*!*************************************************!*\\\n  !*** ./src/scripts/widgets/herobanner-video.js ***!\n  \\*************************************************/\n/*! exports provided: HerobannerVideoSwitch */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HerobannerVideoSwitch\", function() { return HerobannerVideoSwitch; });\n/* harmony import */ var _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/yt-utils */ \"./src/scripts/common/yt-utils.js\");\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n/* harmony import */ var _common_digital_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/digital-data */ \"./src/scripts/common/digital-data.js\");\n\r\n\r\n\r\n\r\n// import Utils from '../common/utils';\r\n\r\nclass HerobannerVideoSwitch {\r\n\r\n    constructor() {\r\n        this.timing = 12000;\r\n        this.desktop = null;\r\n        this.stack = [];\r\n\r\n        this.items = $(\".herobanner-video-widget .card--list > div\");\r\n        \r\n        let _this = this;\r\n        $(this.items).on(\"click\", function(e) {\r\n            let i = $(this).index();\r\n            _this.start( i );\r\n        });\r\n\r\n        $(\".herobanner-video-widget a.content-title\").on(\"click\", function(e) {\r\n            return false;\r\n        });\r\n\r\n        $( window ).resize(function() {\r\n            \r\n            _this.checkSize();\r\n\r\n        });\r\n        _this.checkSize();\r\n    }\r\n\r\n    checkSize( ){\r\n        let _this = this;\r\n        const carousels = $(\".herobanner-video-widget .content-box .video-focus-area .card--list\");\r\n\r\n        \r\n        console.log( 'HerobannerVideoSwitch window', $( window ).width());\r\n        if($('.wcm-enicom__base').length<1){\r\n            if ( carousels && $( window ).width() < 1024 ){\r\n                console.log( 'HerobannerVideoSwitch window', _this.desktop);\r\n                if ( _this.desktop !== false ){\r\n                    console.log( 'HerobannerVideoSwitch window DO DCAROUSEL');\r\n\r\n                    _this.desktop = false;\r\n                    clearTimeout( this.timer );\r\n\r\n                    for (let i = 0; i < carousels.length; i++) {\r\n                        if (carousels && $(carousels)) {\r\n                            \r\n                            console.log( 'HerobannerVideoSwitch window DO DCAROUSEL on', $(carousels));\r\n\r\n                            _this.initCarousel( $(carousels[i]) );\r\n\r\n                        }\r\n                    }\r\n                } \r\n            } else {\r\n                if ( _this.desktop != true ){\r\n                    console.log( 'HerobannerVideoSwitch window REMOVE DCAROUSEL', this.stack);\r\n                    _this.desktop = true;\r\n                    \r\n                    for (let i = 0; i < this.stack.length; i++) {\r\n                        $(this.stack[i]).owlCarousel('destroy');\r\n                    }\r\n                    this.start(0);\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    initCarousel( elem ){\r\n        let c = Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_1__[\"owlCarouselUtls\"])( $(elem) , {\r\n            loop: false,\r\n            nav: false,\r\n            mouseDrag: false,\r\n            center: false,\r\n            autoWidth: false,\r\n            margin: 0,\r\n            rewind: false,\r\n            items: 1,\r\n            autoplay: true,\r\n            autoplayTimeout: 12000,\r\n        }, true);\r\n\r\n        this.stack.push( c );\r\n    }\r\n\r\n    start(i){\r\n        clearInterval( this.timer );\r\n\r\n        if ( i >= $(this.items).length ){\r\n            i = 0;\r\n        }\r\n\r\n        this.draw( this.items.eq(i) );\r\n\r\n        this.timer = setTimeout(() => {\r\n            this.start(i+1);\r\n        }, this.timing);\r\n    }\r\n\r\n    draw( _this ){\r\n        $(this.items).removeClass('active');\r\n        $(_this).addClass('active');\r\n        \r\n        $(_this).parent().prev().html( $(_this).html() ).append($('<span class=\"loadingProgress\">'));\r\n\r\n        let category = $(_this).find('> div').attr('class');\r\n        let img = $(_this).find('picture img').attr('src');\r\n        let picture = $(_this).closest('.content-box').prev();\r\n        $(picture).find('source').attr('srcset', img);\r\n        $(picture).find('img').attr('src', img);\r\n        $(_this).closest('.content-box').addClass(category);\r\n\r\n        $(_this).closest('.content-box').find(\".card--main a.content-title\").on(\"click\", function(e) {\r\n            return false;\r\n        });\r\n\r\n        $(_this).closest('.content-box').find(\".card--main a.eni-btn,.card--main a.arrow-link\").on(\"click\", function(e) {\r\n            const ddutils = new _common_digital_data__WEBPACK_IMPORTED_MODULE_2__[\"DigitalDataUtils\"]()\r\n            ddutils.handleClickItem(e);\r\n        });\r\n        \r\n    }\r\n\r\n}\r\n\r\n$(() => {\r\n    const component = new HerobannerVideoSwitch();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/highlight_editorial_content.js\":\n/*!************************************************************!*\\\n  !*** ./src/scripts/widgets/highlight_editorial_content.js ***!\n  \\************************************************************/\n/*! exports provided: HIGHLIGHT_EDITORIAL_CONTENT_PROPS, HighlightEditorialContent */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HIGHLIGHT_EDITORIAL_CONTENT_PROPS\", function() { return HIGHLIGHT_EDITORIAL_CONTENT_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HighlightEditorialContent\", function() { return HighlightEditorialContent; });\nconst HIGHLIGHT_EDITORIAL_CONTENT_PROPS = {\r\n  SECTION_CLASS: '.highlight-editorial-content',\r\n  TWO_CONTENT_COL: '.highlight-editorial-content.two-content .highlight-2col'\r\n};\r\n\r\nclass HighlightEditorialContent {\r\n  constructor(initializeForDynamicContent) {\r\n\r\n    // Manage children selector when dynamic section instantiate class\r\n    if (initializeForDynamicContent) {\r\n      HIGHLIGHT_EDITORIAL_CONTENT_PROPS.SECTION_CLASS = HIGHLIGHT_EDITORIAL_CONTENT_PROPS.SECTION_CLASS +\r\n        '.eni-target-widget';\r\n      HIGHLIGHT_EDITORIAL_CONTENT_PROPS.TWO_CONTENT_COL =\r\n        '.highlight-editorial-content.two-content.eni-target-widget .highlight-2col';\r\n    }\r\n\r\n    var isMobile = $(window).outerWidth() < 1024;\r\n    if (!isMobile) {\r\n      $(HIGHLIGHT_EDITORIAL_CONTENT_PROPS.SECTION_CLASS).hover(\r\n        (event) => {\r\n          if (!$(event.target).hasClass('two-content')) {\r\n            this.handleTitleHover(event.target, true);\r\n          }\r\n        },\r\n        (event) => {\r\n          if (!$(event.target).hasClass('two-content')) {\r\n            this.handleTitleHover(event.target, false);\r\n          }\r\n        }\r\n      );\r\n    }\r\n\r\n    $(HIGHLIGHT_EDITORIAL_CONTENT_PROPS.SECTION_CLASS).click(\r\n      (event) => {\r\n        if ($(event.target).hasClass('two-content') || $(event.currentTarget).hasClass('two-content')) {\r\n          return;\r\n        } else {\r\n          this.handleClick(event);\r\n        }\r\n      });\r\n\r\n    $(HIGHLIGHT_EDITORIAL_CONTENT_PROPS.TWO_CONTENT_COL).hover(\r\n\r\n      (event) => {\r\n        this.handleTitleHover(event.target, true);\r\n      },\r\n      (event) => {\r\n        this.handleTitleHover(event.target, false);\r\n      }\r\n    );\r\n\r\n    $(HIGHLIGHT_EDITORIAL_CONTENT_PROPS.TWO_CONTENT_COL).click(\r\n      (event) => {\r\n        this.handleClick(event);\r\n      });\r\n  }\r\n\r\n  handleTitleHover(el, inOut) {\r\n    const yellowLine = $(el).find('i.dash');\r\n\r\n    if (inOut) {\r\n      yellowLine.addClass('yellow-pipe');\r\n      yellowLine.removeClass('yellow-line');\r\n    } else {\r\n      yellowLine.addClass('yellow-line');\r\n      yellowLine.removeClass('yellow-pipe');\r\n    }\r\n  }\r\n\r\n  handleClick(event) {\r\n    if ($(event.target).hasClass('icon-share-small') || $(event.target).hasClass('btn-share')) {\r\n      return;\r\n    }\r\n\r\n    event.preventDefault();\r\n    let href, target;\r\n    if ($(event.target).hasClass('external-link') || $(event.target.parentElement).hasClass('external-link')) {\r\n      const a = $(event.target).parent('a');\r\n      href = a.attr('href');\r\n      target = a.attr('target');\r\n    } else {\r\n      href = $(event.currentTarget).attr('data-href');\r\n      target = $(event.currentTarget).attr('data-target');\r\n    }\r\n    window.open(href, target);\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new HighlightEditorialContent(false);\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/identity-card.js\":\n/*!**********************************************!*\\\n  !*** ./src/scripts/widgets/identity-card.js ***!\n  \\**********************************************/\n/*! exports provided: SHOW_MORE_STATUS, IdentityCard */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHOW_MORE_STATUS\", function() { return SHOW_MORE_STATUS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IdentityCard\", function() { return IdentityCard; });\nconst SHOW_MORE_STATUS = {\r\n    DEFAULT: 'default',\r\n    SHOW_MORE: 'more',\r\n    SHOW_LESS: 'less'\r\n  };\r\n  class IdentityCard {\r\n    constructor() {\r\n      if ($('.identity-card').length > 0) {\r\n  \r\n        $('.identity-card .btn.view-more').click((event) => this.handleViewMore(event));\r\n        $('.identity-card .btn.view-less').click((event) => this.handleViewLess(event));\r\n  \r\n        $('.identity-card').each((i, el) => {\r\n          this.handleCountryCard(el);\r\n        });\r\n      }\r\n    }\r\n  \r\n    handleCountryCard(container, showMoreStatus = SHOW_MORE_STATUS.DEFAULT) {\r\n      console.log(container);\r\n      if (window.innerWidth > 1023) {\r\n        this.handleDesktopPagination(container, showMoreStatus);\r\n      } else {\r\n        this.handleMobilePagination(container, showMoreStatus);\r\n      }\r\n    }\r\n  \r\n    handleDesktopPagination(container, showMoreStatus) {\r\n      const cards = $(container).find('.grid-card');\r\n      if (cards && cards.length > 3) {\r\n        switch (showMoreStatus) {\r\n          case SHOW_MORE_STATUS.DEFAULT:\r\n          case SHOW_MORE_STATUS.SHOW_LESS:\r\n            $(cards).filter(':gt(2)').hide();\r\n            $(container).find('.btn.view-more').show();\r\n            $(container).find('.btn.view-less').hide();\r\n            break;\r\n  \r\n          case SHOW_MORE_STATUS.SHOW_MORE:\r\n            $(cards).show();\r\n            $(container).find('.btn.view-more').hide();\r\n            $(container).find('.btn.view-less').show();\r\n            break;\r\n        }\r\n  \r\n      } else {\r\n        // remove view-more button\r\n        $(container).find('.btn.view-more').hide();\r\n        $(container).find('.btn.view-less').hide();\r\n      }\r\n    }\r\n  \r\n    handleMobilePagination(container, showMoreStatus) {\r\n      const cards = $(container).find('.grid-card');\r\n      if (cards && cards.length > 3) {\r\n        switch (showMoreStatus) {\r\n          case SHOW_MORE_STATUS.DEFAULT:\r\n          case SHOW_MORE_STATUS.SHOW_LESS:\r\n            $(cards).filter(':gt(2)').hide();\r\n            $(container).find('.btn.view-more').show();\r\n            $(container).find('.btn.view-less').hide();\r\n            break;\r\n          case SHOW_MORE_STATUS.SHOW_MORE:\r\n            $(cards).filter(':hidden:lt(3)').show();\r\n            if ($(cards).length === $(cards).filter(':visible').length) {\r\n              $(container).find('.btn.view-more').hide();\r\n              $(container).find('.btn.view-less').show();\r\n            }\r\n            break;\r\n        }\r\n      } else {\r\n        // remove view-more button\r\n        $(container).find('.btn.view-more').hide();\r\n        $(container).find('.btn.view-less').hide();\r\n      }\r\n    }\r\n  \r\n    handleViewMore(event) {\r\n      console.log(event);\r\n      const container = $(event.target).parents('.identity-card');\r\n      this.handleCountryCard(container, SHOW_MORE_STATUS.SHOW_MORE);\r\n    }\r\n  \r\n    handleViewLess(event) {\r\n      console.log(event);\r\n      const container = $(event.target).parents('.identity-card');\r\n      this.handleCountryCard(container, SHOW_MORE_STATUS.SHOW_LESS);\r\n    }\r\n  \r\n  }\r\n  \r\n  $(() => {\r\n    const component = new IdentityCard();\r\n  });\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/iframe-resizer.js\":\n/*!***********************************************!*\\\n  !*** ./src/scripts/widgets/iframe-resizer.js ***!\n  \\***********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return IframeResizer; });\nclass IframeResizer {\r\n  constructor() {\r\n    $(document).ready(() => {\r\n      this.handleIframeResize();\r\n    });\r\n\r\n  }\r\n  handleIframeResize() {\r\n    // Euroland Iframe\r\n    const iframeEurolandToBeResized = $(\"iframe[class*='iframe-resize']\");\r\n\r\n    // Internal Iframe\r\n    const iframeToBeResized = $(\"iframe[class*='iframe-origin-resize']\");\r\n\r\n    if (iframeEurolandToBeResized && iframeEurolandToBeResized.length > 0) {\r\n      for (let i = 0; i < iframeEurolandToBeResized.length; i++) {\r\n        const idEurolandIframeToResize = $(iframeEurolandToBeResized[i]).attr('id');\r\n        if (typeof EurolandToolIntegrationObject !== 'undefined') {\r\n          EurolandToolIntegrationObject.set(idEurolandIframeToResize);\r\n        }\r\n      }\r\n      if (iframeToBeResized && iframeToBeResized.length > 0) {\r\n        for (let i = 0; i < iframeToBeResized.length; i++) {\r\n          const idIframeToResize = $(iframeToBeResized[i]).attr('id');\r\n          iFrameResize({\r\n            log: false,\r\n          }, '#' + idIframeToResize);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n}\r\n\r\n$(() => {\r\n  const component = new IframeResizer();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/infographics.js\":\n/*!*********************************************!*\\\n  !*** ./src/scripts/widgets/infographics.js ***!\n  \\*********************************************/\n/*! exports provided: Infographics */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Infographics\", function() { return Infographics; });\nclass Infographics {\r\n  constructor() {\r\n    if ($('.infographics').length > 0) {\r\n      $('.infographics').each((i, el) => {\r\n        this.handlePaginations(el);\r\n      });\r\n\r\n      $('.infographics .btn.icon-arrow-left').click((event) => this.handlePrevPage(event));\r\n      $('.infographics .btn.icon-arrow-right').click((event) => this.handleNextPage(event));\r\n    }\r\n  }\r\n\r\n  handlePaginations(container, goTo = '') {\r\n    const slides = $(container).find('.slide-container');\r\n    const prevBtn = $(container).find('.btn.icon-arrow-left');\r\n    const nextBtn = $(container).find('.btn.icon-arrow-right');\r\n    if (slides && slides.length > 1) {\r\n      const actualPage = $(container).find('.page-active');\r\n      const page = +$(actualPage).text();\r\n      const totalPage = $(container).find('.page-total');\r\n      const totPage = +$(totalPage).text();\r\n      var pageHideBtn = 0;\r\n\r\n      console.log(\"Current Page: \", page);\r\n      console.log(\"Total Page Count: \", totPage);\r\n\r\n      switch (goTo) {\r\n        case 'next':\r\n          pageHideBtn = page + 1;\r\n          break;\r\n\r\n        case 'prev':\r\n          pageHideBtn = page - 1;\r\n          break;\r\n      }\r\n\r\n      if (pageHideBtn === totPage) {\r\n        $(nextBtn).css(\"visibility\", \"hidden\");\r\n      } else {\r\n        $(nextBtn).css(\"visibility\", \"visible\");\r\n      }\r\n\r\n      if (pageHideBtn === 1) {\r\n        $(prevBtn).css(\"visibility\", \"hidden\");\r\n      } else {\r\n        $(prevBtn).css(\"visibility\", \"visible\");\r\n      }\r\n      switch (goTo) {\r\n        case 'next':\r\n          $($(slides).get(page - 1)).hide('fast', 'linear');\r\n          $($(slides).get(page)).show('fast', 'linear');\r\n          $(actualPage).text(page + 1);\r\n          $(prevBtn).show();\r\n          break;\r\n        case 'prev':\r\n          $($(slides).get(page - 1)).hide('fast', 'linear');\r\n          $($(slides).get(page - 2)).show('fast', 'linear');\r\n          $(actualPage).text(page - 1);\r\n          $(nextBtn).show();\r\n          break;\r\n        default:\r\n          $(slides).filter(':lt(1)').css('display', 'flex');\r\n          $(actualPage).text('1');\r\n          $(totalPage).text(slides.length);\r\n\r\n          $(prevBtn).hide();\r\n      }\r\n    } else if (slides.length == 1) {\r\n      // const totalPage = $(container).find('.page-total');\r\n      const paginator = $(container).find('.infographic-paginator');\r\n      $(slides).filter(':lt(1)').show();\r\n      // $(totalPage).hide();\r\n      $(paginator).hide();\r\n      // $(prevBtn).hide();\r\n      // $(nextBtn).hide();\r\n    } else {\r\n      $(container).find('.infographic-paginator').hide();\r\n    }\r\n  }\r\n\r\n  handlePrevPage(event) {\r\n    console.log(event);\r\n    const container = $(event.target).parents('.infographics');\r\n    this.handlePaginations(container, 'prev');\r\n  }\r\n\r\n  handleNextPage(event) {\r\n    console.log(event);\r\n    const container = $(event.target).parents('.infographics');\r\n    this.handlePaginations(container, 'next');\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new Infographics();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/interactive-map-detail.js\":\n/*!*******************************************************!*\\\n  !*** ./src/scripts/widgets/interactive-map-detail.js ***!\n  \\*******************************************************/\n/*! exports provided: InteractiveMapDetail */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InteractiveMapDetail\", function() { return InteractiveMapDetail; });\n/* harmony import */ var _common_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/tooltip */ \"./src/scripts/common/tooltip.js\");\n\r\n  \r\n  const MAX_ZOOM_DETAIL = 17;\r\n  const DEFAULT_ZOOM_DETAIL = 13;\r\n  const MIN_ZOOM_DETAIL = 7;\r\n  var ispointer = false;\r\n  //var currentCursor = null;\r\n  //var clusterActive = null;\r\n  \r\n  /* A - Metodo restore zoom iniziale + zoom in e out su click pin */\r\n  var INIT_ZOOM_DETAIL = 0;\r\n  \r\n  /* B - Metodo default zoom in e out su click pin */\r\n  //var countIn = 0;\r\n  //var countOut = 0;\r\n  \r\n  class InteractiveMapDetail {\r\n  \r\n    constructor() {\r\n        const sections = $('section.interactive-map-detail');\r\n        //this.zoomDefault = MAX_ZOOM_DETAIL;\r\n  \r\n        sections.each((index) => {\r\n            const section = sections[index];\r\n            const mapDiv = $(section).find('.eni-map');\r\n            const tooltip = new _common_tooltip__WEBPACK_IMPORTED_MODULE_0__[\"Tooltip\"]();\r\n            if (mapDiv.length > 0) {\r\n                this.initMapDetail(section, mapDiv, index, tooltip);\r\n  \r\n                /* B */\r\n                //$(section).find('.map-buttons-container .zoom-in-btn').click((event => countIn = countIn + 1));\r\n                //$(section).find('.map-buttons-container .zoom-out-btn').click((event => countOut = countOut + 1));\r\n  \r\n                this.closeBtn(section, index);\r\n                $(section).find('.map-buttons-container .location-btn').click((event => this.handleLocation(\r\n                    event, index)));\r\n                $(section).find('.map-buttons-container .zoom-in-btn').click((event => this.handleZoom(event,\r\n                    true, index)));\r\n                $(section).find('.map-buttons-container .zoom-out-btn').click((event => this.handleZoom(event,\r\n                    false, index)));\r\n                \r\n            }\r\n        });\r\n    }\r\n    \r\n    closeBtn(section, index){\r\n        $(section).find('button.drawer-btn').on( 'click', event => this.handleCloseBtn(section, event, index));\r\n    }\r\n  \r\n    initMapDetail(section, mapDiv, index, tooltip) {\r\n        //console.log('InteractiveMapDetail initMapDetail', section, mapDiv, index, tooltip);\r\n  \r\n        try {\r\n            let titlemap = [];\r\n            let titleColor = null;\r\n            let countTitle = null;\r\n\r\n            const id = $(mapDiv).attr('id');\r\n  \r\n            this.markerNormal = {\r\n                url: $(section).attr('data-map-icon-marker-normal'),\r\n                scaledSize: new google.maps.Size(15, 15),\r\n                labelOrigin: new google.maps.Point(7.5, -20),\r\n                anchor: new google.maps.Point(7.5, 7.5)\r\n            };\r\n            this.markerSelected = {\r\n                url: $(section).attr('data-map-icon-marker-selected'),\r\n                scaledSize: new google.maps.Size(30, 30),\r\n                labelOrigin: new google.maps.Point(16, -20),\r\n                anchor: new google.maps.Point(15, 15)\r\n            };\r\n            this.maps = this.maps || [];\r\n            this.selectedMarkers = this.selectedMarkers || [];\r\n            this.lastZooms = this.lastZooms || [];\r\n            this.gMarkers = this.gMarkers || [];\r\n  \r\n            let options = {}\r\n  \r\n            // zoom della mappa al click sul pin\r\n            this.zoomDefault = DEFAULT_ZOOM_DETAIL;\r\n            \r\n            options = {\r\n                mapTypeId: 'satellite',\r\n                maxZoom: MAX_ZOOM_DETAIL,\r\n                minZoom: MIN_ZOOM_DETAIL,\r\n                disableDefaultUI: true\r\n            }\r\n  \r\n            this.maps[index] = new google.maps.Map(\r\n                document.getElementById(id), options\r\n            );\r\n  \r\n            this.selectedMarkers[index] = null;\r\n\r\n            let markers = $(section).attr('data-map-markers') ? JSON.parse($(section).attr('data-map-markers')) : null;\r\n            //console.log('InteractiveMapDetail initMapDetail markers', markers);\r\n            markers = this.handleGeoJson(section, this.maps[index], index, tooltip, titlemap , titleColor, countTitle);\r\n            return titlemap , titleColor, countTitle;\r\n  \r\n        }\r\n         catch (ex) {\r\n            console.error(ex);\r\n        }\r\n  \r\n    }\r\n  \r\n    handleMarkers(markers, section, map, index, detailsMap) {\r\n  \r\n        detailsMap = (detailsMap === undefined) ? false : detailsMap;\r\n  \r\n        this.gMarkers[index] = [];\r\n        const nation = $(section).attr('data-map-nation-selected') ? $(section).attr('data-map-nation-selected').replace(/\"/gi, '') : null;\r\n  \r\n        let categoryMap = '';\r\n\r\n        markers.forEach(m => {\r\n  \r\n            //- default color and pin keep them for compatibility ---\r\n                let color = '#ffd300';\r\n                let pin = Object.assign({}, this.markerNormal);\r\n                let pin_selected = Object.assign({}, this.markerSelected);\r\n  \r\n                pin.url = $(section).attr('data-map-icon-marker-'+m.category);\r\n                pin_selected.url = pin.url.replace('.svg', \"-hover.svg\");\r\n                \r\n                //- get color and pin from category map ---\r\n                  switch (m.category) {\r\n                      case 'suolo':\r\n                          color = '#F8A800';\r\n                          categoryMap = m.category;\r\n                          break;\r\n                      case 'falda':\r\n                          color = '#17CADD';\r\n                          categoryMap = m.category;\r\n                      break;\r\n                      case 'aree':\r\n                          color = '#9FDA58';\r\n                          categoryMap = m.category;\r\n                      break;\r\n                  }\r\n                \r\n                //$('[data-map-nation=\"'+m.title+'\"] h3').css({\"color\": color});\r\n  \r\n            //console.log('InteractiveMapDetail handleMarkers info', color, pin, pin_selected);\r\n  \r\n              let label = '';\r\n              label = {\r\n                    text: m.title,\r\n                    color: color,\r\n                    fontSize: '16px',\r\n                    fontFamily: 'Open Sans',\r\n                    className: 'label'\r\n              }\r\n  \r\n            const gMarker = new google.maps.Marker({\r\n                position: new google.maps.LatLng( m.lat, m.lng ),\r\n                label: label,\r\n                icon: pin,\r\n                pin: pin,\r\n                pin_selected: pin_selected,\r\n                zIndex: 100,\r\n                optimized: false\r\n            });\r\n            gMarker.setMap(map);\r\n            this.gMarkers[index].push(gMarker);\r\n  \r\n            google.maps.event.addListener(gMarker, 'mouseover', () => {\r\n                gMarker.setIcon( pin_selected );\r\n                gMarker.label.className = 'label active';\r\n            });\r\n            \r\n            google.maps.event.addListener(gMarker, 'mouseout', () => {\r\n                if (this.selectedMarkers[index] !== gMarker) {\r\n                    gMarker.label.className = 'label';\r\n                    gMarker.setIcon( pin );\r\n                }\r\n            });\r\n            \r\n            google.maps.event.addListener(gMarker, 'click', () => {\r\n                this.selectNation(section, map, m, gMarker, index);\r\n            });\r\n  \r\n            //- activate current nation ---\r\n            if (nation && nation == m.title) {\r\n                this.selectNation(section, map, m, gMarker, index);\r\n            }\r\n        });\r\n  \r\n        \r\n        //let categoryMap = $(section).attr('data-map-marker-category');\r\n        let categoryMarker = '';\r\n        //console.log(\"CATEGORIA: \" + categoryMarker);\r\n\r\n        switch (categoryMap) {\r\n        \r\n\r\n        case 'default' :\r\n        case '\"default\"':\r\n          categoryMarker = $(section).attr('data-map-icon-marker-normal');\r\n            break;\r\n\r\n        case 'aree':\r\n        case '\"aree\"':\r\n          categoryMarker = $(section).attr('data-map-marker-aree');\r\n            break;\r\n\r\n        case 'falda':\r\n        case '\"falda\"':\r\n          categoryMarker = $(section).attr('data-map-marker-falda');\r\n            break;\r\n\r\n        case 'suolo':\r\n        case '\"suolo\"':\r\n          categoryMarker = $(section).attr('data-map-marker-suolo');\r\n            break;\r\n        }\r\n\r\n        //console.log($(section).attr('data-map-icon-marker-normal'));\r\n        //console.log(\"BACK: \" + categoryMarker);\r\n\r\n      //- group nearest marker ---\r\n        this.markerCluster = new MarkerClusterer(map, this.gMarkers[index], {\r\n        styles: [{\r\n                url: categoryMarker,\r\n                height: 40,\r\n                width: 40,\r\n                textColor: '#000',\r\n                textSize: 16,\r\n                fontFamily: 'EniTabReg'\r\n                }]\r\n        });\r\n        \r\n        $(section).on('mouseover', 'div', function(e) {\r\n        if ( $(this).attr('class') == 'cluster-hover') {\r\n        switch ( categoryMap ) {\r\n            \r\n            case 'default' :\r\n            case '\"default\"':\r\n                $(this).attr('class', 'cluster-hover');\r\n                break;\r\n\r\n            case 'aree':\r\n            case '\"aree\"':\r\n                $(this).attr('class', 'cluster-hover-aree');\r\n                break;\r\n\r\n            case 'falda':\r\n            case '\"falda\"':\r\n                $(this).attr('class', 'cluster-hover-falda');\r\n                break;\r\n            \r\n            case 'suolo':\r\n            case '\"suolo\"':\r\n              $(this).attr('class', 'cluster-hover-suolo');\r\n                break;\r\n                }\r\n            }\r\n        });\r\n\r\n    }\r\n  \r\n    //- Deselect current pointer and active the clicked one ---\r\n    selectNation(section, map, nation, gMarker, index) {\r\n  \r\n        //console.log('InteractiveMapDetail selectNation', this.selectedMarkers, this.selectedMarkers[index]);\r\n  \r\n        /* A */\r\n        if (INIT_ZOOM_DETAIL===0) {\r\n          INIT_ZOOM_DETAIL = map.getZoom();\r\n        }\r\n  \r\n        if (this.selectedMarkers && this.selectedMarkers[index]) {\r\n            //- deselect old active pointer ---\r\n  \r\n            const actualMarker = this.selectedMarkers[index];\r\n            actualMarker.setIcon( actualMarker.pin );\r\n            actualMarker.label.className = 'label';\r\n            //const detailActualDiv = $(section).find(`div.marker-container[data-map-nation=\"${actualMarker.label.text}\"]`);\r\n            const detailActualDiv = $(section).find(`div.marker-container`);\r\n            if (detailActualDiv) {\r\n                $(detailActualDiv).addClass('hide');\r\n            }\r\n            this.selectedMarkers[index] = null;\r\n        }\r\n  \r\n        if (!this.selectedMarkers || !this.selectedMarkers[index]) {\r\n            //- activate current pointer ---\r\n  \r\n            gMarker.setIcon( gMarker.pin_selected );\r\n            gMarker.label.className = 'label active';\r\n            this.selectedMarkers[index] = gMarker;\r\n            this.lastZooms[index] = map.getZoom();\r\n            //map.setZoom(this.zoomDefault);\r\n            //map.setZoom(this.lastZooms[index]);\r\n  \r\n            /* B */\r\n            //map.setZoom( this.maps[index].getZoom() - countIn + countOut + 1);\r\n  \r\n            /* A */\r\n            //map.setZoom(INIT_ZOOM_DETAIL+1);\r\n\r\n            map.setZoom( DEFAULT_ZOOM_DETAIL + 2 );\r\n            \r\n            map.setCenter( gMarker.getPosition() );\r\n            const detailDiv = $(section).find(`div.marker-container[data-map-nation=\"${nation.title}\"]`);\r\n            if (detailDiv) {\r\n                $(detailDiv).toggleClass('hide');\r\n            }\r\n            const buttonCont = $(section).find(`div.map-buttons-container`);\r\n            if (buttonCont) {\r\n                $(buttonCont).addClass('open');\r\n            }\r\n        }\r\n  \r\n    }\r\n  \r\n    handleGeoJson(section, map, index, tooltip, titlemap , titleColor, countTitle) {\r\n        //console.log('InteractiveMapDetail handleGeoJson', index, section);\r\n        //console.log('TITLE: ' + titlemap);\r\n  \r\n        const geoJsonUrl = $(section).attr('data-map-geojson-url');\r\n        if (geoJsonUrl) {\r\n            $.getJSON(geoJsonUrl.replace(/\"/gi, ''), (geoJson) => {\r\n  \r\n                //console.log('InteractiveMapDetail handleGeoJson', geoJson);\r\n  \r\n                map.data.addGeoJson(geoJson, {\r\n                    idPropertyName: 'id'\r\n                });\r\n                // Add some style.\r\n                map.data.setStyle((f) => {\r\n                    return /** @type {google.maps.Data.StyleOptions} */ ({\r\n                        fillColor: f.getProperty('fill'),\r\n                        fillOpacity: f.getProperty('fill-opacity'),\r\n                        strokeColor: f.getProperty('stroke'),\r\n                        strokeOpacity: f.getProperty('stroke-opacity'),\r\n                        strokeWeight: f.getProperty('stroke-width'),\r\n                        icon: f.getProperty('icon')\r\n                    });\r\n                });\r\n                \r\n                // calcolo del limite dell'area del poligono\r\n                const bounds = new google.maps.LatLngBounds();\r\n                map.data.forEach(function(feature) {\r\n                    feature.getGeometry().forEachLatLng(function(latlng) {\r\n                        bounds.extend(latlng);\r\n                    });\r\n                });\r\n  \r\n                map.fitBounds(bounds);\r\n\r\n                map.data.addListener('click', (event) => {\r\n\r\n                    //console.log(\"ISPOINTER FUORI: \" + window.ispointer);\r\n\r\n                    if(!window.ispointer){\r\n                    this.selectArea(markers, section, event, index, titlemap , titleColor, countTitle);\r\n                    //console.log(\"ISPOINTER true: \" + window.ispointer);\r\n                    }\r\n                    else{\r\n                        window.ispointer = false;\r\n                        //console.log(\"ISPOINTER false: \" + window.ispointer);\r\n                    }\r\n                });\r\n\r\n                let markers = [];\r\n                for (let i = 0; i < geoJson.features.length; i++) {\r\n                    const item = geoJson.features[i];\r\n  \r\n                    //- calculate category ---\r\n                    //- is the last work inthe file path name, after last underscore and before extension dot ---\r\n                        let myRegexp = /.+(\\_(.+)\\.)/g;\r\n                        let regexResult = myRegexp.exec( geoJsonUrl );\r\n                        let category = regexResult ? regexResult.pop() : null;\r\n  \r\n                    //- calculate progress ---\r\n                    //- progress is like [100] appended at the end of the description field ---\r\n                        let description = item.properties.description;\r\n                        let stroke = item.properties.stroke;\r\n\r\n                        if ( stroke == '#E63A36'){\r\n                        titleColor = '#E63A36';\r\n                        titlemap[i] = item.properties.name;\r\n                        countTitle = i;\r\n                        //console.log(\"Test: \" + stroke + \" \" + titlemap[i] + i);\r\n                        }\r\n\r\n                        if ( stroke == '#999999' ){\r\n                        titleColor = '#999999';\r\n                        titlemap[i] = item.properties.name;\r\n                        countTitle = i;\r\n                        //console.log(\"Test: \" + stroke + \" \" + titlemap[i] + i);\r\n                        }\r\n\r\n                        let percent = null; \r\n                        myRegexp = /.+(\\[(.+)\\])/g; \r\n                        regexResult = myRegexp.exec( description );\r\n                        if ( regexResult ){\r\n                            percent = regexResult ? +regexResult.pop() : null;\r\n                            description = description.replace( regexResult.pop(), \"\" );\r\n                        }\r\n  \r\n                    if ( item.geometry.type == 'Point' ){\r\n                        markers.push( {\r\n                            \"lat\": item.geometry.coordinates[1],\r\n                            \"lng\": item.geometry.coordinates[0],\r\n                            \"title\": item.properties.name,\r\n                            \"stroke\": item.properties.stroke,\r\n                            \"description\": description,\r\n                            \"category\": category,\r\n                            \"percent\": percent\r\n                        } );\r\n                    }\r\n                }\r\n  \r\n                if ( markers.length ){\r\n                    this.createSidePanel( markers, section );\r\n                    this.closeBtn(section, index);\r\n                    this.handleMarkers(markers, section, map, index, true);\r\n                }\r\n\r\n                /*\r\n                if(window.matchMedia(\"(pointer: coarse)\").matches) {\r\n                    // touchscreen\r\n                    currentCursor = true;\r\n                }\r\n\r\n                $(section).on('mouseover', 'div', function(e) {\r\n                    if ( $(this).attr('class') == 'cluster-hover' ) {\r\n                        var elements = document.getElementsByClassName('mapTooltip');\r\n                        for (var i in elements) {\r\n                        if (elements.hasOwnProperty(i)) {\r\n                        elements[i].style.zIndex = 0;\r\n                            }\r\n                        }\r\n\r\n                        clusterActive = true;\r\n                       console.log(clusterActive);\r\n                      }\r\n                      else\r\n                      clusterActive = false;\r\n                      \r\n                });\r\n        \r\n                $(section).on('mouseout', 'div', function(e) {\r\n                    clusterActive = false;\r\n                       var elements = document.getElementsByClassName('mapTooltip');\r\n                        for (var i in elements) {\r\n                        if (elements.hasOwnProperty(i)) {\r\n                        elements[i].style.zIndex = 100;\r\n                            }\r\n                        }\r\n                });\r\n\r\n                map.data.addListener('mouseover', (event) => {\r\n                    if (currentCursor != true){\r\n                    this.showTooltip(markers, tooltip, event);\r\n                    console.log(\"VALORE: \" + clusterActive);}\r\n                  });\r\n          \r\n                map.data.addListener('mouseout', (event) => {\r\n                    if (currentCursor != true)\r\n                    this.hideTooltip(tooltip);\r\n                    console.log(\"VALORE FALSE: \" + clusterActive);\r\n                  });*/\r\n\r\n            });\r\n        }\r\n    }\r\n  \r\n    //- Dinamically create detail panel ---\r\n    createSidePanel( markers, section ) {\r\n        //console.log('InteractiveMapDetail createSidePanel markers', markers);\r\n        //console.log('InteractiveMapDetail createSidePanel section', $(section).find('.eni-map'));\r\n  \r\n        markers.forEach(m => {\r\n            let color = '#FFDD00';\r\n            switch (m.category) {\r\n                case 'suolo':\r\n                    color = '#F8A800';\r\n                    break;\r\n                case 'falda':\r\n                    color = '#17CADD';\r\n                    break;\r\n                case 'aree':\r\n                    color = '#9FDA58';\r\n                    break;\r\n            }\r\n\r\n            let btnclose = section.getElementsByClassName('drawer-btn')[0].innerHTML;\r\n            \r\n            let container = $('<div class=\"marker-container hide\" data-map-nation=\"'+m.title+'\"><button class=\"btn drawer-btn\">'+btnclose+'</button></div>');\r\n            let content = $('<div class=\"marker-content\"></div>');\r\n            let h3 = $('<h3 style=\"color: '+color+'\" class=\"marker-title\">'+m.title+'</h3>');\r\n            let p = $('<p>'+m.description+'</p>');\r\n            \r\n            $(content).append( $(h3), $(p) );\r\n            if ( m.percent ){\r\n                let bar = $('<div class=\"map-progress-bar\"><span style=\"width:'+m.percent+'%; background:'+color+';\"></span></div>');\r\n                $(content).append( $(bar) );\r\n            }\r\n            $(container).append( $(content) );\r\n  \r\n            //console.log('InteractiveMapDetail createSidePanel container', $(container));\r\n            $(section).append(container);\r\n            //}\r\n        });\r\n    }\r\n  \r\n    selectArea(markers, section, event, index, titlemap , titleColor, countTitle) {\r\n\r\n        $(section).find('div.marker-container').addClass('hide');\r\n\r\n        if (this.gMarkers[index]) {\r\n            /*this.gMarkers[index].forEach(marker => {\r\n                marker.setIcon(  this.selectedMarkers[index].pin );\r\n               });*/\r\n            if (this.selectedMarkers[index]) {\r\n                this.selectedMarkers[index].label.className = 'label';\r\n                this.selectedMarkers[index].setIcon( this.selectedMarkers[index].pin );\r\n            }\r\n            this.selectedMarkers[index] = null;\r\n          }\r\n\r\n        let color = '#FFDD00';\r\n            switch (markers[0].category) {\r\n                case 'suolo':\r\n                    color = '#F8A800';\r\n                    break;\r\n                case 'falda':\r\n                    color = '#17CADD';\r\n                    break;\r\n                case 'aree':\r\n                    color = '#9FDA58';\r\n                    break;\r\n            }\r\n        \r\n        this.lastZooms[index] = this.maps[index].getZoom();\r\n        const boundsFeature = new google.maps.LatLngBounds();\r\n        event.feature.getGeometry().forEachLatLng((latlng) => {\r\n            boundsFeature.extend(latlng);\r\n        });\r\n  \r\n        this.maps[index].fitBounds(boundsFeature);\r\n  \r\n        //let title = event.feature.i.name; j\r\n        //let description = event.feature.i.description; j\r\n        let title = event.feature.getProperty('name');\r\n        //console.log('TEST TITLE: ' + title);\r\n\r\n        let description = event.feature.getProperty('description');\r\n        //console.log('TEST DESCRIPTION: ' + description);\r\n\r\n        //alert(description);\r\n\r\n        //const geoJsonUrl = $(section).attr('data-map-geojson-url');\r\n        let myRegexp = /.+(\\_(.+)\\.)/g;\r\n        let regexResult = null;\r\n        let percent = null;\r\n        let progressbar = null; \r\n\r\n        myRegexp = /.+(\\[(.+)\\])/g; \r\n        regexResult = myRegexp.exec( description );\r\n        if ( regexResult ){\r\n            percent = regexResult ? +regexResult.pop() : null;\r\n            description = description.replace( regexResult.pop(), \"\" );\r\n            progressbar = $('<div class=\"map-progress-bar\"><span style=\"width:'+percent+'%; background:'+color+';\"></span></div>');\r\n        }\r\n        //alert(percent);\r\n\r\n        const detailDiv = $(section).find(`div.marker-container#geojson-container`);\r\n        if (detailDiv) {\r\n            $(detailDiv).removeClass('hide');\r\n        }\r\n        const buttonCont = $(section).find(`div.map-buttons-container`);\r\n        if (buttonCont) {\r\n            $(buttonCont).addClass('open');\r\n        }\r\n            /*if ( m.title == m.titlemap ){\r\n                console.log(\"Test: \" + m.title + \" \" + titlemap[0]+ \" \" + color);\r\n                color = '#E63A36';*/\r\n\r\n        const titleContainer = $(detailDiv).find(`.marker-title`);\r\n        const abstractContainer = $(detailDiv).find(`.marker-abstract`);\r\n        const areaContainer = $(detailDiv).find(`.marker-content`);\r\n\r\n        $(titleContainer).html(title && title.length > 0 ? title : 'N.A.');\r\n\r\n        for ( var i=0; i<=countTitle; i++){\r\n        if ( title == titlemap[i] && titleColor == '#E63A36'){\r\n        color = '#E63A36';\r\n            }\r\n        else if ( title == titlemap[i] && titleColor == '#999999'){\r\n        color = '#999999';\r\n            }\r\n        }\r\n\r\n        $(titleContainer).attr('style', 'color:' + color);\r\n        $(abstractContainer).html(description && description.length > 0 ? description : 'N.A.');\r\n        $(areaContainer).children(\"div\").remove();\r\n        $(areaContainer).append(percent && percent > 0 ? progressbar : '');\r\n\r\n        this.maps[index].setZoom( DEFAULT_ZOOM_DETAIL + 2 );\r\n    }\r\n\r\n    /*showTooltip(markers, tooltip, event) {\r\n        const title = event.feature.j.name;\r\n        let wa = null;\r\n        for (var propt in event) {\r\n          if (event[propt] != undefined && (event[propt].constructor.name == 'MouseEvent') ||\r\n            (event[propt].constructor.toString() == '[object MouseEvent]') ||\r\n            (event[propt].constructor.toString() == '[object MouseEventConstructor]')) {\r\n            wa = event[propt];\r\n            break;\r\n          }\r\n        }\r\n        tooltip.show(wa.pageX, wa.pageY, title && title.length > 0 ?\r\n          title : 'N.A.');\r\n\r\n          let color = '#FFDD00';\r\n\r\n                switch (markers[0].category) {\r\n                    case 'suolo':\r\n                        color = '#F8A800';\r\n                        break;\r\n                    case 'falda':\r\n                        color = '#17CADD';\r\n                        break;\r\n                    case 'aree':\r\n                        color = '#9FDA58';\r\n                        break;\r\n                    }\r\n\r\n        document.getElementsByClassName('mapTooltip')[0].style.backgroundColor = color;\r\n        document.getElementsByClassName('mapTooltip')[0].style.transition = '.0s';\r\n      }\r\n    \r\n      hideTooltip(tooltip) {\r\n        tooltip.hide();\r\n      }*/\r\n  \r\n    handleCloseBtn(section, event, index) {\r\n        const btn = event.target;\r\n        const detailDiv = $(btn).parent();\r\n        if (detailDiv) {\r\n            $(section).find('div.marker-container').addClass('hide');\r\n        }\r\n        const buttonCont = $(detailDiv).parent().find('div.map-buttons-container');\r\n        if (buttonCont) {\r\n            $(buttonCont).removeClass('open');\r\n        }\r\n        if (this.gMarkers[index]) {\r\n          /*this.gMarkers[index].forEach(marker => {\r\n              marker.setIcon(  this.selectedMarkers[index].pin );\r\n             });*/\r\n          if (this.selectedMarkers[index]) {\r\n              this.selectedMarkers[index].label.className = 'label';\r\n              this.selectedMarkers[index].setIcon( this.selectedMarkers[index].pin );\r\n          }\r\n          this.selectedMarkers[index] = null;\r\n        }\r\n  \r\n        /* A */\r\n        //this.maps[index].setZoom( INIT_ZOOM_DETAIL );\r\n        /* B */\r\n        //this.maps[index].setZoom( MAX_ZOOM_DETAIL );\r\n\r\n        this.maps[index].setZoom( this.lastZooms[index] );\r\n        \r\n    }\r\n  \r\n    handleLocation(event, index) {\r\n        if (navigator.geolocation) {\r\n            navigator.geolocation.getCurrentPosition(position => {\r\n                const pos = {\r\n                    lat: position.coords.latitude,\r\n                    lng: position.coords.longitude\r\n                };\r\n                this.maps[index].setCenter(pos);\r\n                this.maps[index].setZoom(MAX_ZOOM_DETAIL);\r\n            });\r\n  \r\n            /* A */\r\n            if (INIT_ZOOM_DETAIL===0) {\r\n              INIT_ZOOM_DETAIL = this.maps[index].getZoom();\r\n            }\r\n        }\r\n    }\r\n  \r\n    handleZoom(event, inOrOut, index) {\r\n      /* A */\r\n      if (INIT_ZOOM_DETAIL===0) {\r\n          INIT_ZOOM_DETAIL = this.maps[index].getZoom();\r\n        }\r\n        \r\n      const newZoom = inOrOut ? this.maps[index].getZoom() + 1 : this.maps[index].getZoom() - 1;\r\n      this.maps[index].setZoom(newZoom);\r\n    }\r\n  \r\n  }\r\n  \r\n  window.initMapDetail = () => {\r\n    console.log('initMapDetail');\r\n    const component = new InteractiveMapDetail();\r\n  };\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/interactive-map-light.js\":\n/*!******************************************************!*\\\n  !*** ./src/scripts/widgets/interactive-map-light.js ***!\n  \\******************************************************/\n/*! exports provided: InteractiveMapLight */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InteractiveMapLight\", function() { return InteractiveMapLight; });\n/* harmony import */ var _common_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/tooltip */ \"./src/scripts/common/tooltip.js\");\n\r\n\r\nconst MAX_ZOOM_LIGHT = 13;\r\nconst MIN_ZOOM_LIGHT = 3;\r\nclass InteractiveMapLight {\r\n\r\n  constructor() {\r\n      const sections = $('section.interactive-map-light');\r\n      this.zoomDefault = MAX_ZOOM_LIGHT;\r\n\r\n      sections.each((index) => {\r\n          const section = sections[index];\r\n          const mapDiv = $(section).find('.eni-map');\r\n          const tooltip = new _common_tooltip__WEBPACK_IMPORTED_MODULE_0__[\"Tooltip\"]();\r\n          if (mapDiv.length > 0) {\r\n              this.initMapLight(section, mapDiv, index, tooltip);\r\n\r\n              this.closeBtn(section, index);\r\n              $(section).find('.map-buttons-container .location-btn').click((event => this.handleLocation(\r\n                  event, index)));\r\n              $(section).find('.map-buttons-container .zoom-in-btn').click((event => this.handleZoom(event,\r\n                  true, index)));\r\n              $(section).find('.map-buttons-container .zoom-out-btn').click((event => this.handleZoom(event,\r\n                  false, index)));\r\n          }\r\n      });\r\n  }\r\n  \r\n  closeBtn(section, index){\r\n      $(section).find('button.drawer-btn').on( 'click', event => this.handleCloseBtn(event, index));\r\n  }\r\n\r\n  initMapLight(section, mapDiv, index, tooltip) {\r\n      //console.log('InteractiveMapLight initMapLight', section, mapDiv, index, tooltip);\r\n\r\n      try {\r\n          const id = $(mapDiv).attr('id');\r\n          const alt = $(section).hasClass('alt-color');\r\n          const zoom = +$(section).attr('data-map-zoom');\r\n          const lat = +$(section).attr('data-map-lat');\r\n          const lng = +$(section).attr('data-map-lng');\r\n\r\n          let mapLock = 'default';\r\n          if(undefined!=$(section).attr(\"data-map-lock\") && $(section).attr(\"data-map-lock\").length>0)\r\n             mapLock = $(section).attr('data-map-lock');\r\n\r\n          this.markerNormal = {\r\n              url: $(section).attr('data-map-icon-marker-normal'),\r\n              scaledSize: new google.maps.Size(15, 15),\r\n              labelOrigin: new google.maps.Point(7.5, -20),\r\n              anchor: new google.maps.Point(7.5, 7.5)\r\n          };\r\n          this.markerSelected = {\r\n              url: $(section).attr('data-map-icon-marker-selected'),\r\n              scaledSize: new google.maps.Size(30, 30),\r\n              labelOrigin: new google.maps.Point(16, -20),\r\n              anchor: new google.maps.Point(15, 15)\r\n          };\r\n          this.maps = this.maps || [];\r\n          this.selectedMarkers = this.selectedMarkers || [];\r\n          this.lastZooms = this.lastZooms || [];\r\n          this.gMarkers = this.gMarkers || [];\r\n\r\n          let styles = [\r\n            {\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#f5f5f5\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"elementType\": \"labels.icon\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"elementType\": \"labels.text.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#616161\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"elementType\": \"labels.text.stroke\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#f5f5f5\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"administrative\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#bfb8a3\"\r\n                },\r\n                {\r\n                  \"weight\": 1.5\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"administrative.country\",\r\n              \"elementType\": \"labels.text\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"administrative.land_parcel\",\r\n              \"elementType\": \"labels.text\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"administrative.land_parcel\",\r\n              \"elementType\": \"labels.text.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#bdbdbd\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"administrative.locality\",\r\n              \"elementType\": \"labels.text\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"administrative.neighborhood\",\r\n              \"elementType\": \"labels.text\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"administrative.province\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"administrative.province\",\r\n              \"elementType\": \"labels.text\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"landscape\",\r\n              \"elementType\": \"labels.text\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"landscape.natural.terrain\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#ffffff\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"poi\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#eeeeee\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"poi\",\r\n              \"elementType\": \"geometry.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#eeeeee\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"poi\",\r\n              \"elementType\": \"labels.text.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#757575\"\r\n                },\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"poi\",\r\n              \"elementType\": \"labels.text.stroke\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"poi.park\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#ffffff\"\r\n                },\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"poi.park\",\r\n              \"elementType\": \"labels.text.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#9e9e9e\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"road\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#ffffff\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"road\",\r\n              \"elementType\": \"geometry.stroke\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"road\",\r\n              \"elementType\": \"labels\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"road.arterial\",\r\n              \"elementType\": \"labels.text.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#757575\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"road.highway\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#dadada\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"road.highway\",\r\n              \"elementType\": \"labels.text.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#616161\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"road.highway.controlled_access\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#e9e6dd\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"road.local\",\r\n              \"elementType\": \"labels.text.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#9e9e9e\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"transit\",\r\n              \"stylers\": [\r\n                {\r\n                  \"visibility\": \"off\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"transit.line\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#e5e5e5\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"transit.station\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#eeeeee\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"water\",\r\n              \"elementType\": \"geometry\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#9abdd3\"\r\n                }\r\n              ]\r\n            },\r\n            {\r\n              \"featureType\": \"water\",\r\n              \"elementType\": \"labels.text.fill\",\r\n              \"stylers\": [\r\n                {\r\n                  \"color\": \"#456b82\"\r\n                }\r\n              ]\r\n            }\r\n          ];\r\n\r\n          //console.log('InteractiveMapLight initMapLight type', zoom);\r\n          let options = {}\r\n\r\n          if (mapLock != \"default\") {\r\n\r\n            // coordinate mappa fisse\r\n            switch (mapLock) {\r\n              case 'ITALIA':\r\n                console.log('mapLock: '+ mapLock);\r\n                var nationMap = {\r\n                  north: 50.00,\r\n                  south: 36.00,\r\n                  west: 5.00,\r\n                  east: 20.00,\r\n                };\r\n              break;\r\n            }\r\n\r\n            options = {\r\n              center: {\r\n                  lat: lat,\r\n                  lng: lng\r\n              },\r\n              restriction: {\r\n                latLngBounds: nationMap,\r\n                strictBounds: false,\r\n              },\r\n              zoom: zoom,\r\n              styles: ( alt ) ? styles : styles,\r\n              //maxZoom: MAX_ZOOM_LIGHT,\r\n              minZoom: MIN_ZOOM_LIGHT,\r\n              disableDefaultUI: true\r\n            }\r\n          }\r\n          else {\r\n            console.log('CONTROLLO: diverso DEFAULT - ELSE'+ mapLock);\r\n            options = {\r\n              center: {\r\n                  lat: lat,\r\n                  lng: lng\r\n              },\r\n              zoom: zoom,\r\n              styles: ( alt ) ? styles : styles,\r\n              //maxZoom: MAX_ZOOM_LIGHT,\r\n              minZoom: MIN_ZOOM_LIGHT,\r\n              disableDefaultUI: true\r\n            }\r\n          }          \r\n\r\n          this.maps[index] = new google.maps.Map(\r\n              document.getElementById(id), options\r\n          );\r\n\r\n          this.selectedMarkers[index] = null;\r\n\r\n          let markers = $(section).attr('data-map-markers') ? JSON.parse($(section).attr('data-map-markers')) : null;\r\n          //console.log('InteractiveMapLight initMapLight markers', markers);\r\n          this.handleMarkers(markers, section, this.maps[index], index);\r\n      } catch (ex) {\r\n          console.error(ex);\r\n      }\r\n  }\r\n\r\n  handleMarkers(markers, section, map, index, detailsMap) {\r\n\r\n      detailsMap = (detailsMap === undefined) ? false : detailsMap;\r\n\r\n      this.gMarkers[index] = [];\r\n      const nation = $(section).attr('data-map-nation-selected') ? $(section).attr('data-map-nation-selected').replace(/\"/gi, '') : null;\r\n\r\n      markers.forEach(m => {\r\n\r\n          //- default color and pin keep them for compatibility ---\r\n              let color = '#ffd300';\r\n              let pin = Object.assign({}, this.markerNormal);\r\n              let pin_selected = Object.assign({}, this.markerSelected);\r\n\r\n              pin.url = $(section).attr('data-map-icon-marker-'+m.category);\r\n              pin_selected.url = pin.url.replace('.svg', \"-hover.svg\");\r\n              \r\n              //- get color and pin from category map ---\r\n                  switch (m.category) {\r\n                      //- test category used only in develop environment ---\r\n                      case 'pinStandard':\r\n                          color = '#ffd300';\r\n                          break;\r\n                      case 'sedeEnirewind':\r\n                          color = '#efefef';\r\n                      break;\r\n                      case 'falda':\r\n                          color = '#17cadd';\r\n                      break;\r\n                      case 'aree':\r\n                          color = '#9fda58';\r\n                      break;\r\n                      case 'suolo':\r\n                          color = '#f8a800';\r\n                      break;\r\n                      case 'areeSuolo':\r\n                          color = '#ffd300';\r\n                      break;\r\n                      case 'areeSin':\r\n                          color = '#9fda58';\r\n                      break;\r\n                      case 'suoloSin':\r\n                          color = '#f8a800';\r\n                      break;\r\n                      case 'areeSuoloSin':\r\n                          color = '#ffd300';\r\n                      break;\r\n                  }\r\n              \r\n              $('[data-map-nation=\"'+m.title+'\"] h3').css({\"color\": m.titleColor});\r\n\r\n\r\n          //console.log('InteractiveMapLight handleMarkers info', color, pin, pin_selected);\r\n\r\n          let label = '';\r\n          //if ( !detailsMap ){\r\n              label = {\r\n                  text: m.title,\r\n                  color: color,\r\n                  fontSize: '16px',\r\n                  fontFamily: 'Open Sans',\r\n                  className: 'label'\r\n              }\r\n          //}\r\n\r\n          const gMarker = new google.maps.Marker({\r\n              position: new google.maps.LatLng( m.lat, m.lng ),\r\n              label: label,\r\n              icon: pin,\r\n              pin: pin,\r\n              pin_selected: pin_selected,\r\n              zIndex: 100,\r\n              optimized: false\r\n          });\r\n          gMarker.setMap(map);\r\n          this.gMarkers[index].push(gMarker);\r\n\r\n          google.maps.event.addListener(gMarker, 'mouseover', () => {\r\n              gMarker.setIcon( pin_selected );\r\n              gMarker.label.className = 'label active';\r\n          });\r\n          \r\n          google.maps.event.addListener(gMarker, 'mouseout', () => {\r\n              if (this.selectedMarkers[index] !== gMarker) {\r\n                  gMarker.label.className = 'label';\r\n                  gMarker.setIcon( pin );\r\n              }\r\n          });\r\n          \r\n          google.maps.event.addListener(gMarker, 'click', () => {\r\n              this.selectNation(section, map, m, gMarker, index);\r\n          });\r\n\r\n          //- activate current nation ---\r\n          if (nation && nation == m.title) {\r\n              this.selectNation(section, map, m, gMarker, index);\r\n          }\r\n      });\r\n\r\n      let categoryMarker = null;\r\n      let categoryMap = $(section).attr('data-map-marker-category');\r\n\r\n      switch (categoryMap) {\r\n      //- test category used only in develop environment ---\r\n      case 'default' :\r\n        case '\"default\"':\r\n          categoryMarker = $(section).attr('data-map-icon-marker-normal');\r\n            break;\r\n\r\n        case 'falda':\r\n        case '\"falda\"':\r\n          categoryMarker = $(section).attr('data-map-marker-falda');\r\n            break;\r\n      }\r\n\r\n    //- group nearest marker ---\r\n      this.markerCluster = new MarkerClusterer(map, this.gMarkers[index], {\r\n      styles: [{\r\n              url: categoryMarker,\r\n              height: 40,\r\n              width: 40,\r\n              textColor: '#000',\r\n              textSize: 16,\r\n              fontFamily: 'EniTabReg'\r\n              }]\r\n      });\r\n\r\n      $(section).on('mouseover', 'div', function(e) {\r\n      if ( $(this).attr('class') == 'cluster-hover') {\r\n      switch ( categoryMap ) {\r\n          //- test category used only in develop environment ---\r\n          case 'default' :\r\n          case '\"default\"':\r\n                $(this).attr('class', 'cluster-hover');\r\n                break;\r\n\r\n            case 'falda':\r\n            case '\"falda\"':\r\n                $(this).attr('class', 'cluster-hover-falda');\r\n                break;\r\n              }\r\n          }\r\n      });\r\n\r\n  }\r\n\r\n  //- Deselect current pointer and active the clicked one ---\r\n  selectNation(section, map, nation, gMarker, index) {\r\n\r\n      //console.log('InteractiveMapLight selectNation', this.selectedMarkers, this.selectedMarkers[index]);\r\n\r\n      if (this.selectedMarkers && this.selectedMarkers[index]) {\r\n          //- deselect old active pointer ---\r\n\r\n          const actualMarker = this.selectedMarkers[index];\r\n          actualMarker.setIcon( actualMarker.pin );\r\n          actualMarker.label.className = 'label';\r\n          //const detailActualDiv = $(section).find(`div.marker-container[data-map-nation=\"${actualMarker.label.text}\"]`);\r\n          const detailActualDiv = $(section).find(`div.marker-container`);\r\n          if (detailActualDiv) {\r\n              $(detailActualDiv).addClass('hide');\r\n          }\r\n          this.selectedMarkers[index] = null;\r\n      }\r\n\r\n      if (!this.selectedMarkers || !this.selectedMarkers[index]) {\r\n          //- activate current pointer ---\r\n\r\n          gMarker.setIcon( gMarker.pin_selected );\r\n          gMarker.label.className = 'label active';\r\n          this.selectedMarkers[index] = gMarker;\r\n          this.lastZooms[index] = map.getZoom();\r\n          map.setZoom( this.zoomDefault );\r\n          map.setCenter( gMarker.getPosition() );\r\n          const detailDiv = $(section).find(`div.marker-container[data-map-nation=\"${nation.title}\"]`);\r\n          if (detailDiv) {\r\n              $(detailDiv).toggleClass('hide');\r\n          }\r\n          const buttonCont = $(section).find(`div.map-buttons-container`);\r\n          if (buttonCont) {\r\n              $(buttonCont).addClass('open');\r\n          }\r\n      }\r\n  }\r\n\r\n  handleCloseBtn(event, index) {\r\n      const btn = event.target;\r\n      const detailDiv = $(btn).parent();\r\n      if (detailDiv) {\r\n          $(detailDiv).addClass('hide');\r\n      }\r\n      const buttonCont = $(detailDiv).parent().find('div.map-buttons-container');\r\n      if (buttonCont) {\r\n          $(buttonCont).removeClass('open');\r\n      }\r\n      if (this.gMarkers[index]) {\r\n        /*this.gMarkers[index].forEach(marker => {\r\n            marker.setIcon(  this.selectedMarkers[index].pin );\r\n           });*/\r\n        if (this.selectedMarkers[index]) {\r\n            this.selectedMarkers[index].label.className = 'label';\r\n            this.selectedMarkers[index].setIcon( this.selectedMarkers[index].pin );\r\n        }\r\n        this.selectedMarkers[index] = null;\r\n      }\r\n      this.maps[index].setZoom( this.lastZooms[index] );\r\n  }\r\n\r\n  handleLocation(event, index) {\r\n      if (navigator.geolocation) {\r\n          navigator.geolocation.getCurrentPosition(position => {\r\n              const pos = {\r\n                  lat: position.coords.latitude,\r\n                  lng: position.coords.longitude\r\n              };\r\n              this.maps[index].setCenter(pos);\r\n              // this.maps[index].setZoom(MAX_ZOOM_LIGHT);\r\n          });\r\n      }\r\n  }\r\n\r\n  handleZoom(event, inOrOut, index) {\r\n      const newZoom = inOrOut ? this.maps[index].getZoom() + 1 : this.maps[index].getZoom() - 1;\r\n      this.maps[index].setZoom(newZoom);\r\n  }\r\n\r\n}\r\n\r\nwindow.initMapLight = () => {\r\n  console.log('initMapLight');\r\n  const component = new InteractiveMapLight();\r\n};\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/interactive-map.js\":\n/*!************************************************!*\\\n  !*** ./src/scripts/widgets/interactive-map.js ***!\n  \\************************************************/\n/*! exports provided: InteractiveMap */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InteractiveMap\", function() { return InteractiveMap; });\n/* harmony import */ var _common_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/tooltip */ \"./src/scripts/common/tooltip.js\");\n\r\n\r\nconst MAX_ZOOM = 7;\r\nconst MIN_ZOOM = 3;\r\nclass InteractiveMap {\r\n\r\n  constructor() {\r\n    const sections = $('section.interactive-map');\r\n    sections.each((index) => {\r\n      const section = sections[index];\r\n      const mapDiv = $(section).find('.eni-map');\r\n      const tooltip = new _common_tooltip__WEBPACK_IMPORTED_MODULE_0__[\"Tooltip\"]();\r\n      if (mapDiv.length > 0) {\r\n        this.initMap(section, mapDiv, index, tooltip);\r\n        $(section).find('button.drawer-btn').click(event => this.handleCloseBtn(event, index));\r\n        $(section).find('.map-buttons-container .location-btn').click((event => this.handleLocation(\r\n          event, index)));\r\n        $(section).find('.map-buttons-container .zoom-in-btn').click((event => this.handleZoom(event,\r\n          true, index)));\r\n        $(section).find('.map-buttons-container .zoom-out-btn').click((event => this.handleZoom(event,\r\n          false, index)));\r\n      }\r\n    });\r\n  }\r\n\r\n  initMap(section, mapDiv, index, tooltip) {\r\n    try {\r\n      const id = $(mapDiv).attr('id');\r\n      const zoom = +$(section).attr('data-map-zoom');\r\n      const lat = +$(section).attr('data-map-lat');\r\n      const lng = +$(section).attr('data-map-lng');\r\n\r\n\r\n      this.markerNormal = {\r\n        url: $(section).attr('data-map-icon-marker-normal'),\r\n        scaledSize: new google.maps.Size(15, 15),\r\n        labelOrigin: new google.maps.Point(7.5, -20)\r\n      };\r\n      this.markerSelected = {\r\n        url: $(section).attr('data-map-icon-marker-selected'),\r\n        scaledSize: new google.maps.Size(30, 30),\r\n        labelOrigin: new google.maps.Point(16, -20)\r\n      };\r\n      this.maps = this.maps || [];\r\n      this.selectedMarkers = this.selectedMarkers || [];\r\n      this.lastZooms = this.lastZooms || [];\r\n      this.gMarkers = this.gMarkers || [];\r\n      this.maps[index] = new google.maps.Map(document.getElementById(id), {\r\n        center: {\r\n          lat: lat,\r\n          lng: lng\r\n        },\r\n        zoom: zoom,\r\n        styles: [{\r\n          \"featureType\": \"all\",\r\n          \"elementType\": \"labels.text.fill\",\r\n          \"stylers\": [{\r\n            \"saturation\": 36\r\n          }, {\r\n            \"lightness\": 40\r\n          }, {\r\n            \"color\": \"#ffd100\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"all\",\r\n          \"elementType\": \"labels.text.stroke\",\r\n          \"stylers\": [{\r\n            \"visibility\": \"on\"\r\n          }, {\r\n            \"color\": \"#000000\"\r\n          }, {\r\n            \"lightness\": 16\r\n          }]\r\n        }, {\r\n          \"featureType\": \"all\",\r\n          \"elementType\": \"labels.icon\",\r\n          \"stylers\": [{\r\n            \"visibility\": \"off\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"administrative\",\r\n          \"elementType\": \"geometry.fill\",\r\n          \"stylers\": [{\r\n            \"color\": \"#000000\"\r\n          }, {\r\n            \"lightness\": 20\r\n          }]\r\n        }, {\r\n          \"featureType\": \"administrative\",\r\n          \"elementType\": \"geometry.stroke\",\r\n          \"stylers\": [{\r\n            \"color\": \"#000000\"\r\n          }, {\r\n            \"lightness\": 17\r\n          }, {\r\n            \"weight\": 1.2\r\n          }]\r\n        }, {\r\n          \"featureType\": \"administrative\",\r\n          \"elementType\": \"labels.text\",\r\n          \"stylers\": [{\r\n            \"visibility\": \"off\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"landscape\",\r\n          \"elementType\": \"geometry\",\r\n          \"stylers\": [{\r\n            \"color\": \"#000000\"\r\n          }, {\r\n            \"lightness\": 20\r\n          }]\r\n        }, {\r\n          \"featureType\": \"landscape\",\r\n          \"elementType\": \"labels\",\r\n          \"stylers\": [{\r\n            \"visibility\": \"off\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"poi\",\r\n          \"elementType\": \"geometry\",\r\n          \"stylers\": [{\r\n            \"color\": \"#111111\"\r\n          }, {\r\n            \"lightness\": 21\r\n          }]\r\n        }, {\r\n          \"featureType\": \"poi\",\r\n          \"elementType\": \"labels\",\r\n          \"stylers\": [{\r\n            \"visibility\": \"off\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"road\",\r\n          \"elementType\": \"labels\",\r\n          \"stylers\": [{\r\n            \"visibility\": \"off\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"road.highway\",\r\n          \"elementType\": \"geometry\",\r\n          \"stylers\": [{\r\n            \"visibility\": \"on\"\r\n          }, {\r\n            \"color\": \"#5f5f5f\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"road.highway\",\r\n          \"elementType\": \"geometry.stroke\",\r\n          \"stylers\": [{\r\n            \"color\": \"#000000\"\r\n          }, {\r\n            \"lightness\": 29\r\n          }, {\r\n            \"weight\": 0.2\r\n          }]\r\n        }, {\r\n          \"featureType\": \"road.arterial\",\r\n          \"elementType\": \"geometry\",\r\n          \"stylers\": [{\r\n            \"color\": \"#000000\"\r\n          }, {\r\n            \"lightness\": 18\r\n          }, {\r\n            \"visibility\": \"simplified\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"road.arterial\",\r\n          \"elementType\": \"geometry.fill\",\r\n          \"stylers\": [{\r\n            \"color\": \"#606060\"\r\n          }, {\r\n            \"lightness\": \"39\"\r\n          }, {\r\n            \"gamma\": \"0.43\"\r\n          }, {\r\n            \"saturation\": \"-47\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"road.local\",\r\n          \"elementType\": \"geometry\",\r\n          \"stylers\": [{\r\n            \"color\": \"#000000\"\r\n          }, {\r\n            \"lightness\": 16\r\n          }]\r\n        }, {\r\n          \"featureType\": \"road.local\",\r\n          \"elementType\": \"geometry.fill\",\r\n          \"stylers\": [{\r\n            \"color\": \"#524300\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"road.local\",\r\n          \"elementType\": \"geometry.stroke\",\r\n          \"stylers\": [{\r\n            \"color\": \"#555555\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"transit\",\r\n          \"elementType\": \"geometry\",\r\n          \"stylers\": [{\r\n            \"lightness\": 19\r\n          }, {\r\n            \"color\": \"#5d5d5d\"\r\n          }]\r\n        }, {\r\n          \"featureType\": \"water\",\r\n          \"elementType\": \"geometry\",\r\n          \"stylers\": [{\r\n            \"color\": \"#000000\"\r\n          }, {\r\n            \"lightness\": 17\r\n          }]\r\n        }, {\r\n          \"featureType\": \"water\",\r\n          \"elementType\": \"labels\",\r\n          \"stylers\": [{\r\n            \"visibility\": \"off\"\r\n          }]\r\n        }],\r\n        maxZoom: MAX_ZOOM,\r\n        minZoom: MIN_ZOOM,\r\n        disableDefaultUI: true\r\n      });\r\n\r\n      this.selectedMarkers[index] = null;\r\n\r\n      const markers = $(section).attr('data-map-markers') ? JSON.parse($(section).attr('data-map-markers')) : null;\r\n      if (markers) {\r\n        this.handleMarkers(markers, section, this.maps[index], index);\r\n      } else {\r\n        this.handleGeoJson(section, this.maps[index], index, tooltip);\r\n      }\r\n    } catch (ex) {\r\n      console.error(ex);\r\n    }\r\n  }\r\n\r\n  handleMarkers(markers, section, map, index) {\r\n    this.gMarkers[index] = [];\r\n    const nation = $(section).attr('data-map-nation-selected') ? $(section).attr('data-map-nation-selected').replace(\r\n      /\"/gi, '') : null;\r\n    markers.forEach(m => {\r\n      const gMarker = new google.maps.Marker({\r\n        position: new google.maps.LatLng(m.lat, m.lng),\r\n        label: {\r\n          text: m.title,\r\n          color: '#ffd300',\r\n          fontSize: '16px',\r\n          fontFamily: 'Open Sans'\r\n        },\r\n        icon: this.markerNormal,\r\n        optimized: false\r\n      });\r\n      gMarker.setMap(map);\r\n      this.gMarkers[index].push(gMarker);\r\n      google.maps.event.addListener(gMarker, 'mouseover', () => {\r\n        gMarker.setIcon(this.markerSelected);\r\n      });\r\n      google.maps.event.addListener(gMarker, 'mouseout', () => {\r\n        if (this.selectedMarkers[index] !== gMarker) {\r\n          gMarker.setIcon(this.markerNormal);\r\n        }\r\n      });\r\n      google.maps.event.addListener(gMarker, 'click', () => {\r\n        this.selectNation(section, map, m, gMarker, index);\r\n      });\r\n      if (nation && nation == m.title) {\r\n        this.selectNation(section, map, m, gMarker, index);\r\n      }\r\n    });\r\n\r\n\r\n    this.markerCluster = new MarkerClusterer(map, this.gMarkers[index], {\r\n      styles: [{\r\n        url: $(section).attr('data-map-icon-marker-normal'),\r\n        height: 40,\r\n        width: 40,\r\n        textColor: '#000',\r\n        textSize: 16,\r\n        fontFamily: 'EniTabReg'\r\n      }]\r\n    });\r\n  }\r\n\r\n  selectNation(section, map, nation, gMarker, index) {\r\n    if (this.selectedMarkers && this.selectedMarkers[index]) {\r\n      const actualMarker = this.selectedMarkers[index];\r\n      actualMarker.setIcon(this.markerNormal);\r\n      const detailActualDiv = $(section).find(`div.marker-container[data-map-nation=\"${actualMarker.label.text}\"]`);\r\n      if (detailActualDiv) {\r\n        $(detailActualDiv).toggleClass('hide');\r\n      }\r\n      this.selectedMarkers[index] = null;\r\n    }\r\n    if (!this.selectedMarkers || !this.selectedMarkers[index]) {\r\n      gMarker.setIcon(this.markerSelected);\r\n      this.selectedMarkers[index] = gMarker;\r\n      this.lastZooms[index] = map.getZoom();\r\n      map.setZoom(MAX_ZOOM);\r\n      map.setCenter(gMarker.getPosition());\r\n      const detailDiv = $(section).find(`div.marker-container[data-map-nation=\"${nation.title}\"]`);\r\n      if (detailDiv) {\r\n        $(detailDiv).toggleClass('hide');\r\n      }\r\n      const buttonCont = $(section).find(`div.map-buttons-container`);\r\n      if (buttonCont) {\r\n        $(buttonCont).addClass('open');\r\n      }\r\n    }\r\n  }\r\n\r\n  handleGeoJson(section, map, index, tooltip) {\r\n    const geoJsonUrl = $(section).attr('data-map-geojson-url');\r\n    if (geoJsonUrl) {\r\n      $.getJSON(geoJsonUrl.replace(/\"/gi, ''), (geoJson) => {\r\n\r\n        map.data.addGeoJson(geoJson, {\r\n          idPropertyName: 'id'\r\n        });\r\n        // Add some style.\r\n        map.data.setStyle((f) => {\r\n          return /** @type {google.maps.Data.StyleOptions} */ ({\r\n            fillColor: f.getProperty('fill'),\r\n            fillOpacity: f.getProperty('fill-opacity'),\r\n            strokeColor: f.getProperty('stroke'),\r\n            strokeOpacity: f.getProperty('stroke-opacity'),\r\n            strokeWeight: f.getProperty('stroke-width'),\r\n            icon: f.getProperty('icon')\r\n          });\r\n        });\r\n\r\n        const bounds = new google.maps.LatLngBounds();\r\n        map.data.forEach(function (feature) {\r\n          feature.getGeometry().forEachLatLng(function (latlng) {\r\n            bounds.extend(latlng);\r\n          });\r\n        });\r\n\r\n        map.fitBounds(bounds);\r\n\r\n        map.data.addListener('click', (event) => {\r\n          this.selectArea(section, event, index);\r\n        });\r\n\r\n        map.data.addListener('mouseover', (event) => {\r\n          this.showTooltip(tooltip, event);\r\n        });\r\n\r\n        map.data.addListener('mouseout', (event) => {\r\n          this.hideTooltip(tooltip);\r\n        });\r\n\r\n      });\r\n    }\r\n  }\r\n\r\n  selectArea(section, event, index) {\r\n    this.lastZooms[index] = this.maps[index].getZoom();\r\n    const boundsFeature = new google.maps.LatLngBounds();\r\n    event.feature.getGeometry().forEachLatLng((latlng) => {\r\n      boundsFeature.extend(latlng);\r\n    });\r\n\r\n    this.maps[index].fitBounds(boundsFeature);\r\n\r\n    const title = event.feature.l.name;\r\n    const description = event.feature.l.description;\r\n    const detailDiv = $(section).find(`div.marker-container#geojson-container`);\r\n    if (detailDiv) {\r\n      $(detailDiv).removeClass('hide');\r\n    }\r\n    const buttonCont = $(section).find(`div.map-buttons-container`);\r\n    if (buttonCont) {\r\n      $(buttonCont).addClass('open');\r\n    }\r\n    const titleContainer = $(detailDiv).find(`.marker-title`);\r\n    const abstractContainer = $(detailDiv).find(`.marker-abstract`);\r\n    $(titleContainer).html(title && title.length > 0 ? title :\r\n      'N.A.');\r\n    $(abstractContainer).html(description && description.length > 0 ? description : 'N.A.');\r\n  }\r\n\r\n  showTooltip(tooltip, event) {\r\n    const title = event.feature.l.name;\r\n    let wa = null;\r\n    for (var propt in event) {\r\n      if (event[propt] != undefined && (event[propt].constructor.name == 'MouseEvent') ||\r\n        (event[propt].constructor.toString() == '[object MouseEvent]') ||\r\n        (event[propt].constructor.toString() == '[object MouseEventConstructor]')) {\r\n        wa = event[propt];\r\n        break;\r\n      }\r\n    }\r\n    tooltip.show(wa.pageX, wa.pageY, title && title.length > 0 ?\r\n      title : 'N.A.');\r\n  }\r\n\r\n  hideTooltip(tooltip) {\r\n    tooltip.hide();\r\n  }\r\n\r\n  handleCloseBtn(event, index) {\r\n    const btn = event.target;\r\n    const detailDiv = $(btn).parent();\r\n    if (detailDiv) {\r\n      $(detailDiv).addClass('hide');\r\n    }\r\n    const buttonCont = $(detailDiv).parent().find('div.map-buttons-container');\r\n    if (buttonCont) {\r\n      $(buttonCont).removeClass('open');\r\n    }\r\n    if (this.gMarkers[index]) {\r\n      this.gMarkers[index].forEach(marker => {\r\n        marker.setIcon(this.markerNormal);\r\n      });\r\n      if (this.selectedMarkers[index]) {\r\n        this.selectedMarkers[index].setIcon(this.markerNormal);\r\n      }\r\n      this.selectedMarkers[index] = null;\r\n    }\r\n    this.maps[index].setZoom(this.lastZooms[index]);\r\n  }\r\n\r\n  handleLocation(event, index) {\r\n    if (navigator.geolocation) {\r\n      navigator.geolocation.getCurrentPosition(position => {\r\n        const pos = {\r\n          lat: position.coords.latitude,\r\n          lng: position.coords.longitude\r\n        };\r\n        this.maps[index].setCenter(pos);\r\n        // this.maps[index].setZoom(MAX_ZOOM);\r\n      });\r\n    }\r\n  }\r\n\r\n  handleZoom(event, inOrOut, index) {\r\n    const newZoom = inOrOut ? this.maps[index].getZoom() + 1 : this.maps[index].getZoom() - 1;\r\n    this.maps[index].setZoom(newZoom);\r\n  }\r\n\r\n\r\n\r\n}\r\n\r\nwindow.initMap = () => {\r\n  console.log('initMap');\r\n  initMapLight();\r\n  initMapDetail();\r\n  const component = new InteractiveMap();\r\n};\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/joule-event-highlight.js\":\n/*!******************************************************!*\\\n  !*** ./src/scripts/widgets/joule-event-highlight.js ***!\n  \\******************************************************/\n/*! exports provided: JOULE_EVENT_HIGHLIGHT_PROPS, JouleEventHighlight */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JOULE_EVENT_HIGHLIGHT_PROPS\", function() { return JOULE_EVENT_HIGHLIGHT_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JouleEventHighlight\", function() { return JouleEventHighlight; });\nconst JOULE_EVENT_HIGHLIGHT_PROPS = {\r\n  SECTION_CLASS: 'section.joule-event-highlight-section',\r\n};\r\n\r\nclass JouleEventHighlight {\r\n\r\n  constructor() {\r\n    console.log('JouleEventHighlight');\r\n    // Manage children selector when dynamic section instantiate class\r\n\r\n    $(JOULE_EVENT_HIGHLIGHT_PROPS.SECTION_CLASS).hover((event) => this.handleHover(event, true), (event) => this.handleHover(\r\n      event, false));\r\n  }\r\n  \r\n  handleHover(event, inOut) {\r\n    const section = event.currentTarget;\r\n    const yellowLine = $(section).find('i.dash');\r\n    if (inOut) {\r\n      yellowLine.addClass('active');\r\n    } else {\r\n      yellowLine.removeClass('active');\r\n    }\r\n  }\r\n\r\n}\r\n\r\n$(() => {\r\n  const component = new JouleEventHighlight();\r\n\r\n  $('.joule-event-highlight-section .joule-event-container .owl-carousel').owlCarousel({\r\n    dots: true,\r\n    loop:true,\r\n    margin:10,\r\n    responsiveClass:true,\r\n    responsive:{\r\n      0: {\r\n        items: 1,\r\n        slideBy: 1,\r\n        nav:true\r\n      },\r\n      // 768: {\r\n      //   items: 2.5,\r\n      //   slideBy: 2\r\n      // },\r\n      1024: {\r\n        items: 1,\r\n        slideBy: 1,\r\n        nav:true\r\n      },\r\n      1440: {\r\n        items: 1,\r\n        slideBy: 1,\r\n        nav:true\r\n      },\r\n      1920: {\r\n        items: 1,\r\n        slideBy: 1,\r\n        nav:true\r\n      }\r\n\r\n    }\r\n  })\r\n\r\n  for (var i=0; i<$(\".joule-event-highlight-section\").length; i++ ) {\r\n    var id=$(\".joule-event-highlight-section\").eq(i).attr(\"id\");\r\n    //console.log(\"ID: \"+id+\" - length: \"+$(\"#\"+id+\" .owl-dot\").length);\r\n\r\n    if ($(\"#\"+id+\" .owl-dot\").length==1) {\r\n      $(\"#\"+id+\" .owl-dot\").css(\"display\",\"none\");\r\n    }\r\n  }\r\n \r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/manager-detail.js\":\n/*!***********************************************!*\\\n  !*** ./src/scripts/widgets/manager-detail.js ***!\n  \\***********************************************/\n/*! exports provided: ManagerDetail */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManagerDetail\", function() { return ManagerDetail; });\n// import { animateCSS, ANIMATE_EFFECT } from '../common/animate';\r\n\r\nclass ManagerDetail {\r\n  constructor() {\r\n    $('.manager-detail .btn-view-more').click(this.handleViewMore);\r\n    $('.manager-detail .btn-view-less').click(this.handleViewLess);\r\n    // animateCSS($('.manager-detail .manager-image')[0], ANIMATE_EFFECT.FADE_IN_UP);\r\n  }\r\n\r\n  handleViewMore(event) {\r\n    try {\r\n      const parent = $(event.currentTarget).parent();\r\n      $(parent).removeClass('d-flex');\r\n      $(parent).addClass('d-none');\r\n      const card = $(event.currentTarget).parents('.manager-card')[0];\r\n      const moreContent = $(card).find('.more-content');\r\n      if (moreContent) {\r\n        moreContent.show();\r\n      }\r\n    } catch (ex) {\r\n      console.error(ex);\r\n    }\r\n  }\r\n\r\n  handleViewLess(event) {\r\n    console.log(event);\r\n    try {\r\n      const parent = $(event.currentTarget).parents('.more-content');\r\n      parent.hide();\r\n      const card = $(event.currentTarget).parents('.manager-card')[0];\r\n      const showViewMoreDiv = $(card).find('.btn-view-more').parent();\r\n      if (showViewMoreDiv) {\r\n        $(showViewMoreDiv).removeClass('d-none');\r\n        $(showViewMoreDiv).addClass('d-flex');\r\n      }\r\n    } catch (ex) {\r\n      console.error(ex);\r\n    }\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new ManagerDetail();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/managers-card.js\":\n/*!**********************************************!*\\\n  !*** ./src/scripts/widgets/managers-card.js ***!\n  \\**********************************************/\n/*! exports provided: ManagersCard */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ManagersCard\", function() { return ManagersCard; });\n/* harmony import */ var _common_animate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/animate */ \"./src/scripts/common/animate.js\");\n\r\n\r\nclass ManagersCard {\r\n  constructor() {\r\n    $('.managers-card button.view-more').on('click', (e) => {\r\n      console.log(e);\r\n      this.showMore(e.currentTarget);\r\n      return false;\r\n    });\r\n\r\n    $('.managers-card button.view-less').on('click', (e) => {\r\n      this.showLess(e.currentTarget);\r\n      return false;\r\n    });\r\n\r\n    $('.managers-card .manager-item').click(this.handleCardLink);\r\n  }\r\n\r\n  showMore(el) {\r\n    console.log('showMore');\r\n    $(el).hide();\r\n    try {\r\n      const row = $(el).parents('.managers-container').children('.manager-row');\r\n      // animateCSS(row[0], ANIMATE_EFFECT.BOUNCE_IN_UP);\r\n      $(row).show();\r\n      const btnLess = $(el).parents('.view-more-box').children('.view-less');\r\n      $(btnLess).show();\r\n\r\n    } catch (er) {\r\n      console.error(er);\r\n    }\r\n  }\r\n\r\n  showLess(el) {\r\n    $(el).hide();\r\n    try {\r\n      const row = $(el).parents('.managers-container').children('.manager-row');\r\n      $(row).hide();\r\n      const btnMore = $(el).parents('.view-more-box').children('.view-more');\r\n      $(btnMore).show();\r\n    } catch (er) {\r\n      console.error(er);\r\n    }\r\n  }\r\n\r\n  handleCardLink(event) {\r\n    const el = event.currentTarget;\r\n    if ($(event.target).is('h3') || $(event.target).is('a')) {\r\n      event.preventDefault();\r\n    }\r\n    const url = $(el).attr('data-url');\r\n    const target = $(el).attr('data-target');\r\n    if (url && url.length > 0) {\r\n      window.open(url, target);\r\n    }\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new ManagersCard();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/media-collection-detail-cover.js\":\n/*!**************************************************************!*\\\n  !*** ./src/scripts/widgets/media-collection-detail-cover.js ***!\n  \\**************************************************************/\n/*! exports provided: MediaCollectionDetailCover */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaCollectionDetailCover\", function() { return MediaCollectionDetailCover; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n/* harmony import */ var _common_yt_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/yt-utils */ \"./src/scripts/common/yt-utils.js\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\n\r\n\r\nclass MediaCollectionDetailCover {\r\n    constructor() {\r\n        console.log('MediaCollectionDetailCover');\r\n\r\n        $('.media-detail-cover .drawer-btn').click(this.handlePlaylistClick);\r\n        $('.media-detail-cover .playlist-image').click((event) => this.handleContentClick(event));\r\n        $('.media-detail-cover .playlist-detail-title').click((event) => this.handleContentClick(event));\r\n        $('.scroll-y').scroll((event) => this.handleGalleryPlaylistContainerScroll(event));\r\n\r\n        this.owl = Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])('.carousel-container.gallery-slider .owl-carousel', {\r\n            loop: true,\r\n            nav: true,\r\n            mouseDrag: false,\r\n            center: true,\r\n            autoWidth: false,\r\n            margin: 0,\r\n            navText: [],\r\n            /* onTranslate: this.onTranslated, */\r\n            rewind: false,\r\n            items: 1\r\n        }, true);\r\n\r\n        // yt-video\r\n        const videoSections = $('section.media-detail-cover.yt-video');\r\n        if (videoSections) {\r\n            this.ytUtils = new Map();\r\n            videoSections.each((i, section) => {\r\n                const iconContainer =\"<div class='icon-container'><button class='btn btn-share d-none d-lg-block' data-url='https://www.google.com'><i class='icon-share-small'></i></button><button type='button' class='btn btn-share d-lg-none' data-toggle='modal' data-target='#shareModal' data-url='https://www.google.com'><span class='icon-share-small'></span></button><button class='btn btn-share d-none d-lg-block' data-url='https://www.google.com'><i class='icon-share-small'></i></button><button type='button' class='btn btn-share d-lg-none' data-toggle='modal' data-target='#shareModal' data-url='https://www.google.com'><span class='icon-share-small'></span></button></div>\"\r\n                const ytEmbedded = $(section).find('.yt-embedded');\r\n                const playerId = ytEmbedded.attr('id');\r\n                const ytId = ytEmbedded.attr('data-yt-ids').split(',');\r\n                console.log('MediaCollectionDetailCover loop', playerId, ytId, section);\r\n                if ($(section).hasClass('video-new')) {\r\n                    $(ytEmbedded).parent().addClass('ytEmbedded' );\r\n                    const picture = $(ytEmbedded).prev();\r\n                    $(picture).addClass('ppporva' );\r\n                    $(picture).find('img').attr('src', 'https://img.youtube.com/vi/'+ytId+'/hqdefault.jpg' );\r\n                    $(picture).find('source').attr('srcset', 'https://img.youtube.com/vi/'+ytId+'/hqdefault.jpg');\r\n                    ytEmbedded.wrap(\"<div class='iframe-wrapper'><div></div></div>\");\r\n                }\r\n                this.ytUtils = this.ytUtils.set(playerId, _common_yt_utils__WEBPACK_IMPORTED_MODULE_1__[\"YtUtils\"].createInstance(playerId, ytId, {\r\n                    autoplay: 1,\r\n                    autohide: 1,\r\n                    modestbranding: 0,\r\n                    rel: 0,\r\n                    showinfo: 0,\r\n                    controls: 1,\r\n                    disablekb: 1,\r\n                    enablejsapi: 0,\r\n                    iv_load_policy: 3\r\n                }, true));\r\n            });\r\n        }\r\n\r\n\r\n    }\r\n\r\n    handlePlaylistClick(event) {\r\n        const btn = event.target;\r\n        const parent = $(btn).parent('.playlist-container');\r\n        parent.toggleClass('closed');\r\n    }\r\n\r\n    handleContentClick(event) {\r\n        console.log(event);\r\n        const el = event.currentTarget;\r\n        const parentContainer = $(el).parents('.media-detail-cover');\r\n        // this.reorderContent(el, $(el).parents('.scroll-y'));\r\n        this.handleActive(el, parentContainer);\r\n        this.closePlaylistContainer(el);\r\n        const soundcloudUrl = $(el).attr('data-soundcloud-url');\r\n        if (soundcloudUrl) {\r\n            this.switchSoundCloudIframe(soundcloudUrl, parentContainer);\r\n        }\r\n\r\n        const photoPos = $(el).attr('data-gallery-pos');\r\n        if (photoPos) {\r\n            this.goToPhoto(photoPos, parentContainer);\r\n        }\r\n\r\n        const ytVideoIndex = $(el).attr('data-yt-index');\r\n        if (ytVideoIndex) {\r\n            const playerId = $(el).attr('data-player-id');\r\n            this.loadYTVideo(ytVideoIndex, playerId);\r\n        }\r\n    }\r\n\r\n    // reorderContent(currentEl, scrollContainer) {\r\n    //   console.log('reorderContent', scrollContainer);\r\n    //   const contentRow = $(currentEl).parents('.playlist-content');\r\n    //   $(contentRow).prependTo(scrollContainer);\r\n    // }\r\n\r\n    handleActive(el, parentContainer) {\r\n        try {\r\n            $(parentContainer).find('.playlist-content').removeClass('active');\r\n            $(el).parents('.playlist-content').addClass('active');\r\n        } catch (err) {\r\n\r\n        }\r\n    }\r\n\r\n    closePlaylistContainer(el) {\r\n        $(el).parents('.playlist-container').toggleClass('closed');\r\n    }\r\n\r\n    switchSoundCloudIframe(url, parentContainer) {\r\n        console.log('switchSoundcloud', url);\r\n        console.log('parentContainer', parentContainer);\r\n        const SC_URL =\r\n            `https://w.soundcloud.com/player/?url=${url}&color=%23ff5500&auto_play=true&hide_related=false&show_comments=false&show_user=true&show_reposts=false&show_teaser=false`;\r\n        const iframe = $(parentContainer).find('iframe');\r\n\r\n        iframe.attr('src', SC_URL);\r\n\r\n    }\r\n\r\n    goToPhoto(photoPos, parentContainer) {\r\n        console.log('goToPhoto', photoPos, parentContainer);\r\n        console.log('owl', this.owl);\r\n        this.owl.trigger('to.owl.carousel', [photoPos, 200]);\r\n    }\r\n\r\n    loadYTVideo(ytVideoIndex, playerId) {\r\n        const ytu = this.ytUtils.get(playerId);\r\n        ytu.player.playVideoAt(ytVideoIndex);\r\n    }\r\n\r\n    handleGalleryPlaylistContainerScroll(event) {\r\n        // Close share modal at scroll of .scroll-y elements\r\n        _common_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].closeShareModal();\r\n    }\r\n\r\n\r\n}\r\n\r\n$(() => {\r\n    const component = new MediaCollectionDetailCover();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/media-highlight.js\":\n/*!************************************************!*\\\n  !*** ./src/scripts/widgets/media-highlight.js ***!\n  \\************************************************/\n/*! exports provided: MEDIA_HIGHLIGHT_PROPS, MediaHighlight, MediaHighlightPlay */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MEDIA_HIGHLIGHT_PROPS\", function() { return MEDIA_HIGHLIGHT_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaHighlight\", function() { return MediaHighlight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaHighlightPlay\", function() { return MediaHighlightPlay; });\n/* harmony import */ var _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/yt-utils */ \"./src/scripts/common/yt-utils.js\");\n\r\n\r\nconst MEDIA_HIGHLIGHT_PROPS = {\r\n    VIDEO_SECTION_CLASS: 'section.media-highlight-widget.yt1-video',\r\n    MEDIA_HIGHLIGHT_1COL: '.media-highlight-widget.media-highlight-1col',\r\n    MEDIA_HIGHLIGHT_2COL: '.media-highlight-widget .media-highlight-2col',\r\n};\r\n\r\nclass MediaHighlight {\r\n\r\n    constructor(initializeForDynamicContent) {\r\n        console.log('MediaHighlight');\r\n\r\n        // Manage children selector when dynamic section instantiate class\r\n        if (initializeForDynamicContent) {\r\n            MEDIA_HIGHLIGHT_PROPS.VIDEO_SECTION_CLASS = MEDIA_HIGHLIGHT_PROPS.VIDEO_SECTION_CLASS + '.eni-target-widget';\r\n            MEDIA_HIGHLIGHT_PROPS.MEDIA_HIGHLIGHT_1COL = '.eni-target-widget ' + MEDIA_HIGHLIGHT_PROPS.MEDIA_HIGHLIGHT_1COL;\r\n            MEDIA_HIGHLIGHT_PROPS.MEDIA_HIGHLIGHT_2COL = '.eni-target-widget ' + MEDIA_HIGHLIGHT_PROPS.MEDIA_HIGHLIGHT_2COL;\r\n        }\r\n\r\n        const videoSections = $(MEDIA_HIGHLIGHT_PROPS.VIDEO_SECTION_CLASS);\r\n        if (videoSections) {\r\n            this.ytUtils = new Map();\r\n            console.log('videoSections', videoSections);\r\n            videoSections.each((i, section) => {\r\n                const ytEmbedded = $(section).find('.yt-embedded');\r\n                if (ytEmbedded) {\r\n                    ytEmbedded.each((i, el) => {\r\n                        const playerId = $(el).attr('id');\r\n                        const ytId = $(el).attr('data-yt-id');\r\n                        this.ytUtils = this.ytUtils.set(playerId, _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__[\"YtUtils\"].createInstance(playerId, ytId, {\r\n                            autoplay: 1,\r\n                            autohide: 1,\r\n                            modestbranding: 0,\r\n                            rel: 0,\r\n                            showinfo: 0,\r\n                            controls: 0,\r\n                            disablekb: 1,\r\n                            enablejsapi: 0,\r\n                            iv_load_policy: 3\r\n                        }));\r\n                    });\r\n                }\r\n            });\r\n        }\r\n        var isMobile = $(window).outerWidth() < 1024;\r\n        if (!isMobile) {\r\n            $(MEDIA_HIGHLIGHT_PROPS.MEDIA_HIGHLIGHT_1COL).hover((event) => this.handleOver(event, true), (event) => this\r\n                .handleOver(event, false));\r\n            $(MEDIA_HIGHLIGHT_PROPS.MEDIA_HIGHLIGHT_2COL).hover((event) => this.handleOver(event, true), (event) =>\r\n                this\r\n                .handleOver(event, false));\r\n        }\r\n\r\n        $(MEDIA_HIGHLIGHT_PROPS.MEDIA_HIGHLIGHT_1COL).click(this.handleClick);\r\n        $(MEDIA_HIGHLIGHT_PROPS.MEDIA_HIGHLIGHT_2COL).click(this.handleClick);\r\n\r\n\r\n    }\r\n\r\n    handleOver(event, inOut) {\r\n        this.handleTitleHover(event.currentTarget, inOut);\r\n        this.handleVideoHover(event.currentTarget, inOut);\r\n    }\r\n\r\n    handleTitleHover(section, inOut) {\r\n        const i = $(section).find('i.dash');\r\n        if (inOut) {\r\n            i.removeClass('yellow-line');\r\n            i.addClass('yellow-pipe');\r\n        } else {\r\n            i.removeClass('yellow-pipe');\r\n            i.addClass('yellow-line');\r\n        }\r\n    }\r\n\r\n    handleVideoHover(section, inOut) {\r\n        try {\r\n            if ($(section).hasClass('yt1-video')) {\r\n                const ytId = $(section).find('iframe').attr('id');\r\n                const ytu = this.ytUtils.get(ytId);\r\n                if (inOut) {\r\n                    $(section).find('picture').hide();\r\n                    ytu.startVideo($(section));\r\n                } else {\r\n                    ytu.stopVideo();\r\n                    $(section).find('picture').show();\r\n                }\r\n            }\r\n        } catch (e) {\r\n            console.error(e);\r\n        }\r\n    }\r\n\r\n    handleClick(event) {\r\n        console.log(event);\r\n        if ($(event.target).hasClass('icon-share-small') || $(event.target).hasClass('btn-share')) {\r\n            return;\r\n        }\r\n\r\n        const url = $(event.currentTarget).attr('data-url');\r\n        const target = $(event.currentTarget).attr('data-target');\r\n        if (url && url.length > 0) {\r\n            window.open(url, target);\r\n        }\r\n    }\r\n}\r\n\r\n$(document).ready(() => {\r\n    const component = new MediaHighlight(false);\r\n});\r\n\r\n\r\nclass MediaHighlightPlay {\r\n\r\n    constructor() {\r\n        console.info('MediaHighlightPlay constructor');\r\n        \r\n        const video = $(\".media-video-highlight .video-box\");\r\n        for (let i = 0; i < video.length; i++) {   \r\n\r\n                this.init( $(video[i]) );\r\n                \r\n        }\r\n\r\n    }\r\n\r\n    init(elem) {\r\n        console.log('MediaHighlightPlay init');\r\n\r\n        const picture = $(elem).find('picture');\r\n        const iframe = $('<div data-yt-id=\"' + $(picture).attr('data-yt-id') + '\"></div>');\r\n\r\n        $(picture).click((e) => {\r\n\r\n            $(elem).append(iframe);\r\n            $(picture).hide();\r\n            this.handleVideo(iframe, false);\r\n\r\n        });\r\n\r\n    }\r\n\r\n    handleVideo(ytEmbedded, picture) {\r\n        if (ytEmbedded) {\r\n            const timestamp = new Date().getTime();\r\n            const playerId = String('yt-' + timestamp);\r\n            $(ytEmbedded).attr(\"id\", playerId);\r\n            const ytId = $(ytEmbedded).attr(\"data-yt-id\");\r\n            this.ytUtils = _common_yt_utils__WEBPACK_IMPORTED_MODULE_0__[\"YtUtils\"].createInstance(\r\n                playerId,\r\n                [ytId], {\r\n                    autoplay: 1,\r\n                    autohide: 1,\r\n                    modestbranding: 0,\r\n                    rel: 0,\r\n                    showinfo: 0,\r\n                    controls: 1,\r\n                    disablekb: 1,\r\n                    enablejsapi: 0,\r\n                    iv_load_policy: 3,\r\n                    loop: 1\r\n                },\r\n                true,\r\n                true\r\n            );\r\n            this.startVideo(this.ytUtils, videoSection, picture);\r\n        }\r\n    }\r\n\r\n    startVideo(yt, container, picture) {\r\n        if ( !picture ){\r\n            $(container).find(\"picture\").hide();\r\n        }\r\n        $(container).find(\"iframe\").show();\r\n        //yt.startVideo(container);\r\n    }\r\n}\r\n\r\n$(() => {\r\n    const component = new MediaHighlightPlay();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/number-highlight.js\":\n/*!*************************************************!*\\\n  !*** ./src/scripts/widgets/number-highlight.js ***!\n  \\*************************************************/\n/*! exports provided: NumbersHighlight */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NumbersHighlight\", function() { return NumbersHighlight; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass NumbersHighlight {\r\n  constructor(bindClass) {\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(bindClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      margin: 20,\r\n      navText: [],\r\n      /* onTranslate: this.onTranslated, */\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 2.5,\r\n          slideBy: 2\r\n        },\r\n        1440: {\r\n          items: 3.5,\r\n          slideBy: 3\r\n        }\r\n      }\r\n    }, true);\r\n\r\n    // $('.carousel-numbers .card-number').click(this.handleClick);\r\n  }\r\n\r\n  // handleClick(event) {\r\n  //   let url, target;\r\n  //   if ($(event.target).hasClass('icon-arrow-right-small')) {\r\n  //     const a = $(event.target).parent('a');\r\n  //     url = $(a).attr('href');\r\n  //     target = $(a).attr('target');\r\n  //     event.preventDefault();\r\n  //   } else if ($(event.target).is('a')) {\r\n  //     return;\r\n  //   }\r\n  //   else {\r\n  //     const el = event.currentTarget;\r\n  //     url = $(el).attr('data-link');\r\n  //     target = $(el).attr('data-target');\r\n  //   }\r\n  //   window.open(url, target);\r\n  // }\r\n}\r\n\r\n$(() => {\r\n  const component = new NumbersHighlight('.carousel-container.numbers-highlight-carousel .owl-carousel');\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/numbers-carousel.js\":\n/*!*************************************************!*\\\n  !*** ./src/scripts/widgets/numbers-carousel.js ***!\n  \\*************************************************/\n/*! exports provided: NumbersCarousel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NumbersCarousel\", function() { return NumbersCarousel; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass NumbersCarousel {\r\n  constructor(bindClass) {\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(bindClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      navText: [],\r\n      /* onTranslate: this.onTranslated, */\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 2.5,\r\n          slideBy: 2\r\n        },\r\n        1440: {\r\n          items: 3.5,\r\n          slideBy: 3\r\n        }\r\n      }\r\n    }, true);\r\n\r\n    $('.carousel-numbers .card-number').click(this.handleClick);\r\n  }\r\n\r\n  handleClick(event) {\r\n    let url, target;\r\n    if ($(event.target).hasClass('icon-arrow-right-small')) {\r\n      const a = $(event.target).parent('a');\r\n      url = $(a).attr('href');\r\n      target = $(a).attr('target');\r\n      event.preventDefault();\r\n    } else if ($(event.target).is('a')) {\r\n      return;\r\n    } else {\r\n      const el = event.currentTarget;\r\n      url = $(el).attr('data-link');\r\n      target = $(el).attr('data-target');\r\n    }\r\n    if (url && url.length > 0) {\r\n      window.open(url, target);\r\n    }\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new NumbersCarousel('.carousel-container.numbers-carousel .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/our-channel-panel.js\":\n/*!**************************************************!*\\\n  !*** ./src/scripts/widgets/our-channel-panel.js ***!\n  \\**************************************************/\n/*! exports provided: OUR_CHANNEL_PANEL_PROPS, OurChannelPanel */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OUR_CHANNEL_PANEL_PROPS\", function() { return OUR_CHANNEL_PANEL_PROPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OurChannelPanel\", function() { return OurChannelPanel; });\nconst OUR_CHANNEL_PANEL_PROPS = {\r\n  TITLE_CLASS: '.our-channel-panel .channel-label h3'\r\n};\r\nclass OurChannelPanel {\r\n  constructor() {\r\n    $(OUR_CHANNEL_PANEL_PROPS.TITLE_CLASS).hover(\r\n      (event) => {\r\n        this.handleTitleHover(event.target);\r\n      },\r\n      (event) => {\r\n        this.handleTitleHover(event.target);\r\n      }\r\n    );\r\n  }\r\n\r\n  handleTitleHover(el) {\r\n    const contentBox = $(el).parents('.channel-label');\r\n    const yellowLine = $(contentBox).find('span.dash');\r\n\r\n    yellowLine.toggleClass('yellow-line');\r\n    yellowLine.toggleClass('yellow-pipe');\r\n\r\n  }\r\n\r\n}\r\n\r\n$(() => {\r\n  const component = new OurChannelPanel();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/people-tab.js\":\n/*!*******************************************!*\\\n  !*** ./src/scripts/widgets/people-tab.js ***!\n  \\*******************************************/\n/*! exports provided: PeopleTab */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PeopleTab\", function() { return PeopleTab; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass PeopleTab {\r\n  constructor() {\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])('.people-carousel .people-tab-container', {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      margin: 20,\r\n      navText: [],\r\n      /* onTranslate: this.onTranslated, */\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 2.5,\r\n          slideBy: 2\r\n        },\r\n        1440: {\r\n          items: 3.5,\r\n          slideBy: 3\r\n        }\r\n      }\r\n    }, true);\r\n  }\r\n}\r\n\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/photo-gallery.js\":\n/*!**********************************************!*\\\n  !*** ./src/scripts/widgets/photo-gallery.js ***!\n  \\**********************************************/\n/*! exports provided: PhotoGallery */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PhotoGallery\", function() { return PhotoGallery; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nclass PhotoGallery {\r\n\r\n  constructor(photoGalleryContainerClass) {\r\n\r\n    // Swipe handling in gallery overlay\r\n    var handleSwipe = function (magnificPopup) {\r\n      $(\".mfp-gallery\").swipe({\r\n        swipeStatus: function (event, phase, direction, distance) {\r\n          if (phase == \"end\") {\r\n            if (direction == \"right\") {\r\n              magnificPopup.prev.call();\r\n            } else if (direction == \"left\") {\r\n              magnificPopup.next.call();\r\n            } else {\r\n              return false;\r\n            }\r\n          }\r\n          return true;\r\n        },\r\n        triggerOnTouchEnd: false,\r\n        threshold: 100\r\n      });\r\n    };\r\n\r\n    $('.photo-gallery-container').each(function () {\r\n\r\n      $(this).magnificPopup({\r\n        delegate: 'a', // child items selector, by clicking on it popup will open\r\n        type: 'image',\r\n        mainClass: 'photogallery-popup',\r\n        // Image Type\r\n        image: {\r\n          markup: '<div class=\"mfp-figure\">' +\r\n            '<div class=\"mfp-top-bar\">' +\r\n            '<div class=\"mfp-counter\"></div>' +\r\n            '</div>' +\r\n            '<div class=\"mfp-img\"></div>' +\r\n            '<div class=\"mfp-bottom-bar\">' +\r\n            '<div class=\"mfp-title\"></div>' +\r\n            /* '<div class=\"mfp-counter\"></div>' + */\r\n            '</div>' +\r\n            '</div>', // Popup HTML markup. `.mfp-img` div will be replaced with img tag, `.mfp-close` by close button\r\n\r\n          cursor: null, // Class that adds zoom cursor, will be added to body. Set to null to disable zoom out cursor.\r\n\r\n          /* titleSrc: 'img-background', */ // Attribute of the target element that contains caption for the slide.\r\n          // Or the function that should return the title. For example:\r\n          titleSrc: function (item) {\r\n            if ($(item.el) && $(item.el).children('.mfp-description').length > 0 &&\r\n              $(item.el).children('.mfp-description').text()) {\r\n              return $(item.el).children('.mfp-description').text();\r\n            } else {\r\n              return '';\r\n            }\r\n            /* return item.el.attr('title') + '<small>by Marsel Van Oosten</small>'; */\r\n          },\r\n\r\n          verticalFit: true, // Fits image in area vertically\r\n\r\n          tError: '<a href=\"%url%\">The image</a> could not be loaded.' // Error message\r\n        },\r\n        // Iframe Type\r\n        iframe: {\r\n          markup: '<div class=\"mfp-top-bar\">' +\r\n            '<div class=\"mfp-counter\"></div>' +\r\n            '</div>' +\r\n            '<div class=\"mfp-iframe-scaler\">' +\r\n            '<iframe class=\"mfp-iframe\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>' +\r\n            '</div>' +\r\n            '<div class=\"mfp-bottom-bar\">' +\r\n            '<div class=\"mfp-title\"></div>' +\r\n            '</div>', // HTML markup of popup, `mfp-close` will be replaced by the close button\r\n\r\n          patterns: {\r\n            youtube: {\r\n              index: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index).\r\n\r\n              id: 'v=', // String that splits URL in a two parts, second part should be %id%\r\n              // Or null - full URL will be returned\r\n              // Or a function that should return %id%, for example:\r\n              // id: function(url) { return 'parsed id'; }\r\n\r\n              src: 'https://www.youtube.com/embed/%id%?autoplay=1' // URL that will be set as a source for iframe.\r\n            }\r\n            // ,vimeo: {\r\n            //   index: 'vimeo.com/',\r\n            //   id: '/',\r\n            //   src: '//player.vimeo.com/video/%id%?autoplay=1'\r\n            // },\r\n            // gmaps: {\r\n            //   index: '//maps.google.',\r\n            //   src: '%id%&output=embed'\r\n            // }\r\n\r\n            // you may add here more sources\r\n\r\n          },\r\n\r\n          srcAction: 'iframe_src', // Templating object key. First part defines CSS selector, second attribute. \"iframe_src\" means: find \"iframe\" and set attribute \"src\".\r\n        },\r\n        gallery: {\r\n          enabled: true,\r\n          /* preload: [0, 3], */ // read about this option in next Lazy-loading section\r\n          navigateByImgClick: false,\r\n          arrowMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-arrow mfp-arrow-%dir%\"></button>', // markup of an arrow button\r\n          tPrev: 'Precedente', // title for left button\r\n          tNext: 'Successivo', // title for right button\r\n          tCounter: '<span class=\"mfp-counter\"><span class=\"mfp-current-page\">%curr%</span>/%total%</span>' // markup of counter\r\n        },\r\n        closeBtnInside: false,\r\n        closeMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\"></button>',\r\n        tClose: 'Chiudi',\r\n        callbacks: {\r\n          open: function () {\r\n            // Make body uscrollable (fix mobile scroll when magnificPopup open)\r\n            $('body').addClass('unscrollable');\r\n            handleSwipe(this);\r\n            _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stopBodyScrollingiOS(true);\r\n          },\r\n          close: function () {\r\n            $('body').removeClass('unscrollable');\r\n            _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stopBodyScrollingiOS(false);\r\n          },\r\n          elementParse: function (item) {\r\n            // Function will fire for each target element\r\n            // \"item.el\" is a target DOM element (if present)\r\n            // \"item.src\" is a source that you may modify\r\n            /* console.log(item.el); */\r\n            /* console.log(item); */ // Do whatever you want with \"item\" object\r\n          },\r\n          markupParse: function (template, values, item) {\r\n            // Triggers each time when content of popup changes\r\n\r\n            if (item.type && item.type === 'iframe') {\r\n              if (item.el.children('p.mfp-description') && item.el.children('p.mfp-description').text())\r\n                // Get iframe type description\r\n                var iframeDescription = item.el.children('p.mfp-description').text();\r\n\r\n              // Set iFrame description\r\n              values.title = iframeDescription;\r\n            }\r\n          },\r\n        }\r\n        // other options\r\n      });\r\n\r\n    });\r\n\r\n    $('.photo-gallery-item').click(this.handleClick);\r\n  }\r\n\r\n  handleClick(event) {\r\n    console.log('handleClick', event);\r\n    // Photo gallery - Prevent click when card is not center/active\r\n    if ($(event.target).parents('.photo-gallery-item')) {\r\n      let photoGalleryItem = $(event.target).parents('.photo-gallery-item');\r\n      if (photoGalleryItem.hasClass('photo-gallery-item') && !photoGalleryItem.hasClass(\r\n          'carousel-center')) {\r\n        return false;\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  const component = new PhotoGallery('.carousel-publications-container.photo-gallery-container');\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/project-highlight-complex-page.js\":\n/*!***************************************************************!*\\\n  !*** ./src/scripts/widgets/project-highlight-complex-page.js ***!\n  \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n$(document).ready(function () {\r\n  if ($(window).width() < 1023) {\r\n    $(\".flip-card-complex-page\").click(function () {\r\n      var description = $(this).find(\".description\");\r\n      var imgContainer = $(this).find(\".flip-img\");\r\n\r\n      if (!$(imgContainer).hasClass(\"remove\")) {\r\n        $(imgContainer).addClass(\"remove\");\r\n        $(description).addClass(\"show\");\r\n      } else {\r\n        $(imgContainer).removeClass(\"remove\");\r\n        $(description).removeClass(\"show\");\r\n      }\r\n    });\r\n  }\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/publication-list.js\":\n/*!*************************************************!*\\\n  !*** ./src/scripts/widgets/publication-list.js ***!\n  \\*************************************************/\n/*! exports provided: PublicationList */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PublicationList\", function() { return PublicationList; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nclass PublicationList {\r\n  constructor() {\r\n    const publicationsItemContainers = $('.publications-item-container');\r\n    if (publicationsItemContainers && publicationsItemContainers.length > 0) {\r\n      for (let i = 0; i < publicationsItemContainers.length; i++) {\r\n        const publicationsItemContainer = publicationsItemContainers[i];\r\n        const publicationsItemContainerSection = $(publicationsItemContainer).parents('section');\r\n        _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkLastVisiblePublicationItem(publicationsItemContainerSection);\r\n        _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].checkLastVisibleAccordionsElement(publicationsItemContainerSection);\r\n      }\r\n    }\r\n  }\r\n\r\n}\r\n$(document).ready(() => {\r\n  const component = new PublicationList();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/search-images.js\":\n/*!**********************************************!*\\\n  !*** ./src/scripts/widgets/search-images.js ***!\n  \\**********************************************/\n/*! exports provided: SearchImages */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SearchImages\", function() { return SearchImages; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n/* harmony import */ var _common_share__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/share */ \"./src/scripts/common/share.js\");\n\r\n\r\n\r\nclass SearchImages  {\r\n  constructor() {\r\n\r\n    $('.search-gallery .image-container').each(function () {\r\n\r\n      $(this).magnificPopup({\r\n        type: 'image',\r\n        delegate: 'div.overlay',\r\n        mainClass: 'search-gallery-popup',\r\n        // Image Type\r\n        image: {\r\n          markup: '<div class=\"row\">'+\r\n                    '<div class=\"col-lg-8 col-md-12 col-sm-12\">' +\r\n                      '<div class=\"mfp-figure\">' +\r\n                        '<div class=\"mfp-img\"></div>' +\r\n                      '</div>' +\r\n                    '</div>' +\r\n                    '<div class=\"col-lg-4 col-md-12 col-sm-12\">' +\r\n                      '<div class=\"mfp-imagetitle\">'+ $(this).attr(\"imagetitle\") +'</div>' +\r\n                      '<div class=\"mfp-imagedescription\">'+ $(this).attr(\"imagedescription\") +'</div>' +\r\n                      '<div class=\"mfp-imageicon\">' +\r\n                        '<a href=\"'+ $(this).attr(\"imagepath\") +'\" title=\"download\" download><span class=\"icon-download-small\"></span></a>' +\r\n                        //'<button class=\"btn btn-share d-none d-lg-block\" data-url=\"'+ $(this).attr(\"imagepath\") +'\"><i class=\"icon-share-small\"></i></button>' +\r\n\t                      //'<button type=\"button\" class=\"btn btn-share d-lg-none\" data-toggle=\"modal\" data-target=\"#shareModal\" data-url=\"'+ $(this).attr(\"imagepath\") +'\"><span class=\"icon-share-small\"></span></button>' +\r\n                      '</div>' +\r\n                      '<div class=\"mfp-imageauthor\">' +\r\n                        '<span class=\"icon-small-photography\"></span>'+ $(this).attr(\"imageauthor\") +''+\r\n                      '</div>' +\r\n                      '<div class=\"mfp-imagefeatures\"><span class=\"icon-small-azioni-e-feedback-espandi\"></span>'+ $(this).attr(\"imageweight\") +' - '+ $(this).attr(\"imagesize\") +'</div>' +\r\n                      '<div class=\"mfp-imagefeatures\"><span class=\"icon-small-formati-gallery\"></span><span class=\"filetype\">'+ $(this).attr(\"imageformat\") +'</span></div>' +\r\n                      //'<div class=\"mfp-imagedetails\"><a href=\"#\" title=\"\" target=\"\"><span class=\"icon-arrow-right-small\"></span></a> '+ $(this).attr(\"imagegallerylabel\") +'</div>' +\r\n                      '<div class=\"mfp-imageuseterms\">'+\r\n                        '<span class=\"icon-creative-commons-cc\"></span>'+\r\n                        '<span class=\"icon-creative-commons-by\"></span>'+\r\n                        '<span class=\"icon-creative-commons-nc-us\"></span>'+\r\n                        '<span class=\"icon-creative-commons-nd\"></span>'+\r\n                        '<a href=\"'+ $(this).attr(\"imageusetermslink\") +'\" title=\"'+ $(this).attr(\"imageusetermslabel\") +'\" target=\"_blank\">'+ $(this).attr(\"imageusetermslabel\") +'</a>'+\r\n                      '</div>'+\r\n                      '<div class=\"mfp-imagerights\">'+\r\n                      '<span class=\"copy-symbol\">&copy;</span>'+ $(this).attr(\"imagerightslabel\") +'</div>' +\r\n                    '</div>'+\r\n                  '</div>', \r\n            // Popup HTML markup. `.mfp-img` div will be replaced with img tag, `.mfp-close` by close button\r\n\r\n          cursor: null, // Class that adds zoom cursor, will be added to body. Set to null to disable zoom out cursor.\r\n\r\n          /* titleSrc: 'img-background', */ // Attribute of the target element that contains caption for the slide.\r\n          // Or the function that should return the title. For example:\r\n          \r\n          titleSrc: function (item) {\r\n            if ($(item.el) && $(item.el).parents('figure').length > 0 &&\r\n              $(item.el).parents('figure').children('.image-title') &&\r\n              $(item.el).parents('figure').children('.image-title').length > 0 &&\r\n              $(item.el).parents('figure').children('.image-title').text()) {\r\n              return $(item.el).parents('figure').children('.image-title').text();\r\n            } else {\r\n              return '';\r\n            }\r\n          },\r\n\r\n          verticalFit: true, // Fits image in area vertically\r\n\r\n          tError: '<a href=\"%url%\">The image</a> could not be loaded.' // Error message\r\n        },\r\n        closeBtnInside: false,\r\n        closeMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\"></button>',\r\n        tClose: 'Chiudi',\r\n        callbacks: {\r\n          open: function () {\r\n            // Make body unscrollable (fix mobile scroll when magnificPopup open)\r\n            $('body').addClass('unscrollable');\r\n            //Utils.stopBodyScrollingiOS(true);\r\n            //share button\r\n            //this.shareUtils = Share.createInstance(false);\r\n            if($('.mfp-imageauthor').text().length < 4) \r\n              $('.mfp-imageauthor').remove();\r\n          },\r\n          close: function () {\r\n            $('body').removeClass('unscrollable');\r\n            //Utils.stopBodyScrollingiOS(false);\r\n          }\r\n        }\r\n      });\r\n\r\n    });\r\n\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new SearchImages();\r\n});\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/single-image-video.js\":\n/*!***************************************************!*\\\n  !*** ./src/scripts/widgets/single-image-video.js ***!\n  \\***************************************************/\n/*! exports provided: SingleImageVideo */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SingleImageVideo\", function() { return SingleImageVideo; });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/utils */ \"./src/scripts/common/utils.js\");\n\r\n\r\nclass SingleImageVideo {\r\n  constructor() {\r\n    $('.single-image-video .image-container').magnificPopup({\r\n      type: 'image',\r\n      delegate: 'div.overlay',\r\n      mainClass: 'single-image-video-popup',\r\n      // Image Type\r\n      image: {\r\n        markup: '<div class=\"mfp-figure\">' +\r\n          '<div class=\"mfp-top-bar\">' +\r\n          '</div>' +\r\n          '<div class=\"mfp-img\"></div>' +\r\n          '<div class=\"mfp-bottom-bar\">' +\r\n          '<div class=\"mfp-title\"></div>' +\r\n          '</div>' +\r\n          '</div>', // Popup HTML markup. `.mfp-img` div will be replaced with img tag, `.mfp-close` by close button\r\n\r\n        cursor: null, // Class that adds zoom cursor, will be added to body. Set to null to disable zoom out cursor.\r\n\r\n        /* titleSrc: 'img-background', */ // Attribute of the target element that contains caption for the slide.\r\n        // Or the function that should return the title. For example:\r\n        titleSrc: function (item) {\r\n          if ($(item.el) && $(item.el).parents('.single-image-video-item').length > 0 &&\r\n            $(item.el).parents('.single-image-video-item').children('.description') &&\r\n            $(item.el).parents('.single-image-video-item').children('.description').length > 0 &&\r\n            $(item.el).parents('.single-image-video-item').children('.description').text()) {\r\n            return $(item.el).parents('.single-image-video-item').children('.description').text();\r\n          } else {\r\n            return '';\r\n          }\r\n          /* return item.el.attr('title') + '<small>by Marsel Van Oosten</small>'; */\r\n        },\r\n\r\n        verticalFit: true, // Fits image in area vertically\r\n\r\n        tError: '<a href=\"%url%\">The image</a> could not be loaded.' // Error message\r\n      },\r\n      closeBtnInside: false,\r\n      closeMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\"></button>',\r\n      tClose: 'Chiudi',\r\n      callbacks: {\r\n        open: function () {\r\n          // Make body uscrollable (fix mobile scroll when magnificPopup open)\r\n          $('body').addClass('unscrollable');\r\n          _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stopBodyScrollingiOS(true);\r\n        },\r\n        close: function () {\r\n          $('body').removeClass('unscrollable');\r\n          _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stopBodyScrollingiOS(false);\r\n        }\r\n      }\r\n    });\r\n\r\n    $('.single-image-video .video-container').magnificPopup({\r\n      type: 'iframe',\r\n      delegate: '.overlay-video',\r\n      mainClass: 'single-image-video-popup',\r\n      // Iframe Type\r\n      iframe: {\r\n        markup: '<div class=\"mfp-top-bar\">' +\r\n          '<div class=\"mfp-counter\"></div>' +\r\n          '</div>' +\r\n          '<div class=\"mfp-iframe-scaler\">' +\r\n          '<iframe class=\"mfp-iframe\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>' +\r\n          '</div>' +\r\n          '<div class=\"mfp-bottom-bar\">' +\r\n          '<div class=\"mfp-title\"></div>' +\r\n          '</div>', // HTML markup of popup, `mfp-close` will be replaced by the close button\r\n\r\n        patterns: {\r\n          youtube: {\r\n            index: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index).\r\n\r\n            id: 'v=', // String that splits URL in a two parts, second part should be %id%\r\n            // Or null - full URL will be returned\r\n            // Or a function that should return %id%, for example:\r\n            // id: function(url) { return 'parsed id'; }\r\n\r\n            src: 'https://www.youtube.com/embed/%id%?autoplay=1' // URL that will be set as a source for iframe.\r\n          },\r\n          vimeo: {\r\n            index: 'vimeo.com/',\r\n            id: '/',\r\n            src: '//player.vimeo.com/video/%id%?autoplay=1?enablejsapi=1'\r\n          },\r\n          gmaps: {\r\n            index: '//maps.google.',\r\n            src: '%id%&output=embed'\r\n          }\r\n\r\n          // you may add here more sources\r\n\r\n        },\r\n\r\n        srcAction: 'iframe_src', // Templating object key. First part defines CSS selector, second attribute. \"iframe_src\" means: find \"iframe\" and set attribute \"src\".\r\n      },\r\n      closeBtnInside: false,\r\n      closeMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\"></button>',\r\n      tClose: 'Chiudi',\r\n      callbacks: {\r\n        markupParse: function (template, values, item) {\r\n          // Triggers each time when content of popup changes\r\n\r\n          if (item.type && item.type === 'iframe') {\r\n            if (item.el.parents('.single-image-video-item') && item.el.parents('.single-image-video-item')\r\n              .length > 0 &&\r\n              item.el.parents('.single-image-video-item').children('.description') &&\r\n              item.el.parents('.single-image-video-item').children('.description').length > 0 &&\r\n              item.el.parents('.single-image-video-item').children('.description').text())\r\n              // Get iframe type description\r\n              var iframeDescription = item.el.parents('.single-image-video-item').children('.description')\r\n                .text();\r\n\r\n            // Set iFrame description\r\n            values.title = iframeDescription;\r\n          }\r\n        },\r\n        open: function () {\r\n          // Make body uscrollable (fix mobile scroll when magnificPopup open)\r\n          $('body').addClass('unscrollable');\r\n          _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stopBodyScrollingiOS(true);\r\n        },\r\n        close: function () {\r\n          $('body').removeClass('unscrollable');\r\n          _common_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stopBodyScrollingiOS(false);\r\n        }\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new SingleImageVideo();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/tab-new.js\":\n/*!****************************************!*\\\n  !*** ./src/scripts/widgets/tab-new.js ***!\n  \\****************************************/\n/*! exports provided: TabNewComponent */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TabNewComponent\", function() { return TabNewComponent; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass TabNewComponent {\r\n  constructor() {\r\n\r\n    this.setMaxChildWidth();\r\n\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])('.eni-tab-new-section .eni-tab-new-container .owl-carousel', {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      margin: 0,\r\n      navText: [],\r\n      // onTranslate: this.onTranslated, \r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        1440: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        1920: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        }\r\n      }\r\n    }, true);\r\n\r\n\r\n    this.handleTabClick();\r\n  }\r\n\r\n  setMaxChildWidth() {\r\n    const max_width = Math.max.apply(Math, $(\".eni-tab-new-section .fixed-width .owl-item\").map(function(){ return parseFloat($(this).width()+1); }).get());\r\n    $(\".eni-tab-new-section .fixed-width .eni-tab\").each(function(){\r\n        $(this).css({width : max_width})\r\n    });\r\n  }\r\n\r\n  handleTabClick() {\r\n    $(\".eni-tab-new-section .eni-tab\").click(event => {\r\n\r\n      const clickedBtn = $(event.target);\r\n      const allBtnsCurrentSection = clickedBtn.closest(\".eni-tab-new-section\").find(\".eni-tab\");\r\n      const currentSectionContent = clickedBtn.closest(\".eni-tab-new-section\").find(\".eni-tab-content\");\r\n\r\n      // Remove active class from all buttons in current section\r\n      allBtnsCurrentSection.removeClass(\"active\");\r\n\r\n      // Add active class to currently clicked button\r\n      clickedBtn.closest(\".eni-tab\").addClass(\"active\");\r\n\r\n      // Calcolo Viewport e posizione di inizio e fine del bottone cliccato\r\n      var startPositionBtn = jQuery(clickedBtn.closest(\".eni-tab\")).offset().left;\r\n      var finalPositionBtn = startPositionBtn + jQuery(clickedBtn.closest(\".eni-tab\")).width()+42;\r\n      var screenWidth = clickedBtn.closest(\".eni-tab-new-section\").find(\".owl-stage-outer\").width();\r\n\r\n      // Se supera la viewport spostiamo il Bottone a sinistra.\r\n      var owl = $('.owl-carousel');\r\n      owl.owlCarousel(); \r\n      console.log(\"startPositionBtn \" + startPositionBtn + \" - finalPositionBtn \" + finalPositionBtn + \" - screenWidth \" + screenWidth);\r\n      if (finalPositionBtn > screenWidth ) {\r\n        owl.trigger('next.owl.carousel');\r\n      }\r\n      if (startPositionBtn < 0 ) {\r\n        owl.trigger('prev.owl.carousel');\r\n      }\r\n\r\n      // Get Current\r\n      var contentId = clickedBtn.closest(\".eni-tab\").data(\"target\");\r\n\r\n      // Hide all content in current section\r\n      currentSectionContent.removeClass(\"active\");\r\n\r\n      // Show currently active content\r\n      this.showContentById(contentId);\r\n    });\r\n  }\r\n\r\n  showContentById(id) {\r\n    $(\".eni-tab-new-section #\" + id).addClass(\"active\");\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new TabNewComponent();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/tab.js\":\n/*!************************************!*\\\n  !*** ./src/scripts/widgets/tab.js ***!\n  \\************************************/\n/*! exports provided: TabComponent */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TabComponent\", function() { return TabComponent; });\nclass TabComponent {\r\n  constructor() {\r\n    this.handleTabClick();\r\n  }\r\n\r\n  handleTabClick() {\r\n    $(\".eni-tab-section .eni-tab\").click(event => {\r\n\r\n      const clickedBtn = $(event.target);\r\n      const allBtnsCurrentSection = clickedBtn.closest(\".eni-tab-section\").find(\".eni-tab\");\r\n      const currentSectionContent = clickedBtn.closest(\".eni-tab-section\").find(\".eni-tab-content\");\r\n\r\n      // Remove active class from all buttons in current section\r\n      allBtnsCurrentSection.removeClass(\"active\");\r\n\r\n      // Add active class to currently clicked button\r\n      clickedBtn.addClass(\"active\");\r\n\r\n      // Get Current\r\n      var contentId = clickedBtn.data(\"target\");\r\n\r\n      // Hide all content in current section\r\n      currentSectionContent.removeClass(\"active\");\r\n\r\n      // Show currently active content\r\n      this.showContentById(contentId);\r\n    });\r\n  }\r\n\r\n  showContentById(id) {\r\n    $(\".eni-tab-section #\" + id).addClass(\"active\");\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new TabComponent();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/timeline.js\":\n/*!*****************************************!*\\\n  !*** ./src/scripts/widgets/timeline.js ***!\n  \\*****************************************/\n/*! exports provided: Timeline */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Timeline\", function() { return Timeline; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass Timeline {\r\n  constructor() {\r\n    this.yearsOwl = Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])('.timeline .year-container .owl-carousel', {\r\n      items: 5,\r\n      loop: false,\r\n      nav: true,\r\n      dots: false,\r\n      mouseDrag: false,\r\n      center: true,\r\n      autoWidth: false,\r\n      margin: 20,\r\n      navText: [],\r\n      rewind: false,\r\n      onTranslate: (event) => this.removeAlmostActiveYears(event),\r\n      onTranslated: (event) => this.handleAlmostActiveYears(event),\r\n      onInitialized: (event) => this.handleAlmostActiveYears(event),\r\n      responsive: {\r\n        0: {\r\n          items: 2.5\r\n        },\r\n        650: {\r\n          items: 5\r\n        }\r\n      }\r\n    }, false);\r\n\r\n    this.cardsOwl = Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])('.timeline .cards-container .owl-carousel', {\r\n      items: 3,\r\n      loop: false,\r\n      nav: false,\r\n      dots: false,\r\n      mouseDrag: false,\r\n      center: true,\r\n      autoWidth: true,\r\n      navText: [],\r\n      rewind: false,\r\n      margin: 0,\r\n      onDragged: (event) => this.handleDragItem(event),\r\n    }, false);\r\n\r\n    $('.timeline .year-item').click((event) => this.handleClickYearItem(event));\r\n\r\n    $('.timeline .card-timeline').click((event) => this.handleClickYearItem(event));\r\n\r\n  }\r\n\r\n  removeAlmostActiveYears(event) {\r\n    $(event.target).find('.owl-item').removeClass('almost-active');\r\n  }\r\n\r\n  handleAlmostActiveYears(event) {\r\n    try {\r\n      console.log('handleAlmostActiveYears', event);\r\n      if (event) {\r\n        const itemActive = $(event.target).find('.owl-item.active.center');\r\n        console.log('itemActive', itemActive);\r\n        const prevItem = $(itemActive).prev('.active');\r\n        console.log('prevItem', prevItem);\r\n        if (prevItem) {\r\n          prevItem.addClass('almost-active');\r\n        }\r\n        const nextItem = $(itemActive).next('.active');\r\n        console.log('nextItem', nextItem);\r\n        if (nextItem) {\r\n          nextItem.addClass('almost-active');\r\n        }\r\n\r\n        this.cardsOwl.trigger('to.owl.carousel', [event.item.index]);\r\n      }\r\n    } catch (ex) {}\r\n  }\r\n\r\n  handleClickYearItem(event) {\r\n    const el = event.currentTarget;\r\n    console.log('handleClickYearItem', el);\r\n    const index = $(el).attr('data-index');\r\n    this.yearsOwl.trigger('to.owl.carousel', [index]);\r\n    // this.cardsOwl.trigger('to.owl.carousel', [index]);\r\n  }\r\n\r\n  handleDragItem(event) {\r\n    const index = event.item.index;\r\n    this.yearsOwl.trigger('to.owl.carousel', [index]);\r\n  }\r\n}\r\n\r\n$(() => {\r\n  const component = new Timeline();\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/scripts/widgets/tool-investor.js\":\n/*!**********************************************!*\\\n  !*** ./src/scripts/widgets/tool-investor.js ***!\n  \\**********************************************/\n/*! exports provided: ToolInvestor */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ToolInvestor\", function() { return ToolInvestor; });\n/* harmony import */ var _common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/owl-carousel */ \"./src/scripts/common/owl-carousel.js\");\n\r\n\r\nclass ToolInvestor {\r\n  constructor(bindClass) {\r\n    Object(_common_owl_carousel__WEBPACK_IMPORTED_MODULE_0__[\"owlCarouselUtls\"])(bindClass, {\r\n      loop: false,\r\n      nav: true,\r\n      mouseDrag: false,\r\n      center: false,\r\n      autoWidth: true,\r\n      margin: 20,\r\n      navText: [],\r\n      /* onTranslate: this.onTranslated, */\r\n      rewind: false,\r\n      responsive: {\r\n        0: {\r\n          items: 1.5,\r\n          slideBy: 1\r\n        },\r\n        // 768: {\r\n        //   items: 2.5,\r\n        //   slideBy: 2\r\n        // },\r\n        1024: {\r\n          items: 2.5,\r\n          slideBy: 2\r\n        },\r\n        1440: {\r\n          items: 3.5,\r\n          slideBy: 3\r\n        }\r\n      }\r\n    }, true);\r\n\r\n    // $('.carousel-numbers .card-number').click(this.handleClick);\r\n  }\r\n\r\n  // handleClick(event) {\r\n  //   let url, target;\r\n  //   if ($(event.target).hasClass('icon-arrow-right-small')) {\r\n  //     const a = $(event.target).parent('a');\r\n  //     url = $(a).attr('href');\r\n  //     target = $(a).attr('target');\r\n  //     event.preventDefault();\r\n  //   } else if ($(event.target).is('a')) {\r\n  //     return;\r\n  //   }\r\n  //   else {\r\n  //     const el = event.currentTarget;\r\n  //     url = $(el).attr('data-link');\r\n  //     target = $(el).attr('data-target');\r\n  //   }\r\n  //   window.open(url, target);\r\n  // }\r\n}\r\n\r\n$(() => {\r\n  const component = new ToolInvestor('.carousel-container.tool-investor-carousel .owl-carousel');\r\n});\r\n\n\n/***/ }),\n\n/***/ 0:\n/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n  !*** multi ./src/scripts/mobile-menu.js ./src/scripts/common/animate.js ./src/scripts/common/card.js ./src/scripts/common/carousel-utils.js ./src/scripts/common/cookie-banner.js ./src/scripts/common/datepicker_translations.js ./src/scripts/common/digital-data.js ./src/scripts/common/eni-tales.js ./src/scripts/common/filters-util.js ./src/scripts/common/form-utils.js ./src/scripts/common/initDynamicContent.js ./src/scripts/common/modals.js ./src/scripts/common/owl-carousel.js ./src/scripts/common/pagination-util.js ./src/scripts/common/scroll.js ./src/scripts/common/search-tab-utils.js ./src/scripts/common/share.js ./src/scripts/common/tab-utils.js ./src/scripts/common/tooltip.js ./src/scripts/common/tt-paginator.plugin.js ./src/scripts/common/tt-show-more.plugin.js ./src/scripts/common/utils.js ./src/scripts/common/yt-utils.js ./src/scripts/header/header-rich-text-carousel.js ./src/scripts/header/header-search-carousel.js ./src/scripts/header/header.component.js ./src/scripts/widgets/breadcrumbs.js ./src/scripts/widgets/calendar.js ./src/scripts/widgets/card-external-link.js ./src/scripts/widgets/carousel-editorial.js ./src/scripts/widgets/carousel-event.js ./src/scripts/widgets/carousel-generic.js ./src/scripts/widgets/carousel-global-presence.js ./src/scripts/widgets/carousel-places.js ./src/scripts/widgets/carousel-publications.js ./src/scripts/widgets/contacts-carousel.js ./src/scripts/widgets/corporate-carousel.js ./src/scripts/widgets/data-table-old.js ./src/scripts/widgets/data-table.js ./src/scripts/widgets/disclaimer-all-pages.js ./src/scripts/widgets/document-disclaimer-egl.js ./src/scripts/widgets/document-disclaimer.js ./src/scripts/widgets/editorial-collection-card.js ./src/scripts/widgets/editorial-content-list.js ./src/scripts/widgets/eni-table.js ./src/scripts/widgets/event-cover.js ./src/scripts/widgets/event-highlight-countdown.js ./src/scripts/widgets/event-highlight.js ./src/scripts/widgets/format-video-player.js ./src/scripts/widgets/full-video-image.js ./src/scripts/widgets/global-presence-card-country4.js ./src/scripts/widgets/global-presence-project-highlight.js ./src/scripts/widgets/global-presence-sustainability-goal.js ./src/scripts/widgets/grid-card3.js ./src/scripts/widgets/herobanner-homepage.js ./src/scripts/widgets/herobanner-video.js ./src/scripts/widgets/highlight_editorial_content.js ./src/scripts/widgets/identity-card.js ./src/scripts/widgets/iframe-resizer.js ./src/scripts/widgets/infographics.js ./src/scripts/widgets/interactive-map-detail.js ./src/scripts/widgets/interactive-map-light.js ./src/scripts/widgets/interactive-map.js ./src/scripts/widgets/joule-event-highlight.js ./src/scripts/widgets/manager-detail.js ./src/scripts/widgets/managers-card.js ./src/scripts/widgets/media-collection-detail-cover.js ./src/scripts/widgets/media-highlight.js ./src/scripts/widgets/number-highlight.js ./src/scripts/widgets/numbers-carousel.js ./src/scripts/widgets/our-channel-panel.js ./src/scripts/widgets/people-tab.js ./src/scripts/widgets/photo-gallery.js ./src/scripts/widgets/project-highlight-complex-page.js ./src/scripts/widgets/publication-list.js ./src/scripts/widgets/search-images.js ./src/scripts/widgets/single-image-video.js ./src/scripts/widgets/tab-new.js ./src/scripts/widgets/tab.js ./src/scripts/widgets/timeline.js ./src/scripts/widgets/tool-investor.js ***!\n  \\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\mobile-menu.js */\"./src/scripts/mobile-menu.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\animate.js */\"./src/scripts/common/animate.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\card.js */\"./src/scripts/common/card.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\carousel-utils.js */\"./src/scripts/common/carousel-utils.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\cookie-banner.js */\"./src/scripts/common/cookie-banner.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\datepicker_translations.js */\"./src/scripts/common/datepicker_translations.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\digital-data.js */\"./src/scripts/common/digital-data.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\eni-tales.js */\"./src/scripts/common/eni-tales.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\filters-util.js */\"./src/scripts/common/filters-util.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\form-utils.js */\"./src/scripts/common/form-utils.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\initDynamicContent.js */\"./src/scripts/common/initDynamicContent.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\modals.js */\"./src/scripts/common/modals.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\owl-carousel.js */\"./src/scripts/common/owl-carousel.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\pagination-util.js */\"./src/scripts/common/pagination-util.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\scroll.js */\"./src/scripts/common/scroll.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\search-tab-utils.js */\"./src/scripts/common/search-tab-utils.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\share.js */\"./src/scripts/common/share.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\tab-utils.js */\"./src/scripts/common/tab-utils.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\tooltip.js */\"./src/scripts/common/tooltip.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\tt-paginator.plugin.js */\"./src/scripts/common/tt-paginator.plugin.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\tt-show-more.plugin.js */\"./src/scripts/common/tt-show-more.plugin.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\utils.js */\"./src/scripts/common/utils.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\common\\yt-utils.js */\"./src/scripts/common/yt-utils.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\header\\header-rich-text-carousel.js */\"./src/scripts/header/header-rich-text-carousel.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\header\\header-search-carousel.js */\"./src/scripts/header/header-search-carousel.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\header\\header.component.js */\"./src/scripts/header/header.component.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\breadcrumbs.js */\"./src/scripts/widgets/breadcrumbs.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\calendar.js */\"./src/scripts/widgets/calendar.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\card-external-link.js */\"./src/scripts/widgets/card-external-link.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\carousel-editorial.js */\"./src/scripts/widgets/carousel-editorial.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\carousel-event.js */\"./src/scripts/widgets/carousel-event.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\carousel-generic.js */\"./src/scripts/widgets/carousel-generic.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\carousel-global-presence.js */\"./src/scripts/widgets/carousel-global-presence.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\carousel-places.js */\"./src/scripts/widgets/carousel-places.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\carousel-publications.js */\"./src/scripts/widgets/carousel-publications.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\contacts-carousel.js */\"./src/scripts/widgets/contacts-carousel.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\corporate-carousel.js */\"./src/scripts/widgets/corporate-carousel.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\data-table-old.js */\"./src/scripts/widgets/data-table-old.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\data-table.js */\"./src/scripts/widgets/data-table.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\disclaimer-all-pages.js */\"./src/scripts/widgets/disclaimer-all-pages.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\document-disclaimer-egl.js */\"./src/scripts/widgets/document-disclaimer-egl.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\document-disclaimer.js */\"./src/scripts/widgets/document-disclaimer.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\editorial-collection-card.js */\"./src/scripts/widgets/editorial-collection-card.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\editorial-content-list.js */\"./src/scripts/widgets/editorial-content-list.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\eni-table.js */\"./src/scripts/widgets/eni-table.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\event-cover.js */\"./src/scripts/widgets/event-cover.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\event-highlight-countdown.js */\"./src/scripts/widgets/event-highlight-countdown.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\event-highlight.js */\"./src/scripts/widgets/event-highlight.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\format-video-player.js */\"./src/scripts/widgets/format-video-player.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\full-video-image.js */\"./src/scripts/widgets/full-video-image.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\global-presence-card-country4.js */\"./src/scripts/widgets/global-presence-card-country4.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\global-presence-project-highlight.js */\"./src/scripts/widgets/global-presence-project-highlight.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\global-presence-sustainability-goal.js */\"./src/scripts/widgets/global-presence-sustainability-goal.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\grid-card3.js */\"./src/scripts/widgets/grid-card3.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\herobanner-homepage.js */\"./src/scripts/widgets/herobanner-homepage.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\herobanner-video.js */\"./src/scripts/widgets/herobanner-video.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\highlight_editorial_content.js */\"./src/scripts/widgets/highlight_editorial_content.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\identity-card.js */\"./src/scripts/widgets/identity-card.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\iframe-resizer.js */\"./src/scripts/widgets/iframe-resizer.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\infographics.js */\"./src/scripts/widgets/infographics.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\interactive-map-detail.js */\"./src/scripts/widgets/interactive-map-detail.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\interactive-map-light.js */\"./src/scripts/widgets/interactive-map-light.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\interactive-map.js */\"./src/scripts/widgets/interactive-map.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\joule-event-highlight.js */\"./src/scripts/widgets/joule-event-highlight.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\manager-detail.js */\"./src/scripts/widgets/manager-detail.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\managers-card.js */\"./src/scripts/widgets/managers-card.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\media-collection-detail-cover.js */\"./src/scripts/widgets/media-collection-detail-cover.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\media-highlight.js */\"./src/scripts/widgets/media-highlight.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\number-highlight.js */\"./src/scripts/widgets/number-highlight.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\numbers-carousel.js */\"./src/scripts/widgets/numbers-carousel.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\our-channel-panel.js */\"./src/scripts/widgets/our-channel-panel.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\people-tab.js */\"./src/scripts/widgets/people-tab.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\photo-gallery.js */\"./src/scripts/widgets/photo-gallery.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\project-highlight-complex-page.js */\"./src/scripts/widgets/project-highlight-complex-page.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\publication-list.js */\"./src/scripts/widgets/publication-list.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\search-images.js */\"./src/scripts/widgets/search-images.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\single-image-video.js */\"./src/scripts/widgets/single-image-video.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\tab-new.js */\"./src/scripts/widgets/tab-new.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\tab.js */\"./src/scripts/widgets/tab.js\");\n__webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\timeline.js */\"./src/scripts/widgets/timeline.js\");\nmodule.exports = __webpack_require__(/*! C:\\ANTONIO\\ENICOM2020\\codice-html-enicom\\enicom2019-html\\src\\scripts\\widgets\\tool-investor.js */\"./src/scripts/widgets/tool-investor.js\");\n\n\n/***/ })\n\n/******/ });"]}