{"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/compactViewMixinBlock/compactViewMixinBlock.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/blocks/topicHeroBannerBlock/js/topicHeroBannerBlock.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/scroll-js/dist/scroll.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/mixins/compactViewMixin/compactViewMixin.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","compactViewMixinBlock","compactViewMixin","TopicHeroBannerBlock","_createClass","_this","this","_classCallCheck","$scrollToButton","find","on","scrollIntoView","next","duration","easing","initCompactView","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","Math","min","value","document","utils","getDocument","body","documentElement","scrollTop","setScrollPosition","currentScrollPosition","getScrollPosition","scrollProperty","props","y","x","getScrollPropertyByElement","Promise","resolve","top","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","classes","$tplScroller","length","applyCompactView","attr","forEach","classItem","isBlockExceedingHeight","clientHeight","outerHeight","toggleCompactViewAttribute","removeAttr"],"mappings":"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","file":"block-64.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 { compactViewMixin } from '../../../mixins/compactViewMixin/compactViewMixin';\nexport let compactViewMixinBlock = compactViewMixin;\n","const NS = 'TopicHeroBannerBlock';\nconst CLS = 'topicHeroBannerBlock';\n\nimport { scrollIntoView } from 'scroll-js';\n\nimport { fullWindowHeightMixinBlock } from '../../mixins/fullWindowHeightMixinBlock/fullWindowHeightMixinBlock';\nimport { compactViewMixinBlock } from '../../mixins/compactViewMixinBlock/compactViewMixinBlock';\n\nexport class TopicHeroBannerBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\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.initCompactView(this);\n\t\tthis.initFullWindowHeight(this);\n\t}\n}\n\nObject.assign(TopicHeroBannerBlock.prototype, compactViewMixinBlock);\nObject.assign(TopicHeroBannerBlock.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","export let compactViewMixin = {\n\tinitCompactView: (self, classes) => {\n\t\tlet minimumHeight = 550; // 550px was the chosen number to have compact views\n\t\tself.$element = self.$element || $(self.element);\n\t\tself.$tplScroller = self.$tplScroller || $('.tpl-scroller');\n\t\tclasses = classes || [];\n\n\t\tif(self.$tplScroller && self.$tplScroller.length > 0) {\n\t\t\tlet applyCompactView = () => {\n\t\t\t\tself.$element.attr('compact-view', 'true');\n\n\t\t\t\tif(classes.length > 0) {\n\t\t\t\t\tclasses.forEach((classItem) => {\n\t\t\t\t\t\tself.$element.find(classItem).attr('compact-view', true);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlet unapplyCompactView = () => {\n\t\t\t\tself.$element.removeAttr('compact-view');\n\n\t\t\t\tif(classes.length > 0) {\n\t\t\t\t\tclasses.forEach((classItem) => {\n\t\t\t\t\t\tself.$element.find(classItem).removeAttr('compact-view');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlet isBlockExceedingHeight = () => {\n\t\t\t\treturn self.$tplScroller[0].clientHeight <= minimumHeight ||\n\t\t\t\t\t((self.$element.outerHeight() > minimumHeight) && self.$element.outerHeight() > self.$tplScroller[0].clientHeight);\n\t\t\t};\n\n\t\t\tlet toggleCompactViewAttribute = () => {\n\t\t\t\tif(isBlockExceedingHeight()) {\n\t\t\t\t\tapplyCompactView();\n\n\t\t\t\t\t// Re-render\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif(isBlockExceedingHeight()) {\n\t\t\t\t\t\t\tapplyCompactView();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tunapplyCompactView();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$(window).resize(_.debounce(() => {\n\t\t\t\ttoggleCompactViewAttribute();\n\t\t\t}, 250));\n\n\t\t\ttoggleCompactViewAttribute();\n\t\t}\n\t}\n};\n"],"sourceRoot":""}