{"version":3,"file":"js/fun-category.bundle.js?v=c1f31d1bde5bfba6bc85","mappings":"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","sources":["webpack:///./node_modules/debounce/index.js","webpack:///./src/Base/Category/Category.ts","webpack:///./src/Tenants/Fun/Category/Category.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 { Media } from \"@Utilities/Media\";\r\nimport { ReadMore } from \"@Utilities/ReadMore\";\r\nimport Offcanvas from \"bootstrap/js/dist/offcanvas\";\r\nimport enquire from \"enquire.js\";\r\n\r\ninterface IVisualFilter\r\n{\r\n\tToggleButton: HTMLElement;\r\n\tLessToggle: HTMLElement;\r\n\tMoreToggle: HTMLElement;\r\n\tMobileOff: NodeListOf;\r\n\tDesktopOff: NodeListOf;\r\n\tAllLinks: NodeListOf;\r\n}\r\n\r\nexport class BaseCategory\r\n{\r\n\tpublic FilterEl: HTMLElement;\r\n\tpublic DesktopFilterEl: HTMLElement;\r\n\tpublic MobileFilterEl: HTMLElement;\r\n\tpublic MobileFilterContainer: HTMLElement;\r\n\tpublic MobileFilterInstance: Offcanvas;\r\n\tpublic OffCanvasLibrary: Offcanvas;\r\n\tpublic RefreshTest = document.querySelector(\".catRefresh\") !== null;\r\n\tpublic VisualFilters: IVisualFilter[];\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tconst noResultsPage = (document.querySelector(\".no-srch-rslt\") !== null);\r\n\t\tconst splitSearchPage = (document.querySelector(\".split\") !== null);\r\n\r\n\t\tif (!noResultsPage && !splitSearchPage)\r\n\t\t{\r\n\t\t\tthis.Initialize();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic Initialize(): void\r\n\t{\r\n\t\tthis.CountTopRow();\r\n\t\tthis.ConfigureFilter();\r\n\t\tthis.ConfigureReadMore();\r\n\t\tthis.ConfigureVisualFilters();\r\n\r\n\t\tenquire.register(Media.MediaMobile, {\r\n\t\t\tdeferSetup: true,\r\n\t\t\tmatch: () =>\r\n\t\t\t{\r\n\t\t\t\tthis.MobileFilterSetup();\r\n\t\t\t\tthis.MobileSortSetup();\r\n\t\t\t},\r\n\t\t\tunmatch: () =>\r\n\t\t\t{\r\n\t\t\t\tthis.MobileFilterDestroy();\r\n\t\t\t\tthis.MobileSortDestroy();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic ConfigureFilter = (): void =>\r\n\t{\r\n\t\tthis.FilterEl = document.getElementById(\"filter\");\r\n\t\tthis.DesktopFilterEl = document.getElementById(\"desktopFilter\");\r\n\t\tthis.MobileFilterEl = document.getElementById(\"mobileFilter\");\r\n\t\tthis.MobileFilterContainer = document.getElementById(\"offcanvasFilter\");\r\n\t\tthis.MobileFilterInstance = Offcanvas.getOrCreateInstance(this.MobileFilterContainer);\r\n\t};\r\n\r\n\tpublic ConfigureReadMore = (): void =>\r\n\t{\r\n\t\tconst readClamp: NodeListOf = document.querySelectorAll(\".readClamp\");\r\n\r\n\t\tif (readClamp.length > 0)\r\n\t\t{\r\n\t\t\treadClamp.forEach(clamp =>\r\n\t\t\t{\r\n\t\t\t\tnew ReadMore(clamp);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tpublic ConfigureVisualFilters = (): void =>\r\n\t{\r\n\t\tthis.VisualFilters = [];\r\n\t\tconst visualFilters = document.querySelectorAll(\".visual\") as NodeListOf;\r\n\r\n\t\tif (visualFilters.length > 0)\r\n\t\t{\r\n\t\t\tvisualFilters.forEach((visualFilter: HTMLElement, index: number) =>\r\n\t\t\t{\r\n\t\t\t\tconst filterConfig: IVisualFilter = {\r\n\t\t\t\t\tToggleButton: visualFilter.querySelector(\".visual__toggle\") as HTMLElement,\r\n\t\t\t\t\tLessToggle: visualFilter.querySelector(\".visual__less\") as HTMLElement,\r\n\t\t\t\t\tMoreToggle: visualFilter.querySelector(\".visual__more\") as HTMLElement,\r\n\t\t\t\t\tMobileOff: visualFilter.querySelectorAll(\".visual__bubble--m-off\") as NodeListOf,\r\n\t\t\t\t\tDesktopOff: visualFilter.querySelectorAll(\".visual__bubble--d-off\") as NodeListOf,\r\n\t\t\t\t\tAllLinks: visualFilter.querySelectorAll(\".visual__bubble\") as NodeListOf\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.VisualFilters.push(filterConfig);\r\n\r\n\t\t\t\tconst toggleButton = this.VisualFilters[index].ToggleButton;\r\n\r\n\t\t\t\tif (toggleButton !== null)\r\n\t\t\t\t{\r\n\t\t\t\t\ttoggleButton.addEventListener(\"click\", (e) =>\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.ToggleVisualFilter(e, this.VisualFilters[index]);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t/// Counts the number of columns in the first row of products.\r\n\tpublic CountTopRow = (): void =>\r\n\t{\r\n\t\tlet columns = 0;\r\n\t\tconst resultsContainer = document.querySelector(\".results\");\r\n\t\tconst currentCount = parseInt(resultsContainer.getAttribute(\"data-cols\"), 10);\r\n\t\tconst results = document.querySelectorAll(\".results > div\") as NodeListOf;\r\n\r\n\t\tif (results !== null && results.length > 0)\r\n\t\t{\r\n\t\t\tfor (const column of results)\r\n\t\t\t{\r\n\t\t\t\tconst previous = column.previousElementSibling as HTMLElement;\r\n\r\n\t\t\t\tif (previous !== null)\r\n\t\t\t\t{\r\n\t\t\t\t\tif (column.offsetTop !== previous.offsetTop)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcolumns++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tcolumns++;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (columns !== currentCount)\r\n\t\t{\r\n\t\t\tif (resultsContainer !== null)\r\n\t\t\t{\r\n\t\t\t\tresultsContainer.setAttribute(\"data-cols\", columns.toString());\r\n\t\t\t\tthis.AddFiller(columns);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tpublic MobileFilterDestroy = (): void =>\r\n\t{\r\n\t\tthis.DesktopFilterEl.innerHTML = this.FilterEl.outerHTML;\r\n\t\tthis.MobileFilterEl.innerHTML = \"\";\r\n\t\tthis.MobileFilterInstance.hide();\r\n\t};\r\n\r\n\tpublic MobileFilterSetup = (): void =>\r\n\t{\r\n\t\tthis.MobileFilterEl.innerHTML = this.FilterEl.outerHTML;\r\n\t\tthis.DesktopFilterEl.innerHTML = \"\";\r\n\t};\r\n\r\n\tpublic MobileSortSetup = (): void =>\r\n\t{\r\n\t};\r\n\r\n\tpublic MobileSortDestroy = (): void =>\r\n\t{\r\n\t};\r\n\r\n\tpublic AddFiller(columns): void\r\n\t{\r\n\t};\r\n\r\n\tprivate ToggleVisualFilter = (e: Event, filterConfig: IVisualFilter): void =>\r\n\t{\r\n\t\te.preventDefault();\r\n\r\n\t\tif (filterConfig.MoreToggle !== null)\r\n\t\t{\r\n\t\t\tconst expand = filterConfig.MoreToggle.offsetParent !== null;\r\n\r\n\t\t\tif (expand)\r\n\t\t\t{\r\n\t\t\t\tfilterConfig.MoreToggle.style.display = \"none\";\r\n\t\t\t\tfilterConfig.LessToggle.style.display = \"\";\r\n\r\n\t\t\t\tfilterConfig.AllLinks.forEach((link) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tif (link.offsetParent === null)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlink.style.display = \"block\";\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlet linksToHide: NodeListOf;\r\n\r\n\t\t\t\tfilterConfig.MoreToggle.style.display = \"\";\r\n\t\t\t\tfilterConfig.LessToggle.style.display = \"none\";\r\n\r\n\t\t\t\tif (Media.IsMobile)\r\n\t\t\t\t{\r\n\t\t\t\t\tlinksToHide = filterConfig.MobileOff;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlinksToHide = filterConfig.DesktopOff;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlinksToHide.forEach((link) =>\r\n\t\t\t\t{\r\n\t\t\t\t\tlink.style.display = \"none\";\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}","import \"./Category.scss\";\r\n\r\nimport { BasePage } from \"@Tenants/Fun/Site/BasePage\";\r\nimport { BaseCategory } from \"@Base/Category/Category\";\r\nimport { Tenant } from \"@Utilities/Tenant\";\r\n\r\nexport class Category extends BaseCategory\r\n{\r\n\tconstructor()\r\n\t{\r\n\t\tsuper();\r\n\t}\r\n\r\n\tpublic Initialize(): void\r\n\t{\r\n\t\tsuper.Initialize();\r\n\t};\r\n}\r\n\r\nexport class CategoryPage extends BasePage\r\n{\r\n\tpublic Category: Category;\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.Category = new Category();\r\n\t};\r\n}\r\n\r\nconst category = new CategoryPage();","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","BaseCategory","constructor","RefreshTest","document","querySelector","ConfigureFilter","FilterEl","getElementById","DesktopFilterEl","MobileFilterEl","MobileFilterContainer","MobileFilterInstance","ConfigureReadMore","readClamp","querySelectorAll","length","forEach","clamp","ReadMore","ConfigureVisualFilters","VisualFilters","visualFilters","visualFilter","index","filterConfig","ToggleButton","LessToggle","MoreToggle","MobileOff","DesktopOff","AllLinks","push","toggleButton","addEventListener","e","ToggleVisualFilter","CountTopRow","columns","resultsContainer","currentCount","parseInt","getAttribute","results","column","previous","previousElementSibling","offsetTop","setAttribute","toString","AddFiller","MobileFilterDestroy","innerHTML","outerHTML","hide","MobileFilterSetup","MobileSortSetup","MobileSortDestroy","preventDefault","offsetParent","style","display","link","linksToHide","Media","IsMobile","noResultsPage","splitSearchPage","Initialize","MediaMobile","deferSetup","match","unmatch","Category","super","CategoryPage","BasePage","desc","ActualHeightPrevious","Clamped","ClampedHeight","Height","Opened","Container","Text","ReadMoreLink","ResizeHandler","ClampUpdate","ReadMoreClose","window","ClampRemove","removeEventListener","enable","DisplayHeight","ActualHeight","ClampApply","classList","remove","ReadMoreToggle","add","ReadMoreOpen","height","scrollHeight","elStyles","getComputedStyle"],"sourceRoot":""}