{"version":3,"file":"global.C8tHMsEf.mjs","names":["o"],"sources":["https:/cdn.jsdelivr.net/gh/AframeStudio/framer-plugins-lib/pseudo-cart/global.js"],"sourcesContent":["import { RenderTarget as o } from \"framer\";\nimport { useEffect as a } from \"react\";\nexport class PseudoCart {\n    constructor() {\n        (this.storageKey = \"pseudo-cart\"), (this.listeners = {});\n    }\n    addListener(e, t) {\n        this.listeners[e] ? this.listeners[e].push(t) : (this.listeners[e] = [t]);\n    }\n    removeListener(e, t) {\n        this.listeners[e] &&\n            (this.listeners[e] = this.listeners[e].filter((i) => i !== t));\n    }\n    dispatchEvent(e, t) {\n        if (this.listeners[e]) for (const i of this.listeners[e]) i(t);\n    }\n    get items() {\n        try {\n            return JSON.parse(localStorage.getItem(this.storageKey)) || [];\n        } catch {\n            return [];\n        }\n    }\n    set items(e) {\n        try {\n            localStorage.setItem(this.storageKey, JSON.stringify(e));\n        } catch (t) {\n            console.warn(\"cart failed to store\", t);\n        }\n    }\n    addItem(e) {\n        this.items.findIndex((i) => i.key === e.key) == -1 &&\n            (this.items = [...this.items, e]),\n            this.dispatchEvent(\"itemschange\", this.items);\n    }\n    removeItem(e) {\n        (this.items = this.items.filter((t) => t.key !== e.key)),\n            this.dispatchEvent(\"itemschange\", this.items);\n    }\n    containsItem(e) {\n        return this.items.some((t) => t.key === e);\n    }\n    getItem(e) {\n        return this.items.find((t) => t.key === e);\n    }\n    updateItemCount(e, t) {\n        const i = this.items.findIndex((r) => r.key === e);\n        if (i === -1) return;\n        const n = this.items[i],\n            c = n.count + t;\n        if (c < 1) {\n            this.removeItem(n);\n            return;\n        }\n        const m = Object.assign(Object.assign({}, n), { count: c });\n        (this.items = this.items.map((r) => (r.key === n.key ? m : r))),\n            this.dispatchEvent(\"#\" + n.key, m),\n            this.dispatchEvent(\"itemchange\", n);\n    }\n    clear() {\n        localStorage.removeItem(this.storageKey);\n        this.dispatchEvent(\"itemschange\", this.items);\n    }\n    static get Instance() {\n        return PseudoCart.e || (PseudoCart.e = new PseudoCart()), this.e;\n    }\n}\nexport const PseudoFunc = {\n    getInCanvas: () => o.current() !== o.preview,\n    findElement: (s) => {\n        if (s) return s.closest(\"[data-cart-key]\");\n    },\n    findDataKey: (s) => {\n        const e = PseudoFunc.findElement(s);\n        if (e) return e.dataset.cartKey;\n    },\n    findCartItem: (s) => {\n        const e = PseudoFunc.findDataKey(s);\n        if (e) return PseudoCart.Instance.getItem(e);\n    },\n    findItem: (s) => {\n        const e = PseudoFunc.findElement(s);\n        if (!e) return;\n        const t = e.dataset.cartKey;\n        if (!t) return;\n        const i = PseudoCart.Instance.getItem(t);\n        return i || e.cartData;\n    },\n    useItemsChange: (s, e) => {\n        a(() => {\n            if (!PseudoFunc.getInCanvas())\n                return (\n                    PseudoCart.Instance.addListener(\"itemschange\", s),\n                    e && s(PseudoCart.Instance.items),\n                    () => {\n                        PseudoCart.Instance.removeListener(\"itemschange\", s);\n                    }\n                );\n        }, []);\n    },\n    useItemChange: (s, e) => {\n        a(() => {\n            if (!PseudoFunc.getInCanvas())\n                return (\n                    PseudoCart.Instance.addListener(\"itemchange\", s),\n                    e && s(PseudoCart.Instance.items),\n                    () => {\n                        PseudoCart.Instance.removeListener(\"itemchange\", s);\n                    }\n                );\n        }, []);\n    },\n    useTargetItemChange: (s, e) => {\n        a(() => {\n            if (PseudoFunc.getInCanvas()) return;\n            const t = PseudoFunc.findDataKey(e.current);\n            if (t)\n                return (\n                    PseudoCart.Instance.addListener(\"#\" + t, s),\n                    () => {\n                        PseudoCart.Instance.removeListener(\"#\" + t, s);\n                    }\n                );\n        }, []);\n    },\n};\nexport default function h(s) {\n    return (\n        (window.PseudoCart = PseudoCart),\n        (window.PseudoFunc = PseudoFunc),\n        (e) => React.createElement(s, Object.assign({}, e))\n    );\n}\n"],"mappings":"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"}