{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wool-fe/src/views/widgets/siteFooterSitemapWidget/js/siteFooterSitemapWidget.js","webpack:////Users/owenli/Documents/workspace/awi-wool-fe/node_modules/scroll-js/dist/scroll.js"],"names":["SiteFooterSitemapWidget","_createClass","element","_this","this","_classCallCheck","$element","$","slideAnimationDuration","scrollAnimationDuration","scrollEasing","isAnimating","$siteFooter","parents","on","attr","trigger","slideDown","duration","complete","scrollIntoView","document","body","easing","then","slideUp","scrollTo","el","options","thisArg","_arguments","generator","Element","Window","Error","sanitizeScrollOptions","scroll","from","to","prop","startTime","easeFunc","callback","window","requestAnimationFrame","currentTime","Date","now","time","Math","min","value","utils","getDocument","documentElement","scrollTop","setScrollPosition","currentScrollPosition","getScrollPosition","scrollProperty","props","y","x","getScrollPropertyByElement","Promise","resolve","top","getEasing","P","reject","fulfilled","step","next","e","rejected","result","done","apply","scroller","undefined","errorMsg","HTMLElement","validateElement","currentContainerScrollYPos","elementScrollYPos","offsetTop","pageYOffset","getBoundingClientRect","left","behavior","__webpack_require__","d","__webpack_exports__","easingMap","linear","t","ease-in","ease-out","ease-in-out","Object","keys","join"],"mappings":"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","file":"widget-26.430117f348aedc9992ce.js","sourcesContent":["const NS = 'SiteFooterSitemapWidget';\nconst CLS = 'siteFooterSitemapWidget';\n\nimport { scrollIntoView } from 'scroll-js';\n\nexport class SiteFooterSitemapWidget {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.slideAnimationDuration = 750;\n\t\tthis.scrollAnimationDuration = 750;\n\t\tthis.scrollEasing = 'ease-in-out';\n\t\tthis.isAnimating = false;\n\t\tthis.$siteFooter = this.$element.parents('.siteFooterWidget');\n\n\t\tthis.$element.on('siteFooterSitemapWidget.toggle', () => {\n\t\t\tif(!this.isAnimating) {\n\t\t\t\tif(this.$element.attr('data-closed') === 'true') {\n\t\t\t\t\tthis.$element.attr('data-closed', false);\n\t\t\t\t\tthis.$siteFooter.trigger('siteFooterWidget.siteFooterLinksWidget.sitemapButton.toggleClass', {});\n\t\t\t\t\tthis.isAnimating = true;\n\t\t\t\t\tthis.$element.slideDown({\n\t\t\t\t\t\tduration: this.slideAnimationDuration,\n\t\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\t\tscrollIntoView(this.$element[0], document.body, { duration: this.scrollAnimationDuration, easing: this.scrollEasing }).then(() => {\n\t\t\t\t\t\t\t\tthis.isAnimating = false;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.isAnimating = true;\n\n\t\t\t\t\tthis.$element.slideUp({\n\t\t\t\t\t\tduration: this.slideAnimationDuration,\n\t\t\t\t\t\tcomplete: () => {\n\t\t\t\t\t\t\tthis.$element.attr('data-closed', true);\n\t\t\t\t\t\t\tthis.$siteFooter.trigger('siteFooterWidget.siteFooterLinksWidget.sitemapButton.toggleClass', {});\n\t\t\t\t\t\t\tthis.isAnimating = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\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":""}