{
  "version": 3,
  "sources": ["ssg: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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",
  "names": ["PseudoCart", "_PseudoCart", "i", "r", "n", "c", "m", "PseudoFunc", "RenderTarget", "ue"]
}
