@brytdesigns/shopify-ajax-cart-components 1.1.31 → 1.2.0

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/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { customShadowlessElement, correctElementType } from '@brytdesigns/web-component-utils';
1
+ import { createWithElementContext, customShadowlessElement, correctElementType } from '@brytdesigns/web-component-core/utils';
2
2
  import { splitProps, createEffect, on, createMemo, Show, For, mapArray, onCleanup } from 'solid-js';
3
3
  import AjaxCart from '@brytdesigns/shopify-ajax-cart';
4
4
  import { createContext, provide, consume } from 'component-register';
@@ -243,6 +243,7 @@ var useListenerStatus = (element) => {
243
243
  }
244
244
  return useListenerStatusContext(context);
245
245
  };
246
+ var withListenerElementStatus = createWithElementContext(ListenerStatusContext);
246
247
  var Name2 = "cart-data";
247
248
  var Component2 = (props, { element }) => {
248
249
  if (!props.propertyName)
@@ -913,6 +914,6 @@ customShadowlessElement(
913
914
  correctElementType(cart_loading_state_exports.Component)
914
915
  );
915
916
 
916
- export { provideAjaxCartContext, provideFullPropertyPathContext, provideListenerStatusContext, useAjaxCart, useAjaxCartContext, useCartValue, useFormattedValue, useFullPropertyPath, useFullPropertyPathContext, useListenerStatus, useListenerStatusContext };
917
+ export { provideAjaxCartContext, provideFullPropertyPathContext, provideListenerStatusContext, useAjaxCart, useAjaxCartContext, useCartValue, useFormattedValue, useFullPropertyPath, useFullPropertyPathContext, useListenerStatus, useListenerStatusContext, withListenerElementStatus };
917
918
  //# sourceMappingURL=index.js.map
918
919
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/cart-context.ts","../../src/hooks/useAjaxCart.ts","../../src/utils/getValueFromPath.ts","../../src/utils/formatValue.ts","../../src/utils/getTemplateContent.ts","../../src/utils/getTargetElement.ts","../../src/utils/parseNestedObject.ts","../../src/utils/traverseObject.ts","../../src/components/cart-data.ts","../../src/hooks/useFullPropertyPath.ts","../../src/hooks/useCartValue.ts","../../src/hooks/useFormattedValue.ts","../../src/hooks/useListenerStatus.ts","../../src/components/cart-data-conditions.ts","../../src/components/cart-data-array.ts","../../src/components/cart-data-array-injection.ts","../../src/components/cart-data-array-item.ts","../../src/components/cart-data-listener.ts","../../src/components/cart-data-listener-status.ts","../../src/components/cart-data-injection.ts","../../src/components/cart-loading-state.ts","../../src/index.ts"],"names":["cart","Component","Name","createContext","provide","consume","createMemo","html","result","Show","For","children","createEffect","on","data","AjaxCart","reset","value","onCleanup"],"mappings":"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","file":"index.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { createEffect, on } from \"solid-js\";\nimport { provideAjaxCartContext } from \"../hooks/useAjaxCart.js\";\nimport { traverseObject } from \"../utils/index.js\";\n\ntype CartContextProps = {\n debug?: boolean;\n};\n\nexport const Name = \"cart-context\";\n\nexport const Component: CorrectComponentType<CartContextProps> = (\n props,\n { element },\n) => {\n const cart = provideAjaxCartContext(element);\n createEffect(\n on(\n () => {\n const c = cart();\n // This will listen to every change within the cart object.\n traverseObject(c);\n return {\n cart: c,\n debug: props.debug,\n };\n },\n ({ cart, debug }) => {\n if (!debug) return;\n console.log(`${Name}:updated!`, cart);\n },\n ),\n );\n};\n","import AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\nimport {\n createContext,\n consume,\n provide,\n type ICustomElement,\n} from \"component-register\";\n\ntype WalkableNode = Parameters<typeof provide>[2];\n\ntype AjaxCartContextType = () => (typeof AjaxCart)[\"data\"];\n\nconst AjaxCartContext = createContext(() => () => AjaxCart.data);\n\nexport const provideAjaxCartContext = (\n element: WalkableNode,\n): AjaxCartContextType => {\n return provide(AjaxCartContext, {}, element);\n};\n\nexport const useAjaxCartContext = (context: AjaxCartContextType) => {\n return context;\n};\n\nexport const useAjaxCart = (element: HTMLElement & ICustomElement) => {\n const context = consume(AjaxCartContext, element);\n\n if (!context) {\n throw console.error(\n \"CartContext not found! Please ensure to wrap your custom element with cart-context element.\",\n );\n }\n\n return useAjaxCartContext(context);\n};\n","// 🔥 Recursively Constructs All Possible Paths for an Object or Array\nexport type Path<T> = T extends readonly (infer U)[]\n ? `${number}` | `${number}.${Path<U>}` // Allows indexing into readonly arrays\n : T extends object\n ? {\n [K in keyof T & (string | number)]: T[K] extends object | any[]\n ? `${K}` | `${K}.${Path<T[K]>}`\n : `${K}`;\n }[keyof T & (string | number)]\n : never;\n\n// 🔥 Correctly Extracts the Value at the Given Path\nexport type PathValue<\n T,\n P extends string,\n> = P extends `${infer Key}.${infer Rest}`\n ? Key extends keyof T\n ? PathValue<T[Key], Rest>\n : Key extends `${number}`\n ? T extends readonly (infer U)[]\n ? PathValue<U, Rest>\n : undefined\n : undefined\n : P extends keyof T\n ? T[P]\n : P extends `${number}`\n ? T extends readonly (infer U)[]\n ? U\n : undefined\n : undefined;\n\nexport function getValueFromPath<T, P extends Path<T>>(\n obj: T,\n path: P,\n): PathValue<T, P> {\n return path.split(\".\").reduce<any>((acc, key) => {\n if (acc === null || acc === undefined) return undefined;\n\n // 🔥 Convert numeric keys for proper array indexing\n const isArrayIndex = !isNaN(Number(key)) && key.trim() !== \"\";\n if (Array.isArray(acc) && isArrayIndex) {\n return acc[Number(key)];\n }\n\n // Normal object property access\n return acc[key];\n }, obj) as PathValue<T, P>;\n}\n","export type Format =\n | \"currency\"\n | \"number\"\n | \"boolean\"\n | \"invert_boolean\"\n | string;\n\nexport function formatValue(format: Format, value: unknown) {\n switch (format) {\n case \"currency\":\n if (typeof value === \"number\") return window.Shopify.formatMoney(value);\n if (typeof value === \"string\")\n return window.Shopify.formatMoney(parseFloat(value));\n console.warn(\"formatValue: Unsupported value type for currency format.\");\n return window.Shopify.formatMoney(0);\n case \"number\":\n return Number(value);\n case \"boolean\":\n return Boolean(value);\n case \"invert_boolean\":\n return !Boolean(value);\n default:\n return value as any;\n }\n}\n\ndeclare global {\n interface Window {\n Shopify: {\n formatMoney(value: number, currency?: string): string;\n };\n }\n}\n","export function getTemplateContent(element: HTMLElement, state: string) {\n const tmpl = element.querySelector(\n `template[${state}]`,\n ) as HTMLTemplateElement;\n if (!tmpl) return null;\n return tmpl.content;\n}\n","export function getTargetElement(rootElement: HTMLElement, target: string) {\n if (!target) return rootElement;\n const t = rootElement.querySelector(target);\n if (!t) {\n console.error(`target element not found: ${target}`);\n return null;\n }\n return t;\n}\n","export function parseNestedObject<T extends Record<string, any>>(\n data: T,\n): Record<string, any> {\n const result: Record<string, any> = {};\n\n for (const key in data) {\n const value = data[key];\n const parts = key.match(/(\\w+|\\[\\d+\\])/g);\n\n if (!parts) continue;\n\n let current: any = result;\n for (let i = 0; i < parts.length; i++) {\n let part: string | number | undefined = parts[i];\n let nextPart: string | number | undefined = parts[i + 1];\n\n if (!part) continue;\n\n // Convert array-like keys to numbers\n if (part.startsWith(\"[\")) {\n part = parseInt(part.slice(1, -1), 10);\n }\n\n if (i === parts.length - 1) {\n current[part] = value;\n } else {\n if (\n typeof parts[i + 1] === \"number\" ||\n (nextPart && nextPart.startsWith(\"[\"))\n ) {\n current[part] = current[part] || [];\n } else {\n current[part] = current[part] || {};\n }\n current = current[part];\n }\n }\n }\n\n return result;\n}\n","type TraverseCallback = (key: string, value: any, path: string[]) => void;\n\nexport function traverseObject(\n obj: any,\n callback?: TraverseCallback,\n path: string[] = [],\n) {\n if (typeof obj !== \"object\" || obj === null) return;\n\n if (Array.isArray(obj)) {\n obj.forEach((item, index) => {\n traverseObject(item, callback, [...path, index.toString()]);\n });\n } else {\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n const currentPath = [...path, key];\n if (callback) callback(key, value, currentPath);\n traverseObject(value, callback, currentPath);\n }\n }\n}\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\nimport { type Format } from \"../utils/index.js\";\n\nimport { Show } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useFormattedValue,\n} from \"../hooks/index.js\";\nimport html from \"solid-js/html\";\n\ntype CartDataProps = {\n propertyName: ValidAjaxPath;\n format?: Format;\n};\n\nexport const Name = \"cart-data\";\n\nexport const Component: CorrectComponentType<CartDataProps> = (\n props,\n { element },\n) => {\n if (!props.propertyName)\n return console.warn(`${Name}: No property-name attribute provided.`);\n const fullPath = useFullPropertyPath({\n element,\n path: () => props.propertyName,\n });\n const formattedValue = useFormattedValue({\n get format() {\n return props.format;\n },\n path: fullPath,\n element,\n });\n\n return html`\n <${Show} when=${() => formattedValue() !== null}> ${formattedValue} <//>\n `;\n};\n","import type { Path } from \"../utils\";\n\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\nimport { createMemo, type Accessor } from \"solid-js\";\nimport {\n createContext,\n consume,\n provide,\n type ICustomElement,\n} from \"component-register\";\n\ntype AjaxCartData = (typeof AjaxCart)[\"data\"];\n\nexport type ValidAjaxPath = Path<AjaxCartData>;\n\ntype WalkableNode = Parameters<typeof provide>[2];\n\ntype FullPropertyPathContextType = ReturnType<\n typeof createFullPathPropertyContext\n>;\n\ntype Options = {\n path: Accessor<ValidAjaxPath>;\n element: HTMLElement & ICustomElement;\n};\n\nfunction createFullPathPropertyContext(\n options: Options,\n): Accessor<ValidAjaxPath> {\n return options.path;\n}\n\nconst FullPropertyPathContext = createContext(createFullPathPropertyContext);\n\nexport function provideFullPropertyPathContext({\n element,\n path,\n}: {\n element: WalkableNode;\n path: Accessor<ValidAjaxPath>;\n}): FullPropertyPathContextType {\n return provide(FullPropertyPathContext, { path }, element);\n}\n\nexport function useFullPropertyPathContext(\n context: FullPropertyPathContextType,\n) {\n return context;\n}\n\nexport function useFullPropertyPath(props: {\n element: HTMLElement & ICustomElement;\n path?: Accessor<ValidAjaxPath>;\n}) {\n const context = consume(FullPropertyPathContext, props.element);\n const basePath = useFullPropertyPathContext(context);\n return createMemo(() => {\n if (typeof basePath !== \"function\" && typeof props.path === \"function\") {\n return props.path();\n } else if (\n typeof basePath === \"function\" &&\n typeof props.path !== \"function\"\n ) {\n return basePath();\n } else if (\n typeof basePath === \"function\" &&\n typeof props.path === \"function\"\n ) {\n return `${basePath()}.${props.path()}` as ValidAjaxPath;\n }\n return \"\" as ValidAjaxPath;\n });\n}\n","import { type Accessor, createMemo } from \"solid-js\";\nimport { type ICustomElement } from \"component-register\";\n\nimport { type ValidAjaxPath } from \"./useFullPropertyPath.js\";\nimport { useAjaxCart } from \"./useAjaxCart.js\";\nimport { getValueFromPath } from \"../utils/index.js\";\n\ntype Options = {\n path: Accessor<ValidAjaxPath>;\n element: HTMLElement & ICustomElement;\n};\n\nexport function useCartValue(options: Options) {\n const cart = useAjaxCart(options.element);\n\n const value = createMemo(() => {\n const c = cart();\n if (typeof options.path !== \"function\") return c;\n const path = options.path();\n if (!path) return c;\n const v = getValueFromPath(c, path);\n if (v === undefined || v === null) return null;\n return v;\n });\n\n return value;\n}\n","import { type Accessor, createMemo } from \"solid-js\";\nimport { type ICustomElement } from \"component-register\";\n\nimport { type ValidAjaxPath } from \"./useFullPropertyPath.js\";\nimport { formatValue, type Format } from \"../utils/index.js\";\nimport { useCartValue } from \"./useCartValue.js\";\n\ntype Options = {\n path: Accessor<ValidAjaxPath>;\n format?: Format;\n element: HTMLElement & ICustomElement;\n};\n\nexport function useFormattedValue(options: Options) {\n const value = useCartValue({ path: options.path, element: options.element });\n\n const formattedValue = createMemo(() => {\n const v = value();\n if (v === null) return null;\n if (\n typeof v === \"string\" ||\n typeof v === \"number\" ||\n typeof v === \"boolean\"\n ) {\n return formatValue(options.format || \"\", v);\n }\n console.warn(\n options.element,\n `useFormattedValue: Unsupported value type. Expected string, number, or boolean. Received: ${typeof v}.`,\n v,\n );\n return null;\n });\n\n return formattedValue;\n}\n","import {\n createContext,\n consume,\n provide,\n type ICustomElement,\n} from \"component-register\";\nimport { splitProps } from \"solid-js\";\n\ntype WalkableNode = Parameters<typeof provide>[2];\nexport type Status = \"default\" | \"loading\" | \"success\" | \"error\";\n\ntype ListenerStatusContextType = ReturnType<typeof createListenerStatusContext>;\n\ntype Options = {\n element: HTMLElement & ICustomElement;\n status: Status;\n};\n\nfunction createListenerStatusContext(options: Options) {\n const [privateProps, publicProps] = splitProps(options, [\"element\"]);\n\n function setStatus(status: Status) {\n const currentStatus = privateProps.element.getAttribute(\"status\");\n if (currentStatus === status) return;\n privateProps.element.setAttribute(\"status\", status);\n return status;\n }\n\n return [() => publicProps.status, setStatus] as const;\n}\n\nconst ListenerStatusContext = createContext(createListenerStatusContext);\n\nexport const provideListenerStatusContext = (options: {\n element: WalkableNode;\n status: Status;\n}): ListenerStatusContextType => {\n return provide(ListenerStatusContext, options, options.element);\n};\n\nexport const useListenerStatusContext = (\n context: ListenerStatusContextType\n) => {\n return context;\n};\n\nexport const useListenerStatus = (element: HTMLElement & ICustomElement) => {\n const context = consume(ListenerStatusContext, element);\n\n if (!context) {\n throw console.error(\n \"CartListenerContext not found! Please ensure to wrap your custom element with cart-data-listener element.\"\n );\n }\n\n return useListenerStatusContext(context);\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { Show, createMemo, For, type Accessor, createEffect } from \"solid-js\";\nimport html from \"solid-js/html\";\n\nimport { useFullPropertyPath, useCartValue } from \"../hooks/index.js\";\nimport { getValueFromPath, formatValue, type Format } from \"../utils/index.js\";\n\ntype CartDataConditionsProps = {};\n\ntype ConditionValue = {\n type: \"primitive\" | \"property\";\n name?: string;\n value?: string | number | boolean | null;\n property_name?: string;\n};\n\ntype Condition = {\n type:\n | \"typeof\"\n | \"includes\"\n | \"includes_property\"\n | \"equals\"\n | \"not_equals\"\n | \"starts_with\"\n | \"lt\"\n | \"lte\"\n | \"gt\"\n | \"gte\";\n format?: Format;\n invert?: boolean;\n valueA: ConditionValue;\n valueB: ConditionValue;\n};\n\nfunction getValue<T>(data: T, value: ConditionValue): any {\n if (typeof value === \"undefined\" || !data) return undefined;\n\n if (value.type === \"primitive\") {\n return value.value;\n }\n\n if (value.type === \"property\" && value.name) {\n //@ts-ignore\n return getValueFromPath<T>(data, value.name);\n }\n\n return null;\n}\n\nfunction invertResult(result: boolean, invert = false) {\n if (invert) return !result;\n return result;\n}\n\nfunction validateConditions<T>(conditions: Condition[], data: T) {\n if (!data) return false;\n const result = conditions.every((condition) => {\n let valueA = getValue(data, condition.valueA),\n valueB = getValue(data, condition.valueB),\n result = false;\n\n if (typeof valueA === \"undefined\" && typeof valueB === \"undefined\")\n return false;\n\n if (condition.type === \"typeof\") {\n result = typeof valueA === valueB;\n }\n\n if (condition.type === \"includes\") {\n result = formatValue(condition.format || \"\", valueA).includes(\n formatValue(condition.format || \"\", valueB),\n );\n }\n\n if (condition.type === \"includes_property\") {\n result = valueA.some(\n (v: any) => v[condition.valueA?.property_name || \"\"] === valueB,\n );\n }\n\n if (condition.type === \"starts_with\") {\n result = formatValue(\"string\", valueA).startsWith(\n formatValue(condition.format || \"\", valueB),\n );\n }\n\n if (condition.type === \"equals\") {\n result =\n formatValue(condition.format || \"\", valueA) ===\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"not_equals\") {\n result =\n formatValue(condition.format || \"\", valueA) !==\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"lt\") {\n result =\n formatValue(condition.format || \"\", valueA) <\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"lte\") {\n result =\n formatValue(condition.format || \"\", valueA) <=\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"gt\") {\n result =\n formatValue(condition.format || \"\", valueA) >\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"gte\") {\n result =\n formatValue(condition.format || \"\", valueA) >=\n formatValue(condition.format || \"\", valueB);\n }\n\n return invertResult(result, condition.invert);\n });\n\n return result;\n}\n\nexport const Name = \"cart-data-conditions\";\n\nexport const Component: CorrectComponentType<CartDataConditionsProps> = (\n _,\n { element },\n) => {\n const conditionTemplates = Array.from(element.children).filter(\n (child) => child.tagName === \"TEMPLATE\" && child.hasAttribute(\"conditions\"),\n );\n if (!conditionTemplates.length)\n return console.error(\n `${Name}: no templates found with any conditions attribute!`,\n );\n\n const allConditions = createMemo(() =>\n conditionTemplates.map((tmpl) => {\n const conditions = tmpl.getAttribute(\"conditions\");\n if (!conditions)\n console.warn(`${Name}: conditions attribute is required!`);\n\n try {\n return JSON.parse(conditions!);\n } catch (e) {\n return [];\n }\n }),\n );\n\n const fullPath = useFullPropertyPath({ element });\n const data = useCartValue({\n path: fullPath,\n element,\n });\n\n element.replaceChildren(...[]);\n\n return html`\n <${For} each=${() => conditionTemplates}>\n ${(tmpl: HTMLTemplateElement, idx: Accessor<number>) => {\n const conditions = allConditions()[idx()];\n return html`\n <${Show} when=${() => validateConditions(conditions, data())}>\n ${() => Array.from(tmpl.content.cloneNode(true).childNodes)}\n <//>\n `;\n }}\n <//>\n `;\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\nimport { getTemplateContent, type Format } from \"../utils/index.js\";\n\nimport { Show, For, type Accessor } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useCartValue,\n provideFullPropertyPathContext,\n} from \"../hooks/index.js\";\nimport html from \"solid-js/html\";\n\ntype CartDataArrayProps = {\n arrayPath: ValidAjaxPath;\n format?: Format;\n};\n\nexport const Name = \"cart-data-array\";\n\nexport const Component: CorrectComponentType<CartDataArrayProps> = (\n props,\n { element },\n) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${Name}: No template found with a property of 'item'.`,\n );\n if (!props.arrayPath) return console.warn(`${Name}: No array path provided.`);\n const mergedProps = {\n element,\n path: () => props.arrayPath,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n\n const value = useCartValue({\n element,\n path: fullPath,\n });\n\n const arrayValue = () => {\n const v = value();\n\n if (!v) {\n console.warn(`${Name}: value is null or undefined at path ${fullPath()}`);\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(`${Name}: value is not an array at path ${fullPath()}`);\n return null;\n }\n\n return v;\n };\n\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => arrayValue() && arrayValue()!.length > 0}>\n <${For} each=${arrayValue}>\n ${(_: any, idx: Accessor<number>) => html`\n <cart-data-array-item item-index=${() => `${idx()}`}>\n ${() => Array.from(itemTemplate.cloneNode(true).childNodes)}\n </cart-data-array-item>\n `}\n <//>\n <//>\n `;\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\nimport { getTemplateContent, type Format } from \"../utils/index.js\";\n\nimport { createEffect, on, createMemo, mapArray } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useCartValue,\n provideFullPropertyPathContext,\n} from \"../hooks/index.js\";\n\nimport { getTargetElement } from \"../utils/index.js\";\n\nimport html from \"solid-js/html\";\n\ntype CartDataArrayProps = {\n arrayPath: ValidAjaxPath;\n wrapInnerChild: boolean;\n target: string;\n format?: Format;\n};\n\nexport const Name = \"cart-data-array-injection\";\n\nexport const Component: CorrectComponentType<CartDataArrayProps> = (\n props,\n { element },\n) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${Name}: No template found with a property of 'item'.`,\n );\n if (!props.arrayPath) return console.warn(`${Name}: No array path provided.`);\n const mergedProps = {\n element,\n path: () => props.arrayPath,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n\n const value = useCartValue({\n element,\n path: fullPath,\n });\n\n const arrayValue = () => {\n const v = value();\n\n if (!v) {\n console.warn(`${Name}: value is null or undefined at path ${fullPath()}`);\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(`${Name}: value is not an array at path ${fullPath()}`);\n return null;\n }\n\n return v;\n };\n\n const children = createMemo(\n mapArray(arrayValue, (_, idx) => {\n const fragment = itemTemplate.cloneNode(true);\n const container = fragment instanceof DocumentFragment ? fragment : null;\n if (props.wrapInnerChild && container) {\n const firstElement = container.firstElementChild;\n if (!firstElement) return null;\n const children = Array.from(firstElement.children);\n\n const wrapper = html`\n <cart-data-array-item item-index=${() => `${idx()}`}>\n ${() => Array.from(children)}\n </cart-data-array-item>\n `;\n firstElement.replaceChildren(\n Array.isArray(wrapper) ? wrapper.at(0)! : wrapper,\n );\n\n return firstElement;\n }\n }),\n );\n\n createEffect(\n on(\n () => {\n const rootElement = element;\n return {\n target: getTargetElement(rootElement, props.target),\n children: children(),\n };\n },\n ({ children, target }) => {\n if (!target) return;\n const filteredChildren = children.filter(\n (v) => v !== null && v !== undefined,\n );\n target.replaceChildren(...filteredChildren);\n },\n ),\n );\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport {\n type ValidAjaxPath,\n provideFullPropertyPathContext,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\n\ntype CartDataArrayItemProps = {\n itemIndex: ValidAjaxPath;\n};\n\nexport const Name = \"cart-data-array-item\";\n\nexport const Component: CorrectComponentType<CartDataArrayItemProps> = (\n props,\n { element },\n) => {\n if (!props.itemIndex)\n return console.warn(`${Name}: No path attribute provided.`);\n const mergedProps = {\n element,\n path: () => props.itemIndex,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { createEffect, createUniqueId, on, onCleanup } from \"solid-js\";\nimport debounce from \"lodash.debounce\";\n\nimport {\n type Status,\n provideListenerStatusContext,\n useCartValue,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\nimport { parseNestedObject } from \"../utils/index.js\";\n\ntype CartDataListenerProps = {\n status: Status;\n on: string;\n method: string;\n debounceDelay: number;\n resetForm: boolean;\n resetStatusDelay: number;\n preventDefault: boolean;\n};\n\nexport const Name = \"cart-data-listener\";\n\nexport const Component: CorrectComponentType<CartDataListenerProps> = (\n props,\n { element },\n) => {\n const [_, setStatus] = provideListenerStatusContext({\n element,\n get status() {\n return props.status;\n },\n });\n\n const path = useFullPropertyPath({\n element,\n });\n const data = useCartValue({\n element,\n path,\n });\n\n let currentEventId: string | null = null;\n\n createEffect(\n on(\n () => ({\n method: props.method,\n on: props.on,\n preventDefault: props.preventDefault,\n data: data() as any,\n debounceDelay: props.debounceDelay,\n resetForm: props.resetForm,\n resetStatusDelay: props.resetStatusDelay,\n }),\n ({\n method,\n on,\n preventDefault,\n data,\n debounceDelay,\n resetForm,\n resetStatusDelay,\n }) => {\n if (!method)\n return console.error(`${Name}: method property is required!`);\n if (!on) return console.error(`${Name}: on property is required!`);\n\n let resetStatusId: number | null = null;\n // tempEventId: string | null = null;\n\n function onEvent(e: Event) {\n const cart = AjaxCart;\n\n // (currentEventId = createUniqueId()), (tempEventId = currentEventId);\n\n if (preventDefault) e.preventDefault();\n\n async function handleStatus<T>(promise: Promise<T>) {\n setStatus(\"loading\");\n return promise\n .then((data) => {\n setStatus(\"success\");\n return data;\n })\n .catch((error) => {\n setStatus(\"error\");\n return error;\n })\n .finally(() => {\n if (resetStatusDelay > 0) {\n //@ts-ignore\n resetStatusId = setTimeout(() => {\n setStatus(\"default\");\n resetStatusId = null;\n }, resetStatusDelay);\n } else {\n setStatus(\"default\");\n }\n });\n }\n\n if (on === \"submit\") {\n const form = e.target as HTMLFormElement;\n const formData = new FormData(form);\n const formObj = parseNestedObject(\n //@ts-ignore\n Object.fromEntries(formData.entries()),\n );\n\n function reset() {\n if (resetForm) form.reset();\n }\n\n if (method === \"replaceItem\") {\n return handleStatus(\n cart.replaceItem({\n key: formObj.key,\n id: formObj.id,\n }),\n ).finally(reset);\n }\n\n if (method === \"updateItem\") {\n return handleStatus(\n cart.updateItem({\n id: formObj.id,\n quantity: formObj?.quantity || undefined,\n properties: formObj?.properties || {},\n selling_plan: formObj?.selling_plan || undefined,\n }),\n ).finally(reset);\n }\n\n if (method === \"removeItem\") {\n return handleStatus(cart.removeItem(formObj.key)).finally(reset);\n }\n\n if (method === \"addDiscount\") {\n return handleStatus(cart.addDiscount(formObj.code)).finally(\n reset,\n );\n }\n\n if (method === \"removeDiscount\") {\n return handleStatus(cart.removeDiscount(formObj.code)).finally(\n reset,\n );\n }\n\n if (method === \"updateNote\") {\n return handleStatus(cart.updateNote(formObj.note)).finally(reset);\n }\n\n return;\n }\n\n const input = e.target as HTMLInputElement;\n\n if (method === \"removeItem\") {\n return handleStatus(cart.removeItem(data.key));\n }\n\n if (method === \"updateQuantity\") {\n return handleStatus(\n cart.updateItem({\n id: data.key,\n quantity: input.valueAsNumber,\n }),\n );\n }\n\n if (method === \"updateItemVariant\") {\n return handleStatus(\n cart.replaceItem({\n key: data.key,\n id: input.value,\n }),\n );\n }\n\n if (method === \"updateNote\") {\n return handleStatus(cart.updateNote(input.value));\n }\n }\n const handleEvent = debounce(onEvent, debounceDelay),\n controller = new AbortController();\n\n element.addEventListener(\n on,\n (e) => {\n if (preventDefault) e.preventDefault();\n handleEvent(e);\n },\n { signal: controller.signal },\n );\n\n return onCleanup(() => {\n controller.abort();\n if (resetStatusId) clearTimeout(resetStatusId);\n });\n },\n ),\n );\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { createMemo } from \"solid-js\";\n\nimport { type Status, useListenerStatus } from \"../hooks/index.js\";\nimport { getTemplateContent } from \"../utils/index.js\";\n\nexport const Name = \"cart-data-listener-status\";\n\nexport const Component: CorrectComponentType<{}> = (_, { element }) => {\n const [status] = useListenerStatus(element);\n if (!status) return console.error(`${Name}: no listener context provided!`);\n\n const templates = {\n default: getTemplateContent(element, \"default\"),\n loading: getTemplateContent(element, \"loading\"),\n success: getTemplateContent(element, \"success\"),\n error: getTemplateContent(element, \"error\"),\n };\n\n let previousState: Status | null = null;\n\n const currentStatus = () => {\n const s = status();\n if (!templates[s]) return previousState;\n previousState = s;\n return s;\n };\n\n element.replaceChildren(...[]);\n\n return createMemo(() => {\n const state = currentStatus();\n if (!state) return null;\n const template = templates[state];\n if (!template) return null;\n return Array.from(template.cloneNode(true).childNodes);\n });\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport {\n type ValidAjaxPath,\n useFormattedValue,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\nimport { type Format, getTargetElement } from \"../utils/index.js\";\nimport { createEffect, on, onCleanup } from \"solid-js\";\n\ntype CartDataInjectionProps = {\n propertyName: ValidAjaxPath;\n format?: Format;\n target: string;\n attributeName: string;\n injectionType: \"attribute\" | \"property\" | \"template\";\n};\n\nconst VALID_INJECTION_TYPES = [\"attribute\", \"property\", \"template\"];\n\nexport const Name = \"cart-data-injection\";\n\nexport const Component: CorrectComponentType<CartDataInjectionProps> = (\n props,\n { element },\n) => {\n if (!props.propertyName)\n return console.warn(`${Name}: No path attribute provided.`);\n if (!props.target) return console.warn(`${Name}: No target attribute found!`);\n if (!props.attributeName)\n return console.warn(`${Name}: No attribute-name attribute found!`);\n\n if (\n !props.injectionType ||\n (props.injectionType &&\n !VALID_INJECTION_TYPES.includes(props.injectionType))\n )\n return console.warn(`${Name}: Invalid injection-type attribute provided.`);\n\n const mergedProps = {\n element,\n path: () => props.propertyName,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n const value = useFormattedValue({\n path: fullPath,\n element,\n get format() {\n return props.format;\n },\n });\n\n createEffect(\n on(\n () => {\n return {\n target: getTargetElement(element, props.target),\n value: value(),\n attributeName: props.attributeName,\n injectionType: props.injectionType,\n propertyName: props.propertyName,\n };\n },\n ({ target, value, attributeName, injectionType, propertyName }) => {\n if (!target)\n return console.warn(\n `${Name}: Unable to find element with selector of: ${props.target}`,\n );\n\n if (\n injectionType === \"attribute\" &&\n value !== null &&\n value !== undefined\n ) {\n target.setAttribute(attributeName, value);\n return;\n }\n\n if (\n injectionType === \"property\" &&\n value !== null &&\n value !== undefined\n ) {\n //@ts-ignore\n target[attributeName] = value;\n return;\n }\n\n if (\n injectionType === \"template\" &&\n value !== null &&\n value !== undefined\n ) {\n if (attributeName === \"style\") {\n //@ts-ignore\n const styleTmpl = target[attributeName].cssText;\n setTimeout(() => {\n //@ts-ignore\n target[attributeName].cssText = styleTmpl.replace(\n //@ts-ignore\n `{${propertyName}}`,\n value,\n );\n });\n return onCleanup(() => {\n //@ts-ignore\n target[attributeName].cssText = styleTmpl;\n });\n }\n const tmpValue = target.getAttribute(attributeName);\n if (!tmpValue || !value)\n return console.warn(\n `${Name}: Unable to inject value into template`,\n );\n setTimeout(() => {\n target.setAttribute(\n attributeName,\n\n tmpValue.replace(`{${propertyName}}`, value),\n );\n });\n return onCleanup(() => {\n target.setAttribute(attributeName, tmpValue);\n });\n }\n },\n ),\n );\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { Show, createMemo } from \"solid-js\";\n\nimport { getTemplateContent } from \"../utils/index.js\";\nimport html from \"solid-js/html\";\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\n\ntype Status = (typeof AjaxCart)[\"status\"];\n\ntype CartLoadingStateProps = {\n ignoredStates: Array<Status>;\n};\n\nexport const Name = \"cart-loading-state\";\n\nexport const Component: CorrectComponentType<CartLoadingStateProps> = (\n props,\n { element },\n) => {\n const cart = AjaxCart;\n\n const templates = {\n pending: getTemplateContent(element, \"pending\"),\n error: getTemplateContent(element, \"error\"),\n success: getTemplateContent(element, \"success\"),\n };\n\n let previousState: Status | null = null;\n\n const cartState = createMemo(() => {\n const state = cart?.status;\n if (!templates[state] || props.ignoredStates.includes(state))\n return previousState;\n previousState = state;\n return state;\n });\n\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => cart}>\n ${() => {\n const state = cartState();\n if (!state) return null;\n if (!templates[state]) return null;\n const children = Array.from(\n templates[state].cloneNode(true).childNodes,\n );\n return children;\n }}\n <//>\n `;\n};\n","import {\n customShadowlessElement,\n correctElementType,\n} from \"@brytdesigns/web-component-utils\";\n\nimport {\n CartContext,\n CartData,\n CartDataArray,\n CartDataArrayInjection,\n CartDataArrayItem,\n CartDataConditions,\n CartDataInjection,\n CartDataListener,\n CartDataListenerStatus,\n CartLoadingState,\n} from \"./components/index.js\";\n\ncustomShadowlessElement(\n CartContext.Name,\n { debug: false },\n correctElementType(CartContext.Component),\n);\n\ncustomShadowlessElement(\n CartDataArrayItem.Name,\n //@ts-ignore\n { itemIndex: \"0\" },\n correctElementType(CartDataArrayItem.Component),\n);\n\ncustomShadowlessElement(\n CartDataArray.Name,\n {\n format: \"\",\n arrayPath: \"items\",\n },\n correctElementType(CartDataArray.Component),\n);\n\ncustomShadowlessElement(\n CartDataArrayInjection.Name,\n {\n format: \"\",\n arrayPath: \"items\",\n target: \"\",\n wrapInnerChild: true,\n },\n correctElementType(CartDataArrayInjection.Component),\n);\n\ncustomShadowlessElement(\n CartData.Name,\n {\n format: \"\",\n propertyName: \"item_count\",\n },\n correctElementType(CartData.Component),\n);\n\ncustomShadowlessElement(\n CartDataConditions.Name,\n {},\n correctElementType(CartDataConditions.Component),\n);\n\ncustomShadowlessElement(\n CartDataInjection.Name,\n {\n propertyName: \"item_count\",\n attributeName: \"data-item-count\",\n injectionType: \"attribute\",\n target: \"\",\n format: \"\",\n },\n correctElementType(CartDataInjection.Component),\n);\n\ncustomShadowlessElement(\n CartDataListener.Name,\n {\n status: \"default\",\n on: \"submit\",\n method: \"updateItem\",\n resetForm: true,\n debounceDelay: 0,\n resetStatusDelay: 0,\n preventDefault: true,\n },\n correctElementType(CartDataListener.Component),\n);\n\ncustomShadowlessElement(\n CartDataListenerStatus.Name,\n {},\n correctElementType(CartDataListenerStatus.Component),\n);\n\ncustomShadowlessElement(\n CartLoadingState.Name,\n { ignoredStates: [] },\n correctElementType(CartLoadingState.Component),\n);\n\nexport * from \"./hooks/index.js\";\n"]}
1
+ {"version":3,"sources":["../../src/components/cart-context.ts","../../src/hooks/useAjaxCart.ts","../../src/utils/getValueFromPath.ts","../../src/utils/formatValue.ts","../../src/utils/getTemplateContent.ts","../../src/utils/getTargetElement.ts","../../src/utils/parseNestedObject.ts","../../src/utils/traverseObject.ts","../../src/components/cart-data.ts","../../src/hooks/useFullPropertyPath.ts","../../src/hooks/useCartValue.ts","../../src/hooks/useFormattedValue.ts","../../src/hooks/useListenerStatus.ts","../../src/components/cart-data-conditions.ts","../../src/components/cart-data-array.ts","../../src/components/cart-data-array-injection.ts","../../src/components/cart-data-array-item.ts","../../src/components/cart-data-listener.ts","../../src/components/cart-data-listener-status.ts","../../src/components/cart-data-injection.ts","../../src/components/cart-loading-state.ts","../../src/index.ts"],"names":["cart","Component","Name","createContext","provide","consume","createMemo","html","result","Show","For","children","createEffect","on","data","AjaxCart","reset","value","onCleanup"],"mappings":"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","file":"index.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { createEffect, on } from \"solid-js\";\nimport { provideAjaxCartContext } from \"../hooks/useAjaxCart.js\";\nimport { traverseObject } from \"../utils/index.js\";\n\ntype CartContextProps = {\n debug?: boolean;\n};\n\nexport const Name = \"cart-context\";\n\nexport const Component: CorrectComponentType<CartContextProps> = (\n props,\n { element },\n) => {\n const cart = provideAjaxCartContext(element);\n createEffect(\n on(\n () => {\n const c = cart();\n // This will listen to every change within the cart object.\n traverseObject(c);\n return {\n cart: c,\n debug: props.debug,\n };\n },\n ({ cart, debug }) => {\n if (!debug) return;\n console.log(`${Name}:updated!`, cart);\n },\n ),\n );\n};\n","import AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\nimport {\n createContext,\n consume,\n provide,\n type ICustomElement,\n} from \"component-register\";\n\ntype WalkableNode = Parameters<typeof provide>[2];\n\ntype AjaxCartContextType = () => (typeof AjaxCart)[\"data\"];\n\nconst AjaxCartContext = createContext(() => () => AjaxCart.data);\n\nexport const provideAjaxCartContext = (\n element: WalkableNode,\n): AjaxCartContextType => {\n return provide(AjaxCartContext, {}, element);\n};\n\nexport const useAjaxCartContext = (context: AjaxCartContextType) => {\n return context;\n};\n\nexport const useAjaxCart = (element: HTMLElement & ICustomElement) => {\n const context = consume(AjaxCartContext, element);\n\n if (!context) {\n throw console.error(\n \"CartContext not found! Please ensure to wrap your custom element with cart-context element.\",\n );\n }\n\n return useAjaxCartContext(context);\n};\n","// 🔥 Recursively Constructs All Possible Paths for an Object or Array\nexport type Path<T> = T extends readonly (infer U)[]\n ? `${number}` | `${number}.${Path<U>}` // Allows indexing into readonly arrays\n : T extends object\n ? {\n [K in keyof T & (string | number)]: T[K] extends object | any[]\n ? `${K}` | `${K}.${Path<T[K]>}`\n : `${K}`;\n }[keyof T & (string | number)]\n : never;\n\n// 🔥 Correctly Extracts the Value at the Given Path\nexport type PathValue<\n T,\n P extends string,\n> = P extends `${infer Key}.${infer Rest}`\n ? Key extends keyof T\n ? PathValue<T[Key], Rest>\n : Key extends `${number}`\n ? T extends readonly (infer U)[]\n ? PathValue<U, Rest>\n : undefined\n : undefined\n : P extends keyof T\n ? T[P]\n : P extends `${number}`\n ? T extends readonly (infer U)[]\n ? U\n : undefined\n : undefined;\n\nexport function getValueFromPath<T, P extends Path<T>>(\n obj: T,\n path: P,\n): PathValue<T, P> {\n return path.split(\".\").reduce<any>((acc, key) => {\n if (acc === null || acc === undefined) return undefined;\n\n // 🔥 Convert numeric keys for proper array indexing\n const isArrayIndex = !isNaN(Number(key)) && key.trim() !== \"\";\n if (Array.isArray(acc) && isArrayIndex) {\n return acc[Number(key)];\n }\n\n // Normal object property access\n return acc[key];\n }, obj) as PathValue<T, P>;\n}\n","export type Format =\n | \"currency\"\n | \"number\"\n | \"boolean\"\n | \"invert_boolean\"\n | string;\n\nexport function formatValue(format: Format, value: unknown) {\n switch (format) {\n case \"currency\":\n if (typeof value === \"number\") return window.Shopify.formatMoney(value);\n if (typeof value === \"string\")\n return window.Shopify.formatMoney(parseFloat(value));\n console.warn(\"formatValue: Unsupported value type for currency format.\");\n return window.Shopify.formatMoney(0);\n case \"number\":\n return Number(value);\n case \"boolean\":\n return Boolean(value);\n case \"invert_boolean\":\n return !Boolean(value);\n default:\n return value as any;\n }\n}\n\ndeclare global {\n interface Window {\n Shopify: {\n formatMoney(value: number, currency?: string): string;\n };\n }\n}\n","export function getTemplateContent(element: HTMLElement, state: string) {\n const tmpl = element.querySelector(\n `template[${state}]`,\n ) as HTMLTemplateElement;\n if (!tmpl) return null;\n return tmpl.content;\n}\n","export function getTargetElement(rootElement: HTMLElement, target: string) {\n if (!target) return rootElement;\n const t = rootElement.querySelector(target);\n if (!t) {\n console.error(`target element not found: ${target}`);\n return null;\n }\n return t;\n}\n","export function parseNestedObject<T extends Record<string, any>>(\n data: T,\n): Record<string, any> {\n const result: Record<string, any> = {};\n\n for (const key in data) {\n const value = data[key];\n const parts = key.match(/(\\w+|\\[\\d+\\])/g);\n\n if (!parts) continue;\n\n let current: any = result;\n for (let i = 0; i < parts.length; i++) {\n let part: string | number | undefined = parts[i];\n let nextPart: string | number | undefined = parts[i + 1];\n\n if (!part) continue;\n\n // Convert array-like keys to numbers\n if (part.startsWith(\"[\")) {\n part = parseInt(part.slice(1, -1), 10);\n }\n\n if (i === parts.length - 1) {\n current[part] = value;\n } else {\n if (\n typeof parts[i + 1] === \"number\" ||\n (nextPart && nextPart.startsWith(\"[\"))\n ) {\n current[part] = current[part] || [];\n } else {\n current[part] = current[part] || {};\n }\n current = current[part];\n }\n }\n }\n\n return result;\n}\n","type TraverseCallback = (key: string, value: any, path: string[]) => void;\n\nexport function traverseObject(\n obj: any,\n callback?: TraverseCallback,\n path: string[] = [],\n) {\n if (typeof obj !== \"object\" || obj === null) return;\n\n if (Array.isArray(obj)) {\n obj.forEach((item, index) => {\n traverseObject(item, callback, [...path, index.toString()]);\n });\n } else {\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n const currentPath = [...path, key];\n if (callback) callback(key, value, currentPath);\n traverseObject(value, callback, currentPath);\n }\n }\n}\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\nimport { type Format } from \"../utils/index.js\";\n\nimport { Show } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useFormattedValue,\n} from \"../hooks/index.js\";\nimport html from \"solid-js/html\";\n\ntype CartDataProps = {\n propertyName: ValidAjaxPath;\n format?: Format;\n};\n\nexport const Name = \"cart-data\";\n\nexport const Component: CorrectComponentType<CartDataProps> = (\n props,\n { element },\n) => {\n if (!props.propertyName)\n return console.warn(`${Name}: No property-name attribute provided.`);\n const fullPath = useFullPropertyPath({\n element,\n path: () => props.propertyName,\n });\n const formattedValue = useFormattedValue({\n get format() {\n return props.format;\n },\n path: fullPath,\n element,\n });\n\n return html`\n <${Show} when=${() => formattedValue() !== null}> ${formattedValue} <//>\n `;\n};\n","import type { Path } from \"../utils\";\n\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\nimport { createMemo, type Accessor } from \"solid-js\";\nimport {\n createContext,\n consume,\n provide,\n type ICustomElement,\n} from \"component-register\";\n\ntype AjaxCartData = (typeof AjaxCart)[\"data\"];\n\nexport type ValidAjaxPath = Path<AjaxCartData>;\n\ntype WalkableNode = Parameters<typeof provide>[2];\n\ntype FullPropertyPathContextType = ReturnType<\n typeof createFullPathPropertyContext\n>;\n\ntype Options = {\n path: Accessor<ValidAjaxPath>;\n element: HTMLElement & ICustomElement;\n};\n\nfunction createFullPathPropertyContext(\n options: Options,\n): Accessor<ValidAjaxPath> {\n return options.path;\n}\n\nconst FullPropertyPathContext = createContext(createFullPathPropertyContext);\n\nexport function provideFullPropertyPathContext({\n element,\n path,\n}: {\n element: WalkableNode;\n path: Accessor<ValidAjaxPath>;\n}): FullPropertyPathContextType {\n return provide(FullPropertyPathContext, { path }, element);\n}\n\nexport function useFullPropertyPathContext(\n context: FullPropertyPathContextType,\n) {\n return context;\n}\n\nexport function useFullPropertyPath(props: {\n element: HTMLElement & ICustomElement;\n path?: Accessor<ValidAjaxPath>;\n}) {\n const context = consume(FullPropertyPathContext, props.element);\n const basePath = useFullPropertyPathContext(context);\n return createMemo(() => {\n if (typeof basePath !== \"function\" && typeof props.path === \"function\") {\n return props.path();\n } else if (\n typeof basePath === \"function\" &&\n typeof props.path !== \"function\"\n ) {\n return basePath();\n } else if (\n typeof basePath === \"function\" &&\n typeof props.path === \"function\"\n ) {\n return `${basePath()}.${props.path()}` as ValidAjaxPath;\n }\n return \"\" as ValidAjaxPath;\n });\n}\n","import { type Accessor, createMemo } from \"solid-js\";\nimport { type ICustomElement } from \"component-register\";\n\nimport { type ValidAjaxPath } from \"./useFullPropertyPath.js\";\nimport { useAjaxCart } from \"./useAjaxCart.js\";\nimport { getValueFromPath } from \"../utils/index.js\";\n\ntype Options = {\n path: Accessor<ValidAjaxPath>;\n element: HTMLElement & ICustomElement;\n};\n\nexport function useCartValue(options: Options) {\n const cart = useAjaxCart(options.element);\n\n const value = createMemo(() => {\n const c = cart();\n if (typeof options.path !== \"function\") return c;\n const path = options.path();\n if (!path) return c;\n const v = getValueFromPath(c, path);\n if (v === undefined || v === null) return null;\n return v;\n });\n\n return value;\n}\n","import { type Accessor, createMemo } from \"solid-js\";\nimport { type ICustomElement } from \"component-register\";\n\nimport { type ValidAjaxPath } from \"./useFullPropertyPath.js\";\nimport { formatValue, type Format } from \"../utils/index.js\";\nimport { useCartValue } from \"./useCartValue.js\";\n\ntype Options = {\n path: Accessor<ValidAjaxPath>;\n format?: Format;\n element: HTMLElement & ICustomElement;\n};\n\nexport function useFormattedValue(options: Options) {\n const value = useCartValue({ path: options.path, element: options.element });\n\n const formattedValue = createMemo(() => {\n const v = value();\n if (v === null) return null;\n if (\n typeof v === \"string\" ||\n typeof v === \"number\" ||\n typeof v === \"boolean\"\n ) {\n return formatValue(options.format || \"\", v);\n }\n console.warn(\n options.element,\n `useFormattedValue: Unsupported value type. Expected string, number, or boolean. Received: ${typeof v}.`,\n v,\n );\n return null;\n });\n\n return formattedValue;\n}\n","import {\n createContext,\n consume,\n provide,\n type ICustomElement,\n} from \"component-register\";\nimport { splitProps } from \"solid-js\";\nimport { createWithElementContext } from \"@brytdesigns/web-component-core/utils\";\n\ntype WalkableNode = Parameters<typeof provide>[2];\nexport type Status = \"default\" | \"loading\" | \"success\" | \"error\";\n\ntype ListenerStatusContextType = ReturnType<typeof createListenerStatusContext>;\n\ntype Options = {\n element: HTMLElement & ICustomElement;\n status: Status;\n};\n\nfunction createListenerStatusContext(options: Options) {\n const [privateProps, publicProps] = splitProps(options, [\"element\"]);\n\n function setStatus(status: Status) {\n const currentStatus = privateProps.element.getAttribute(\"status\");\n if (currentStatus === status) return;\n privateProps.element.setAttribute(\"status\", status);\n return status;\n }\n\n return [() => publicProps.status, setStatus] as const;\n}\n\nconst ListenerStatusContext = createContext(createListenerStatusContext);\n\nexport const provideListenerStatusContext = (options: {\n element: WalkableNode;\n status: Status;\n}): ListenerStatusContextType => {\n return provide(ListenerStatusContext, options, options.element);\n};\n\nexport const useListenerStatusContext = (\n context: ListenerStatusContextType,\n) => {\n return context;\n};\n\nexport const useListenerStatus = (element: HTMLElement & ICustomElement) => {\n const context = consume(ListenerStatusContext, element);\n\n if (!context) {\n throw console.error(\n \"CartListenerContext not found! Please ensure to wrap your custom element with cart-data-listener element.\",\n );\n }\n\n return useListenerStatusContext(context);\n};\n\nexport const withListenerElementStatus = createWithElementContext<\n typeof ListenerStatusContext,\n ListenerStatusContextType\n>(ListenerStatusContext);\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { Show, createMemo, For, type Accessor } from \"solid-js\";\nimport html from \"solid-js/html\";\n\nimport { useFullPropertyPath, useCartValue } from \"../hooks/index.js\";\nimport { getValueFromPath, formatValue, type Format } from \"../utils/index.js\";\n\ntype CartDataConditionsProps = {};\n\ntype ConditionValue = {\n type: \"primitive\" | \"property\";\n name?: string;\n value?: string | number | boolean | null;\n property_name?: string;\n};\n\ntype Condition = {\n type:\n | \"typeof\"\n | \"includes\"\n | \"includes_property\"\n | \"equals\"\n | \"not_equals\"\n | \"starts_with\"\n | \"lt\"\n | \"lte\"\n | \"gt\"\n | \"gte\";\n format?: Format;\n invert?: boolean;\n valueA: ConditionValue;\n valueB: ConditionValue;\n};\n\nfunction getValue<T>(data: T, value: ConditionValue): any {\n if (typeof value === \"undefined\" || !data) return undefined;\n\n if (value.type === \"primitive\") {\n return value.value;\n }\n\n if (value.type === \"property\" && value.name) {\n //@ts-ignore\n return getValueFromPath<T>(data, value.name);\n }\n\n return null;\n}\n\nfunction invertResult(result: boolean, invert = false) {\n if (invert) return !result;\n return result;\n}\n\nfunction validateConditions<T>(conditions: Condition[], data: T) {\n if (!data) return false;\n const result = conditions.every((condition) => {\n let valueA = getValue(data, condition.valueA),\n valueB = getValue(data, condition.valueB),\n result = false;\n\n if (typeof valueA === \"undefined\" && typeof valueB === \"undefined\")\n return false;\n\n if (condition.type === \"typeof\") {\n result = typeof valueA === valueB;\n }\n\n if (condition.type === \"includes\") {\n result = formatValue(condition.format || \"\", valueA).includes(\n formatValue(condition.format || \"\", valueB),\n );\n }\n\n if (condition.type === \"includes_property\") {\n result = valueA.some(\n (v: any) => v[condition.valueA?.property_name || \"\"] === valueB,\n );\n }\n\n if (condition.type === \"starts_with\") {\n result = formatValue(\"string\", valueA).startsWith(\n formatValue(condition.format || \"\", valueB),\n );\n }\n\n if (condition.type === \"equals\") {\n result =\n formatValue(condition.format || \"\", valueA) ===\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"not_equals\") {\n result =\n formatValue(condition.format || \"\", valueA) !==\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"lt\") {\n result =\n formatValue(condition.format || \"\", valueA) <\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"lte\") {\n result =\n formatValue(condition.format || \"\", valueA) <=\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"gt\") {\n result =\n formatValue(condition.format || \"\", valueA) >\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"gte\") {\n result =\n formatValue(condition.format || \"\", valueA) >=\n formatValue(condition.format || \"\", valueB);\n }\n\n return invertResult(result, condition.invert);\n });\n\n return result;\n}\n\nexport const Name = \"cart-data-conditions\";\n\nexport const Component: CorrectComponentType<CartDataConditionsProps> = (\n _,\n { element },\n) => {\n const conditionTemplates = Array.from(element.children).filter(\n (child) => child.tagName === \"TEMPLATE\" && child.hasAttribute(\"conditions\"),\n );\n if (!conditionTemplates.length)\n return console.error(\n `${Name}: no templates found with any conditions attribute!`,\n );\n\n const allConditions = createMemo(() =>\n conditionTemplates.map((tmpl) => {\n const conditions = tmpl.getAttribute(\"conditions\");\n if (!conditions)\n console.warn(`${Name}: conditions attribute is required!`);\n\n try {\n return JSON.parse(conditions!);\n } catch (e) {\n return [];\n }\n }),\n );\n\n const fullPath = useFullPropertyPath({ element });\n const data = useCartValue({\n path: fullPath,\n element,\n });\n\n element.replaceChildren(...[]);\n\n return html`\n <${For} each=${() => conditionTemplates}>\n ${(tmpl: HTMLTemplateElement, idx: Accessor<number>) => {\n const conditions = allConditions()[idx()];\n return html`\n <${Show} when=${() => validateConditions(conditions, data())}>\n ${() => Array.from(tmpl.content.cloneNode(true).childNodes)}\n <//>\n `;\n }}\n <//>\n `;\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\nimport { getTemplateContent, type Format } from \"../utils/index.js\";\n\nimport { Show, For, type Accessor } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useCartValue,\n provideFullPropertyPathContext,\n} from \"../hooks/index.js\";\nimport html from \"solid-js/html\";\n\ntype CartDataArrayProps = {\n arrayPath: ValidAjaxPath;\n format?: Format;\n};\n\nexport const Name = \"cart-data-array\";\n\nexport const Component: CorrectComponentType<CartDataArrayProps> = (\n props,\n { element },\n) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${Name}: No template found with a property of 'item'.`,\n );\n if (!props.arrayPath) return console.warn(`${Name}: No array path provided.`);\n const mergedProps = {\n element,\n path: () => props.arrayPath,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n\n const value = useCartValue({\n element,\n path: fullPath,\n });\n\n const arrayValue = () => {\n const v = value();\n\n if (!v) {\n console.warn(`${Name}: value is null or undefined at path ${fullPath()}`);\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(`${Name}: value is not an array at path ${fullPath()}`);\n return null;\n }\n\n return v;\n };\n\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => arrayValue() && arrayValue()!.length > 0}>\n <${For} each=${arrayValue}>\n ${(_: any, idx: Accessor<number>) => html`\n <cart-data-array-item item-index=${() => `${idx()}`}>\n ${() => Array.from(itemTemplate.cloneNode(true).childNodes)}\n </cart-data-array-item>\n `}\n <//>\n <//>\n `;\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\nimport { getTemplateContent, type Format } from \"../utils/index.js\";\n\nimport { createEffect, on, createMemo, mapArray } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useCartValue,\n provideFullPropertyPathContext,\n} from \"../hooks/index.js\";\n\nimport { getTargetElement } from \"../utils/index.js\";\n\nimport html from \"solid-js/html\";\n\ntype CartDataArrayProps = {\n arrayPath: ValidAjaxPath;\n wrapInnerChild: boolean;\n target: string;\n format?: Format;\n};\n\nexport const Name = \"cart-data-array-injection\";\n\nexport const Component: CorrectComponentType<CartDataArrayProps> = (\n props,\n { element },\n) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${Name}: No template found with a property of 'item'.`,\n );\n if (!props.arrayPath) return console.warn(`${Name}: No array path provided.`);\n const mergedProps = {\n element,\n path: () => props.arrayPath,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n\n const value = useCartValue({\n element,\n path: fullPath,\n });\n\n const arrayValue = () => {\n const v = value();\n\n if (!v) {\n console.warn(`${Name}: value is null or undefined at path ${fullPath()}`);\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(`${Name}: value is not an array at path ${fullPath()}`);\n return null;\n }\n\n return v;\n };\n\n const children = createMemo(\n mapArray(arrayValue, (_, idx) => {\n const fragment = itemTemplate.cloneNode(true);\n const container = fragment instanceof DocumentFragment ? fragment : null;\n if (props.wrapInnerChild && container) {\n const firstElement = container.firstElementChild;\n if (!firstElement) return null;\n const children = Array.from(firstElement.children);\n\n const wrapper = html`\n <cart-data-array-item item-index=${() => `${idx()}`}>\n ${() => Array.from(children)}\n </cart-data-array-item>\n `;\n firstElement.replaceChildren(\n Array.isArray(wrapper) ? wrapper.at(0)! : wrapper,\n );\n\n return firstElement;\n }\n }),\n );\n\n createEffect(\n on(\n () => {\n const rootElement = element;\n return {\n target: getTargetElement(rootElement, props.target),\n children: children(),\n };\n },\n ({ children, target }) => {\n if (!target) return;\n const filteredChildren = children.filter(\n (v) => v !== null && v !== undefined,\n );\n target.replaceChildren(...filteredChildren);\n },\n ),\n );\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport {\n type ValidAjaxPath,\n provideFullPropertyPathContext,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\n\ntype CartDataArrayItemProps = {\n itemIndex: ValidAjaxPath;\n};\n\nexport const Name = \"cart-data-array-item\";\n\nexport const Component: CorrectComponentType<CartDataArrayItemProps> = (\n props,\n { element },\n) => {\n if (!props.itemIndex)\n return console.warn(`${Name}: No path attribute provided.`);\n const mergedProps = {\n element,\n path: () => props.itemIndex,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { createEffect, on, onCleanup } from \"solid-js\";\nimport debounce from \"lodash.debounce\";\n\nimport {\n type Status,\n provideListenerStatusContext,\n useCartValue,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\nimport { parseNestedObject } from \"../utils/index.js\";\n\ntype CartDataListenerProps = {\n status: Status;\n on: string;\n method: string;\n debounceDelay: number;\n resetForm: boolean;\n resetStatusDelay: number;\n preventDefault: boolean;\n};\n\nexport const Name = \"cart-data-listener\";\n\nexport const Component: CorrectComponentType<CartDataListenerProps> = (\n props,\n { element },\n) => {\n const [_, setStatus] = provideListenerStatusContext({\n element,\n get status() {\n return props.status;\n },\n });\n\n const path = useFullPropertyPath({\n element,\n });\n const data = useCartValue({\n element,\n path,\n });\n\n let currentEventId: string | null = null;\n\n createEffect(\n on(\n () => ({\n method: props.method,\n on: props.on,\n preventDefault: props.preventDefault,\n data: data() as any,\n debounceDelay: props.debounceDelay,\n resetForm: props.resetForm,\n resetStatusDelay: props.resetStatusDelay,\n }),\n ({\n method,\n on,\n preventDefault,\n data,\n debounceDelay,\n resetForm,\n resetStatusDelay,\n }) => {\n if (!method)\n return console.error(`${Name}: method property is required!`);\n if (!on) return console.error(`${Name}: on property is required!`);\n\n let resetStatusId: number | null = null;\n // tempEventId: string | null = null;\n\n function onEvent(e: Event) {\n const cart = AjaxCart;\n\n // (currentEventId = createUniqueId()), (tempEventId = currentEventId);\n\n if (preventDefault) e.preventDefault();\n\n async function handleStatus<T>(promise: Promise<T>) {\n setStatus(\"loading\");\n return promise\n .then((data) => {\n setStatus(\"success\");\n return data;\n })\n .catch((error) => {\n setStatus(\"error\");\n return error;\n })\n .finally(() => {\n if (resetStatusDelay > 0) {\n //@ts-ignore\n resetStatusId = setTimeout(() => {\n setStatus(\"default\");\n resetStatusId = null;\n }, resetStatusDelay);\n } else {\n setStatus(\"default\");\n }\n });\n }\n\n if (on === \"submit\") {\n const form = e.target as HTMLFormElement;\n const formData = new FormData(form);\n const formObj = parseNestedObject(\n //@ts-ignore\n Object.fromEntries(formData.entries()),\n );\n\n function reset() {\n if (resetForm) form.reset();\n }\n\n if (method === \"replaceItem\") {\n return handleStatus(\n cart.replaceItem({\n key: formObj.key,\n id: formObj.id,\n }),\n ).finally(reset);\n }\n\n if (method === \"updateItem\") {\n return handleStatus(\n cart.updateItem({\n id: formObj.id,\n quantity: formObj?.quantity || undefined,\n properties: formObj?.properties || {},\n selling_plan: formObj?.selling_plan || undefined,\n }),\n ).finally(reset);\n }\n\n if (method === \"removeItem\") {\n return handleStatus(cart.removeItem(formObj.key)).finally(reset);\n }\n\n if (method === \"addDiscount\") {\n return handleStatus(cart.addDiscount(formObj.code)).finally(\n reset,\n );\n }\n\n if (method === \"removeDiscount\") {\n return handleStatus(cart.removeDiscount(formObj.code)).finally(\n reset,\n );\n }\n\n if (method === \"updateNote\") {\n return handleStatus(cart.updateNote(formObj.note)).finally(reset);\n }\n\n return;\n }\n\n const input = e.target as HTMLInputElement;\n\n if (method === \"removeItem\") {\n return handleStatus(cart.removeItem(data.key));\n }\n\n if (method === \"updateQuantity\") {\n return handleStatus(\n cart.updateItem({\n id: data.key,\n quantity: input.valueAsNumber,\n }),\n );\n }\n\n if (method === \"updateItemVariant\") {\n return handleStatus(\n cart.replaceItem({\n key: data.key,\n id: input.value,\n }),\n );\n }\n\n if (method === \"updateNote\") {\n return handleStatus(cart.updateNote(input.value));\n }\n }\n const handleEvent = debounce(onEvent, debounceDelay),\n controller = new AbortController();\n\n element.addEventListener(\n on,\n (e) => {\n if (preventDefault) e.preventDefault();\n handleEvent(e);\n },\n { signal: controller.signal },\n );\n\n return onCleanup(() => {\n controller.abort();\n if (resetStatusId) clearTimeout(resetStatusId);\n });\n },\n ),\n );\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { createMemo } from \"solid-js\";\n\nimport { type Status, useListenerStatus } from \"../hooks/index.js\";\nimport { getTemplateContent } from \"../utils/index.js\";\n\nexport const Name = \"cart-data-listener-status\";\n\nexport const Component: CorrectComponentType<{}> = (_, { element }) => {\n const [status] = useListenerStatus(element);\n if (!status) return console.error(`${Name}: no listener context provided!`);\n\n const templates = {\n default: getTemplateContent(element, \"default\"),\n loading: getTemplateContent(element, \"loading\"),\n success: getTemplateContent(element, \"success\"),\n error: getTemplateContent(element, \"error\"),\n };\n\n let previousState: Status | null = null;\n\n const currentStatus = () => {\n const s = status();\n if (!templates[s]) return previousState;\n previousState = s;\n return s;\n };\n\n element.replaceChildren(...[]);\n\n return createMemo(() => {\n const state = currentStatus();\n if (!state) return null;\n const template = templates[state];\n if (!template) return null;\n return Array.from(template.cloneNode(true).childNodes);\n });\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport {\n type ValidAjaxPath,\n useFormattedValue,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\nimport { type Format, getTargetElement } from \"../utils/index.js\";\nimport { createEffect, on, onCleanup } from \"solid-js\";\n\ntype CartDataInjectionProps = {\n propertyName: ValidAjaxPath;\n format?: Format;\n target: string;\n attributeName: string;\n injectionType: \"attribute\" | \"property\" | \"template\";\n};\n\nconst VALID_INJECTION_TYPES = [\"attribute\", \"property\", \"template\"];\n\nexport const Name = \"cart-data-injection\";\n\nexport const Component: CorrectComponentType<CartDataInjectionProps> = (\n props,\n { element },\n) => {\n if (!props.propertyName)\n return console.warn(`${Name}: No path attribute provided.`);\n if (!props.target) return console.warn(`${Name}: No target attribute found!`);\n if (!props.attributeName)\n return console.warn(`${Name}: No attribute-name attribute found!`);\n\n if (\n !props.injectionType ||\n (props.injectionType &&\n !VALID_INJECTION_TYPES.includes(props.injectionType))\n )\n return console.warn(`${Name}: Invalid injection-type attribute provided.`);\n\n const mergedProps = {\n element,\n path: () => props.propertyName,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n const value = useFormattedValue({\n path: fullPath,\n element,\n get format() {\n return props.format;\n },\n });\n\n createEffect(\n on(\n () => {\n return {\n target: getTargetElement(element, props.target),\n value: value(),\n attributeName: props.attributeName,\n injectionType: props.injectionType,\n propertyName: props.propertyName,\n };\n },\n ({ target, value, attributeName, injectionType, propertyName }) => {\n if (!target)\n return console.warn(\n `${Name}: Unable to find element with selector of: ${props.target}`,\n );\n\n if (\n injectionType === \"attribute\" &&\n value !== null &&\n value !== undefined\n ) {\n target.setAttribute(attributeName, value);\n return;\n }\n\n if (\n injectionType === \"property\" &&\n value !== null &&\n value !== undefined\n ) {\n //@ts-ignore\n target[attributeName] = value;\n return;\n }\n\n if (\n injectionType === \"template\" &&\n value !== null &&\n value !== undefined\n ) {\n if (attributeName === \"style\") {\n //@ts-ignore\n const styleTmpl = target[attributeName].cssText;\n setTimeout(() => {\n //@ts-ignore\n target[attributeName].cssText = styleTmpl.replace(\n //@ts-ignore\n `{${propertyName}}`,\n value,\n );\n });\n return onCleanup(() => {\n //@ts-ignore\n target[attributeName].cssText = styleTmpl;\n });\n }\n const tmpValue = target.getAttribute(attributeName);\n if (!tmpValue || !value)\n return console.warn(\n `${Name}: Unable to inject value into template`,\n );\n setTimeout(() => {\n target.setAttribute(\n attributeName,\n\n tmpValue.replace(`{${propertyName}}`, value),\n );\n });\n return onCleanup(() => {\n target.setAttribute(attributeName, tmpValue);\n });\n }\n },\n ),\n );\n};\n","import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { Show, createMemo } from \"solid-js\";\n\nimport { getTemplateContent } from \"../utils/index.js\";\nimport html from \"solid-js/html\";\n\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\n\ntype Status = (typeof AjaxCart)[\"status\"];\n\ntype CartLoadingStateProps = {\n ignoredStates: Array<Status>;\n};\n\nexport const Name = \"cart-loading-state\";\n\nexport const Component: CorrectComponentType<CartLoadingStateProps> = (\n props,\n { element },\n) => {\n const cart = AjaxCart;\n\n const templates = {\n pending: getTemplateContent(element, \"pending\"),\n error: getTemplateContent(element, \"error\"),\n success: getTemplateContent(element, \"success\"),\n };\n\n let previousState: Status | null = null;\n\n const cartState = createMemo(() => {\n const state = cart?.status;\n if (!templates[state] || props.ignoredStates.includes(state))\n return previousState;\n previousState = state;\n return state;\n });\n\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => cart}>\n ${() => {\n const state = cartState();\n if (!state) return null;\n if (!templates[state]) return null;\n const children = Array.from(\n templates[state].cloneNode(true).childNodes,\n );\n return children;\n }}\n <//>\n `;\n};\n","import {\n customShadowlessElement,\n correctElementType,\n} from \"@brytdesigns/web-component-core/utils\";\n\nimport {\n CartContext,\n CartData,\n CartDataArray,\n CartDataArrayInjection,\n CartDataArrayItem,\n CartDataConditions,\n CartDataInjection,\n CartDataListener,\n CartDataListenerStatus,\n CartLoadingState,\n} from \"./components/index.js\";\n\ncustomShadowlessElement(\n CartContext.Name,\n { debug: false },\n correctElementType(CartContext.Component),\n);\n\ncustomShadowlessElement(\n CartDataArrayItem.Name,\n //@ts-ignore\n { itemIndex: \"0\" },\n correctElementType(CartDataArrayItem.Component),\n);\n\ncustomShadowlessElement(\n CartDataArray.Name,\n {\n format: \"\",\n arrayPath: \"items\",\n },\n correctElementType(CartDataArray.Component),\n);\n\ncustomShadowlessElement(\n CartDataArrayInjection.Name,\n {\n format: \"\",\n arrayPath: \"items\",\n target: \"\",\n wrapInnerChild: true,\n },\n correctElementType(CartDataArrayInjection.Component),\n);\n\ncustomShadowlessElement(\n CartData.Name,\n {\n format: \"\",\n propertyName: \"item_count\",\n },\n correctElementType(CartData.Component),\n);\n\ncustomShadowlessElement(\n CartDataConditions.Name,\n {},\n correctElementType(CartDataConditions.Component),\n);\n\ncustomShadowlessElement(\n CartDataInjection.Name,\n {\n propertyName: \"item_count\",\n attributeName: \"data-item-count\",\n injectionType: \"attribute\",\n target: \"\",\n format: \"\",\n },\n correctElementType(CartDataInjection.Component),\n);\n\ncustomShadowlessElement(\n CartDataListener.Name,\n {\n status: \"default\",\n on: \"submit\",\n method: \"updateItem\",\n resetForm: true,\n debounceDelay: 0,\n resetStatusDelay: 0,\n preventDefault: true,\n },\n correctElementType(CartDataListener.Component),\n);\n\ncustomShadowlessElement(\n CartDataListenerStatus.Name,\n {},\n correctElementType(CartDataListenerStatus.Component),\n);\n\ncustomShadowlessElement(\n CartLoadingState.Name,\n { ignoredStates: [] },\n correctElementType(CartLoadingState.Component),\n);\n\nexport * from \"./hooks/index.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-context.ts"],"names":["cart"],"mappings":";;;;AAUO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAoD,GAAA,CAC/D,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAM,MAAA,IAAA,GAAO,uBAAuB,OAAO,CAAA;AAC3C,EAAA,YAAA;AAAA,IACE,EAAA;AAAA,MACE,MAAM;AACJ,QAAA,MAAM,IAAI,IAAK,EAAA;AAEf,QAAA,cAAA,CAAe,CAAC,CAAA;AAChB,QAAO,OAAA;AAAA,UACL,IAAM,EAAA,CAAA;AAAA,UACN,OAAO,KAAM,CAAA;AAAA,SACf;AAAA,OACF;AAAA,MACA,CAAC,EAAE,IAAAA,EAAAA,KAAAA,EAAM,OAAY,KAAA;AACnB,QAAA,IAAI,CAAC,KAAO,EAAA;AACZ,QAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,EAAG,IAAI,CAAA,SAAA,CAAA,EAAaA,KAAI,CAAA;AAAA;AACtC;AACF,GACF;AACF","file":"cart-context.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { createEffect, on } from \"solid-js\";\nimport { provideAjaxCartContext } from \"../hooks/useAjaxCart.js\";\nimport { traverseObject } from \"../utils/index.js\";\n\ntype CartContextProps = {\n debug?: boolean;\n};\n\nexport const Name = \"cart-context\";\n\nexport const Component: CorrectComponentType<CartContextProps> = (\n props,\n { element },\n) => {\n const cart = provideAjaxCartContext(element);\n createEffect(\n on(\n () => {\n const c = cart();\n // This will listen to every change within the cart object.\n traverseObject(c);\n return {\n cart: c,\n debug: props.debug,\n };\n },\n ({ cart, debug }) => {\n if (!debug) return;\n console.log(`${Name}:updated!`, cart);\n },\n ),\n );\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-context.ts"],"names":["cart"],"mappings":";;;;AAUO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAoD,GAAA,CAC/D,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAM,MAAA,IAAA,GAAO,uBAAuB,OAAO,CAAA;AAC3C,EAAA,YAAA;AAAA,IACE,EAAA;AAAA,MACE,MAAM;AACJ,QAAA,MAAM,IAAI,IAAK,EAAA;AAEf,QAAA,cAAA,CAAe,CAAC,CAAA;AAChB,QAAO,OAAA;AAAA,UACL,IAAM,EAAA,CAAA;AAAA,UACN,OAAO,KAAM,CAAA;AAAA,SACf;AAAA,OACF;AAAA,MACA,CAAC,EAAE,IAAAA,EAAAA,KAAAA,EAAM,OAAY,KAAA;AACnB,QAAA,IAAI,CAAC,KAAO,EAAA;AACZ,QAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,EAAG,IAAI,CAAA,SAAA,CAAA,EAAaA,KAAI,CAAA;AAAA;AACtC;AACF,GACF;AACF","file":"cart-context.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { createEffect, on } from \"solid-js\";\nimport { provideAjaxCartContext } from \"../hooks/useAjaxCart.js\";\nimport { traverseObject } from \"../utils/index.js\";\n\ntype CartContextProps = {\n debug?: boolean;\n};\n\nexport const Name = \"cart-context\";\n\nexport const Component: CorrectComponentType<CartContextProps> = (\n props,\n { element },\n) => {\n const cart = provideAjaxCartContext(element);\n createEffect(\n on(\n () => {\n const c = cart();\n // This will listen to every change within the cart object.\n traverseObject(c);\n return {\n cart: c,\n debug: props.debug,\n };\n },\n ({ cart, debug }) => {\n if (!debug) return;\n console.log(`${Name}:updated!`, cart);\n },\n ),\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-data-array-injection.ts"],"names":["children"],"mappings":"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","file":"cart-data-array-injection.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\nimport { getTemplateContent, type Format } from \"../utils/index.js\";\n\nimport { createEffect, on, createMemo, mapArray } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useCartValue,\n provideFullPropertyPathContext,\n} from \"../hooks/index.js\";\n\nimport { getTargetElement } from \"../utils/index.js\";\n\nimport html from \"solid-js/html\";\n\ntype CartDataArrayProps = {\n arrayPath: ValidAjaxPath;\n wrapInnerChild: boolean;\n target: string;\n format?: Format;\n};\n\nexport const Name = \"cart-data-array-injection\";\n\nexport const Component: CorrectComponentType<CartDataArrayProps> = (\n props,\n { element },\n) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${Name}: No template found with a property of 'item'.`,\n );\n if (!props.arrayPath) return console.warn(`${Name}: No array path provided.`);\n const mergedProps = {\n element,\n path: () => props.arrayPath,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n\n const value = useCartValue({\n element,\n path: fullPath,\n });\n\n const arrayValue = () => {\n const v = value();\n\n if (!v) {\n console.warn(`${Name}: value is null or undefined at path ${fullPath()}`);\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(`${Name}: value is not an array at path ${fullPath()}`);\n return null;\n }\n\n return v;\n };\n\n const children = createMemo(\n mapArray(arrayValue, (_, idx) => {\n const fragment = itemTemplate.cloneNode(true);\n const container = fragment instanceof DocumentFragment ? fragment : null;\n if (props.wrapInnerChild && container) {\n const firstElement = container.firstElementChild;\n if (!firstElement) return null;\n const children = Array.from(firstElement.children);\n\n const wrapper = html`\n <cart-data-array-item item-index=${() => `${idx()}`}>\n ${() => Array.from(children)}\n </cart-data-array-item>\n `;\n firstElement.replaceChildren(\n Array.isArray(wrapper) ? wrapper.at(0)! : wrapper,\n );\n\n return firstElement;\n }\n }),\n );\n\n createEffect(\n on(\n () => {\n const rootElement = element;\n return {\n target: getTargetElement(rootElement, props.target),\n children: children(),\n };\n },\n ({ children, target }) => {\n if (!target) return;\n const filteredChildren = children.filter(\n (v) => v !== null && v !== undefined,\n );\n target.replaceChildren(...filteredChildren);\n },\n ),\n );\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-data-array-injection.ts"],"names":["children"],"mappings":"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","file":"cart-data-array-injection.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\nimport { getTemplateContent, type Format } from \"../utils/index.js\";\n\nimport { createEffect, on, createMemo, mapArray } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useCartValue,\n provideFullPropertyPathContext,\n} from \"../hooks/index.js\";\n\nimport { getTargetElement } from \"../utils/index.js\";\n\nimport html from \"solid-js/html\";\n\ntype CartDataArrayProps = {\n arrayPath: ValidAjaxPath;\n wrapInnerChild: boolean;\n target: string;\n format?: Format;\n};\n\nexport const Name = \"cart-data-array-injection\";\n\nexport const Component: CorrectComponentType<CartDataArrayProps> = (\n props,\n { element },\n) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${Name}: No template found with a property of 'item'.`,\n );\n if (!props.arrayPath) return console.warn(`${Name}: No array path provided.`);\n const mergedProps = {\n element,\n path: () => props.arrayPath,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n\n const value = useCartValue({\n element,\n path: fullPath,\n });\n\n const arrayValue = () => {\n const v = value();\n\n if (!v) {\n console.warn(`${Name}: value is null or undefined at path ${fullPath()}`);\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(`${Name}: value is not an array at path ${fullPath()}`);\n return null;\n }\n\n return v;\n };\n\n const children = createMemo(\n mapArray(arrayValue, (_, idx) => {\n const fragment = itemTemplate.cloneNode(true);\n const container = fragment instanceof DocumentFragment ? fragment : null;\n if (props.wrapInnerChild && container) {\n const firstElement = container.firstElementChild;\n if (!firstElement) return null;\n const children = Array.from(firstElement.children);\n\n const wrapper = html`\n <cart-data-array-item item-index=${() => `${idx()}`}>\n ${() => Array.from(children)}\n </cart-data-array-item>\n `;\n firstElement.replaceChildren(\n Array.isArray(wrapper) ? wrapper.at(0)! : wrapper,\n );\n\n return firstElement;\n }\n }),\n );\n\n createEffect(\n on(\n () => {\n const rootElement = element;\n return {\n target: getTargetElement(rootElement, props.target),\n children: children(),\n };\n },\n ({ children, target }) => {\n if (!target) return;\n const filteredChildren = children.filter(\n (v) => v !== null && v !== undefined,\n );\n target.replaceChildren(...filteredChildren);\n },\n ),\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-data-array-item.ts"],"names":[],"mappings":";;AAYO,MAAM,IAAO,GAAA;AAEb,MAAM,SAA0D,GAAA,CACrE,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAA,IAAI,CAAC,KAAM,CAAA,SAAA;AACT,IAAA,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAG,EAAA,IAAI,CAA+B,6BAAA,CAAA,CAAA;AAC5D,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB,OAAA;AAAA,IACA,IAAA,EAAM,MAAM,KAAM,CAAA;AAAA,GACpB;AACA,EAAM,MAAA,QAAA,GAAW,oBAAoB,WAAW,CAAA;AAChD,EAA+B,8BAAA,CAAA;AAAA,IAC7B,OAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACP,CAAA;AACH","file":"cart-data-array-item.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport {\n type ValidAjaxPath,\n provideFullPropertyPathContext,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\n\ntype CartDataArrayItemProps = {\n itemIndex: ValidAjaxPath;\n};\n\nexport const Name = \"cart-data-array-item\";\n\nexport const Component: CorrectComponentType<CartDataArrayItemProps> = (\n props,\n { element },\n) => {\n if (!props.itemIndex)\n return console.warn(`${Name}: No path attribute provided.`);\n const mergedProps = {\n element,\n path: () => props.itemIndex,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-data-array-item.ts"],"names":[],"mappings":";;AAYO,MAAM,IAAO,GAAA;AAEb,MAAM,SAA0D,GAAA,CACrE,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAA,IAAI,CAAC,KAAM,CAAA,SAAA;AACT,IAAA,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAG,EAAA,IAAI,CAA+B,6BAAA,CAAA,CAAA;AAC5D,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB,OAAA;AAAA,IACA,IAAA,EAAM,MAAM,KAAM,CAAA;AAAA,GACpB;AACA,EAAM,MAAA,QAAA,GAAW,oBAAoB,WAAW,CAAA;AAChD,EAA+B,8BAAA,CAAA;AAAA,IAC7B,OAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACP,CAAA;AACH","file":"cart-data-array-item.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport {\n type ValidAjaxPath,\n provideFullPropertyPathContext,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\n\ntype CartDataArrayItemProps = {\n itemIndex: ValidAjaxPath;\n};\n\nexport const Name = \"cart-data-array-item\";\n\nexport const Component: CorrectComponentType<CartDataArrayItemProps> = (\n props,\n { element },\n) => {\n if (!props.itemIndex)\n return console.warn(`${Name}: No path attribute provided.`);\n const mergedProps = {\n element,\n path: () => props.itemIndex,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-data-array.ts"],"names":[],"mappings":";;;;;AAkBO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAsD,GAAA,CACjE,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAM,MAAA,YAAA,GAAe,kBAAmB,CAAA,OAAA,EAAS,MAAM,CAAA;AACvD,EAAA,IAAI,CAAC,YAAA;AACH,IAAA,OAAO,OAAQ,CAAA,IAAA;AAAA,MACb,GAAG,IAAI,CAAA,8CAAA;AAAA,KACT;AACF,EAAI,IAAA,CAAC,MAAM,SAAW,EAAA,OAAO,QAAQ,IAAK,CAAA,CAAA,EAAG,IAAI,CAA2B,yBAAA,CAAA,CAAA;AAC5E,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB,OAAA;AAAA,IACA,IAAA,EAAM,MAAM,KAAM,CAAA;AAAA,GACpB;AACA,EAAM,MAAA,QAAA,GAAW,oBAAoB,WAAW,CAAA;AAChD,EAA+B,8BAAA,CAAA;AAAA,IAC7B,OAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,MAAM,QAAQ,YAAa,CAAA;AAAA,IACzB,OAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,MAAM,IAAI,KAAM,EAAA;AAEhB,IAAA,IAAI,CAAC,CAAG,EAAA;AACN,MAAA,OAAA,CAAQ,KAAK,CAAG,EAAA,IAAI,CAAwC,qCAAA,EAAA,QAAA,EAAU,CAAE,CAAA,CAAA;AACxE,MAAO,OAAA,IAAA;AAAA;AAGT,IAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,CAAC,CAAG,EAAA;AACrB,MAAA,OAAA,CAAQ,KAAK,CAAG,EAAA,IAAI,CAAmC,gCAAA,EAAA,QAAA,EAAU,CAAE,CAAA,CAAA;AACnE,MAAO,OAAA,IAAA;AAAA;AAGT,IAAO,OAAA,CAAA;AAAA,GACT;AAEA,EAAQ,OAAA,CAAA,eAAA,CAAgB,GAAG,EAAE,CAAA;AAE7B,EAAO,OAAA,IAAA;AAAA,KACF,EAAA,IAAI,SAAS,MAAM,UAAA,MAAgB,UAAW,EAAA,CAAG,SAAS,CAAC,CAAA;AAAA,OACzD,EAAA,GAAG,SAAS,UAAU,CAAA;AAAA,QACrB,EAAA,CAAC,GAAQ,GAA0B,KAAA,IAAA;AAAA,2CAAA,EACA,MAAM,CAAA,EAAG,GAAI,EAAC,CAAE,CAAA,CAAA;AAAA,YAC/C,EAAA,MAAM,MAAM,IAAK,CAAA,YAAA,CAAa,UAAU,IAAI,CAAA,CAAE,UAAU,CAAC;AAAA;AAAA,QAE9D,CAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAIT","file":"cart-data-array.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\nimport { getTemplateContent, type Format } from \"../utils/index.js\";\n\nimport { Show, For, type Accessor } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useCartValue,\n provideFullPropertyPathContext,\n} from \"../hooks/index.js\";\nimport html from \"solid-js/html\";\n\ntype CartDataArrayProps = {\n arrayPath: ValidAjaxPath;\n format?: Format;\n};\n\nexport const Name = \"cart-data-array\";\n\nexport const Component: CorrectComponentType<CartDataArrayProps> = (\n props,\n { element },\n) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${Name}: No template found with a property of 'item'.`,\n );\n if (!props.arrayPath) return console.warn(`${Name}: No array path provided.`);\n const mergedProps = {\n element,\n path: () => props.arrayPath,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n\n const value = useCartValue({\n element,\n path: fullPath,\n });\n\n const arrayValue = () => {\n const v = value();\n\n if (!v) {\n console.warn(`${Name}: value is null or undefined at path ${fullPath()}`);\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(`${Name}: value is not an array at path ${fullPath()}`);\n return null;\n }\n\n return v;\n };\n\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => arrayValue() && arrayValue()!.length > 0}>\n <${For} each=${arrayValue}>\n ${(_: any, idx: Accessor<number>) => html`\n <cart-data-array-item item-index=${() => `${idx()}`}>\n ${() => Array.from(itemTemplate.cloneNode(true).childNodes)}\n </cart-data-array-item>\n `}\n <//>\n <//>\n `;\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-data-array.ts"],"names":[],"mappings":";;;;;AAkBO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAsD,GAAA,CACjE,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAM,MAAA,YAAA,GAAe,kBAAmB,CAAA,OAAA,EAAS,MAAM,CAAA;AACvD,EAAA,IAAI,CAAC,YAAA;AACH,IAAA,OAAO,OAAQ,CAAA,IAAA;AAAA,MACb,GAAG,IAAI,CAAA,8CAAA;AAAA,KACT;AACF,EAAI,IAAA,CAAC,MAAM,SAAW,EAAA,OAAO,QAAQ,IAAK,CAAA,CAAA,EAAG,IAAI,CAA2B,yBAAA,CAAA,CAAA;AAC5E,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB,OAAA;AAAA,IACA,IAAA,EAAM,MAAM,KAAM,CAAA;AAAA,GACpB;AACA,EAAM,MAAA,QAAA,GAAW,oBAAoB,WAAW,CAAA;AAChD,EAA+B,8BAAA,CAAA;AAAA,IAC7B,OAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,MAAM,QAAQ,YAAa,CAAA;AAAA,IACzB,OAAA;AAAA,IACA,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,MAAM,IAAI,KAAM,EAAA;AAEhB,IAAA,IAAI,CAAC,CAAG,EAAA;AACN,MAAA,OAAA,CAAQ,KAAK,CAAG,EAAA,IAAI,CAAwC,qCAAA,EAAA,QAAA,EAAU,CAAE,CAAA,CAAA;AACxE,MAAO,OAAA,IAAA;AAAA;AAGT,IAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,CAAC,CAAG,EAAA;AACrB,MAAA,OAAA,CAAQ,KAAK,CAAG,EAAA,IAAI,CAAmC,gCAAA,EAAA,QAAA,EAAU,CAAE,CAAA,CAAA;AACnE,MAAO,OAAA,IAAA;AAAA;AAGT,IAAO,OAAA,CAAA;AAAA,GACT;AAEA,EAAQ,OAAA,CAAA,eAAA,CAAgB,GAAG,EAAE,CAAA;AAE7B,EAAO,OAAA,IAAA;AAAA,KACF,EAAA,IAAI,SAAS,MAAM,UAAA,MAAgB,UAAW,EAAA,CAAG,SAAS,CAAC,CAAA;AAAA,OACzD,EAAA,GAAG,SAAS,UAAU,CAAA;AAAA,QACrB,EAAA,CAAC,GAAQ,GAA0B,KAAA,IAAA;AAAA,2CAAA,EACA,MAAM,CAAA,EAAG,GAAI,EAAC,CAAE,CAAA,CAAA;AAAA,YAC/C,EAAA,MAAM,MAAM,IAAK,CAAA,YAAA,CAAa,UAAU,IAAI,CAAA,CAAE,UAAU,CAAC;AAAA;AAAA,QAE9D,CAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAIT","file":"cart-data-array.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\nimport { getTemplateContent, type Format } from \"../utils/index.js\";\n\nimport { Show, For, type Accessor } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useCartValue,\n provideFullPropertyPathContext,\n} from \"../hooks/index.js\";\nimport html from \"solid-js/html\";\n\ntype CartDataArrayProps = {\n arrayPath: ValidAjaxPath;\n format?: Format;\n};\n\nexport const Name = \"cart-data-array\";\n\nexport const Component: CorrectComponentType<CartDataArrayProps> = (\n props,\n { element },\n) => {\n const itemTemplate = getTemplateContent(element, \"item\");\n if (!itemTemplate)\n return console.warn(\n `${Name}: No template found with a property of 'item'.`,\n );\n if (!props.arrayPath) return console.warn(`${Name}: No array path provided.`);\n const mergedProps = {\n element,\n path: () => props.arrayPath,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n provideFullPropertyPathContext({\n element,\n path: fullPath,\n });\n\n const value = useCartValue({\n element,\n path: fullPath,\n });\n\n const arrayValue = () => {\n const v = value();\n\n if (!v) {\n console.warn(`${Name}: value is null or undefined at path ${fullPath()}`);\n return null;\n }\n\n if (!Array.isArray(v)) {\n console.warn(`${Name}: value is not an array at path ${fullPath()}`);\n return null;\n }\n\n return v;\n };\n\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => arrayValue() && arrayValue()!.length > 0}>\n <${For} each=${arrayValue}>\n ${(_: any, idx: Accessor<number>) => html`\n <cart-data-array-item item-index=${() => `${idx()}`}>\n ${() => Array.from(itemTemplate.cloneNode(true).childNodes)}\n </cart-data-array-item>\n `}\n <//>\n <//>\n `;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-data-conditions.ts"],"names":["result"],"mappings":"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","file":"cart-data-conditions.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { Show, createMemo, For, type Accessor, createEffect } from \"solid-js\";\nimport html from \"solid-js/html\";\n\nimport { useFullPropertyPath, useCartValue } from \"../hooks/index.js\";\nimport { getValueFromPath, formatValue, type Format } from \"../utils/index.js\";\n\ntype CartDataConditionsProps = {};\n\ntype ConditionValue = {\n type: \"primitive\" | \"property\";\n name?: string;\n value?: string | number | boolean | null;\n property_name?: string;\n};\n\ntype Condition = {\n type:\n | \"typeof\"\n | \"includes\"\n | \"includes_property\"\n | \"equals\"\n | \"not_equals\"\n | \"starts_with\"\n | \"lt\"\n | \"lte\"\n | \"gt\"\n | \"gte\";\n format?: Format;\n invert?: boolean;\n valueA: ConditionValue;\n valueB: ConditionValue;\n};\n\nfunction getValue<T>(data: T, value: ConditionValue): any {\n if (typeof value === \"undefined\" || !data) return undefined;\n\n if (value.type === \"primitive\") {\n return value.value;\n }\n\n if (value.type === \"property\" && value.name) {\n //@ts-ignore\n return getValueFromPath<T>(data, value.name);\n }\n\n return null;\n}\n\nfunction invertResult(result: boolean, invert = false) {\n if (invert) return !result;\n return result;\n}\n\nfunction validateConditions<T>(conditions: Condition[], data: T) {\n if (!data) return false;\n const result = conditions.every((condition) => {\n let valueA = getValue(data, condition.valueA),\n valueB = getValue(data, condition.valueB),\n result = false;\n\n if (typeof valueA === \"undefined\" && typeof valueB === \"undefined\")\n return false;\n\n if (condition.type === \"typeof\") {\n result = typeof valueA === valueB;\n }\n\n if (condition.type === \"includes\") {\n result = formatValue(condition.format || \"\", valueA).includes(\n formatValue(condition.format || \"\", valueB),\n );\n }\n\n if (condition.type === \"includes_property\") {\n result = valueA.some(\n (v: any) => v[condition.valueA?.property_name || \"\"] === valueB,\n );\n }\n\n if (condition.type === \"starts_with\") {\n result = formatValue(\"string\", valueA).startsWith(\n formatValue(condition.format || \"\", valueB),\n );\n }\n\n if (condition.type === \"equals\") {\n result =\n formatValue(condition.format || \"\", valueA) ===\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"not_equals\") {\n result =\n formatValue(condition.format || \"\", valueA) !==\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"lt\") {\n result =\n formatValue(condition.format || \"\", valueA) <\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"lte\") {\n result =\n formatValue(condition.format || \"\", valueA) <=\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"gt\") {\n result =\n formatValue(condition.format || \"\", valueA) >\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"gte\") {\n result =\n formatValue(condition.format || \"\", valueA) >=\n formatValue(condition.format || \"\", valueB);\n }\n\n return invertResult(result, condition.invert);\n });\n\n return result;\n}\n\nexport const Name = \"cart-data-conditions\";\n\nexport const Component: CorrectComponentType<CartDataConditionsProps> = (\n _,\n { element },\n) => {\n const conditionTemplates = Array.from(element.children).filter(\n (child) => child.tagName === \"TEMPLATE\" && child.hasAttribute(\"conditions\"),\n );\n if (!conditionTemplates.length)\n return console.error(\n `${Name}: no templates found with any conditions attribute!`,\n );\n\n const allConditions = createMemo(() =>\n conditionTemplates.map((tmpl) => {\n const conditions = tmpl.getAttribute(\"conditions\");\n if (!conditions)\n console.warn(`${Name}: conditions attribute is required!`);\n\n try {\n return JSON.parse(conditions!);\n } catch (e) {\n return [];\n }\n }),\n );\n\n const fullPath = useFullPropertyPath({ element });\n const data = useCartValue({\n path: fullPath,\n element,\n });\n\n element.replaceChildren(...[]);\n\n return html`\n <${For} each=${() => conditionTemplates}>\n ${(tmpl: HTMLTemplateElement, idx: Accessor<number>) => {\n const conditions = allConditions()[idx()];\n return html`\n <${Show} when=${() => validateConditions(conditions, data())}>\n ${() => Array.from(tmpl.content.cloneNode(true).childNodes)}\n <//>\n `;\n }}\n <//>\n `;\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-data-conditions.ts"],"names":["result"],"mappings":"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","file":"cart-data-conditions.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { Show, createMemo, For, type Accessor } from \"solid-js\";\nimport html from \"solid-js/html\";\n\nimport { useFullPropertyPath, useCartValue } from \"../hooks/index.js\";\nimport { getValueFromPath, formatValue, type Format } from \"../utils/index.js\";\n\ntype CartDataConditionsProps = {};\n\ntype ConditionValue = {\n type: \"primitive\" | \"property\";\n name?: string;\n value?: string | number | boolean | null;\n property_name?: string;\n};\n\ntype Condition = {\n type:\n | \"typeof\"\n | \"includes\"\n | \"includes_property\"\n | \"equals\"\n | \"not_equals\"\n | \"starts_with\"\n | \"lt\"\n | \"lte\"\n | \"gt\"\n | \"gte\";\n format?: Format;\n invert?: boolean;\n valueA: ConditionValue;\n valueB: ConditionValue;\n};\n\nfunction getValue<T>(data: T, value: ConditionValue): any {\n if (typeof value === \"undefined\" || !data) return undefined;\n\n if (value.type === \"primitive\") {\n return value.value;\n }\n\n if (value.type === \"property\" && value.name) {\n //@ts-ignore\n return getValueFromPath<T>(data, value.name);\n }\n\n return null;\n}\n\nfunction invertResult(result: boolean, invert = false) {\n if (invert) return !result;\n return result;\n}\n\nfunction validateConditions<T>(conditions: Condition[], data: T) {\n if (!data) return false;\n const result = conditions.every((condition) => {\n let valueA = getValue(data, condition.valueA),\n valueB = getValue(data, condition.valueB),\n result = false;\n\n if (typeof valueA === \"undefined\" && typeof valueB === \"undefined\")\n return false;\n\n if (condition.type === \"typeof\") {\n result = typeof valueA === valueB;\n }\n\n if (condition.type === \"includes\") {\n result = formatValue(condition.format || \"\", valueA).includes(\n formatValue(condition.format || \"\", valueB),\n );\n }\n\n if (condition.type === \"includes_property\") {\n result = valueA.some(\n (v: any) => v[condition.valueA?.property_name || \"\"] === valueB,\n );\n }\n\n if (condition.type === \"starts_with\") {\n result = formatValue(\"string\", valueA).startsWith(\n formatValue(condition.format || \"\", valueB),\n );\n }\n\n if (condition.type === \"equals\") {\n result =\n formatValue(condition.format || \"\", valueA) ===\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"not_equals\") {\n result =\n formatValue(condition.format || \"\", valueA) !==\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"lt\") {\n result =\n formatValue(condition.format || \"\", valueA) <\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"lte\") {\n result =\n formatValue(condition.format || \"\", valueA) <=\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"gt\") {\n result =\n formatValue(condition.format || \"\", valueA) >\n formatValue(condition.format || \"\", valueB);\n }\n\n if (condition.type === \"gte\") {\n result =\n formatValue(condition.format || \"\", valueA) >=\n formatValue(condition.format || \"\", valueB);\n }\n\n return invertResult(result, condition.invert);\n });\n\n return result;\n}\n\nexport const Name = \"cart-data-conditions\";\n\nexport const Component: CorrectComponentType<CartDataConditionsProps> = (\n _,\n { element },\n) => {\n const conditionTemplates = Array.from(element.children).filter(\n (child) => child.tagName === \"TEMPLATE\" && child.hasAttribute(\"conditions\"),\n );\n if (!conditionTemplates.length)\n return console.error(\n `${Name}: no templates found with any conditions attribute!`,\n );\n\n const allConditions = createMemo(() =>\n conditionTemplates.map((tmpl) => {\n const conditions = tmpl.getAttribute(\"conditions\");\n if (!conditions)\n console.warn(`${Name}: conditions attribute is required!`);\n\n try {\n return JSON.parse(conditions!);\n } catch (e) {\n return [];\n }\n }),\n );\n\n const fullPath = useFullPropertyPath({ element });\n const data = useCartValue({\n path: fullPath,\n element,\n });\n\n element.replaceChildren(...[]);\n\n return html`\n <${For} each=${() => conditionTemplates}>\n ${(tmpl: HTMLTemplateElement, idx: Accessor<number>) => {\n const conditions = allConditions()[idx()];\n return html`\n <${Show} when=${() => validateConditions(conditions, data())}>\n ${() => Array.from(tmpl.content.cloneNode(true).childNodes)}\n <//>\n `;\n }}\n <//>\n `;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-data-injection.ts"],"names":["value"],"mappings":"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","file":"cart-data-injection.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport {\n type ValidAjaxPath,\n useFormattedValue,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\nimport { type Format, getTargetElement } from \"../utils/index.js\";\nimport { createEffect, on, onCleanup } from \"solid-js\";\n\ntype CartDataInjectionProps = {\n propertyName: ValidAjaxPath;\n format?: Format;\n target: string;\n attributeName: string;\n injectionType: \"attribute\" | \"property\" | \"template\";\n};\n\nconst VALID_INJECTION_TYPES = [\"attribute\", \"property\", \"template\"];\n\nexport const Name = \"cart-data-injection\";\n\nexport const Component: CorrectComponentType<CartDataInjectionProps> = (\n props,\n { element },\n) => {\n if (!props.propertyName)\n return console.warn(`${Name}: No path attribute provided.`);\n if (!props.target) return console.warn(`${Name}: No target attribute found!`);\n if (!props.attributeName)\n return console.warn(`${Name}: No attribute-name attribute found!`);\n\n if (\n !props.injectionType ||\n (props.injectionType &&\n !VALID_INJECTION_TYPES.includes(props.injectionType))\n )\n return console.warn(`${Name}: Invalid injection-type attribute provided.`);\n\n const mergedProps = {\n element,\n path: () => props.propertyName,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n const value = useFormattedValue({\n path: fullPath,\n element,\n get format() {\n return props.format;\n },\n });\n\n createEffect(\n on(\n () => {\n return {\n target: getTargetElement(element, props.target),\n value: value(),\n attributeName: props.attributeName,\n injectionType: props.injectionType,\n propertyName: props.propertyName,\n };\n },\n ({ target, value, attributeName, injectionType, propertyName }) => {\n if (!target)\n return console.warn(\n `${Name}: Unable to find element with selector of: ${props.target}`,\n );\n\n if (\n injectionType === \"attribute\" &&\n value !== null &&\n value !== undefined\n ) {\n target.setAttribute(attributeName, value);\n return;\n }\n\n if (\n injectionType === \"property\" &&\n value !== null &&\n value !== undefined\n ) {\n //@ts-ignore\n target[attributeName] = value;\n return;\n }\n\n if (\n injectionType === \"template\" &&\n value !== null &&\n value !== undefined\n ) {\n if (attributeName === \"style\") {\n //@ts-ignore\n const styleTmpl = target[attributeName].cssText;\n setTimeout(() => {\n //@ts-ignore\n target[attributeName].cssText = styleTmpl.replace(\n //@ts-ignore\n `{${propertyName}}`,\n value,\n );\n });\n return onCleanup(() => {\n //@ts-ignore\n target[attributeName].cssText = styleTmpl;\n });\n }\n const tmpValue = target.getAttribute(attributeName);\n if (!tmpValue || !value)\n return console.warn(\n `${Name}: Unable to inject value into template`,\n );\n setTimeout(() => {\n target.setAttribute(\n attributeName,\n\n tmpValue.replace(`{${propertyName}}`, value),\n );\n });\n return onCleanup(() => {\n target.setAttribute(attributeName, tmpValue);\n });\n }\n },\n ),\n );\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-data-injection.ts"],"names":["value"],"mappings":"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","file":"cart-data-injection.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport {\n type ValidAjaxPath,\n useFormattedValue,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\nimport { type Format, getTargetElement } from \"../utils/index.js\";\nimport { createEffect, on, onCleanup } from \"solid-js\";\n\ntype CartDataInjectionProps = {\n propertyName: ValidAjaxPath;\n format?: Format;\n target: string;\n attributeName: string;\n injectionType: \"attribute\" | \"property\" | \"template\";\n};\n\nconst VALID_INJECTION_TYPES = [\"attribute\", \"property\", \"template\"];\n\nexport const Name = \"cart-data-injection\";\n\nexport const Component: CorrectComponentType<CartDataInjectionProps> = (\n props,\n { element },\n) => {\n if (!props.propertyName)\n return console.warn(`${Name}: No path attribute provided.`);\n if (!props.target) return console.warn(`${Name}: No target attribute found!`);\n if (!props.attributeName)\n return console.warn(`${Name}: No attribute-name attribute found!`);\n\n if (\n !props.injectionType ||\n (props.injectionType &&\n !VALID_INJECTION_TYPES.includes(props.injectionType))\n )\n return console.warn(`${Name}: Invalid injection-type attribute provided.`);\n\n const mergedProps = {\n element,\n path: () => props.propertyName,\n };\n const fullPath = useFullPropertyPath(mergedProps);\n const value = useFormattedValue({\n path: fullPath,\n element,\n get format() {\n return props.format;\n },\n });\n\n createEffect(\n on(\n () => {\n return {\n target: getTargetElement(element, props.target),\n value: value(),\n attributeName: props.attributeName,\n injectionType: props.injectionType,\n propertyName: props.propertyName,\n };\n },\n ({ target, value, attributeName, injectionType, propertyName }) => {\n if (!target)\n return console.warn(\n `${Name}: Unable to find element with selector of: ${props.target}`,\n );\n\n if (\n injectionType === \"attribute\" &&\n value !== null &&\n value !== undefined\n ) {\n target.setAttribute(attributeName, value);\n return;\n }\n\n if (\n injectionType === \"property\" &&\n value !== null &&\n value !== undefined\n ) {\n //@ts-ignore\n target[attributeName] = value;\n return;\n }\n\n if (\n injectionType === \"template\" &&\n value !== null &&\n value !== undefined\n ) {\n if (attributeName === \"style\") {\n //@ts-ignore\n const styleTmpl = target[attributeName].cssText;\n setTimeout(() => {\n //@ts-ignore\n target[attributeName].cssText = styleTmpl.replace(\n //@ts-ignore\n `{${propertyName}}`,\n value,\n );\n });\n return onCleanup(() => {\n //@ts-ignore\n target[attributeName].cssText = styleTmpl;\n });\n }\n const tmpValue = target.getAttribute(attributeName);\n if (!tmpValue || !value)\n return console.warn(\n `${Name}: Unable to inject value into template`,\n );\n setTimeout(() => {\n target.setAttribute(\n attributeName,\n\n tmpValue.replace(`{${propertyName}}`, value),\n );\n });\n return onCleanup(() => {\n target.setAttribute(attributeName, tmpValue);\n });\n }\n },\n ),\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-data-listener-status.ts"],"names":[],"mappings":";;;;AAOO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAsC,GAAA,CAAC,CAAG,EAAA,EAAE,SAAc,KAAA;AACrE,EAAA,MAAM,CAAC,MAAM,CAAI,GAAA,iBAAA,CAAkB,OAAO,CAAA;AAC1C,EAAA,IAAI,CAAC,MAAQ,EAAA,OAAO,QAAQ,KAAM,CAAA,CAAA,EAAG,IAAI,CAAiC,+BAAA,CAAA,CAAA;AAE1E,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS,CAAA;AAAA,IAC9C,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS,CAAA;AAAA,IAC9C,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS,CAAA;AAAA,IAC9C,KAAA,EAAO,kBAAmB,CAAA,OAAA,EAAS,OAAO;AAAA,GAC5C;AAEA,EAAA,IAAI,aAA+B,GAAA,IAAA;AAEnC,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,MAAM,IAAI,MAAO,EAAA;AACjB,IAAA,IAAI,CAAC,SAAA,CAAU,CAAC,CAAA,EAAU,OAAA,aAAA;AAC1B,IAAgB,aAAA,GAAA,CAAA;AAChB,IAAO,OAAA,CAAA;AAAA,GACT;AAEA,EAAQ,OAAA,CAAA,eAAA,CAAgB,GAAG,EAAE,CAAA;AAE7B,EAAA,OAAO,WAAW,MAAM;AACtB,IAAA,MAAM,QAAQ,aAAc,EAAA;AAC5B,IAAI,IAAA,CAAC,OAAc,OAAA,IAAA;AACnB,IAAM,MAAA,QAAA,GAAW,UAAU,KAAK,CAAA;AAChC,IAAI,IAAA,CAAC,UAAiB,OAAA,IAAA;AACtB,IAAA,OAAO,MAAM,IAAK,CAAA,QAAA,CAAS,SAAU,CAAA,IAAI,EAAE,UAAU,CAAA;AAAA,GACtD,CAAA;AACH","file":"cart-data-listener-status.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { createMemo } from \"solid-js\";\n\nimport { type Status, useListenerStatus } from \"../hooks/index.js\";\nimport { getTemplateContent } from \"../utils/index.js\";\n\nexport const Name = \"cart-data-listener-status\";\n\nexport const Component: CorrectComponentType<{}> = (_, { element }) => {\n const [status] = useListenerStatus(element);\n if (!status) return console.error(`${Name}: no listener context provided!`);\n\n const templates = {\n default: getTemplateContent(element, \"default\"),\n loading: getTemplateContent(element, \"loading\"),\n success: getTemplateContent(element, \"success\"),\n error: getTemplateContent(element, \"error\"),\n };\n\n let previousState: Status | null = null;\n\n const currentStatus = () => {\n const s = status();\n if (!templates[s]) return previousState;\n previousState = s;\n return s;\n };\n\n element.replaceChildren(...[]);\n\n return createMemo(() => {\n const state = currentStatus();\n if (!state) return null;\n const template = templates[state];\n if (!template) return null;\n return Array.from(template.cloneNode(true).childNodes);\n });\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-data-listener-status.ts"],"names":[],"mappings":";;;;AAOO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAsC,GAAA,CAAC,CAAG,EAAA,EAAE,SAAc,KAAA;AACrE,EAAA,MAAM,CAAC,MAAM,CAAI,GAAA,iBAAA,CAAkB,OAAO,CAAA;AAC1C,EAAA,IAAI,CAAC,MAAQ,EAAA,OAAO,QAAQ,KAAM,CAAA,CAAA,EAAG,IAAI,CAAiC,+BAAA,CAAA,CAAA;AAE1E,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS,CAAA;AAAA,IAC9C,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS,CAAA;AAAA,IAC9C,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS,CAAA;AAAA,IAC9C,KAAA,EAAO,kBAAmB,CAAA,OAAA,EAAS,OAAO;AAAA,GAC5C;AAEA,EAAA,IAAI,aAA+B,GAAA,IAAA;AAEnC,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,MAAM,IAAI,MAAO,EAAA;AACjB,IAAA,IAAI,CAAC,SAAA,CAAU,CAAC,CAAA,EAAU,OAAA,aAAA;AAC1B,IAAgB,aAAA,GAAA,CAAA;AAChB,IAAO,OAAA,CAAA;AAAA,GACT;AAEA,EAAQ,OAAA,CAAA,eAAA,CAAgB,GAAG,EAAE,CAAA;AAE7B,EAAA,OAAO,WAAW,MAAM;AACtB,IAAA,MAAM,QAAQ,aAAc,EAAA;AAC5B,IAAI,IAAA,CAAC,OAAc,OAAA,IAAA;AACnB,IAAM,MAAA,QAAA,GAAW,UAAU,KAAK,CAAA;AAChC,IAAI,IAAA,CAAC,UAAiB,OAAA,IAAA;AACtB,IAAA,OAAO,MAAM,IAAK,CAAA,QAAA,CAAS,SAAU,CAAA,IAAI,EAAE,UAAU,CAAA;AAAA,GACtD,CAAA;AACH","file":"cart-data-listener-status.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { createMemo } from \"solid-js\";\n\nimport { type Status, useListenerStatus } from \"../hooks/index.js\";\nimport { getTemplateContent } from \"../utils/index.js\";\n\nexport const Name = \"cart-data-listener-status\";\n\nexport const Component: CorrectComponentType<{}> = (_, { element }) => {\n const [status] = useListenerStatus(element);\n if (!status) return console.error(`${Name}: no listener context provided!`);\n\n const templates = {\n default: getTemplateContent(element, \"default\"),\n loading: getTemplateContent(element, \"loading\"),\n success: getTemplateContent(element, \"success\"),\n error: getTemplateContent(element, \"error\"),\n };\n\n let previousState: Status | null = null;\n\n const currentStatus = () => {\n const s = status();\n if (!templates[s]) return previousState;\n previousState = s;\n return s;\n };\n\n element.replaceChildren(...[]);\n\n return createMemo(() => {\n const state = currentStatus();\n if (!state) return null;\n const template = templates[state];\n if (!template) return null;\n return Array.from(template.cloneNode(true).childNodes);\n });\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-data-listener.ts"],"names":["on","data","reset"],"mappings":"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","file":"cart-data-listener.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { createEffect, createUniqueId, on, onCleanup } from \"solid-js\";\nimport debounce from \"lodash.debounce\";\n\nimport {\n type Status,\n provideListenerStatusContext,\n useCartValue,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\nimport { parseNestedObject } from \"../utils/index.js\";\n\ntype CartDataListenerProps = {\n status: Status;\n on: string;\n method: string;\n debounceDelay: number;\n resetForm: boolean;\n resetStatusDelay: number;\n preventDefault: boolean;\n};\n\nexport const Name = \"cart-data-listener\";\n\nexport const Component: CorrectComponentType<CartDataListenerProps> = (\n props,\n { element },\n) => {\n const [_, setStatus] = provideListenerStatusContext({\n element,\n get status() {\n return props.status;\n },\n });\n\n const path = useFullPropertyPath({\n element,\n });\n const data = useCartValue({\n element,\n path,\n });\n\n let currentEventId: string | null = null;\n\n createEffect(\n on(\n () => ({\n method: props.method,\n on: props.on,\n preventDefault: props.preventDefault,\n data: data() as any,\n debounceDelay: props.debounceDelay,\n resetForm: props.resetForm,\n resetStatusDelay: props.resetStatusDelay,\n }),\n ({\n method,\n on,\n preventDefault,\n data,\n debounceDelay,\n resetForm,\n resetStatusDelay,\n }) => {\n if (!method)\n return console.error(`${Name}: method property is required!`);\n if (!on) return console.error(`${Name}: on property is required!`);\n\n let resetStatusId: number | null = null;\n // tempEventId: string | null = null;\n\n function onEvent(e: Event) {\n const cart = AjaxCart;\n\n // (currentEventId = createUniqueId()), (tempEventId = currentEventId);\n\n if (preventDefault) e.preventDefault();\n\n async function handleStatus<T>(promise: Promise<T>) {\n setStatus(\"loading\");\n return promise\n .then((data) => {\n setStatus(\"success\");\n return data;\n })\n .catch((error) => {\n setStatus(\"error\");\n return error;\n })\n .finally(() => {\n if (resetStatusDelay > 0) {\n //@ts-ignore\n resetStatusId = setTimeout(() => {\n setStatus(\"default\");\n resetStatusId = null;\n }, resetStatusDelay);\n } else {\n setStatus(\"default\");\n }\n });\n }\n\n if (on === \"submit\") {\n const form = e.target as HTMLFormElement;\n const formData = new FormData(form);\n const formObj = parseNestedObject(\n //@ts-ignore\n Object.fromEntries(formData.entries()),\n );\n\n function reset() {\n if (resetForm) form.reset();\n }\n\n if (method === \"replaceItem\") {\n return handleStatus(\n cart.replaceItem({\n key: formObj.key,\n id: formObj.id,\n }),\n ).finally(reset);\n }\n\n if (method === \"updateItem\") {\n return handleStatus(\n cart.updateItem({\n id: formObj.id,\n quantity: formObj?.quantity || undefined,\n properties: formObj?.properties || {},\n selling_plan: formObj?.selling_plan || undefined,\n }),\n ).finally(reset);\n }\n\n if (method === \"removeItem\") {\n return handleStatus(cart.removeItem(formObj.key)).finally(reset);\n }\n\n if (method === \"addDiscount\") {\n return handleStatus(cart.addDiscount(formObj.code)).finally(\n reset,\n );\n }\n\n if (method === \"removeDiscount\") {\n return handleStatus(cart.removeDiscount(formObj.code)).finally(\n reset,\n );\n }\n\n if (method === \"updateNote\") {\n return handleStatus(cart.updateNote(formObj.note)).finally(reset);\n }\n\n return;\n }\n\n const input = e.target as HTMLInputElement;\n\n if (method === \"removeItem\") {\n return handleStatus(cart.removeItem(data.key));\n }\n\n if (method === \"updateQuantity\") {\n return handleStatus(\n cart.updateItem({\n id: data.key,\n quantity: input.valueAsNumber,\n }),\n );\n }\n\n if (method === \"updateItemVariant\") {\n return handleStatus(\n cart.replaceItem({\n key: data.key,\n id: input.value,\n }),\n );\n }\n\n if (method === \"updateNote\") {\n return handleStatus(cart.updateNote(input.value));\n }\n }\n const handleEvent = debounce(onEvent, debounceDelay),\n controller = new AbortController();\n\n element.addEventListener(\n on,\n (e) => {\n if (preventDefault) e.preventDefault();\n handleEvent(e);\n },\n { signal: controller.signal },\n );\n\n return onCleanup(() => {\n controller.abort();\n if (resetStatusId) clearTimeout(resetStatusId);\n });\n },\n ),\n );\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-data-listener.ts"],"names":["on","data","reset"],"mappings":"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","file":"cart-data-listener.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { createEffect, on, onCleanup } from \"solid-js\";\nimport debounce from \"lodash.debounce\";\n\nimport {\n type Status,\n provideListenerStatusContext,\n useCartValue,\n useFullPropertyPath,\n} from \"../hooks/index.js\";\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\nimport { parseNestedObject } from \"../utils/index.js\";\n\ntype CartDataListenerProps = {\n status: Status;\n on: string;\n method: string;\n debounceDelay: number;\n resetForm: boolean;\n resetStatusDelay: number;\n preventDefault: boolean;\n};\n\nexport const Name = \"cart-data-listener\";\n\nexport const Component: CorrectComponentType<CartDataListenerProps> = (\n props,\n { element },\n) => {\n const [_, setStatus] = provideListenerStatusContext({\n element,\n get status() {\n return props.status;\n },\n });\n\n const path = useFullPropertyPath({\n element,\n });\n const data = useCartValue({\n element,\n path,\n });\n\n let currentEventId: string | null = null;\n\n createEffect(\n on(\n () => ({\n method: props.method,\n on: props.on,\n preventDefault: props.preventDefault,\n data: data() as any,\n debounceDelay: props.debounceDelay,\n resetForm: props.resetForm,\n resetStatusDelay: props.resetStatusDelay,\n }),\n ({\n method,\n on,\n preventDefault,\n data,\n debounceDelay,\n resetForm,\n resetStatusDelay,\n }) => {\n if (!method)\n return console.error(`${Name}: method property is required!`);\n if (!on) return console.error(`${Name}: on property is required!`);\n\n let resetStatusId: number | null = null;\n // tempEventId: string | null = null;\n\n function onEvent(e: Event) {\n const cart = AjaxCart;\n\n // (currentEventId = createUniqueId()), (tempEventId = currentEventId);\n\n if (preventDefault) e.preventDefault();\n\n async function handleStatus<T>(promise: Promise<T>) {\n setStatus(\"loading\");\n return promise\n .then((data) => {\n setStatus(\"success\");\n return data;\n })\n .catch((error) => {\n setStatus(\"error\");\n return error;\n })\n .finally(() => {\n if (resetStatusDelay > 0) {\n //@ts-ignore\n resetStatusId = setTimeout(() => {\n setStatus(\"default\");\n resetStatusId = null;\n }, resetStatusDelay);\n } else {\n setStatus(\"default\");\n }\n });\n }\n\n if (on === \"submit\") {\n const form = e.target as HTMLFormElement;\n const formData = new FormData(form);\n const formObj = parseNestedObject(\n //@ts-ignore\n Object.fromEntries(formData.entries()),\n );\n\n function reset() {\n if (resetForm) form.reset();\n }\n\n if (method === \"replaceItem\") {\n return handleStatus(\n cart.replaceItem({\n key: formObj.key,\n id: formObj.id,\n }),\n ).finally(reset);\n }\n\n if (method === \"updateItem\") {\n return handleStatus(\n cart.updateItem({\n id: formObj.id,\n quantity: formObj?.quantity || undefined,\n properties: formObj?.properties || {},\n selling_plan: formObj?.selling_plan || undefined,\n }),\n ).finally(reset);\n }\n\n if (method === \"removeItem\") {\n return handleStatus(cart.removeItem(formObj.key)).finally(reset);\n }\n\n if (method === \"addDiscount\") {\n return handleStatus(cart.addDiscount(formObj.code)).finally(\n reset,\n );\n }\n\n if (method === \"removeDiscount\") {\n return handleStatus(cart.removeDiscount(formObj.code)).finally(\n reset,\n );\n }\n\n if (method === \"updateNote\") {\n return handleStatus(cart.updateNote(formObj.note)).finally(reset);\n }\n\n return;\n }\n\n const input = e.target as HTMLInputElement;\n\n if (method === \"removeItem\") {\n return handleStatus(cart.removeItem(data.key));\n }\n\n if (method === \"updateQuantity\") {\n return handleStatus(\n cart.updateItem({\n id: data.key,\n quantity: input.valueAsNumber,\n }),\n );\n }\n\n if (method === \"updateItemVariant\") {\n return handleStatus(\n cart.replaceItem({\n key: data.key,\n id: input.value,\n }),\n );\n }\n\n if (method === \"updateNote\") {\n return handleStatus(cart.updateNote(input.value));\n }\n }\n const handleEvent = debounce(onEvent, debounceDelay),\n controller = new AbortController();\n\n element.addEventListener(\n on,\n (e) => {\n if (preventDefault) e.preventDefault();\n handleEvent(e);\n },\n { signal: controller.signal },\n );\n\n return onCleanup(() => {\n controller.abort();\n if (resetStatusId) clearTimeout(resetStatusId);\n });\n },\n ),\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-data.ts"],"names":[],"mappings":";;;;;AAiBO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAiD,GAAA,CAC5D,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAA,IAAI,CAAC,KAAM,CAAA,YAAA;AACT,IAAA,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAG,EAAA,IAAI,CAAwC,sCAAA,CAAA,CAAA;AACrE,EAAA,MAAM,WAAW,mBAAoB,CAAA;AAAA,IACnC,OAAA;AAAA,IACA,IAAA,EAAM,MAAM,KAAM,CAAA;AAAA,GACnB,CAAA;AACD,EAAA,MAAM,iBAAiB,iBAAkB,CAAA;AAAA,IACvC,IAAI,MAAS,GAAA;AACX,MAAA,OAAO,KAAM,CAAA,MAAA;AAAA,KACf;AAAA,IACA,IAAM,EAAA,QAAA;AAAA,IACN;AAAA,GACD,CAAA;AAED,EAAO,OAAA,IAAA;AAAA,KAAA,EACF,IAAI,CAAS,MAAA,EAAA,MAAM,gBAAqB,KAAA,IAAI,KAAK,cAAc,CAAA;AAAA,EAAA,CAAA;AAEtE","file":"cart-data.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\nimport { type Format } from \"../utils/index.js\";\n\nimport { Show } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useFormattedValue,\n} from \"../hooks/index.js\";\nimport html from \"solid-js/html\";\n\ntype CartDataProps = {\n propertyName: ValidAjaxPath;\n format?: Format;\n};\n\nexport const Name = \"cart-data\";\n\nexport const Component: CorrectComponentType<CartDataProps> = (\n props,\n { element },\n) => {\n if (!props.propertyName)\n return console.warn(`${Name}: No property-name attribute provided.`);\n const fullPath = useFullPropertyPath({\n element,\n path: () => props.propertyName,\n });\n const formattedValue = useFormattedValue({\n get format() {\n return props.format;\n },\n path: fullPath,\n element,\n });\n\n return html`\n <${Show} when=${() => formattedValue() !== null}> ${formattedValue} <//>\n `;\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-data.ts"],"names":[],"mappings":";;;;;AAiBO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAiD,GAAA,CAC5D,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAA,IAAI,CAAC,KAAM,CAAA,YAAA;AACT,IAAA,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAG,EAAA,IAAI,CAAwC,sCAAA,CAAA,CAAA;AACrE,EAAA,MAAM,WAAW,mBAAoB,CAAA;AAAA,IACnC,OAAA;AAAA,IACA,IAAA,EAAM,MAAM,KAAM,CAAA;AAAA,GACnB,CAAA;AACD,EAAA,MAAM,iBAAiB,iBAAkB,CAAA;AAAA,IACvC,IAAI,MAAS,GAAA;AACX,MAAA,OAAO,KAAM,CAAA,MAAA;AAAA,KACf;AAAA,IACA,IAAM,EAAA,QAAA;AAAA,IACN;AAAA,GACD,CAAA;AAED,EAAO,OAAA,IAAA;AAAA,KAAA,EACF,IAAI,CAAS,MAAA,EAAA,MAAM,gBAAqB,KAAA,IAAI,KAAK,cAAc,CAAA;AAAA,EAAA,CAAA;AAEtE","file":"cart-data.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\nimport { type Format } from \"../utils/index.js\";\n\nimport { Show } from \"solid-js\";\n\nimport {\n type ValidAjaxPath,\n useFullPropertyPath,\n useFormattedValue,\n} from \"../hooks/index.js\";\nimport html from \"solid-js/html\";\n\ntype CartDataProps = {\n propertyName: ValidAjaxPath;\n format?: Format;\n};\n\nexport const Name = \"cart-data\";\n\nexport const Component: CorrectComponentType<CartDataProps> = (\n props,\n { element },\n) => {\n if (!props.propertyName)\n return console.warn(`${Name}: No property-name attribute provided.`);\n const fullPath = useFullPropertyPath({\n element,\n path: () => props.propertyName,\n });\n const formattedValue = useFormattedValue({\n get format() {\n return props.format;\n },\n path: fullPath,\n element,\n });\n\n return html`\n <${Show} when=${() => formattedValue() !== null}> ${formattedValue} <//>\n `;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/cart-loading-state.ts"],"names":[],"mappings":";;;;;AAcO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAyD,GAAA,CACpE,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAA,MAAM,IAAO,GAAA,QAAA;AAEb,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS,CAAA;AAAA,IAC9C,KAAA,EAAO,kBAAmB,CAAA,OAAA,EAAS,OAAO,CAAA;AAAA,IAC1C,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS;AAAA,GAChD;AAEA,EAAA,IAAI,aAA+B,GAAA,IAAA;AAEnC,EAAM,MAAA,SAAA,GAAY,WAAW,MAAM;AACjC,IAAA,MAAM,QAAQ,IAAM,EAAA,MAAA;AACpB,IAAA,IAAI,CAAC,SAAU,CAAA,KAAK,KAAK,KAAM,CAAA,aAAA,CAAc,SAAS,KAAK,CAAA;AACzD,MAAO,OAAA,aAAA;AACT,IAAgB,aAAA,GAAA,KAAA;AAChB,IAAO,OAAA,KAAA;AAAA,GACR,CAAA;AAED,EAAQ,OAAA,CAAA,eAAA,CAAgB,GAAG,EAAE,CAAA;AAE7B,EAAO,OAAA,IAAA;AAAA,KACF,EAAA,IAAI,CAAS,MAAA,EAAA,MAAM,IAAI,CAAA;AAAA,MAAA,EACtB,MAAM;AACR,IAAA,MAAM,QAAQ,SAAU,EAAA;AACxB,IAAI,IAAA,CAAC,OAAc,OAAA,IAAA;AACnB,IAAA,IAAI,CAAC,SAAA,CAAU,KAAK,CAAA,EAAU,OAAA,IAAA;AAC9B,IAAA,MAAM,WAAW,KAAM,CAAA,IAAA;AAAA,MACrB,SAAU,CAAA,KAAK,CAAE,CAAA,SAAA,CAAU,IAAI,CAAE,CAAA;AAAA,KACnC;AACA,IAAO,OAAA,QAAA;AAAA,GACR;AAAA;AAAA,EAAA,CAAA;AAGL","file":"cart-loading-state.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-utils\";\n\nimport { Show, createMemo } from \"solid-js\";\n\nimport { getTemplateContent } from \"../utils/index.js\";\nimport html from \"solid-js/html\";\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\n\ntype Status = (typeof AjaxCart)[\"status\"];\n\ntype CartLoadingStateProps = {\n ignoredStates: Array<Status>;\n};\n\nexport const Name = \"cart-loading-state\";\n\nexport const Component: CorrectComponentType<CartLoadingStateProps> = (\n props,\n { element },\n) => {\n const cart = AjaxCart;\n\n const templates = {\n pending: getTemplateContent(element, \"pending\"),\n error: getTemplateContent(element, \"error\"),\n success: getTemplateContent(element, \"success\"),\n };\n\n let previousState: Status | null = null;\n\n const cartState = createMemo(() => {\n const state = cart?.status;\n if (!templates[state] || props.ignoredStates.includes(state))\n return previousState;\n previousState = state;\n return state;\n });\n\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => cart}>\n ${() => {\n const state = cartState();\n if (!state) return null;\n if (!templates[state]) return null;\n const children = Array.from(\n templates[state].cloneNode(true).childNodes,\n );\n return children;\n }}\n <//>\n `;\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/cart-loading-state.ts"],"names":[],"mappings":";;;;;AAeO,MAAM,IAAO,GAAA;AAEb,MAAM,SAAyD,GAAA,CACpE,KACA,EAAA,EAAE,SACC,KAAA;AACH,EAAA,MAAM,IAAO,GAAA,QAAA;AAEb,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS,CAAA;AAAA,IAC9C,KAAA,EAAO,kBAAmB,CAAA,OAAA,EAAS,OAAO,CAAA;AAAA,IAC1C,OAAA,EAAS,kBAAmB,CAAA,OAAA,EAAS,SAAS;AAAA,GAChD;AAEA,EAAA,IAAI,aAA+B,GAAA,IAAA;AAEnC,EAAM,MAAA,SAAA,GAAY,WAAW,MAAM;AACjC,IAAA,MAAM,QAAQ,IAAM,EAAA,MAAA;AACpB,IAAA,IAAI,CAAC,SAAU,CAAA,KAAK,KAAK,KAAM,CAAA,aAAA,CAAc,SAAS,KAAK,CAAA;AACzD,MAAO,OAAA,aAAA;AACT,IAAgB,aAAA,GAAA,KAAA;AAChB,IAAO,OAAA,KAAA;AAAA,GACR,CAAA;AAED,EAAQ,OAAA,CAAA,eAAA,CAAgB,GAAG,EAAE,CAAA;AAE7B,EAAO,OAAA,IAAA;AAAA,KACF,EAAA,IAAI,CAAS,MAAA,EAAA,MAAM,IAAI,CAAA;AAAA,MAAA,EACtB,MAAM;AACN,IAAA,MAAM,QAAQ,SAAU,EAAA;AACxB,IAAI,IAAA,CAAC,OAAc,OAAA,IAAA;AACnB,IAAA,IAAI,CAAC,SAAA,CAAU,KAAK,CAAA,EAAU,OAAA,IAAA;AAC9B,IAAA,MAAM,WAAW,KAAM,CAAA,IAAA;AAAA,MACrB,SAAU,CAAA,KAAK,CAAE,CAAA,SAAA,CAAU,IAAI,CAAE,CAAA;AAAA,KACnC;AACA,IAAO,OAAA,QAAA;AAAA,GACR;AAAA;AAAA,EAAA,CAAA;AAGP","file":"cart-loading-state.js","sourcesContent":["import type { CorrectComponentType } from \"@brytdesigns/web-component-core/utils\";\n\nimport { Show, createMemo } from \"solid-js\";\n\nimport { getTemplateContent } from \"../utils/index.js\";\nimport html from \"solid-js/html\";\n\nimport AjaxCart from \"@brytdesigns/shopify-ajax-cart\";\n\ntype Status = (typeof AjaxCart)[\"status\"];\n\ntype CartLoadingStateProps = {\n ignoredStates: Array<Status>;\n};\n\nexport const Name = \"cart-loading-state\";\n\nexport const Component: CorrectComponentType<CartLoadingStateProps> = (\n props,\n { element },\n) => {\n const cart = AjaxCart;\n\n const templates = {\n pending: getTemplateContent(element, \"pending\"),\n error: getTemplateContent(element, \"error\"),\n success: getTemplateContent(element, \"success\"),\n };\n\n let previousState: Status | null = null;\n\n const cartState = createMemo(() => {\n const state = cart?.status;\n if (!templates[state] || props.ignoredStates.includes(state))\n return previousState;\n previousState = state;\n return state;\n });\n\n element.replaceChildren(...[]);\n\n return html`\n <${Show} when=${() => cart}>\n ${() => {\n const state = cartState();\n if (!state) return null;\n if (!templates[state]) return null;\n const children = Array.from(\n templates[state].cloneNode(true).childNodes,\n );\n return children;\n }}\n <//>\n `;\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  import { createContext, provide, consume } from 'component-register';
2
2
  import { splitProps } from 'solid-js';
3
+ import { createWithElementContext } from '@brytdesigns/web-component-core/utils';
3
4
 
4
5
  function createListenerStatusContext(options) {
5
6
  const [privateProps, publicProps] = splitProps(options, ["element"]);
@@ -27,7 +28,8 @@ const useListenerStatus = (element) => {
27
28
  }
28
29
  return useListenerStatusContext(context);
29
30
  };
31
+ const withListenerElementStatus = createWithElementContext(ListenerStatusContext);
30
32
 
31
- export { provideListenerStatusContext, useListenerStatus, useListenerStatusContext };
33
+ export { provideListenerStatusContext, useListenerStatus, useListenerStatusContext, withListenerElementStatus };
32
34
  //# sourceMappingURL=useListenerStatus.js.map
33
35
  //# sourceMappingURL=useListenerStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useListenerStatus.ts"],"names":[],"mappings":";;;AAkBA,SAAS,4BAA4B,OAAkB,EAAA;AACrD,EAAM,MAAA,CAAC,cAAc,WAAW,CAAA,GAAI,WAAW,OAAS,EAAA,CAAC,SAAS,CAAC,CAAA;AAEnE,EAAA,SAAS,UAAU,MAAgB,EAAA;AACjC,IAAA,MAAM,aAAgB,GAAA,YAAA,CAAa,OAAQ,CAAA,YAAA,CAAa,QAAQ,CAAA;AAChE,IAAA,IAAI,kBAAkB,MAAQ,EAAA;AAC9B,IAAa,YAAA,CAAA,OAAA,CAAQ,YAAa,CAAA,QAAA,EAAU,MAAM,CAAA;AAClD,IAAO,OAAA,MAAA;AAAA;AAGT,EAAA,OAAO,CAAC,MAAM,WAAY,CAAA,MAAA,EAAQ,SAAS,CAAA;AAC7C;AAEA,MAAM,qBAAA,GAAwB,cAAc,2BAA2B,CAAA;AAE1D,MAAA,4BAAA,GAA+B,CAAC,OAGZ,KAAA;AAC/B,EAAA,OAAO,OAAQ,CAAA,qBAAA,EAAuB,OAAS,EAAA,OAAA,CAAQ,OAAO,CAAA;AAChE;AAEa,MAAA,wBAAA,GAA2B,CACtC,OACG,KAAA;AACH,EAAO,OAAA,OAAA;AACT;AAEa,MAAA,iBAAA,GAAoB,CAAC,OAA0C,KAAA;AAC1E,EAAM,MAAA,OAAA,GAAU,OAAQ,CAAA,qBAAA,EAAuB,OAAO,CAAA;AAEtD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAA,MAAM,OAAQ,CAAA,KAAA;AAAA,MACZ;AAAA,KACF;AAAA;AAGF,EAAA,OAAO,yBAAyB,OAAO,CAAA;AACzC","file":"useListenerStatus.js","sourcesContent":["import {\n createContext,\n consume,\n provide,\n type ICustomElement,\n} from \"component-register\";\nimport { splitProps } from \"solid-js\";\n\ntype WalkableNode = Parameters<typeof provide>[2];\nexport type Status = \"default\" | \"loading\" | \"success\" | \"error\";\n\ntype ListenerStatusContextType = ReturnType<typeof createListenerStatusContext>;\n\ntype Options = {\n element: HTMLElement & ICustomElement;\n status: Status;\n};\n\nfunction createListenerStatusContext(options: Options) {\n const [privateProps, publicProps] = splitProps(options, [\"element\"]);\n\n function setStatus(status: Status) {\n const currentStatus = privateProps.element.getAttribute(\"status\");\n if (currentStatus === status) return;\n privateProps.element.setAttribute(\"status\", status);\n return status;\n }\n\n return [() => publicProps.status, setStatus] as const;\n}\n\nconst ListenerStatusContext = createContext(createListenerStatusContext);\n\nexport const provideListenerStatusContext = (options: {\n element: WalkableNode;\n status: Status;\n}): ListenerStatusContextType => {\n return provide(ListenerStatusContext, options, options.element);\n};\n\nexport const useListenerStatusContext = (\n context: ListenerStatusContextType\n) => {\n return context;\n};\n\nexport const useListenerStatus = (element: HTMLElement & ICustomElement) => {\n const context = consume(ListenerStatusContext, element);\n\n if (!context) {\n throw console.error(\n \"CartListenerContext not found! Please ensure to wrap your custom element with cart-data-listener element.\"\n );\n }\n\n return useListenerStatusContext(context);\n};\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/useListenerStatus.ts"],"names":[],"mappings":";;;;AAmBA,SAAS,4BAA4B,OAAkB,EAAA;AACrD,EAAM,MAAA,CAAC,cAAc,WAAW,CAAA,GAAI,WAAW,OAAS,EAAA,CAAC,SAAS,CAAC,CAAA;AAEnE,EAAA,SAAS,UAAU,MAAgB,EAAA;AACjC,IAAA,MAAM,aAAgB,GAAA,YAAA,CAAa,OAAQ,CAAA,YAAA,CAAa,QAAQ,CAAA;AAChE,IAAA,IAAI,kBAAkB,MAAQ,EAAA;AAC9B,IAAa,YAAA,CAAA,OAAA,CAAQ,YAAa,CAAA,QAAA,EAAU,MAAM,CAAA;AAClD,IAAO,OAAA,MAAA;AAAA;AAGT,EAAA,OAAO,CAAC,MAAM,WAAY,CAAA,MAAA,EAAQ,SAAS,CAAA;AAC7C;AAEA,MAAM,qBAAA,GAAwB,cAAc,2BAA2B,CAAA;AAE1D,MAAA,4BAAA,GAA+B,CAAC,OAGZ,KAAA;AAC/B,EAAA,OAAO,OAAQ,CAAA,qBAAA,EAAuB,OAAS,EAAA,OAAA,CAAQ,OAAO,CAAA;AAChE;AAEa,MAAA,wBAAA,GAA2B,CACtC,OACG,KAAA;AACH,EAAO,OAAA,OAAA;AACT;AAEa,MAAA,iBAAA,GAAoB,CAAC,OAA0C,KAAA;AAC1E,EAAM,MAAA,OAAA,GAAU,OAAQ,CAAA,qBAAA,EAAuB,OAAO,CAAA;AAEtD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAA,MAAM,OAAQ,CAAA,KAAA;AAAA,MACZ;AAAA,KACF;AAAA;AAGF,EAAA,OAAO,yBAAyB,OAAO,CAAA;AACzC;AAEa,MAAA,yBAAA,GAA4B,yBAGvC,qBAAqB","file":"useListenerStatus.js","sourcesContent":["import {\n createContext,\n consume,\n provide,\n type ICustomElement,\n} from \"component-register\";\nimport { splitProps } from \"solid-js\";\nimport { createWithElementContext } from \"@brytdesigns/web-component-core/utils\";\n\ntype WalkableNode = Parameters<typeof provide>[2];\nexport type Status = \"default\" | \"loading\" | \"success\" | \"error\";\n\ntype ListenerStatusContextType = ReturnType<typeof createListenerStatusContext>;\n\ntype Options = {\n element: HTMLElement & ICustomElement;\n status: Status;\n};\n\nfunction createListenerStatusContext(options: Options) {\n const [privateProps, publicProps] = splitProps(options, [\"element\"]);\n\n function setStatus(status: Status) {\n const currentStatus = privateProps.element.getAttribute(\"status\");\n if (currentStatus === status) return;\n privateProps.element.setAttribute(\"status\", status);\n return status;\n }\n\n return [() => publicProps.status, setStatus] as const;\n}\n\nconst ListenerStatusContext = createContext(createListenerStatusContext);\n\nexport const provideListenerStatusContext = (options: {\n element: WalkableNode;\n status: Status;\n}): ListenerStatusContextType => {\n return provide(ListenerStatusContext, options, options.element);\n};\n\nexport const useListenerStatusContext = (\n context: ListenerStatusContextType,\n) => {\n return context;\n};\n\nexport const useListenerStatus = (element: HTMLElement & ICustomElement) => {\n const context = consume(ListenerStatusContext, element);\n\n if (!context) {\n throw console.error(\n \"CartListenerContext not found! Please ensure to wrap your custom element with cart-data-listener element.\",\n );\n }\n\n return useListenerStatusContext(context);\n};\n\nexport const withListenerElementStatus = createWithElementContext<\n typeof ListenerStatusContext,\n ListenerStatusContextType\n>(ListenerStatusContext);\n"]}
@@ -69,7 +69,7 @@ declare const API: {
69
69
  readonly url: string | null;
70
70
  readonly width: number | null;
71
71
  };
72
- readonly image: string;
72
+ readonly image: string | null;
73
73
  readonly handle: string;
74
74
  readonly requires_shipping: boolean;
75
75
  readonly product_type: string | null;
@@ -249,7 +249,7 @@ declare const API: {
249
249
  readonly url: string | null;
250
250
  readonly width: number | null;
251
251
  };
252
- readonly image: string;
252
+ readonly image: string | null;
253
253
  readonly handle: string;
254
254
  readonly requires_shipping: boolean;
255
255
  readonly product_type: string | null;
@@ -441,7 +441,7 @@ declare const API: {
441
441
  readonly url: string | null;
442
442
  readonly width: number | null;
443
443
  };
444
- readonly image: string;
444
+ readonly image: string | null;
445
445
  readonly handle: string;
446
446
  readonly requires_shipping: boolean;
447
447
  readonly product_type: string | null;
@@ -633,7 +633,7 @@ declare const API: {
633
633
  readonly url: string | null;
634
634
  readonly width: number | null;
635
635
  };
636
- readonly image: string;
636
+ readonly image: string | null;
637
637
  readonly handle: string;
638
638
  readonly requires_shipping: boolean;
639
639
  readonly product_type: string | null;
@@ -834,7 +834,7 @@ declare const API: {
834
834
  readonly url: string | null;
835
835
  readonly width: number | null;
836
836
  };
837
- readonly image: string;
837
+ readonly image: string | null;
838
838
  readonly handle: string;
839
839
  readonly requires_shipping: boolean;
840
840
  readonly product_type: string | null;
@@ -1007,7 +1007,7 @@ declare const mutation$5: import("@tanstack/solid-query").UseMutationResult<{
1007
1007
  readonly url: string | null;
1008
1008
  readonly width: number | null;
1009
1009
  };
1010
- readonly image: string;
1010
+ readonly image: string | null;
1011
1011
  readonly handle: string;
1012
1012
  readonly requires_shipping: boolean;
1013
1013
  readonly product_type: string | null;
@@ -1153,7 +1153,7 @@ declare const AjaxCart: {
1153
1153
  readonly url: string | null;
1154
1154
  readonly width: number | null;
1155
1155
  };
1156
- readonly image: string;
1156
+ readonly image: string | null;
1157
1157
  readonly handle: string;
1158
1158
  readonly requires_shipping: boolean;
1159
1159
  readonly product_type: string | null;
@@ -1349,7 +1349,7 @@ declare const AjaxCart: {
1349
1349
  readonly url: string | null;
1350
1350
  readonly width: number | null;
1351
1351
  };
1352
- readonly image: string;
1352
+ readonly image: string | null;
1353
1353
  readonly handle: string;
1354
1354
  readonly requires_shipping: boolean;
1355
1355
  readonly product_type: string | null;
@@ -1525,7 +1525,7 @@ declare const AjaxCart: {
1525
1525
  readonly url: string | null;
1526
1526
  readonly width: number | null;
1527
1527
  };
1528
- readonly image: string;
1528
+ readonly image: string | null;
1529
1529
  readonly handle: string;
1530
1530
  readonly requires_shipping: boolean;
1531
1531
  readonly product_type: string | null;
@@ -1681,7 +1681,7 @@ declare const AjaxCart: {
1681
1681
  readonly url: string | null;
1682
1682
  readonly width: number | null;
1683
1683
  };
1684
- readonly image: string;
1684
+ readonly image: string | null;
1685
1685
  readonly handle: string;
1686
1686
  readonly requires_shipping: boolean;
1687
1687
  readonly product_type: string | null;
@@ -1813,7 +1813,7 @@ declare const AjaxCart: {
1813
1813
  readonly url: string | null;
1814
1814
  readonly width: number | null;
1815
1815
  };
1816
- readonly image: string;
1816
+ readonly image: string | null;
1817
1817
  readonly handle: string;
1818
1818
  readonly requires_shipping: boolean;
1819
1819
  readonly product_type: string | null;
@@ -1957,7 +1957,7 @@ declare const AjaxCart: {
1957
1957
  readonly url: string | null;
1958
1958
  readonly width: number | null;
1959
1959
  };
1960
- readonly image: string;
1960
+ readonly image: string | null;
1961
1961
  readonly handle: string;
1962
1962
  readonly requires_shipping: boolean;
1963
1963
  readonly product_type: string | null;
@@ -2132,7 +2132,7 @@ declare const AjaxCart: {
2132
2132
  readonly url: string | null;
2133
2133
  readonly width: number | null;
2134
2134
  };
2135
- readonly image: string;
2135
+ readonly image: string | null;
2136
2136
  readonly handle: string;
2137
2137
  readonly requires_shipping: boolean;
2138
2138
  readonly product_type: string | null;
@@ -2308,7 +2308,7 @@ declare const AjaxCart: {
2308
2308
  readonly url: string | null;
2309
2309
  readonly width: number | null;
2310
2310
  };
2311
- readonly image: string;
2311
+ readonly image: string | null;
2312
2312
  readonly handle: string;
2313
2313
  readonly requires_shipping: boolean;
2314
2314
  readonly product_type: string | null;
@@ -2483,7 +2483,7 @@ declare const AjaxCart: {
2483
2483
  readonly url: string | null;
2484
2484
  readonly width: number | null;
2485
2485
  };
2486
- readonly image: string;
2486
+ readonly image: string | null;
2487
2487
  readonly handle: string;
2488
2488
  readonly requires_shipping: boolean;
2489
2489
  readonly product_type: string | null;
@@ -2661,7 +2661,7 @@ declare const AjaxCart: {
2661
2661
  readonly url: string | null;
2662
2662
  readonly width: number | null;
2663
2663
  };
2664
- readonly image: string;
2664
+ readonly image: string | null;
2665
2665
  readonly handle: string;
2666
2666
  readonly requires_shipping: boolean;
2667
2667
  readonly product_type: string | null;
@@ -2836,7 +2836,7 @@ declare const AjaxCart: {
2836
2836
  readonly url: string | null;
2837
2837
  readonly width: number | null;
2838
2838
  };
2839
- readonly image: string;
2839
+ readonly image: string | null;
2840
2840
  readonly handle: string;
2841
2841
  readonly requires_shipping: boolean;
2842
2842
  readonly product_type: string | null;
@@ -3013,7 +3013,7 @@ declare const AjaxCart: {
3013
3013
  readonly url: string | null;
3014
3014
  readonly width: number | null;
3015
3015
  };
3016
- readonly image: string;
3016
+ readonly image: string | null;
3017
3017
  readonly handle: string;
3018
3018
  readonly requires_shipping: boolean;
3019
3019
  readonly product_type: string | null;
@@ -3189,7 +3189,7 @@ declare const AjaxCart: {
3189
3189
  readonly url: string | null;
3190
3190
  readonly width: number | null;
3191
3191
  };
3192
- readonly image: string;
3192
+ readonly image: string | null;
3193
3193
  readonly handle: string;
3194
3194
  readonly requires_shipping: boolean;
3195
3195
  readonly product_type: string | null;
@@ -3364,7 +3364,7 @@ declare const AjaxCart: {
3364
3364
  readonly url: string | null;
3365
3365
  readonly width: number | null;
3366
3366
  };
3367
- readonly image: string;
3367
+ readonly image: string | null;
3368
3368
  readonly handle: string;
3369
3369
  readonly requires_shipping: boolean;
3370
3370
  readonly product_type: string | null;
@@ -3539,7 +3539,7 @@ declare const AjaxCart: {
3539
3539
  readonly url: string | null;
3540
3540
  readonly width: number | null;
3541
3541
  };
3542
- readonly image: string;
3542
+ readonly image: string | null;
3543
3543
  readonly handle: string;
3544
3544
  readonly requires_shipping: boolean;
3545
3545
  readonly product_type: string | null;
@@ -3714,7 +3714,7 @@ declare const AjaxCart: {
3714
3714
  readonly url: string | null;
3715
3715
  readonly width: number | null;
3716
3716
  };
3717
- readonly image: string;
3717
+ readonly image: string | null;
3718
3718
  readonly handle: string;
3719
3719
  readonly requires_shipping: boolean;
3720
3720
  readonly product_type: string | null;
@@ -3890,7 +3890,7 @@ declare const AjaxCart: {
3890
3890
  readonly url: string | null;
3891
3891
  readonly width: number | null;
3892
3892
  };
3893
- readonly image: string;
3893
+ readonly image: string | null;
3894
3894
  readonly handle: string;
3895
3895
  readonly requires_shipping: boolean;
3896
3896
  readonly product_type: string | null;
@@ -4065,7 +4065,7 @@ declare const AjaxCart: {
4065
4065
  readonly url: string | null;
4066
4066
  readonly width: number | null;
4067
4067
  };
4068
- readonly image: string;
4068
+ readonly image: string | null;
4069
4069
  readonly handle: string;
4070
4070
  readonly requires_shipping: boolean;
4071
4071
  readonly product_type: string | null;
@@ -4241,7 +4241,7 @@ declare const AjaxCart: {
4241
4241
  readonly url: string | null;
4242
4242
  readonly width: number | null;
4243
4243
  };
4244
- readonly image: string;
4244
+ readonly image: string | null;
4245
4245
  readonly handle: string;
4246
4246
  readonly requires_shipping: boolean;
4247
4247
  readonly product_type: string | null;
@@ -4438,7 +4438,7 @@ declare const AjaxCart: {
4438
4438
  readonly url: string | null;
4439
4439
  readonly width: number | null;
4440
4440
  };
4441
- readonly image: string;
4441
+ readonly image: string | null;
4442
4442
  readonly handle: string;
4443
4443
  readonly requires_shipping: boolean;
4444
4444
  readonly product_type: string | null;
@@ -4616,7 +4616,7 @@ declare const AjaxCart: {
4616
4616
  readonly url: string | null;
4617
4617
  readonly width: number | null;
4618
4618
  };
4619
- readonly image: string;
4619
+ readonly image: string | null;
4620
4620
  readonly handle: string;
4621
4621
  readonly requires_shipping: boolean;
4622
4622
  readonly product_type: string | null;
@@ -4792,7 +4792,7 @@ declare const AjaxCart: {
4792
4792
  readonly url: string | null;
4793
4793
  readonly width: number | null;
4794
4794
  };
4795
- readonly image: string;
4795
+ readonly image: string | null;
4796
4796
  readonly handle: string;
4797
4797
  readonly requires_shipping: boolean;
4798
4798
  readonly product_type: string | null;
@@ -4967,7 +4967,7 @@ declare const AjaxCart: {
4967
4967
  readonly url: string | null;
4968
4968
  readonly width: number | null;
4969
4969
  };
4970
- readonly image: string;
4970
+ readonly image: string | null;
4971
4971
  readonly handle: string;
4972
4972
  readonly requires_shipping: boolean;
4973
4973
  readonly product_type: string | null;
@@ -5142,7 +5142,7 @@ declare const AjaxCart: {
5142
5142
  readonly url: string | null;
5143
5143
  readonly width: number | null;
5144
5144
  };
5145
- readonly image: string;
5145
+ readonly image: string | null;
5146
5146
  readonly handle: string;
5147
5147
  readonly requires_shipping: boolean;
5148
5148
  readonly product_type: string | null;
@@ -5317,7 +5317,7 @@ declare const AjaxCart: {
5317
5317
  readonly url: string | null;
5318
5318
  readonly width: number | null;
5319
5319
  };
5320
- readonly image: string;
5320
+ readonly image: string | null;
5321
5321
  readonly handle: string;
5322
5322
  readonly requires_shipping: boolean;
5323
5323
  readonly product_type: string | null;
@@ -5473,7 +5473,7 @@ declare const AjaxCart: {
5473
5473
  readonly url: string | null;
5474
5474
  readonly width: number | null;
5475
5475
  };
5476
- readonly image: string;
5476
+ readonly image: string | null;
5477
5477
  readonly handle: string;
5478
5478
  readonly requires_shipping: boolean;
5479
5479
  readonly product_type: string | null;
@@ -5600,7 +5600,7 @@ declare const AjaxCart: {
5600
5600
  readonly url: string | null;
5601
5601
  readonly width: number | null;
5602
5602
  };
5603
- readonly image: string;
5603
+ readonly image: string | null;
5604
5604
  readonly handle: string;
5605
5605
  readonly requires_shipping: boolean;
5606
5606
  readonly product_type: string | null;
@@ -5747,7 +5747,7 @@ declare const AjaxCart: {
5747
5747
  readonly url: string | null;
5748
5748
  readonly width: number | null;
5749
5749
  };
5750
- readonly image: string;
5750
+ readonly image: string | null;
5751
5751
  readonly handle: string;
5752
5752
  readonly requires_shipping: boolean;
5753
5753
  readonly product_type: string | null;
@@ -5943,7 +5943,7 @@ declare const AjaxCart: {
5943
5943
  readonly url: string | null;
5944
5944
  readonly width: number | null;
5945
5945
  };
5946
- readonly image: string;
5946
+ readonly image: string | null;
5947
5947
  readonly handle: string;
5948
5948
  readonly requires_shipping: boolean;
5949
5949
  readonly product_type: string | null;
@@ -6119,7 +6119,7 @@ declare const AjaxCart: {
6119
6119
  readonly url: string | null;
6120
6120
  readonly width: number | null;
6121
6121
  };
6122
- readonly image: string;
6122
+ readonly image: string | null;
6123
6123
  readonly handle: string;
6124
6124
  readonly requires_shipping: boolean;
6125
6125
  readonly product_type: string | null;
@@ -6275,7 +6275,7 @@ declare const AjaxCart: {
6275
6275
  readonly url: string | null;
6276
6276
  readonly width: number | null;
6277
6277
  };
6278
- readonly image: string;
6278
+ readonly image: string | null;
6279
6279
  readonly handle: string;
6280
6280
  readonly requires_shipping: boolean;
6281
6281
  readonly product_type: string | null;
@@ -6407,7 +6407,7 @@ declare const AjaxCart: {
6407
6407
  readonly url: string | null;
6408
6408
  readonly width: number | null;
6409
6409
  };
6410
- readonly image: string;
6410
+ readonly image: string | null;
6411
6411
  readonly handle: string;
6412
6412
  readonly requires_shipping: boolean;
6413
6413
  readonly product_type: string | null;
@@ -6551,7 +6551,7 @@ declare const AjaxCart: {
6551
6551
  readonly url: string | null;
6552
6552
  readonly width: number | null;
6553
6553
  };
6554
- readonly image: string;
6554
+ readonly image: string | null;
6555
6555
  readonly handle: string;
6556
6556
  readonly requires_shipping: boolean;
6557
6557
  readonly product_type: string | null;
@@ -6726,7 +6726,7 @@ declare const AjaxCart: {
6726
6726
  readonly url: string | null;
6727
6727
  readonly width: number | null;
6728
6728
  };
6729
- readonly image: string;
6729
+ readonly image: string | null;
6730
6730
  readonly handle: string;
6731
6731
  readonly requires_shipping: boolean;
6732
6732
  readonly product_type: string | null;
@@ -6902,7 +6902,7 @@ declare const AjaxCart: {
6902
6902
  readonly url: string | null;
6903
6903
  readonly width: number | null;
6904
6904
  };
6905
- readonly image: string;
6905
+ readonly image: string | null;
6906
6906
  readonly handle: string;
6907
6907
  readonly requires_shipping: boolean;
6908
6908
  readonly product_type: string | null;
@@ -7077,7 +7077,7 @@ declare const AjaxCart: {
7077
7077
  readonly url: string | null;
7078
7078
  readonly width: number | null;
7079
7079
  };
7080
- readonly image: string;
7080
+ readonly image: string | null;
7081
7081
  readonly handle: string;
7082
7082
  readonly requires_shipping: boolean;
7083
7083
  readonly product_type: string | null;
@@ -7255,7 +7255,7 @@ declare const AjaxCart: {
7255
7255
  readonly url: string | null;
7256
7256
  readonly width: number | null;
7257
7257
  };
7258
- readonly image: string;
7258
+ readonly image: string | null;
7259
7259
  readonly handle: string;
7260
7260
  readonly requires_shipping: boolean;
7261
7261
  readonly product_type: string | null;
@@ -7430,7 +7430,7 @@ declare const AjaxCart: {
7430
7430
  readonly url: string | null;
7431
7431
  readonly width: number | null;
7432
7432
  };
7433
- readonly image: string;
7433
+ readonly image: string | null;
7434
7434
  readonly handle: string;
7435
7435
  readonly requires_shipping: boolean;
7436
7436
  readonly product_type: string | null;
@@ -7607,7 +7607,7 @@ declare const AjaxCart: {
7607
7607
  readonly url: string | null;
7608
7608
  readonly width: number | null;
7609
7609
  };
7610
- readonly image: string;
7610
+ readonly image: string | null;
7611
7611
  readonly handle: string;
7612
7612
  readonly requires_shipping: boolean;
7613
7613
  readonly product_type: string | null;
@@ -7783,7 +7783,7 @@ declare const AjaxCart: {
7783
7783
  readonly url: string | null;
7784
7784
  readonly width: number | null;
7785
7785
  };
7786
- readonly image: string;
7786
+ readonly image: string | null;
7787
7787
  readonly handle: string;
7788
7788
  readonly requires_shipping: boolean;
7789
7789
  readonly product_type: string | null;
@@ -7958,7 +7958,7 @@ declare const AjaxCart: {
7958
7958
  readonly url: string | null;
7959
7959
  readonly width: number | null;
7960
7960
  };
7961
- readonly image: string;
7961
+ readonly image: string | null;
7962
7962
  readonly handle: string;
7963
7963
  readonly requires_shipping: boolean;
7964
7964
  readonly product_type: string | null;
@@ -8133,7 +8133,7 @@ declare const AjaxCart: {
8133
8133
  readonly url: string | null;
8134
8134
  readonly width: number | null;
8135
8135
  };
8136
- readonly image: string;
8136
+ readonly image: string | null;
8137
8137
  readonly handle: string;
8138
8138
  readonly requires_shipping: boolean;
8139
8139
  readonly product_type: string | null;
@@ -8308,7 +8308,7 @@ declare const AjaxCart: {
8308
8308
  readonly url: string | null;
8309
8309
  readonly width: number | null;
8310
8310
  };
8311
- readonly image: string;
8311
+ readonly image: string | null;
8312
8312
  readonly handle: string;
8313
8313
  readonly requires_shipping: boolean;
8314
8314
  readonly product_type: string | null;
@@ -8484,7 +8484,7 @@ declare const AjaxCart: {
8484
8484
  readonly url: string | null;
8485
8485
  readonly width: number | null;
8486
8486
  };
8487
- readonly image: string;
8487
+ readonly image: string | null;
8488
8488
  readonly handle: string;
8489
8489
  readonly requires_shipping: boolean;
8490
8490
  readonly product_type: string | null;
@@ -8659,7 +8659,7 @@ declare const AjaxCart: {
8659
8659
  readonly url: string | null;
8660
8660
  readonly width: number | null;
8661
8661
  };
8662
- readonly image: string;
8662
+ readonly image: string | null;
8663
8663
  readonly handle: string;
8664
8664
  readonly requires_shipping: boolean;
8665
8665
  readonly product_type: string | null;
@@ -8835,7 +8835,7 @@ declare const AjaxCart: {
8835
8835
  readonly url: string | null;
8836
8836
  readonly width: number | null;
8837
8837
  };
8838
- readonly image: string;
8838
+ readonly image: string | null;
8839
8839
  readonly handle: string;
8840
8840
  readonly requires_shipping: boolean;
8841
8841
  readonly product_type: string | null;
@@ -9032,7 +9032,7 @@ declare const AjaxCart: {
9032
9032
  readonly url: string | null;
9033
9033
  readonly width: number | null;
9034
9034
  };
9035
- readonly image: string;
9035
+ readonly image: string | null;
9036
9036
  readonly handle: string;
9037
9037
  readonly requires_shipping: boolean;
9038
9038
  readonly product_type: string | null;
@@ -9210,7 +9210,7 @@ declare const AjaxCart: {
9210
9210
  readonly url: string | null;
9211
9211
  readonly width: number | null;
9212
9212
  };
9213
- readonly image: string;
9213
+ readonly image: string | null;
9214
9214
  readonly handle: string;
9215
9215
  readonly requires_shipping: boolean;
9216
9216
  readonly product_type: string | null;
@@ -9386,7 +9386,7 @@ declare const AjaxCart: {
9386
9386
  readonly url: string | null;
9387
9387
  readonly width: number | null;
9388
9388
  };
9389
- readonly image: string;
9389
+ readonly image: string | null;
9390
9390
  readonly handle: string;
9391
9391
  readonly requires_shipping: boolean;
9392
9392
  readonly product_type: string | null;
@@ -9561,7 +9561,7 @@ declare const AjaxCart: {
9561
9561
  readonly url: string | null;
9562
9562
  readonly width: number | null;
9563
9563
  };
9564
- readonly image: string;
9564
+ readonly image: string | null;
9565
9565
  readonly handle: string;
9566
9566
  readonly requires_shipping: boolean;
9567
9567
  readonly product_type: string | null;
@@ -9736,7 +9736,7 @@ declare const AjaxCart: {
9736
9736
  readonly url: string | null;
9737
9737
  readonly width: number | null;
9738
9738
  };
9739
- readonly image: string;
9739
+ readonly image: string | null;
9740
9740
  readonly handle: string;
9741
9741
  readonly requires_shipping: boolean;
9742
9742
  readonly product_type: string | null;
@@ -9911,7 +9911,7 @@ declare const AjaxCart: {
9911
9911
  readonly url: string | null;
9912
9912
  readonly width: number | null;
9913
9913
  };
9914
- readonly image: string;
9914
+ readonly image: string | null;
9915
9915
  readonly handle: string;
9916
9916
  readonly requires_shipping: boolean;
9917
9917
  readonly product_type: string | null;
@@ -10067,7 +10067,7 @@ declare const AjaxCart: {
10067
10067
  readonly url: string | null;
10068
10068
  readonly width: number | null;
10069
10069
  };
10070
- readonly image: string;
10070
+ readonly image: string | null;
10071
10071
  readonly handle: string;
10072
10072
  readonly requires_shipping: boolean;
10073
10073
  readonly product_type: string | null;
@@ -10194,7 +10194,7 @@ declare const AjaxCart: {
10194
10194
  readonly url: string | null;
10195
10195
  readonly width: number | null;
10196
10196
  };
10197
- readonly image: string;
10197
+ readonly image: string | null;
10198
10198
  readonly handle: string;
10199
10199
  readonly requires_shipping: boolean;
10200
10200
  readonly product_type: string | null;
@@ -10375,7 +10375,7 @@ export declare function useCartValue(options: Options$1): Accessor<string | numb
10375
10375
  readonly url: string | null;
10376
10376
  readonly width: number | null;
10377
10377
  };
10378
- readonly image: string;
10378
+ readonly image: string | null;
10379
10379
  readonly handle: string;
10380
10380
  readonly requires_shipping: boolean;
10381
10381
  readonly product_type: string | null;
@@ -10543,7 +10543,7 @@ export declare function useCartValue(options: Options$1): Accessor<string | numb
10543
10543
  readonly url: string | null;
10544
10544
  readonly width: number | null;
10545
10545
  };
10546
- readonly image: string;
10546
+ readonly image: string | null;
10547
10547
  readonly handle: string;
10548
10548
  readonly requires_shipping: boolean;
10549
10549
  readonly product_type: string | null;
@@ -10665,7 +10665,7 @@ export declare function useCartValue(options: Options$1): Accessor<string | numb
10665
10665
  readonly url: string | null;
10666
10666
  readonly width: number | null;
10667
10667
  };
10668
- readonly image: string;
10668
+ readonly image: string | null;
10669
10669
  readonly handle: string;
10670
10670
  readonly requires_shipping: boolean;
10671
10671
  readonly product_type: string | null;
@@ -10877,5 +10877,9 @@ export declare const useListenerStatus: (element: HTMLElement & ICustomElement)
10877
10877
  () => Status,
10878
10878
  (status: Status) => Status | undefined
10879
10879
  ];
10880
+ export declare const withListenerElementStatus: <D extends unknown>(selector: string | import("solid-js").Accessor<string>, dependencies: import("solid-js").Accessor<D> | undefined, cb: (context: readonly [
10881
+ () => Status,
10882
+ (status: Status) => Status | undefined
10883
+ ], dependencies: D) => void | (() => void)) => void;
10880
10884
 
10881
10885
  export {};
@@ -1,4 +1,4 @@
1
- import { customShadowlessElement, correctElementType } from '@brytdesigns/web-component-utils';
1
+ import { customShadowlessElement, correctElementType } from '@brytdesigns/web-component-core/utils';
2
2
  import { CartContext, CartDataArrayItem, CartDataArray, CartDataArrayInjection, CartData, CartDataConditions, CartDataInjection, CartDataListener, CartDataListenerStatus, CartLoadingState } from './components/index.js';
3
3
  export * from './hooks/index.js';
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAkBA,uBAAA;AAAA,EACE,WAAY,CAAA,IAAA;AAAA,EACZ,EAAE,OAAO,KAAM,EAAA;AAAA,EACf,kBAAA,CAAmB,YAAY,SAAS;AAC1C,CAAA;AAEA,uBAAA;AAAA,EACE,iBAAkB,CAAA,IAAA;AAAA;AAAA,EAElB,EAAE,WAAW,GAAI,EAAA;AAAA,EACjB,kBAAA,CAAmB,kBAAkB,SAAS;AAChD,CAAA;AAEA,uBAAA;AAAA,EACE,aAAc,CAAA,IAAA;AAAA,EACd;AAAA,IACE,MAAQ,EAAA,EAAA;AAAA,IACR,SAAW,EAAA;AAAA,GACb;AAAA,EACA,kBAAA,CAAmB,cAAc,SAAS;AAC5C,CAAA;AAEA,uBAAA;AAAA,EACE,sBAAuB,CAAA,IAAA;AAAA,EACvB;AAAA,IACE,MAAQ,EAAA,EAAA;AAAA,IACR,SAAW,EAAA,OAAA;AAAA,IACX,MAAQ,EAAA,EAAA;AAAA,IACR,cAAgB,EAAA;AAAA,GAClB;AAAA,EACA,kBAAA,CAAmB,uBAAuB,SAAS;AACrD,CAAA;AAEA,uBAAA;AAAA,EACE,QAAS,CAAA,IAAA;AAAA,EACT;AAAA,IACE,MAAQ,EAAA,EAAA;AAAA,IACR,YAAc,EAAA;AAAA,GAChB;AAAA,EACA,kBAAA,CAAmB,SAAS,SAAS;AACvC,CAAA;AAEA,uBAAA;AAAA,EACE,kBAAmB,CAAA,IAAA;AAAA,EACnB,EAAC;AAAA,EACD,kBAAA,CAAmB,mBAAmB,SAAS;AACjD,CAAA;AAEA,uBAAA;AAAA,EACE,iBAAkB,CAAA,IAAA;AAAA,EAClB;AAAA,IACE,YAAc,EAAA,YAAA;AAAA,IACd,aAAe,EAAA,iBAAA;AAAA,IACf,aAAe,EAAA,WAAA;AAAA,IACf,MAAQ,EAAA,EAAA;AAAA,IACR,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,kBAAA,CAAmB,kBAAkB,SAAS;AAChD,CAAA;AAEA,uBAAA;AAAA,EACE,gBAAiB,CAAA,IAAA;AAAA,EACjB;AAAA,IACE,MAAQ,EAAA,SAAA;AAAA,IACR,EAAI,EAAA,QAAA;AAAA,IACJ,MAAQ,EAAA,YAAA;AAAA,IACR,SAAW,EAAA,IAAA;AAAA,IACX,aAAe,EAAA,CAAA;AAAA,IACf,gBAAkB,EAAA,CAAA;AAAA,IAClB,cAAgB,EAAA;AAAA,GAClB;AAAA,EACA,kBAAA,CAAmB,iBAAiB,SAAS;AAC/C,CAAA;AAEA,uBAAA;AAAA,EACE,sBAAuB,CAAA,IAAA;AAAA,EACvB,EAAC;AAAA,EACD,kBAAA,CAAmB,uBAAuB,SAAS;AACrD,CAAA;AAEA,uBAAA;AAAA,EACE,gBAAiB,CAAA,IAAA;AAAA,EACjB,EAAE,aAAe,EAAA,EAAG,EAAA;AAAA,EACpB,kBAAA,CAAmB,iBAAiB,SAAS;AAC/C,CAAA","file":"index.js","sourcesContent":["import {\n customShadowlessElement,\n correctElementType,\n} from \"@brytdesigns/web-component-utils\";\n\nimport {\n CartContext,\n CartData,\n CartDataArray,\n CartDataArrayInjection,\n CartDataArrayItem,\n CartDataConditions,\n CartDataInjection,\n CartDataListener,\n CartDataListenerStatus,\n CartLoadingState,\n} from \"./components/index.js\";\n\ncustomShadowlessElement(\n CartContext.Name,\n { debug: false },\n correctElementType(CartContext.Component),\n);\n\ncustomShadowlessElement(\n CartDataArrayItem.Name,\n //@ts-ignore\n { itemIndex: \"0\" },\n correctElementType(CartDataArrayItem.Component),\n);\n\ncustomShadowlessElement(\n CartDataArray.Name,\n {\n format: \"\",\n arrayPath: \"items\",\n },\n correctElementType(CartDataArray.Component),\n);\n\ncustomShadowlessElement(\n CartDataArrayInjection.Name,\n {\n format: \"\",\n arrayPath: \"items\",\n target: \"\",\n wrapInnerChild: true,\n },\n correctElementType(CartDataArrayInjection.Component),\n);\n\ncustomShadowlessElement(\n CartData.Name,\n {\n format: \"\",\n propertyName: \"item_count\",\n },\n correctElementType(CartData.Component),\n);\n\ncustomShadowlessElement(\n CartDataConditions.Name,\n {},\n correctElementType(CartDataConditions.Component),\n);\n\ncustomShadowlessElement(\n CartDataInjection.Name,\n {\n propertyName: \"item_count\",\n attributeName: \"data-item-count\",\n injectionType: \"attribute\",\n target: \"\",\n format: \"\",\n },\n correctElementType(CartDataInjection.Component),\n);\n\ncustomShadowlessElement(\n CartDataListener.Name,\n {\n status: \"default\",\n on: \"submit\",\n method: \"updateItem\",\n resetForm: true,\n debounceDelay: 0,\n resetStatusDelay: 0,\n preventDefault: true,\n },\n correctElementType(CartDataListener.Component),\n);\n\ncustomShadowlessElement(\n CartDataListenerStatus.Name,\n {},\n correctElementType(CartDataListenerStatus.Component),\n);\n\ncustomShadowlessElement(\n CartLoadingState.Name,\n { ignoredStates: [] },\n correctElementType(CartLoadingState.Component),\n);\n\nexport * from \"./hooks/index.js\";\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAkBA,uBAAA;AAAA,EACE,WAAY,CAAA,IAAA;AAAA,EACZ,EAAE,OAAO,KAAM,EAAA;AAAA,EACf,kBAAA,CAAmB,YAAY,SAAS;AAC1C,CAAA;AAEA,uBAAA;AAAA,EACE,iBAAkB,CAAA,IAAA;AAAA;AAAA,EAElB,EAAE,WAAW,GAAI,EAAA;AAAA,EACjB,kBAAA,CAAmB,kBAAkB,SAAS;AAChD,CAAA;AAEA,uBAAA;AAAA,EACE,aAAc,CAAA,IAAA;AAAA,EACd;AAAA,IACE,MAAQ,EAAA,EAAA;AAAA,IACR,SAAW,EAAA;AAAA,GACb;AAAA,EACA,kBAAA,CAAmB,cAAc,SAAS;AAC5C,CAAA;AAEA,uBAAA;AAAA,EACE,sBAAuB,CAAA,IAAA;AAAA,EACvB;AAAA,IACE,MAAQ,EAAA,EAAA;AAAA,IACR,SAAW,EAAA,OAAA;AAAA,IACX,MAAQ,EAAA,EAAA;AAAA,IACR,cAAgB,EAAA;AAAA,GAClB;AAAA,EACA,kBAAA,CAAmB,uBAAuB,SAAS;AACrD,CAAA;AAEA,uBAAA;AAAA,EACE,QAAS,CAAA,IAAA;AAAA,EACT;AAAA,IACE,MAAQ,EAAA,EAAA;AAAA,IACR,YAAc,EAAA;AAAA,GAChB;AAAA,EACA,kBAAA,CAAmB,SAAS,SAAS;AACvC,CAAA;AAEA,uBAAA;AAAA,EACE,kBAAmB,CAAA,IAAA;AAAA,EACnB,EAAC;AAAA,EACD,kBAAA,CAAmB,mBAAmB,SAAS;AACjD,CAAA;AAEA,uBAAA;AAAA,EACE,iBAAkB,CAAA,IAAA;AAAA,EAClB;AAAA,IACE,YAAc,EAAA,YAAA;AAAA,IACd,aAAe,EAAA,iBAAA;AAAA,IACf,aAAe,EAAA,WAAA;AAAA,IACf,MAAQ,EAAA,EAAA;AAAA,IACR,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,kBAAA,CAAmB,kBAAkB,SAAS;AAChD,CAAA;AAEA,uBAAA;AAAA,EACE,gBAAiB,CAAA,IAAA;AAAA,EACjB;AAAA,IACE,MAAQ,EAAA,SAAA;AAAA,IACR,EAAI,EAAA,QAAA;AAAA,IACJ,MAAQ,EAAA,YAAA;AAAA,IACR,SAAW,EAAA,IAAA;AAAA,IACX,aAAe,EAAA,CAAA;AAAA,IACf,gBAAkB,EAAA,CAAA;AAAA,IAClB,cAAgB,EAAA;AAAA,GAClB;AAAA,EACA,kBAAA,CAAmB,iBAAiB,SAAS;AAC/C,CAAA;AAEA,uBAAA;AAAA,EACE,sBAAuB,CAAA,IAAA;AAAA,EACvB,EAAC;AAAA,EACD,kBAAA,CAAmB,uBAAuB,SAAS;AACrD,CAAA;AAEA,uBAAA;AAAA,EACE,gBAAiB,CAAA,IAAA;AAAA,EACjB,EAAE,aAAe,EAAA,EAAG,EAAA;AAAA,EACpB,kBAAA,CAAmB,iBAAiB,SAAS;AAC/C,CAAA","file":"index.js","sourcesContent":["import {\n customShadowlessElement,\n correctElementType,\n} from \"@brytdesigns/web-component-core/utils\";\n\nimport {\n CartContext,\n CartData,\n CartDataArray,\n CartDataArrayInjection,\n CartDataArrayItem,\n CartDataConditions,\n CartDataInjection,\n CartDataListener,\n CartDataListenerStatus,\n CartLoadingState,\n} from \"./components/index.js\";\n\ncustomShadowlessElement(\n CartContext.Name,\n { debug: false },\n correctElementType(CartContext.Component),\n);\n\ncustomShadowlessElement(\n CartDataArrayItem.Name,\n //@ts-ignore\n { itemIndex: \"0\" },\n correctElementType(CartDataArrayItem.Component),\n);\n\ncustomShadowlessElement(\n CartDataArray.Name,\n {\n format: \"\",\n arrayPath: \"items\",\n },\n correctElementType(CartDataArray.Component),\n);\n\ncustomShadowlessElement(\n CartDataArrayInjection.Name,\n {\n format: \"\",\n arrayPath: \"items\",\n target: \"\",\n wrapInnerChild: true,\n },\n correctElementType(CartDataArrayInjection.Component),\n);\n\ncustomShadowlessElement(\n CartData.Name,\n {\n format: \"\",\n propertyName: \"item_count\",\n },\n correctElementType(CartData.Component),\n);\n\ncustomShadowlessElement(\n CartDataConditions.Name,\n {},\n correctElementType(CartDataConditions.Component),\n);\n\ncustomShadowlessElement(\n CartDataInjection.Name,\n {\n propertyName: \"item_count\",\n attributeName: \"data-item-count\",\n injectionType: \"attribute\",\n target: \"\",\n format: \"\",\n },\n correctElementType(CartDataInjection.Component),\n);\n\ncustomShadowlessElement(\n CartDataListener.Name,\n {\n status: \"default\",\n on: \"submit\",\n method: \"updateItem\",\n resetForm: true,\n debounceDelay: 0,\n resetStatusDelay: 0,\n preventDefault: true,\n },\n correctElementType(CartDataListener.Component),\n);\n\ncustomShadowlessElement(\n CartDataListenerStatus.Name,\n {},\n correctElementType(CartDataListenerStatus.Component),\n);\n\ncustomShadowlessElement(\n CartLoadingState.Name,\n { ignoredStates: [] },\n correctElementType(CartLoadingState.Component),\n);\n\nexport * from \"./hooks/index.js\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brytdesigns/shopify-ajax-cart-components",
3
- "version": "1.1.31",
3
+ "version": "1.2.0",
4
4
  "description": "Headless web components for the Ajax Cart Library",
5
5
  "main": "./dist/main/index.js",
6
6
  "types": "./dist/main/index.d.ts",
@@ -19,8 +19,8 @@
19
19
  "component-register": "^0.8.7",
20
20
  "lodash.debounce": "^4.0.8",
21
21
  "solid-js": "^1.9.7",
22
- "@brytdesigns/shopify-ajax-cart": "1.0.31",
23
- "@brytdesigns/web-component-utils": "0.1.14"
22
+ "@brytdesigns/shopify-ajax-cart": "1.0.32",
23
+ "@brytdesigns/web-component-core": "1.1.0"
24
24
  },
25
25
  "author": "Bryt Designs",
26
26
  "license": "ISC",