{"version":3,"sources":["../../../Content/DataSource/ZoomGallery/src/main.js"],"names":["DsZoomGallery","options","_","this","o","$ep","$","concat","entryPointId","length","logCall","$slickMain","find","$slickThumbs","initSlick","initFancybox","isVerticalLayout","layout","ccsSlick","infinite","slidesToShow","slidesToScroll","arrows","fade","speed","draggable","slickMain","swipe","ccs_util","isMobile","vertical","verticalSwiping","slickThumbs","$slides","eq","addClass","$image","one","resize","complete","trigger","on","event","slick","currentSlide","nextSlide","switchActiveSlide","initMobileBehavior","initDesktopBehavior","initTitle","slideCount","displayTitle","$title","appendTo","html","data","$slide","config","loop","buttons","baseClass","animationEffect","thumbs","autoStart","afterLoad","instance","current","currIndex","index","firstRun","context","position","url","src","submitEvent","beforeShow","prevIndex","subelement","afterClose","extend","fancybox","navOnHoverTimer","e","setTimeout","$current","currentTarget","submitNavigationEvent","clearTimeout","$currentSlide","activeSlideClass","goTo","slideIsHidden","removeClass","slidesInViewport","getSlidesInViewport","getSlideCount","slickSetOption","refresh","Math","max","floor","$list","height","width","$slick","slickOffset","offset","top","left","iteraction","actionContext","ccs_cc_log","dispatchEvent","Action","ActionContext","JSON","stringify"],"mappings":"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","file":"ZoomGallery.min.js","sourcesContent":["import $ from \"jquery\";\r\nimport \"Fancybox\";\r\nimport \"slick\";\r\n\r\nexport default function (options) {\r\n\tnew DsZoomGallery(options);\r\n}\r\n\r\nclass DsZoomGallery {\r\n\tconstructor(options) {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.o = options;\r\n\t\t_.$ep = $(`#${_.o.entryPointId}`);\r\n\r\n\t\tif (_.$ep.length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t_.logCall = options.logCall;\r\n\t\t_.$slickMain = _.$ep.find(\".ccs-ds-cloud-main-image\");\r\n\t\t_.$slickThumbs = _.$ep.find(\".ccs-ds-cloud-thumbs\");\r\n\r\n\t\t_.initSlick();\r\n\t\t_.initFancybox();\r\n\t}\r\n\r\n\tinitSlick() {\r\n\t\tconst _ = this,\r\n\t\t\tisVerticalLayout = _.o.layout !== \"bottom\";\r\n\r\n\t\t_.$slickMain.ccsSlick({\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tslidesToScroll: 1,\r\n\t\t\tarrows: false,\r\n\t\t\tfade: true,\r\n\t\t\tspeed: 200,\r\n\t\t\tdraggable: false\r\n\t\t});\r\n\r\n\t\t_.slickMain = _.$slickMain.ccsSlick(\"getSlick\");\r\n\r\n\t\t_.$slickThumbs.ccsSlick({\r\n\t\t\tinfinite: false,\r\n\t\t\tslidesToShow: 3,\r\n\t\t\tslidesToScroll: 3,\r\n\t\t\tarrows: true,\r\n\t\t\tswipe: ccs_util.isMobile(),\r\n\t\t\tdraggable: false,\r\n\t\t\tvertical: isVerticalLayout,\r\n\t\t\tverticalSwiping: isVerticalLayout\r\n\t\t});\r\n\r\n\t\t_.slickThumbs = _.$slickThumbs.ccsSlick(\"getSlick\");\r\n\t\t$(_.slickThumbs.$slides.eq(0)).addClass(\"ccs-ds-cloud-current\");\r\n\r\n\t\tconst $image = _.slickMain.$slides.eq(0).find(\"img\");\r\n\r\n\t\t$image.one(\"load\", () => _.resize());\r\n\r\n\t\tif ($image[0].complete) {\r\n\t\t\t$image.trigger(\"load\");\r\n\t\t}\r\n\r\n\t\t_.$slickMain.on(\"setPosition\", () => _.resize());\r\n\r\n\t\t_.$slickMain.on(\"beforeChange\", (event, slick, currentSlide, nextSlide) => _.switchActiveSlide(nextSlide));\r\n\r\n\t\tccs_util.isMobile()\r\n\t\t\t? _.initMobileBehavior()\r\n\t\t\t: _.initDesktopBehavior();\r\n\r\n\t\t_.initTitle();\r\n\r\n\t\tif (_.slickMain.slideCount === 1) {\r\n\t\t\t_.$slickThumbs.addClass(\"ccs-hide\");\r\n\t\t}\r\n\t}\r\n\r\n\tinitTitle() {\r\n\t\tconst _ = this;\r\n\r\n\t\tif (!_.o.displayTitle) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t_.$title = $(\"
\").appendTo(_.$slickMain);\r\n\t\t_.$title.html(_.slickMain.$slides.eq(0).data(\"caption\"));\r\n\r\n\t\t_.$slickMain.on(\"afterChange\", (event, slick, currentSlide) => {\r\n\t\t\tconst $slide = _.slickMain.$slides.eq(currentSlide);\r\n\t\t\t_.$title.html($slide.data(\"caption\"));\r\n\t\t});\r\n\t}\r\n\r\n\tinitFancybox() {\r\n\t\tconst _ = this;\r\n\r\n\t\tlet config = {\r\n\t\t\tloop: true,\r\n\t\t\tbuttons: [\"zoom\", \"thumbs\", \"close\"],\r\n\t\t\tbaseClass: \"ccs-fancybox-ds-cloud\",\r\n\t\t\tanimationEffect: \"fade\",\r\n\t\t\tthumbs: {\r\n\t\t\t\tautoStart: true\r\n\t\t\t},\r\n\t\t\tafterLoad(instance, current) {\r\n\t\t\t\tif (instance.currIndex === current.index && instance.firstRun) {\r\n\t\t\t\t\tconst context = {\r\n\t\t\t\t\t\tposition: current.index,\r\n\t\t\t\t\t\turl: current.src\r\n\t\t\t\t\t};\r\n\t\t\t\t\t_.submitEvent(\"zoom-in\", context);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbeforeShow(instance, current) {\r\n\t\t\t\tif (instance.currIndex === instance.prevIndex)\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\tconst context = {\r\n\t\t\t\t\tsubelement: \"lightbox\",\r\n\t\t\t\t\tposition: current.index,\r\n\t\t\t\t\turl: current.src\r\n\t\t\t\t};\r\n\t\t\t\t_.submitEvent(\"navigate-content\", context);\r\n\t\t\t}, afterClose(instance, options) {\r\n\t\t\t\t_.switchActiveSlide(options.index);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (ccs_util.isMobile()) {\r\n\t\t\tconst mobileConfig = {\r\n\t\t\t\tbuttons: [\"close\"],\r\n\t\t\t\tthumbs: {\r\n\t\t\t\t\tautoStart: false\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tconfig = $.extend(config, mobileConfig);\r\n\t\t}\r\n\r\n\t\t_.$ep.find(\".ccs-fancybox-gallery\").fancybox(config);\r\n\t}\r\n\r\n\tinitDesktopBehavior() {\r\n\t\tconst _ = this;\r\n\t\tlet navOnHoverTimer;\r\n\r\n\t\t_.slickThumbs.$slides\r\n\t\t\t.on(\"mouseenter\", (e) => {\r\n\t\t\t\tnavOnHoverTimer = setTimeout(() => {\r\n\t\t\t\t\tconst $current = $(e.currentTarget);\r\n\t\t\t\t\tconst index = $current.data(\"slick-index\");\r\n\t\t\t\t\t_.switchActiveSlide(index);\r\n\t\t\t\t\t_.submitNavigationEvent(\"hover\", $current);\r\n\t\t\t\t}, 200);\r\n\t\t\t})\r\n\t\t\t.on(\"mouseleave\", () => clearTimeout(navOnHoverTimer));\r\n\t}\r\n\r\n\tinitMobileBehavior() {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.slickThumbs.$slides\r\n\t\t\t.on(\"click\", (e) => {\r\n\t\t\t\tconst $current = $(e.currentTarget);\r\n\t\t\t\tconst index = $current.data(\"slick-index\");\r\n\t\t\t\t_.switchActiveSlide(index);\r\n\t\t\t\t_.submitNavigationEvent(\"click\", $current);\r\n\t\t\t});\r\n\t}\r\n\r\n\tswitchActiveSlide(index) {\r\n\t\tconst _ = this,\r\n\t\t\t$currentSlide = _.slickThumbs.$slides.eq(index),\r\n\t\t\tactiveSlideClass = \"ccs-ds-cloud-current\";\r\n\r\n\t\t_.slickMain.goTo(index);\r\n\t\tconst isHidden = _.slideIsHidden($currentSlide);\r\n\r\n\t\tif (isHidden) {\r\n\t\t\t_.slickThumbs.goTo(index);\r\n\t\t}\r\n\r\n\t\t_.slickThumbs.$slides\r\n\t\t\t.removeClass(activeSlideClass);\r\n\t\t$currentSlide\r\n\t\t\t.addClass(activeSlideClass);\r\n\t}\r\n\r\n\tresize() {\r\n\t\tconst _ = this;\r\n\r\n\t\tconst slidesInViewport = _.getSlidesInViewport();\r\n\r\n\t\tif (_.slickThumbs.getSlideCount() === slidesInViewport) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t_.slickThumbs.slickSetOption(\"slidesToShow\", slidesInViewport);\r\n\t\t_.slickThumbs.slickSetOption(\"slidesToScroll\", slidesInViewport);\r\n\t\t_.slickThumbs.refresh();\r\n\t}\r\n\r\n\tgetSlidesInViewport() {\r\n\t\tconst _ = this;\r\n\r\n\t\treturn Math.max(Math.floor(_.o.layout !== \"bottom\"\r\n\t\t\t? _.slickMain.$list.height() / 52\r\n\t\t\t: _.slickThumbs.$list.width() / 52), 1);\r\n\t}\r\n\r\n\tslideIsHidden($slide) {\r\n\t\tconst _ = this;\r\n\t\tconst $slick = _.$slickThumbs;\r\n\t\tconst $currentSlide = $slick.ccsSlick(\"getSlick\").$slides.eq($slide.data(\"slick-index\"));\r\n\t\tconst slickOffset = $slick.offset();\r\n\r\n\t\tif (_.o.layout !== \"bottom\") {\r\n\t\t\treturn slickOffset.top > $currentSlide.offset().top\r\n\t\t\t\t|| slickOffset.top + $slick.height() < $currentSlide.offset().top + $currentSlide.height();\r\n\t\t}\r\n\r\n\t\treturn slickOffset.left > $currentSlide.offset().left\r\n\t\t\t|| slickOffset.left + $slick.width() < $currentSlide.offset().left + $currentSlide.width();\r\n\t}\r\n\r\n\tsubmitNavigationEvent(iteraction, $slide) {\r\n\t\tconst _ = this;\r\n\r\n\t\tconst actionContext = {\r\n\t\t\tposition: $slide.data(\"slick-index\"),\r\n\t\t\turl: $slide.data(\"original-src\")\r\n\t\t};\r\n\r\n\t\t_.submitEvent(iteraction, actionContext);\r\n\t}\r\n\r\n\tsubmitEvent(iteraction, actionContext) {\r\n\t\tconst _ = this;\r\n\t\tconst logCall = _.logCall;\r\n\r\n\t\tccs_cc_log.dispatchEvent(logCall, {\r\n\t\t\tAction: iteraction,\r\n\t\t\tActionContext: JSON.stringify(actionContext)\r\n\t\t});\r\n\t}\r\n}"],"sourceRoot":"../../.."}