drizzle-cube 0.5.0 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/adapters/express/index.cjs +2 -2
- package/dist/adapters/express/index.js +106 -102
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.js +109 -105
- package/dist/adapters/{handler-3LGcjLtr.js → handler-BC3nFNxV.js} +2 -2
- package/dist/adapters/{handler-BzzbVpcl.cjs → handler-Cqf-CqAS.cjs} +2 -2
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +41 -45
- package/dist/adapters/locale-BoiA6WiV.cjs +198 -0
- package/dist/adapters/{locale-DTnJrxm1.js → locale-D9VQkLXt.js} +442 -404
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.d.ts +7 -3
- package/dist/adapters/mcp-tools.js +28 -28
- package/dist/adapters/mcp-transport-B0mgxRnJ.js +579 -0
- package/dist/adapters/mcp-transport-irsahKmD.cjs +39 -0
- package/dist/adapters/mcp-transport.d.ts +14 -2
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +140 -136
- package/dist/adapters/{openai-C4BD8xnN.cjs → openai-B4N3KfTG.cjs} +1 -1
- package/dist/adapters/{openai-CaSQEduB.js → openai-BWdm0JvG.js} +1 -1
- package/dist/adapters/openai-CoqT_FM5.cjs +16 -0
- package/dist/{server/openai-CqZg6zYL.js → adapters/openai-D0Nsvc9L.js} +824 -720
- package/dist/adapters/{utils-DOg9oGdt.js → utils-CTYvfZ3I.js} +711 -713
- package/dist/adapters/{utils-DNrj-ryp.cjs → utils-XPOzzMdY.cjs} +5 -5
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +38 -2
- package/dist/adapters/utils.js +1 -1
- package/dist/cli/index.cjs +2 -2
- package/dist/client/charts.js +10 -10
- package/dist/client/chunks/{DashboardEditModal-cSSIAZGy.js → DashboardEditModal-IU_0dgfC.js} +12 -12
- package/dist/client/chunks/{DashboardEditModal-cSSIAZGy.js.map → DashboardEditModal-IU_0dgfC.js.map} +1 -1
- package/dist/client/chunks/{FieldSearchModal-CZNo4pNK.js → FieldSearchModal-BCWanpPX.js} +3 -3
- package/dist/client/chunks/{FieldSearchModal-CZNo4pNK.js.map → FieldSearchModal-BCWanpPX.js.map} +1 -1
- package/dist/client/chunks/KpiDelta-_igN6cJa.js +2 -0
- package/dist/client/chunks/KpiNumber-t5n8PtRU.js +2 -0
- package/dist/client/chunks/KpiText-BCZJJ6a0.js +2 -0
- package/dist/client/chunks/{RetentionCombinedChart-BD8tGeM_.js → RetentionCombinedChart-CQMBODsK.js} +2 -2
- package/dist/client/chunks/{RetentionCombinedChart-BD8tGeM_.js.map → RetentionCombinedChart-CQMBODsK.js.map} +1 -1
- package/dist/client/chunks/SchemaVisualization-BUUhlOvG.js +2 -0
- package/dist/client/chunks/SchemaVisualizationLazy-CwaPCUL0.js +2 -0
- package/dist/client/chunks/{analysis-builder-BeVZhiQ5.js → analysis-builder-Dm6eD_AX.js} +6 -6
- package/dist/client/chunks/{analysis-builder-BeVZhiQ5.js.map → analysis-builder-Dm6eD_AX.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-BWc7ZZnG.js → analysis-builder-shared-DT5bXwCA.js} +6 -6
- package/dist/client/chunks/{analysis-builder-shared-BWc7ZZnG.js.map → analysis-builder-shared-DT5bXwCA.js.map} +1 -1
- package/dist/client/chunks/{chart-area-D63kG8OT.js → chart-area-DDti9Qtp.js} +2 -2
- package/dist/client/chunks/{chart-area-D63kG8OT.js.map → chart-area-DDti9Qtp.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-BEfsCLjl.js → chart-bar-B3s9qDlh.js} +2 -2
- package/dist/client/chunks/{chart-bar-BEfsCLjl.js.map → chart-bar-B3s9qDlh.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-C3Xh9jwL.js → chart-data-table-Qrt6EAno.js} +17 -17
- package/dist/client/chunks/{chart-data-table-C3Xh9jwL.js.map → chart-data-table-Qrt6EAno.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-CYE0S1x_.js → chart-kpi-delta-CgldZ7zO.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-CYE0S1x_.js.map → chart-kpi-delta-CgldZ7zO.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-BlZ79xHW.js → chart-kpi-number-ByfuX1ki.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-BlZ79xHW.js.map → chart-kpi-number-ByfuX1ki.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-DY1BnxPe.js → chart-kpi-text-DeNuDraJ.js} +2 -2
- package/dist/client/chunks/{chart-kpi-text-DY1BnxPe.js.map → chart-kpi-text-DeNuDraJ.js.map} +1 -1
- package/dist/client/chunks/{chart-line-CBsTThTv.js → chart-line-RdZwtk27.js} +2 -2
- package/dist/client/chunks/{chart-line-CBsTThTv.js.map → chart-line-RdZwtk27.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-BWaWVkuz.js → chart-markdown-CiGRZdJj.js} +1203 -1139
- package/dist/client/chunks/chart-markdown-CiGRZdJj.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-B41qCTBG.js → chart-measure-profile-Ckjw9bX6.js} +2 -2
- package/dist/client/chunks/{chart-measure-profile-B41qCTBG.js.map → chart-measure-profile-Ckjw9bX6.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-Djbu8x2v.js → chart-pie-BvY4FY__.js} +2 -2
- package/dist/client/chunks/{chart-pie-Djbu8x2v.js.map → chart-pie-BvY4FY__.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-BsTcKV0K.js → chart-radar-DjiiEAmc.js} +2 -2
- package/dist/client/chunks/{chart-radar-BsTcKV0K.js.map → chart-radar-DjiiEAmc.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-Du7XNnwE.js → chart-radial-bar-lla_JEYu.js} +2 -2
- package/dist/client/chunks/{chart-radial-bar-Du7XNnwE.js.map → chart-radial-bar-lla_JEYu.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-D8krEYsA.js → chart-scatter-DwXnI0rr.js} +2 -2
- package/dist/client/chunks/{chart-scatter-D8krEYsA.js.map → chart-scatter-DwXnI0rr.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-C5C2iaWM.js → chart-tree-map-DJHoA26f.js} +2 -2
- package/dist/client/chunks/{chart-tree-map-C5C2iaWM.js.map → chart-tree-map-DJHoA26f.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-BGdPrJ5Y.js → chart-waterfall-Y7c8csO5.js} +2 -2
- package/dist/client/chunks/{chart-waterfall-BGdPrJ5Y.js.map → chart-waterfall-Y7c8csO5.js.map} +1 -1
- package/dist/client/chunks/{core-DcfMGTVa.js → core-Dk6z6kC0.js} +2 -2
- package/dist/client/chunks/{core-DcfMGTVa.js.map → core-Dk6z6kC0.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-CcjgM-qg.js → exceljs.min-DaJsLlWM.js} +24 -24
- package/dist/client/chunks/{exceljs.min-CcjgM-qg.js.map → exceljs.min-DaJsLlWM.js.map} +1 -1
- package/dist/client/chunks/{schema-visualization-Xp60Ff2W.js → schema-visualization-DWwJukK7.js} +8 -8
- package/dist/client/chunks/{schema-visualization-Xp60Ff2W.js.map → schema-visualization-DWwJukK7.js.map} +1 -1
- package/dist/client/chunks/{syntaxHighlighting-CnDujqwg.js → syntaxHighlighting-D8J6Yt9j.js} +2 -2
- package/dist/client/chunks/{syntaxHighlighting-CnDujqwg.js.map → syntaxHighlighting-D8J6Yt9j.js.map} +1 -1
- package/dist/client/chunks/{useDebounce-CfmUMFau.js → useDebounce-DyJVREop.js} +2 -2
- package/dist/client/chunks/{useDebounce-CfmUMFau.js.map → useDebounce-DyJVREop.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-BKGmejIj.js → useExplainAI-CxSkjocM.js} +4 -4
- package/dist/client/chunks/{useExplainAI-BKGmejIj.js.map → useExplainAI-CxSkjocM.js.map} +1 -1
- package/dist/client/chunks/{utils-BldkcRHv.js → utils-BHZdKxua.js} +2 -2
- package/dist/client/chunks/{utils-BldkcRHv.js.map → utils-BHZdKxua.js.map} +1 -1
- package/dist/client/chunks/{vendor-ClXpIiea.js → vendor-CBD_Olr0.js} +8 -8
- package/dist/client/chunks/{vendor-ClXpIiea.js.map → vendor-CBD_Olr0.js.map} +1 -1
- package/dist/client/components.js +3 -3
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +11 -11
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/utils.js +5 -5
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +39 -37
- package/dist/server/index.cjs +42 -42
- package/dist/server/index.js +1009 -971
- package/dist/server/{openai-D9Zjuby1.cjs → openai-BfiZU0rG.cjs} +1 -1
- package/dist/server/openai-BwsBio1K.cjs +16 -0
- package/dist/server/{openai-rwauPzCT.js → openai-CLWSwD-D.js} +1 -1
- package/dist/{adapters/openai-BAnEZgKZ.js → server/openai-zpXlGbbF.js} +824 -720
- package/package.json +2 -2
- package/dist/adapters/locale-DueXjqMh.cjs +0 -198
- package/dist/adapters/mcp-transport-45SiFcCH.cjs +0 -39
- package/dist/adapters/mcp-transport-Bxpc4mRy.js +0 -553
- package/dist/adapters/openai-4JP2B6pB.cjs +0 -16
- package/dist/client/chunks/KpiDelta-Dll_eCV1.js +0 -2
- package/dist/client/chunks/KpiNumber-BPlR92hI.js +0 -2
- package/dist/client/chunks/KpiText-BIxq7Jso.js +0 -2
- package/dist/client/chunks/SchemaVisualization-CCICjhvv.js +0 -2
- package/dist/client/chunks/SchemaVisualizationLazy-DraGsMx6.js +0 -2
- package/dist/client/chunks/chart-markdown-BWaWVkuz.js.map +0 -1
- package/dist/server/openai-DmuEbFd6.cjs +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor-ClXpIiea.js","names":["React3","#client","#updateResult","#currentMutation","#notify","#currentResult","#mutateOptions","#client","#options","#queries","#observers","#result","#onUpdate","#findMatchingObservers","#observerMatches","#notify","#combineResult","#trackResult","#lastQueryHashes","#combinedResult","#lastResult","#lastCombine","React","React"],"sources":["../../../node_modules/react-intersection-observer/dist/index.mjs","../../../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../../node_modules/@tanstack/react-query/build/modern/useMutation.js","../../../node_modules/zustand/esm/vanilla.mjs","../../../node_modules/zustand/esm/react.mjs","../../../node_modules/zustand/esm/middleware.mjs","../../../node_modules/zustand/esm/vanilla/shallow.mjs","../../../node_modules/zustand/esm/react/shallow.mjs","../../../node_modules/lz-string/libs/lz-string.js"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a2;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n [...(_a2 = elements.get(entry.target)) != null ? _a2 : []].forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"lastInView\");\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n this.lastInView = this.props.initialInView;\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n const previousInView = this.lastInView;\n this.lastInView = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n this.lastInView = props.initialInView;\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n if (this.lastInView === void 0) {\n this.lastInView = this.props.initialInView;\n }\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-expect-error\n trackVisibility,\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a2;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef(onChange);\n const lastInViewRef = React2.useRef(initialInView);\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (lastInViewRef.current === void 0) {\n lastInViewRef.current = initialInView;\n }\n if (skip || !ref) return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n const previousInView = lastInViewRef.current;\n lastInViewRef.current = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n setState({\n inView,\n entry\n });\n if (callback.current) callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-expect-error\n trackVisibility,\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a2 = state.entry) == null ? void 0 : _a2.target;\n const previousEntryTarget = React2.useRef(void 0);\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n lastInViewRef.current = initialInView;\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\n// src/useOnInView.tsx\nimport * as React3 from \"react\";\nvar _a, _b;\nvar useSyncEffect = (_b = (_a = \"useInsertionEffect\" in React3 ? React3.useInsertionEffect : void 0) != null ? _a : React3.useLayoutEffect) != null ? _b : React3.useEffect;\nvar useOnInView = (onIntersectionChange, {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n triggerOnce,\n skip\n} = {}) => {\n const onIntersectionChangeRef = React3.useRef(onIntersectionChange);\n const observedElementRef = React3.useRef(null);\n const observerCleanupRef = React3.useRef(void 0);\n const lastInViewRef = React3.useRef(void 0);\n useSyncEffect(() => {\n onIntersectionChangeRef.current = onIntersectionChange;\n }, [onIntersectionChange]);\n return React3.useCallback(\n (element) => {\n const cleanupExisting = () => {\n if (observerCleanupRef.current) {\n const cleanup = observerCleanupRef.current;\n observerCleanupRef.current = void 0;\n cleanup();\n }\n };\n if (element === observedElementRef.current) {\n return observerCleanupRef.current;\n }\n if (!element || skip) {\n cleanupExisting();\n observedElementRef.current = null;\n lastInViewRef.current = void 0;\n return;\n }\n cleanupExisting();\n observedElementRef.current = element;\n let destroyed = false;\n const destroyObserver = observe(\n element,\n (inView, entry) => {\n const previousInView = lastInViewRef.current;\n lastInViewRef.current = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n onIntersectionChangeRef.current(\n inView,\n entry\n );\n if (triggerOnce && inView) {\n stopObserving();\n }\n },\n {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay\n }\n );\n function stopObserving() {\n if (destroyed) return;\n destroyed = true;\n destroyObserver();\n observedElementRef.current = null;\n observerCleanupRef.current = void 0;\n lastInViewRef.current = void 0;\n }\n observerCleanupRef.current = stopObserving;\n return observerCleanupRef.current;\n },\n [\n Array.isArray(threshold) ? threshold.toString() : threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n triggerOnce,\n skip\n ]\n );\n};\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView,\n useOnInView\n};\n//# sourceMappingURL=index.mjs.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #lastQueryHashes;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches;\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine, queryHashes);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine, queryHashes) {\n if (combine) {\n const lastHashes = this.#lastQueryHashes;\n const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n if (!this.#combinedResult || this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n if (queryHashes !== void 0) {\n this.#lastQueryHashes = queryHashes;\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult;\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const newResult = this.#combineResult(newTracked, this.#options?.combine);\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions);\n const query = client.getQueryCache().get(queryOptions.queryHash);\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts && shouldSuspend(opts, result)) {\n const queryObserver = new QueryObserver(client, opts);\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst shouldDispatchFromDevtools = (api) => !!api.dispatchFromDevtools && typeof api.dispatch === \"function\";\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = ((state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n });\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (shouldDispatchFromDevtools(api)) {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (shouldDispatchFromDevtools(api)) {\n api.dispatch(action);\n }\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = ((selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n });\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => window.localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n let hydrationVersion = 0;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n return setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n return setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n const currentVersion = ++hydrationVersion;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n if (currentVersion !== hydrationVersion) {\n return;\n }\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(get(), void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nfunction ssrSafe(config, isSSR = typeof window === \"undefined\") {\n return (set, get, api) => {\n if (!isSSR) {\n return config(set, get, api);\n }\n const ssrSet = () => {\n throw new Error(\"Cannot set state of Zustand store in SSR\");\n };\n api.setState = ssrSet;\n return config(ssrSet, get, api);\n };\n}\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector, ssrSafe as unstable_ssrSafe };\n","const isIterable = (obj) => Symbol.iterator in obj;\nconst hasIterableEntries = (value) => (\n // HACK: avoid checking entries type\n \"entries\" in value\n);\nconst compareEntries = (valueA, valueB) => {\n const mapA = valueA instanceof Map ? valueA : new Map(valueA.entries());\n const mapB = valueB instanceof Map ? valueB : new Map(valueB.entries());\n if (mapA.size !== mapB.size) {\n return false;\n }\n for (const [key, value] of mapA) {\n if (!mapB.has(key) || !Object.is(value, mapB.get(key))) {\n return false;\n }\n }\n return true;\n};\nconst compareIterables = (valueA, valueB) => {\n const iteratorA = valueA[Symbol.iterator]();\n const iteratorB = valueB[Symbol.iterator]();\n let nextA = iteratorA.next();\n let nextB = iteratorB.next();\n while (!nextA.done && !nextB.done) {\n if (!Object.is(nextA.value, nextB.value)) {\n return false;\n }\n nextA = iteratorA.next();\n nextB = iteratorB.next();\n }\n return !!nextA.done && !!nextB.done;\n};\nfunction shallow(valueA, valueB) {\n if (Object.is(valueA, valueB)) {\n return true;\n }\n if (typeof valueA !== \"object\" || valueA === null || typeof valueB !== \"object\" || valueB === null) {\n return false;\n }\n if (Object.getPrototypeOf(valueA) !== Object.getPrototypeOf(valueB)) {\n return false;\n }\n if (isIterable(valueA) && isIterable(valueB)) {\n if (hasIterableEntries(valueA) && hasIterableEntries(valueB)) {\n return compareEntries(valueA, valueB);\n }\n return compareIterables(valueA, valueB);\n }\n return compareEntries(\n { entries: () => Object.entries(valueA) },\n { entries: () => Object.entries(valueB) }\n );\n}\n\nexport { shallow };\n","import React from 'react';\nimport { shallow } from 'zustand/vanilla/shallow';\n\nfunction useShallow(selector) {\n const prev = React.useRef(void 0);\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10],"mappings":";;;;;AASA,IAAI,oBAA8B,IAAI,KAAK,EACvC,oBAA0B,IAAI,SAAS,EACvC,IAAS,GACT;AAIJ,SAAS,EAAU,GAAM;AAKvB,QAJK,IACD,EAAQ,IAAI,EAAK,GAAS,EAAQ,IAAI,EAAK,IAC/C,KAAU,GACV,EAAQ,IAAI,GAAM,EAAO,UAAU,CAAC,EAC7B,EAAQ,IAAI,EAAK,IAJN;;AAMpB,SAAS,EAAY,GAAS;AAC5B,QAAO,OAAO,KAAK,EAAQ,CAAC,MAAM,CAAC,QAChC,MAAQ,EAAQ,OAAS,KAAK,EAChC,CAAC,KAAK,MACE,GAAG,EAAI,GAAG,MAAQ,SAAS,EAAU,EAAQ,KAAK,GAAG,EAAQ,KACpE,CAAC,UAAU;;AAEf,SAAS,EAAe,GAAS;CAC/B,IAAM,IAAK,EAAY,EAAQ,EAC3B,IAAW,EAAY,IAAI,EAAG;AAClC,KAAI,CAAC,GAAU;EACb,IAAM,oBAA2B,IAAI,KAAK,EACtC,GACE,IAAW,IAAI,sBAAsB,MAAY;AACrD,KAAQ,SAAS,MAAU;IAEzB,IAAM,IAAS,EAAM,kBAAkB,EAAW,MAAM,MAAc,EAAM,qBAAqB,EAAU;AAI3G,IAHI,EAAQ,mBAA0B,EAAM,cAAc,WACxD,EAAM,YAAY,IAEpB,CAAC,GAAU,EAAS,IAAI,EAAM,OAAO,IAAkB,EAAE,CAAC,CAAC,SAAS,MAAa;AAC/E,OAAS,GAAQ,EAAM;MACvB;KACF;KACD,EAAQ;AAOX,EANA,IAAa,EAAS,eAAe,MAAM,QAAQ,EAAQ,UAAU,GAAG,EAAQ,YAAY,CAAC,EAAQ,aAAa,EAAE,GACpH,IAAW;GACT;GACA;GACA;GACD,EACD,EAAY,IAAI,GAAI,EAAS;;AAE/B,QAAO;;AAET,SAAS,EAAQ,GAAS,GAAU,IAAU,EAAE,EAAE,IAAiB,GAAkB;AACnF,KAAW,OAAO,yBAAyB,UAAe,MAAmB,KAAK,GAAG;EACnF,IAAM,IAAS,EAAQ,uBAAuB;AAU9C,SATA,EAAS,GAAgB;GACvB,gBAAgB;GAChB,QAAQ;GACR,mBAAmB,OAAO,EAAQ,aAAc,WAAW,EAAQ,YAAY;GAC/E,MAAM;GACN,oBAAoB;GACpB,kBAAkB;GAClB,YAAY;GACb,CAAC,QACW;;CAGf,IAAM,EAAE,OAAI,aAAU,gBAAa,EAAe,EAAQ,EACpD,IAAY,EAAS,IAAI,EAAQ,IAAI,EAAE;AAM7C,QALK,EAAS,IAAI,EAAQ,IACxB,EAAS,IAAI,GAAS,EAAU,EAElC,EAAU,KAAK,EAAS,EACxB,EAAS,QAAQ,EAAQ,EAClB,WAAqB;AAM1B,EALA,EAAU,OAAO,EAAU,QAAQ,EAAS,EAAE,EAAE,EAC5C,EAAU,WAAW,MACvB,EAAS,OAAO,EAAQ,EACxB,EAAS,UAAU,EAAQ,GAEzB,EAAS,SAAS,MACpB,EAAS,YAAY,EACrB,EAAY,OAAO,EAAG;;;AA4H5B,SAAS,EAAU,EACjB,cACA,UACA,oBACA,eACA,SACA,gBACA,SACA,kBACA,mBACA,gBACE,EAAE,EAAE;CAEN,IAAM,CAAC,GAAK,KAAU,EAAO,SAAS,KAAK,EACrC,IAAW,EAAO,OAAO,EAAS,EAClC,IAAgB,EAAO,OAAO,EAAc,EAC5C,CAAC,GAAO,KAAY,EAAO,SAAS;EACxC,QAAQ,CAAC,CAAC;EACV,OAAO,KAAK;EACb,CAAC;AAEF,CADA,EAAS,UAAU,GACnB,EAAO,gBACC;AAIJ,MAHI,EAAc,YAAY,KAAK,MACjC,EAAc,UAAU,IAEtB,KAAQ,CAAC,EAAK;EAClB,IAAI;AA6BJ,SA5BA,IAAY,EACV,IACC,GAAQ,MAAU;GACjB,IAAM,IAAiB,EAAc;AACrC,KAAc,UAAU,GACpB,QAAmB,KAAK,KAAK,CAAC,OAGlC,EAAS;IACP;IACA;IACD,CAAC,EACE,EAAS,WAAS,EAAS,QAAQ,GAAQ,EAAM,EACjD,EAAM,kBAAkB,KAAe,MACzC,GAAW,EACX,IAAY,KAAK;KAGrB;GACE;GACA;GACA;GAEA;GACA;GACD,EACD,EACD,QACY;AACX,GAAI,KACF,GAAW;;IAMjB;EAEE,MAAM,QAAQ,EAAU,GAAG,EAAU,UAAU,GAAG;EAClD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CACD,IAAM,IAAqB,EAAM,OAA8B,QACzD,IAAsB,EAAO,OAAO,KAAK,EAAE;AACjD,CAAI,CAAC,KAAO,KAAe,CAAC,KAAe,CAAC,KAAQ,EAAoB,YAAY,MAClF,EAAoB,UAAU,GAC9B,EAAS;EACP,QAAQ,CAAC,CAAC;EACV,OAAO,KAAK;EACb,CAAC,EACF,EAAc,UAAU;CAE1B,IAAM,IAAS;EAAC;EAAQ,EAAM;EAAQ,EAAM;EAAM;AAIlD,QAHA,EAAO,MAAM,EAAO,IACpB,EAAO,SAAS,EAAO,IACvB,EAAO,QAAQ,EAAO,IACf;;AAMuB,wBAAwBA;;;AChTxD,IAAI,IAAmB,cAAc,EAAa;CAChD;CACA,KAAiB,KAAK;CACtB;CACA;CACA,YAAY,GAAQ,GAAS;AAK3B,EAJA,OAAO,EACP,MAAA,IAAe,GACf,KAAK,WAAW,EAAQ,EACxB,KAAK,aAAa,EAClB,MAAA,GAAoB;;CAEtB,cAAc;AAEZ,EADA,KAAK,SAAS,KAAK,OAAO,KAAK,KAAK,EACpC,KAAK,QAAQ,KAAK,MAAM,KAAK,KAAK;;CAEpC,WAAW,GAAS;EAClB,IAAM,IAAc,KAAK;AASzB,EARA,KAAK,UAAU,MAAA,EAAa,uBAAuB,EAAQ,EACtD,EAAoB,KAAK,SAAS,EAAY,IACjD,MAAA,EAAa,kBAAkB,CAAC,OAAO;GACrC,MAAM;GACN,UAAU,MAAA;GACV,UAAU;GACX,CAAC,EAEA,GAAa,eAAe,KAAK,QAAQ,eAAe,EAAQ,EAAY,YAAY,KAAK,EAAQ,KAAK,QAAQ,YAAY,GAChI,KAAK,OAAO,GACH,MAAA,GAAuB,MAAM,WAAW,aACjD,MAAA,EAAsB,WAAW,KAAK,QAAQ;;CAGlD,gBAAgB;AACd,EAAK,KAAK,cAAc,IACtB,MAAA,GAAuB,eAAe,KAAK;;CAG/C,iBAAiB,GAAQ;AAEvB,EADA,MAAA,GAAoB,EACpB,MAAA,EAAa,EAAO;;CAEtB,mBAAmB;AACjB,SAAO,MAAA;;CAET,QAAQ;AAIN,EAHA,MAAA,GAAuB,eAAe,KAAK,EAC3C,MAAA,IAAwB,KAAK,GAC7B,MAAA,GAAoB,EACpB,MAAA,GAAc;;CAEhB,OAAO,GAAW,GAAS;AAKzB,SAJA,MAAA,IAAsB,GACtB,MAAA,GAAuB,eAAe,KAAK,EAC3C,MAAA,IAAwB,MAAA,EAAa,kBAAkB,CAAC,MAAM,MAAA,GAAc,KAAK,QAAQ,EACzF,MAAA,EAAsB,YAAY,KAAK,EAChC,MAAA,EAAsB,QAAQ,EAAU;;CAEjD,KAAgB;EACd,IAAM,IAAQ,MAAA,GAAuB,SAAS,GAAiB;AAC/D,QAAA,IAAsB;GACpB,GAAG;GACH,WAAW,EAAM,WAAW;GAC5B,WAAW,EAAM,WAAW;GAC5B,SAAS,EAAM,WAAW;GAC1B,QAAQ,EAAM,WAAW;GACzB,QAAQ,KAAK;GACb,OAAO,KAAK;GACb;;CAEH,GAAQ,GAAQ;AACd,IAAc,YAAY;AACxB,OAAI,MAAA,KAAuB,KAAK,cAAc,EAAE;IAC9C,IAAM,IAAY,MAAA,EAAoB,WAChC,IAAiB,MAAA,EAAoB,SACrC,IAAU;KACd,QAAQ,MAAA;KACR,MAAM,KAAK,QAAQ;KACnB,aAAa,KAAK,QAAQ;KAC3B;AACD,QAAI,GAAQ,SAAS,WAAW;AAC9B,SAAI;AACF,YAAA,EAAoB,YAClB,EAAO,MACP,GACA,GACA,EACD;cACM,GAAG;AACL,cAAQ,OAAO,EAAE;;AAExB,SAAI;AACF,YAAA,EAAoB,YAClB,EAAO,MACP,MACA,GACA,GACA,EACD;cACM,GAAG;AACL,cAAQ,OAAO,EAAE;;eAEf,GAAQ,SAAS,SAAS;AACnC,SAAI;AACF,YAAA,EAAoB,UAClB,EAAO,OACP,GACA,GACA,EACD;cACM,GAAG;AACL,cAAQ,OAAO,EAAE;;AAExB,SAAI;AACF,YAAA,EAAoB,YAClB,KAAK,GACL,EAAO,OACP,GACA,GACA,EACD;cACM,GAAG;AACL,cAAQ,OAAO,EAAE;;;;AAI5B,QAAK,UAAU,SAAS,MAAa;AACnC,MAAS,MAAA,EAAoB;KAC7B;IACF;;;;;AChIN,SAAS,EAAW,GAAQ,GAAQ;CAClC,IAAM,IAAa,IAAI,IAAI,EAAO;AAClC,QAAO,EAAO,QAAQ,MAAM,CAAC,EAAW,IAAI,EAAE,CAAC;;AAEjD,SAAS,EAAU,GAAO,GAAO,GAAO;CACtC,IAAM,IAAO,EAAM,MAAM,EAAE;AAE3B,QADA,EAAK,KAAS,GACP;;AAET,IAAI,IAAkB,cAAc,EAAa;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,KAAmB,EAAE;CACrB,YAAY,GAAQ,GAAS,GAAS;AAOpC,EANA,OAAO,EACP,MAAA,IAAe,GACf,MAAA,IAAgB,GAChB,MAAA,IAAgB,EAAE,EAClB,MAAA,IAAkB,EAAE,EACpB,MAAA,IAAe,EAAE,EACjB,KAAK,WAAW,EAAQ;;CAE1B,cAAc;AACZ,EAAI,KAAK,UAAU,SAAS,KAC1B,MAAA,EAAgB,SAAS,MAAa;AACpC,KAAS,WAAW,MAAW;AAC7B,UAAA,EAAe,GAAU,EAAO;KAChC;IACF;;CAGN,gBAAgB;AACd,EAAK,KAAK,UAAU,QAClB,KAAK,SAAS;;CAGlB,UAAU;AAER,EADA,KAAK,4BAA4B,IAAI,KAAK,EAC1C,MAAA,EAAgB,SAAS,MAAa;AACpC,KAAS,SAAS;IAClB;;CAEJ,WAAW,GAAS,GAAS;AAG3B,MAFA,MAAA,IAAgB,GAChB,MAAA,IAAgB,GAChB,QAAA,IAAA,aAA6B,cAAc;GACzC,IAAM,IAAc,EAAQ,KACzB,MAAU,MAAA,EAAa,oBAAoB,EAAM,CAAC,UACpD;AACD,GAAI,IAAI,IAAI,EAAY,CAAC,SAAS,EAAY,UAC5C,QAAQ,KACN,wFACD;;AAGL,IAAc,YAAY;GACxB,IAAM,IAAgB,MAAA,GAChB,IAAqB,MAAA,EAA4B,MAAA,EAAc;AACrE,KAAmB,SAChB,MAAU,EAAM,SAAS,WAAW,EAAM,sBAAsB,CAClE;GACD,IAAM,IAAe,EAAmB,KAAK,MAAU,EAAM,SAAS,EAChE,IAAY,EAAa,KAC5B,MAAa,EAAS,kBAAkB,CAC1C,EACK,IAAkB,EAAc,WAAW,EAAa,QACxD,IAAiB,EAAa,MACjC,GAAU,MAAU,MAAa,EAAc,GACjD,EACK,IAAsB,KAAmB,GACzC,IAAkB,IAAsB,KAAO,EAAU,MAAM,GAAQ,MAAU;IACrF,IAAM,IAAO,MAAA,EAAa;AAC1B,WAAO,CAAC,KAAQ,CAAC,EAAoB,GAAQ,EAAK;KAClD;AACE,IAAC,KAAuB,CAAC,MACzB,MACF,MAAA,IAAwB,GACxB,MAAA,IAAkB,IAEpB,MAAA,IAAe,GACV,KAAK,cAAc,KACpB,MACF,EAAW,GAAe,EAAa,CAAC,SAAS,MAAa;AAC5D,MAAS,SAAS;KAClB,EACF,EAAW,GAAc,EAAc,CAAC,SAAS,MAAa;AAC5D,MAAS,WAAW,MAAW;AAC7B,WAAA,EAAe,GAAU,EAAO;MAChC;KACF,GAEJ,MAAA,GAAc;IACd;;CAEJ,mBAAmB;AACjB,SAAO,MAAA;;CAET,aAAa;AACX,SAAO,MAAA,EAAgB,KAAK,MAAa,EAAS,iBAAiB,CAAC;;CAEtE,eAAe;AACb,SAAO,MAAA;;CAET,oBAAoB,GAAS,GAAS;EACpC,IAAM,IAAU,MAAA,EAA4B,EAAQ,EAC9C,IAAS,EAAQ,KACpB,MAAU,EAAM,SAAS,oBAAoB,EAAM,sBAAsB,CAC3E,EACK,IAAc,EAAQ,KACzB,MAAU,EAAM,sBAAsB,UACxC;AACD,SAAO;GACL;IACC,MACQ,MAAA,EAAoB,KAAK,GAAQ,GAAS,EAAY;SAGtD,MAAA,EAAkB,GAAQ,EAAQ;GAE5C;;CAEH,GAAa,GAAQ,GAAS;AAC5B,SAAO,EAAQ,KAAK,GAAO,MAAU;GACnC,IAAM,IAAiB,EAAO;AAC9B,UAAQ,EAAM,sBAAsB,sBAI/B,IAJqD,EAAM,SAAS,YAAY,IAAiB,MAAiB;AACrH,MAAQ,SAAS,MAAM;AACrB,OAAE,SAAS,UAAU,EAAa;MAClC;KACF;IACF;;CAEJ,GAAe,GAAO,GAAS,GAAa;AAC1C,MAAI,GAAS;GACX,IAAM,IAAa,MAAA,GACb,IAAqB,MAAgB,KAAK,KAAK,MAAe,KAAK,MAAM,EAAW,WAAW,EAAY,UAAU,EAAY,MAAM,GAAM,MAAM,MAAS,EAAW,GAAG;AAYhL,WAXI,CAAC,MAAA,KAAwB,MAAA,MAAiB,MAAA,KAAoB,KAAsB,MAAY,MAAA,OAClG,MAAA,IAAoB,GACpB,MAAA,IAAmB,MAAA,GACf,MAAgB,KAAK,MACvB,MAAA,IAAwB,IAE1B,MAAA,IAAuB,EACrB,MAAA,GACA,EAAQ,EAAM,CACf,GAEI,MAAA;;AAET,SAAO;;CAET,GAAuB,GAAS;EAC9B,IAAM,oBAAmC,IAAI,KAAK;AAClD,QAAA,EAAgB,SAAS,MAAa;GACpC,IAAM,IAAM,EAAS,QAAQ;AAC7B,OAAI,CAAC,EAAK;GACV,IAAM,IAAoB,EAAiB,IAAI,EAAI;AACnD,GAAI,IACF,EAAkB,KAAK,EAAS,GAEhC,EAAiB,IAAI,GAAK,CAAC,EAAS,CAAC;IAEvC;EACF,IAAM,IAAY,EAAE;AAUpB,SATA,EAAQ,SAAS,MAAY;GAC3B,IAAM,IAAmB,MAAA,EAAa,oBAAoB,EAAQ,EAE5D,IADQ,EAAiB,IAAI,EAAiB,UAAU,EAAE,OAAO,IAC7C,IAAI,EAAc,MAAA,GAAc,EAAiB;AAC3E,KAAU,KAAK;IACb,uBAAuB;IACvB;IACD,CAAC;IACF,EACK;;CAET,GAAU,GAAU,GAAQ;EAC1B,IAAM,IAAQ,MAAA,EAAgB,QAAQ,EAAS;AAC/C,EAAI,MAAU,OACZ,MAAA,IAAe,EAAU,MAAA,GAAc,GAAO,EAAO,EACrD,MAAA,GAAc;;CAGlB,KAAU;AACR,MAAI,KAAK,cAAc,EAAE;GACvB,IAAM,IAAiB,MAAA,GACjB,IAAa,MAAA,EAAkB,MAAA,GAAc,MAAA,EAAsB;AAEzE,GAAI,MADc,MAAA,EAAoB,GAAY,MAAA,GAAe,QAAQ,IAEvE,EAAc,YAAY;AACxB,SAAK,UAAU,SAAS,MAAa;AACnC,OAAS,MAAA,EAAa;MACtB;KACF;;;;;;ACpLV,SAAS,EAAW,EAClB,YACA,GAAG,KACF,GAAa;CACd,IAAM,IAAS,EAAe,EAAY,EACpC,IAAc,GAAgB,EAC9B,IAAqB,GAA4B,EACjD,IAAmBsB,EAAM,cACvB,EAAQ,KAAK,MAAS;EAC1B,IAAM,IAAmB,EAAO,oBAC9B,EACD;AAED,SADA,EAAiB,qBAAqB,IAAc,gBAAgB,cAC7D;GACP,EACF;EAAC;EAAS;EAAQ;EAAY,CAC/B;AAMD,CALA,EAAiB,SAAS,MAAiB;AAGzC,EAFA,EAAqB,EAAa,EAElC,EAAgC,GAAc,GADhC,EAAO,eAAe,CAAC,IAAI,EAAa,UAAU,CACQ;GACxE,EACF,EAA2B,EAAmB;CAC9C,IAAM,CAAC,KAAYA,EAAM,eACjB,IAAI,EACR,GACA,GACA,EACD,CACF,EACK,CAAC,GAAkB,GAAmB,KAAe,EAAS,oBAClE,GACA,EAAQ,QACT,EACK,IAAkB,CAAC,KAAe,EAAQ,eAAe;AAS/D,CARA,EAAM,qBACJA,EAAM,aACH,MAAkB,IAAkB,EAAS,UAAU,EAAc,WAAW,EAAc,CAAC,GAAG,GACnG,CAAC,GAAU,EAAgB,CAC5B,QACK,EAAS,kBAAkB,QAC3B,EAAS,kBAAkB,CAClC,EACD,EAAM,gBAAgB;AACpB,IAAS,WACP,GACA,EACD;IACA;EAAC;EAAkB;EAAS;EAAS,CAAC;CAIzC,IAAM,IAH0B,EAAiB,MAC9C,GAAQ,MAAU,EAAc,EAAiB,IAAQ,EAAO,CAClE,GACkD,EAAiB,SAAS,GAAQ,MAAU;EAC7F,IAAM,IAAO,EAAiB;AAK9B,SAJI,KAAQ,EAAc,GAAM,EAAO,GAE9B,EAAgB,GADD,IAAI,EAAc,GAAQ,EAAK,EACT,EAAmB,GAE1D,EAAE;GACT,GAAG,EAAE;AACP,KAAI,EAAiB,SAAS,EAC5B,OAAM,QAAQ,IAAI,EAAiB;CAErC,IAAM,IAAoC,EAAiB,MACxD,GAAQ,MAAU;EACjB,IAAM,IAAQ,EAAiB;AAC/B,SAAO,KAAS,EAAY;GAC1B;GACA;GACA,cAAc,EAAM;GACpB,OAAO,EAAO,eAAe,CAAC,IAAI,EAAM,UAAU;GAClD,UAAU,EAAM;GACjB,CAAC;GAEL;AACD,KAAI,GAAmC,MACrC,OAAM,EAAkC;AAE1C,QAAO,EAAkB,GAAa,CAAC;;;;AC1FzC,SAAS,EAAY,GAAS,GAAa;CACzC,IAAM,IAAS,EAAe,EAAY,EACpC,CAAC,KAAYC,EAAM,eACjB,IAAI,EACR,GACA,EACD,CACF;AACD,GAAM,gBAAgB;AACpB,IAAS,WAAW,EAAQ;IAC3B,CAAC,GAAU,EAAQ,CAAC;CACvB,IAAM,IAASA,EAAM,qBACnBA,EAAM,aACH,MAAkB,EAAS,UAAU,EAAc,WAAW,EAAc,CAAC,EAC9E,CAAC,EAAS,CACX,QACK,EAAS,kBAAkB,QAC3B,EAAS,kBAAkB,CAClC,EACK,IAASA,EAAM,aAClB,GAAW,MAAkB;AAC5B,IAAS,OAAO,GAAW,EAAc,CAAC,MAAM,EAAK;IAEvD,CAAC,EAAS,CACX;AACD,KAAI,EAAO,SAAS,EAAiB,EAAS,QAAQ,cAAc,CAAC,EAAO,MAAM,CAAC,CACjF,OAAM,EAAO;AAEf,QAAO;EAAE,GAAG;EAAQ;EAAQ,aAAa,EAAO;EAAQ;;;;ACvC1D,IAAM,KAAmB,MAAgB;CACvC,IAAI,GACE,oBAA4B,IAAI,KAAK,EACrC,KAAY,GAAS,MAAY;EACrC,IAAM,IAAY,OAAO,KAAY,aAAa,EAAQ,EAAM,GAAG;AACnE,MAAI,CAAC,OAAO,GAAG,GAAW,EAAM,EAAE;GAChC,IAAM,IAAgB;AAEtB,GADA,IAAS,MAA4B,OAAO,KAAc,aAAY,KAAsB,IAAY,OAAO,OAAO,EAAE,EAAE,GAAO,EAAU,EAC3I,EAAU,SAAS,MAAa,EAAS,GAAO,EAAc,CAAC;;IAG7D,UAAiB,GAMjB,IAAM;EAAE;EAAU;EAAU,uBALJ;EAKqB,YAJhC,OACjB,EAAU,IAAI,EAAS,QACV,EAAU,OAAO,EAAS;EAEqB,EACxD,IAAe,IAAQ,EAAY,GAAU,GAAU,EAAI;AACjE,QAAO;GAEH,OAAgB,MAAgB,IAAc,EAAgB,EAAY,GAAG,IClB7E,KAAY,MAAQ;AAC1B,SAAS,EAAS,GAAK,IAAW,GAAU;CAC1C,IAAM,IAAQ,EAAM,qBAClB,EAAI,WACJ,EAAM,kBAAkB,EAAS,EAAI,UAAU,CAAC,EAAE,CAAC,GAAK,EAAS,CAAC,EAClE,EAAM,kBAAkB,EAAS,EAAI,iBAAiB,CAAC,EAAE,CAAC,GAAK,EAAS,CAAC,CAC1E;AAED,QADA,EAAM,cAAc,EAAM,EACnB;;;;ACDT,IAAM,KAA8B,MAAQ,CAAC,CAAC,EAAI,wBAAwB,OAAO,EAAI,YAAa,YAC5F,oBAAqC,IAAI,KAAK,EAC9C,KAA6B,MAAS;CAC1C,IAAM,IAAM,EAAmB,IAAI,EAAK;AAExC,QADK,IACE,OAAO,YACZ,OAAO,QAAQ,EAAI,OAAO,CAAC,KAAK,CAAC,GAAK,OAAU,CAAC,GAAK,EAAK,UAAU,CAAC,CAAC,CACxE,GAHgB,EAAE;GAKf,KAAgC,GAAO,GAAoB,MAAY;AAC3E,KAAI,MAAU,KAAK,EACjB,QAAO;EACL,MAAM;EACN,YAAY,EAAmB,QAAQ,EAAQ;EAChD;CAEH,IAAM,IAAqB,EAAmB,IAAI,EAAQ,KAAK;AAC/D,KAAI,EACF,QAAO;EAAE,MAAM;EAAW;EAAO,GAAG;EAAoB;CAE1D,IAAM,IAAgB;EACpB,YAAY,EAAmB,QAAQ,EAAQ;EAC/C,QAAQ,EAAE;EACX;AAED,QADA,EAAmB,IAAI,EAAQ,MAAM,EAAc,EAC5C;EAAE,MAAM;EAAW;EAAO,GAAG;EAAe;GAE/C,KAAqC,GAAM,MAAU;AACzD,KAAI,MAAU,KAAK,EAAG;CACtB,IAAM,IAAiB,EAAmB,IAAI,EAAK;AAC9C,OACL,OAAO,EAAe,OAAO,IACzB,OAAO,KAAK,EAAe,OAAO,CAAC,WAAW,KAChD,EAAmB,OAAO,EAAK;GAG7B,KAAkB,MAAU;AAEhC,KAAI,CAAC,EAAO;CACZ,IAAM,IAAa,EAAM,MAAM,KAAK,EAC9B,IAAuB,EAAW,WACrC,MAAc,EAAU,SAAS,eAAe,CAClD;AACD,KAAI,IAAuB,EAAG;CAC9B,IAAM,IAAoB,EAAW,IAAuB,IAA0B,MAAM,IAAK;AACjG,QAAa,aAAa,KAAK,EAAW,GAAwB;GAiL9D,KA/KgB,GAAI,IAAkB,EAAE,MAAM,GAAK,GAAK,MAAQ;CACpE,IAAM,EAAE,YAAS,wBAAqB,UAAO,GAAG,MAAY,GACxD;AACJ,KAAI;AACF,OAAsB,KAA4B,OAAuE,OAAO;SACtH;AAEZ,KAAI,CAAC,EACH,QAAO,EAAG,GAAK,GAAK,EAAI;CAE1B,IAAM,EAAE,eAAY,GAAG,MAA0B,EAA6B,GAAO,GAAoB,EAAQ,EAC7G,IAAc;AAuBlB,CAtBA,EAAI,aAAa,GAAO,GAAS,MAAiB;EAChD,IAAM,IAAI,EAAI,GAAO,EAAQ;AAC7B,MAAI,CAAC,EAAa,QAAO;EACzB,IAAM,IAAS,MAAiB,KAAK,IAAI,EACvC,MAAM,KAAuB,GAAe,gBAAI,OAAO,EAAC,MAAM,IAAI,aACnE,GAAG,OAAO,KAAiB,WAAW,EAAE,MAAM,GAAc,GAAG;AAehE,SAdI,MAAU,KAAK,KACjB,GAAyC,KAAK,GAAQ,GAAK,CAAC,EACrD,MAET,GAAyC,KACvC;GACE,GAAG;GACH,MAAM,GAAG,EAAM,GAAG,EAAO;GAC1B,EACD;GACE,GAAG,EAA0B,EAAQ,KAAK;IACzC,IAAQ,EAAI,UAAU;GACxB,CACF,EACM;KAET,EAAI,WAAW,EACb,eAAe;AAIb,EAHI,KAAc,OAAO,EAAW,eAAgB,cAClD,EAAW,aAAa,EAE1B,EAAkC,EAAQ,MAAM,EAAM;IAEzD;CACD,IAAM,KAAwB,GAAG,MAAM;EACrC,IAAM,IAAsB;AAG5B,EAFA,IAAc,IACd,EAAI,GAAG,EAAE,EACT,IAAc;IAEV,IAAe,EAAG,EAAI,UAAU,GAAK,EAAI;AAc/C,KAbI,EAAsB,SAAS,cACjC,GAAyC,KAAK,EAAa,IAE3D,EAAsB,OAAO,EAAsB,SAAS,GAC5D,GAAyC,KACvC,OAAO,YACL,OAAO,QAAQ,EAAsB,OAAO,CAAC,KAAK,CAAC,GAAK,OAAY,CAClE,GACA,MAAQ,EAAsB,QAAQ,IAAe,EAAO,UAAU,CACvE,CAAC,CACH,CACF,GAEC,EAA2B,EAAI,EAAE;EAEnC,IAAM,IAAmB,EAAI;AAC7B,IAAI,YAAY,GAAG,MAAS;AAO1B,KAAiB,GAAG,EAAK;;;AAqG7B,QAlGA,EAAW,WAAW,MAAY;AAEhC,UAAQ,EAAQ,MAAhB;GACE,KAAK;AACH,QAAI,OAAO,EAAQ,WAAY,UAAU;AACvC,aAAQ,MACN,0DACD;AACD;;AAEF,WAAO,EACL,EAAQ,UACP,MAAW;AACV,SAAI,EAAO,SAAS,cAAc;AAChC,UAAI,MAAU,KAAK,GAAG;AACpB,SAAqB,EAAO,MAAM;AAClC;;AAEF,MAAI,OAAO,KAAK,EAAO,MAAM,CAAC,WAAW,KACvC,QAAQ,MACN,ubAKD;MAEH,IAAM,IAAoB,EAAO,MAAM;AACvC,UAAI,KAAsD,KACxD;AAEF,MAAI,KAAK,UAAU,EAAI,UAAU,CAAC,KAAK,KAAK,UAAU,EAAkB,IACtE,EAAqB,EAAkB;AAEzC;;AAEF,KAAI,EAA2B,EAAI,IACjC,EAAI,SAAS,EAAO;MAGzB;GACH,KAAK;AACH,YAAQ,EAAQ,QAAQ,MAAxB;KACE,KAAK,QAKH,QAJA,EAAqB,EAAa,EAC9B,MAAU,KAAK,IACV,GAAyC,KAAK,EAAI,UAAU,CAAC,GAE/D,GAAyC,KAAK,EAA0B,EAAQ,KAAK,CAAC;KAC/F,KAAK;AACH,UAAI,MAAU,KAAK,GAAG;AACpB,UAAyC,KAAK,EAAI,UAAU,CAAC;AAC7D;;AAEF,aAAO,GAAyC,KAAK,EAA0B,EAAQ,KAAK,CAAC;KAC/F,KAAK,WACH,QAAO,EAAc,EAAQ,QAAQ,MAAU;AAC7C,UAAI,MAAU,KAAK,GAAG;AAEpB,OADA,EAAqB,EAAM,EAC3B,GAAyC,KAAK,EAAI,UAAU,CAAC;AAC7D;;AAGF,MADA,EAAqB,EAAM,GAAO,EAClC,GAAyC,KAAK,EAA0B,EAAQ,KAAK,CAAC;OACtF;KACJ,KAAK;KACL,KAAK,iBACH,QAAO,EAAc,EAAQ,QAAQ,MAAU;AAC7C,UAAI,MAAU,KAAK,GAAG;AACpB,SAAqB,EAAM;AAC3B;;AAEF,MAAI,KAAK,UAAU,EAAI,UAAU,CAAC,KAAK,KAAK,UAAU,EAAM,GAAO,IACjE,EAAqB,EAAM,GAAO;OAEpC;KACJ,KAAK,gBAAgB;MACnB,IAAM,EAAE,uBAAoB,EAAQ,SAC9B,IAA0B,EAAgB,eAAe,MAAM,GAAG,CAAC,IAA0B;AACnG,UAAI,CAAC,EAAmB;AAMxB,MAJE,EADE,MAAU,KAAK,IACI,IAEA,EAAkB,GAAO,EAEhD,GAAyC,KACvC,MAEA,EACD;AACD;;KAEF,KAAK,kBACH,QAAO,IAAc,CAAC;;AAE1B;;GAEJ,EACK;GAGH,KAAiB,GAAa,MAAO;CACzC,IAAI;AACJ,KAAI;AACF,MAAS,KAAK,MAAM,EAAY;UACzB,GAAG;AACV,UAAQ,MACN,mEACA,EACD;;AAEH,CAAI,MAAW,KAAK,KAAG,EAAG,EAAO;GA0B7B,KAvB6B,OAAQ,GAAK,GAAK,MAAQ;CAC3D,IAAM,IAAgB,EAAI;AAoB1B,QAnBA,EAAI,cAAc,GAAU,GAAa,MAAY;EACnD,IAAI,IAAW;AACf,MAAI,GAAa;GACf,IAAM,IAAc,GAAmC,cAAe,OAAO,IACzE,IAAe,EAAS,EAAI,UAAU,CAAC;AAQ3C,GAPA,KAAY,MAAU;IACpB,IAAM,IAAY,EAAS,EAAM;AACjC,QAAI,CAAC,EAAW,GAAc,EAAU,EAAE;KACxC,IAAM,IAAgB;AACtB,OAAY,IAAe,GAAW,EAAc;;MAGpD,GAAmC,mBACrC,EAAY,GAAc,EAAa;;AAG3C,SAAO,EAAc,EAAS;KAEX,EAAG,GAAK,GAAK,EAAI;;AASxC,SAAS,EAAkB,GAAY,GAAS;CAC9C,IAAI;AACJ,KAAI;AACF,MAAU,GAAY;SACZ;AACV;;AAoBF,QAlBuB;EACrB,UAAU,MAAS;GAEjB,IAAM,KAAS,MACT,MAAS,OACJ,OAEF,KAAK,MAAM,GAAM,GAAmC,QAAQ,EAE/D,IAAY,EAAQ,QAAQ,EAAK,IAAiB;AAIxD,UAHI,aAAe,UACV,EAAI,KAAK,EAAM,GAEjB,EAAM,EAAI;;EAEnB,UAAU,GAAM,MAAa,EAAQ,QAAQ,GAAM,KAAK,UAAU,GAAU,GAAmC,SAAS,CAAC;EACzH,aAAa,MAAS,EAAQ,WAAW,EAAK;EAC/C;;AAGH,IAAM,KAAc,OAAQ,MAAU;AACpC,KAAI;EACF,IAAM,IAAS,EAAG,EAAM;AAIxB,SAHI,aAAkB,UACb,IAEF;GACL,KAAK,GAAa;AAChB,WAAO,EAAW,EAAY,CAAC,EAAO;;GAExC,MAAM,GAAa;AACjB,WAAO;;GAEV;UACM,GAAG;AACV,SAAO;GACL,KAAK,GAAc;AACjB,WAAO;;GAET,MAAM,GAAY;AAChB,WAAO,EAAW,EAAW,CAAC,EAAE;;GAEnC;;GAmJC,KAhJe,GAAQ,OAAiB,GAAK,GAAK,MAAQ;CAC9D,IAAI,IAAU;EACZ,SAAS,QAAwB,OAAO,aAAa;EACrD,aAAa,MAAU;EACvB,SAAS;EACT,QAAQ,GAAgB,OAAkB;GACxC,GAAG;GACH,GAAG;GACJ;EACD,GAAG;EACJ,EACG,IAAc,IACd,IAAmB,GACjB,oBAAqC,IAAI,KAAK,EAC9C,oBAA2C,IAAI,KAAK,EACtD,IAAU,EAAQ;AACtB,KAAI,CAAC,EACH,QAAO,GACJ,GAAG,MAAS;AAIX,EAHA,QAAQ,KACN,uDAAuD,EAAQ,KAAK,gDACrE,EACD,EAAI,GAAG,EAAK;IAEd,GACA,EACD;CAEH,IAAM,UAAgB;EACpB,IAAM,IAAQ,EAAQ,WAAW,EAAE,GAAG,GAAK,EAAE,CAAC;AAC9C,SAAO,EAAQ,QAAQ,EAAQ,MAAM;GACnC;GACA,SAAS,EAAQ;GAClB,CAAC;IAEE,IAAgB,EAAI;AAC1B,GAAI,YAAY,GAAO,OACrB,EAAc,GAAO,EAAQ,EACtB,GAAS;CAElB,IAAM,IAAe,GAClB,GAAG,OACF,EAAI,GAAG,EAAK,EACL,GAAS,GAElB,GACA,EACD;AACD,GAAI,wBAAwB;CAC5B,IAAI,GACE,UAAgB;AAEpB,MAAI,CAAC,EAAS;EACd,IAAM,IAAiB,EAAE;AAEzB,EADA,IAAc,IACd,EAAmB,SAAS,MAEnB,EAAU,GAAK,IAAkB,EAAa,CACrD;EACF,IAAM,IAAiC,EAAQ,oBAA0C,KAAK,GAAe,GAAK,IAAiB,EAAa,IAAK,KAAK;AAC1J,SAAO,EAAW,EAAQ,QAAQ,KAAK,EAAQ,CAAC,CAAC,EAAQ,KAAK,CAAC,MAAM,MAA6B;AAChG,OAAI,EACF,KAAI,OAAO,EAAyB,WAAY,YAAY,EAAyB,YAAY,EAAQ,SAAS;AAChH,QAAI,EAAQ,SAAS;KACnB,IAAM,IAAY,EAAQ,QACxB,EAAyB,OACzB,EAAyB,QAC1B;AAID,YAHI,aAAqB,UAChB,EAAU,MAAM,MAAW,CAAC,IAAM,EAAO,CAAC,GAE5C,CAAC,IAAM,EAAU;;AAE1B,YAAQ,MACN,wFACD;SAED,QAAO,CAAC,IAAO,EAAyB,MAAM;AAGlD,UAAO,CAAC,IAAO,KAAK,EAAE;IACtB,CAAC,MAAM,MAAoB;AAE3B,OAAI,MAAmB,EACrB;GAEF,IAAM,CAAC,GAAU,KAAiB;AAMlC,OALA,IAAmB,EAAQ,MACzB,GACO,GAAK,IAAkB,EAC/B,EACD,EAAI,GAAkB,GAAK,EACvB,EACF,QAAO,GAAS;IAElB,CAAC,WAAW;AACR,SAAmB,MAGvB,IAAmE,GAAK,EAAE,KAAK,EAAE,EACjF,IAAmB,GAAK,EACxB,IAAc,IACd,EAAyB,SAAS,MAAO,EAAG,EAAiB,CAAC;IAC9D,CAAC,OAAO,MAAM;AACV,SAAmB,KAGvB,IAAmE,KAAK,GAAG,EAAE;IAC7E;;AAkCJ,QAhCA,EAAI,UAAU;EACZ,aAAa,MAAe;AAK1B,GAJA,IAAU;IACR,GAAG;IACH,GAAG;IACJ,EACG,EAAW,YACb,IAAU,EAAW;;EAGzB,oBAAoB;AAClB,MAAmC,WAAW,EAAQ,KAAK;;EAE7D,kBAAkB;EAClB,iBAAiB,GAAS;EAC1B,mBAAmB;EACnB,YAAY,OACV,EAAmB,IAAI,EAAG,QACb;AACX,KAAmB,OAAO,EAAG;;EAGjC,oBAAoB,OAClB,EAAyB,IAAI,EAAG,QACnB;AACX,KAAyB,OAAO,EAAG;;EAGxC,EACI,EAAQ,iBACX,GAAS,EAEJ,KAAoB;GCrdvB,KAAc,MAAQ,OAAO,YAAY,GACzC,KAAsB,MAE1B,aAAa,GAET,KAAkB,GAAQ,MAAW;CACzC,IAAM,IAAO,aAAkB,MAAM,IAAS,IAAI,IAAI,EAAO,SAAS,CAAC,EACjE,IAAO,aAAkB,MAAM,IAAS,IAAI,IAAI,EAAO,SAAS,CAAC;AACvE,KAAI,EAAK,SAAS,EAAK,KACrB,QAAO;AAET,MAAK,IAAM,CAAC,GAAK,MAAU,EACzB,KAAI,CAAC,EAAK,IAAI,EAAI,IAAI,CAAC,OAAO,GAAG,GAAO,EAAK,IAAI,EAAI,CAAC,CACpD,QAAO;AAGX,QAAO;GAEH,MAAoB,GAAQ,MAAW;CAC3C,IAAM,IAAY,EAAO,OAAO,WAAW,EACrC,IAAY,EAAO,OAAO,WAAW,EACvC,IAAQ,EAAU,MAAM,EACxB,IAAQ,EAAU,MAAM;AAC5B,QAAO,CAAC,EAAM,QAAQ,CAAC,EAAM,OAAM;AACjC,MAAI,CAAC,OAAO,GAAG,EAAM,OAAO,EAAM,MAAM,CACtC,QAAO;AAGT,EADA,IAAQ,EAAU,MAAM,EACxB,IAAQ,EAAU,MAAM;;AAE1B,QAAO,CAAC,CAAC,EAAM,QAAQ,CAAC,CAAC,EAAM;;AAEjC,SAAS,GAAQ,GAAQ,GAAQ;AAgB/B,QAfI,OAAO,GAAG,GAAQ,EAAO,GACpB,KAEL,OAAO,KAAW,aAAY,KAAmB,OAAO,KAAW,aAAY,KAG/E,OAAO,eAAe,EAAO,KAAK,OAAO,eAAe,EAAO,GAC1D,KAEL,EAAW,EAAO,IAAI,EAAW,EAAO,GACtC,EAAmB,EAAO,IAAI,EAAmB,EAAO,GACnD,EAAe,GAAQ,EAAO,GAEhC,GAAiB,GAAQ,EAAO,GAElC,EACL,EAAE,eAAe,OAAO,QAAQ,EAAO,EAAE,EACzC,EAAE,eAAe,OAAO,QAAQ,EAAO,EAAE,CAC1C;;;;AChDH,SAAS,GAAW,GAAU;CAC5B,IAAM,IAAO,EAAM,OAAO,KAAK,EAAE;AACjC,SAAQ,MAAU;EAChB,IAAM,IAAO,EAAS,EAAM;AAC5B,SAAO,GAAQ,EAAK,SAAS,EAAK,GAAG,EAAK,UAAU,EAAK,UAAU;;;;;;CCEvE,IAAI,KAAY,WAAW;EAG3B,IAAI,IAAI,OAAO,cACX,IAAe,qEACf,IAAgB,qEAChB,IAAiB,EAAE;EAEvB,SAAS,EAAa,GAAU,GAAW;AACzC,OAAI,CAAC,EAAe,IAAW;AAC7B,MAAe,KAAY,EAAE;AAC7B,SAAK,IAAI,IAAE,GAAI,IAAE,EAAS,QAAS,IACjC,GAAe,GAAU,EAAS,OAAO,EAAE,IAAI;;AAGnD,UAAO,EAAe,GAAU;;EAGlC,IAAI,IAAW;GACb,kBAAmB,SAAU,GAAO;AAClC,QAAI,KAAS,KAAM,QAAO;IAC1B,IAAI,IAAM,EAAS,UAAU,GAAO,GAAG,SAAS,GAAE;AAAC,YAAO,EAAa,OAAO,EAAE;MAAG;AACnF,YAAQ,EAAI,SAAS,GAArB;KACA;KACA,KAAK,EAAI,QAAO;KAChB,KAAK,EAAI,QAAO,IAAI;KACpB,KAAK,EAAI,QAAO,IAAI;KACpB,KAAK,EAAI,QAAO,IAAI;;;GAItB,sBAAuB,SAAU,GAAO;AAGtC,WAFI,KAAS,OAAa,KACtB,KAAS,KAAW,OACjB,EAAS,YAAY,EAAM,QAAQ,IAAI,SAAS,GAAO;AAAE,YAAO,EAAa,GAAc,EAAM,OAAO,EAAM,CAAC;MAAI;;GAG5H,iBAAkB,SAAU,GAAO;AAEjC,WADI,KAAS,OAAa,KACnB,EAAS,UAAU,GAAO,IAAI,SAAS,GAAE;AAAC,YAAO,EAAE,IAAE,GAAG;MAAG,GAAG;;GAGvE,qBAAqB,SAAU,GAAY;AAGzC,WAFI,KAAc,OAAa,KAC3B,KAAc,KAAW,OACtB,EAAS,YAAY,EAAW,QAAQ,OAAO,SAAS,GAAO;AAAE,YAAO,EAAW,WAAW,EAAM,GAAG;MAAM;;GAItH,sBAAsB,SAAU,GAAc;AAI5C,SAAK,IAHD,IAAa,EAAS,SAAS,EAAa,EAC5C,IAAI,IAAI,WAAW,EAAW,SAAO,EAAE,EAElC,IAAE,GAAG,IAAS,EAAW,QAAQ,IAAE,GAAU,KAAK;KACzD,IAAI,IAAgB,EAAW,WAAW,EAAE;AAE5C,KADA,EAAI,IAAE,KAAK,MAAkB,GAC7B,EAAI,IAAE,IAAE,KAAK,IAAgB;;AAE/B,WAAO;;GAIT,0BAAyB,SAAU,GAAY;AAC7C,QAAI,KAAa,KACb,QAAO,EAAS,WAAW,EAAW;AAGtC,SAAK,IADD,IAAQ,MAAM,EAAW,SAAO,EAAE,EAC7B,IAAE,GAAG,IAAS,EAAI,QAAQ,IAAE,GAAU,IAC7C,GAAI,KAAG,EAAW,IAAE,KAAG,MAAI,EAAW,IAAE,IAAE;IAG5C,IAAI,IAAS,EAAE;AAIf,WAHA,EAAI,QAAQ,SAAU,GAAG;AACvB,OAAO,KAAK,EAAE,EAAE,CAAC;MACjB,EACK,EAAS,WAAW,EAAO,KAAK,GAAG,CAAC;;GAQjD,+BAA+B,SAAU,GAAO;AAE9C,WADI,KAAS,OAAa,KACnB,EAAS,UAAU,GAAO,GAAG,SAAS,GAAE;AAAC,YAAO,EAAc,OAAO,EAAE;MAAG;;GAInF,mCAAkC,SAAU,GAAO;AAIjD,WAHI,KAAS,OAAa,KACtB,KAAS,KAAW,QACxB,IAAQ,EAAM,QAAQ,MAAM,IAAI,EACzB,EAAS,YAAY,EAAM,QAAQ,IAAI,SAAS,GAAO;AAAE,YAAO,EAAa,GAAe,EAAM,OAAO,EAAM,CAAC;MAAI;;GAG7H,UAAU,SAAU,GAAc;AAChC,WAAO,EAAS,UAAU,GAAc,IAAI,SAAS,GAAE;AAAC,YAAO,EAAE,EAAE;MAAG;;GAExE,WAAW,SAAU,GAAc,GAAa,GAAgB;AAC9D,QAAI,KAAgB,KAAM,QAAO;IACjC,IAAI,GAAG,GACH,IAAoB,EAAE,EACtB,IAA4B,EAAE,EAC9B,IAAU,IACV,IAAW,IACX,IAAU,IACV,IAAmB,GACnB,IAAkB,GAClB,IAAiB,GACjB,IAAa,EAAE,EACf,IAAiB,GACjB,IAAsB,GACtB;AAEJ,SAAK,IAAK,GAAG,IAAK,EAAa,QAAQ,KAAM,EAQ3C,KAPA,IAAY,EAAa,OAAO,EAAG,EAC9B,OAAO,UAAU,eAAe,KAAK,GAAmB,EAAU,KACrE,EAAmB,KAAa,KAChC,EAA2B,KAAa,KAG1C,IAAa,IAAY,GACrB,OAAO,UAAU,eAAe,KAAK,GAAmB,EAAW,CACrE,KAAY;SACP;AACL,SAAI,OAAO,UAAU,eAAe,KAAK,GAA2B,EAAU,EAAE;AAC9E,UAAI,EAAU,WAAW,EAAE,GAAC,KAAK;AAC/B,YAAK,IAAE,GAAI,IAAE,GAAkB,IAE7B,CADA,MAAwC,GACpC,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB;AAIJ,YADA,IAAQ,EAAU,WAAW,EAAE,EAC1B,IAAE,GAAI,IAAE,GAAI,IASf,CARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,MAAiB;aAEd;AAEL,YADA,IAAQ,GACH,IAAE,GAAI,IAAE,GAAkB,IAS7B,CARA,IAAoB,KAAoB,IAAK,GACzC,KAAwB,IAAY,KACtC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,IAAQ;AAGV,YADA,IAAQ,EAAU,WAAW,EAAE,EAC1B,IAAE,GAAI,IAAE,IAAK,IAShB,CARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,MAAiB;;AAQrB,MALA,KACI,KAAqB,MACvB,IAA6B,KAAG,GAChC,MAEF,OAAO,EAA2B;WAGlC,MADA,IAAQ,EAAmB,IACtB,IAAE,GAAI,IAAE,GAAkB,IAS7B,CARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,MAAiB;AAYrB,KAPA,KACI,KAAqB,MACvB,IAA6B,KAAG,GAChC,MAGF,EAAmB,KAAc,KACjC,IAAY,OAAO,EAAU;;AAKjC,QAAI,MAAc,IAAI;AACpB,SAAI,OAAO,UAAU,eAAe,KAAK,GAA2B,EAAU,EAAE;AAC9E,UAAI,EAAU,WAAW,EAAE,GAAC,KAAK;AAC/B,YAAK,IAAE,GAAI,IAAE,GAAkB,IAE7B,CADA,MAAwC,GACpC,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB;AAIJ,YADA,IAAQ,EAAU,WAAW,EAAE,EAC1B,IAAE,GAAI,IAAE,GAAI,IASf,CARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,MAAiB;aAEd;AAEL,YADA,IAAQ,GACH,IAAE,GAAI,IAAE,GAAkB,IAS7B,CARA,IAAoB,KAAoB,IAAK,GACzC,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,IAAQ;AAGV,YADA,IAAQ,EAAU,WAAW,EAAE,EAC1B,IAAE,GAAI,IAAE,IAAK,IAShB,CARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,MAAiB;;AAQrB,MALA,KACI,KAAqB,MACvB,IAA6B,KAAG,GAChC,MAEF,OAAO,EAA2B;WAGlC,MADA,IAAQ,EAAmB,IACtB,IAAE,GAAI,IAAE,GAAkB,IAS7B,CARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,MAAiB;AAMrB,KADA,KACI,KAAqB,MACvB,IAA6B,KAAG,GAChC;;AAMJ,SADA,IAAQ,GACH,IAAE,GAAI,IAAE,GAAkB,IAS7B,CARA,IAAoB,KAAoB,IAAM,IAAM,GAChD,KAAyB,IAAY,KACvC,IAAwB,GACxB,EAAa,KAAK,EAAe,EAAiB,CAAC,EACnD,IAAmB,KAEnB,KAEF,MAAiB;AAInB,YAEE,KADA,MAAwC,GACpC,KAAyB,IAAY,GAAG;AAC1C,OAAa,KAAK,EAAe,EAAiB,CAAC;AACnD;UAEG;AAEP,WAAO,EAAa,KAAK,GAAG;;GAG9B,YAAY,SAAU,GAAY;AAGhC,WAFI,KAAc,OAAa,KAC3B,KAAc,KAAW,OACtB,EAAS,YAAY,EAAW,QAAQ,OAAO,SAAS,GAAO;AAAE,YAAO,EAAW,WAAW,EAAM;MAAI;;GAGjH,aAAa,SAAU,GAAQ,GAAY,GAAc;IACvD,IAAI,IAAa,EAAE,EAEf,IAAY,GACZ,IAAW,GACX,IAAU,GACV,IAAQ,IACR,IAAS,EAAE,EACX,GACA,GACA,GAAM,GAAM,GAAU,GACtB,GACA,IAAO;KAAC,KAAI,EAAa,EAAE;KAAE,UAAS;KAAY,OAAM;KAAE;AAE9D,SAAK,IAAI,GAAG,IAAI,GAAG,KAAK,EACtB,GAAW,KAAK;AAMlB,SAHA,IAAO,GACP,IAAoB,KAAE,GACtB,IAAM,GACC,KAAO,GAQZ,CAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,QAAQ,GAEvC,MAAS,IAAK,IAAI,IAAI,KAAK,GAC3B,MAAU;AAGZ,YAAe,GAAf;KACE,KAAK;AAID,WAHA,IAAO,GACP,IAAoB,KAAE,GACtB,IAAM,GACC,KAAO,GAQZ,CAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,QAAQ,GAEvC,MAAS,IAAK,IAAI,IAAI,KAAK,GAC3B,MAAU;AAEd,UAAI,EAAE,EAAK;AACX;KACF,KAAK;AAID,WAHA,IAAO,GACP,IAAoB,KAAE,IACtB,IAAM,GACC,KAAO,GAQZ,CAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,QAAQ,GAEvC,MAAS,IAAK,IAAI,IAAI,KAAK,GAC3B,MAAU;AAEd,UAAI,EAAE,EAAK;AACX;KACF,KAAK,EACH,QAAO;;AAKX,SAHA,EAAW,KAAK,GAChB,IAAI,GACJ,EAAO,KAAK,EAAE,IACD;AACX,SAAI,EAAK,QAAQ,EACf,QAAO;AAMT,UAHA,IAAO,GACP,IAAoB,KAAE,GACtB,IAAM,GACC,KAAO,GAQZ,CAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,QAAQ,GAEvC,MAAS,IAAK,IAAI,IAAI,KAAK,GAC3B,MAAU;AAGZ,aAAQ,IAAI,GAAZ;MACE,KAAK;AAIH,YAHA,IAAO,GACP,IAAoB,KAAE,GACtB,IAAM,GACC,KAAO,GAQZ,CAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,QAAQ,GAEvC,MAAS,IAAK,IAAI,IAAI,KAAK,GAC3B,MAAU;AAKZ,OAFA,EAAW,OAAc,EAAE,EAAK,EAChC,IAAI,IAAS,GACb;AACA;MACF,KAAK;AAIH,YAHA,IAAO,GACP,IAAoB,KAAE,IACtB,IAAM,GACC,KAAO,GAQZ,CAPA,IAAO,EAAK,MAAM,EAAK,UACvB,EAAK,aAAa,GACd,EAAK,YAAY,MACnB,EAAK,WAAW,GAChB,EAAK,MAAM,EAAa,EAAK,QAAQ,GAEvC,MAAS,IAAK,IAAI,IAAI,KAAK,GAC3B,MAAU;AAIZ,OAFA,EAAW,OAAc,EAAE,EAAK,EAChC,IAAI,IAAS,GACb;AACA;MACF,KAAK,EACH,QAAO,EAAO,KAAK,GAAG;;AAQ1B,SALI,KAAa,MACf,IAAqB,KAAG,GACxB,MAGE,EAAW,GACb,KAAQ,EAAW;cAEf,MAAM,EACR,KAAQ,IAAI,EAAE,OAAO,EAAE;SAEvB,QAAO;AAWX,KARA,EAAO,KAAK,EAAM,EAGlB,EAAW,OAAc,IAAI,EAAM,OAAO,EAAE,EAC5C,KAEA,IAAI,GAEA,KAAa,MACf,IAAqB,KAAG,GACxB;;;GAKP;AACC,SAAO;KACL;AAEJ,CAAI,OAAO,UAAW,cAAc,OAAO,MACzC,OAAO,WAAY;AAAE,SAAO;GAAY,GACxB,MAAW,UAAe,KAAU,OACpD,EAAO,UAAU,IACR,OAAO,UAAY,OAAe,WAAW,QACtD,QAAQ,OAAO,YAAY,EAAE,CAAC,CAC7B,QAAQ,YAAY,WAAY;AAC/B,SAAO;GACP"}
|
|
1
|
+
{"version":3,"file":"vendor-CBD_Olr0.js","names":["React3","#client","#updateResult","#currentMutation","#notify","#currentResult","#mutateOptions","#client","#options","#queries","#observers","#result","#onUpdate","#findMatchingObservers","#observerMatches","#notify","#combineResult","#trackResult","#lastQueryHashes","#combinedResult","#lastResult","#lastCombine","React","React"],"sources":["../../../node_modules/react-intersection-observer/dist/index.mjs","../../../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../../node_modules/@tanstack/react-query/build/modern/useMutation.js","../../../node_modules/zustand/esm/vanilla.mjs","../../../node_modules/zustand/esm/react.mjs","../../../node_modules/zustand/esm/middleware.mjs","../../../node_modules/zustand/esm/vanilla/shallow.mjs","../../../node_modules/zustand/esm/react/shallow.mjs","../../../node_modules/lz-string/libs/lz-string.js"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a2;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n [...(_a2 = elements.get(entry.target)) != null ? _a2 : []].forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"lastInView\");\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n this.lastInView = this.props.initialInView;\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n const previousInView = this.lastInView;\n this.lastInView = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n this.lastInView = props.initialInView;\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n if (this.lastInView === void 0) {\n this.lastInView = this.props.initialInView;\n }\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-expect-error\n trackVisibility,\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a2;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef(onChange);\n const lastInViewRef = React2.useRef(initialInView);\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (lastInViewRef.current === void 0) {\n lastInViewRef.current = initialInView;\n }\n if (skip || !ref) return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n const previousInView = lastInViewRef.current;\n lastInViewRef.current = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n setState({\n inView,\n entry\n });\n if (callback.current) callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-expect-error\n trackVisibility,\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a2 = state.entry) == null ? void 0 : _a2.target;\n const previousEntryTarget = React2.useRef(void 0);\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n lastInViewRef.current = initialInView;\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\n// src/useOnInView.tsx\nimport * as React3 from \"react\";\nvar _a, _b;\nvar useSyncEffect = (_b = (_a = \"useInsertionEffect\" in React3 ? React3.useInsertionEffect : void 0) != null ? _a : React3.useLayoutEffect) != null ? _b : React3.useEffect;\nvar useOnInView = (onIntersectionChange, {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n triggerOnce,\n skip\n} = {}) => {\n const onIntersectionChangeRef = React3.useRef(onIntersectionChange);\n const observedElementRef = React3.useRef(null);\n const observerCleanupRef = React3.useRef(void 0);\n const lastInViewRef = React3.useRef(void 0);\n useSyncEffect(() => {\n onIntersectionChangeRef.current = onIntersectionChange;\n }, [onIntersectionChange]);\n return React3.useCallback(\n (element) => {\n const cleanupExisting = () => {\n if (observerCleanupRef.current) {\n const cleanup = observerCleanupRef.current;\n observerCleanupRef.current = void 0;\n cleanup();\n }\n };\n if (element === observedElementRef.current) {\n return observerCleanupRef.current;\n }\n if (!element || skip) {\n cleanupExisting();\n observedElementRef.current = null;\n lastInViewRef.current = void 0;\n return;\n }\n cleanupExisting();\n observedElementRef.current = element;\n let destroyed = false;\n const destroyObserver = observe(\n element,\n (inView, entry) => {\n const previousInView = lastInViewRef.current;\n lastInViewRef.current = inView;\n if (previousInView === void 0 && !inView) {\n return;\n }\n onIntersectionChangeRef.current(\n inView,\n entry\n );\n if (triggerOnce && inView) {\n stopObserving();\n }\n },\n {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay\n }\n );\n function stopObserving() {\n if (destroyed) return;\n destroyed = true;\n destroyObserver();\n observedElementRef.current = null;\n observerCleanupRef.current = void 0;\n lastInViewRef.current = void 0;\n }\n observerCleanupRef.current = stopObserving;\n return observerCleanupRef.current;\n },\n [\n Array.isArray(threshold) ? threshold.toString() : threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n triggerOnce,\n skip\n ]\n );\n};\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView,\n useOnInView\n};\n//# sourceMappingURL=index.mjs.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #lastQueryHashes;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches;\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine, queryHashes);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine, queryHashes) {\n if (combine) {\n const lastHashes = this.#lastQueryHashes;\n const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n if (!this.#combinedResult || this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n if (queryHashes !== void 0) {\n this.#lastQueryHashes = queryHashes;\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult;\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const newResult = this.#combineResult(newTracked, this.#options?.combine);\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions);\n const query = client.getQueryCache().get(queryOptions.queryHash);\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts && shouldSuspend(opts, result)) {\n const queryObserver = new QueryObserver(client, opts);\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst shouldDispatchFromDevtools = (api) => !!api.dispatchFromDevtools && typeof api.dispatch === \"function\";\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = ((state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n });\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (shouldDispatchFromDevtools(api)) {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (shouldDispatchFromDevtools(api)) {\n api.dispatch(action);\n }\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = ((selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n });\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => window.localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n let hydrationVersion = 0;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n return setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n return setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n const currentVersion = ++hydrationVersion;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n if (currentVersion !== hydrationVersion) {\n return;\n }\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(get(), void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nfunction ssrSafe(config, isSSR = typeof window === \"undefined\") {\n return (set, get, api) => {\n if (!isSSR) {\n return config(set, get, api);\n }\n const ssrSet = () => {\n throw new Error(\"Cannot set state of Zustand store in SSR\");\n };\n api.setState = ssrSet;\n return config(ssrSet, get, api);\n };\n}\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector, ssrSafe as unstable_ssrSafe };\n","const isIterable = (obj) => Symbol.iterator in obj;\nconst hasIterableEntries = (value) => (\n // HACK: avoid checking entries type\n \"entries\" in value\n);\nconst compareEntries = (valueA, valueB) => {\n const mapA = valueA instanceof Map ? valueA : new Map(valueA.entries());\n const mapB = valueB instanceof Map ? valueB : new Map(valueB.entries());\n if (mapA.size !== mapB.size) {\n return false;\n }\n for (const [key, value] of mapA) {\n if (!mapB.has(key) || !Object.is(value, mapB.get(key))) {\n return false;\n }\n }\n return true;\n};\nconst compareIterables = (valueA, valueB) => {\n const iteratorA = valueA[Symbol.iterator]();\n const iteratorB = valueB[Symbol.iterator]();\n let nextA = iteratorA.next();\n let nextB = iteratorB.next();\n while (!nextA.done && !nextB.done) {\n if (!Object.is(nextA.value, nextB.value)) {\n return false;\n }\n nextA = iteratorA.next();\n nextB = iteratorB.next();\n }\n return !!nextA.done && !!nextB.done;\n};\nfunction shallow(valueA, valueB) {\n if (Object.is(valueA, valueB)) {\n return true;\n }\n if (typeof valueA !== \"object\" || valueA === null || typeof valueB !== \"object\" || valueB === null) {\n return false;\n }\n if (Object.getPrototypeOf(valueA) !== Object.getPrototypeOf(valueB)) {\n return false;\n }\n if (isIterable(valueA) && isIterable(valueB)) {\n if (hasIterableEntries(valueA) && hasIterableEntries(valueB)) {\n return compareEntries(valueA, valueB);\n }\n return compareIterables(valueA, valueB);\n }\n return compareEntries(\n { entries: () => Object.entries(valueA) },\n { entries: () => Object.entries(valueB) }\n );\n}\n\nexport { shallow };\n","import React from 'react';\nimport { shallow } from 'zustand/vanilla/shallow';\n\nfunction useShallow(selector) {\n const prev = React.useRef(void 0);\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as e, i as t, n, r, t as i } from "./chunks/DashboardEditModal-
|
|
2
|
-
import { i as a, p as o } from "./chunks/FieldSearchModal-
|
|
3
|
-
import { a as s, n as c, o as l, r as u, s as d, t as f } from "./chunks/utils-
|
|
1
|
+
import { D as e, i as t, n, r, t as i } from "./chunks/DashboardEditModal-IU_0dgfC.js";
|
|
2
|
+
import { i as a, p as o } from "./chunks/FieldSearchModal-BCWanpPX.js";
|
|
3
|
+
import { a as s, n as c, o as l, r as u, s as d, t as f } from "./chunks/utils-BHZdKxua.js";
|
|
4
4
|
export { a as AnalysisDisplayConfigPanel, r as AnalyticsDashboard, e as AnalyticsPortlet, i as DashboardEditModal, t as DashboardGrid, o as Modal, n as PortletContainer, f as createDashboardLayout, c as createSamplePortlet, u as findNextPosition, s as generatePortletId, l as generateResponsiveLayouts, d as validateCubeQuery };
|
package/dist/client/hooks.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { X as e } from "./chunks/chart-data-table-
|
|
2
|
-
import { a as t, b as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "./chunks/useDebounce-
|
|
3
|
-
import { a as u, i as d, n as f, o as p, r as m, t as h } from "./chunks/useExplainAI-
|
|
1
|
+
import { X as e } from "./chunks/chart-data-table-Qrt6EAno.js";
|
|
2
|
+
import { a as t, b as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "./chunks/useDebounce-DyJVREop.js";
|
|
3
|
+
import { a as u, i as d, n as f, o as p, r as m, t as h } from "./chunks/useExplainAI-CxSkjocM.js";
|
|
4
4
|
import { n as g, t as _ } from "./chunks/useDirtyStateTracking-KAjwj1Ht.js";
|
|
5
5
|
import { t as v } from "./chunks/useNotebookLayout-DKkMenhj.js";
|
|
6
6
|
export { f as createExplainQueryKey, r as createFlowQueryKey, o as createFunnelQueryKey, n as useCubeLoadQuery, n as useCubeQuery, e as useCubeMetaQuery, l as useDebounce, _ as useDirtyStateTracking, d as useDryRunQueries, u as useDryRunQuery, h as useExplainAI, m as useExplainQuery, a as useFilterValues, t as useFlowQuery, c as useFunnelQuery, i as useMultiCubeLoadQuery, p as useMultiDryRunQueries, v as useNotebookLayout, g as useResponsiveDashboard, s as useRetentionQuery };
|
package/dist/client/icons.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as e, F as t, I as n, L as r, M as i, N as a, O as o, P as s, R as c, j as l, k as u } from "./chunks/chart-data-table-
|
|
1
|
+
import { A as e, F as t, I as n, L as r, M as i, N as a, O as o, P as s, R as c, j as l, k as u } from "./chunks/chart-data-table-Qrt6EAno.js";
|
|
2
2
|
export { c as DEFAULT_ICONS, o as getChartTypeIcon, u as getFieldTypeIcon, e as getIcon, l as getIconData, i as getIconRegistry, a as getIconsByCategory, s as getMeasureTypeIcon, t as registerIcons, n as resetIcons, r as setIcon };
|
package/dist/client/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { a as e, n as t, o as n, r, s as i } from "./chunks/vendor-
|
|
2
|
-
import { $ as a, A as o, C as s, D as c, E as l, F as u, G as d, H as f, I as p, J as m, L as h, M as g, N as _, O as v, P as y, Q as b, R as x, S, T as C, U as w, V as T, W as E, X as D, Y as O, Z as k, c as A, j, k as M, l as N, s as P, w as F, x as I } from "./chunks/chart-data-table-
|
|
3
|
-
import { _ as L, a as R, b as z, d as ee, f as B, g as te, h as V, i as ne, l as re, m as ie, o as ae, p as oe, s as se, u as ce, v as le } from "./chunks/useDebounce-
|
|
4
|
-
import { a as ue, i as de, n as fe, o as pe, r as me, t as he } from "./chunks/useExplainAI-
|
|
1
|
+
import { a as e, n as t, o as n, r, s as i } from "./chunks/vendor-CBD_Olr0.js";
|
|
2
|
+
import { $ as a, A as o, C as s, D as c, E as l, F as u, G as d, H as f, I as p, J as m, L as h, M as g, N as _, O as v, P as y, Q as b, R as x, S, T as C, U as w, V as T, W as E, X as D, Y as O, Z as k, c as A, j, k as M, l as N, s as P, w as F, x as I } from "./chunks/chart-data-table-Qrt6EAno.js";
|
|
3
|
+
import { _ as L, a as R, b as z, d as ee, f as B, g as te, h as V, i as ne, l as re, m as ie, o as ae, p as oe, s as se, u as ce, v as le } from "./chunks/useDebounce-DyJVREop.js";
|
|
4
|
+
import { a as ue, i as de, n as fe, o as pe, r as me, t as he } from "./chunks/useExplainAI-CxSkjocM.js";
|
|
5
5
|
import { a as ge, c as _e, i as ve, l as ye, o as be, r as xe, s as Se } from "./chunks/chart-funnel-C7pgktN5.js";
|
|
6
6
|
import { n as Ce, r as we } from "./chunks/chart-sankey-WwkZAhLy.js";
|
|
7
7
|
import { n as Te, t as Ee } from "./chunks/providers-DX3Vw5kc.js";
|
|
8
8
|
import { F as De, _ as Oe, c as ke, d as Ae, f as je, g as Me, h as Ne, k as H, l as Pe, m as Fe, p as Ie, u as Le } from "./chunks/chart-activity-grid-CWT0gLv4.js";
|
|
9
|
-
import { A as Re, C as ze, D as Be, E as Ve, M as He, N as Ue, O as We, S as Ge, T as Ke, _ as qe, a as Je, b as Ye, c as Xe, d as Ze, f as Qe, g as $e, h as et, i as tt, j as nt, k as rt, l as it, m as at, n as ot, o as st, p as ct, r as lt, s as ut, t as dt, u as ft, v as pt, w as mt, x as ht, y as gt } from "./chunks/DashboardEditModal-
|
|
10
|
-
import { u as _t } from "./chunks/chart-area-
|
|
11
|
-
import { A as vt, C as yt, D as bt, E as xt, F as St, I as Ct, L as wt, M as Tt, N as Et, O as Dt, P as Ot, R as kt, S as At, T as jt, h as Mt, j as Nt, k as Pt, p as Ft, r as It, t as Lt, w as Rt } from "./chunks/FieldSearchModal-
|
|
12
|
-
import { r as zt } from "./chunks/syntaxHighlighting-
|
|
13
|
-
import { A as Bt, D as Vt, E as Ht, F as Ut, I as Wt, M as Gt, O as Kt, P as qt, S as Jt, T as Yt, _ as Xt, a as Zt, b as Qt, c as $t, d as en, f as tn, g as nn, h as rn, i as an, j as on, k as sn, l as cn, n as ln, o as un, p as dn, r as fn, s as pn, t as mn, v as hn, w as gn, x as _n, y as vn } from "./chunks/analysis-builder-shared-
|
|
14
|
-
import { r as yn } from "./chunks/chart-markdown-
|
|
9
|
+
import { A as Re, C as ze, D as Be, E as Ve, M as He, N as Ue, O as We, S as Ge, T as Ke, _ as qe, a as Je, b as Ye, c as Xe, d as Ze, f as Qe, g as $e, h as et, i as tt, j as nt, k as rt, l as it, m as at, n as ot, o as st, p as ct, r as lt, s as ut, t as dt, u as ft, v as pt, w as mt, x as ht, y as gt } from "./chunks/DashboardEditModal-IU_0dgfC.js";
|
|
10
|
+
import { u as _t } from "./chunks/chart-area-DDti9Qtp.js";
|
|
11
|
+
import { A as vt, C as yt, D as bt, E as xt, F as St, I as Ct, L as wt, M as Tt, N as Et, O as Dt, P as Ot, R as kt, S as At, T as jt, h as Mt, j as Nt, k as Pt, p as Ft, r as It, t as Lt, w as Rt } from "./chunks/FieldSearchModal-BCWanpPX.js";
|
|
12
|
+
import { r as zt } from "./chunks/syntaxHighlighting-D8J6Yt9j.js";
|
|
13
|
+
import { A as Bt, D as Vt, E as Ht, F as Ut, I as Wt, M as Gt, O as Kt, P as qt, S as Jt, T as Yt, _ as Xt, a as Zt, b as Qt, c as $t, d as en, f as tn, g as nn, h as rn, i as an, j as on, k as sn, l as cn, n as ln, o as un, p as dn, r as fn, s as pn, t as mn, v as hn, w as gn, x as _n, y as vn } from "./chunks/analysis-builder-shared-DT5bXwCA.js";
|
|
14
|
+
import { r as yn } from "./chunks/chart-markdown-CiGRZdJj.js";
|
|
15
15
|
import { t as bn } from "./chunks/useNotebookLayout-DKkMenhj.js";
|
|
16
16
|
import { n as xn } from "./chunks/chart-bubble-CMDp4Pfm.js";
|
|
17
|
-
import { i as Sn, t as Cn } from "./chunks/utils-
|
|
17
|
+
import { i as Sn, t as Cn } from "./chunks/utils-BHZdKxua.js";
|
|
18
18
|
import U, { createContext as wn, useCallback as W, useContext as Tn, useEffect as G, useMemo as K, useRef as q, useState as J } from "react";
|
|
19
19
|
import { Fragment as Y, jsx as X, jsxs as Z } from "react/jsx-runtime";
|
|
20
20
|
//#region src/client/stores/notebookStore.tsx
|
package/dist/client/providers.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as e, c as t, s as n } from "./chunks/chart-data-table-
|
|
1
|
+
import { $ as e, c as t, s as n } from "./chunks/chart-data-table-Qrt6EAno.js";
|
|
2
2
|
import { n as r, t as i } from "./chunks/providers-DX3Vw5kc.js";
|
|
3
3
|
export { n as CubeProvider, i as ScrollContainerProvider, e as createCubeClient, t as useCubeContext, r as useScrollContainer };
|
package/dist/client/schema.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e } from "./chunks/schema-visualization-
|
|
1
|
+
import { n as e } from "./chunks/schema-visualization-DWwJukK7.js";
|
|
2
2
|
export { e as SchemaVisualization };
|
package/dist/client/utils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { G as e, H as t, J as n, U as r, a as i, i as a, o, r as s } from "./chunks/chart-data-table-
|
|
1
|
+
import { G as e, H as t, J as n, U as r, a as i, i as a, o, r as s } from "./chunks/chart-data-table-Qrt6EAno.js";
|
|
2
2
|
import { C as c, D as l, E as u, O as d, S as f, T as p, a as m, b as h, i as g, n as _, o as v, r as y, s as b, v as x, w as S, x as C, y as w } from "./chunks/chart-activity-grid-CWT0gLv4.js";
|
|
3
|
-
import { a as T, i as E, n as D, r as O, t as k } from "./chunks/syntaxHighlighting-
|
|
4
|
-
import { a as A, c as j, i as M, l as N, n as P, o as F, r as I, s as L, t as R } from "./chunks/utils-
|
|
5
|
-
import { a as z, i as B, n as V, r as H } from "./chunks/chart-kpi-delta-
|
|
6
|
-
import { a as U, c as W, d as G, i as K, l as q, o as J, r as Y, s as X, u as Z } from "./chunks/chart-line-
|
|
3
|
+
import { a as T, i as E, n as D, r as O, t as k } from "./chunks/syntaxHighlighting-D8J6Yt9j.js";
|
|
4
|
+
import { a as A, c as j, i as M, l as N, n as P, o as F, r as I, s as L, t as R } from "./chunks/utils-BHZdKxua.js";
|
|
5
|
+
import { a as z, i as B, n as V, r as H } from "./chunks/chart-kpi-delta-CgldZ7zO.js";
|
|
6
|
+
import { a as U, c as W, d as G, i as K, l as q, o as J, r as Y, s as X, u as Z } from "./chunks/chart-line-RdZwtk27.js";
|
|
7
7
|
export { _ as CHART_COLORS, y as CHART_COLORS_GRADIENT, g as CHART_MARGINS, m as NEGATIVE_COLOR, v as POSITIVE_COLOR, b as RESPONSIVE_CHART_MARGINS, e as captureThumbnail, x as createAxisTickFormatter, R as createDashboardLayout, P as createSamplePortlet, t as exportPortletToXlsx, V as filterIncompletePeriod, I as findNextPosition, w as formatAxisValue, M as formatChartData, h as formatNumericValue, Y as formatPeriodDayIndex, C as formatTimeValue, K as generatePeriodShortLabel, A as generatePortletId, F as generateResponsiveLayouts, j as getAllMeasureIcons, f as getFieldGranularity, c as getFieldLabel, N as getMeasureIcon, s as getMeasureType, a as getOrderedColumnsFromQuery, H as getPeriodEndDate, U as getPeriodIndices, J as getPeriodLabels, X as getPriorPeriodStrokeDashArray, B as getQueryGranularity, k as getSyntaxHighlighter, i as hasTimeDimensionForPivot, D as highlightCodeBlock, O as highlightCodeBlocks, W as isComparisonData, r as isExportAvailable, z as isLastPeriodComplete, q as isPriorPeriodSeries, E as isSyntaxHighlightingAvailable, n as isThumbnailCaptureAvailable, S as isValidNumericValue, T as loadSyntaxHighlighter, p as parseNumericValue, o as pivotTableData, u as transformChartData, l as transformChartDataWithSeries, Z as transformForOverlayMode, G as transformForSeparateMode, d as transformSeriesKeysWithLabels, L as validateCubeQuery };
|