JezK
Edit File: library-08bc52a5.js.map
{"file":"library-08bc52a5.js","mappings":";;;AAUA;AACA,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,MAAM,gBAAgB,GAAG,kCAAkC,CAAC;AAE5D,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAe,CAAC;AAE5C,SAAS,YAAY;IACnB,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,YAAY,CAAC,OAAO,CAAC,IAAI;QACvB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;SAEe,SAAS,CAAC,IAAiB;IACzC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;SAEe,WAAW,CAAC,IAAiB;IAC3C,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;SAEe,cAAc,CAAC,IAAa;;;IAG1C,IAAI;QACF,OAAO,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAK,IAAI,CAAC,CAAC;KACvD;IAAC,MAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;SAEe,mBAAmB,CAAC,IAAY,EAAE,OAA2B;;IAE3E,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAK,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChC,aAAa,CAAC,IAAI,CAAC,CAAC;;IAGpB,IAAI;QACF,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,aAAa,CAAC,IAAI,WAAW,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;KAC7E;IAAC,MAAM,GAAE;AACZ,CAAC;AAMD,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,oDAAG,gBAAgB,EAAE,CAAC,CAAQ;;IACjD,MAAM,IAAI,GAAG,MAAC,CAAmC,CAAC,MAAM,0CAAE,IAAI,CAAC;IAC/D,IAAI,IAAI;QAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,IAAI,GAAG;IAAE,GAAG,CAAC,qBAAqB,GAAG,mBAAmB;;;;;;;","names":[],"sources":["src/components/ui/icon/library.ts"],"sourcesContent":["import { IconLibrary, IconLibraryOptions, IconLibraryMutator, IconLibraryResolver } from '../../../types';\n\n// Re-export for back-compat with any external consumers importing from here.\nexport type { IconLibrary, IconLibraryOptions, IconLibraryMutator, IconLibraryResolver };\n\ninterface WatchedIcon {\n library: string;\n redraw: () => void;\n}\n\n// Namespaced key to avoid colliding with `window.registry` from other plugins.\nconst REGISTRY_KEY = 'scIconLibraries';\nconst EVENT_REGISTERED = 'surecart:icon-library-registered';\n\nconst win = typeof window !== 'undefined' ? window : undefined;\nconst watchedIcons = new Set<WatchedIcon>();\n\nfunction readRegistry(): IconLibrary[] {\n if (!win) return [];\n return Array.isArray(win[REGISTRY_KEY]) ? win[REGISTRY_KEY] : [];\n}\n\nfunction writeRegistry(next: IconLibrary[]): void {\n if (!win) return;\n win[REGISTRY_KEY] = next;\n}\n\nfunction redrawForLibrary(name: string): void {\n watchedIcons.forEach(icon => {\n if (icon.library === name) icon.redraw();\n });\n}\n\nexport function watchIcon(icon: WatchedIcon) {\n watchedIcons.add(icon);\n}\n\nexport function unwatchIcon(icon: WatchedIcon) {\n watchedIcons.delete(icon);\n}\n\nexport function getIconLibrary(name?: string): IconLibrary | undefined {\n // Must never throw — a throw inside sc-icon's componentWillLoad breaks\n // Stencil's lazy loader and surfaces as \"Constructor for sc-*#undefined\".\n try {\n return readRegistry().find(lib => lib?.name === name);\n } catch {\n return undefined;\n }\n}\n\nexport function registerIconLibrary(name: string, options: IconLibraryOptions) {\n // Read-modify-write so concurrent bundles compose instead of clobbering.\n const next = readRegistry().filter(lib => lib?.name !== name);\n next.push({ name, ...options });\n writeRegistry(next);\n\n // Notify all bundles — listener below handles redraws.\n try {\n win?.dispatchEvent(new CustomEvent(EVENT_REGISTERED, { detail: { name } }));\n } catch {}\n}\n\nexport function unregisterIconLibrary(name: string) {\n writeRegistry(readRegistry().filter(lib => lib?.name !== name));\n}\n\nwin?.addEventListener?.(EVENT_REGISTERED, (e: Event) => {\n const name = (e as CustomEvent<{ name: string }>).detail?.name;\n if (name) redrawForLibrary(name);\n});\n\nif (win) win.ceRegisterIconLibrary = registerIconLibrary;\n"],"version":3}