{"version":3,"file":"js/hc-home.bundle.js?v=67dbdbd8e22d39fe0fe8","mappings":"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","sources":["webpack:///./node_modules/debounce/index.js","webpack:///./src/Tenants/Hc/Home/Home.ts","webpack:///./src/Utilities/ReadMore.ts"],"sourcesContent":["function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\t// TODO: Deprecate the boolean parameter at some point.\n\tconst {immediate} = typeof options === 'boolean' ? {immediate: options} : options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction run() {\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\t\treturn result;\n\t}\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tresult = run();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (storedContext && this !== storedContext) {\n\t\t\tthrow new Error('Debounced method called with different contexts.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tresult = run();\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tdebounced.trigger();\n\t};\n\n\tdebounced.trigger = () => {\n\t\tresult = run();\n\n\t\tdebounced.clear();\n\t};\n\n\treturn debounced;\n}\n\n// Adds compatibility for ES modules\nmodule.exports.debounce = debounce;\n\nmodule.exports = debounce;\n","import \"@Base/Home/_Bubbles.scss\";\r\nimport \"./Home.scss\";\r\n\r\nimport { BasePage } from \"@Tenants/Hc/Site/BasePage\";\r\nimport { ReadMore } from \"@Utilities/ReadMore\";\r\nimport { Media } from '@Utilities/Media';\r\n\r\nimport debounce from \"debounce\";\r\nimport enquire from 'enquire.js';\r\n\r\nclass HomePage extends BasePage\r\n{\r\n\tprivate Carousel = document.querySelector(\".carousel\");\r\n\tprivate CarouselContainer = document.querySelector(\".carousel__container\");\r\n\tprivate CarouselItems: NodeListOf = document.querySelectorAll(\".carousel__item\");\r\n\tprivate CarouselDots = document.querySelectorAll(\".carousel__dots li\");\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t\tthis.Initialize();\r\n\t}\r\n\r\n\tpublic async Initialize(): Promise\r\n\t{\r\n\t\tsuper.Initialize();\r\n\t\tthis.ConfigureReadMore();\r\n\r\n\t\tif (this.Carousel !== null)\r\n\t\t{\r\n\t\t\tthis.ConfigureCarousel();\r\n\t\t}\r\n\t};\r\n\r\n\tprivate ConfigureReadMore = (): void =>\r\n\t{\r\n\t\tconst readClamp: HTMLElement = document.querySelector(\".readClamp\");\r\n\r\n\t\tif (readClamp !== null)\r\n\t\t{\r\n\t\t\tnew ReadMore(readClamp);\r\n\t\t}\r\n\t};\r\n\r\n\tprivate ConfigureCarousel = (): void =>\r\n\t{\r\n\t\tenquire.register(Media.MediaMobile, {\r\n\t\t\tdeferSetup: true,\r\n\t\t\tmatch: (): void =>\r\n\t\t\t{\r\n\t\t\t\tif (this.CarouselDots.length)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.CarouselDots.forEach((dot) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdot.addEventListener(\"click\", this.CarouselDotHandler);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthis.CarouselContainer.addEventListener(\"scroll\", this.CarouselScrollHandler);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tunmatch: (): void =>\r\n\t\t\t{\r\n\t\t\t\tif (this.CarouselDots.length)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.CarouselDots.forEach((dot) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdot.removeEventListener(\"click\", this.CarouselDotHandler);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthis.CarouselContainer.removeEventListener(\"scroll\", this.CarouselScrollHandler);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tprivate CarouselDotHandler = (e: Event): void =>\r\n\t{\r\n\t\tconst clicked = e.currentTarget as HTMLElement;\r\n\t\tconst clickedIndex = [].indexOf.call(clicked.parentElement.children, clicked) as number;\r\n\t\tconst item = this.CarouselItems[clickedIndex];\r\n\r\n\t\tthis.CarouselContainer.scroll({\r\n\t\t\tleft: item.offsetLeft,\r\n\t\t\tbehavior: \"smooth\"\r\n\t\t});\r\n\t};\r\n\r\n\tprivate CarouselScrollHandler = debounce((e: Event) =>\r\n\t{\r\n\t\tconst scrollLeft = this.CarouselContainer.scrollLeft;\r\n\r\n\t\t// Account for overscroll on mobile\r\n\t\tif (!(scrollLeft < 0))\r\n\t\t{\r\n\t\t\tconst scrollWidth = parseFloat(getComputedStyle(this.CarouselContainer).width.replace(\"px\", \"\"));\r\n\t\t\tconst index = Math.floor(scrollLeft / scrollWidth);\r\n\r\n\t\t\t// Again account for overscroll on mobile\r\n\t\t\tif (index < this.CarouselDots.length)\r\n\t\t\t{\r\n\t\t\t\t(this.Carousel.querySelector(\".carousel__dots li.active\")).classList.remove(\"active\");\r\n\t\t\t\tthis.CarouselDots[index].classList.add(\"active\");\r\n\t\t\t}\r\n\t\t}\r\n\t}, 100);\r\n}\r\n\r\nconst home = new HomePage();","import \"./ReadMore.scss\";\r\n\r\nimport { Media } from \"@Utilities/Media\";\r\nimport enquire from \"enquire.js\";\r\nimport debounce from \"debounce\";\r\n\r\nexport class ReadMore\r\n{\r\n\tpublic ActualHeightPrevious = 0;\r\n\tpublic Clamped = false;\r\n\tpublic ClampedHeight = 0;\r\n\tpublic Container: HTMLElement;\r\n\tpublic Height = 0;\r\n\tpublic Opened = false;\r\n\tpublic ReadMoreLink: HTMLElement;\r\n\tpublic Text: HTMLElement;\r\n\r\n\tconstructor(desc: HTMLElement)\r\n\t{\r\n\t\tthis.Container = desc;\r\n\t\tthis.ConfigureReadMore();\r\n\t}\r\n\r\n\tpublic get ActualHeight(): number\r\n\t{\r\n\t\tlet height = 0;\r\n\r\n\t\tif (typeof this.Text !== \"undefined\" && this.Text !== null)\r\n\t\t{\r\n\t\t\theight = this.Text.scrollHeight;\r\n\t\t}\r\n\r\n\t\treturn height;\r\n\t};\r\n\r\n\tpublic get DisplayHeight(): number\r\n\t{\r\n\t\tlet height = 0;\r\n\r\n\t\tif (typeof this.Text !== \"undefined\" && this.Text !== null)\r\n\t\t{\r\n\t\t\tconst elStyles = window.getComputedStyle(this.Text);\r\n\t\t\theight = parseInt(elStyles.height);\r\n\t\t}\r\n\r\n\t\treturn height;\r\n\t};\r\n\r\n\tpublic ConfigureReadMore = (): void =>\r\n\t{\r\n\t\tif (this.Container !== null)\r\n\t\t{\r\n\t\t\tthis.Text = this.Container.querySelector(\".readClamp__text\");\r\n\t\t\tthis.ReadMoreLink = this.Container.querySelector(\".readClamp__link\");\r\n\r\n\t\t\tconst ResizeHandler = debounce(() =>\r\n\t\t\t{\r\n\t\t\t\tthis.ClampUpdate();\r\n\t\t\t}, 200);\r\n\r\n\t\t\tenquire.register(Media.MediaMobile, {\r\n\t\t\t\tmatch: (): void =>\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.ClampUpdate();\r\n\t\t\t\t\tthis.ReadMoreClose();\r\n\t\t\t\t\twindow.addEventListener(\"resize\", ResizeHandler);\r\n\t\t\t\t},\r\n\t\t\t\tunmatch: (): void =>\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.ClampRemove();\r\n\t\t\t\t\tthis.ReadMoreClose();\r\n\t\t\t\t\twindow.removeEventListener(\"resize\", ResizeHandler);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tpublic ClampUpdate = (enable?: boolean): void =>\r\n\t{\r\n\t\tif (this.DisplayHeight < this.ActualHeight && !this.Clamped)\r\n\t\t{\r\n\t\t\tthis.ClampApply();\r\n\t\t}\r\n\t\telse if (this.Opened && this.DisplayHeight === this.ClampedHeight)\r\n\t\t{\r\n\t\t\tthis.ClampRemove();\r\n\t\t\tthis.ReadMoreClose();\r\n\t\t}\r\n\t\telse if (!this.Opened && this.DisplayHeight === this.ActualHeight)\r\n\t\t{\r\n\t\t\tthis.ClampRemove();\r\n\t\t}\r\n\t};\r\n\r\n\tpublic ClampApply = (): void =>\r\n\t{\r\n\t\tthis.Container.classList.remove(\"readClamp--off\");\r\n\t\tthis.ReadMoreLink.addEventListener(\"click\", this.ReadMoreToggle);\r\n\t\tthis.Clamped = true;\r\n\t\tthis.ActualHeightPrevious = this.ActualHeight;\r\n\t\tthis.ClampedHeight = this.DisplayHeight;\r\n\t};\r\n\r\n\tpublic ClampRemove = (): void =>\r\n\t{\r\n\t\tthis.Container.classList.add(\"readClamp--off\");\r\n\t\tthis.ReadMoreLink.removeEventListener(\"click\", this.ReadMoreToggle);\r\n\t\tthis.Clamped = false;\r\n\t};\r\n\r\n\tpublic ReadMoreOpen = (): void =>\r\n\t{\r\n\t\tthis.Container.classList.add(\"readClamp--open\");\r\n\t\tthis.Opened = true;\r\n\t};\r\n\r\n\tpublic ReadMoreClose = (): void =>\r\n\t{\r\n\t\tthis.Container.classList.remove(\"readClamp--open\");\r\n\t\tthis.Opened = false;\r\n\t};\r\n\r\n\tpublic ReadMoreToggle = (e: Event): void =>\r\n\t{\r\n\t\tif (typeof e !== \"undefined\" && e !== null)\r\n\t\t{\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\r\n\t\tif (this.Opened)\r\n\t\t{\r\n\t\t\tthis.ReadMoreClose();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.ReadMoreOpen();\r\n\t\t}\r\n\t};\r\n}"],"names":["debounce","function_","wait","options","TypeError","RangeError","immediate","storedContext","storedArguments","timeoutId","timestamp","result","run","callContext","callArguments","undefined","apply","later","last","Date","now","setTimeout","debounced","arguments_","this","Error","callNow","clear","clearTimeout","flush","trigger","module","exports","HomePage","constructor","super","Carousel","document","querySelector","CarouselContainer","CarouselItems","querySelectorAll","CarouselDots","ConfigureReadMore","readClamp","ConfigureCarousel","MediaMobile","deferSetup","match","length","forEach","dot","addEventListener","CarouselDotHandler","CarouselScrollHandler","unmatch","removeEventListener","e","clicked","currentTarget","clickedIndex","indexOf","call","parentElement","children","item","scroll","left","offsetLeft","behavior","scrollLeft","scrollWidth","parseFloat","getComputedStyle","width","replace","index","Math","floor","classList","remove","add","Initialize","ReadMore","desc","ActualHeightPrevious","Clamped","ClampedHeight","Height","Opened","Container","Text","ReadMoreLink","ResizeHandler","ClampUpdate","ReadMoreClose","window","ClampRemove","enable","DisplayHeight","ActualHeight","ClampApply","ReadMoreToggle","ReadMoreOpen","preventDefault","height","scrollHeight","elStyles","parseInt"],"sourceRoot":""}