{"version":3,"file":"chunks/8db9f50af349f7.js","mappings":"gRAAA,IAAMA,EAAcC,SAASC,cAAc,gBAEtBC,EAAAA,W,6JACnB,WACE,OAAOH,EAAcA,EAAYI,aAAe,CACjD,I,yFAHkBD,G,0KCEAE,EAAAA,WAMnB,WAAYC,EAAsBC,I,4FAAwB,SACxDC,KAAKD,OAASA,EAEdC,KAAKC,aAAeF,EAAOE,aAC3BD,KAAKE,gBAAkBJ,EAAQJ,cAAc,kBAC7CM,KAAKG,eAAiBL,EAAQM,iBAAiB,iBAC/CJ,KAAKK,MACN,C,yCAED,WACEL,KAAKM,aACLN,KAAKO,cAAa,EACnB,G,yBAED,SAAYC,EAAkBC,GAC5B,IAAMC,EAAQF,EAAQG,mBAChBC,EAAaJ,EAAQd,cAAc,WAEnCmB,EAAWb,KAAKD,OAAOc,SAAWb,KAAKD,OAAOc,SAAW,OACzDC,EAAWd,KAAKD,OAAOe,SAAWd,KAAKD,OAAOe,SAAW,OAE3DC,GAAWL,aAAA,EAAAA,EAAOM,UAAUC,SAAS,aAAa,EAElDR,IACFM,EAA0B,gBAAfN,GAIRG,GAAeF,IAIfK,GAMHH,EAAWM,UAAYL,EACvBH,EAAMM,UAAUG,OAAO,UACvBX,EAAQQ,UAAUG,OAAO,UACzBX,EAAQY,aAAa,aAAcP,KARnCD,EAAWM,UAAYJ,EACvBJ,EAAMM,UAAUK,IAAI,UACpBb,EAAQQ,UAAUK,IAAI,UACtBb,EAAQY,aAAa,aAAcN,IAOtC,G,0BAED,SAAaQ,GACX,IAAK,IAAIC,EAAI,EAAGA,EAAIvB,KAAKG,eAAeqB,OAAQD,IAC9C,GAAIE,OAAOC,SAASC,MAAQ,IAAM3B,KAAKG,eAAeoB,GAAGK,GAAI,CAC3D5B,KAAK6B,YAAY7B,KAAKG,eAAeoB,IACrCE,OAAOK,SAAS,EAAGL,OAAOM,QAAUpC,EAAaqC,UAC7CV,GAEFW,YAAW,WACTR,OAAOK,SAAS,EAAGL,OAAOM,QAAUpC,EAAaqC,SAAW,GAC7D,GAAE,IAEL,KACD,CAEJ,G,wBAED,WAAa,WACXP,OAAOS,iBAAiB,cAAc,WACpC,EAAK3B,cACN,IAED,IALW,IA6BY,EA7BZ,WAKFgB,GACP,EAAKpB,eAAeoB,GAAGW,iBAAiB,SAAS,SAACC,GAChDA,EAAEC,iBACFD,EAAEE,cAAe,EACjBF,EAAEG,QAAU,EAAKT,YAAYM,EAAEG,OAChC,IAGD,EAAKnC,eAAeoB,GAAGnB,iBAAiB,cAAcmC,SAAQ,SAACC,GAC7DA,EAASN,iBAAiB,SAAS,WACjC,IAAMO,EAAiB,EAAKtC,eAAeoB,GAAGK,GACxCc,EAAkB,GAAH,OAAMjB,OAAOC,SAASiB,KAAKC,QAAQ,OAAQ,IAA3C,YAAkDC,mBAAmBJ,IAE1FK,UAAUC,UAAUC,UAAUN,GAAiBO,MAAK,WAGlDT,EAASxB,UAAUK,IAAI,WACvBY,YAAW,WACTO,EAASxB,UAAUG,OAAO,UAC3B,GAAE,IACJ,GACF,GACF,GA3BQ,EAKFI,EAAI,EAAGA,EAAIvB,KAAKG,eAAeqB,OAAQD,IAAK,EAA5CA,GAwBLvB,KAAKC,eACP,UAAAD,KAAKE,uBAAL,SAAsBgC,iBAAiB,SAAS,SAACC,GAC/C,IAAMe,EAAgBf,EAAEG,OACxBY,EAAclC,UAAUmC,OAAO,eAC/B,IAAMC,EAAaF,EAAclC,UAAUC,SAAS,eAC9CoC,EAAWD,EAAa,EAAKrD,OAAOuD,YAAc,EAAKvD,OAAOU,YACpEyC,EAAchC,UAAYmC,EAC1BH,EAAc9B,aAAa,aAAciC,GAEzC,IAAK,IAAI9B,EAAI,EAAGA,EAAI,EAAKpB,eAAeqB,OAAQD,IAC9C,EAAKM,YAAY,EAAK1B,eAAeoB,GAAI6B,EAAa,mBAAqB,eAE9E,IAEJ,M,sEA9GkBvD,E","sources":["webpack:///./resources/js/buyer-experience/common/has-a-sticky.ts","webpack:///./resources/js/components/generic/features-table.ts"],"sourcesContent":["const stuckHeader = document.querySelector('.imkt-sticky') as HTMLElement;\n\nexport default class StickyHeader {\n static height() {\n return stuckHeader ? stuckHeader.offsetHeight : 0;\n }\n}\n","import StickyHeader from '../../buyer-experience/common/has-a-sticky';\n\ntype FeaturesParams = { showText: string; hideText: string; showAllText: string; hideAllText: string; useExpandAll: boolean; };\n\nexport default class FeaturesTable {\n params: FeaturesParams;\n useExpandAll: boolean;\n expandAllButton: Element | null;\n clickyThingies: NodeListOf;\n\n constructor(domRoot: HTMLElement, params: FeaturesParams) {\n this.params = params;\n\n this.useExpandAll = params.useExpandAll;\n this.expandAllButton = domRoot.querySelector('.show-hide-all');\n this.clickyThingies = domRoot.querySelectorAll('.feature-name');\n this.init();\n }\n\n init() {\n this.bindEvents();\n this.expandByHash(true);\n }\n\n expandEvent(feature: Element, showAllText?: string) {\n const table = feature.nextElementSibling;\n const toggleText = feature.querySelector('.toggle');\n\n const showText = this.params.showText ? this.params.showText : \"Show\";\n const hideText = this.params.hideText ? this.params.hideText : \"Show\";\n\n let isActive = table?.classList.contains('active') || false;\n\n if (showAllText) {\n isActive = showAllText == \"hideAllItems\";\n }\n\n // Assert that selectors returned elements and not null (to staify TS type enforcement)\n if (!toggleText || !table) {\n return;\n }\n\n if (!isActive) {\n toggleText.innerHTML = hideText;\n table.classList.add('active');\n feature.classList.add(\"active\");\n feature.setAttribute(\"data-label\", hideText);\n } else {\n toggleText.innerHTML = showText;\n table.classList.remove('active');\n feature.classList.remove(\"active\");\n feature.setAttribute(\"data-label\", showText);\n }\n }\n\n expandByHash(initialization?: boolean) {\n for (let i = 0; i < this.clickyThingies.length; i++) {\n if (window.location.hash == '#' + this.clickyThingies[i].id) {\n this.expandEvent(this.clickyThingies[i]);\n window.scrollTo(0, window.scrollY - StickyHeader.height());\n if (initialization) {\n /* on initalization, make a second call (this combats the loading jank) */\n setTimeout(() => {\n window.scrollTo(0, window.scrollY - StickyHeader.height() - 10);\n }, 50);\n }\n break;\n }\n }\n }\n\n bindEvents() {\n window.addEventListener(\"hashchange\", () => {\n this.expandByHash();\n });\n\n for (let i = 0; i < this.clickyThingies.length; i++) {\n this.clickyThingies[i].addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.cancelBubble = true;\n e.target && this.expandEvent(e.target as Element);\n });\n\n // Bind copy header URL to clipboard and \"copied\" tooltip functionality\n this.clickyThingies[i].querySelectorAll('.copy-link').forEach((copyLink) => {\n copyLink.addEventListener(\"click\", () => {\n const clickyThingyId = this.clickyThingies[i].id;\n const headerAnchorUrl = `${window.location.href.replace(/#.*/i, '')}#${encodeURIComponent(clickyThingyId)}`;\n \n navigator.clipboard.writeText(headerAnchorUrl).then(() => {\n\n // Show success label (simple, no state management, use naive timeouts)\n copyLink.classList.add('success');\n setTimeout(() => {\n copyLink.classList.remove('success');\n }, 3000);\n });\n });\n });\n }\n if (this.useExpandAll) {\n this.expandAllButton?.addEventListener(\"click\", (e) => {\n const targetElement = e.target as HTMLElement;\n targetElement.classList.toggle(\"showing-all\");\n const shouldShow = targetElement.classList.contains(\"showing-all\");\n const newLabel = shouldShow ? this.params.hideAllText : this.params.showAllText;\n targetElement.innerHTML = newLabel;\n targetElement.setAttribute('data-label', newLabel);\n\n for (let i = 0; i < this.clickyThingies.length; i++) {\n this.expandEvent(this.clickyThingies[i], shouldShow ? \"activateAllItems\" : \"hideAllItems\");\n }\n });\n }\n }\n\n}\n"],"names":["stuckHeader","document","querySelector","StickyHeader","offsetHeight","FeaturesTable","domRoot","params","this","useExpandAll","expandAllButton","clickyThingies","querySelectorAll","init","bindEvents","expandByHash","feature","showAllText","table","nextElementSibling","toggleText","showText","hideText","isActive","classList","contains","innerHTML","remove","setAttribute","add","initialization","i","length","window","location","hash","id","expandEvent","scrollTo","scrollY","height","setTimeout","addEventListener","e","preventDefault","cancelBubble","target","forEach","copyLink","clickyThingyId","headerAnchorUrl","href","replace","encodeURIComponent","navigator","clipboard","writeText","then","targetElement","toggle","shouldShow","newLabel","hideAllText"],"sourceRoot":""}