{"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/campaignHeroBlock/js/campaignHeroBlock.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/scroll-js/dist/scroll.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","CLS","CampaignHeroBlock","_this","this","_classCallCheck","$tplScroller","addClass","$siteHeader","find","$scrollToButton","on","scrollIntoView","next","duration","easing","throttle","siteHeaderWidgetColorChange","key","value","Math","ceil","position","top","outerHeight","backgroundColor","transition","Object","assign","prototype","scrollTo","el","options","thisArg","_arguments","generator","Element","Window","Error","sanitizeScrollOptions","scroll","from","to","prop","startTime","easeFunc","callback","requestAnimationFrame","currentTime","Date","now","time","min","document","utils","getDocument","body","documentElement","scrollTop","setScrollPosition","currentScrollPosition","getScrollPosition","scrollProperty","props","y","x","getScrollPropertyByElement","Promise","resolve","getEasing","P","reject","fulfilled","step","e","rejected","result","done","then","apply","scroller","undefined","errorMsg","HTMLElement","validateElement","currentContainerScrollYPos","elementScrollYPos","offsetTop","pageYOffset","getBoundingClientRect","left","behavior","easingMap","linear","t","ease-in","ease-out","ease-in-out","keys","join"],"mappings":"8FAAAA,EAAAC,EAAAC,GAAA,SAAAC,EAAAC,GAAAJ,EAAAK,EAAAH,EAAA,+CAAAI,IAAO,IAAIA,GACVC,qBAAsB,SAACC,GAGtB,GAFAA,EAAKC,SAAWD,EAAKC,UAAYN,EAAEK,EAAKE,UAEpCN,EAAEO,MAAMH,EAAKC,SAASG,KAAK,gBAAkBJ,EAAKC,SAASG,KAAK,cAAe,CAClF,IAAIC,EAAmB,WACtB,IAAIC,EAAaX,EAAE,eAGnBY,WAAW,WACVP,EAAKC,SAASO,KACbC,UAAS,GAAAC,OAAKf,EAAEgB,QAAQC,SAAWN,EAAWM,SAAQ,MACtDC,WAAY,aAEX,MAGJlB,EAAEgB,QAAQG,OAAOlB,EAAEmB,SAAS,WAC3BV,KACE,MAEHA,SAIAE,WAAW,WACVP,EAAKC,SAASO,KACbK,WAAY,aAEX,03BC3BN,IACMG,EAAM,oBAICC,EAAiB,WAkB5B,SAjBD,SAAAA,EAAYf,GAAS,IAAAgB,EAAAC,kGAAAC,CAAAD,KAAAF,GACpBE,KAAKjB,QAAUA,EACfiB,KAAKlB,SAAWN,EAAEO,GAClBiB,KAAKE,aAAe1B,EAAE,iBACtBwB,KAAKb,WAAaX,EAAE,eACpBwB,KAAKb,WAAWgB,SAAS,qBACzBH,KAAKI,YAAcJ,KAAKb,WAAWkB,KAAK,qBAExCL,KAAKM,gBAAkBN,KAAKlB,SAASuB,KAAI,IAAAd,OAAKM,EAAG,cACjDG,KAAKM,gBAAgBC,GAAG,QAAS,WAChCC,YAAeT,EAAKjB,SAAS2B,KAAI,oBAAqB,GAAIjC,EAAE,iBAAiB,IAAMkC,SAAU,IAAKC,OAAQ,kBAG3GX,KAAKpB,qBAAqBoB,MAC1BA,KAAKE,aAAaK,GAAG,SAAU9B,EAAEmC,SAAS,WACzCb,EAAKc,+BACH,YACHC,IAAA,8BAAAC,MAED,WACIC,KAAKC,KAAMjB,KAAKlB,SAASoC,WAAWC,IAAMnB,KAAKlB,SAASsC,eAAkBpB,KAAKI,YAAYX,UAAY,EACzGO,KAAKI,YAAYf,KAChBgC,gBAAiB,oBACjBC,WAAY,sCAIbtB,KAAKI,YAAYf,KAChBgC,gBAAiB,+GA7BS,GAmC9BE,OAAOC,OAAO1B,EAAkB2B,UAAW9C,uFCV3C,SAAA+C,EAAAC,EAAAC,MACA,OAVAC,EAUA7B,KAVA8B,OAUA,EAVAC,EAUA,YACA,KAAAJ,aAAAK,SAAAL,aAAAM,QACA,UAAAC,6FAAmHP,MAEnHC,EAAAO,EAAAP,GACA,MAAAQ,EAAA,CAAAC,EAAAC,EAAAC,EAAAC,EAAA9B,EAAA,IAAA+B,EAAAC,KACAlD,OAAAmD,sBAAA,KACA,MAAAC,EAAAC,KAAAC,MACAC,EAAA/B,KAAAgC,IAAA,GAAAJ,EAAAJ,GAAA9B,GACA,GAAA2B,IAAAC,EACA,OAAAI,MAAA,MAkGA,SAAAf,EAAAZ,GACA,MAAAkC,EAAAC,EAAAC,cACAxB,IAAAsB,EAAAG,MACAzB,IAAAsB,EAAAI,iBACA1B,aAAAM,QACAgB,EAAAG,KAAAE,UAAAvC,EACAkC,EAAAI,gBAAAC,UAAAvC,GAGAY,EAAA2B,UAAAvC,EAzGAwC,CAAA5B,EAAAc,EAAAM,IAAAT,EAAAD,MAEAU,EAAA,EACAX,EAAAC,EAAAC,EAAAC,EAAAC,EAAA9B,EAAA+B,EAAAC,GAEAA,GACAA,OAIAc,EA2EA,SAAA7B,GACA,MAAAsB,EAAAC,EAAAC,cACA,OAAAxB,IAAAsB,EAAAG,MACAzB,IAAAsB,EAAAI,iBACA1B,aAAAM,OACAgB,EAAAG,KAAAE,WAAAL,EAAAI,gBAAAC,UAGA3B,EAAA2B,UAnFAG,CAAA9B,GACA+B,EA4CA,SAAA/B,GACA,MAAAgC,GACAnE,QACAoE,EAAA,UACAC,EAAA,WAEA9E,SACA6E,EAAA,YACAC,EAAA,eAIA,OAAAlC,aAAAM,OACA0B,EAAAnE,OAAA,EAGAmE,EAAA5E,QAAA,EA5DA+E,CAAAnC,GACA,WAAAoC,QAAAC,IACA5B,EAAAoB,EAAA,iBAAA5B,EAAAT,IACAS,EAAAT,IACAqC,EAAAE,EAAAb,KAAAC,MAAAlB,EAAAlB,SAAAuD,EAAArC,EAAAjB,QAAAqD,MApCA,KADAE,OAUA,KATAA,EAAAH,UAAA,SAAAC,EAAAG,GACA,SAAAC,EAAArD,GAAmC,IAAMsD,EAAAtC,EAAAtB,KAAAM,IAA+B,MAAAuD,GAAYH,EAAAG,IACpF,SAAAC,EAAAxD,GAAkC,IAAMsD,EAAAtC,EAAA,MAAAhB,IAAmC,MAAAuD,GAAYH,EAAAG,IACvF,SAAAD,EAAAG,GAA+BA,EAAAC,KAAAT,EAAAQ,EAAAzD,OAAA,IAAAmD,EAAA,SAAAF,GAAiEA,EAAAQ,EAAAzD,SAAyB2D,KAAAN,EAAAG,GACzHF,GAAAtC,IAAA4C,MAAA9C,EAAAC,QAAArB,UALA,IAAAoB,EAAAC,EAAAoC,EAAAnC,EAyCA,SAAAvB,EAAAzB,EAAA6F,EAAAhD,IA2BA,SAAA7C,GACA,QAAA8F,IAAA9F,EAAA,CACA,MAAA+F,EAAA,wDACA,UAAA5C,MAAA4C,GAEA,KAAA/F,aAAAgG,aACA,UAAA7C,oFAAsGnD,MAhCtGiG,CAAAjG,IACA6F,gBAAA5C,UACAJ,EAAAgD,EACAA,OAAAC,GAEA,MAAAnE,SAAWA,EAAAC,UAAmBwB,EAAAP,GAC9BgD,KAAA1B,EAAAC,cAAAC,KACA,IAAA6B,EAAA,EACAC,EAAAnG,IAAAoG,UAAA,EACA,MAAAlC,EAAAC,EAAAC,cAUA,OAPAyB,IAAA3B,EAAAG,MAAAwB,IAAA3B,EAAAI,kBAEA4B,EAAAzF,OAAA4F,YAEAF,EACAnG,EAAAsG,wBAAAlE,IAAA8D,GAEAvD,EAAAkD,GACAzD,IAAA+D,EACAI,KAAA,EACA5E,WACAC,WA+BA,SAAAwB,EAAAP,MASA,MARA,WAAAA,EAAA2D,WACA3D,EAAAjB,OAAA,cACAiB,EAAAlB,SAAA,KAEA,SAAAkB,EAAA2D,WACA3D,EAAAlB,SAAA,EACAkB,EAAAjB,OAAA,UAEAiB,EAhIAvD,EAAAK,EAAAH,EAAA,sBAAAiC,IAAAnC,EAAAK,EAAAH,EAAA,sBAAAmD,IAyJA,MAAAwB,GAEAC,YAAA,IACAF,UAGAuC,GACAC,OAAAC,GACAA,EAEAC,UAAAD,GACAA,IAEAE,WAAAF,GACAA,GAAA,EAAAA,GAEAG,cAAAH,GACAA,EAAA,KAAAA,KAAA,IAAAA,KAAA,GAGAzB,EAAAtD,IACA,MACA8B,EAAA+C,EAAA7E,GADA,UAEA,IAAA8B,EAAA,CACA,MAAAb,EAAAL,OAAAuE,KAAAN,GAAAO,KAAA,KACA,UAAA7D,sEAAwFvB,6BAAkCiB,KAE1H,OAAAa","file":"block-12.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","import { fullWindowHeightMixinBlock } from '../../mixins/fullWindowHeightMixinBlock/fullWindowHeightMixinBlock';\n\nconst NS = 'CampaignHeroBlock';\nconst CLS = 'campaignHeroBlock';\n\nimport { scrollIntoView } from 'scroll-js';\n\nexport class CampaignHeroBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.$tplScroller = $('.tpl-scroller');\n\t\tthis.$tplHeader = $('.tpl-header');\n\t\tthis.$tplHeader.addClass('tpl-header--fixed');\n\t\tthis.$siteHeader = this.$tplHeader.find('.siteHeaderWidget');\n\n\t\tthis.$scrollToButton = this.$element.find(`.${CLS}-scrollTo`);\n\t\tthis.$scrollToButton.on('click', () => {\n\t\t\tscrollIntoView(this.$element.next(`[class*='Block']`)[0], $('.tpl-scroller')[0], { duration: 750, easing: 'ease-in-out' });\n\t\t});\n\n\t\tthis.initFullWindowHeight(this);\n\t\tthis.$tplScroller.on('scroll', _.throttle(() => {\n\t\t\tthis.siteHeaderWidgetColorChange();\n\t\t}, 250));\n\t}\n\n\tsiteHeaderWidgetColorChange() {\n\t\tif(Math.ceil((this.$element.position().top + this.$element.outerHeight())) - this.$siteHeader.height() <= 0) {\n\t\t\tthis.$siteHeader.css({\n\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, .4)',\n\t\t\t\ttransition: 'background-color 0.4s ease-in-out'\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis.$siteHeader.css({\n\t\t\t\tbackgroundColor: 'transparent'\n\t\t\t});\n\t\t}\n\t}\n}\n\nObject.assign(CampaignHeroBlock.prototype, fullWindowHeightMixinBlock);\n","/*!\n * Scroll-js v2.3.2\n * https://github.com/mkay581/scroll-js\n *\n * Copyright (c) 2019 Mark Kennedy\n * Licensed under the MIT license\n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\nfunction scrollTo(el, options = {}) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!(el instanceof Element) && !(el instanceof Window)) {\r\n throw new Error(`element passed to scrollTo() must be either the window or a DOM element, you passed ${el}!`);\r\n }\r\n options = sanitizeScrollOptions(options);\r\n const scroll = (from, to, prop, startTime, duration = 300, easeFunc, callback) => {\r\n window.requestAnimationFrame(() => {\r\n const currentTime = Date.now();\r\n const time = Math.min(1, (currentTime - startTime) / duration);\r\n if (from === to) {\r\n return callback ? callback() : null;\r\n }\r\n setScrollPosition(el, easeFunc(time) * (to - from) + from);\r\n /* prevent scrolling, if already there, or at end */\r\n if (time < 1) {\r\n scroll(from, to, prop, startTime, duration, easeFunc, callback);\r\n }\r\n else if (callback) {\r\n callback();\r\n }\r\n });\r\n };\r\n const currentScrollPosition = getScrollPosition(el);\r\n const scrollProperty = getScrollPropertyByElement(el);\r\n return new Promise(resolve => {\r\n scroll(currentScrollPosition, typeof options.top === 'number'\r\n ? options.top\r\n : currentScrollPosition, scrollProperty, Date.now(), options.duration, getEasing(options.easing), resolve);\r\n });\r\n });\r\n}\r\nfunction scrollIntoView(element, scroller, options) {\r\n validateElement(element);\r\n if (scroller && !(scroller instanceof Element)) {\r\n options = scroller;\r\n scroller = undefined;\r\n }\r\n const { duration, easing } = sanitizeScrollOptions(options);\r\n scroller = scroller || utils.getDocument().body;\r\n let currentContainerScrollYPos = 0;\r\n let elementScrollYPos = element ? element.offsetTop : 0;\r\n const document = utils.getDocument();\r\n // if the container is the document body or document itself, we'll\r\n // need a different set of coordinates for accuracy\r\n if (scroller === document.body || scroller === document.documentElement) {\r\n // using pageYOffset for cross-browser compatibility\r\n currentContainerScrollYPos = window.pageYOffset;\r\n // must add containers scroll y position to ensure an absolute value that does not change\r\n elementScrollYPos =\r\n element.getBoundingClientRect().top + currentContainerScrollYPos;\r\n }\r\n return scrollTo(scroller, {\r\n top: elementScrollYPos,\r\n left: 0,\r\n duration,\r\n easing\r\n });\r\n}\r\nfunction validateElement(element) {\r\n if (element === undefined) {\r\n const errorMsg = 'The element passed to scrollIntoView() was undefined.';\r\n throw new Error(errorMsg);\r\n }\r\n if (!(element instanceof HTMLElement)) {\r\n throw new Error(`The element passed to scrollIntoView() must be a valid element. You passed ${element}.`);\r\n }\r\n}\r\nfunction getScrollPropertyByElement(el) {\r\n const props = {\r\n window: {\r\n y: 'scrollY',\r\n x: 'scrollX'\r\n },\r\n element: {\r\n y: 'scrollTop',\r\n x: 'scrollLeft'\r\n }\r\n };\r\n const axis = 'y';\r\n if (el instanceof Window) {\r\n return props.window[axis];\r\n }\r\n else {\r\n return props.element[axis];\r\n }\r\n}\r\nfunction sanitizeScrollOptions(options = {}) {\r\n if (options.behavior === 'smooth') {\r\n options.easing = 'ease-in-out';\r\n options.duration = 300;\r\n }\r\n if (options.behavior === 'auto') {\r\n options.duration = 0;\r\n options.easing = 'linear';\r\n }\r\n return options;\r\n}\r\nfunction getScrollPosition(el) {\r\n const document = utils.getDocument();\r\n if (el === document.body ||\r\n el === document.documentElement ||\r\n el instanceof Window) {\r\n return document.body.scrollTop || document.documentElement.scrollTop;\r\n }\r\n else {\r\n return el.scrollTop;\r\n }\r\n}\r\nfunction setScrollPosition(el, value) {\r\n const document = utils.getDocument();\r\n if (el === document.body ||\r\n el === document.documentElement ||\r\n el instanceof Window) {\r\n document.body.scrollTop = value;\r\n document.documentElement.scrollTop = value;\r\n }\r\n else {\r\n el.scrollTop = value;\r\n }\r\n}\r\nconst utils = {\r\n // we're really just exporting this so that tests can mock the document.documentElement\r\n getDocument() {\r\n return document;\r\n }\r\n};\r\nconst easingMap = {\r\n linear(t) {\r\n return t;\r\n },\r\n 'ease-in'(t) {\r\n return t * t;\r\n },\r\n 'ease-out'(t) {\r\n return t * (2 - t);\r\n },\r\n 'ease-in-out'(t) {\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n }\r\n};\r\nconst getEasing = (easing) => {\r\n const defaultEasing = 'linear';\r\n const easeFunc = easingMap[easing || defaultEasing];\r\n if (!easeFunc) {\r\n const options = Object.keys(easingMap).join(',');\r\n throw new Error(`Scroll error: scroller does not support an easing option of \"${easing}\". Supported options are ${options}`);\r\n }\r\n return easeFunc;\r\n};\n\nexport { easingMap, scrollIntoView, scrollTo, utils };\n"],"sourceRoot":""}