{"version":3,"sources":["../../../Content/ContentCast/Inline/src/utils.js","../../../Content/ContentCast/Inline/src/comparisontable.js","../../../Content/ContentCast/Inline/src/compatibleitems.js","../../../Content/ContentCast/Inline/src/accordion.js","../../../Content/ContentCast/Inline/src/faq.js","../../../Content/ContentCast/Inline/src/common.js","../../../Content/ContentCast/Inline/src/video.js","../../../Content/ContentCast/Inline/src/lightbox.js","../../../Content/ContentCast/Inline/src/featurecarousel.js","../../../Content/ContentCast/Inline/src/mobileimages.js","../../../Content/ContentCast/Inline/src/features.js","../../../Content/ContentCast/Inline/src/footnotes.js","../../../Content/ContentCast/Inline/src/gallery/consts.js","../../../Content/ContentCast/Inline/src/swipe.js","../../../Content/ContentCast/Inline/src/gallery/base.js","../../../Content/ContentCast/Inline/src/gallery/ribbon.js","../../../Content/ContentCast/Inline/src/gallery/cloud.js","../../../Content/ContentCast/Inline/src/gallery/factory.js","../../../Content/ContentCast/Inline/src/hotspots.js","../../../Content/ContentCast/Inline/src/jumplinks.js","../../../Content/ContentCast/Inline/src/specs.js","../../../Content/ContentCast/Inline/src/spin.js","../../../Content/ContentCast/Inline/src/augmentedreality.js","../../../Content/ContentCast/Inline/src/sandisk/capacity.js","../../../Content/ContentCast/Inline/src/sandisk/range.js","../../../Content/ContentCast/Inline/src/windows11blade.js","../../../Content/ContentCast/Inline/src/main.js","../../../Content/ContentCast/Inline/src/bazaar.js","../../../Content/ContentCast/Inline/src/gallery.js"],"names":["c","ensureStyleLoaded","hiddenHrefLinks","clickableClass","urlAttr","isMobile","ccs_util","keepFocus","_ccs_util","apply","arguments","restoreHref","$container","find","addBack","each","$link","$","this","url","attr","removeAttr","addClass","ensureStyles","height","bindResizeEvent","func","window","matchMedia","addListener","on","isElementInViewport","element","spread","$element","length","windowsHeight","viewportScrollTop","scrollTop","areaTop","areaBottom","elementTop","offset","top","is","dispatchEvent","logCall","action","actionContext","eventType","clientParams","makeClientParams","ccs_cc_log","$parentSection","closest","ElementIds","elementContext","ElementContext","Action","isPlainObject","JSON","stringify","ActionContext","Et","updateOnVisible","$ep","elements","callback","timeout","toArray","Array","isArray","i","updateOnVisibleImpl","console","error","setTimeout","babelHelpers","toConsumableArray","comparisontable","options","comparisonTable","tableId","$table","concat","onVisible","$row","$titleCell","$img","setRowHeight","complete","trigger","updateRowsHeight","timer","update","clearTimeout","styles","style","setProperty","$imgCells","has","imgWidth","Math","min","map","_","el","offsetWidth","fixImageWidth","require","detectFeatures","defaultAltText","imageAttributes","idx","$cell","img","altText","index","getAltText","longDesc","getLongDesc","longDescId","append","initScript","Function","initCells","comparisonTableImage","paddingTop","parseInt","css","paddingBottom","cellHeight","appendTo","compatibleItemsSelector","compatibleItemsExpandLinkSelector","headerSelector","contentSelector","stateAttr","expanded","collapsed","ariaStateAttr","init","$header","changeState","e","undefined","originalEvent","stopPropagation","o","withAnimation","expand","initialState","targetState","accordion","expandedText","collapsedText","$content","parent","children","slideDown","slideUp","context","type","data","title","$area","state","filter","add","toggle","faqSectionSelector","sectionWithVideo","sectionHeader","sectionContent","faq","ep","$faq","initAccordion","currentTarget","delegateTarget","$playerContainer","player","ccsVideoPlayer","pause","initPlayPauseVideo","common","rootSelector","sectionSelector","mediaTypeAttr","embeddedVideoSelector","noAutoplaySelector","imageSelector","videoSelector","cartCookie","playerSelector","buyRootSelector","buyVisibleClass","cartButtonSuffix","closeButtonSuffix","settings","reinit","$wrapper","tracking","Element","getTrackingParams","initInline","pluginPath","disableCC","mute","playOnInit","initByAutoplay","playerId","file","transcodedFile","image","ccUrl","ccLang","width","volume","debug","$el","videoData","getLogFunc","errorLogCall","utils","extend","initBuyButton","product","cookieStr","cname","name","ca","decodeURIComponent","document","cookie","split","charAt","substring","indexOf","parse","stopHandler","showOverlay","$player","$cartButton","createButton","addToCartHtml","masterId","$closeButton","cvalue","exdays","d","Date","setTime","getTime","toUTCString","off","removeClass","$floatButton","clone","getSrc","pos","round","getCurrentPosition","target","html","suffix","text","buttonClass","$button","lightbox","$mediaElements","overrides","disabled","preventDefault","config","smallBtn","loop","autoFocus","isRtl","touch","baseClass","containerClass","beforeLoad","instance","current","opts","$orig","mediaType","contentType","src","afterLoad","isImage","bind","addPoweredByLogo","poweredByLogoUrl","poweredByAltText","alt","caption","$image","currIndex","firstRun","beforeShow","prevIndex","direction","subelement","scroll","afterShow","enableAutosize","video","initVideo","focus","$refs","container","btnTpl","arrowRight","fancybox","defaults","arrowLeft","initFancybox","carouselWrapperSelector","carouselSelector","activeSlideSelector","clonedSlideSelector","customControls","bgFeatureSelector","playPauseBtnSelector","fcArrows","selector","next","prev","FeatureCarousel","features","carousel","autoplaySpeed","speed","showArrows","arrows","showDots","points","isAutoplay","isAutoplayEnabled","toggleClass","$slickWrapper","$customControls","playpause","remove","ccsSlick","dots","slidesToScroll","autoplay","lazyLoad","pauseOnHover","infinite","draggable","rtl","swipe","appendDots","prevArrow","nextArrow","slick","currentSlideIndex","currentSlide","initBackGroundVideoAutoPlay","$self","reportingListener","initPlayPauseBtn","fancyboxListener","hoverListener","turnOff","event","$targerElement","relatedTarget","hasClass","submitNavigateEvent","addEventListener","iteraction","curSlide","eventParams","triggeredby","nextSlide","previousSlide","$btnPlayPause","submitClickEvent","$bgContainer","$bgVideo","play","prop","click","eventName","imageModeAttr","headerImageSelector","mobileImages","trackedImages","get","сheck","RegExp","swapBreakpoint","handler","breakpoints","mobile","match","images","mode","$a","$baseNode","hasAttribute","changeMode","actualSrc","pickAttribute","swapAttributes","altValue","splice","swapImages","$headerImage","showHeader","fallbackAttr","altAttr","altAttrValue","mobilePrintingVideo","featureDescription","Carousel","initCarousel","$featureImages","inlineZoomSettings","zoom","enabled","body","zoomSettings","disablewheel","magnifycursor","showstatus","originalsize","viewport","classmagnifier","classcursorshade","classstatusdiv","classtextdn","classtracker","onShow","setting","largeimage","isNumeric","magnifiersize","getInlineZoomSettings","one","clientWidth","naturalWidth","before","imagezoomsl","initFeaturesZoom","keyCode","initEmbeddedVideo","lazyLoadImages","startImagesLoading","disableLazyLoad","removeEventListener","isVisible","initFeaturesLazyLoad","$label","id","checkInputLabels","autoPlayVideoInViewPort","not","initAutoPlay","$bg","$video","poster","linkClass","footnoteSupLinkSelector","footnoteIdAttr","offScreenTextClass","footnotes","footnoteIdSelector","$footnote","$footnoteAnchors","item","$footNote","icId","inlineContentId","refId","href","prepend","footer","anchorOffScreenText","updateLink","$footerLink","noteId","$footnoteLinkCandidate","trim","$contentLink","createCrossLink","createContentLink","createFooterLink","createNewLink","expandAccordion","isFooterLink","prefix","startX","startY","c$a","slickDefaults","rootGallerySelector","thumbsContainer","slideSelector","viewportWrapperClass","viewportPreviewClass","cloudRoot","cloudViewport","cloudViewportArrow","cloudActiveClass","BaseGallery","$gallery","$slick","updateAttributes","beforeInit","initSlick","afterInit","gallery","resizeTimer","resizeInvoker","resize","$slides","backFocus","fbSlide","$slide","slickConfig","elementId","_ccs_util3","stringFormat","toLowerCase","slickSize","$list","slideSize","outerWidth","slidesCount","calcCount","slidesToShow","listWidth","slickSetSlidesCount","wrapSize","max","floor","count","slickSetOption","refresh","slide","RibbonGallery","loadImages","switchSlide","changeSlidesCount","goTo","isMoving","detectSwipe","version","documentElement","threshold","onTouchEnd","onTouchMove","stopImmediatePropagation","dir","x","touches","pageX","y","pageY","dx","dy","abs","call","onTouchStart","special","setup","teardown","noop","CloudGallery","insertAfter","initMobileBehavior","initDesktopBehavior","initSingleSlideBehavior","$viewportSlideWrapper","$viewportSlidePreview","$curSlide","$newSlide","submitNavigateViewportEvent","navOnHoverTimer","$arrow","changeHeight","suppressLog","isHidden","slideIsHidden","$prevActive","submitHoverEvent","$viewport","siblings","_$$ccsVideoPlayer","stopPlayer","$viewportSlide","createViewportSlide","left","$slickSlide","imgUrl","replace","media","zoomIn","showLargeImg","$viewportWrapper","$viewportImage","createImageViewportSlide","createVideoViewportSlide","copyDataAttributes","initPlayer","$source","$target","grep","attributes","at","test","value","curHeight","maxHeight","newHeight","GalleryFactory","Gallery","Ribbon","Cloud","rootClass","mobileClass","noScrollClass","pointClass","pointActiveClass","pointSize","tooltipTheme","tooltipsContainerClass","tooltipClass","videoPlayerClass","productTooltipClass","productPriceClass","productCartClass","customCartClass","loadingClass","defaultOptions","size","iconSet","hotspots","$images","fn","qtip","zindex","modal_zindex","$body","buildOptions","warn","wrap","hotspot","mediaUrl","previewUrl","initMobile","forEach","openTime","position","my","method","getPosition","isProduct","closeButtonBlockTime","insertBefore","prerender","content","$wrap","buildMediaContent","description","longDescText","crossSell","price","showLinkWithPrice","parsingJs","wrapIntoProductLink","priceFallbackText","$block","buildProductPrice","addToCart","hideAtcOnInit","showAddToCartWithPrice","isCustom","dispatchConversionEvent","buildProductAddToCart","buildProductContent","buildContent","button","show","modal","hide","fixed","delay","classes","effect","adjust","events","render","api","tooltip","getPlayer","mejs","exitFullScreen","renderMobile","transcodedUrl","autoplayVideo","renderVideo","$tooltip","apiUrl","CcsLogoProgram","requestPrice","response","result","renderProduct","point","blur","screenSize","innerWidth","screen","innerHeight","clientHeight","margin","getScreenSize","set","$w","scrollLeft","getScreenCenter","s","h","max-width","max-height","resetSize","setMobileVideoSize","closeButton","setMobileDefaultSize","showMobile","dispatchPopupEvent","visible","qty","keyup","initHotspot","initMainImage","mainImage","toFixed","$eventTargets","$span","logData","areaSelector","anchorIdAttr","holderSelector","itemClass","separatorClass","textAttr","hiddenAttr","specsArea","showButton","hideButton","expandableSpecs","specRow","animate","spinSelector","preloadLayer","preloadContainer","toolbox","playPauseBtn","defaultSliderHeight","slider","spritespinImageSelector","spritespin","source","$toolbox","toolboxId","$rootDiv","$playPauseBtn","defaultWidth","defaultHeight","$preloadContainer","completeCallback","Image","onload","calculatedWidth","calculatedHeight","isFunction","calculateImageDimensions","containerWidth","imageWidth","imageHeight","calculateContainerHeight","onWindowResize","spriteSpinApi","which","changePlayPauseState","logChangeState","runInitialization","isPlaying","cssSelector","stopAnimation","startAnimation","resizeToolbox","initControl","firstTime","$slider","fps","rate","$spritespinDiv","$spritespinContainer","$preloadDiv","animated","rateFramesCount","rateCounter","frameTime","frames","framesX","renderer","reverse","onLoad","ui","updateFrame","stop","logRotate","$longDesc","setLongDescription","onFrame","frame","onDraw","setImageData","playTrigger","mousedown","buttons","$rootContainer","widthToSet","heightToSet","logEvent","arSectionSelector","arFancyBoxContent","qrLightboxDisplayMode","qrNoneDisplayMode","animationList","augmentedreality","customElements","$thumbnailCnt","$viewerCnt","$qrCode","$qrCodeButtonBlock","$arBlock","augmentedReality","autoLoad","loadModelViewer","launchInLightbox","qrCodeScript","isQrCodeVisible","dataElementId","fbContent","setViewerHandler","ajustLightBoxSize","open","autoLaunchAr","activateAR","shadowRoot","querySelector","qrDisplayMode","showQrCode","navigator","maxTouchPoints","$viewer","message","detail","getErrorMessage","status","$error","viewer","animation","playEvent","animationNameList","setAnimationName","setChangeAnimationEvent","launchAutoplayAnimation","loadAnimation","changeEvent","setInterval","availableAnimations","currentAnimationNameIndex","newAnimationName","repeat","currentTime","arSize","ar","aspectRatio","getSize","calculateViewerSize","qrWidth","currentColumnCount","containerSelector","widthBoundaryMedium","widthBoundaryWide","$chart","swipeToSlide","refreshSlick","$chartContent","initImpl","targetColumnCount","getTargetColumnCount","columnCount","Number","POSITIVE_INFINITY","slideCount","tabSelector","sectionActiveClass","contentsSelector","returnScrollToTitle","windows11Blade","$disclaimerSection","$tabContainer","$mobileNav","animatingTimeout","$clickedTab","$tablist","$tabs","$panels","getElementById","first","updateNavIndicatorPosition","$navContainer","$hotspot","$modal","toggleBlur","activeElement","$videoContainer","setCurrentTime","hideControls","intializeVideo","textContent","stopVideo","$selectedTab","transform","sectionBlur","querySelectorAll","classList","iframe","preload","toolbar","inner","bazaar","$compatibleItems","compatibleitems","factory","create","jumplinks","jumplinksHtml","$jumplinkArea","anchorId","$currentJumplinkItem","$specsArea","$specsShowButton","$specsHideButton","$expandableSpecs","pop","shift","specs","spin","capacityChart","rangeChart","initVideoByButton","initDocumentsReporting","_ccs_util2","initViewportEvent","$acc","initSectionViewportReporting","fixInvoker"],"mappings":"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","file":"inline.min.js","sourcesContent":["import $ from \"jquery\";\r\n\r\nconst c = {\r\n\tensureStyleLoaded: \".ccs-cc-inline-ensure-style-loaded\",\r\n\thiddenHrefLinks: \"a[data-url]\",\r\n\tclickableClass: \"ccs-cc-inline-clickable\",\r\n\turlAttr: \"data-url\"\r\n};\r\n\r\nexport function isMobile() {\r\n\treturn ccs_util.isMobile();\r\n}\r\n\r\nexport function keepFocus() {\r\n\treturn ccs_util.keepFocus(...arguments);\r\n}\r\n\r\nexport function initViewportEvent() {\r\n\treturn ccs_util.initViewportEvent(...arguments);\r\n}\r\n\r\nexport function stringFormat() {\r\n\treturn ccs_util.stringFormat(...arguments);\r\n}\r\n\r\nexport function restoreHref($container) {\r\n\r\n\t$container\r\n\t\t.find(c.hiddenHrefLinks)\r\n\t\t.addBack(c.hiddenHrefLinks)\r\n\t\t.each(function () {\r\n\t\t\tconst $link = $(this);\r\n\t\t\tconst url = $link.attr(c.urlAttr);\r\n\r\n\t\t\t$link\r\n\t\t\t\t.attr(\"href\", url)\r\n\t\t\t\t.removeAttr(c.urlAttr)\r\n\t\t\t\t.addClass(c.clickableClass);\r\n\t\t});\r\n}\r\n\r\nexport function ensureStyles($container) {\r\n\treturn $container.find(c.ensureStyleLoaded).height() > 0;\r\n}\r\n\r\nexport function bindResizeEvent(func) {\r\n\r\n\tif (isMobile()) {\r\n\t\twindow\r\n\t\t\t.matchMedia(\"(orientation: portrait)\")\r\n\t\t\t.addListener(func);\r\n\t} else {\r\n\t\t$(window).on(\"resize\", func);\r\n\t}\r\n}\r\n\r\nexport function isElementInViewport(element, spread) {\r\n\r\n\tspread = spread || 0;\r\n\r\n\tconst $element = $(element);\r\n\tif ($element.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst windowsHeight = $(window).height();\r\n\tconst viewportScrollTop = $(window).scrollTop();\r\n\r\n\tconst areaTop = viewportScrollTop < spread ? 0 : viewportScrollTop - spread;\r\n\tconst areaBottom = viewportScrollTop + windowsHeight + spread;\r\n\r\n\tconst elementTop = $element.offset().top;\r\n\tconst elementBottom = elementTop + $element.height();\r\n\r\n\treturn elementBottom <= areaBottom\r\n\t\t&& elementTop >= areaTop\r\n\t\t&& $element.is(\":visible\");\r\n}\r\n\r\nexport function dispatchEvent(logCall, element, action, actionContext, eventType) {\r\n\tconst clientParams = makeClientParams(element, action, actionContext, eventType);\r\n\tccs_cc_log.dispatchEvent(logCall, clientParams);\r\n}\r\n\r\nexport function makeClientParams(element, action, actionContext, eventType) {\r\n\tconst clientParams = {};\r\n\tconst $parentSection = $(element).closest(\"[data-elementid]\");\r\n\r\n\tclientParams.ElementIds = $parentSection.attr(\"data-elementid\");\r\n\r\n\tconst elementContext = $parentSection.attr(\"data-context\");\r\n\tif (elementContext) {\r\n\t\tclientParams.ElementContext = elementContext;\r\n\t}\r\n\r\n\tif (action) {\r\n\t\tclientParams.Action = action;\r\n\t}\r\n\r\n\tif (actionContext) {\r\n\t\tif ($.isPlainObject(actionContext)) {\r\n\t\t\tactionContext = JSON.stringify(actionContext);\r\n\t\t}\r\n\r\n\t\tclientParams.ActionContext = actionContext;\r\n\t}\r\n\r\n\tif (eventType) {\r\n\t\tclientParams.Et = eventType;\r\n\t}\r\n\r\n\treturn clientParams;\r\n}\r\n\r\n// https://www.w3schools.com/js/js_cookies.asp\r\nexport function setCookie(cname, cvalue, exdays) {\r\n\tvar cookie = cname + \"=\" + cvalue + \";path=/\";\r\n\tif (exdays) {\r\n\t\tconst d = new Date();\r\n\t\td.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n\r\n\t\tcookie += \";expires=\" + d.toUTCString();\r\n\t}\r\n\tdocument.cookie = cookie;\r\n}\r\n\r\nexport function getCookie(cname) {\r\n\tconst name = cname + \"=\";\r\n\tconst decodedCookie = decodeURIComponent(document.cookie);\r\n\tconst ca = decodedCookie.split(\";\");\r\n\tfor (let i = 0; i < ca.length; i++) {\r\n\t\tlet c = ca[i];\r\n\t\twhile (c.charAt(0) === \" \") {\r\n\t\t\tc = c.substring(1);\r\n\t\t}\r\n\t\tif (c.indexOf(name) === 0) {\r\n\t\t\treturn c.substring(name.length, c.length);\r\n\t\t}\r\n\t}\r\n\treturn \"\";\r\n}\r\n// end cookie\r\n\r\nexport function fixBlockWidth($ep) {\r\n\tvar $block = $ep,\r\n\t\ttimer;\r\n\r\n\tif ($block.closest(\"td\").length) {\r\n\t\tconst fixInvoker = function () {\r\n\t\t\tif ($block.is(\":visible\")) {\r\n\t\t\t\t$block.css(\"position\", \"absolute\");\r\n\r\n\t\t\t\tconst width = $block.parent().width();\r\n\t\t\t\tif (width !== 0) {\r\n\t\t\t\t\t$block.width(width);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$block.css(\"position\", \"\");\r\n\t\t\t} else {\r\n\t\t\t\tclearTimeout(timer);\r\n\t\t\t\ttimer = setTimeout(fixInvoker, 300);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tbindResizeEvent(fixInvoker);\r\n\t\tfixInvoker.call();\r\n\t}\r\n}\r\n\r\nexport function updateOnVisible($ep, elements, callback, timeout) {\r\n\r\n\tif (!$ep || typeof callback !== \"function\") {\r\n\t\tconsole.error(\"updateOnVisible: '$ep' or 'callback' parameters are not defined\");\r\n\t\treturn;\r\n\t}\r\n\r\n\telements = elements || $ep;\r\n\ttimeout = timeout || 300;\r\n\r\n\tif (typeof elements === \"string\") {\r\n\t\telements = $ep.find(elements);\r\n\t}\r\n\r\n\tif (elements instanceof $) {\r\n\t\telements = elements.toArray();\r\n\t}\r\n\r\n\tif (!Array.isArray(elements)) {\r\n\t\telements = [elements];\r\n\t}\r\n\r\n\tfor (let i = 0; i < elements.length; i++) {\r\n\t\tupdateOnVisibleImpl($ep, elements[i], callback, timeout);\r\n\t}\r\n}\r\n\r\nfunction updateOnVisibleImpl($ep, element, callback, timeout) {\r\n\tconst $el = $(element);\r\n\r\n\tif ($el.is(\":visible\") && ensureStyles($ep)) {\r\n\t\tcallback(element);\r\n\r\n\t} else {\r\n\t\tsetTimeout(() => updateOnVisibleImpl(...arguments), timeout);\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport require from \"require\";\r\nimport { bindResizeEvent } from \"./utils\";\r\n\r\nexport default function (options) {\r\n\tif (!options.comparisonTable) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst tableId = options.comparisonTable.tableId;\r\n\tconst $table = $(`#${tableId}`);\r\n\r\n\t(function onVisible() {\r\n\t\tif ($table.is(\":visible\")) {\r\n\t\t\tupdateRowsHeight($table);\r\n\t\t\tfixImageWidth($table);\r\n\t\t} else {\r\n\t\t\tsetTimeout(onVisible, 100);\r\n\t\t}\r\n\t}());\r\n\r\n\trequire(\"logoProgram\").detectFeatures(tableId);\r\n\r\n\tinitCells($table, options.comparisonTable.comparisonTableImage, options.comparisonTable.imageAttributes);\r\n}\r\n\r\nfunction updateRowsHeight($table) {\r\n\t$table.find(\"tr\").each(function () {\r\n\t\tconst $row = $(this);\r\n\t\tconst $titleCell = $row.find(\"td:first\");\r\n\r\n\t\tconst $img = $titleCell.find(\"img\");\r\n\r\n\t\tif ($img.length > 0) {\r\n\t\t\t$img.on(\"load\", function () {\r\n\t\t\t\tsetRowHeight($titleCell, $row);\r\n\t\t\t}).each(function () {\r\n\t\t\t\tthis.complete && $(this).trigger(\"load\");\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tsetRowHeight($titleCell, $row);\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction setRowHeight($titleCell, $row) {\r\n\tconst paddingTop = parseInt($titleCell.css(\"paddingTop\"));\r\n\tconst paddingBottom = parseInt($titleCell.css(\"paddingBottom\"));\r\n\tconst cellHeight = $titleCell.height();\r\n\r\n\tconst titleCellHeight = cellHeight + paddingTop + paddingBottom;\r\n\r\n\t$(``).appendTo($row);\r\n}\r\n\r\nfunction initCells($table, defaultAltText, imageAttributes) {\r\n\tvar idx = 0;\r\n\t$table\r\n\t\t.find(\".ccs-cc-comparison-table-cell-content\")\r\n\t\t.each(function () {\r\n\t\t\tconst $cell = $(this);\r\n\r\n\t\t\tif ($cell && $cell.has(\"img\").length) {\r\n\t\t\t\tvar img = $cell.find(\"img\");\r\n\r\n\t\t\t\tvar altText = getAltText(idx, imageAttributes)\r\n\t\t\t\t\t|| `${defaultAltText} ${idx + 1}`;\r\n\t\t\t\t$(img).attr(\"alt\", altText);\r\n\r\n\t\t\t\tvar longDesc = getLongDesc(idx, imageAttributes);\r\n\t\t\t\tif (longDesc) {\r\n\t\t\t\t\t$(img).attr(\"longdesc\", `#${imageAttributes[idx].longDescId}`);\r\n\t\t\t\t\t$cell.append($(`
${longDesc}
`));\r\n\t\t\t\t}\r\n\t\t\t\tidx++;\r\n\t\t\t}\r\n\r\n\t\t\tconst initScript = $cell.attr(\"data-cell-init-script\");\r\n\t\t\tif (initScript && initScript.length) {\r\n\t\t\t\tnew Function(initScript)();\r\n\t\t\t}\r\n\t\t});\r\n}\r\n\r\nfunction getLongDesc(index, imageAttributes) {\r\n\tif (!imageAttributes || !imageAttributes[index]) return null;\r\n\r\n\treturn imageAttributes[index].longDesc;\r\n}\r\n\r\nfunction getAltText(index, imageAttributes) {\r\n\tif (!imageAttributes || !imageAttributes[index]) return null;\r\n\r\n\treturn imageAttributes[index].altText;\r\n}\r\n\r\n// CCSDT-7756\r\nfunction fixImageWidth($table) {\r\n\tlet timer;\r\n\r\n\tfunction update() {\r\n\t\tif (!$table.is(\":visible\")) {\r\n\t\t\tclearTimeout(timer);\r\n\t\t\ttimer = setTimeout(() => update(), 300);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst styles = $table[0].style;\r\n\r\n\t\tstyles.setProperty(\"--table-img-width\", \"100%\");\r\n\r\n\t\tconst $imgCells = $table.find(\".ccs-cc-comparison-table-header-row td:not(:first) div\").has(\"img\");\r\n\t\tconst imgWidth = Math.min(...$imgCells.map((_, el) => el.offsetWidth).toArray());\r\n\r\n\t\tstyles.setProperty(\"--table-img-width\", imgWidth + \"px\");\r\n\t}\r\n\r\n\tsetTimeout(() => update());\r\n\tbindResizeEvent(() => update());\r\n}\r\n","import \"jquery\";\r\n\r\nconst c = {\r\n\tcompatibleItemsSelector: \".ccs-cc-inline-section.ccs-cc-inline-compatibleitems\",\r\n\tcompatibleItemsExpandLinkSelector: \".ccs-cc-inline-compatibleitems-expand-link\"\r\n};\r\n\r\nexport default function (ep) {\r\n\tconst $compatibleItems = ep.find(c.compatibleItemsSelector);\r\n\r\n\tconst $compatibleItemsExpandLink = $compatibleItems.find(c.compatibleItemsExpandLinkSelector);\r\n\r\n\t$compatibleItemsExpandLink.on(\"click\", () => {\r\n\t\tif (!$compatibleItems.hasClass(\"ccs-cc-inline-compatibleitems-expanded\")) {\r\n\t\t\t$compatibleItems.addClass(\"ccs-cc-inline-compatibleitems-expanded\");\r\n\t\t}\r\n\t});\r\n}\r\n","import $ from \"jquery\";\r\nimport { dispatchEvent } from \"./utils\";\r\n\r\nconst c = {\r\n\theaderSelector: \".ccs-cc-inline-acc-header\",\r\n\tcontentSelector: \".ccs-cc-inline-acc-content\",\r\n\tstateAttr: \"data-ccs-cc-inline-acc-state\",\r\n\texpanded: \"expanded\",\r\n\tcollapsed: \"collapsed\",\r\n\tariaStateAttr: \"aria-expanded\"\r\n};\r\n\r\nexport function init($container, options) {\r\n\t$container.find(c.headerSelector).each(function () {\r\n\t\tconst $header = $(this);\r\n\r\n\t\tchangeState($header, options, false, $header.attr(c.stateAttr) === c.expanded);\r\n\t});\r\n\r\n\t$container.on(\"click\",\r\n\t\tc.headerSelector,\r\n\t\tfunction (e) {\r\n\t\t\tchangeState($(this), options, e.originalEvent !== undefined);\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\t);\r\n}\r\n\r\nfunction changeState($header, o, withAnimation, expand) {\r\n\r\n\tlet initialState;\r\n\r\n\tif (expand === undefined) { // not initialization\r\n\t\tinitialState = $header.attr(c.stateAttr);\r\n\t\texpand = initialState !== c.expanded;\r\n\t}\r\n\r\n\t$header.attr(c.ariaStateAttr, expand);\r\n\tconst targetState = expand ? c.expanded : c.collapsed;\r\n\r\n\tif (initialState === targetState) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t$header\r\n\t\t.attr(c.stateAttr, targetState)\r\n\t\t.attr(\"aria-label\", `${$header.attr(\"title\")} ${expand ? o.accordion.expandedText : o.accordion.collapsedText}`);\r\n\r\n\tconst $content = $header.parent().parent().children(c.contentSelector);\r\n\r\n\tif (expand) {\r\n\t\twithAnimation ? $content.slideDown() : $content.css(\"display\", \"block\");\r\n\t\t$content.trigger(\"accordionOpen\");\r\n\t}\r\n\telse {\r\n\t\twithAnimation ? $content.slideUp() : $content.css(\"display\", \"none\");\r\n\t\t$content.trigger(\"accordionClose\");\r\n\t}\r\n\r\n\tif (initialState === undefined) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst context = {\r\n\t\ttype: `section-${targetState === c.expanded ? \"open\" : \"close\"}`\r\n\t};\r\n\r\n\tconst index = $header.data(\"index\");\r\n\tif (index) {\r\n\t\tcontext.index = index;\r\n\t\tcontext.title = $header.attr(\"title\");\r\n\t}\r\n\r\n\tdispatchEvent(o.logCall, $header, \"feature-click\", context);\r\n}\r\n\r\nexport function expand($area) {\r\n\ttoggle($area, c.expanded);\r\n}\r\n\r\nexport function collapse($area) {\r\n\ttoggle($area, c.collapsed);\r\n}\r\n\r\nfunction toggle($area, state) {\r\n\tconst $header = $area.filter(c.headerSelector).add($area.find(c.headerSelector));\r\n\r\n\tif ($header.length > 0 && $header.attr(c.stateAttr) !== state) {\r\n\t\t$header.trigger(\"click\");\r\n\t}\r\n}","import $ from \"jquery\";\r\nimport { init as initAccordion } from \"./accordion\";\r\n\r\nconst c = {\r\n\tfaqSectionSelector: \".ccs-cc-inline-faq .ccs-cc-inline-features\",\r\n\tstateAttr: \"data-ccs-cc-inline-acc-state\",\r\n\texpanded: \"expanded\",\r\n\tcollapsed: \"collapsed\",\r\n\tsectionWithVideo: \".ccs-cc-inline-faq-item:has(.ccs-cc-inline-embedded-video)\",\r\n\tsectionHeader: \".ccs-cc-inline-acc-header\",\r\n\tsectionContent: \".ccs-cc-inline-acc-content\"\r\n};\r\n\r\nexport default function (ep, options) {\r\n\tconst $faq = ep.find(c.faqSectionSelector);\r\n\tinitAccordion($faq, options);\r\n\tinitPlayPauseVideo($faq);\r\n}\r\n\r\nfunction initPlayPauseVideo($faq) {\r\n\tconst $videoSections = $faq.find(c.sectionWithVideo);\r\n\r\n\t$videoSections.on(\"click\", c.sectionHeader, function (e) {\r\n\t\tif ($(e.currentTarget).attr(c.stateAttr) === c.collapsed) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst $content = $(e.delegateTarget).find(c.sectionContent);\r\n\t\tconst $playerContainer = $content.find(\"div[data-player]\");\r\n\t\tconst player = $playerContainer.ccsVideoPlayer(\"getPlayer\");\r\n\t\tif (player == null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tplayer.pause();\r\n\t});\r\n}\r\n","export default {\r\n\trootSelector: \".ccs-cc-inline\",\r\n\tsectionSelector: \".ccs-cc-inline-section\",\r\n\tmediaTypeAttr: \"data-media-type\",\r\n\r\n\t// features, video\r\n\tembeddedVideoSelector: \".ccs-cc-inline-embedded-video\",\r\n\tnoAutoplaySelector: \".ccs-cc-inline-noautoplay\",\r\n\r\n\t// images\r\n\timageSelector: \".ccs-cc-inline-thumbnail a.ccs-cc-inline-thumbnail-image\",\r\n\r\n\t// videos\r\n\tvideoSelector: \".ccs-cc-inline-thumbnail a.ccs-cc-inline-thumbnail-video\"\r\n};\r\n","import $ from \"jquery\";\r\nimport common from \"./common\";\r\nimport * as utils from \"./utils\";\r\n\r\nimport \"videoPlayer\";\r\n\r\nconst c = {\r\n\tcartCookie: \"ccs_video_cart\",\r\n\tplayerSelector: \".mejs__container\",\r\n\tbuyRootSelector: \".ccs-video-buy\",\r\n\tbuyVisibleClass: \"ccs-video-buy-visible\",\r\n\tcartButtonSuffix: \"cart\",\r\n\tcloseButtonSuffix: \"close\"\r\n};\r\n\r\n$.extend(c, common);\r\n\r\nexport function init(element, logCall, settings, reinit) {\r\n\tconst $wrapper = $(element);\r\n\r\n\tconst player = $wrapper.ccsVideoPlayer(\"getPlayer\");\r\n\tif (player && !reinit) {\r\n\t\treturn player;\r\n\t}\r\n\r\n\tif (settings.tracking instanceof Element || settings.tracking instanceof $) {\r\n\t\tsettings.tracking = getTrackingParams(settings.tracking, logCall);\r\n\t}\r\n\r\n\tif (!settings.tracking) {\r\n\t\tsettings.tracking = getTrackingParams($wrapper, logCall);\r\n\t}\r\n\r\n\treturn $wrapper.ccsVideoPlayer(settings);\r\n}\r\n\r\nexport function initInline(element, logCall, pluginPath, disableCC, mute, playOnInit, initByAutoplay) {\r\n\tconst $wrapper = $(element);\r\n\r\n\tconst playerId = $wrapper.data(\"player\");\r\n\r\n\tconst settings = {\r\n\t\tplayerId: playerId,\r\n\t\tfile: $wrapper.data(\"video-url\"),\r\n\t\ttranscodedFile: $wrapper.data(\"transcoded-video-url\"),\r\n\t\timage: $wrapper.data(\"image-url\"),\r\n\t\tccUrl: $wrapper.data(\"cc-url\"),\r\n\t\tccLang: $wrapper.data(\"cc-lang\"),\r\n\t\theight: $wrapper.data(\"media-height\") || \"100%\",\r\n\t\twidth: $wrapper.data(\"media-width\") || \"100%\",\r\n\t\tplayOnInit: playOnInit,\r\n\t\tinitByAutoplay: !!initByAutoplay,\r\n\t\tmute: mute,\r\n\t\tvolume: 80,\r\n\t\tdebug: true,\r\n\t\tpluginPath: pluginPath,\r\n\t\tdisableCC: disableCC\r\n\t};\r\n\r\n\treturn init($wrapper, logCall, settings);\r\n}\r\n\r\nexport function stop() {\r\n\t$.ccsVideoPlayer.stopPlayer(...arguments);\r\n}\r\n\r\nexport function autoPlayInViewport(ep, logCall, pluginPath, disableCC) {\r\n\tconst $ep = ep;\r\n\r\n\tif (!utils.isMobile()) {\r\n\t\tsetTimeout(function () {\r\n\t\t\t$ep.find(c.embeddedVideoSelector)\r\n\t\t\t\t.not(c.noAutoplaySelector + \" \" + c.embeddedVideoSelector)\r\n\t\t\t\t.each(function () {\r\n\r\n\t\t\t\t\tconst $el = $(this);\r\n\r\n\t\t\t\t\tconst settings = {\r\n\t\t\t\t\t\tinitByAutoplay: true,\r\n\t\t\t\t\t\tmute: true,\r\n\t\t\t\t\t\tpluginPath: pluginPath,\r\n\t\t\t\t\t\tdisableCC: disableCC,\r\n\t\t\t\t\t\ttracking: getTrackingParams($el, logCall)\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t$.ccsVideoPlayer.initAutoPlay($el, settings);\r\n\t\t\t\t});\r\n\t\t}, 1500);\r\n\t}\r\n}\r\n\r\nfunction getTrackingParams($el, logCall) {\r\n\treturn {\r\n\t\tlogCall: videoData => getLogFunc($el, logCall, videoData),\r\n\t\terrorLogCall: videoData => getLogFunc($el, logCall, videoData, \"error\", \"Submit\")\r\n\t};\r\n}\r\n\r\nfunction getLogFunc($el, logCall, videoData, action, eventType) {\r\n\tconst clientParams = utils.makeClientParams($el, action, eventType);\r\n\r\n\t$.extend(clientParams, videoData);\r\n\r\n\tccs_cc_log.dispatchEvent(logCall, clientParams);\r\n}\r\n\r\nexport function initBuyButton(options) {\r\n\r\n\tconst o = options.product;\r\n\tif (!o) return;\r\n\r\n\tconst cookieStr = utils.getCookie(c.cartCookie);\r\n\tconst cookie = cookieStr ? JSON.parse(cookieStr) : {};\r\n\r\n\tconst showOverlay = function (e) {\r\n\t\t$(`#${e.player.playerId}`)\r\n\t\t\t.closest(c.playerSelector)\r\n\t\t\t.find(c.buyRootSelector)\r\n\t\t\t.addClass(c.buyVisibleClass);\r\n\t};\r\n\r\n\tconst stopHandler = function (e) {\r\n\t\tif (e.originalEvent.type === \"ended\") {\r\n\t\t\tshowOverlay(e);\r\n\t\t}\r\n\t};\r\n\r\n\t$(document).on(\"ccsPlayer\",\r\n\t\tfunction (e) {\r\n\t\t\tif (e.originalEvent.type !== \"canplay\") {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst $player = $(`#${e.player.playerId}`).closest(c.playerSelector);\r\n\t\t\tif ($player.find(c.buyRootSelector).length) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst $wrapper = $(\"
\").appendTo($player);\r\n\r\n\t\t\tconst addToCart = $(o.addToCartHtml).children(\":first\");\r\n\t\t\tconst $cartButton = createButton(addToCart, c.cartButtonSuffix);\r\n\r\n\t\t\tif (!cookie[o.masterId]) {\r\n\r\n\t\t\t\tconst $closeButton = createButton(\"\", c.closeButtonSuffix);\r\n\r\n\t\t\t\t$(\"
\")\r\n\t\t\t\t\t.append(\r\n\t\t\t\t\t\t$(\"
\").append($cartButton).append($closeButton))\r\n\t\t\t\t\t.appendTo($wrapper);\r\n\r\n\t\t\t\t$closeButton.add($cartButton)\r\n\t\t\t\t\t.on(\"click\", function () {\r\n\t\t\t\t\t\tcookie[o.masterId] = 1;\r\n\t\t\t\t\t\tutils.setCookie(c.cartCookie, JSON.stringify(cookie));\r\n\r\n\t\t\t\t\t\t$(document).off(\"ccsPlayer\", null, stopHandler);\r\n\r\n\t\t\t\t\t\t$wrapper.removeClass(c.buyVisibleClass);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t$(document).on(\"ccsPlayer\", stopHandler);\r\n\t\t\t}\r\n\r\n\t\t\tconst $floatButton = $cartButton.clone().addClass(\"ccs-video-buy-float\").appendTo($wrapper);\r\n\r\n\t\t\t$cartButton.add($floatButton).on(\"click\",\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\tconst context = JSON.stringify({\r\n\t\t\t\t\t\ttype: \"video-addtocart\",\r\n\t\t\t\t\t\turl: e.player.getSrc(),\r\n\t\t\t\t\t\tpos: Math.round(e.player.getCurrentPosition())\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tutils.dispatchEvent(options.logCall, e.target, \"conversion\", context);\r\n\t\t\t\t});\r\n\t\t});\r\n}\r\n\r\nfunction createButton(html, suffix, text) {\r\n\tconst buttonClass = \"ccs-video-buy-button\";\r\n\r\n\tconst $button = $(html);\r\n\r\n\tif (text) {\r\n\t\t$button.text(text).attr(\"title\", text);\r\n\t}\r\n\r\n\treturn $button.addClass(buttonClass + \" \" + buttonClass + \"-\" + suffix);\r\n}\r\n","import \"Fancybox\";\r\nimport $ from \"jquery\";\r\nimport c from \"./common\";\r\nimport { dispatchEvent, keepFocus } from \"./utils\";\r\nimport { init as initVideo } from \"./video\";\r\n\r\nconst playerId = \"ccs-cc-videoplayer\";\r\n\r\nexport default function ($mediaElements, o, overrides) {\r\n\tif (o.lightbox.disabled) {\r\n\t\t$mediaElements.on(\"click\", e => {\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tinitFancybox($mediaElements, o, overrides);\r\n}\r\n\r\nfunction initFancybox($mediaElements, o, overrides) {\r\n\tconst config = {\r\n\t\tsmallBtn: false,\r\n\t\tloop: true,\r\n\t\tautoFocus: true,\r\n\t\tisRtl: o.isRtl,\r\n\t\ttouch: !o.isRtl,\r\n\t\tbaseClass: `ccs-fancybox-inline-content ${o.containerClass}`,\r\n\t\tbeforeLoad(instance, current) {\r\n\t\t\tconst $link = current.opts.$orig;\r\n\t\t\tconst mediaType = $link.attr(c.mediaTypeAttr);\r\n\r\n\t\t\tcurrent.type = mediaType; // for images without extension\r\n\r\n\t\t\tif (mediaType === \"video\") {\r\n\t\t\t\tcurrent.type = \"html\";\r\n\t\t\t\tcurrent.contentType = \"video\";\r\n\t\t\t\tcurrent.src = `
`;\r\n\t\t\t}\r\n\t\t},\r\n\t\tafterLoad(instance, current) {\r\n\t\t\tconst $link = current.opts.$orig;\r\n\t\t\tconst mediaType = $link.attr(c.mediaTypeAttr);\r\n\t\t\tconst isImage = mediaType === \"image\";\r\n\r\n\t\t\tif (isImage) {\r\n\t\t\t\taddPoweredByLogo(current.$content, o.lightbox.poweredByLogoUrl, o.lightbox.poweredByAltText);\r\n\r\n\t\t\t\tconst alt = current.opts.caption || $link.find(\"img\").attr(\"alt\");\r\n\t\t\t\tconst longDesc = current.opts.longDesc || $link.find(\"img\").attr(\"longdesc\");\r\n\r\n\t\t\t\tcurrent.$image\r\n\t\t\t\t\t.attr(\"alt\", alt)\r\n\t\t\t\t\t.attr(\"longdesc\", longDesc);\r\n\r\n\t\t\t\tif (instance.currIndex === current.index && instance.firstRun) {\r\n\t\t\t\t\tdispatchEvent(o.logCall, $link, \"zoom-in\", { type: mediaType, url: current.src });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tbeforeShow(instance, current) {\r\n\t\t\tif (instance.currIndex === instance.prevIndex) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst $link = current.opts.$orig;\r\n\t\t\tconst direction = instance.currIndex - instance.prevIndex;\r\n\r\n\t\t\tconst context = {\r\n\t\t\t\tsubelement: \"lightbox\",\r\n\t\t\t\tscroll: direction > 0 ^ o.isRtl ? \"right\" : \"left\",\r\n\t\t\t\ttarget: instance.currIndex\r\n\t\t\t};\r\n\r\n\t\t\tdispatchEvent(o.logCall, $link, \"navigate-content\", context);\r\n\t\t},\r\n\t\tafterShow(instance, current) {\r\n\t\t\tconst $link = current.opts.$orig;\r\n\t\t\tconst mediaType = $link.attr(c.mediaTypeAttr);\r\n\r\n\t\t\tif (mediaType === \"video\") {\r\n\t\t\t\tconst settings = {\r\n\t\t\t\t\tplayerId: playerId + \"-\" + current.index,\r\n\t\t\t\t\tfile: $link.data(\"video-url\") || $link.attr(\"href\"),\r\n\t\t\t\t\ttranscodedFile: $link.data(\"transcoded-video-url\"),\r\n\t\t\t\t\tccUrl: $link.data(\"cc-url\"),\r\n\t\t\t\t\tccLang: $link.data(\"cc-lang\"),\r\n\t\t\t\t\theight: \"100%\",\r\n\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\tenableAutosize: true,\r\n\t\t\t\t\tplayOnInit: true,\r\n\t\t\t\t\tpluginPath: o.video.pluginPath,\r\n\t\t\t\t\tdisableCC: o.video.disableCC\r\n\t\t\t\t};\r\n\r\n\t\t\t\tinitVideo($link, o.logCall, settings, true);\r\n\t\t\t}\r\n\r\n\t\t\tif (current.type === \"image\") {\r\n\t\t\t\tcurrent.$image.attr(\"tabindex\", 0);\r\n\t\t\t\tcurrent.$image.focus();\r\n\t\t\t}\r\n\r\n\t\t\tkeepFocus(instance.$refs.container[0]);\r\n\t\t}\r\n\t};\r\n\r\n\tif (o.isRtl === true) {\r\n\t\tconfig.btnTpl = {\r\n\t\t\tarrowRight: $.fancybox.defaults.btnTpl.arrowLeft,\r\n\t\t\tarrowLeft: $.fancybox.defaults.btnTpl.arrowRight\r\n\t\t};\r\n\t}\r\n\r\n\t$.extend(config, overrides);\r\n\r\n\t$mediaElements.fancybox(config);\r\n}\r\n\r\n\r\nfunction addPoweredByLogo($element, url, altText) {\r\n\tif (!url) return;\r\n\r\n\t$(\"
\")\r\n\t\t.addClass(\"ccs-cc-inline-poweredby-logo\")\r\n\t\t.append(`${altText}`)\r\n\t\t.bind(\"contextMenu\", () => false)\r\n\t\t.appendTo($element);\r\n}\r\n","import $ from \"jquery\";\r\nimport * as utils from \"./utils\";\r\nimport common from \"./common\";\r\nimport \"slick\";\r\n\r\nconst c = {\r\n\tcarouselWrapperSelector: \".ccs-cc-fc\",\r\n\tcarouselSelector: \".ccs-cc-fc-items\",\r\n\tactiveSlideSelector: \".ccs-slick-active\",\r\n\tclonedSlideSelector: \".ccs-slick-cloned\",\r\n\tcustomControls: \".ccs-cc-fc-custom-controls\",\r\n\tbgFeatureSelector: \".ccs-cc-inline-feature-background\",\r\n\tplayPauseBtnSelector: \".ccs-cc-fc-play-pause-btn\",\r\n\tfcArrows: {\r\n\t\tclass: \"ccs-cc-fc-arrow\",\r\n\t\tselector: \".ccs-cc-fc-arrow\",\r\n\t\tnext: \".ccs-cc-fc-arrow.ccs-slick-next\",\r\n\t\tprev: \".ccs-cc-fc-arrow.ccs-slick-prev\"\r\n\t}\r\n};\r\n\r\n$.extend(c, common);\r\n\r\nexport default class FeatureCarousel {\r\n\tconstructor(container, o) {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.$container = $(container);\r\n\t\t_.settings = o.features.carousel;\r\n\t\t_.isRtl = o.isRtl;\r\n\t\t_.logCall = o.logCall;\r\n\r\n\t\t_.init();\r\n\t}\r\n\r\n\tinit() {\r\n\t\tconst _ = this;\r\n\t\tconst $container = _.$container;\r\n\t\tconst settings = _.settings;\r\n\r\n\t\tconst autoplaySpeed = settings.speed;\r\n\t\tconst showArrows = !!settings.arrows;\r\n\t\tconst showDots = !!settings.points;\r\n\r\n\t\tconst isAutoplay = _.isAutoplayEnabled();\r\n\t\tconst isMobile = utils.isMobile();\r\n\r\n\t\t$container.toggleClass(\"ccs-cc-fc-mobile\", isMobile);\r\n\r\n\t\t_.$slickWrapper = $container.find(c.carouselSelector);\r\n\t\t_.$customControls = $container.find(c.customControls);\r\n\r\n\t\tif (!showDots && !settings.playpause) {\r\n\t\t\t_.$customControls.remove();\r\n\t\t}\r\n\r\n\t\tif (!showArrows) {\r\n\t\t\t$container.find(c.fcArrows.selector).remove();\r\n\t\t}\r\n\r\n\t\t_.$slickWrapper.ccsSlick({\r\n\t\t\tautoplaySpeed: autoplaySpeed,\r\n\t\t\tspeed: isMobile ? 100 : 500,\r\n\t\t\tarrows: showArrows,\r\n\t\t\tdots: showDots,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t\tautoplay: isAutoplay,\r\n\t\t\tlazyLoad: \"progressive\",\r\n\t\t\tpauseOnHover: false,\r\n\t\t\tinfinite: true,\r\n\t\t\tdraggable: false,\r\n\t\t\trtl: _.isRtl,\r\n\t\t\tswipe: isMobile,\r\n\t\t\tappendDots: _.$customControls,\r\n\t\t\tprevArrow: $container.find(c.fcArrows.prev),\r\n\t\t\tnextArrow: $container.find(c.fcArrows.next)\r\n\t\t});\r\n\r\n\t\t_.slick = _.$slickWrapper.ccsSlick(\"getSlick\");\r\n\t\t_.currentSlideIndex = _.slick.currentSlide;\r\n\t\t_.initBackGroundVideoAutoPlay(_.$slickWrapper);\r\n\r\n\t\t_.$slickWrapper.on(\"beforeChange\", function (e) {\r\n\t\t\t$(this).find(\".ccs-slick-slide\").css(\"visibility\", \"visible\");\r\n\t\t\t_.currentSlideIndex = _.slick.currentSlide;\r\n\r\n\t\t\tconst player = $(this).data(\"player-instance\");\r\n\t\t\tif (!player) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tplayer.pause();\r\n\t\t});\r\n\r\n\t\t_.$slickWrapper.on(\"afterChange\", function (e) {\r\n\t\t\t$(this).find(\".ccs-slick-slide:not('.ccs-slick-active')\").css(\"visibility\", \"hidden\");\r\n\t\t\tconst $self = $(this);\r\n\t\t\t_.initBackGroundVideoAutoPlay($self);\r\n\t\t});\r\n\r\n\t\t_.reportingListener();\r\n\t\t_.initPlayPauseBtn();\r\n\t\t_.fancyboxListener(_.$slickWrapper);\r\n\t\t_.hoverListener();\r\n\r\n\t\t_.$slickWrapper.on(\"ccsPlayer\", c.embeddedVideoSelector, function (e) {\r\n\t\t\tif (e.originalEvent.type === \"canplay\" || e.originalEvent.type === \"play\") {\r\n\r\n\t\t\t\t_.$slickWrapper.data(\"player-instance\", e.player);\r\n\r\n\t\t\t\tif (!isAutoplay) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_.$slickWrapper.ccsSlick(\"pause\");\r\n\t\t\t\t_.hoverListener(true);\r\n\t\t\t}\r\n\r\n\t\t\tif (e.originalEvent.type === \"pause\" || e.originalEvent.type === \"ended\") {\r\n\r\n\t\t\t\t_.$slickWrapper.data(\"player-instance\", null);\r\n\r\n\t\t\t\tif (!isAutoplay) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_.hoverListener();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfancyboxListener($container) {\r\n\t\tconst _ = this;\r\n\r\n\t\tif (!_.isAutoplayEnabled()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$(document)\r\n\t\t\t.on(\"beforeShow.ccs-fb\", function (e) {\r\n\t\t\t\t$container.ccsSlick(\"pause\");\r\n\t\t\t\t_.hoverListener(true);\r\n\t\t\t})\r\n\t\t\t.on(\"afterClose.ccs-fb\", function (e) {\r\n\t\t\t\t$container.ccsSlick(\"play\");\r\n\t\t\t\t_.hoverListener();\r\n\t\t\t});\r\n\t}\r\n\r\n\thoverListener(turnOff) {\r\n\t\tconst _ = this;\r\n\t\tconst $container = _.$container;\r\n\t\tconst $slickWrapper = _.$slickWrapper;\r\n\r\n\t\tif (!_.isAutoplayEnabled()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (turnOff) {\r\n\t\t\t$container.off(\"mouseleave mouseenter focusin focusout\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$container\r\n\t\t\t.on(\"mouseenter focusin\", function (e) {\r\n\t\t\t\t$slickWrapper.ccsSlick(\"pause\");\r\n\t\t\t})\r\n\t\t\t.on(\"mouseleave focusout\", function (e) {\r\n\t\t\t\tlet event = \"play\";\r\n\t\t\t\tconst $targerElement = $(e.relatedTarget);\r\n\t\t\t\tif ($targerElement.hasClass(\"ccs-zoom-tracker\") || $targerElement.hasClass(\"ccs-fancybox-container\"))\r\n\t\t\t\t\tevent = \"pause\";\r\n\r\n\t\t\t\t$slickWrapper.ccsSlick(event);\r\n\t\t\t});\r\n\t}\r\n\r\n\tisAutoplayEnabled() {\r\n\t\tconst _ = this;\r\n\t\tconst settings = _.settings;\r\n\t\treturn settings.speed && !utils.isMobile();\r\n\r\n\t}\r\n\r\n\treportingListener() {\r\n\t\tconst _ = this;\r\n\t\tconst $container = _.$container;\r\n\t\tconst $wrapper = _.$slickWrapper;\r\n\t\tconst $arrows = $container.find(c.fcArrows.selector);\r\n\r\n\t\t$arrows.on(\"click\", function (e) {\r\n\t\t\t_.submitNavigateEvent(\"arrows\");\r\n\t\t});\r\n\r\n\t\t$container.find(\".ccs-slick-dots li\").on(\"click\", function (e) {\r\n\t\t\t_.submitNavigateEvent(\"points\");\r\n\t\t});\r\n\r\n\t\t$wrapper[0].addEventListener(\"swipe\", function (e) {\r\n\t\t\t_.submitNavigateEvent(\"swipe\");\r\n\t\t}, true);\r\n\t}\r\n\r\n\tsubmitNavigateEvent(iteraction) {\r\n\t\tconst _ = this;\r\n\t\tconst slick = _.slick;\r\n\t\tconst curSlide = _.currentSlideIndex;\r\n\r\n\t\tconst newSlide = slick.currentSlide;\r\n\t\tconst eventParams = {\r\n\t\t\tsubelement: \"carousel\",\r\n\t\t\ttriggeredby: iteraction,\r\n\t\t\tnextSlide: newSlide + 1,\r\n\t\t\tpreviousSlide: curSlide + 1\r\n\t\t};\r\n\r\n\t\tconst direction = eventParams.nextSlide - eventParams.previousSlide;\r\n\t\tif (direction === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst actionContext = {\r\n\t\t\tsubelement: eventParams.subelement,\r\n\t\t\ttriggeredby: eventParams.triggeredby,\r\n\t\t\tscroll: direction > 0 ^ _.isRtl ? \"right\" : \"left\"\r\n\t\t};\r\n\r\n\t\tif (actionContext.subelement) {\r\n\t\t\tactionContext.target = eventParams.nextSlide;\r\n\t\t}\r\n\r\n\t\tutils.dispatchEvent(_.logCall, _.$container, \"navigate-content\", actionContext);\r\n\t}\r\n\r\n\tinitPlayPauseBtn() {\r\n\t\tconst _ = this;\r\n\t\tconst settings = _.settings;\r\n\t\tconst $container = _.$container;\r\n\r\n\t\tconst $customControls = $container.find(c.customControls);\r\n\t\tconst $btnPlayPause = $customControls.find(c.playPauseBtnSelector);\r\n\r\n\t\tif (!settings.playpause || !_.isAutoplayEnabled()) {\r\n\t\t\t$btnPlayPause.remove();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst $slickWrapper = $container.find(c.carouselSelector);\r\n\t\t$btnPlayPause.on(\"click\", function (e) {\r\n\t\t\tconst $self = $(this);\r\n\t\t\tif ($self.hasClass(\"ccs-play\")) {\r\n\t\t\t\t$self.removeClass(\"ccs-play\").addClass(\"ccs-pause\");\r\n\t\t\t\t$self.attr(\"aria-label\", \"click to pause\");\r\n\t\t\t\t$slickWrapper.ccsSlick(\"play\");\r\n\t\t\t\t_.submitClickEvent(\"play\");\r\n\t\t\t\t_.hoverListener();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t_.hoverListener(true);\r\n\t\t\t\t$self.removeClass(\"ccs-pause\").addClass(\"ccs-play\");\r\n\t\t\t\t$self.attr(\"aria-label\", \"click to play\");\r\n\t\t\t\t$slickWrapper.ccsSlick(\"pause\");\r\n\t\t\t\t_.submitClickEvent(\"pause\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t/*CCSDT-6841 - \"autoplay won't work in Safari and Chrome if any of parents of video tag have any DOM manipulation*/\r\n\t/*the explicit trigger required*/\r\n\tinitBackGroundVideoAutoPlay($bgContainer) {\r\n\t\tconst _ = this;\r\n\t\tif (utils.isMobile()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst $bgVideo = $bgContainer.find(c.bgFeatureSelector).find(\"video\");\r\n\t\tif ($bgVideo.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$bgVideo.each(function () {\r\n\t\t\tif ($(this).closest(c.activeSlideSelector).length === 0) {\r\n\t\t\t\t$(this)[0].pause();\r\n\t\t\t} else {\r\n\t\t\t\t$(this)[0].play();\r\n\t\t\t}\r\n\r\n\t\t\t$(this).prop(\"muted\", true);\r\n\t\t});\r\n\t}\r\n\r\n\tsubmitClickEvent(iteraction) {\r\n\r\n\t\tconst actionContext = {\r\n\t\t\tsubelement: \"carousel\",\r\n\t\t\tclick: iteraction\r\n\t\t};\r\n\r\n\t\tutils.dispatchEvent(this.logCall, this.$container, \"navigate-content\", actionContext);\r\n\t}\r\n\r\n\tgetParams(eventName, next, prev) {\r\n\t\treturn {\r\n\t\t\tsubelement: eventName,\r\n\t\t\tnextSlide: next,\r\n\t\t\tpreviousSlide: prev\r\n\t\t};\r\n\t}\r\n\r\n\tgetSlick($container) {\r\n\t\treturn $container.ccsSlick(\"getSlick\");\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport common from \"./common\";\r\n\r\nconst c = {\r\n\timageModeAttr: \"data-image-mode\",\r\n\theaderImageSelector: \".ccs-cc-inline-header-layout img\"\r\n};\r\n\r\n$.extend(c, common);\r\n\r\n// Initializes mobile images swap\r\nexport default function (ep, options) {\r\n\r\n\tconst trackedImages = ep.find(c.headerImageSelector + \",\" + c.imageSelector + \" img\").get();\r\n\tconst сheck = new RegExp(options.features.swapBreakpoint + \"px\");\r\n\r\n\tfunction handler() {\r\n\t\tconst breakpoints = ep.attr(\"max-width\");\r\n\t\tconst mobile = breakpoints && breakpoints.match(сheck);\r\n\t\tconst mode = mobile ? \"mobile\" : \"desktop\";\r\n\r\n\t\tswapImages(trackedImages, mode);\r\n\t}\r\n\r\n\thandler();\r\n\tshowHeader(ep);\r\n\r\n\tep.on(\"ccsBreakpointFired\", handler);\r\n}\r\n\r\n// Swaps desktop and mobile images\r\nfunction swapImages(images, mode) {\r\n\r\n\tfor (let i = images.length - 1; i >= 0; i--) {\r\n\t\tconst $img = $(images[i]);\r\n\t\tconst $a = $img.parent(c.imageSelector);\r\n\r\n\t\tif (!hasMobileMode($img)) {\r\n\t\t\timages.splice(i, 1);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!changeMode($img, mode)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tlet actualSrc = pickAttribute($img, \"data-src\", \"src\");\r\n\t\tswapAttributes($img, actualSrc, \"data-alternative-src\");\r\n\r\n\t\tconst altValue = swapAttributes($img, \"data-large\", \"data-alternative-large\");\r\n\t\tif (altValue && $a.length) {\r\n\t\t\tactualSrc = pickAttribute($a, \"data-url\", \"href\");\r\n\t\t\t$a.attr(actualSrc, altValue);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Checks whether the mobile mode is applicable\r\nfunction hasMobileMode($baseNode) {\r\n\treturn $baseNode.length && $baseNode[0].hasAttribute(c.imageModeAttr);\r\n}\r\n\r\n// Changes the mode: mobile|desktop\r\nfunction changeMode($baseNode, mode) {\r\n\tif ($baseNode.attr(c.imageModeAttr) === mode) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\t$baseNode.attr(c.imageModeAttr, mode);\r\n\treturn true;\r\n}\r\n\r\n// Picks existing attribute\r\nfunction pickAttribute($element, attr, fallbackAttr) {\r\n\treturn $element[0].hasAttribute(attr)\r\n\t\t? attr\r\n\t\t: fallbackAttr;\r\n}\r\n\r\n// Swaps values of attributes\r\nfunction swapAttributes($element, attr, altAttr) {\r\n\tconst altAttrValue = $element.attr(altAttr);\r\n\tif (!altAttrValue) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t$element.attr(altAttr, $element.attr(attr));\r\n\t$element.attr(attr, altAttrValue);\r\n\treturn altAttrValue;\r\n}\r\n\r\n// Header image is hidden on mobile to avoid flickering\r\nfunction showHeader(ep) {\r\n\tconst $headerImage = ep.find(c.headerImageSelector);\r\n\r\n\t$headerImage.on(\"load\", e => $(e.target).css(\"visibility\", \"visible\"));\r\n\r\n\tif ($headerImage.length && $headerImage[0].complete) {\r\n\t\t$headerImage.trigger(\"load\");\r\n\t}\r\n}","import $ from \"jquery\";\r\nimport require from \"require\";\r\nimport lightbox from \"./lightbox\";\r\nimport common from \"./common\";\r\nimport Carousel from \"./featurecarousel\";\r\nimport mobileImages from \"./mobileimages\";\r\nimport * as utils from \"./utils\";\r\nimport * as video from \"./video\";\r\n\r\nconst c = {\r\n\tmobilePrintingVideo: \".ccs-cc-mobileprinting-video a\",\r\n\tcarouselWrapperSelector: \".ccs-cc-fc\",\r\n\tfeatureDescription: \".ccs-cc-inline-feature-description\"\r\n};\r\n\r\n$.extend(c, common);\r\n\r\nexport default function (ep, o) {\r\n\r\n\tconst $mediaElements = ep.find(c.imageSelector + \",\" + c.videoSelector + \",\" + c.mobilePrintingVideo);\r\n\tlightbox($mediaElements, o);\r\n\r\n\tinitCarousel(ep, o);\r\n\tinitFeaturesZoom(ep, o);\r\n\tinitEmbeddedVideo(ep, o);\r\n\tmobileImages(ep, o);\r\n\tinitFeaturesLazyLoad(ep, o);\r\n\tutils.restoreHref(ep.find(c.videoSelector));\r\n\tcheckInputLabels(ep.find(c.featureDescription));\r\n\r\n\tif (o.features.autoPlayVideoInViewPort) {\r\n\t\tvideo.autoPlayInViewport(ep, o.logCall, o.video.pluginPath, o.video.disableCC);\r\n\t}\r\n\r\n\tif (utils.isMobile()) {\r\n\t\tep.find(\".ccs-cc-inline-feature-background\").each((_, el) => {\r\n\t\t\tconst $bg = $(el);\r\n\t\t\tconst $video = $bg.find(\"video\");\r\n\r\n\t\t\tif ($video.length) {\r\n\t\t\t\tconst poster = $video.attr(\"poster\");\r\n\t\t\t\t$bg.css(\"background-image\", `url('${poster}')`);\r\n\t\t\t\t$video.remove();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction initFeaturesZoom(ep, o) {\r\n\tconst $featureImages = ep.find(c.imageSelector + \" img\");\r\n\tif (!$featureImages.length) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst inlineZoomSettings = getInlineZoomSettings(ep, o);\r\n\tif (inlineZoomSettings) {\r\n\t\trequire(\"zoomsl\");\r\n\t}\r\n\r\n\t$featureImages.one(\"load\", function () {\r\n\t\tconst $img = $(this);\r\n\r\n\t\tif ($img.attr(\"src\") === $img.attr(\"data-large\")\r\n\t\t\t&& (this.clientWidth * 1.2 > this.naturalWidth || this.naturalWidth < 200)) {\r\n\r\n\t\t\t$img.parent().before($img).remove();\r\n\t\t}\r\n\r\n\t\tif (inlineZoomSettings && $img.parent().is(\"a\")) {\r\n\t\t\t$img.imagezoomsl(inlineZoomSettings);\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction getInlineZoomSettings(ep, o) {\r\n\tconst zoom = o.features.zoom;\r\n\r\n\tif (!zoom.enabled || utils.isMobile()) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tlet $container = $(\".ccs-zoom-container\");\r\n\tif (!$container.length) {\r\n\t\t$container = $(\"
\")\r\n\t\t\t.addClass(\"ccs-zoom-container\")\r\n\t\t\t.appendTo(document.body);\r\n\t}\r\n\r\n\t$container.addClass(o.containerClass);\r\n\r\n\tconst zoomSettings = {\r\n\t\tdisablewheel: false,\r\n\t\tmagnifycursor: \"pointer\",\r\n\t\tshowstatus: false,\r\n\t\toriginalsize: true,\r\n\t\tcontainer: $container,\r\n\t\tviewport: ep,\r\n\t\tclassmagnifier: \"ccs-zoom-magnifier\",\r\n\t\tclasscursorshade: \"ccs-zoom-cursorshade\",\r\n\t\tclassstatusdiv: \"ccs-zoom-statusdiv\",\r\n\t\tclasstextdn: \"ccs-zoom-textdn\",\r\n\t\tclasstracker: \"ccs-zoom-tracker\",\r\n\t\tonShow: e => {\r\n\t\t\tconst context = {\r\n\t\t\t\ttype: \"image\",\r\n\t\t\t\turl: e.setting.largeimage\r\n\t\t\t};\r\n\r\n\t\t\tutils.dispatchEvent(o.logCall, e.$img, \"hover\", context);\r\n\t\t}\r\n\t};\r\n\r\n\tif ($.isNumeric(zoom.width) && $.isNumeric(zoom.height)) {\r\n\t\tzoomSettings.magnifiersize = [zoom.width, zoom.height];\r\n\t}\r\n\r\n\treturn zoomSettings;\r\n}\r\n\r\nfunction initFeaturesLazyLoad(ep, o) {\r\n\tconst lazyLoadImages = ep.find(c.imageSelector);\r\n\tif (lazyLoadImages.length === 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst startImagesLoading = function () {\r\n\t\tfor (let i = lazyLoadImages.length - 1; i >= 0; i--) {\r\n\t\t\tconst $img = $(lazyLoadImages[i]).find(\"img\");\r\n\r\n\t\t\tif (o.features.disableLazyLoad || utils.isElementInViewport($img, 500)) {\r\n\t\t\t\tconst src = $img.data(\"src\");\r\n\r\n\t\t\t\t$img.attr(\"src\", src)\r\n\t\t\t\t\t.removeAttr(\"data-src\")\r\n\t\t\t\t\t.one(\"load\", e => utils.restoreHref($(e.target).closest(c.imageSelector)));\r\n\r\n\t\t\t\tif ($img[0].complete) {\r\n\t\t\t\t\t$img.trigger(\"load\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlazyLoadImages.splice(i, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (lazyLoadImages.length === 0) {\r\n\t\t\twindow.removeEventListener(\"scroll\", startImagesLoading, true);\r\n\t\t\twindow.removeEventListener(\"resize\", startImagesLoading, true);\r\n\t\t}\r\n\t}\r\n\r\n\tconst isVisible = function () {\r\n\t\tif (ep.is(\":visible\")) {\r\n\t\t\tstartImagesLoading();\r\n\t\t\twindow.addEventListener(\"scroll\", startImagesLoading, true);\r\n\t\t\twindow.addEventListener(\"resize\", startImagesLoading, true);\r\n\t\t} else {\r\n\t\t\tsetTimeout(isVisible, 300);\r\n\t\t}\r\n\t};\r\n\r\n\tsetTimeout(isVisible, 100); //wait the content loading for the correct calculation of the target area\r\n}\r\n\r\nfunction initEmbeddedVideo(ep, o) {\r\n\r\n\tep.find(c.embeddedVideoSelector).each(function () {\r\n\t\tconst $wrapper = $(this);\r\n\r\n\t\t/*hot-fix for featurecarousel. Do not init cloned videos that uses for infinite loop*/\r\n\t\tif ($wrapper.closest(\".ccs-slick-cloned\").length !== 0)\r\n\t\t\treturn;\r\n\r\n\t\tif (utils.isMobile() && $wrapper.is(\"[data-video-url$='.flv']\")) {\r\n\t\t\t$wrapper.html(function () {\r\n\t\t\t\treturn $(this).find(\"img\");\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$wrapper\r\n\t\t\t.one(\"click.initInlineVideo\", function () {\r\n\t\t\t\tconst playerId = $wrapper.data(\"player\");\r\n\t\t\t\tif (!$(`#${playerId}`).length) {\r\n\t\t\t\t\t$wrapper.append(\r\n\t\t\t\t\t\t$(\"
\").append(\r\n\t\t\t\t\t\t\t$(\"\").attr(\"href\", \"javascript:;\").prepend(noteId);\r\n\t}\r\n\r\n\t$footerLink.prepend($footnote.find(`.${c.offScreenTextClass}`));\r\n\r\n\t$footnote\r\n\t\t.html($footerLink)\r\n\t\t.removeAttr(\"tabindex\");\r\n}\r\n\r\nfunction createContentLink(o, noteId) {\r\n\treturn createCrossLink(o, noteId, false);\r\n};\r\n\r\nfunction createFooterLink(o, noteId) {\r\n\treturn createCrossLink(o, noteId, true);\r\n};\r\n\r\nfunction createCrossLink(o, noteId, isFooterLink) {\r\n\tconst prefix = `ccs-f${o.inlineContentId}`;\r\n\r\n\treturn $(\"\")\r\n\t\t.text(noteId)\r\n\t\t.attr({\r\n\t\t\t\"id\": prefix + (isFooterLink ? \"t\" : \"\") + noteId,\r\n\t\t\t\"href\": \"#\" + prefix + (isFooterLink ? \"\" : \"t\") + noteId\r\n\t\t});\r\n};\r\n","import $ from \"jquery\";\r\nimport common from \"../common\";\r\n\r\nconst c = {\r\n\tslickDefaults: { speed: 200, draggable: false, infinite: false },\r\n\trootGallerySelector: \".ccs-cc-ig\",\r\n\tthumbsContainer: \".ccs-slick-slider\",\r\n\tslideSelector: \".ccs-slick-slide\",\r\n\tviewportWrapperClass: \"ccs-cc-viewport-slide-wrapper\",\r\n\tviewportPreviewClass: \"ccs-cc-ig-viewport-preview\",\r\n\tcloudRoot: \".ccs-cc-ig-cloud\",\r\n\tcloudViewport: \".ccs-cc-ig-cloud-viewport\",\r\n\tcloudViewportArrow: \".ccs-ig-viewport-arrow\",\r\n\tcloudActiveClass: \"ccs-ig-cloud-active\"\r\n};\r\n\r\nexport default $.extend(c, common);\r\n","// jQuery plugin\r\n// https://github.com/marcandre/detect_swipe\r\n\r\nimport $ from \"jquery\";\r\n\r\n$.detectSwipe = {\r\n\tversion: \"2.1.2\",\r\n\tenabled: \"ontouchstart\" in document.documentElement,\r\n\tpreventDefault: true,\r\n\tthreshold: 100\r\n};\r\n\r\nlet startX,\r\n\tstartY,\r\n\tisMoving = false;\r\n\r\nfunction onTouchEnd() {\r\n\tthis.removeEventListener(\"touchmove\", onTouchMove);\r\n\tthis.removeEventListener(\"touchend\", onTouchEnd);\r\n\tisMoving = false;\r\n}\r\n\r\nfunction onTouchMove(e) {\r\n\tif ($.detectSwipe.preventDefault) {\r\n\t\te.preventDefault();\r\n\t\te.stopImmediatePropagation();\r\n\t}\r\n\tif (isMoving) {\r\n\t\tconst x = e.touches[0].pageX;\r\n\t\tconst y = e.touches[0].pageY;\r\n\t\tconst dx = startX - x;\r\n\t\tconst dy = startY - y;\r\n\t\tlet dir;\r\n\t\tif (Math.abs(dx) >= $.detectSwipe.threshold) {\r\n\t\t\tdir = dx > 0 ? \"left\" : \"right\";\r\n\t\t}\r\n\t\telse if (Math.abs(dy) >= $.detectSwipe.threshold) {\r\n\t\t\tdir = dy > 0 ? \"up\" : \"down\";\r\n\t\t}\r\n\t\tif (dir) {\r\n\t\t\tonTouchEnd.call(this);\r\n\t\t\t$(this).trigger(\"swipe\", dir).trigger(\"swipe\" + dir);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction onTouchStart(e) {\r\n\tif (e.touches.length === 1) {\r\n\t\tstartX = e.touches[0].pageX;\r\n\t\tstartY = e.touches[0].pageY;\r\n\t\tisMoving = true;\r\n\t\tthis.addEventListener(\"touchmove\", onTouchMove, false);\r\n\t\tthis.addEventListener(\"touchend\", onTouchEnd, false);\r\n\t}\r\n}\r\n\r\nfunction setup() {\r\n\tthis.addEventListener && this.addEventListener(\"touchstart\", onTouchStart, false);\r\n}\r\n\r\nfunction teardown() {\r\n\tthis.removeEventListener(\"touchstart\", onTouchStart);\r\n}\r\n\r\n$.event.special.swipe = {\r\n\tsetup: setup,\r\n\tteardown: teardown\r\n};\r\n\r\n$.each([\"left\", \"up\", \"down\", \"right\"], function () {\r\n\t$.event.special[\"swipe\" + this] = {\r\n\t\tsetup: function () {\r\n\t\t\t$(this).on(\"swipe\", $.noop);\r\n\t\t}\r\n\t};\r\n});\r\n","import \"slick\";\r\n\r\nimport $ from \"jquery\";\r\nimport c from \"./consts\";\r\nimport lightbox from \"../lightbox\";\r\nimport * as utils from \"../utils\";\r\n\r\nexport default class BaseGallery {\r\n\r\n\tconstructor($gallery, options) {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.$gallery = $gallery;\r\n\t\t_.$slick = $gallery.find(c.thumbsContainer);\r\n\r\n\t\t_.o = options;\r\n\t}\r\n\r\n\tinit() {\r\n\t\tconst _ = this,\r\n\t\t\t$slick = _.$slick,\r\n\t\t\t$gallery = _.$gallery;\r\n\r\n\t\tif (utils.isMobile()) {\r\n\t\t\t$slick\r\n\t\t\t\t.children().has(\"[data-video-url$='.flv']\")\r\n\t\t\t\t.remove();\r\n\t\t}\r\n\r\n\t\t_.updateAttributes();\r\n\r\n\t\t_.beforeInit();\r\n\t\t_.initSlick();\r\n\t\t_.afterInit();\r\n\r\n\t\t$gallery.trigger({ type: \"ccsGalleryLoad\", gallery: _ });\r\n\t}\r\n\r\n\tinitSlick() {\r\n\t\tconst _ = this,\r\n\t\t\t$gallery = _.$gallery,\r\n\t\t\t$slick = _.$slick;\r\n\r\n\t\tlet resizeTimer;\r\n\t\tconst resizeInvoker = function () {\r\n\t\t\tclearTimeout(resizeTimer);\r\n\r\n\t\t\tif ($gallery.is(\":visible\")) {\r\n\t\t\t\t_.resize();\r\n\t\t\t} else {\r\n\t\t\t\tresizeTimer = setTimeout(resizeInvoker, 500);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$slick\r\n\t\t\t.on(\"init\", function (e, slick) {\r\n\t\t\t\t_.slick = slick;\r\n\r\n\t\t\t\tlightbox(slick.$slides, _.o, { backFocus: false });\r\n\r\n\t\t\t\t$slick.closest(\".ccs-cc-inline\").on(\"ccsResize\", resizeInvoker);\r\n\t\t\t\tutils.bindResizeEvent(resizeInvoker);\r\n\t\t\t\tresizeInvoker();\r\n\t\t\t})\r\n\t\t\t.on(\"beforeChange\", function (e, slick, previousSlide, nextSlide) {\r\n\t\t\t\t_.submitNavigateEvent(previousSlide, nextSlide);\r\n\t\t\t});\r\n\r\n\t\t$(document).on(\"afterClose.ccs-fb\", function (e, fancybox, fbSlide) {\r\n\t\t\tconst $slide = fbSlide.opts.$orig;\r\n\r\n\t\t\tif (!$slick.has($slide).length) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t$slide.trigger({ type: \"fbClose\", originalEvent: e });\r\n\t\t});\r\n\r\n\t\tconst slickConfig = $.extend({}, c.slickDefaults, { rtl: _.o.isRtl });\r\n\t\t$slick.ccsSlick(slickConfig);\r\n\t}\r\n\r\n\tupdateAttributes() {\r\n\t\tconst _ = this,\r\n\t\t\t$slides = _.$slick.children();\r\n\r\n\t\tconst elementId = _.$gallery.closest(c.sectionSelector).attr(\"id\");\r\n\r\n\t\t$slides.each(function (index, el) {\r\n\t\t\tconst $slide = $(el).attr(\"data-ccs-fancybox\", elementId);\r\n\r\n\t\t\t$slide.attr(\"data-src\", $slide.data(\"video-url\") || $slide.data(\"image-url\"));\r\n\r\n\t\t\tconst $img = $slide.find(\"img\");\r\n\r\n\t\t\tlet alt = $img.attr(\"alt\");\r\n\t\t\tif (!alt) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\talt = utils.stringFormat(alt, index + 1, $slides.length);\r\n\r\n\t\t\t$img.attr(\"alt\", alt.toLowerCase());\r\n\t\t});\r\n\t}\r\n\r\n\tsubmitNavigateEvent(previousSlide, nextSlide, subelement) {\r\n\t\tconst direction = nextSlide - previousSlide;\r\n\t\tif (direction === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst actionContext = {\r\n\t\t\tscroll: direction > 0 ^ this.o.isRtl ? \"right\" : \"left\",\r\n\t\t\tsubelement: subelement\r\n\t\t};\r\n\r\n\t\tutils.dispatchEvent(this.o.logCall, this.$gallery, \"navigate-content\", actionContext);\r\n\t}\r\n\r\n\tchangeSlidesCount() {\r\n\t\tconst _ = this;\r\n\t\tconst slick = this.slick;\r\n\r\n\t\tconst slickSize = slick.$list.width();\r\n\r\n\t\tconst $slide = slick.$slides.find(\".ccs-cc-thumbnail-wrapper:visible\");\r\n\t\tconst slideSize = $slide.outerWidth(true);\r\n\r\n\t\tconst slidesCount = _.calcCount(slickSize, slideSize);\r\n\r\n\t\tif (slick.options.slidesToShow !== slidesCount || slick.listWidth === 0) {\r\n\t\t\t_.slickSetSlidesCount(slidesCount);\r\n\t\t}\r\n\t}\r\n\r\n\tcalcCount(wrapSize, slideSize) {\r\n\t\treturn Math.max(Math.floor(wrapSize / slideSize), 1);\r\n\t}\r\n\r\n\tslickSetSlidesCount(count) {\r\n\t\tconst slick = this.slick;\r\n\r\n\t\tslick.slickSetOption(\"slidesToShow\", count);\r\n\t\tslick.slickSetOption(\"slidesToScroll\", count);\r\n\r\n\t\tslick.refresh();\r\n\t}\r\n\r\n\tresize() { }\r\n\tbeforeInit() { }\r\n\tafterInit() { }\r\n\tswitchSlide(slide) { }\r\n}\r\n","import $ from \"jquery\";\r\nimport BaseGallery from \"./base\";\r\n\r\nexport default class RibbonGallery extends BaseGallery {\r\n\r\n\tafterInit() {\r\n\t\tconst _ = this;\r\n\r\n\t\tif (_.o.isRtl) {\r\n\t\t\t_.slick.loadImages();\r\n\t\t}\r\n\r\n\t\t_.$slick.on(\"fbClose\", e => _.switchSlide(e.target));\r\n\t}\r\n\r\n\tresize() {\r\n\t\tthis.changeSlidesCount();\r\n\t}\r\n\r\n\tswitchSlide(slide) {\r\n\r\n\t\tconst slick = this.slick,\r\n\t\t\t$slick = this.$slick,\r\n\t\t\t$slide = $(slide);\r\n\r\n\t\t$slick.one(\"afterChange\", () => {\r\n\t\t\t$slide.children().focus();\r\n\t\t\tslick.loadImages();\r\n\t\t});\r\n\r\n\t\tslick.goTo($slide.data(\"slick-index\"));\r\n\t}\r\n}","import $ from \"jquery\";\r\nimport c from \"./consts\";\r\nimport lightbox from \"../lightbox\";\r\nimport BaseGallery from \"./base\";\r\nimport * as video from \"../video\";\r\nimport * as utils from \"../utils\";\r\nimport \"../swipe\";\r\n\r\nexport default class CloudGallery extends BaseGallery {\r\n\r\n\tbeforeInit() {\r\n\t\tthis.$slick\r\n\t\t\t.find(c.slideSelector)\r\n\t\t\t.each(function () {\r\n\t\t\t\tconst $link = $(this).find(\"a.ccs-cc-thumbnail-wrapper\");\r\n\r\n\t\t\t\t$(\"\")\r\n\t\t\t\t\t.html($link.html())\r\n\t\t\t\t\t.insertAfter($link);\r\n\t\t\t});\r\n\t}\r\n\r\n\tafterInit() {\r\n\t\tconst _ = this,\r\n\t\t\t$slick = _.$slick,\r\n\t\t\t$slides = _.slick.$slides;\r\n\r\n\t\tutils.isMobile()\r\n\t\t\t? _.initMobileBehavior()\r\n\t\t\t: _.initDesktopBehavior();\r\n\r\n\t\t$slick.on(\"fbClose\", e => _.switchSlide(e.target, true, true));\r\n\r\n\t\t_.switchSlide($slides[0], true);\r\n\r\n\t\tif ($slides.length === 1) {\r\n\t\t\t_.initSingleSlideBehavior();\r\n\t\t}\r\n\t}\r\n\r\n\tinitSingleSlideBehavior() {\r\n\t\tconst _ = this,\r\n\t\t\t$slick = _.$slick,\r\n\t\t\t$gallery = _.$gallery;\r\n\r\n\t\tconst $viewportSlideWrapper = $gallery.find(`.${c.viewportWrapperClass}`);\r\n\t\tconst $viewportSlidePreview = $gallery.find(`.${c.viewportPreviewClass}`);\r\n\r\n\t\tif ($viewportSlideWrapper.data(\"media-type\") === \"image\") {\r\n\t\t\t$viewportSlidePreview.removeAttr(\"tabindex\");\r\n\r\n\t\t\t$viewportSlideWrapper\r\n\t\t\t\t.attr(\"href\", $viewportSlidePreview.attr(\"src\"))\r\n\t\t\t\t.removeAttr(\"tabindex\");\r\n\r\n\t\t\tlightbox($viewportSlideWrapper, _.o, { backFocus: true });\r\n\t\t}\r\n\r\n\t\t$slick.ccsSlick(\"unslick\").remove();\r\n\t}\r\n\r\n\tinitMobileBehavior() {\r\n\t\tconst _ = this,\r\n\t\t\t$slick = _.$slick,\r\n\t\t\t$slides = _.slick.$slides,\r\n\t\t\t$gallery = _.$gallery;\r\n\r\n\t\t$slides.find(\".ccs-cc-thumbnail-wrapper\").on(\"click\", function (e) {\r\n\t\t\t_.switchSlide(e.target);\r\n\r\n\t\t\tif (e.originalEvent) {\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$gallery.find(c.cloudViewportArrow).remove();\r\n\r\n\t\t$gallery.find(\".ccs-cc-ig-cloud-viewport\")\r\n\t\t\t.on(\"swipeleft swiperight\", function (e) {\r\n\t\t\t\tconst $curSlide = $slick.find(`.${c.cloudActiveClass}`);\r\n\t\t\t\tconst $newSlide = e.type === \"swiperight\" ? $curSlide.prev() : $curSlide.next();\r\n\r\n\t\t\t\tif ($newSlide.length) {\r\n\t\t\t\t\t_.submitNavigateViewportEvent($newSlide, $curSlide);\r\n\t\t\t\t\t_.switchSlide($newSlide);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tinitDesktopBehavior() {\r\n\t\tconst _ = this,\r\n\t\t\t$slides = _.slick.$slides;\r\n\r\n\t\tlet navOnHoverTimer;\r\n\t\t$slides\r\n\t\t\t.on(\"mouseover\", function (e) {\r\n\t\t\t\tnavOnHoverTimer = setTimeout(function () {\r\n\t\t\t\t\t_.switchSlide(e.target);\r\n\t\t\t\t}, 100);\r\n\t\t\t})\r\n\t\t\t.on(\"mouseout\", function () {\r\n\t\t\t\tclearTimeout(navOnHoverTimer);\r\n\t\t\t});\r\n\r\n\t\t_.$gallery.find(c.cloudViewportArrow).on(\"click\", function (e) {\r\n\t\t\tconst $arrow = $(e.target).closest(c.cloudViewportArrow);\r\n\r\n\t\t\tconst $curSlide = $slides.filter(`.${c.cloudActiveClass}`);\r\n\t\t\tconst $newSlide = $arrow.is(\".ccs-slick-prev\") ? $curSlide.prev() : $curSlide.next();\r\n\r\n\t\t\t_.submitNavigateViewportEvent($newSlide, $curSlide);\r\n\t\t\t_.switchSlide($newSlide);\r\n\t\t});\r\n\t}\r\n\r\n\tresize() {\r\n\t\tthis.changeHeight();\r\n\t\tthis.changeSlidesCount();\r\n\t}\r\n\r\n\tswitchSlide(slide, suppressLog, backFocus) {\r\n\t\tconst _ = this;\r\n\t\tconst $slick = _.$slick;\r\n\t\tconst slick = _.slick;\r\n\r\n\t\tconst $slide = $(slide).closest(c.slideSelector);\r\n\t\tconst isHidden = _.slideIsHidden($slide);\r\n\r\n\t\tif (backFocus) {\r\n\t\t\tisHidden\r\n\t\t\t\t? $slick.one(\"afterChange\", () => $slide.focus())\r\n\t\t\t\t: $slide.focus();\r\n\t\t}\r\n\r\n\t\tif (isHidden) {\r\n\t\t\tslick.goTo($slide.data(\"slick-index\"));\r\n\t\t}\r\n\r\n\t\tconst $prevActive = $slick.find(`.${c.cloudActiveClass}`);\r\n\r\n\t\tif ($slide.is($prevActive)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!suppressLog) {\r\n\t\t\t_.submitHoverEvent($slide);\r\n\t\t}\r\n\r\n\t\t$prevActive\r\n\t\t\t.removeClass(c.cloudActiveClass)\r\n\t\t\t.find(\"a\").removeAttr(\"disabled\");\r\n\r\n\t\t$slide\r\n\t\t\t.addClass(c.cloudActiveClass)\r\n\t\t\t.find(\"a\").attr(\"disabled\", \"\");\r\n\r\n\t\tconst $viewport = $slick.siblings(c.cloudViewport);\r\n\r\n\t\t$viewport\r\n\t\t\t.toggleClass(\"first-slide\", $slide.is(\":first-child\"))\r\n\t\t\t.toggleClass(\"last-slide\", $slide.is(\":last-child\"));\r\n\r\n\t\tif (_.o.isRtl || isHidden) {\r\n\t\t\tslick.loadImages();\r\n\t\t}\r\n\r\n\t\tconst $prev = $viewport\r\n\t\t\t.children(`.${c.cloudActiveClass}`)\r\n\t\t\t.removeClass(c.cloudActiveClass);\r\n\r\n\t\tvideo.stop($prev.children());\r\n\r\n\t\tconst $viewportSlide = $viewport.find(`[data-slide-index=${$slide.index()}]`);\r\n\r\n\t\tif ($viewportSlide.length !== 0) {\r\n\t\t\t$viewportSlide.addClass(c.cloudActiveClass);\r\n\t\t} else {\r\n\t\t\t$viewport.prepend(_.createViewportSlide($slide));\r\n\t\t}\r\n\t}\r\n\r\n\tsubmitHoverEvent($slide) {\r\n\t\tconst context = {\r\n\t\t\ttype: $slide.data(\"media-type\"),\r\n\t\t\turl: $slide.data(\"video-url\") || $slide.data(\"image-url\")\r\n\t\t};\r\n\r\n\t\tutils.dispatchEvent(this.o.logCall, $slide, \"hover\", context);\r\n\t}\r\n\r\n\tslideIsHidden($slide) {\r\n\t\tconst $slick = this.$slick;\r\n\r\n\t\treturn $slick.offset().left > $slide.offset().left\r\n\t\t\t|| $slick.offset().left + $slick.width() < $slide.offset().left + $slide.width();\r\n\t}\r\n\r\n\tcreateViewportSlide($slickSlide) {\r\n\t\tconst _ = this;\r\n\r\n\t\tconst imgUrl = $slickSlide.data(\"image-url\");\r\n\t\tconst altText = $slickSlide.find(\"img\").attr(\"alt\").replace(_.o.media.zoomIn, _.o.media.showLargeImg);\r\n\r\n\t\tconst $viewportSlide = $(\"
\")\r\n\t\t\t.addClass(\"ccs-cc-ig-viewport-slide loading\")\r\n\t\t\t.attr(\"data-slide-index\", $slickSlide.index());\r\n\r\n\t\tconst $viewportWrapper = $(``);\r\n\r\n\t\tconst $viewportImage = $(``)\r\n\t\t\t.attr(\"tabindex\", 0)\r\n\t\t\t.attr(\"src\", imgUrl)\r\n\t\t\t.attr(\"alt\", altText)\r\n\t\t\t.on(\"load\", function () {\r\n\t\t\t\t$viewportSlide.removeClass(\"loading\");\r\n\t\t\t});\r\n\r\n\t\tconst createConcreteSlide = $slickSlide.data(\"media-type\") === \"image\"\r\n\t\t\t? _.createImageViewportSlide\r\n\t\t\t: _.createVideoViewportSlide;\r\n\r\n\t\tcreateConcreteSlide.call(_, $slickSlide, $viewportWrapper, $viewportImage);\r\n\r\n\t\tsetTimeout(function () {\r\n\t\t\t$viewportSlide.addClass(c.cloudActiveClass);\t// for animation\r\n\t\t}, 10);\r\n\r\n\t\treturn $viewportSlide.append($viewportWrapper);\r\n\t}\r\n\r\n\tcreateImageViewportSlide($slickSlide, $viewportWrapper, $viewportImage) {\r\n\r\n\t\t$viewportWrapper\r\n\t\t\t.attr(c.mediaTypeAttr, \"image\")\r\n\t\t\t.on(\"click\", function () {\r\n\t\t\t\t$slickSlide.trigger(\"click\");\r\n\t\t\t})\r\n\t\t\t.on(\"keypress\", function (e) {\r\n\t\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\t\t$slickSlide.trigger(\"click\");\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.append($viewportImage);\r\n\t}\r\n\r\n\tcreateVideoViewportSlide($slickSlide, $viewportWrapper, $viewportImage) {\r\n\t\tconst _ = this;\r\n\r\n\t\tconst playerId = $slickSlide.closest(c.sectionSelector).attr(\"id\") + \"_player-\" + $slickSlide.index();\r\n\r\n\t\tconst $player = $(\"
\")\r\n\t\t\t.attr(\"id\", playerId)\r\n\t\t\t.append($viewportImage)\r\n\t\t\t.appendTo($viewportWrapper);\r\n\r\n\t\t$viewportImage.on(\"load\", function () {\r\n\t\t\t$player.append($(\"\"));\r\n\t\t});\r\n\r\n\t\t_.copyDataAttributes($slickSlide, $viewportWrapper);\r\n\r\n\t\tconst initPlayer = function (autoplay) {\r\n\t\t\tvideo.initInline(\r\n\t\t\t\t$viewportWrapper,\r\n\t\t\t\t_.o.logCall,\r\n\t\t\t\t_.o.video.pluginPath,\r\n\t\t\t\t_.o.video.disableCC,\r\n\t\t\t\tfalse,\r\n\t\t\t\tautoplay);\r\n\t\t};\r\n\r\n\t\t$viewportWrapper.attr(\"data-player\", playerId);\r\n\r\n\t\tif (utils.isMobile()) {\r\n\t\t\tsetTimeout(() => initPlayer(false));\r\n\t\t} else {\r\n\t\t\t$viewportWrapper\r\n\t\t\t\t.on(\"keydown\", function (e) {\r\n\t\t\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\t\t\tinitPlayer(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.one(\"click\", () => initPlayer(true));\r\n\t\t}\r\n\t}\r\n\r\n\tsubmitNavigateViewportEvent($newSlide, $curSlide) {\r\n\t\tthis.submitNavigateEvent($curSlide.index(), $newSlide.index(), \"cloud\");\r\n\t}\r\n\r\n\tcopyDataAttributes($source, $target) {\r\n\t\tconst attr = $.grep($source[0].attributes, at => /^data-((?!fancybox).)*$/.test(at.name));\r\n\t\tfor (let i = 0; i < attr.length; i++) {\r\n\t\t\t$target.attr(attr[i].name, attr[i].value).data(attr[i].name, attr[i].value);\r\n\t\t}\r\n\t}\r\n\r\n\tchangeHeight() {\r\n\t\tconst _ = this,\r\n\t\t\t$viewport = _.$gallery.find(c.cloudViewport);\r\n\r\n\t\tconst width = $viewport.width();\r\n\t\tconst curHeight = $viewport.height();\r\n\r\n\t\tlet maxHeight = _.maxHeight;\r\n\t\tif (!maxHeight) {\r\n\t\t\tmaxHeight = _.maxHeight = curHeight;\r\n\t\t}\r\n\r\n\t\tconst ratio = 16 / 9;\r\n\r\n\t\tif (width < maxHeight * ratio) {\r\n\t\t\tconst newHeight = width / ratio;\r\n\t\t\tif (newHeight <= maxHeight) {\r\n\t\t\t\t$viewport.height(newHeight);\r\n\t\t\t}\r\n\t\t} else if (curHeight !== maxHeight) {\r\n\t\t\t$viewport.height(maxHeight);\r\n\t\t}\r\n\t}\r\n}","import Ribbon from \"./ribbon\";\r\nimport Cloud from \"./cloud\";\r\n\r\nexport default class GalleryFactory {\r\n\r\n\tcreate($gallery, o) {\r\n\r\n\t\tlet Gallery = Ribbon;\r\n\r\n\t\tif ($gallery.hasClass(\"ccs-cc-ig-cloud\")) {\r\n\t\t\tGallery = Cloud;\r\n\t\t}\r\n\r\n\t\treturn new Gallery($gallery, o);\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport require from \"require\";\r\nimport * as utils from \"./utils\";\r\nimport { init as initVideo } from \"./video\";\r\n\r\nconst c = {\r\n\trootClass: \"ccs-hotspots\",\r\n\tmobileClass: \"ccs-hotspots-mobile\",\r\n\tnoScrollClass: \"ccs-noscroll\",\r\n\tpointClass: \"ccs-hotspots-point\",\r\n\tpointActiveClass: \"ccs-hotspots-point-active\",\r\n\tpointSize: 32,\r\n\ttooltipTheme: \"qtip-light qtip-shadow\",\r\n\ttooltipsContainerClass: \"ccs-hotspots-tooltips\",\r\n\ttooltipClass: \"ccs-hotspots-tooltip\",\r\n\tvideoPlayerClass: \"ccs-hotspots-video\",\r\n\r\n\tproductTooltipClass: \"ccs-hotspots-tooltip-product\",\r\n\tproductPriceClass: \"ccs-hotspots-product-price\",\r\n\tproductCartClass: \"ccs-hotspots-product-cart\",\r\n\tcustomCartClass: \"ccs-custom-cart\",\r\n\tloadingClass: \"ccs-loading\"\r\n};\r\n\r\nconst defaultOptions = {\r\n\tevent: \"click\",\r\n\tsize: \"small\",\r\n\ticonSet: \"ccs-hotspots-default\",\r\n\tvideo: {\r\n\t\tautoplay: true\r\n\t}\r\n};\r\n\r\nexport default function (ep, options) {\r\n\tconst $images = ep.find(\".ccs-hotspots-image\");\r\n\r\n\tif (!$images.length || !options.hotspots) {\r\n\t\treturn;\r\n\t}\r\n\r\n\trequire(\"qtip\");\r\n\r\n\t$.fn.qtip.zindex = $.fn.qtip.modal_zindex = 100000; // fancybox\r\n\r\n\tconst $body = $(\"body\");\r\n\tlet $container = $body.find(`.${c.tooltipsContainerClass}`);\r\n\tif ($container.length === 0) {\r\n\t\t$container = $(\"
\")\r\n\t\t\t.addClass(c.tooltipsContainerClass)\r\n\t\t\t.addClass(options.containerClass)\r\n\t\t\t.appendTo($body);\r\n\t}\r\n\r\n\tconst o = buildOptions(options, $container);\r\n\r\n\t$images.each((i, img) => initMainImage(img, o));\r\n}\r\n\r\nfunction buildOptions(options, $container) {\r\n\tconst o = $.extend(true, {}, defaultOptions, options.hotspots);\r\n\r\n\to.video = options.video;\r\n\to.logCall = options.logCall;\r\n\to.$container = $container;\r\n\r\n\to.isMobile = utils.isMobile() && !options.lightbox.disabled;\r\n\r\n\tif (o.isMobile) {\r\n\t\to.event = \"click\";\r\n\t}\r\n\r\n\treturn o;\r\n}\r\n\r\nfunction initMainImage(img, o) {\r\n\tconst $image = $(img);\r\n\r\n\tconst hotspots = $image.data(\"hotspots\");\r\n\tif (hotspots.length === 0) {\r\n\t\tconsole.warn(\"No hotspots data was found\");\r\n\t\treturn;\r\n\t}\r\n\r\n\t$image\r\n\t\t.removeAttr(\"data-hotspots\")\r\n\t\t.wrap($(\"
\")\r\n\t\t\t.addClass(c.rootClass)\r\n\t\t\t.addClass(o.iconSet));\r\n\r\n\tif (o.isMobile) {\r\n\t\tinitMobile($image, o.$container, hotspots);\r\n\t}\r\n\r\n\t$image.one(\"load\", () => {\r\n\t\thotspots.forEach(hotspot => initHotspot($image, hotspot, o));\r\n\t\t$image.trigger(\"hotspotReady\");\r\n\t});\r\n\r\n\tif ($image[0].complete) {\r\n\t\t$image.trigger(\"load\");\r\n\t}\r\n}\r\n\r\nfunction initMobile($img, $container, hotspots) {\r\n\t$container.addClass(c.mobileClass);\r\n\t$img.parent().addClass(c.mobileClass);\r\n\r\n\tfor (let i = 0; i < hotspots.length; i++) {\r\n\t\tconst hotspot = hotspots[i];\r\n\r\n\t\tif (hotspot.type === \"video\" && hotspot.mediaUrl.match(/\\.flv$/)) {\r\n\t\t\thotspot.type = \"image\";\r\n\t\t\thotspot.mediaUrl = hotspot.previewUrl;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction initHotspot($img, hotspot, options) {\r\n\tconst o = options;\r\n\r\n\tconst position = getPosition(hotspot.position, o.isMobile);\r\n\tconst isProduct = !!hotspot.product;\r\n\r\n\tconst closeButtonBlockTime = o.event === \"click\" ? 0 : 500;\r\n\r\n\tconst $closeButton = o.isMobile\r\n\t\t? $(\"\" +\r\n\t\t\t\"\" +\r\n\t\t\t\"\" +\r\n\t\t\t\"\" +\r\n\t\t\t\"\")\r\n\t\t: \"Close\";\r\n\r\n\tlet timer, openTime;\r\n\r\n\t$(\"
\")\r\n\t\t.addClass(c.pointClass)\r\n\t\t.addClass(c.pointClass + \"-\" + hotspot.type)\r\n\t\t.toggleClass(c.productTooltipClass, isProduct)\r\n\t\t.attr(\"tabindex\", 0)\r\n\t\t.css(\"top\", `calc(${hotspot.y * 100}% - ${c.pointSize / 2}px)`)\r\n\t\t.css(\"left\", `calc(${hotspot.x * 100}% - ${c.pointSize / 2}px)`)\r\n\t\t.insertBefore($img)\r\n\t\t.qtip({\r\n\t\t\tprerender: true,\r\n\t\t\tcontent: {\r\n\t\t\t\ttext: buildContent(hotspot, o),\r\n\t\t\t\tbutton: o.event === \"click\" ? $closeButton : false\r\n\t\t\t},\r\n\t\t\tshow: {\r\n\t\t\t\tevent: o.event === \"click\" ? \"click\" : \"mouseenter\",\r\n\t\t\t\tmodal: o.isMobile\r\n\t\t\t},\r\n\t\t\thide: {\r\n\t\t\t\tfixed: true,\r\n\t\t\t\tdelay: o.event === \"click\" ? 0 : 300,\r\n\t\t\t\tevent: o.isMobile\r\n\t\t\t\t\t? false\r\n\t\t\t\t\t: o.event === \"click\" ? \"unfocus\" : \"mouseleave\"\r\n\t\t\t},\r\n\t\t\tstyle: {\r\n\t\t\t\tclasses: c.tooltipTheme + \" \" + c.tooltipClass\r\n\t\t\t},\r\n\t\t\tposition: {\r\n\t\t\t\tmy: position.my,\r\n\t\t\t\tat: position.at,\r\n\t\t\t\teffect: false,\r\n\t\t\t\tcontainer: o.$container,\r\n\t\t\t\tviewport: $(window),\r\n\t\t\t\tadjust: {\r\n\t\t\t\t\tmethod: position.method\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tevents: {\r\n\t\t\t\trender(event, api) {\r\n\t\t\t\t\tapi.tooltip\r\n\t\t\t\t\t\t.addClass(c.tooltipClass + \"-\" + hotspot.type)\r\n\t\t\t\t\t\t.addClass(c.tooltipClass + \"-\" + (hotspot.size || o.size))\r\n\t\t\t\t\t\t.toggleClass(c.productTooltipClass, isProduct)\r\n\t\t\t\t\t\t.attr(\"tabindex\", 0)\r\n\t\t\t\t\t\t.on(\"keydown\", e => {\r\n\t\t\t\t\t\t\tif (e.keyCode === 27) {\r\n\t\t\t\t\t\t\t\tapi.hide();\r\n\t\t\t\t\t\t\t\tapi.elements.target.focus();\r\n\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\tapi.hotspot = hotspot;\r\n\r\n\t\t\t\t\tif (o.isMobile) {\r\n\t\t\t\t\t\trenderMobile(api);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trenderVideo(api, o);\r\n\t\t\t\t\trenderProduct(api, o);\r\n\t\t\t\t},\r\n\t\t\t\tshow(event, api) {\r\n\t\t\t\t\tif (api.tooltip.is(\":visible\")) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst point = api.elements.target;\r\n\r\n\t\t\t\t\tpoint.addClass(c.pointActiveClass).blur();\r\n\r\n\t\t\t\t\tif (o.isMobile) {\r\n\t\t\t\t\t\tshowMobile(api);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttimer = setTimeout(() => {\r\n\t\t\t\t\t\tpoint.off(\"click.show\")\r\n\t\t\t\t\t\t\t.one(\"click.show\", () => api.hide());\r\n\t\t\t\t\t}, closeButtonBlockTime);\r\n\r\n\t\t\t\t\topenTime = new Date();\r\n\r\n\t\t\t\t\tdispatchPopupEvent(o.logCall, $img, api.hotspot, \"popup-open\");\r\n\t\t\t\t},\r\n\t\t\t\tvisible(event, api) {\r\n\t\t\t\t\tapi.tooltip.focus();\r\n\t\t\t\t},\r\n\t\t\t\thide(event, api) {\r\n\t\t\t\t\tapi.elements.target\r\n\t\t\t\t\t\t.removeClass(c.pointActiveClass)\r\n\t\t\t\t\t\t.off(\"click.show\")\r\n\t\t\t\t\t\t.one(\"click.show\", () => api.show());\r\n\r\n\t\t\t\t\tif (o.isMobile) {\r\n\t\t\t\t\t\thideMobile();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tclearTimeout(timer);\r\n\r\n\t\t\t\t\tconst qty = Math.round((new Date() - openTime) / 1000);\r\n\t\t\t\t\tdispatchPopupEvent(o.logCall, $img, api.hotspot, \"popup-close\", qty);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t.keyup(function (event) {\r\n\t\t\tif (event.keyCode === 13) {\r\n\t\t\t\t$(this).qtip(\"show\");\r\n\r\n\t\t\t}\r\n\t\t\tif (event.keyCode === 27) {\r\n\t\t\t\t$(this).qtip(\"hide\");\r\n\t\t\t}\r\n\t\t});\r\n}\r\n\r\nfunction getPosition(position, isMobile) {\r\n\r\n\tif (isMobile) {\r\n\t\treturn {\r\n\t\t\tmy: \"center\",\r\n\t\t\tat: \"center\",\r\n\t\t\tmethod: \"none\"\r\n\t\t};\r\n\t}\r\n\r\n\tswitch (position) {\r\n\r\n\t\tcase \"left\":\r\n\t\t\treturn {\r\n\t\t\t\tmy: \"center right\",\r\n\t\t\t\tat: \"center left\",\r\n\t\t\t\tmethod: \"flip shift\"\r\n\t\t\t};\r\n\r\n\t\tcase \"right\":\r\n\t\t\treturn {\r\n\t\t\t\tmy: \"center left\",\r\n\t\t\t\tat: \"center right\",\r\n\t\t\t\tmethod: \"flip shift\"\r\n\t\t\t};\r\n\r\n\t\tcase \"bottom\":\r\n\t\t\treturn {\r\n\t\t\t\tmy: \"top center\",\r\n\t\t\t\tat: \"bottom center\",\r\n\t\t\t\tmethod: \"shift flip\"\r\n\t\t\t};\r\n\r\n\t\tdefault:\r\n\t\t\treturn {\r\n\t\t\t\tmy: \"bottom center\",\r\n\t\t\t\tat: \"top center\",\r\n\t\t\t\tmethod: \"shift flip\"\r\n\t\t\t};\r\n\t}\r\n}\r\n\r\nfunction dispatchPopupEvent(logCall, $img, hotspot, type, qty) {\r\n\r\n\tconst actionContext = {\r\n\t\ttype: type,\r\n\t\thotspot: {\r\n\t\t\tmainImage: $img.attr(\"src\"),\r\n\t\t\ttype: hotspot.type,\r\n\t\t\tx: +hotspot.x.toFixed(4),\r\n\t\t\ty: +hotspot.y.toFixed(4)\r\n\t\t}\r\n\t};\r\n\r\n\tconst clientParams = utils.makeClientParams($img, \"feature-click\", actionContext);\r\n\r\n\tif (qty !== undefined) {\r\n\t\tclientParams[\"Qty\"] = qty;\r\n\t}\r\n\r\n\tccs_cc_log.dispatchEvent(logCall, clientParams);\r\n}\r\n\r\nfunction buildContent(data, o) {\r\n\tlet $wrap = $(\"
\");\r\n\r\n\t$wrap.append(buildMediaContent(data));\r\n\r\n\tif (data.title) {\r\n\t\t$wrap.append($(\"

\").html(data.title));\r\n\t}\r\n\r\n\tif (data.description) {\r\n\t\t$wrap.append($(\"
\", { html: data.description }));\r\n\t}\r\n\r\n\tif (data.longDescId) {\r\n\t\t$wrap.append($(`
${data.longDescText}
`));\r\n\t}\r\n\r\n\tif (data.product) {\r\n\t\t$wrap = buildProductContent($wrap, data, o);\r\n\t}\r\n\r\n\treturn $wrap;\r\n}\r\n\r\nfunction buildMediaContent(data) {\r\n\tif (!data.mediaUrl) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tvar el = $(\"
\").addClass(c.videoPlayerClass);\r\n\tif (data.type !== \"video\") {\r\n\t\tel = $(\"\", { src: data.mediaUrl, alt: data.altText });\r\n\t\tif (data.longDescId)\r\n\t\t\t$(el).attr(\"longdesc\", `#${data.longDescId}`);\r\n\t}\r\n\r\n\treturn el;\r\n}\r\n\r\nfunction buildProductContent($wrap, data, o) {\r\n\tconst crossSell = o.crossSell;\r\n\tconst price = data.product.price;\r\n\r\n\tconst hideLinkWithPrice = crossSell.showLinkWithPrice && (crossSell.parsingJs || !price || !price.value);\r\n\r\n\tif (!hideLinkWithPrice) {\r\n\t\twrapIntoProductLink($wrap, data, o);\r\n\t}\r\n\r\n\treturn $wrap\r\n\t\t.append(buildProductPrice(data, o))\r\n\t\t.append(buildProductAddToCart(data, o));\r\n}\r\n\r\nfunction wrapIntoProductLink($content, data, o) {\r\n\tif (!data.product.url || !$content.is(\":parent\")) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst $eventTargets = $content.find(\"img, h4\");\r\n\r\n\tconst $span = $(\"\")\r\n\t\t.attr(\"data-logo-productLink\", true)\r\n\t\t.data(\"log-event\", o.logCall)\r\n\t\t.on(\"click\", dispatchConversionEvent);\r\n\r\n\tconst $link = $(\"\")\r\n\t\t.attr(\"href\", data.product.url)\r\n\t\t.attr(\"target\", o.crossSell.target || \"_blank\");\r\n\r\n\t$eventTargets.wrap($span).wrap($link);\r\n}\r\n\r\nfunction buildProductPrice(data, o) {\r\n\tconst price = data.product.price;\r\n\r\n\tif (!price && !o.crossSell.priceFallbackText) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst $block = $(\"
\").addClass(c.productPriceClass);\r\n\r\n\tif (!o.crossSell.parsingJs) {\r\n\t\t$block.text(price.value || o.crossSell.priceFallbackText);\r\n\t}\r\n\r\n\treturn $block;\r\n}\r\n\r\nfunction buildProductAddToCart(data, o) {\r\n\tconst addToCart = data.product.addToCart;\r\n\tif (!addToCart) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst crossSell = o.crossSell;\r\n\tconst price = data.product.price;\r\n\r\n\tconst hideAtcOnInit = crossSell.showAddToCartWithPrice && (crossSell.parsingJs || !price || !price.value);\r\n\r\n\treturn $(\"
\")\r\n\t\t.addClass(c.productCartClass)\r\n\t\t.toggleClass(c.customCartClass, addToCart.isCustom === true)\r\n\t\t.html(addToCart.html)\r\n\t\t.toggle(!hideAtcOnInit)\r\n\t\t.children()\r\n\t\t.data(\"log-event\", o.logCall)\r\n\t\t.on(\"click\", dispatchConversionEvent)\r\n\t\t.parent();\r\n}\r\n\r\nfunction dispatchConversionEvent(e) {\r\n\r\n\tconst $el = $(e.currentTarget);\r\n\tconst qtip = $el.closest(\".qtip\").data(\"qtip\");\r\n\r\n\tlet context = qtip.hotspot.product.logData;\r\n\r\n\tif ($el.data(\"logo-addtocart\")) {\r\n\t\tcontext = JSON.parse(context);\r\n\t\tcontext.type = \"addtocart\";\r\n\t}\r\n\r\n\tutils.dispatchEvent(\r\n\t\t$el.data(\"log-event\"),\r\n\t\tqtip.target,\r\n\t\t\"conversion\",\r\n\t\tcontext);\r\n}\r\n\r\nfunction renderVideo(api, o) {\r\n\tconst hotspot = api.hotspot;\r\n\tif (hotspot.type !== \"video\") {\r\n\t\treturn;\r\n\t}\r\n\r\n\tapi.tooltip\r\n\t\t.toggleClass(c.tooltipClass + \"-video-only\", !hotspot.title && !hotspot.description)\r\n\t\t.one(\"tooltipshow\", () => {\r\n\t\t\tconst $content = api.elements.content;\r\n\t\t\tconst $player = $content.find(`.${c.videoPlayerClass}`);\r\n\t\t\tconst isMobile = o.isMobile;\r\n\r\n\t\t\tconst settings = {\r\n\t\t\t\tfile: api.hotspot.mediaUrl,\r\n\t\t\t\ttranscodedFile: api.hotspot.transcodedUrl,\r\n\t\t\t\tccUrl: api.hotspot.ccUrl,\r\n\t\t\t\tccLang: api.hotspot.ccLang,\r\n\t\t\t\theight: isMobile ? \"100%\" : $content.height(),\r\n\t\t\t\twidth: isMobile ? \"100%\" : $content.width(),\r\n\t\t\t\tplayOnInit: o.autoplayVideo,\r\n\t\t\t\tpluginPath: o.video.pluginPath,\r\n\t\t\t\tdisableCC: o.video.disableCC,\r\n\t\t\t\ttracking: api.target\r\n\t\t\t};\r\n\r\n\t\t\tconst player = api.player = initVideo($player, o.logCall, settings);\r\n\r\n\t\t\tapi.tooltip\r\n\t\t\t\t.on(\"tooltipvisible\", () => o.autoplayVideo && player.play())\r\n\t\t\t\t.on(\"tooltiphide\", () => player.pause());\r\n\t\t});\r\n}\r\n\r\nfunction renderProduct(api, o) {\r\n\tconst hotspot = api.hotspot;\r\n\tif (!hotspot.product) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst $tooltip = api.tooltip;\r\n\r\n\tconst price = hotspot.product.price;\r\n\tconst apiUrl = price && price.apiUrl;\r\n\r\n\tconst crossSell = o.crossSell;\r\n\tconst parsingJs = crossSell && crossSell.parsingJs;\r\n\r\n\tif (apiUrl && parsingJs) {\r\n\t\t$tooltip.one(\"tooltipshow\", () => {\r\n\t\t\tconst $block = $tooltip\r\n\t\t\t\t.find(`.${c.productPriceClass}`)\r\n\t\t\t\t.addClass(c.loadingClass);\r\n\r\n\t\t\tCcsLogoProgram.requestPrice(\r\n\t\t\t\tresponse => {\r\n\t\t\t\t\tif (response.result) {\r\n\t\t\t\t\t\t$block.text(response.result);\r\n\r\n\t\t\t\t\t\t$tooltip.find(`.${c.productCartClass}`).show();\r\n\r\n\t\t\t\t\t\tif (crossSell.showLinkWithPrice) {\r\n\t\t\t\t\t\t\twrapIntoProductLink($tooltip, hotspot, o);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$block.text(crossSell.priceFallbackText);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$block.removeClass(c.loadingClass);\r\n\t\t\t\t\t$tooltip.qtip(\"reposition\");\r\n\t\t\t\t},\r\n\t\t\t\tapiUrl,\r\n\t\t\t\tparsingJs,\r\n\t\t\t\to.logCall,\r\n\t\t\t\tutils.makeClientParams(api.target, \"error\", null, \"Submit\"));\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction renderMobile(api) {\r\n\twindow\r\n\t\t.matchMedia(\"(orientation: portrait)\")\r\n\t\t.addListener(() => {\r\n\t\t\tif (api.tooltip.is(\":visible\")) {\r\n\t\t\t\tif (api.hotspot.type === \"video\" && api.player) {\r\n\t\t\t\t\tconst player = api.player.getPlayer();\r\n\t\t\t\t\tplayer.mejs.exitFullScreen();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tapi.hide();\r\n\t\t\t}\r\n\t\t});\r\n}\r\n\r\nfunction hideMobile() {\r\n\t$(\"body\").removeClass(c.noScrollClass);\r\n}\r\n\r\nfunction showMobile(api) {\r\n\t$(\"body\").addClass(c.noScrollClass);\r\n\r\n\tconst screenSize = getScreenSize();\r\n\r\n\tapi.set(\"position.target\", getScreenCenter(screenSize));\r\n\r\n\tif (api.hotspot.type === \"video\") {\r\n\t\tsetMobileVideoSize(api, screenSize);\r\n\t} else {\r\n\t\tsetMobileDefaultSize(api, screenSize);\r\n\t}\r\n}\r\n\r\nfunction setMobileDefaultSize(api, s) {\r\n\tconst $content = $(api.elements.content);\r\n\tconst closeButton = 36;\r\n\r\n\t$content\r\n\t\t.add($content.find(\"img\"))\r\n\t\t.css({\r\n\t\t\t\"max-width\": s.innerWidth - closeButton / 2 + \"px\",\r\n\t\t\t\"max-height\": s.innerHeight - closeButton / 2 + \"px\"\r\n\t\t});\r\n}\r\n\r\nfunction setMobileVideoSize(api, s) {\r\n\tconst $content = $(api.elements.content);\r\n\tconst h = Math.min((s.width - s.margin) / (16 / 9), s.innerHeight);\r\n\r\n\t$content.css({\r\n\t\t\"max-width\": s.innerWidth + \"px\",\r\n\t\t\"max-height\": s.innerHeight + \"px\"\r\n\t});\r\n\r\n\t$content.find(`.${c.videoPlayerClass}`)\r\n\t\t.css({\r\n\t\t\theight: h + \"px\",\r\n\t\t\twidth: s.innerWidth + \"px\"\r\n\t\t});\r\n\r\n\tif (api.player) {\r\n\t\tapi.player.mejs.resetSize();\r\n\t}\r\n}\r\n\r\nfunction getScreenSize() {\r\n\tconst width = window.innerWidth\r\n\t\t? window.innerWidth\r\n\t\t: document.documentElement.clientWidth\r\n\t\t\t? document.documentElement.clientWidth\r\n\t\t\t: screen.width;\r\n\r\n\tconst height = window.innerHeight\r\n\t\t? window.innerHeight\r\n\t\t: document.documentElement.clientHeight\r\n\t\t\t? document.documentElement.clientHeight\r\n\t\t\t: screen.height;\r\n\r\n\tconst margin = Math.round(Math.min(width, height) * 0.2);\r\n\r\n\treturn {\r\n\t\twidth: width,\r\n\t\theight: height,\r\n\t\tmargin: margin,\r\n\t\tinnerWidth: width - margin,\r\n\t\tinnerHeight: height - margin\r\n\t};\r\n}\r\n\r\nfunction getScreenCenter(screen) {\r\n\tconst $w = $(window);\r\n\treturn [\r\n\t\tscreen.width / 2 + $w.scrollLeft(),\r\n\t\tscreen.height / 2 + $w.scrollTop()\r\n\t];\r\n}\r\n","import $ from \"jquery\";\r\nimport { expand as expandAccordion } from \"./accordion\";\r\n\r\nconst c = {\r\n\tareaSelector: \"div[data-ccs-cc-inline-jumplink]\",\r\n\tanchorIdAttr: \"data-anchor-id\",\r\n\tholderSelector: \"[data-ccs-jumplink-container]\",\r\n\titemClass: \"ccs-cc-inline-jumplink-item\",\r\n\tseparatorClass: \"ccs-cc-inline-jumplink-separator\",\r\n\tcontainerClass: \"ccs-cc-inline-jumplink-container\",\r\n\ttextAttr: \"data-ccs-cc-inline-jumplink\",\r\n\thiddenAttr: \"data-ccs-jumplink-hidden\"\r\n};\r\n\r\nexport default function (ep, options) {\r\n\tconst o = options.jumplinks;\r\n\r\n\tif (!o.enabled) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet jumplinksHtml = o.description;\r\n\r\n\tep.find(c.areaSelector).each(function () {\r\n\t\tconst $jumplinkArea = $(this);\r\n\r\n\t\tconst text = $jumplinkArea.attr(c.textAttr);\r\n\t\tconst anchorId = $jumplinkArea.attr(\"id\");\r\n\r\n\t\tif (!text || !anchorId) return;\r\n\r\n\t\tif (jumplinksHtml !== o.description) {\r\n\t\t\tjumplinksHtml += `|`;\r\n\t\t}\r\n\r\n\t\tjumplinksHtml += $(\"\")\r\n\t\t\t.addClass(c.itemClass)\r\n\t\t\t.attr(\"href\", `#${anchorId}`)\r\n\t\t\t.attr(c.anchorIdAttr, anchorId)\r\n\t\t\t.attr(\"title\", text)\r\n\t\t\t.text(text)\r\n\t\t\t.wrap(\"
\")\r\n\t\t\t.parent()\r\n\t\t\t.html();\r\n\t});\r\n\r\n\tjumplinksHtml = `${jumplinksHtml}`;\r\n\r\n\tep.find(c.areaSelector).each(function () {\r\n\t\tconst $jumplinkArea = $(this);\r\n\r\n\t\tif (!$jumplinkArea.attr(c.hiddenAttr)) {\r\n\t\t\t$jumplinkArea.find(c.holderSelector).append(jumplinksHtml);\r\n\r\n\t\t\tconst anchorId = $jumplinkArea.attr(\"id\");\r\n\t\t\tconst $currentJumplinkItem = $jumplinkArea.find(`a[${c.anchorIdAttr}='${anchorId}']`);\r\n\t\t\t$currentJumplinkItem.prev(`.${c.separatorClass}`).remove();\r\n\t\t\t$currentJumplinkItem.remove();\r\n\t\t}\r\n\t});\r\n\r\n\tep.on(\r\n\t\t\"click\",\r\n\t\t`.${c.itemClass}`,\r\n\t\tfunction (event) {\r\n\t\t\tconst areaSelector = `#${$(event.currentTarget).attr(c.anchorIdAttr)}`;\r\n\t\t\tconst $area = $(areaSelector);\r\n\r\n\t\t\texpandAccordion($area);\r\n\t\t}\r\n\t);\r\n}\r\n","import $ from \"jquery\";\r\nconst c = {\r\n\tspecsArea: \".ccs-cc-inline-specifications\",\r\n\tshowButton: \".ccs-cc-inline-specs-more-btn[data-ccs-cc-inline-specs-show]\",\r\n\thideButton: \".ccs-cc-inline-specs-more-btn[data-ccs-cc-inline-specs-hide]\",\r\n\texpandableSpecs: \"[data-ccs-cc-inline-specs-expandable]\",\r\n\tspecRow: \".ccs-cc-inline-specs-row\"\r\n};\r\n\r\nexport default function (ep) {\r\n\r\n\tconst $specsArea = ep.find(c.specsArea);\r\n\tconst $specsShowButton = $specsArea.find(c.showButton);\r\n\tconst $specsHideButton = $specsArea.find(c.hideButton);\r\n\tconst $expandableSpecs = $specsArea.find(c.expandableSpecs);\r\n\r\n\t$(c.specRow).each(function () {\r\n\t\tvar imgs = $(this).find(\"img\");\r\n\t\timgs.each(function () {\r\n\t\t\tvar fn = $(this).attr(\"src\").split('/').pop().split('.').shift();\r\n\t\t\t$(this).attr(\"alt\", fn);\r\n\t\t})\r\n\t});\r\n\r\n\t$specsHideButton.find(\"a\").click(function () {\r\n\t\t$expandableSpecs.hide(\"fast\");\r\n\t\t$specsShowButton.show();\r\n\t\t$specsHideButton.hide();\r\n\t});\r\n\r\n\t$specsShowButton.find(\"a\").click(function () {\r\n\t\t$expandableSpecs.show(\"fast\");\r\n\t\t$specsShowButton.hide();\r\n\t\t$specsHideButton.show();\r\n\t});\r\n\r\n}","import $ from \"jquery\";\r\nimport require from \"require\";\r\nimport * as utils from \"./utils\";\r\n\r\nconst c = {\r\n\twidth: 480,\r\n\theight: 320,\r\n\tanimate: utils.isMobile(),\r\n\trootSelector: \".ccs-cc-inline\",\r\n\tspinSelector: \".ccs-cc-inline-spritespin-container\",\r\n\tpreloadLayer: \"div[data-preload-layer='true']\",\r\n\tpreloadContainer: \"div[data-preload-container]\",\r\n\ttoolbox: {\r\n\t\tplayPauseBtn: \"span[data-play-pause='true']\",\r\n\t\tdefaultSliderHeight: 50,\r\n\t\tslider: \"div[data-slider-ui=true]\",\r\n\t\tattr: {\r\n\t\t\tslider: \"data-slider-ui\",\r\n\t\t},\r\n\t\tcss: {\r\n\t\t\tplay: \"ccs-cc-inline-video-play-icon\",\r\n\t\t\tpause: \"ccs-cc-inline-video-pause-icon\"\r\n\t\t}\r\n\t},\r\n\tspritespinImageSelector: \".spritespin-stage\"\r\n};\r\n\r\nexport default function setup(options) {\r\n\tconst o = $.extend({}, c, options.spritespin, { logCall: options.logCall });\r\n\r\n\tif (!o.source || !o.source.length) {\r\n\t\treturn;\r\n\t}\r\n\r\n\trequire(\"jqSpitespin\");\r\n\trequire(\"jqSlider\");\r\n\r\n\tconst ep = $(`#${options.inlineContentId}`);\r\n\r\n\tutils.updateOnVisible(ep, null, () => runInitialization(o));\r\n}\r\n\r\nfunction runInitialization(o) {\r\n\r\n\tconst source = o.source;\r\n\r\n\tconst width = o.width;\r\n\tconst height = o.height;\r\n\r\n\tconst $toolbox = $(`#${o.toolboxId}`);\r\n\tconst $rootDiv = $toolbox.closest(c.rootSelector);\r\n\tconst $preloadContainer = $rootDiv.find(o.preloadContainer);\r\n\tconst $playPauseBtn = $toolbox.find(o.toolbox.playPauseBtn);\r\n\r\n\tlet defaultWidth = width;\r\n\tlet defaultHeight = height;\r\n\r\n\tlet resizeTimeout;\r\n\r\n\tcalculateImageDimensions($preloadContainer, source[0], function (calculatedWidth, calculatedHeight) {\r\n\t\tif (defaultWidth > calculatedWidth)\r\n\t\t\tdefaultWidth = calculatedWidth;\r\n\r\n\t\tdefaultHeight = calculateContainerHeight(defaultWidth, calculatedWidth, calculatedHeight);\r\n\r\n\t\t$(window).resize(function () {\r\n\t\t\tresizeTimeout = setTimeout(function () {\r\n\t\t\t\tonWindowResize.call(o, defaultWidth, defaultHeight, $rootDiv, $toolbox, $playPauseBtn);\r\n\t\t\t}, 100);\r\n\t\t});\r\n\r\n\t\tconst api = onWindowResize.call(o, defaultWidth, defaultHeight, $rootDiv, $toolbox, $playPauseBtn, true);\r\n\r\n\t\tdrawHelperTools.call(o, $toolbox, defaultWidth, $playPauseBtn, api);\r\n\t});\r\n}\r\n\r\nfunction calculateImageDimensions($preloadContainer, imgUrl, completeCallback) {\r\n\tconst image = new Image();\r\n\timage.src = imgUrl;\r\n\timage.onload = function () {\r\n\t\tconst calculatedWidth = this.width;\r\n\t\tconst calculatedHeight = this.height;\r\n\r\n\t\tif ($.isFunction(completeCallback))\r\n\t\t\tcompleteCallback(calculatedWidth, calculatedHeight);\r\n\t};\r\n}\r\n\r\nfunction calculateContainerHeight(containerWidth, imageWidth, imageHeight) {\r\n\treturn (containerWidth * imageHeight) / imageWidth;\r\n}\r\n\r\nfunction drawHelperTools($toolbox, width, $playPauseBtn, spriteSpinApi) {\r\n\tconst settings = this;\r\n\r\n\t$toolbox.width(width);\r\n\r\n\t$playPauseBtn.on(\"keydown\", function () {\r\n\t\tif (event.which == 13) {\r\n\t\t\t$(this).click();\r\n\t\t}\r\n\t});\r\n\r\n\t$playPauseBtn.click(function () {\r\n\t\tsettings.animate = changePlayPauseState(\r\n\t\t\t$playPauseBtn,\r\n\t\t\tspriteSpinApi,\r\n\t\t\tsettings.animate,\r\n\t\t\tsettings.toolbox.css.pause);\r\n\r\n\t\tlogChangeState(settings);\r\n\t});\r\n}\r\n\r\nfunction changePlayPauseState($playPauseBtn, api, isPlaying, cssSelector) {\r\n\tif (isPlaying) {\r\n\t\t$playPauseBtn.removeClass(cssSelector);\r\n\t\tapi.stopAnimation();\r\n\t} else {\r\n\t\t$playPauseBtn.addClass(cssSelector);\r\n\t\tapi.startAnimation();\r\n\t}\r\n\r\n\treturn !isPlaying;\r\n}\r\n\r\nfunction resizeToolbox($toolbox, width) {\r\n\t$toolbox.width(width);\r\n}\r\n\r\nfunction initControl(width, height, $toolbox, $playPauseBtn, firstTime) {\r\n\tvar settings = this;\r\n\r\n\tconst id = settings.id;\r\n\tconst source = settings.source;\r\n\tconst animate = settings.animate;\r\n\tconst fps = settings.fps;\r\n\tconst rate = settings.rate;\r\n\tconst altText = settings.altText;\r\n\tconst longDesc = settings.longDesc;\r\n\tconst longDescId = settings.longDescId;\r\n\r\n\tconst $spritespinDiv = $(\"#\" + id);\r\n\tconst $spritespinContainer = $spritespinDiv.parent();\r\n\tlet $slider;\r\n\tconst $preloadDiv = $spritespinContainer.find(settings.preloadLayer);\r\n\t$preloadDiv.width(width);\r\n\t$preloadDiv.height(height + settings.toolbox.defaultSliderHeight);\r\n\r\n\tconst animated = animate;\r\n\tlet api;\r\n\r\n\tvar rateFramesCount = fps * rate;\r\n\tvar rateCounter = 0;\r\n\tconst frameTime = 1000 / fps;\r\n\r\n\t$spritespinContainer.width(width);\r\n\t$spritespinDiv.spritespin({\r\n\t\tanimate: animated,\r\n\t\tsource: source,\r\n\t\tframes: source.length,\r\n\t\tframesX: 1,\r\n\t\tframeTime: frameTime,\r\n\t\trenderer: \"image\",\r\n\t\twidth: width,\r\n\t\theight: height,\r\n\t\treverse: false,\r\n\t\tonLoad: function () {\r\n\r\n\t\t\t$preloadDiv.remove();\r\n\t\t\tapi = $spritespinDiv.spritespin(\"api\");\r\n\t\t\t$slider = $toolbox.find(settings.toolbox.slider);\r\n\r\n\t\t\tif ($slider.length !== 0)\r\n\t\t\t\treturn;\r\n\r\n\t\t\t$slider = $(\"
\");\r\n\t\t\t$slider.attr(settings.toolbox.attr.slider, \"true\");\r\n\r\n\t\t\t$slider.slider({\r\n\t\t\t\tmin: 0,\r\n\t\t\t\tmax: settings.source.length - 1,\r\n\t\t\t\tslide: function (e, ui) {\r\n\t\t\t\t\tif (settings.animate)\r\n\t\t\t\t\t\tsettings.animate = changePlayPauseState(\r\n\t\t\t\t\t\t\t$playPauseBtn,\r\n\t\t\t\t\t\t\tapi,\r\n\t\t\t\t\t\t\tsettings.animate,\r\n\t\t\t\t\t\t\tsettings.toolbox.css.pause);\r\n\r\n\t\t\t\t\trateCounter = 0;\r\n\r\n\t\t\t\t\tapi.updateFrame(ui.value);\r\n\t\t\t\t},\r\n\t\t\t\tstop: function (e, ui) {\r\n\t\t\t\t\tlogRotate(settings, \"slider\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$slider.appendTo($toolbox);\r\n\r\n\t\t\tresizeToolbox($toolbox, width);\r\n\r\n\t\t\t$spritespinDiv.trigger(\"ccsSpinLoad\");\r\n\r\n\t\t\tsetLongDescription($spritespinDiv, longDesc, longDescId);\r\n\t\t},\r\n\t\tonFrame: function (e, data) {\r\n\t\t\tif (rate !== 0) {\r\n\t\t\t\trateCounter++;\r\n\r\n\t\t\t\tif (rateCounter === rateFramesCount) {\r\n\t\t\t\t\trateCounter = 0;\r\n\t\t\t\t\tapi.stopAnimation();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$slider.slider(\"value\", data.frame);\r\n\r\n\t\t\tif (!api.isPlaying()) {\r\n\t\t\t\tsettings.animate = true;\r\n\t\t\t\tsettings.animate = changePlayPauseState(\r\n\t\t\t\t\t$playPauseBtn,\r\n\t\t\t\t\tapi,\r\n\t\t\t\t\tsettings.animate,\r\n\t\t\t\t\tsettings.toolbox.css.pause);\r\n\t\t\t}\r\n\t\t},\r\n\t\tonDraw: function () {\r\n\t\t\tsetImageData($spritespinDiv, altText, longDescId);\r\n\t\t}\r\n\t});\r\n\r\n\t$spritespinDiv.trigger(\"ccsSpinResize\");\r\n\r\n\tapi = $spritespinDiv.spritespin(\"api\");\r\n\r\n\tif (!firstTime)\r\n\t\treturn api;\r\n\r\n\tvar playTrigger = false,\r\n\t\tmousedown = false;\r\n\r\n\t$spritespinDiv.on(\"mousedown touchstart\", function () {\r\n\t\tplayTrigger = true;\r\n\t\tmousedown = true;\r\n\r\n\t\tsetTimeout(function () {\r\n\t\t\tplayTrigger = false;\r\n\t\t}, 200);\r\n\t});\r\n\r\n\t$spritespinDiv.on(\"mouseup touchend\", function (e) {\r\n\r\n\t\tif (playTrigger) {\r\n\t\t\tsettings.animate = changePlayPauseState(\r\n\t\t\t\t$playPauseBtn,\r\n\t\t\t\tapi,\r\n\t\t\t\tsettings.animate,\r\n\t\t\t\tsettings.toolbox.css.pause);\r\n\t\t\tplayTrigger = false;\r\n\r\n\t\t\tlogChangeState(settings);\r\n\t\t} else {\r\n\t\t\tif (mousedown) {\r\n\t\t\t\tlogRotate(settings, \"drag\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tmousedown = false;\r\n\t});\r\n\r\n\t$spritespinDiv.on(\"mouseleave\", function (e) {\r\n\t\tif (e.buttons !== 0 && mousedown) {\r\n\t\t\tlogRotate(settings, \"drag\");\r\n\t\t}\r\n\r\n\t\tmousedown = false;\r\n\t});\r\n\r\n\treturn api;\r\n}\r\n\r\nfunction setImageData($spritespinDiv, altText, longDescId) {\r\n\tconst $spriteDiv = $spritespinDiv.find(c.spritespinImageSelector);\r\n\tconst $sprite = $spriteDiv.find(\"img\");\r\n\t$sprite.each(function (index) {\r\n\t\t$(this).attr(\"alt\", `${altText} ${index + 1}`);\r\n\r\n\t\tif (longDescId) {\r\n\t\t\t$(this).attr(\"longdesc\", longDescId);\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction setLongDescription($spritespinDiv, longDesc, longDescId) {\r\n\tif (longDesc) {\r\n\t\tvar $longDesc = $(`
${longDesc}
`);\r\n\r\n\t\t$spritespinDiv.find(c.spritespinImageSelector).append($longDesc);\r\n\t}\r\n}\r\n\r\nfunction onWindowResize(width, height, $rootContainer, $toolbox, $playPauseBtn, firstTime) {\r\n\tconst settings = this;\r\n\r\n\tlet widthToSet;\r\n\tlet heightToSet;\r\n\tif ($rootContainer.width() < width) {\r\n\t\theightToSet = Math.floor($rootContainer.width() * height / width);\r\n\t\twidthToSet = $rootContainer.width();\r\n\t} else {\r\n\t\twidthToSet = width;\r\n\t\theightToSet = height;\r\n\t}\r\n\r\n\tconst api = initControl.call(settings, widthToSet, heightToSet, $toolbox, $playPauseBtn, firstTime);\r\n\tresizeToolbox($toolbox, widthToSet);\r\n\r\n\treturn api;\r\n}\r\n\r\nfunction logChangeState(settings) {\r\n\tconst context = { type: settings.animate ? \"play\" : \"stop\" };\r\n\tlogEvent(settings, context);\r\n}\r\n\r\nfunction logRotate(settings, type) {\r\n\tconst context = { type: type };\r\n\tlogEvent(settings, context);\r\n}\r\n\r\nfunction logEvent(settings, context) {\r\n\tutils.dispatchEvent(\r\n\t\tsettings.logCall,\r\n\t\t`#${settings.toolboxId}`,\r\n\t\t\"feature-click\",\r\n\t\tcontext\r\n\t);\r\n}","import $ from \"jquery\";\r\nimport * as utils from \"./utils\";\r\nimport \"Fancybox\";\r\n\r\nconst c = {\r\n\tarSectionSelector: \".ccs-cc-inline-augmentedreality\",\r\n\tarFancyBoxContent: \".ccs-inline-ar-fancybox-content\",\r\n\tqrLightboxDisplayMode: \"lightbox\",\r\n\tqrNoneDisplayMode: \"none\"\r\n};\r\n\r\nvar animationList = null;\r\n\r\nexport default function (ep, options) {\r\n\tconst $container = ep.find(c.arSectionSelector);\r\n\r\n\t// in browser without customElements remove block\r\n\tif (!window.customElements) {\r\n\t\t$container.remove();\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst $thumbnailCnt = $container.find(\".ccs-inline-ar-thumbnail-cnt\");\r\n\tconst $viewerCnt = $container.find(\".ccs-inline-ar-viewer-cnt\");\r\n\tconst $qrCode = $container.find(\".ccs-inline-ar-qr-code\");\r\n\tconst $qrCodeButtonBlock = $container.find(\".ccs-inline-ar-qr-button\");\r\n\tconst $arBlock = $container.find(\".ccs-inline-ar-block \");\r\n\r\n\tif (options.augmentedReality.autoLoad) {\r\n\t\tloadModelViewer();\r\n\t}\r\n\r\n\t$thumbnailCnt.on(\"keydown\", function (event) {\r\n\t\tif (event.which == 13) {\r\n\t\t\t$(this).click();\r\n\t\t}\r\n\t});\r\n\r\n\t$thumbnailCnt.on(\"click\",\r\n\t\t() => {\r\n\t\t\tif (options.augmentedReality.launchInLightbox) {\r\n\t\t\t\tvar qrCodeScript = \"\";\r\n\t\t\t\tif (isQrCodeVisible()) {\r\n\t\t\t\t\tqrCodeScript = `
${$qrCode.html()}
`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar dataElementId = $viewerCnt.closest(\"[data-elementid]\").attr(\"data-elementid\");\r\n\t\t\t\tvar elementContext = $viewerCnt.closest(\"[data-context]\").attr(\"data-context\");\r\n\t\t\t\tvar config = {\r\n\t\t\t\t\tcontent: `
${$viewerCnt.find(\"script\").text()}${qrCodeScript}
`,\r\n\t\t\t\t\ttype: \"html\",\r\n\t\t\t\t\tbaseClass: \"ccs-cc-inline\",\r\n\t\t\t\t\tsmallBtn: false,\r\n\t\t\t\t\ttouch: false,\r\n\t\t\t\t\tafterLoad: function (instance, fbContent) {\r\n\t\t\t\t\t\tconst $viewer = fbContent.$content.find(\"ccs-model-viewer\");\r\n\t\t\t\t\t\tsetViewerHandler($viewer);\r\n\t\t\t\t\t\tajustLightBoxSize();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t$.fancybox.open(config);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tloadModelViewer();\r\n\t\t});\r\n\r\n\r\n\tif (options.augmentedReality.autoLaunchAr) {\r\n\t\tloadModelViewer();\r\n\r\n\t\tconst $viewer = $viewerCnt.find(\"ccs-model-viewer\");\r\n\t\t$viewer.on(\"load\",\r\n\t\t\tfunction () {\r\n\t\t\t\tthis.activateAR();\r\n\t\t\t\tthis.shadowRoot.querySelector(\"#default-ar-button\").click();\r\n\t\t\t});\r\n\t} else {\r\n\t\tshowQrCode();\r\n\t}\r\n\r\n\tfunction getErrorMessage(error) {\r\n\t\treturn error && error.originalEvent\r\n\t\t\t? {\r\n\t\t\t\tmessage: error.originalEvent.detail.message,\r\n\t\t\t\ttype: error.originalEvent.detail.type\r\n\t\t\t}\r\n\t\t\t: undefined;\r\n\t}\r\n\r\n\tfunction loadModelViewer() {\r\n\t\t$thumbnailCnt.hide();\r\n\t\t$viewerCnt.show();\r\n\r\n\t\t$viewerCnt.html($viewerCnt.find(\"script\").text());\r\n\t\tconst $viewer = $viewerCnt.find(\"ccs-model-viewer\");\r\n\t\tsetViewerHandler($viewer);\r\n\t}\r\n\r\n\tfunction setViewerHandler($viewer) {\r\n\t\t$viewer.on(\"error\", error => {\r\n\t\t\tutils.dispatchEvent(options.logCall, $viewer, \"error\", getErrorMessage(error), \"Submit\");\r\n\t\t});\r\n\r\n\t\t$viewer.on(\"ar-status\", event => {\r\n\t\t\tif (event.detail.status === \"not-presenting\") {\r\n\t\t\t\t$viewer.attr(\"ar-modes\", $viewer.attr(\"ar-modes\").replace(\"webxr\").trim());\r\n\t\t\t\t$viewer[0].activateAR();\r\n\t\t\t}\r\n\t\t\tif (event.detail.status === \"failed\") {\r\n\t\t\t\tvar $error = $viewer.find(\".ccs-inline-ar-error\");\r\n\t\t\t\t$error.removeClass('ccs-inline-ar-error-hide');\r\n\t\t\t\tvar $close = $viewer.find(\".ccs-inline-ar-error-close\");\r\n\t\t\t\t$close.on(\"click\", function () {\r\n\t\t\t\t\t$error.addClass('ccs-inline-ar-error-hide');\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t\tutils.dispatchEvent(options.logCall, $viewer, \"ar-status\", { type: event.detail.status });\r\n\t\t});\r\n\r\n\t\tutils.dispatchEvent(options.logCall, $viewer, \"feature-click\", { type: \"play\" });\r\n\r\n\t\tloadAnimation($viewer);\r\n\t}\r\n\r\n\tfunction loadAnimation(viewer) {\r\n\t\tif (options.augmentedReality.animation == null)\r\n\t\t\treturn;\r\n\r\n\t\t// launch animation first time\r\n\t\tvar playEvent = options.augmentedReality.animation.playEvent;\r\n\t\tanimationList = options.augmentedReality.animation.animationNameList;\r\n\t\tif (playEvent === 'Click') {\r\n\t\t\tviewer.one('click',\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\tsetAnimationName(viewer);\r\n\t\t\t\t\tviewer[0].play();\r\n\t\t\t\t\tsetChangeAnimationEvent(viewer);\r\n\t\t\t\t\tutils.dispatchEvent(options.logCall, viewer, \"feature-click\", { type: \"animationStart\" });\r\n\t\t\t\t});\r\n\t\t} else if (playEvent === 'DoubleClick') {\r\n\t\t\tviewer.one('dblclick',\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\tsetAnimationName(viewer);\r\n\t\t\t\t\tviewer[0].play();\r\n\t\t\t\t\tsetChangeAnimationEvent(viewer);\r\n\t\t\t\t\tutils.dispatchEvent(options.logCall, viewer, \"feature-click\", { type: \"animationStart\" });\r\n\t\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar delay = options.augmentedReality.animation.delay;\r\n\t\t\tif (delay != null) {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tlaunchAutoplayAnimation(viewer);\r\n\t\t\t\t}, delay);\r\n\t\t\t} else {\r\n\t\t\t\tlaunchAutoplayAnimation(viewer);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setChangeAnimationEvent(viewer) {\r\n\t\tvar changeEvent = options.augmentedReality.animation.changeEvent;\r\n\t\tif (changeEvent == 'Action') {\r\n\t\t\tviewer.on('click',\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\tsetAnimationName(viewer);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar delay = options.augmentedReality.animation.delay;\r\n\t\t\tif (delay != null) {\r\n\t\t\t\tsetInterval(function () {\r\n\t\t\t\t\tsetAnimationName(viewer);\r\n\t\t\t\t}, delay);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction setAnimationName(viewer) {\r\n\t\tif (animationList == null || animationList.length === 0) {\r\n\t\t\tanimationList = viewer[0].availableAnimations;\r\n\t\t}\r\n\r\n\t\tif (!viewer.attr('animation-name')) {\r\n\t\t\tviewer.attr('animation-name', animationList[0]);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar currentAnimationNameIndex = animationList.indexOf(viewer.attr('animation-name'));\r\n\t\tvar newAnimationName = currentAnimationNameIndex == animationList.length - 1\r\n\t\t\t? options.augmentedReality.animation.repeat === true ? animationList[0] : null\r\n\t\t\t: animationList[currentAnimationNameIndex + 1];\r\n\r\n\t\tif (newAnimationName != null)\r\n\t\t\tviewer.attr('animation-name', newAnimationName);\r\n\t\telse {\r\n\t\t\tviewer[0].pause();\r\n\t\t\tviewer[0].currentTime = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction launchAutoplayAnimation(viewer) {\r\n\t\tsetAnimationName(viewer);\r\n\t\tviewer.attr(\"autoplay\", true);\r\n\t\tsetChangeAnimationEvent(viewer);\r\n\t}\r\n\r\n\tfunction ajustLightBoxSize() {\r\n\t\tvar arSize = calculateViewerSize();\r\n\r\n\t\tif (isQrCodeVisible()) {\r\n\t\t\tvar qrWidth = $qrCode.width() / window.innerWidth * 100;\r\n\r\n\t\t\tif (qrWidth > arSize.width) {\r\n\t\t\t\tarSize.width = qrWidth;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$(c.arFancyBoxContent)\r\n\t\t\t.css(\"width\", `${arSize.width}vw`);\r\n\r\n\t\tconst $viewer = $(c.arFancyBoxContent).find(\".ccs-inline-ar-viewer\");\r\n\t\t$viewer.css(\"height\", `${arSize.height}vh`).css(\"margin\", \"auto\");\r\n\t}\r\n\r\n\tfunction getDefaultAspectRatio() {\r\n\t\treturn window.innerWidth / window.innerHeight;\r\n\t}\r\n\r\n\tfunction calculateViewerSize() {\r\n\t\tvar mobile = navigator.maxTouchPoints && navigator.maxTouchPoints > 0;\r\n\t\tvar ar = options.augmentedReality.aspectRatio == undefined\r\n\t\t\t|| options.augmentedReality.aspectRatio == 0\r\n\t\t\t? getDefaultAspectRatio() : options.augmentedReality.aspectRatio;\r\n\r\n\t\tvar height = $arBlock.height() / window.innerHeight * 100;\r\n\t\tvar width = height / ar;\r\n\r\n\t\tif (mobile && window.innerWidth > window.innerHeight ) {\r\n\t\t\treturn { width: width, height: getSize(window.innerHeight)};\r\n\t\t}\r\n\r\n\t\tif (mobile) {\r\n\t\t\treturn { width: getSize(window.innerWidth), height: height };\r\n\t\t}\r\n\t\treturn { width: width, height: height };\r\n\t}\r\n\r\n\tfunction getSize(s) {\r\n\t\treturn s > 600 ? 80 : 100;\r\n\t}\r\n\r\n\tif (navigator.maxTouchPoints && navigator.maxTouchPoints > 0) {\r\n\t\twindow.addEventListener(\"resize\", ajustLightBoxSize);\r\n\t}\r\n\r\n\tfunction showQrCode() {\r\n\t\tif (!isQrCodeVisible())\r\n\t\t\treturn;\r\n\r\n\t\tif (options.augmentedReality.qrDisplayMode === c.qrLightboxDisplayMode && !options.augmentedReality.launchInLightbox) {\r\n\t\t\t$qrCodeButtonBlock.show();\r\n\t\t\t$qrCodeButtonBlock.on(\"click\",\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\tvar config = {\r\n\t\t\t\t\t\tcontent: `
${$qrCode.html()}
`,\r\n\t\t\t\t\t\ttype: \"html\",\r\n\t\t\t\t\t\tbaseClass: \"ccs-cc-inline\",\r\n\t\t\t\t\t\tsmallBtn: false,\r\n\t\t\t\t\t\ttouch: false\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$.fancybox.open(config);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\t$qrCode.show();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction isQrCodeVisible() {\r\n\t\treturn options.augmentedReality.qrDisplayMode !== c.qrNoneDisplayMode && !ccs_util.isMobile();\r\n\t}\r\n}","import \"slick\";\r\n\r\nimport $ from \"jquery\";\r\nimport { ensureStyles } from \"../utils\";\r\n\r\nconst c = {\r\n\trootSelector: \".ccs-cc-inline-capacitychart\",\r\n\tcontainerSelector: \".ccs-cc-inline-capacitychart-container\",\r\n\tcontentSelector: \".ccs-cc-inline-acc-content\",\r\n\tensureStyleLoaded: \".ccs-cc-inline-ensure-style-loaded\",\r\n\twidthBoundaryMedium: 570,\r\n\twidthBoundaryWide: 680\r\n};\r\n\r\nlet currentColumnCount;\r\n\r\nexport default function init($ep, options) {\r\n\tconst $chart = $ep.find(c.rootSelector);\r\n\r\n\tif (!$chart.length)\r\n\t\treturn;\r\n\r\n\tif ($chart.is(\":visible\") && ensureStyles($ep)) {\r\n\t\tinitImpl($chart, options);\r\n\t} else {\r\n\t\tsetTimeout(function () { init($ep, options); }, 300);\r\n\t}\r\n}\r\n\r\nfunction initImpl($chart, options) {\r\n\tconst $container = $chart.find(c.containerSelector);\r\n\r\n\tconst isRtl = options.isRtl;\r\n\r\n\t$container.ccsSlick({\r\n\t\tinfinite: false,\r\n\t\tdots: false,\r\n\t\tslidesToScroll: 1,\r\n\t\tspeed: 100,\r\n\t\trtl: isRtl,\r\n\t\tswipeToSlide: !isRtl\r\n\t});\r\n\r\n\tconst slick = $container.ccsSlick(\"getSlick\");\r\n\r\n\t$(window).on(\"resize\", function () {\r\n\t\trefreshSlick($chart, $container, slick);\r\n\t});\r\n\r\n\tlet $chartContent = $chart.find(c.contentSelector);\r\n\r\n\tif ($chartContent.length === 0) {\r\n\t\t$chartContent = $chart;\r\n\t}\r\n\r\n\tconst isVisible = function () {\r\n\t\tif ($chartContent.is(\":visible\")) {\r\n\t\t\trefreshSlick($chart, $container, slick);\r\n\t\t} else {\r\n\t\t\tsetTimeout(isVisible, 300);\r\n\t\t}\r\n\t};\r\n\r\n\tsetTimeout(isVisible, 100);\r\n}\r\n\r\nfunction refreshSlick($chart, $container, slick) {\r\n\tconst targetColumnCount = getTargetColumnCount($chart.outerWidth(true));\r\n\tif (targetColumnCount === currentColumnCount) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tcurrentColumnCount = targetColumnCount;\r\n\r\n\tlet columnCount = $container.data(\"columns-count\");\r\n\tif (!columnCount) {\r\n\t\tcolumnCount = Number.POSITIVE_INFINITY;\r\n\t}\r\n\r\n\t// Delayed update since IE sometimes picks width of pre-resized container.\r\n\tsetTimeout(function () {\r\n\t\tconst count = Math.min(targetColumnCount, columnCount);\r\n\t\tslick.slickSetOption(\"slidesToShow\", count, true);\r\n\t\t$container.toggleClass(\"ccs-slick-slider-arrows\", count < slick.slideCount);\r\n\t}, 50);\r\n}\r\n\r\nfunction getTargetColumnCount(width) {\r\n\tif (width <= c.widthBoundaryMedium) {\r\n\t\treturn 3;\r\n\t}\r\n\r\n\tif (width <= c.widthBoundaryWide) {\r\n\t\treturn 4;\r\n\t}\r\n\r\n\treturn 5;\r\n}\r\n","import $ from \"jquery\";\r\nimport { isMobile } from \"../utils\";\r\n\r\nconst c = {\r\n\trootSelector: \".ccs-cc-inline-rangechart\",\r\n\ttabSelector: \".ccs-cc-inline-rangechart-section-title\",\r\n\tsectionActiveClass: \"ccs-rangechart-section-active\",\r\n\tcontentsSelector: \".ccs-cc-inline-rangechart-section-content\"\r\n};\r\n\r\nexport default function init(ep) {\r\n\tconst $chart = ep.find(c.rootSelector);\r\n\r\n\tif (!$chart.length) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t$chart.on(\"click\", c.tabSelector, function () {\r\n\t\t$(this).closest(\"[data-section-id]\").toggleClass(c.sectionActiveClass);\r\n\t});\r\n\r\n\tif (isMobile()) {\r\n\t\t$chart.on(\"click\", c.tabSelector, function () {\r\n\t\t\tconst $el = $(this).closest(\"[data-section-id]\");\r\n\r\n\t\t\treturnScrollToTitle($el);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction returnScrollToTitle($el) {\r\n\t$(\"html, body\").animate({\r\n\t\tscrollTop: $el.offset().top\r\n\t}, 500);\r\n}\r\n","import $ from \"jquery\";\r\nimport { dispatchEvent } from \"./utils\";\r\n\r\nexport default function (ep, options) {\r\n\r\n\tconst $container = ep.find('.ccs-logo-windows11-body');\r\n\r\n\tif (!$container.length) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst $disclaimerSection = ep.find('.ccs-logo-windows11-disclaimer-body-mobile');\r\n\r\n\tfunction updateNavIndicatorPosition() {\r\n\t\tvar $slider = $container.find('.ccs-logo-windows11-slider');\r\n\t\tvar $selectedTab = $container.find('.ccs-logo-windows11-nav-link[aria-selected=\"true\"]');\r\n\t\tvar position = $selectedTab.position().left + ($selectedTab.width() / 2) - ($slider.width() / 2);\r\n\t\t$slider.css({ 'transform': 'translateX(' + position + 'px)' });\r\n\t}\r\n\r\n\tfunction resize() {\r\n\t\tupdateNavIndicatorPosition();\r\n\t\t$container.toggleClass(\"ccs-logo-windows11-mobile\", $container.width() <= 669);\r\n\t\t$container.toggleClass(\"ccs-logo-windows11-logodesktop\", $container.width() > 669 && $container.width() <= 795);\r\n\t\t$container.toggleClass(\"ccs-logo-windows11-desktop\", $container.width() > 795);\r\n\t\t$container.toggleClass(\"ccs-logo-windows11-small\", $container.width() < 230);\r\n\r\n\t\t// Update disclaimer position for tablets\r\n\t\t$('.ccs-logo-windows11-disclaimer-body').toggleClass('ccs-logo-windows11-medium', $container.width() > 669 && $container.width() <= 900);\r\n\t}\r\n\r\n\t/* Used remove class instead of toggle as it works better in window resize */\r\n\t$(window).on('load resize', function () {\r\n\t\tresize();\r\n\t});\r\n\r\n\t/* Nav menu tabs */\r\n\tconst $tabContainer = $container.find('.ccs-logo-windows11-nav-select [role=\"tab\"]');\r\n\tconst $mobileNav = $container.find('.ccs-logo-windows11-mobile-nav');\r\n\tvar animatingTimeout = false;\r\n\t$tabContainer.click(function (e) {\r\n\t\tvar $clickedTab = $(this);\r\n\t\tvar $tablist = $clickedTab.closest('[role=\"tablist\"]');\r\n\t\tvar $tabs = $tablist.find('[role=\"tab\"]');\r\n\t\tvar $panels = $($tabs.map(function (i, e) { return document.getElementById($(e).attr('aria-controls')) }));\r\n\t\t$tabs.attr('aria-selected', 'false');\r\n\t\t$panels.addClass(\"ccs-logo-windows11-panel-hide\");\r\n\t\t$panels.removeClass(\"ccs-logo-windows11-panel-show\");\r\n\r\n\t\t$clickedTab.attr('aria-selected', 'true');\r\n\t\t$(document.getElementById($clickedTab.attr('aria-controls'))).addClass(\"ccs-logo-windows11-panel-show\");\r\n\t\t$(document.getElementById($clickedTab.attr('aria-controls'))).removeClass(\"ccs-logo-windows11-panel-hide\");\r\n\r\n\t\t$disclaimerSection.removeClass('ccs-logo-windows11-show');\r\n\t\t$mobileNav.text($clickedTab.text());\r\n\r\n\t\tsetTimeout(function () {\r\n\t\t\t$('.ccs-logo-windows11-panel-show').find('.ccs-logo-windows11-hotspot').first().focus();\r\n\t\t}, 500);\r\n\r\n\t\t// animated status bar transition\r\n\t\t$tablist.addClass('ccs-logo-windows11-slider-animating');\r\n\t\tupdateNavIndicatorPosition();\r\n\t\tif (animatingTimeout) { clearTimeout(animatingTimeout); }\r\n\t\tanimatingTimeout = setTimeout(function () {\r\n\t\t\t$tablist.removeClass('ccs-logo-windows11-slider-animating');\r\n\t\t}, 500);\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tconst context = {\r\n\t\t\ttype: $clickedTab.text() + \" tab select\"\r\n\t\t};\r\n\r\n\t\tdispatchEvent(options.logCall, e.target, \"feature-click\", context);\r\n\t});\r\n\r\n\t/* Add Movile Nav Drawer */\r\n\tconst $navContainer = $container.find('.ccs-logo-windows11-nav-div');\r\n\tconst $link = $navContainer.find('.ccs-logo-windows11-nav-link');\r\n\r\n\t$mobileNav.click(function () {\r\n\t\t$mobileNav.toggleClass('ccs-logo-windows11-active');\r\n\t\t$navContainer.toggleClass('ccs-logo-windows11-nav-div-show');\r\n\t});\r\n\r\n\t$link.click(function () {\r\n\t\t$mobileNav.toggleClass('ccs-logo-windows11-active');\r\n\t\t$navContainer.removeClass('ccs-logo-windows11-nav-div-show');\r\n\t});\r\n\r\n\t/* Disclaimer */\r\n\tconst $disclaimer = $container.find('.ccs-logo-windows11-nav-expand');\r\n\t$disclaimer.click(function () {\r\n\t\t$('.ccs-logo-windows11-nav').toggleClass('ccs-logo-windows11-open');\r\n\t\t$('.ccs-logo-windows11-nav-select').toggleClass('ccs-logo-windows11-hide');\r\n\t\t$('.ccs-logo-windows11-nav-expand button.ccs-logo-windows11-closeBtn').toggleClass('ccs-logo-windows11-hide');\r\n\t\t$('.ccs-logo-windows11-disclaimer-body').toggleClass('ccs-logo-windows11-show');\r\n\t\t$('#ccs-logo-windows11-nav-disclaimer').toggleClass('ccs-logo-windows11-hide');\r\n\r\n\t\tconst context = {\r\n\t\t\ttype: $('.ccs-logo-windows11-disclaimer-body.ccs-logo-windows11-show').length > 0 ? \"open disclaimer\" : \"close disclaimer\",\r\n\t\t};\r\n\r\n\t\tdispatchEvent(options.logCall, $disclaimerSection, \"feature-click\", context);\r\n\r\n\t\tsetTimeout(function () {\r\n\t\t\t$('section.ccs-logo-windows11-sectionblur').toggleClass('ccs-logo-windows11-blur');\r\n\t\t}, 200);\r\n\r\n\t});\r\n\t/* Disclaimer - Mobile */\r\n\tconst $disclaimerMobile = $container.find('.ccs-logo-windows11-mobile-disclaimer');\r\n\t$disclaimerMobile.click(function () {\r\n\t\t$disclaimerSection.toggleClass('ccs-logo-windows11-show');\r\n\t});\r\n\r\n\r\n\t/* Hotspots */\r\n\tconst $hotspots = ep.find('.ccs-logo-windows11-hotspot');\r\n\t$hotspots.each(function () {\r\n\t\tvar $hotspot = $(this);\r\n\t\tvar $modal = $(document.getElementById($hotspot.attr('aria-controls')));\r\n\r\n\t\t$hotspot.click(function (e) {\r\n\t\t\t$hotspot.attr(\"aria-pressed\", \"true\");\r\n\t\t\t$modal.attr(\"aria-hidden\", \"false\")\r\n\t\t\t\t.attr(\"aria-modal\", \"true\")\r\n\t\t\t\t.addClass(\"ccs-logo-windows11-active\");\r\n\t\t\ttoggleBlur();\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tdocument.activeElement.blur();\r\n\t\t\t\t$modal.find('.ccs-logo-windows11-closeBtn').focus();\r\n\t\t\t}, 500);\r\n\r\n\t\t\tif ($('.ccs-logo-windows11-card-image').hasClass('ccs-logo-windows11-play-video')) {\r\n\t\t\t\tvar $video = $modal.find('.ccs-logo-windows11-vid');\r\n\t\t\t\tif ($video.length > 0) {\r\n\t\t\t\t\t$video[0].play();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\te.preventDefault();\r\n\t\t\tintializeVideo($modal);\r\n\r\n\t\t\tconst context = {\r\n\t\t\t\ttype: \"open hotspot \" + e.target.textContent\r\n\t\t\t}\r\n\t\t\tdispatchEvent(options.logCall, e.target, \"feature-click\", context);\r\n\r\n\t\t});\r\n\r\n\t\t$modal.find('.ccs-logo-windows11-closeBtn, .ccs-logo-windows11-modal-bg').click(function (e) {\r\n\t\t\t$hotspot.attr(\"aria-pressed\", \"false\");\r\n\t\t\t$modal.attr(\"aria-hidden\", \"true\")\r\n\t\t\t\t.attr(\"aria-modal\", \"false\")\r\n\t\t\t\t.removeClass(\"ccs-logo-windows11-active\");\r\n\t\t\ttoggleBlur();\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$hotspot.attr(\"aria-pressed\", \"false\").focus();\r\n\t\t\t}, 500);\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tstopVideo($modal);\r\n\r\n\t\t\tconst context = {\r\n\t\t\t\ttype: \"close hotspot\"\r\n\t\t\t}\r\n\r\n\t\t\tdispatchEvent(options.logCall, e.target, \"feature-click\", context);\r\n\t\t});\r\n\r\n\t});\r\n\r\n\tfunction intializeVideo($modal) {\r\n\t\tconst $videoContainer = $modal.find('.ccs-logo-windows11-video');\r\n\r\n\t\tif ($videoContainer.length === 0)\r\n\t\t\treturn;\r\n\r\n\t\tvar $player = $videoContainer.ccsVideoPlayer(\"getPlayer\");\r\n\r\n\t\tif ($player === null) {\r\n\r\n\t\t\tvar settings = {\r\n\t\t\t\tfile: $videoContainer.data(\"video-url\"),\r\n\t\t\t\timage: $videoContainer.data(\"video-thumbnail-url\"),\r\n\t\t\t\ttranscodedFile: $videoContainer.data(\"video-transcoded-url\"),\r\n\t\t\t\twidth: \"100%\",\r\n\t\t\t\tplayOnInit: options.features.autoPlayVideoInViewPort,\r\n\t\t\t\tmute: false,\r\n\t\t\t\tvolume: 80,\r\n\t\t\t\tpluginPath: options.video.pluginPath,\r\n\t\t\t\ttracking: {\r\n\t\t\t\t\tlogCall: options.logCall\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tsettings = $.extend(settings, { height: $videoContainer.height() });\r\n\r\n\t\t\t$player = $videoContainer.ccsVideoPlayer(settings);\r\n\r\n\t\t\tif (options.features.autoPlayVideoInViewPort) {\r\n\t\t\t\t// auto replay video if auto play is enabled\r\n\t\t\t\t$player.mejs.media.addEventListener('ended',\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t$player.setCurrentTime(0);\r\n\t\t\t\t\t\t$player.play();\r\n\t\t\t\t\t\t$player.hideControls();\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (options.features.autoPlayVideoInViewPort) {\r\n\t\t\t$player.setCurrentTime(0);\r\n\t\t\t$player.play();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction stopVideo($modal) {\r\n\t\tconst $videoContainer = $modal.find('.ccs-logo-windows11-video');\r\n\r\n\t\tif ($videoContainer.length === 0)\r\n\t\t\treturn;\r\n\r\n\t\tvar $player = $videoContainer.ccsVideoPlayer(\"getPlayer\");\r\n\r\n\t\tif ($player !== null) {\r\n\t\t\t$player.pause();\r\n\t\t}\r\n\t}\r\n\r\n\t/* Blur background toggle */\r\n\tfunction toggleBlur() {\r\n\t\tvar sectionBlur = document.querySelectorAll('section.ccs-logo-windows11-sectionblur');\r\n\t\tfor (var i = 0; i < sectionBlur.length; i++) {\r\n\t\t\tsectionBlur[i].classList.toggle('ccs-logo-windows11-active');\r\n\t\t}\r\n\t\tvar navBlur = document.querySelector('nav.ccs-logo-windows11-navblur');\r\n\t\tnavBlur.classList.toggle('ccs-logo-windows11-active');\r\n\t};\r\n\r\n\tresize();\r\n}\r\n","import $ from \"jquery\";\r\nimport \"ElementQueries\";\r\n\r\nimport bazaar from \"./bazaar\";\r\nimport comparisontable from \"./comparisontable\";\r\nimport compatibleitems from \"./compatibleitems\";\r\nimport faq from \"./faq\";\r\nimport features from \"./features\";\r\nimport footnotes from \"./footnotes\";\r\nimport gallery from \"./gallery\";\r\nimport hotspots from \"./hotspots\";\r\nimport jumplinks from \"./jumplinks\";\r\nimport specs from \"./specs\";\r\nimport spin from \"./spin\";\r\nimport augmentedreality from \"./augmentedreality\";\r\n\r\nimport capacityChart from \"./sandisk/capacity\";\r\nimport rangeChart from \"./sandisk/range\";\r\n\r\nimport * as utils from \"./utils\";\r\nimport { init as initAccordion } from \"./accordion\";\r\nimport { initBuyButton as initVideoByButton } from \"./video\";\r\nimport windows11Blade from \"./windows11blade\";\r\n\r\n\r\nexport default function (options) {\r\n\r\n const ep = $(`#${options.inlineContentId}`);\r\n\r\n bazaar(ep, options);\r\n comparisontable(options);\r\n compatibleitems(ep);\r\n faq(ep, options);\r\n features(ep, options);\r\n footnotes(ep, options);\r\n gallery(ep, options);\r\n hotspots(ep, options);\r\n jumplinks(ep, options);\r\n specs(ep, options);\r\n spin(options);\r\n augmentedreality(ep, options);\r\n windows11Blade(ep, options);\r\n capacityChart(ep, options);\r\n rangeChart(ep);\r\n\r\n initVideoByButton(options);\r\n initAccordion(ep, options);\r\n initDocumentsReporting(ep, options);\r\n initSectionViewportReporting(ep, options);\r\n\r\n utils.fixBlockWidth(ep);\r\n}\r\n\r\nfunction initDocumentsReporting(ep, o) {\r\n\r\n ep.find(\".ccs-cc-inline-assets\")\r\n .on(\"click\",\r\n \".ccs-cc-inline-asset a\",\r\n e => utils.dispatchEvent(o.logCall, e.target, \"download\", e.target.href));\r\n}\r\n\r\nfunction initSectionViewportReporting(ep, o) {\r\n\r\n const sectionViewports = ep.find(\".ccs-cc-inline-section[data-elementid]\")\r\n .map((i, el) => {\r\n const $acc = $(el).find(\".ccs-cc-inline-acc-content\");\r\n return $acc.length > 0 ? $acc[0] : el;\r\n }).toArray();\r\n\r\n utils.initViewportEvent(sectionViewports,\r\n function () {\r\n utils.dispatchEvent(o.logCall, this, \"display\", \"viewport\", \"Submit\");\r\n });\r\n}\r\n","import \"jquery\";\r\nimport \"Fancybox\";\r\nimport { keepFocus } from \"./utils\";\r\n\r\nexport default function init(ep) {\r\n\tep.find(\".ccs-cc-bazaar-read-more\")\r\n\t\t.fancybox({\r\n\t\t\tautoFocus: true,\r\n\t\t\tbackFocus: true,\r\n\t\t\tiframe: {\r\n\t\t\t\tpreload: false\r\n\t\t\t},\r\n\t\t\tafterShow(instance, current) {\r\n\r\n\t\t\t\tif (current.type === \"iframe\") {\r\n\t\t\t\t\tcurrent.$content.attr(\"tabindex\", 0);\r\n\t\t\t\t\tinstance.$refs.toolbar.appendTo(instance.$refs.inner);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkeepFocus(instance.$refs.container[0]);\r\n\t\t\t}\r\n\t\t});\r\n}","import $ from \"jquery\";\r\nimport { updateOnVisible } from \"./utils\";\r\nimport GalleryFactory from \"./gallery/factory\";\r\nimport c from \"./gallery/consts\";\r\n\r\nexport default function (ep, o) {\r\n\r\n\tconst factory = new GalleryFactory();\r\n\r\n\tupdateOnVisible(ep, c.rootGallerySelector, el => {\r\n\t\tconst $gallery = $(el);\r\n\t\tconst gallery = factory.create($gallery, o);\r\n\r\n\t\tgallery.init();\r\n\r\n\t\t$gallery.data(\"gallery\", gallery);\r\n\t});\r\n}"],"sourceRoot":"../../.."}