{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/blocks/mixins/fullWindowHeightMixinBlock/fullWindowHeightMixinBlock.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/blocks/mixins/trackingScrollMixinBlock/trackingScrollMixinBlock.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/blocks/carouselBlock/js/carouselBlock.js","webpack:///./wlc/mediaQuery.js"],"names":["__webpack_require__","r","__webpack_exports__","$","_","d","fullWindowHeightMixinBlock","initFullWindowHeight","self","$element","element","isNil","data","setElementHeight","$tplHeader","setTimeout","css","minHeight","concat","window","height","visibility","resize","debounce","trackingScrollMixinBlock","initTrackingScroll","trackingId","$tracker","$tplScroller","length","markAsComplete","trigger","on","throttle","Math","ceil","position","top","outerHeight","clientHeight","scrollHeight","CLS","CarouselBlock","_this","this","_classCallCheck","mediaQuery","layouts","Default","FullContainerWidth","FullScreen","selectedLayout","$elementInner","find","$sliderContainer","$carouselItems","$carouselSlider","slick","dots","dotsClass","appendArrows","appendDots","nextArrow","prevArrow","infinite","cssEase","useTransform","carouselArrowButton","setSelectedLayout","adjustCarouselItems","trailing","key","value","layout","addClass","adjustArrowVisibility","assignImageRatio","adjustArrowPosition","_this2","breakpointMaxWidth","BREAKPOINTS","LG","width","each","index","item","paddingTop","$image","$imgContainer","removeClass","imgContainerHeight","_index","$arrow","$arrows","$tplContent","Object","assign","prototype","MediaQuery","XS","SM","MD","XL","breakpoint","max","document","documentElement","clientWidth","innerWidth","isFinite"],"mappings":"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","file":"block-13.2f662a3aa586e55a56ca.js","sourcesContent":["export let fullWindowHeightMixinBlock = {\n\tinitFullWindowHeight: (self) => {\n\t\tself.$element = self.$element || $(self.element);\n\n\t\tif(!_.isNil(self.$element.data('fullscreen')) && self.$element.data('fullscreen')) {\n\t\t\tlet setElementHeight = () => {\n\t\t\t\tlet $tplHeader = $('.tpl-header');\n\n\t\t\t\t// Slight delay\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tself.$element.css({\n\t\t\t\t\t\tminHeight: `${$(window).height() - $tplHeader.height()}px`,\n\t\t\t\t\t\tvisibility: 'visible'\n\t\t\t\t\t});\n\t\t\t\t}, 250);\n\t\t\t};\n\n\t\t\t$(window).resize(_.debounce(() => {\n\t\t\t\tsetElementHeight();\n\t\t\t}, 250));\n\n\t\t\tsetElementHeight();\n\t\t}\n\t\telse {\n\t\t\t// Slight delay\n\t\t\tsetTimeout(() => {\n\t\t\t\tself.$element.css({\n\t\t\t\t\tvisibility: 'visible'\n\t\t\t\t});\n\t\t\t}, 250);\n\t\t}\n\t}\n};\n","export let trackingScrollMixinBlock = {\n\tinitTrackingScroll: (self) => {\n\t\tself.$element = self.$element || $(self.element);\n\t\tself.$tplHeader = self.$tplHeader || $('.tpl-header');\n\n\t\tlet trackingId = self.$element.data('trackingId');\n\t\tif(!_.isNil(trackingId) && trackingId !== '') {\n\t\t\tlet $tracker = $('[data-pg][data-tracker=\"true\"]');\n\t\t\tself.$tplScroller = self.$tplScroller || $('.tpl-scroller');\n\n\t\t\tif(!($tracker && $tracker.length > 0)) {\n\t\t\t\tconsole.error(`TrackingScrollMixinBlock::Error`, 'Please ensure that the \"[data-pg][data-tracker=\"true\"]\" element exists.');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(!(self.$tplScroller && self.$tplScroller.length > 0)) {\n\t\t\t\tconsole.error(`TrackingScrollMixinBlock::Error`, 'Please ensure that the \".tpl-main\" element exists.');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet markAsComplete = () => {\n\t\t\t\tif(!self.$element.data('trackingComplete')) {\n\t\t\t\t\t$tracker.trigger('tracking.complete', { $element: self.$element, trackingId: trackingId });\n\t\t\t\t\tself.$element.data('trackingComplete', true);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tself.$tplScroller.on('scroll', _.throttle(() => {\n\t\t\t\t// If the bottom part of the element is above the bottom part of the tplScroller\n\t\t\t\tif(Math.ceil((self.$element.position().top + self.$element.outerHeight())) < self.$tplScroller.height()) {\n\t\t\t\t\t// Emit to the data-pg which contains data-tracker=\"true\"\n\t\t\t\t\tmarkAsComplete();\n\t\t\t\t}\n\t\t\t}, 250));\n\n\t\t\t// Mark scrolling as complete if the scroller clientHeight is greater than the scrollHeight\n\t\t\tif(self.$tplScroller[0].clientHeight >= self.$tplScroller[0].scrollHeight) {\n\t\t\t\tmarkAsComplete();\n\t\t\t}\n\t\t}\n\t}\n};\n","const NS = 'CarouselBlock';\nconst CLS = 'carouselBlock';\n\nimport { mediaQuery } from '../../../../global/js/wlc/mediaQuery';\nimport { fullWindowHeightMixinBlock } from '../../mixins/fullWindowHeightMixinBlock/fullWindowHeightMixinBlock';\nimport { trackingScrollMixinBlock } from '../../mixins/trackingScrollMixinBlock/trackingScrollMixinBlock';\n\nexport class CarouselBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.mediaQuery = mediaQuery;\n\t\tthis.layouts = {\n\t\t\tDefault: '',\n\t\t\tFullContainerWidth: 'fullContainerWidth',\n\t\t\tFullScreen: 'fullScreen'\n\t\t};\n\t\tthis.selectedLayout = this.layouts.Default;\n\n\t\tthis.$elementInner = this.$element.find(`.${CLS}-inner`);\n\t\tthis.$sliderContainer = this.$element.find(`.${CLS}-sliderContainer`);\n\t\tthis.$carouselItems = this.$element.find(`.${CLS}-item`);\n\t\tthis.$carouselSlider = this.$element.find(`.${CLS}-slider`);\n\t\tthis.$carouselSlider.slick({\n\t\t\tdots: true,\n\t\t\tdotsClass: `slick-dots`,\n\t\t\tappendArrows: this.$sliderContainer,\n\t\t\tappendDots: this.$sliderContainer,\n\t\t\tnextArrow: ``,\n\t\t\tprevArrow: ``,\n\t\t\tinfinite: false,\n\t\t\tcssEase: 'ease-in-out',\n\t\t\tuseTransform: true\n\t\t});\n\n\t\tthis.carouselArrowButton = this.$element.find(`.slick-arrow`);\n\n\t\t// Set the particular layout\n\t\tthis.setSelectedLayout();\n\n\t\t// Set the positioning of the carousel elements\n\t\tthis.adjustCarouselItems();\n\n\t\t// Display the carousel\n\t\tthis.$carouselItems.css({ visibility: 'visible' });\n\n\t\t$(window).resize(_.debounce(() => {\n\t\t\tthis.adjustCarouselItems();\n\t\t}, 50, { trailing: true }));\n\n\t\tthis.initFullWindowHeight(this);\n\t\tthis.initTrackingScroll(this);\n\t}\n\n\tsetSelectedLayout() {\n\t\tlet selectedLayout = this.$element.data('layout');\n\t\tlet isFound = _.find(this.layouts, (layout) => {\n\t\t\treturn layout === selectedLayout;\n\t\t});\n\n\t\tif(isFound) {\n\t\t\tthis.selectedLayout = selectedLayout;\n\n\t\t\tif(this.selectedLayout === this.layouts.FullContainerWidth) {\n\t\t\t\tthis.$element.addClass(`${CLS}--fullContainerWidth`);\n\t\t\t}\n\t\t\telse if(this.selectedLayout === this.layouts.FullScreen) {\n\t\t\t\tthis.$element.addClass(`${CLS}--fullScreen`);\n\t\t\t}\n\t\t}\n\t}\n\n\tadjustCarouselItems() {\n\t\tthis.adjustArrowVisibility();\n\t\tthis.assignImageRatio();\n\t\tthis.adjustArrowPosition();\n\t}\n\n\tassignImageRatio() {\n\t\tif(this.selectedLayout === this.layouts.FullScreen) {\n\t\t\tlet height;\n\t\t\tif(!this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.LG)) {\n\t\t\t\theight = $(window).height();\n\t\t\t}\n\t\t\telse {\n\t\t\t\theight = $(window).width() * .66; // Ratio of 3:2\n\t\t\t}\n\n\t\t\tthis.$carouselItems.each((index, item) => {\n\t\t\t\tlet $padder = $(item).find(`.${CLS}-item-imgContainer-padder`);\n\n\t\t\t\t$padder.css({\n\t\t\t\t\theight: `${height}px`,\n\t\t\t\t\tpaddingTop: 'unset'\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis.$carouselItems.each((index, item) => {\n\t\t\t\tlet $padder = $(item).find(`.${CLS}-item-imgContainer-padder`);\n\t\t\t\t$padder.css({\n\t\t\t\t\theight: `unset`,\n\t\t\t\t\tpaddingTop: '70%' // was 66% and increased to 70$ as requested by client\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t// Slight delay as ratio is adjusting\n\t\tsetTimeout(() => {\n\t\t\tthis.$carouselItems.each((index, item) => {\n\t\t\t\tlet $image = $(item).find(`.${CLS}-item-img`);\n\t\t\t\tlet $imgContainer = $(item).find(`.${CLS}-item-imgContainer`);\n\n\t\t\t\tif($imgContainer.width() >= $imgContainer.height()) {\n\t\t\t\t\t$image.addClass(`${CLS}-item-img--horizontal`);\n\t\t\t\t\t$image.removeClass(`${CLS}-item-img--vertical`);\n\n\t\t\t\t\tif($imgContainer.height() > $image.height()) {\n\t\t\t\t\t\t$image.addClass(`${CLS}-item-img--vertical`);\n\t\t\t\t\t\t$image.removeClass(`${CLS}-item-img--horizontal`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$image.addClass(`${CLS}-item-img--vertical`);\n\t\t\t\t\t$image.removeClass(`${CLS}-item-img--horizontal`);\n\n\t\t\t\t\tif($imgContainer.width() > $image.width()) {\n\t\t\t\t\t\t$image.addClass(`${CLS}-item-img--horizontal`);\n\t\t\t\t\t\t$image.removeClass(`${CLS}-item-img--vertical`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}, 50);\n\t}\n\n\tadjustArrowPosition() {\n\t\tlet imgContainerHeight = this.$element.find(`.slick-active .${CLS}-item-imgContainer`).height();\n\n\t\tthis.carouselArrowButton.each((_index, element) => {\n\t\t\tlet $arrow = $(element);\n\t\t\t$arrow.css({\n\t\t\t\ttop: `${((imgContainerHeight / 2) - ($arrow.height() / 2))}px`\n\t\t\t});\n\t\t});\n\t}\n\n\tadjustArrowVisibility() {\n\t\tif(this.selectedLayout !== this.layouts.FullScreen) {\n\t\t\tlet $arrows = this.$element.find(`.slick-arrow`);\n\t\t\tif(!($arrows && $arrows.length > 0)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t/*let previousArrow = this.$element.find(`.slick-arrow--previous`);\n\t\t\tlet nextArrow = this.$element.find(`.slick-arrow--next`);\n\n\t\t\tpreviousArrow.css({\n\t\t\t\tvisibility: Math.floor(previousArrow.offset().left) < 0 ? 'hidden' : 'visible'\n\t\t\t});\n\n\t\t\tnextArrow.css({\n\t\t\t\tvisibility: (Math.ceil(nextArrow.offset().left + nextArrow.width()) + 1) >= this.getContainerWidth() ? 'hidden' : 'visible'\n\t\t\t});*/\n\t\t}\n\t}\n\n\tgetContainerWidth() {\n\t\tlet $tplContent = $('.tpl-content');\n\t\tif($tplContent && $tplContent.length > 0) {\n\t\t\treturn $tplContent.width();\n\t\t}\n\t\treturn $(window).width();\n\t}\n}\n\nObject.assign(CarouselBlock.prototype, trackingScrollMixinBlock);\nObject.assign(CarouselBlock.prototype, fullWindowHeightMixinBlock);\n","class MediaQuery {\n\tconstructor() {\n\t\tthis.BREAKPOINTS = {\n\t\t\tXS: 0,\n\t\t\tSM: 576,\n\t\t\tMD: 768,\n\t\t\tLG: 992,\n\t\t\tXL: 1200\n\t\t};\n\t}\n\n\tbreakpointMaxWidth(breakpoint) {\n\t\tlet width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n\n\t\tif(_.isFinite(breakpoint)) {\n\t\t\treturn breakpoint > width;\n\t\t}\n\t\tconsole.error(`MediaQuery::Error`, 'Please supply a valid breakpoint');\n\t\treturn false;\n\t}\n}\n\nexport let mediaQuery = new MediaQuery();\n"],"sourceRoot":""}