{"version":3,"file":"D11xltp0.js","sources":["../../../../src/@types/tile-grid-type.ts","../../../../src/@types/tile-size.ts","../../../../src/components/tiles/useTiles.ts"],"sourcesContent":["export enum ETileGridType {\n UNSET = 'UNSET',\n SINGLE = 'SINGLE',\n CUSTOM = 'CUSTOM',\n SINGLE_HIGHLIGHT = 'SINGLE_HIGHLIGHT',\n SHOP = 'SHOP', //4er Grid for productTiles\n SHOP_SINGLE_MOBILE = 'SHOP_SINGLE_MOBILE',\n SHOP_ADVANCED = 'SHOP_ADVANCED', //1er Grid for productTile\n CAMPAIGN_SINGLE_MOBILE = 'CAMPAIGN_SINGLE_MOBILE',\n}\n\nexport type ITileOptimalHeightEntry = {\n id: number;\n yPos: number;\n contentHeight: number;\n};\n","export enum ETileSize {\n LARGE = 'LARGE',\n NORMAL = 'NORMAL',\n SLIM = 'SLIM',\n SHOP = 'SHOP', //4er Grid\n SHOP_SINGLE_MOBILE = 'SHOP_SINGLE_MOBILE',\n SHOP_ADVANCED = 'SHOP_ADVANCED', //1er Grid\n CAMPAIGN_SINGLE_MOBILE = 'CAMPAIGN_SINGLE_MOBILE',\n}\n","import { ETileSize } from '@/@types/tile-size';\nimport { ETileGridType } from '~~/src/@types/tile-grid-type';\nimport { SSR_safe_mq_breakpointIsMobile } from '~~/src/injectionSymbols';\nexport function useTiles() {\n const isMobile = inject(SSR_safe_mq_breakpointIsMobile);\n\n // @workaround: https://github.com/nuxt/nuxt/issues/21901\n const tileRefs = reactive<{ overline: HTMLDivElement }[]>([]);\n function updateItemRefs(el: any) {\n tileRefs.push(el);\n }\n\n onMounted(() => {\n // Timeout is needed, otherwise it wont update correctly on first load/SSR Hydration\n // works with 1ms, but 100 seemed to be safer\n setTimeout(() => setOverlineHeights(tileRefs), 100);\n useResizeObserver(document.body, () => setOverlineHeights(tileRefs));\n });\n\n function setOverlineHeights(tiles: { overline: HTMLDivElement }[]) {\n const map = Object.values(\n tiles.reduce(\n (map, tile) => {\n if (tile?.overline) {\n tile.overline.style.height = 'auto';\n const { y, height } = tile.overline.getBoundingClientRect();\n if (!map[y]) map[y] = [];\n map[y].push({\n height,\n el: tile.overline,\n });\n }\n\n return map;\n },\n {} as Record,\n ),\n );\n map.forEach((tileRow) => {\n const height = `${Math.max(...tileRow.map((cur) => cur.height))}px`;\n tileRow.forEach(({ el }) => {\n if (!isMobile.value) el.style.height = height;\n });\n });\n }\n\n function getSizeByGridType(\n gridType: ETileGridType,\n tileIndex: number,\n ): ETileSize {\n switch (gridType) {\n case ETileGridType.CUSTOM:\n if (tileIndex === 0) return ETileSize.LARGE;\n else if (tileIndex === 4) return ETileSize.SLIM;\n return ETileSize.NORMAL;\n case ETileGridType.UNSET:\n case ETileGridType.SINGLE:\n return ETileSize.NORMAL;\n case ETileGridType.SINGLE_HIGHLIGHT:\n return ETileSize.SLIM;\n case ETileGridType.SHOP: //4er GRid\n return ETileSize.SHOP;\n case ETileGridType.SHOP_SINGLE_MOBILE:\n return ETileSize.SHOP_SINGLE_MOBILE;\n case ETileGridType.SHOP_ADVANCED: //1er Grid\n return ETileSize.SHOP_ADVANCED;\n case ETileGridType.CAMPAIGN_SINGLE_MOBILE:\n return ETileSize.CAMPAIGN_SINGLE_MOBILE;\n default:\n return ETileSize.NORMAL;\n }\n }\n\n return {\n updateItemRefs,\n getSizeByGridType,\n };\n}\n"],"names":["ETileGridType","ETileSize","useTiles","isMobile","inject","SSR_safe_mq_breakpointIsMobile","tileRefs","reactive","updateItemRefs","el","onMounted","setOverlineHeights","useResizeObserver","tiles","map","tile","y","height","tileRow","cur","getSizeByGridType","gridType","tileIndex"],"mappings":"gEAAY,IAAAA,GAAAA,IACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,iBAAmB,mBACnBA,EAAA,KAAO,OACPA,EAAA,mBAAqB,qBACrBA,EAAA,cAAgB,gBAChBA,EAAA,uBAAyB,yBARfA,IAAAA,GAAA,CAAA,CAAA,ECAAC,GAAAA,IACVA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,mBAAqB,qBACrBA,EAAA,cAAgB,gBAChBA,EAAA,uBAAyB,yBAPfA,IAAAA,GAAA,CAAA,CAAA,ECGL,SAASC,GAAW,CACnB,MAAAC,EAAWC,EAAOC,CAA8B,EAGhDC,EAAWC,EAAyC,CAAA,CAAE,EAC5D,SAASC,EAAeC,EAAS,CAC/BH,EAAS,KAAKG,CAAE,CAClB,CAEAC,EAAU,IAAM,CAGd,WAAW,IAAMC,EAAmBL,CAAQ,EAAG,GAAG,EAClDM,EAAkB,SAAS,KAAM,IAAMD,EAAmBL,CAAQ,CAAC,CAAA,CACpE,EAED,SAASK,EAAmBE,EAAuC,CACrD,OAAO,OACjBA,EAAM,OACJ,CAACC,EAAKC,IAAS,CACb,GAAIA,GAAA,MAAAA,EAAM,SAAU,CACbA,EAAA,SAAS,MAAM,OAAS,OAC7B,KAAM,CAAE,EAAAC,EAAG,OAAAC,CAAA,EAAWF,EAAK,SAAS,wBAC/BD,EAAIE,CAAC,IAAGF,EAAIE,CAAC,EAAI,IACtBF,EAAIE,CAAC,EAAE,KAAK,CACV,OAAAC,EACA,GAAIF,EAAK,QAAA,CACV,CACH,CAEOD,OAAAA,CACT,EACA,CAAC,CACH,CAAA,EAEE,QAASI,GAAY,CACvB,MAAMD,EAAS,GAAG,KAAK,IAAI,GAAGC,EAAQ,IAAKC,GAAQA,EAAI,MAAM,CAAC,CAAC,KAC/DD,EAAQ,QAAQ,CAAC,CAAE,GAAAT,KAAS,CACrBN,EAAS,QAAOM,EAAG,MAAM,OAASQ,EAAA,CACxC,CAAA,CACF,CACH,CAES,SAAAG,EACPC,EACAC,EACW,CACX,OAAQD,EAAU,CAChB,KAAKrB,EAAc,OACjB,OAAIsB,IAAc,EAAUrB,EAAU,MAC7BqB,IAAc,EAAUrB,EAAU,KACpCA,EAAU,OACnB,KAAKD,EAAc,MACnB,KAAKA,EAAc,OACjB,OAAOC,EAAU,OACnB,KAAKD,EAAc,iBACjB,OAAOC,EAAU,KACnB,KAAKD,EAAc,KACjB,OAAOC,EAAU,KACnB,KAAKD,EAAc,mBACjB,OAAOC,EAAU,mBACnB,KAAKD,EAAc,cACjB,OAAOC,EAAU,cACnB,KAAKD,EAAc,uBACjB,OAAOC,EAAU,uBACnB,QACE,OAAOA,EAAU,MACrB,CACF,CAEO,MAAA,CACL,eAAAO,EACA,kBAAAY,CAAA,CAEJ"}