@commercelayer/react-components 4.0.0-alpha.12 → 4.0.0-alpha.13

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.
Files changed (165) hide show
  1. package/lib/cjs/components/line_items/LineItem.d.ts +4 -11
  2. package/lib/cjs/components/line_items/LineItem.js +1 -1
  3. package/lib/cjs/components/line_items/LineItemAmount.d.ts +0 -13
  4. package/lib/cjs/components/line_items/LineItemAmount.js +1 -1
  5. package/lib/cjs/components/line_items/LineItemCode.d.ts +6 -11
  6. package/lib/cjs/components/line_items/LineItemCode.js +1 -1
  7. package/lib/cjs/components/line_items/LineItemField.d.ts +14 -0
  8. package/lib/cjs/components/line_items/LineItemField.js +1 -0
  9. package/lib/cjs/components/line_items/LineItemImage.d.ts +4 -11
  10. package/lib/cjs/components/line_items/LineItemImage.js +1 -1
  11. package/lib/cjs/components/line_items/LineItemName.d.ts +6 -11
  12. package/lib/cjs/components/line_items/LineItemName.js +1 -1
  13. package/lib/cjs/components/line_items/LineItemOption.d.ts +5 -16
  14. package/lib/cjs/components/line_items/LineItemOption.js +1 -1
  15. package/lib/cjs/components/line_items/LineItemOptions.d.ts +2 -5
  16. package/lib/cjs/components/line_items/LineItemOptions.js +1 -1
  17. package/lib/cjs/components/line_items/LineItemRemoveLink.js +1 -1
  18. package/lib/cjs/components/line_items/LineItemsContainer.d.ts +2 -14
  19. package/lib/cjs/components/line_items/LineItemsContainer.js +1 -1
  20. package/lib/cjs/components/orders/AddToCartButton.d.ts +29 -6
  21. package/lib/cjs/components/orders/AddToCartButton.js +1 -1
  22. package/lib/cjs/components/orders/OrderContainer.js +1 -1
  23. package/lib/cjs/components/prices/Price.js +1 -1
  24. package/lib/cjs/components/prices/PricesContainer.js +1 -1
  25. package/lib/cjs/components/skus/AvailabilityContainer.d.ts +3 -9
  26. package/lib/cjs/components/skus/AvailabilityContainer.js +1 -1
  27. package/lib/cjs/components/skus/AvailabilityTemplate.d.ts +23 -4
  28. package/lib/cjs/components/skus/AvailabilityTemplate.js +1 -1
  29. package/lib/cjs/components/skus/SkuField.js +1 -1
  30. package/lib/cjs/components/skus/SkusContainer.d.ts +2 -2
  31. package/lib/cjs/components/utils/AddressCardsTemplate.d.ts +3 -4
  32. package/lib/cjs/components/utils/BaseInput.d.ts +1 -1
  33. package/lib/cjs/components/utils/GenericFieldComponent.d.ts +4 -4
  34. package/lib/cjs/components/utils/GenericFieldComponent.js +1 -1
  35. package/lib/cjs/components/utils/PaymentCardsTemplate.d.ts +3 -3
  36. package/lib/cjs/context/ExternalFunctionContext.d.ts +2 -2
  37. package/lib/cjs/context/ExternalFunctionContext.js +1 -1
  38. package/lib/cjs/context/LineItemContext.d.ts +1 -1
  39. package/lib/cjs/context/OrderContext.d.ts +2 -2
  40. package/lib/cjs/index.d.ts +2 -15
  41. package/lib/cjs/index.js +1 -1
  42. package/lib/cjs/reducers/AvailabilityReducer.d.ts +4 -14
  43. package/lib/cjs/reducers/AvailabilityReducer.js +1 -1
  44. package/lib/cjs/reducers/OrderReducer.d.ts +36 -22
  45. package/lib/cjs/reducers/OrderReducer.js +1 -1
  46. package/lib/cjs/reducers/PriceReducer.d.ts +12 -19
  47. package/lib/cjs/reducers/PriceReducer.js +1 -1
  48. package/lib/cjs/reducers/SkuReducer.d.ts +3 -3
  49. package/lib/cjs/typings/errors.d.ts +4 -4
  50. package/lib/esm/components/line_items/LineItem.d.ts +4 -11
  51. package/lib/esm/components/line_items/LineItem.js +1 -1
  52. package/lib/esm/components/line_items/LineItemAmount.d.ts +0 -13
  53. package/lib/esm/components/line_items/LineItemAmount.js +1 -1
  54. package/lib/esm/components/line_items/LineItemCode.d.ts +6 -11
  55. package/lib/esm/components/line_items/LineItemCode.js +1 -1
  56. package/lib/esm/components/line_items/LineItemField.d.ts +14 -0
  57. package/lib/esm/components/line_items/LineItemField.js +1 -0
  58. package/lib/esm/components/line_items/LineItemImage.d.ts +4 -11
  59. package/lib/esm/components/line_items/LineItemImage.js +1 -1
  60. package/lib/esm/components/line_items/LineItemName.d.ts +6 -11
  61. package/lib/esm/components/line_items/LineItemName.js +1 -1
  62. package/lib/esm/components/line_items/LineItemOption.d.ts +5 -16
  63. package/lib/esm/components/line_items/LineItemOption.js +1 -1
  64. package/lib/esm/components/line_items/LineItemOptions.d.ts +2 -5
  65. package/lib/esm/components/line_items/LineItemOptions.js +1 -1
  66. package/lib/esm/components/line_items/LineItemRemoveLink.js +1 -1
  67. package/lib/esm/components/line_items/LineItemsContainer.d.ts +2 -14
  68. package/lib/esm/components/line_items/LineItemsContainer.js +1 -1
  69. package/lib/esm/components/orders/AddToCartButton.d.ts +29 -6
  70. package/lib/esm/components/orders/AddToCartButton.js +1 -1
  71. package/lib/esm/components/orders/OrderContainer.js +1 -1
  72. package/lib/esm/components/prices/Price.js +1 -1
  73. package/lib/esm/components/prices/PricesContainer.js +1 -1
  74. package/lib/esm/components/skus/AvailabilityContainer.d.ts +3 -9
  75. package/lib/esm/components/skus/AvailabilityContainer.js +1 -1
  76. package/lib/esm/components/skus/AvailabilityTemplate.d.ts +23 -4
  77. package/lib/esm/components/skus/AvailabilityTemplate.js +1 -1
  78. package/lib/esm/components/skus/SkuField.js +1 -1
  79. package/lib/esm/components/skus/SkusContainer.d.ts +2 -2
  80. package/lib/esm/components/utils/AddressCardsTemplate.d.ts +3 -4
  81. package/lib/esm/components/utils/BaseInput.d.ts +1 -1
  82. package/lib/esm/components/utils/GenericFieldComponent.d.ts +4 -4
  83. package/lib/esm/components/utils/GenericFieldComponent.js +1 -1
  84. package/lib/esm/components/utils/PaymentCardsTemplate.d.ts +3 -3
  85. package/lib/esm/context/ExternalFunctionContext.d.ts +2 -2
  86. package/lib/esm/context/ExternalFunctionContext.js +1 -1
  87. package/lib/esm/context/LineItemContext.d.ts +1 -1
  88. package/lib/esm/context/OrderContext.d.ts +2 -2
  89. package/lib/esm/index.d.ts +2 -15
  90. package/lib/esm/index.js +1 -1
  91. package/lib/esm/reducers/AvailabilityReducer.d.ts +4 -14
  92. package/lib/esm/reducers/AvailabilityReducer.js +1 -1
  93. package/lib/esm/reducers/OrderReducer.d.ts +36 -22
  94. package/lib/esm/reducers/OrderReducer.js +1 -1
  95. package/lib/esm/reducers/PriceReducer.d.ts +12 -19
  96. package/lib/esm/reducers/PriceReducer.js +1 -1
  97. package/lib/esm/reducers/SkuReducer.d.ts +3 -3
  98. package/lib/esm/typings/errors.d.ts +4 -4
  99. package/lib/tsconfig.prod.esm.tsbuildinfo +1 -1
  100. package/lib/tsconfig.prod.tsbuildinfo +1 -1
  101. package/package.json +2 -2
  102. package/lib/cjs/components/orders/ItemContainer.d.ts +0 -11
  103. package/lib/cjs/components/orders/ItemContainer.js +0 -1
  104. package/lib/cjs/components/skus/QuantitySelector.d.ts +0 -17
  105. package/lib/cjs/components/skus/QuantitySelector.js +0 -1
  106. package/lib/cjs/components/skus/SkuOption.d.ts +0 -14
  107. package/lib/cjs/components/skus/SkuOption.js +0 -1
  108. package/lib/cjs/components/skus/SkuOptionInput.d.ts +0 -15
  109. package/lib/cjs/components/skus/SkuOptionInput.js +0 -1
  110. package/lib/cjs/components/skus/SkuOptionsContainer.d.ts +0 -14
  111. package/lib/cjs/components/skus/SkuOptionsContainer.js +0 -1
  112. package/lib/cjs/components/skus/VariantSelector.d.ts +0 -29
  113. package/lib/cjs/components/skus/VariantSelector.js +0 -1
  114. package/lib/cjs/components/skus/VariantsContainer.d.ts +0 -8
  115. package/lib/cjs/components/skus/VariantsContainer.js +0 -1
  116. package/lib/cjs/components/utils/VariantTemplate.d.ts +0 -36
  117. package/lib/cjs/components/utils/VariantTemplate.js +0 -1
  118. package/lib/cjs/context/ItemContext.d.ts +0 -13
  119. package/lib/cjs/context/ItemContext.js +0 -1
  120. package/lib/cjs/context/SkuOptionChildrenContext.d.ts +0 -8
  121. package/lib/cjs/context/SkuOptionChildrenContext.js +0 -1
  122. package/lib/cjs/context/SkuOptionsContext.d.ts +0 -3
  123. package/lib/cjs/context/SkuOptionsContext.js +0 -1
  124. package/lib/cjs/context/VariantsContext.d.ts +0 -3
  125. package/lib/cjs/context/VariantsContext.js +0 -1
  126. package/lib/cjs/reducers/ItemReducer.d.ts +0 -69
  127. package/lib/cjs/reducers/ItemReducer.js +0 -1
  128. package/lib/cjs/reducers/SkuOptionsReducer.d.ts +0 -26
  129. package/lib/cjs/reducers/SkuOptionsReducer.js +0 -1
  130. package/lib/cjs/reducers/VariantReducer.d.ts +0 -64
  131. package/lib/cjs/reducers/VariantReducer.js +0 -1
  132. package/lib/cjs/utils/getCurrentItemKey.d.ts +0 -6
  133. package/lib/cjs/utils/getCurrentItemKey.js +0 -1
  134. package/lib/esm/components/orders/ItemContainer.d.ts +0 -11
  135. package/lib/esm/components/orders/ItemContainer.js +0 -1
  136. package/lib/esm/components/skus/QuantitySelector.d.ts +0 -17
  137. package/lib/esm/components/skus/QuantitySelector.js +0 -1
  138. package/lib/esm/components/skus/SkuOption.d.ts +0 -14
  139. package/lib/esm/components/skus/SkuOption.js +0 -1
  140. package/lib/esm/components/skus/SkuOptionInput.d.ts +0 -15
  141. package/lib/esm/components/skus/SkuOptionInput.js +0 -1
  142. package/lib/esm/components/skus/SkuOptionsContainer.d.ts +0 -14
  143. package/lib/esm/components/skus/SkuOptionsContainer.js +0 -1
  144. package/lib/esm/components/skus/VariantSelector.d.ts +0 -29
  145. package/lib/esm/components/skus/VariantSelector.js +0 -1
  146. package/lib/esm/components/skus/VariantsContainer.d.ts +0 -8
  147. package/lib/esm/components/skus/VariantsContainer.js +0 -1
  148. package/lib/esm/components/utils/VariantTemplate.d.ts +0 -36
  149. package/lib/esm/components/utils/VariantTemplate.js +0 -1
  150. package/lib/esm/context/ItemContext.d.ts +0 -13
  151. package/lib/esm/context/ItemContext.js +0 -1
  152. package/lib/esm/context/SkuOptionChildrenContext.d.ts +0 -8
  153. package/lib/esm/context/SkuOptionChildrenContext.js +0 -1
  154. package/lib/esm/context/SkuOptionsContext.d.ts +0 -3
  155. package/lib/esm/context/SkuOptionsContext.js +0 -1
  156. package/lib/esm/context/VariantsContext.d.ts +0 -3
  157. package/lib/esm/context/VariantsContext.js +0 -1
  158. package/lib/esm/reducers/ItemReducer.d.ts +0 -69
  159. package/lib/esm/reducers/ItemReducer.js +0 -1
  160. package/lib/esm/reducers/SkuOptionsReducer.d.ts +0 -26
  161. package/lib/esm/reducers/SkuOptionsReducer.js +0 -1
  162. package/lib/esm/reducers/VariantReducer.d.ts +0 -64
  163. package/lib/esm/reducers/VariantReducer.js +0 -1
  164. package/lib/esm/utils/getCurrentItemKey.d.ts +0 -6
  165. package/lib/esm/utils/getCurrentItemKey.js +0 -1
@@ -1,18 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import { LineItem } from '@commercelayer/sdk';
3
- export declare type LineItemCodeType = Omit<Props, 'children'> & {
3
+ import { ChildrenFunction } from '../../typings/index';
4
+ export interface TLineItemCode extends Omit<Props, 'children'> {
4
5
  lineItem: LineItem;
5
6
  skuCode: string;
6
- };
7
- declare type Props = {
8
- children?: (props: LineItemCodeType) => JSX.Element;
7
+ }
8
+ interface Props extends Omit<JSX.IntrinsicElements['p'], 'children'> {
9
+ children?: ChildrenFunction<TLineItemCode>;
9
10
  type?: 'sku_code' | 'bundle_code';
10
- } & JSX.IntrinsicElements['p'];
11
- export declare function LineItemCode({ type, children, ...p }: Props): JSX.Element;
12
- export declare namespace LineItemCode {
13
- var propTypes: {
14
- children: import("prop-types").Requireable<(...args: any[]) => any>;
15
- };
16
- var displayName: string;
17
11
  }
12
+ export declare function LineItemCode({ type, children, ...p }: Props): JSX.Element;
18
13
  export default LineItemCode;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import Parent from"../utils/Parent";import components from"../../config/components";const propTypes=components.LineItemCode.propTypes,displayName=components.LineItemCode.displayName;export function LineItemCode({type="sku_code",children,...p}){const{lineItem}=useContext(LineItemChildrenContext),labelName=lineItem?.[type],parentProps={lineItem,skuCode:labelName,...p};return children?_jsx(Parent,{...parentProps,children}):_jsx("p",{...p,children:labelName})}LineItemCode.propTypes=propTypes,LineItemCode.displayName=displayName;export default LineItemCode;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import Parent from"../utils/Parent";export function LineItemCode({type="sku_code",children,...p}){const{lineItem}=useContext(LineItemChildrenContext),labelName=lineItem?.[type],parentProps={lineItem,skuCode:labelName,...p};return children?_jsx(Parent,{...parentProps,children}):_jsx("p",{...p,children:labelName})}export default LineItemCode;
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { ConditionalElement } from '../../typings/index';
3
+ import { TGenericChildrenProps, TResources } from '../utils/GenericFieldComponent';
4
+ declare type LineItemFieldChildrenProps = TGenericChildrenProps<TResources['LineItem']>;
5
+ declare type TCondition = ConditionalElement<Exclude<TResources['LineItem'], 'resource'>>;
6
+ declare type Props = {
7
+ children?: (props: LineItemFieldChildrenProps) => JSX.Element;
8
+ } & TCondition;
9
+ /**
10
+ * @param props {@link Props}
11
+ * @returns
12
+ */
13
+ export declare function LineItemField<P extends Props>(props: P): JSX.Element;
14
+ export default LineItemField;
@@ -0,0 +1 @@
1
+ import{jsx as _jsx}from"react/jsx-runtime";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import GenericFieldComponent from"../utils/GenericFieldComponent";export function LineItemField(props){const{attribute,tagElement,children,...p}=props;return _jsx(GenericFieldComponent,{resource:"lineItem",attribute,tagElement,context:LineItemChildrenContext,...p,children})}export default LineItemField;
@@ -1,23 +1,16 @@
1
1
  /// <reference types="react" />
2
2
  import { LineItem } from '@commercelayer/sdk';
3
- import { LineItemType } from '../../typings/index';
4
- export declare type LineItemImageType = Omit<Props, 'children'> & {
3
+ import { ChildrenFunction, LineItemType } from '../../typings/index';
4
+ export interface TLineItemImage extends Omit<Props, 'children'> {
5
5
  src: string;
6
6
  lineItem: LineItem;
7
- };
7
+ }
8
8
  declare type Props = {
9
- children?: (props: LineItemImageType) => JSX.Element;
9
+ children?: ChildrenFunction<TLineItemImage>;
10
10
  width?: number;
11
11
  placeholder?: {
12
12
  [K in LineItemType]?: string;
13
13
  };
14
14
  } & Omit<JSX.IntrinsicElements['img'], 'src' | 'srcSet' | 'placeholder'>;
15
15
  export declare function LineItemImage(props: Props): JSX.Element | null;
16
- export declare namespace LineItemImage {
17
- var propTypes: {
18
- width: import("prop-types").Requireable<number>;
19
- children: import("prop-types").Requireable<(...args: any[]) => any>;
20
- };
21
- var displayName: string;
22
- }
23
16
  export default LineItemImage;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import Parent from"../utils/Parent";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import components from"../../config/components";import{defaultGiftCardImgUrl,defaultImgUrl}from"../../utils/placeholderImages";const propTypes=components.LineItemImage.propTypes,displayName=components.LineItemImage.displayName;export function LineItemImage(props){const{placeholder,children,...p}=props,{lineItem}=useContext(LineItemChildrenContext),itemType=lineItem?.item_type;let src=lineItem?.image_url;src||(placeholder?.[itemType]?src=placeholder?.[itemType]:src=itemType==="gift_cards"?defaultGiftCardImgUrl:defaultImgUrl);const parenProps={lineItem,src,placeholder,...p};return children?_jsx(Parent,{...parenProps,children}):src?_jsx("img",{alt:"",src,...p}):null}LineItemImage.propTypes=propTypes,LineItemImage.displayName=displayName;export default LineItemImage;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import{defaultGiftCardImgUrl,defaultImgUrl}from"../../utils/placeholderImages";import Parent from"../utils/Parent";export function LineItemImage(props){const{placeholder,children,...p}=props,{lineItem}=useContext(LineItemChildrenContext),itemType=lineItem?.item_type;let src=lineItem?.image_url;src||(placeholder?.[itemType]?src=placeholder?.[itemType]:src=itemType==="gift_cards"?defaultGiftCardImgUrl:defaultImgUrl);const parenProps={lineItem,src,placeholder,...p};return children?_jsx(Parent,{...parenProps,children}):src?_jsx("img",{"data-testid":`line-item-image-${lineItem?.sku_code??""}`,alt:lineItem?.name,src,...p}):null}export default LineItemImage;
@@ -1,17 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import type { LineItem } from '@commercelayer/sdk';
3
- export declare type LineItemNameType = Omit<Props, 'children'> & {
3
+ import { ChildrenFunction } from '../../typings/index';
4
+ export interface TLineItemName extends Omit<Props, 'children'> {
4
5
  label: string;
5
6
  lineItem: LineItem;
6
- };
7
- declare type Props = {
8
- children?: (props: LineItemNameType) => JSX.Element;
9
- } & JSX.IntrinsicElements['p'];
10
- export declare function LineItemName(props: Props): JSX.Element;
11
- export declare namespace LineItemName {
12
- var propTypes: {
13
- children: import("prop-types").Requireable<(...args: any[]) => any>;
14
- };
15
- var displayName: string;
16
7
  }
8
+ interface Props extends Omit<JSX.IntrinsicElements['p'], 'children'> {
9
+ children?: ChildrenFunction<TLineItemName>;
10
+ }
11
+ export declare function LineItemName(props: Props): JSX.Element;
17
12
  export default LineItemName;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import Parent from"../utils/Parent";import components from"../../config/components";const propTypes=components.LineItemName.propTypes,displayName=components.LineItemName.displayName;export function LineItemName(props){const{lineItem}=useContext(LineItemChildrenContext),label=lineItem?.name,parentProps={label,lineItem,...props};return props.children?_jsx(Parent,{...parentProps,children:props.children}):_jsx("p",{...props,children:label})}LineItemName.propTypes=propTypes,LineItemName.displayName=displayName;export default LineItemName;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import Parent from"../utils/Parent";export function LineItemName(props){const{lineItem}=useContext(LineItemChildrenContext),label=lineItem?.name,parentProps={label,lineItem,...props};return props.children?_jsx(Parent,{...parentProps,children:props.children}):_jsx("p",{"data-testid":`line-item-name-${lineItem?.sku_code??""}`,...props,children:label})}export default LineItemName;
@@ -1,30 +1,19 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { LineItemOption as LineItemOptionType } from '@commercelayer/sdk';
3
3
  import { ChildrenFunction } from '../../typings/index';
4
- declare type LineItemOptionChildrenProps = ChildrenFunction<Omit<Props, 'children'> & {
4
+ export interface TLineItemOption extends Omit<Props, 'children'> {
5
5
  lineItemOption: LineItemOptionType;
6
- }>;
7
- declare type Props = {
6
+ }
7
+ interface Props {
8
8
  id?: string;
9
9
  className?: string;
10
10
  key?: string;
11
11
  style?: CSSProperties;
12
- children?: LineItemOptionChildrenProps;
12
+ children?: ChildrenFunction<TLineItemOption>;
13
13
  name?: string;
14
14
  valueClassName?: string;
15
15
  tagElement?: keyof JSX.IntrinsicElements;
16
16
  tagContainer?: keyof JSX.IntrinsicElements;
17
- };
18
- export declare function LineItemOption(props: Props): JSX.Element;
19
- export declare namespace LineItemOption {
20
- var propTypes: {
21
- name: import("prop-types").Requireable<string>;
22
- children: import("prop-types").Requireable<(...args: any[]) => any>;
23
- valueClassName: import("prop-types").Requireable<string>;
24
- className: import("prop-types").Requireable<string>;
25
- id: import("prop-types").Requireable<string>;
26
- style: import("prop-types").Requireable<object>;
27
- };
28
- var displayName: string;
29
17
  }
18
+ export declare function LineItemOption(props: Props): JSX.Element;
30
19
  export default LineItemOption;
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useContext}from"react";import LineItemOptionChildrenContext from"../../context/LineItemOptionChildrenContext";import get from"lodash/get";import has from"lodash/has";import map from"lodash/map";import Parent from"../utils/Parent";import components from"../../config/components";import isJSON from"../../utils/isJSON";const propTypes=components.LineItemOption.propTypes,displayName=components.LineItemOption.displayName;export function LineItemOption(props){const{name,children,valueClassName,key,tagElement="li",tagContainer="ul",...p}=props,{lineItemOption,showAll}=useContext(LineItemOptionChildrenContext),parentProps={...props,lineItemOption},TagElement=tagElement,TagContainer=tagContainer,components2=showAll&&isJSON(JSON.stringify(lineItemOption?.options))?map(lineItemOption?.options,(value,key2)=>_jsxs(TagElement,{...p,children:[`${key2}:`,_jsx("span",{className:valueClassName,children:`${value}`})]},key2)):has(lineItemOption,`options.${name}`)?_jsxs(TagElement,{...p,children:[`${name}:`,_jsx("span",{className:valueClassName,...p,children:`${get(lineItemOption,`options.${name}`)}`})]},key):null;return children?_jsx(Parent,{...parentProps,children:props.children}):_jsx(TagContainer,{children:components2})}LineItemOption.propTypes=propTypes,LineItemOption.displayName=displayName;export default LineItemOption;
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{useContext}from"react";import LineItemOptionChildrenContext from"../../context/LineItemOptionChildrenContext";import get from"lodash/get";import has from"lodash/has";import map from"lodash/map";import Parent from"../utils/Parent";import isJSON from"../../utils/isJSON";export function LineItemOption(props){const{name,children,valueClassName,key,tagElement="li",tagContainer="ul",...p}=props,{lineItemOption,showAll}=useContext(LineItemOptionChildrenContext),parentProps={...props,lineItemOption},TagElement=tagElement,TagContainer=tagContainer,components=showAll&&isJSON(JSON.stringify(lineItemOption?.options))?map(lineItemOption?.options,(value,key2)=>_jsxs(TagElement,{...p,children:[`${key2}:`,_jsx("span",{className:valueClassName,children:`${value}`})]},key2)):has(lineItemOption,`options.${name}`)?_jsxs(TagElement,{...p,children:[`${name}:`,_jsx("span",{className:valueClassName,...p,children:`${get(lineItemOption,`options.${name}`)}`})]},key):null;return children?_jsx(Parent,{...parentProps,children:props.children}):_jsx(TagContainer,{children:components})}export default LineItemOption;
@@ -1,11 +1,11 @@
1
1
  import { ReactNode } from 'react';
2
- declare type Props = JSX.IntrinsicElements['div'] & {
2
+ declare type Props = {
3
3
  children: ReactNode;
4
4
  title?: string;
5
5
  showName?: boolean;
6
6
  titleTagElement?: keyof JSX.IntrinsicElements;
7
7
  titleClassName?: string;
8
- } & ({
8
+ } & Omit<JSX.IntrinsicElements['div'], 'children'> & ({
9
9
  skuOptionId: string;
10
10
  showAll?: never;
11
11
  } | {
@@ -13,7 +13,4 @@ declare type Props = JSX.IntrinsicElements['div'] & {
13
13
  showAll: true;
14
14
  });
15
15
  export declare function LineItemOptions(props: Props): JSX.Element;
16
- export declare namespace LineItemOptions {
17
- var displayName: string;
18
- }
19
16
  export default LineItemOptions;
@@ -1 +1 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import LineItemOptionChildrenContext from"../../context/LineItemOptionChildrenContext";import{isEmpty}from"lodash";import components from"../../config/components";const displayName=components.LineItemOptions.displayName;export function LineItemOptions(props){const{skuOptionId,title,children,showName=!0,showAll,className,titleTagElement="h6",titleClassName,...p}=props,{lineItem}=useContext(LineItemChildrenContext),lineItemOptions=isEmpty(lineItem)?[]:lineItem?.line_item_options||[],TitleTagElement=titleTagElement,options=lineItemOptions.filter(o=>showAll?!0:o.skuOption().id===skuOptionId).map((o,k)=>{const showTitle=showName?_jsx(TitleTagElement,{className:titleClassName,children:title||o.name}):null,valueProps={lineItemOption:o,showAll};return _jsxs("div",{className,...p,children:[showTitle,_jsx(LineItemOptionChildrenContext.Provider,{value:valueProps,children})]},k)});return _jsx(_Fragment,{children:options})}LineItemOptions.displayName=displayName;export default LineItemOptions;
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import LineItemOptionChildrenContext from"../../context/LineItemOptionChildrenContext";export function LineItemOptions(props){const{skuOptionId,title,children,showName=!0,showAll,className,titleTagElement="h6",titleClassName,...p}=props,{lineItem}=useContext(LineItemChildrenContext),lineItemOptions=lineItem!=null?lineItem?.line_item_options||[]:[],TitleTagElement=titleTagElement,options=lineItemOptions.filter(o=>showAll?!0:o.skuOption().id===skuOptionId).map((o,k)=>{const showTitle=showName?_jsx(TitleTagElement,{className:titleClassName,children:title||o.name}):null,valueProps={lineItemOption:o,showAll};return _jsxs("div",{className,...p,children:[showTitle,_jsx(LineItemOptionChildrenContext.Provider,{value:valueProps,children})]},k)});return _jsx(_Fragment,{children:options})}export default LineItemOptions;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import LineItemContext from"../../context/LineItemContext";import Parent from"../utils/Parent";export function LineItemRemoveLink(props){const{label="Remove"}=props,{lineItem}=useContext(LineItemChildrenContext),{deleteLineItem}=useContext(LineItemContext),handleRemove=e=>{e.preventDefault(),deleteLineItem&&lineItem&&deleteLineItem(lineItem.id)},parentProps={handleRemove,...props};return props.children?_jsx(Parent,{...parentProps,children:props.children}):_jsx("a",{...props,href:"#",onClick:handleRemove,children:label})}export default LineItemRemoveLink;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import LineItemContext from"../../context/LineItemContext";import Parent from"../utils/Parent";import useCustomContext from"../../utils/hooks/useCustomContext";export function LineItemRemoveLink(props){const{label="Remove",onClick}=props,{lineItem}=useCustomContext({context:LineItemChildrenContext,contextComponentName:"LineItem",currentComponentName:"LineItemRemoveLink",key:"lineItem"}),{deleteLineItem}=useContext(LineItemContext),handleRemove=e=>{e.preventDefault(),deleteLineItem!=null&&lineItem!=null&&deleteLineItem(lineItem.id),onClick?.(e)},parentProps={handleRemove,...props};return props.children?_jsx(Parent,{...parentProps,children:props.children}):_jsx("a",{"data-testid":`line-item-remove-link-${lineItem?.sku_code??""}`,...props,href:"#",onClick:handleRemove,children:label})}export default LineItemRemoveLink;
@@ -1,20 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
- declare type Props = {
2
+ interface Props {
3
3
  children: ReactNode;
4
4
  filters?: Record<string, any>;
5
5
  loader?: ReactNode;
6
- };
7
- export declare function LineItemsContainer(props: Props): JSX.Element;
8
- export declare namespace LineItemsContainer {
9
- var propTypes: {
10
- children: import("prop-types").Validator<NonNullable<ReactNode | (() => JSX.Element)>>;
11
- filters: import("prop-types").Requireable<object>;
12
- loader: import("prop-types").Requireable<NonNullable<string | import("prop-types").ReactElementLike | null | undefined>>;
13
- };
14
- var defaultProps: {
15
- filters: {};
16
- loader: string;
17
- };
18
- var displayName: string;
19
6
  }
7
+ export declare function LineItemsContainer(props: Props): JSX.Element;
20
8
  export default LineItemsContainer;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext}from"react";import lineItemReducer,{lineItemInitialState,updateLineItem,deleteLineItem}from"../../reducers/LineItemReducer";import OrderContext from"../../context/OrderContext";import LineItemContext from"../../context/LineItemContext";import CommerceLayerContext from"../../context/CommerceLayerContext";import components from"../../config/components";const propTypes=components.LineItemsContainer.propTypes,defaultProps=components.LineItemsContainer.defaultProps,displayName=components.LineItemsContainer.displayName;export function LineItemsContainer(props){const{children,loader="Loading..."}=props,{order,addResourceToInclude,include,orderId,getOrder,includeLoaded}=useContext(OrderContext),config=useContext(CommerceLayerContext),[state,dispatch]=useReducer(lineItemReducer,lineItemInitialState);useEffect(()=>{include?.includes("line_items.line_item_options.sku_option")?includeLoaded?.["line_items.line_item_options.sku_option"]||addResourceToInclude({newResourceLoaded:{"line_items.line_item_options.sku_option":!0}}):addResourceToInclude({newResource:["line_items.line_item_options.sku_option"]}),include?.includes("line_items.item")?includeLoaded?.["line_items.item"]||addResourceToInclude({newResourceLoaded:{"line_items.item":!0}}):addResourceToInclude({newResource:["line_items.item"]})},[include,includeLoaded]),useEffect(()=>{order?.line_items&&dispatch({type:"setLineItems",payload:{lineItems:order.line_items}})},[order?.line_items]);const lineItemValue={...state,loader,updateLineItem:(lineItemId,quantity=1)=>updateLineItem({lineItemId,quantity,dispatch,config,getOrder,orderId,errors:state.errors}),deleteLineItem:lineItemId=>deleteLineItem({lineItemId,dispatch,config,getOrder,orderId,errors:state.errors})};return _jsx(LineItemContext.Provider,{value:lineItemValue,children:state.loading?loader:children})}LineItemsContainer.propTypes=propTypes,LineItemsContainer.defaultProps=defaultProps,LineItemsContainer.displayName=displayName;export default LineItemsContainer;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext}from"react";import lineItemReducer,{lineItemInitialState,updateLineItem,deleteLineItem}from"../../reducers/LineItemReducer";import OrderContext from"../../context/OrderContext";import LineItemContext from"../../context/LineItemContext";import CommerceLayerContext from"../../context/CommerceLayerContext";export function LineItemsContainer(props){const{children,loader="Loading..."}=props,{order,addResourceToInclude,include,orderId,getOrder,includeLoaded}=useContext(OrderContext),config=useContext(CommerceLayerContext),[state,dispatch]=useReducer(lineItemReducer,lineItemInitialState);useEffect(()=>{include?.includes("line_items.line_item_options.sku_option")?includeLoaded?.["line_items.line_item_options.sku_option"]||addResourceToInclude({newResourceLoaded:{"line_items.line_item_options.sku_option":!0}}):addResourceToInclude({newResource:["line_items.line_item_options.sku_option"]}),include?.includes("line_items.item")?includeLoaded?.["line_items.item"]||addResourceToInclude({newResourceLoaded:{"line_items.item":!0}}):addResourceToInclude({newResource:["line_items.item"]})},[include,includeLoaded]),useEffect(()=>{order?.line_items&&dispatch({type:"setLineItems",payload:{lineItems:order.line_items}})},[order?.line_items]);const lineItemValue={...state,loader,updateLineItem:(lineItemId,quantity=1)=>updateLineItem({lineItemId,quantity,dispatch,config,getOrder,orderId,errors:state.errors}),deleteLineItem:lineItemId=>deleteLineItem({lineItemId,dispatch,config,getOrder,orderId,errors:state.errors})};return _jsx(LineItemContext.Provider,{value:lineItemValue,children:state.loading?loader:children})}export default LineItemsContainer;
@@ -1,11 +1,9 @@
1
1
  import { PropsWithoutRef } from 'react';
2
2
  import { ChildrenFunction } from '../../typings/index';
3
- import { AddToCartReturn } from '../../reducers/OrderReducer';
4
- import { VariantOption } from '../skus/VariantSelector';
5
- interface ChildrenProps extends Omit<Props, 'children'> {
3
+ import { AddToCartReturn, CustomLineItem, LineItemOption } from '../../reducers/OrderReducer';
4
+ interface TAddToCartButton extends Omit<Props, 'children'> {
6
5
  handleClick: () => AddToCartReturn;
7
6
  }
8
- export declare type AddToCartButtonType = ChildrenProps;
9
7
  declare type BuyNowMode = {
10
8
  buyNowMode: true;
11
9
  checkoutUrl?: string;
@@ -22,13 +20,38 @@ declare type THostedCart = {
22
20
  };
23
21
  declare type TButton = PropsWithoutRef<Omit<JSX.IntrinsicElements['button'], 'children'>>;
24
22
  declare type Props = {
23
+ /**
24
+ * Code of a bundle
25
+ */
25
26
  bundleCode?: string;
26
- children?: ChildrenFunction<ChildrenProps>;
27
+ children?: ChildrenFunction<TAddToCartButton>;
28
+ /**
29
+ * Disable the cart button
30
+ */
27
31
  disabled?: boolean;
32
+ /**
33
+ * Label to display
34
+ */
28
35
  label?: string | JSX.Element;
29
- lineItem?: VariantOption['lineItem'];
36
+ /**
37
+ * Line item which allow you customize the cart item
38
+ */
39
+ lineItem?: CustomLineItem;
40
+ /**
41
+ * Line item option to add to cart
42
+ */
43
+ lineItemOption?: LineItemOption;
44
+ /**
45
+ * Quantity of the item
46
+ */
30
47
  quantity?: string;
48
+ /**
49
+ * SKU code to add to cart
50
+ */
31
51
  skuCode?: string;
52
+ /**
53
+ * SKU list to add to cart
54
+ */
32
55
  skuListId?: string;
33
56
  } & TButton & BuyNowMode & THostedCart;
34
57
  export declare function AddToCartButton(props: Props): JSX.Element;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import Parent from"../utils/Parent";import OrderContext from"../../context/OrderContext";import isEmpty from"lodash/isEmpty";import has from"lodash/has";import ItemContext from"../../context/ItemContext";import getCurrentItemKey from"../../utils/getCurrentItemKey";import SkuListsContext from"../../context/SkuListsContext";import ExternalFunctionContext from"../../context/ExternalFunctionContext";import SkuChildrenContext from"../../context/SkuChildrenContext";import getCartLink from"../../utils/getCartLink";import CommerceLayerContext from"../../context/CommerceLayerContext";export function AddToCartButton(props){const{label="Add to cart",children,skuCode,bundleCode,disabled,skuListId,lineItem,buyNowMode=!1,checkoutUrl,redirectToHostedCart,hostedCartUrl,quantity,...p}=props,{accessToken,endpoint}=useContext(CommerceLayerContext),{addToCart,orderId,getOrder,setOrderErrors}=useContext(OrderContext),{url,callExternalFunction}=useContext(ExternalFunctionContext),{item,items,quantity:quantityCtx,option,prices,lineItems,lineItem:lineItemContext,skuCode:itemSkuCode}=useContext(ItemContext);if(accessToken===void 0)throw new Error("Cannot use `AddToCartButton` outside of `CommerceLayer`");if(addToCart===void 0)throw new Error("Cannot use `AddToCartButton` outside of `OrderContainer`");const{skuLists}=useContext(SkuListsContext),{sku}=useContext(SkuChildrenContext),[slug]=endpoint?endpoint.split(".commercelayer"):[""],sCode=!isEmpty(items)&&skuCode?items[skuCode]?.code:sku?.code||skuCode||getCurrentItemKey(item)||itemSkuCode,availabilityQuantity=item[sCode]?.inventory?.quantity,handleClick=async()=>{const qty=quantity!=null?parseInt(quantity):quantityCtx[sCode]??1,opt=option[sCode],customLineItem=isEmpty(lineItem||lineItemContext)?lineItems[sCode]:lineItem||lineItemContext;if(!isEmpty(skuLists)&&skuListId&&url){const slQty=quantity??quantityCtx[skuListId]??1;if(has(skuLists,skuListId)){const lineItems2=skuLists?.[skuListId]?.map(skuCode2=>({skuCode:skuCode2,quantity:slQty,_update_quantity:1}));return await callExternalFunction({url,data:{resourceType:"orders",inputs:[{id:orderId,lineItems:lineItems2}]}}).then(async res=>(getOrder&&orderId&&await getOrder(orderId),res)).catch(({response})=>(setOrderErrors&&setOrderErrors(response.data),response))}}if(url){if(url)return await callExternalFunction({url,data:{bundleCode,skuCode:sCode,skuId:item[sCode]?.id,quantity:qty,option:opt,lineItem:customLineItem,buyNowMode,checkoutUrl}}).then(async res=>(getOrder&&orderId&&await getOrder(orderId),res)).catch(({response})=>(setOrderErrors&&setOrderErrors(response.data),response))}else{const res=await addToCart({bundleCode,skuCode:sCode,skuId:item[sCode]?.id,quantity:qty,option:opt,lineItem:customLineItem,buyNowMode,checkoutUrl});if(redirectToHostedCart){const orderId2=res.orderId;hostedCartUrl&&orderId2?location.href=`https://${hostedCartUrl}/${orderId2}?accessToken=${accessToken}`:orderId2&&slug&&(location.href=getCartLink({orderId:orderId2,slug,accessToken}))}return res}},disableByCtx=!isEmpty(prices)&&!prices[sCode]||availabilityQuantity===0,autoDisabled=!isEmpty(skuLists)||skuListId?!1:(disabled||disableByCtx)??(!quantity||!sCode),parentProps={handleClick,disabled:disabled||autoDisabled,label,...props};return children?_jsx(Parent,{...parentProps,children}):_jsx("button",{...p,disabled:autoDisabled,onClick:()=>{handleClick()},children:label})}export default AddToCartButton;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import Parent from"../utils/Parent";import OrderContext from"../../context/OrderContext";import SkuListsContext from"../../context/SkuListsContext";import ExternalFunctionContext from"../../context/ExternalFunctionContext";import SkuChildrenContext from"../../context/SkuChildrenContext";import getCartLink from"../../utils/getCartLink";import CommerceLayerContext from"../../context/CommerceLayerContext";import useCustomContext from"../../utils/hooks/useCustomContext";export function AddToCartButton(props){const{label="Add to cart",children,skuCode,bundleCode,skuListId,lineItem,buyNowMode=!1,checkoutUrl,redirectToHostedCart,hostedCartUrl,quantity,lineItemOption,...p}=props,{accessToken,endpoint}=useCustomContext({context:CommerceLayerContext,contextComponentName:"CommerceLayer",currentComponentName:"AddToCartButton",key:"accessToken"}),{addToCart,orderId,getOrder,setOrderErrors}=useCustomContext({context:OrderContext,contextComponentName:"OrderContainer",currentComponentName:"AddToCartButton",key:"addToCart"}),{url,callExternalFunction}=useContext(ExternalFunctionContext),{skuLists}=useContext(SkuListsContext),{sku}=useContext(SkuChildrenContext),[slug]=endpoint?endpoint.split(".commercelayer"):[""],sCode=sku?.code??skuCode,handleClick=async()=>{const qty=quantity!=null?parseInt(quantity):1;if(skuLists!=null&&skuListId&&url&&skuListId in skuLists){const lineItems=skuLists?.[skuListId]?.map(skuCode2=>({skuCode:skuCode2,quantity:qty,_update_quantity:1}));return await callExternalFunction({url,data:{resourceType:"orders",inputs:[{id:orderId,lineItems}]}}).then(async res=>(getOrder&&orderId&&await getOrder(orderId),res)).catch(({response})=>(setOrderErrors&&setOrderErrors(response.data),response))}if(!url&&addToCart!=null){const res=await addToCart({bundleCode,skuCode:sCode,quantity:qty,lineItemOption,lineItem,buyNowMode,checkoutUrl});if(redirectToHostedCart&&accessToken!=null){const orderId2=res?.orderId;hostedCartUrl&&orderId2?location.href=`https://${hostedCartUrl}/${orderId2}?accessToken=${accessToken}`:orderId2&&slug&&(location.href=getCartLink({orderId:orderId2,slug,accessToken}))}return res}else if(url)return await callExternalFunction({url,data:{bundleCode,skuCode:sCode,quantity:qty,lineItemOption,lineItem,buyNowMode,checkoutUrl}}).then(async res=>(getOrder&&orderId&&await getOrder(orderId),res)).catch(({response})=>(setOrderErrors&&setOrderErrors(response.data),response))},parentProps={handleClick,label,...props};return children?_jsx(Parent,{...parentProps,children}):_jsx("button",{...p,onClick:()=>{handleClick()},children:label})}export default AddToCartButton;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext,useMemo,useState}from"react";import orderReducer,{createOrder,getApiOrder,setOrderErrors,setOrder,orderInitialState,updateOrder,addToCart}from"../../reducers/OrderReducer";import CommerceLayerContext from"../../context/CommerceLayerContext";import OrderContext,{defaultOrderContext}from"../../context/OrderContext";import OrderStorageContext from"../../context/OrderStorageContext";import compareObjAttribute from"../../utils/compareObjAttribute";import useCustomContext from"../../utils/hooks/useCustomContext";export function OrderContainer(props){const{orderId,children,metadata,attributes,fetchOrder}=props,[state,dispatch]=useReducer(orderReducer,orderInitialState),[lock,setLock]=useState(!1),[lockOrder,setLockOrder]=useState(!0),config=useCustomContext({context:CommerceLayerContext,contextComponentName:"CommerceLayer",currentComponentName:"OrderContainer"});if(config.accessToken==null)throw new Error("Cannot use `OrderContainer` outside of `CommerceLayer`");const{persistKey,clearWhenPlaced,getLocalOrder,setLocalOrder,deleteLocalOrder}=useContext(OrderStorageContext);useEffect(()=>{state.withoutIncludes||dispatch({type:"setLoading",payload:{loading:!0}})},[state.withoutIncludes]),useEffect(()=>{if(attributes&&state?.order&&!lock){const updateAttributes=compareObjAttribute({attributes,object:state.order});Object.keys(updateAttributes).length>0&&(updateOrder({id:state.order.id,attributes:updateAttributes,dispatch,config,include:state.include,state}),setLock(!0))}return()=>{if(attributes&&state?.order){const updateAttributes=compareObjAttribute({attributes,object:state.order});state.order&&Object.keys(updateAttributes).length===0&&setLock(!1)}}},[attributes,state?.order,lock]),useEffect(()=>{const localOrder=persistKey?getLocalOrder(persistKey):orderId,startRequest=Object.keys(state?.includeLoaded||{}).filter(key=>state?.includeLoaded?.[key]===!0),getOrder=async()=>{localOrder&&await getApiOrder({id:localOrder,dispatch,config,persistKey,clearWhenPlaced:!!(persistKey&&clearWhenPlaced),deleteLocalOrder,state})};return config.accessToken&&!state.loading?localOrder&&!state.order&&state.include?.length===startRequest.length&&!state.withoutIncludes&&!lockOrder?getOrder():state?.order&&fetchOrder?fetchOrder(state.order):state.withoutIncludes&&!state.include?.length&&startRequest.length===0&&getOrder():[config.accessToken,!state.order,state.loading,state.withoutIncludes].every(Boolean)?dispatch({type:"setLoading",payload:{loading:!1}}):[config.accessToken,!state.order,state.loading,!state.withoutIncludes].every(Boolean)&&dispatch({type:"setLoading",payload:{loading:!1}}),()=>{!state.order&&state.loading&&!state.withoutIncludes&&(state.include?.length===0&&startRequest.length>0?dispatch({type:"setLoading",payload:{loading:!1}}):state.include&&state.include?.length>0&&(dispatch({type:"setIncludesResource",payload:{include:[]}}),setLockOrder(!1)))}},[config.accessToken,state.includeLoaded,state.include,orderId,state.order,state.loading,state.withoutIncludes,lockOrder]);const orderValue=useMemo(()=>({...state,setOrder:order=>setOrder(order,dispatch),getOrder:async id=>await getApiOrder({id,dispatch,config,state}),setOrderErrors:errors=>setOrderErrors({dispatch,errors}),createOrder:async()=>await createOrder({persistKey,dispatch,config,state,orderMetadata:metadata,orderAttributes:attributes,setLocalOrder}),addToCart:async values=>await addToCart({...values,persistKey,dispatch,state,config,errors:state.errors,orderMetadata:metadata||{},orderAttributes:attributes,setLocalOrder}),saveAddressToCustomerAddressBook:args=>defaultOrderContext.saveAddressToCustomerAddressBook({...args,dispatch}),setGiftCardOrCouponCode:async({code,codeType})=>await defaultOrderContext.setGiftCardOrCouponCode({code,codeType,dispatch,order:state.order,config,include:state.include,state}),removeGiftCardOrCouponCode:async({codeType})=>await defaultOrderContext.removeGiftCardOrCouponCode({codeType,dispatch,order:state.order,config,include:state.include,state}),addResourceToInclude:args=>defaultOrderContext.addResourceToInclude({...args,dispatch,resourcesIncluded:state.include,resourceIncludedLoaded:state.includeLoaded}),updateOrder:async args=>await defaultOrderContext.updateOrder({...args,dispatch,config,include:state.include,state})}),[state,config.accessToken]);return _jsx(OrderContext.Provider,{value:orderValue,children})}export default OrderContainer;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext,useMemo,useState}from"react";import orderReducer,{createOrder,getApiOrder,setOrderErrors,setOrder,orderInitialState,updateOrder,addToCart}from"../../reducers/OrderReducer";import CommerceLayerContext from"../../context/CommerceLayerContext";import OrderContext,{defaultOrderContext}from"../../context/OrderContext";import OrderStorageContext from"../../context/OrderStorageContext";import compareObjAttribute from"../../utils/compareObjAttribute";import useCustomContext from"../../utils/hooks/useCustomContext";export function OrderContainer(props){const{orderId,children,metadata,attributes,fetchOrder}=props,[state,dispatch]=useReducer(orderReducer,orderInitialState),[lock,setLock]=useState(!1),[lockOrder,setLockOrder]=useState(!0),config=useCustomContext({context:CommerceLayerContext,contextComponentName:"CommerceLayer",currentComponentName:"OrderContainer"});if(config.accessToken==null)throw new Error("Cannot use `OrderContainer` outside of `CommerceLayer`");const{persistKey,clearWhenPlaced,getLocalOrder,setLocalOrder,deleteLocalOrder}=useContext(OrderStorageContext);useEffect(()=>{state.withoutIncludes||dispatch({type:"setLoading",payload:{loading:!0}})},[state.withoutIncludes]),useEffect(()=>{if(attributes&&state?.order&&!lock){const updateAttributes=compareObjAttribute({attributes,object:state.order});Object.keys(updateAttributes).length>0&&(updateOrder({id:state.order.id,attributes:updateAttributes,dispatch,config,include:state.include,state}),setLock(!0))}return()=>{if(attributes&&state?.order){const updateAttributes=compareObjAttribute({attributes,object:state.order});state.order&&Object.keys(updateAttributes).length===0&&setLock(!1)}}},[attributes,state?.order,lock]),useEffect(()=>{const localOrder=persistKey?getLocalOrder(persistKey):orderId,startRequest=Object.keys(state?.includeLoaded||{}).filter(key=>state?.includeLoaded?.[key]===!0),getOrder=async()=>{localOrder&&await getApiOrder({id:localOrder,dispatch,config,persistKey,clearWhenPlaced:!!(persistKey&&clearWhenPlaced),deleteLocalOrder,state})};return config.accessToken&&!state.loading?localOrder&&!state.order&&state.include?.length===startRequest.length&&!state.withoutIncludes&&!lockOrder?getOrder():state?.order&&fetchOrder?fetchOrder(state.order):state.withoutIncludes&&!state.include?.length&&startRequest.length===0&&getOrder():[config.accessToken,!state.order,state.loading,state.withoutIncludes].every(Boolean)?dispatch({type:"setLoading",payload:{loading:!1}}):[config.accessToken,!state.order,state.loading,!state.withoutIncludes].every(Boolean)&&dispatch({type:"setLoading",payload:{loading:!1}}),()=>{!state.order&&state.loading&&!state.withoutIncludes&&(state.include?.length===0&&startRequest.length>0?dispatch({type:"setLoading",payload:{loading:!1}}):state.include&&state.include?.length>0&&(dispatch({type:"setIncludesResource",payload:{include:[]}}),setLockOrder(!1)))}},[config.accessToken,state.includeLoaded,state.include,orderId,state.order,state.loading,state.withoutIncludes,lockOrder]);const orderValue=useMemo(()=>({...state,setOrder:order=>setOrder(order,dispatch),getOrder:async id=>await getApiOrder({id,dispatch,config,state}),setOrderErrors:errors=>setOrderErrors({dispatch,errors}),createOrder:async()=>await createOrder({persistKey,dispatch,config,state,orderMetadata:metadata,orderAttributes:attributes,setLocalOrder}),addToCart:async params=>await addToCart({...params,persistKey,dispatch,state,config,errors:state.errors,orderMetadata:metadata||{},orderAttributes:attributes,setLocalOrder}),saveAddressToCustomerAddressBook:args=>defaultOrderContext.saveAddressToCustomerAddressBook({...args,dispatch}),setGiftCardOrCouponCode:async({code,codeType})=>await defaultOrderContext.setGiftCardOrCouponCode({code,codeType,dispatch,order:state.order,config,include:state.include,state}),removeGiftCardOrCouponCode:async({codeType})=>await defaultOrderContext.removeGiftCardOrCouponCode({codeType,dispatch,order:state.order,config,include:state.include,state}),addResourceToInclude:args=>defaultOrderContext.addResourceToInclude({...args,dispatch,resourcesIncluded:state.include,resourceIncludedLoaded:state.includeLoaded}),updateOrder:async args=>await defaultOrderContext.updateOrder({...args,dispatch,config,include:state.include,state})}),[state,config.accessToken]);return _jsx(OrderContext.Provider,{value:orderValue,children})}export default OrderContainer;
@@ -1 +1 @@
1
- import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import Parent from"../utils/Parent";import PricesContext from"../../context/PricesContext";import{useState,useEffect,useContext}from"react";import{isEmpty,has,indexOf}from"lodash";import{getPricesComponent}from"../../utils/getPrices";import SkuChildrenContext from"../../context/SkuChildrenContext";export function Price(props){const{children,skuCode=""}=props,{prices,skuCode:pricesSkuCode,loading,skuCodes,setSkuCodes,loader}=useContext(PricesContext),{sku}=useContext(SkuChildrenContext),[skuPrices,setSkuPrices]=useState([]),sCode=pricesSkuCode||skuCode||sku?.code;useEffect(()=>(!isEmpty(prices)&&has(prices,`${sCode}`)?setSkuPrices(prices[sCode]):sCode&&indexOf(skuCodes,sCode)===-1&&(skuCodes.push(sCode),setSkuCodes&&setSkuCodes(skuCodes)),()=>{setSkuPrices([])}),[prices,sCode]);const parentProps={loading,loader,prices:skuPrices,...props},pricesComponent=isEmpty(prices)||isEmpty(skuPrices)?null:getPricesComponent(skuPrices,props);return children?_jsx(Parent,{...parentProps,children}):_jsx(_Fragment,{children:loading||isEmpty(pricesComponent)?loader:pricesComponent})}export default Price;
1
+ import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import Parent from"../utils/Parent";import PricesContext from"../../context/PricesContext";import{useState,useEffect,useContext}from"react";import{getPricesComponent}from"../../utils/getPrices";import SkuChildrenContext from"../../context/SkuChildrenContext";export function Price(props){const{children,skuCode=""}=props,{prices,skuCode:pricesSkuCode,loading,skuCodes,setSkuCodes,loader}=useContext(PricesContext),{sku}=useContext(SkuChildrenContext),[skuPrices,setSkuPrices]=useState([]),sCode=pricesSkuCode||skuCode||sku?.code;useEffect(()=>(prices!=null&&`${sCode}`in prices?setSkuPrices(prices[sCode]):sCode&&!skuCodes.includes(sCode)&&(skuCodes.push(sCode),setSkuCodes&&setSkuCodes({skuCodes})),()=>{setSkuPrices([])}),[prices,sCode]);const parentProps={loading,loader,prices:skuPrices,...props},pricesComponent=prices==null||skuPrices==null?null:getPricesComponent(skuPrices,props);return children?_jsx(Parent,{...parentProps,children}):_jsx(_Fragment,{children:loading||pricesComponent==null?loader:pricesComponent})}export default Price;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useContext,useReducer}from"react";import getPrices from"../../utils/getPrices";import isEmpty from"lodash/isEmpty";import has from"lodash/has";import indexOf from"lodash/indexOf";import CommerceLayerContext from"../../context/CommerceLayerContext";import priceReducer,{unsetPriceState,priceInitialState,getSkusPrice}from"../../reducers/PriceReducer";import PricesContext from"../../context/PricesContext";import getCurrentItemKey from"../../utils/getCurrentItemKey";import ItemContext from"../../context/ItemContext";import SkuContext from"../../context/SkuContext";export function PricesContainer(props){const{children,skuCode="",loader="Loading...",perPage=10,filters={}}=props,[state,dispatch]=useReducer(priceReducer,priceInitialState),config=useContext(CommerceLayerContext),{skuCodes}=useContext(SkuContext),{setPrices,prices,items,item:currentItem,skuCode:itemSkuCode}=useContext(ItemContext);indexOf(state.skuCodes,skuCode)===-1&&skuCode&&state.skuCodes.push(skuCode);const sCode=skuCodes&&skuCodes?.length>0?"":skuCode||getCurrentItemKey(currentItem)||itemSkuCode||"",setSkuCodes=skuCodes2=>{dispatch({type:"setSkuCodes",payload:{skuCodes:skuCodes2}})};useEffect(()=>{if(state.skuCodes.length===0&&skuCodes&&skuCodes.length>0&&setSkuCodes(skuCodes),currentItem&&has(prices,sCode)&&dispatch({type:"setPrices",payload:{prices}}),!isEmpty(items)&&isEmpty(currentItem)){const p=getPrices(items);dispatch({type:"setPrices",payload:{prices:p}})}return config.accessToken&&!has(prices,itemSkuCode||sCode)&&(state.skuCodes.length>0||itemSkuCode||sCode)&&getSkusPrice(sCode&&[itemSkuCode||sCode]||state.skuCodes,{config,dispatch,setPrices,prices,perPage,filters}),config.accessToken&&isEmpty(currentItem)&&(state.skuCodes.length>0||skuCode)&&getSkusPrice(sCode&&[sCode]||state.skuCodes,{config,dispatch,setPrices,prices,perPage,filters}),()=>{isEmpty(currentItem)&&unsetPriceState(dispatch)}},[config.accessToken,currentItem,sCode,state.skuCodes.length,itemSkuCode]);const priceValue={...state,skuCode:sCode,loader,setSkuCodes};return _jsx(PricesContext.Provider,{value:priceValue,children})}export default PricesContainer;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useContext,useReducer}from"react";import CommerceLayerContext from"../../context/CommerceLayerContext";import priceReducer,{priceInitialState,getSkusPrice,setSkuCodes}from"../../reducers/PriceReducer";import PricesContext from"../../context/PricesContext";import SkuContext from"../../context/SkuContext";export function PricesContainer(props){const{children,skuCode="",loader="Loading...",perPage=10,filters={}}=props,[state,dispatch]=useReducer(priceReducer,priceInitialState),config=useContext(CommerceLayerContext),{skuCodes}=useContext(SkuContext);!state.skuCodes.includes(skuCode)&&skuCode&&state.skuCodes.push(skuCode);const sCode=skuCodes&&skuCodes?.length>0?"":skuCode??"";useEffect(()=>{state.skuCodes.length===0&&skuCodes!=null&&skuCodes.length>0&&state.setSkuCodes!=null&&state.setSkuCodes({skuCodes,dispatch}),config.accessToken&&(state.skuCodes.length>0||sCode)&&getSkusPrice(sCode&&[sCode]||state.skuCodes,{config,dispatch,perPage,filters})},[config.accessToken,sCode,state.skuCodes.length]);const priceValue={...state,skuCode:sCode,loader,setSkuCodes:params=>setSkuCodes({...params,dispatch})};return _jsx(PricesContext.Provider,{value:priceValue,children})}export default PricesContainer;
@@ -1,14 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
- declare type Props = {
2
+ interface Props {
3
3
  children: ReactNode;
4
4
  skuCode?: string;
5
- };
6
- export declare function AvailabilityContainer(props: Props): JSX.Element;
7
- export declare namespace AvailabilityContainer {
8
- var propTypes: {
9
- children: import("prop-types").Validator<NonNullable<ReactNode | (() => JSX.Element)>>;
10
- skuCode: import("prop-types").Requireable<string>;
11
- };
12
- var displayName: string;
5
+ getQuantity?: (quantity: number) => void;
13
6
  }
7
+ export declare function AvailabilityContainer({ children, skuCode, getQuantity }: Props): JSX.Element;
14
8
  export default AvailabilityContainer;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useContext,useReducer,useEffect}from"react";import availabilityReducer,{availabilityInitialState,getAvailability,getAvailabilityByIds}from"../../reducers/AvailabilityReducer";import AvailabilityContext from"../../context/AvailabilityContext";import ItemContext from"../../context/ItemContext";import getCurrentItemKey from"../../utils/getCurrentItemKey";import components from"../../config/components";import CommerceLayerContext from"../../context/CommerceLayerContext";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import SkuChildrenContext from"../../context/SkuChildrenContext";import SkuContext from"../../context/SkuContext";import isEqual from"lodash/isEqual";const propTypes=components.AvailabilityContainer.propTypes,displayName=components.AvailabilityContainer.displayName;export function AvailabilityContainer(props){const{children,skuCode}=props,{item,skuCode:itemSkuCode,setItem}=useContext(ItemContext),{lineItem}=useContext(LineItemChildrenContext),{sku}=useContext(SkuChildrenContext),{skus}=useContext(SkuContext),config=useContext(CommerceLayerContext),[state,dispatch]=useReducer(availabilityReducer,availabilityInitialState),sCode=skuCode||getCurrentItemKey(item)||itemSkuCode||lineItem?.sku_code||sku?.code;return useEffect(()=>{if(sCode&&!skus){const available=item[sCode]?.inventory?.available,quantity=item[sCode]?.inventory?.quantity,[level]=item[sCode]?.inventory?.levels||[{quantity:null,delivery_lead_times:[]}];if(level!==void 0&&level?.delivery_lead_times?.length>0){const[delivery]=level.delivery_lead_times;dispatch({type:"setAvailability",payload:{...delivery,quantity:level?.quantity}})}else config.accessToken&&!item?.[sCode]?getAvailability({skuCode:sCode,config,dispatch,setItem,item}):available||dispatch({type:"setAvailability",payload:{quantity}})}else if(skus&&config.accessToken){const itemKeys=Object.keys(item).sort(),skuCodes=skus.map(s=>s?.code).sort();if(!isEqual(skuCodes,itemKeys)){const skusIds=skus.map(s=>s.id);getAvailabilityByIds({skusIds,config,dispatch,setItem})}}return()=>{dispatch({type:"setAvailability",payload:{}})}},[config.accessToken,item,sCode,skus]),_jsx(AvailabilityContext.Provider,{value:{...state},children})}AvailabilityContainer.propTypes=propTypes,AvailabilityContainer.displayName=displayName;export default AvailabilityContainer;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useContext,useReducer,useEffect}from"react";import availabilityReducer,{availabilityInitialState,getAvailability}from"../../reducers/AvailabilityReducer";import AvailabilityContext from"../../context/AvailabilityContext";import CommerceLayerContext from"../../context/CommerceLayerContext";import LineItemChildrenContext from"../../context/LineItemChildrenContext";import SkuChildrenContext from"../../context/SkuChildrenContext";import useCustomContext from"../../utils/hooks/useCustomContext";export function AvailabilityContainer({children,skuCode,getQuantity}){const{lineItem}=useContext(LineItemChildrenContext),{sku}=useContext(SkuChildrenContext),{accessToken,endpoint}=useCustomContext({context:CommerceLayerContext,contextComponentName:"CommerceLayer",currentComponentName:"AvailabilityContainer",key:"accessToken"}),[state,dispatch]=useReducer(availabilityReducer,availabilityInitialState),sCode=skuCode||lineItem?.sku_code||sku?.code;return useEffect(()=>(accessToken!=null&&accessToken!==""&&sCode&&getAvailability({skuCode:sCode,config:{accessToken,endpoint},dispatch}),()=>{dispatch({type:"setAvailability",payload:{}})}),[accessToken,sCode]),useEffect(()=>{getQuantity!=null&&state?.quantity!=null&&getQuantity(state?.quantity)},[state.quantity]),_jsx(AvailabilityContext.Provider,{value:{...state,parent:!0},children})}export default AvailabilityContainer;
@@ -5,11 +5,30 @@ interface AvailabilityTemplateChildrenProps extends Omit<Props, 'children'>, Del
5
5
  text: string;
6
6
  quantity: number;
7
7
  }
8
- declare type Props = {
9
- children?: ChildrenFunction<AvailabilityTemplateChildrenProps>;
8
+ declare type FormatRules = {
9
+ /**
10
+ * Set time format for shipping method
11
+ */
10
12
  timeFormat?: TimeFormat;
11
- showShippingMethodName?: boolean;
13
+ /**
14
+ * Show shipping method name
15
+ */
16
+ showShippingMethodName?: false;
17
+ /**
18
+ * Show shipping method price
19
+ */
20
+ showShippingMethodPrice?: false;
21
+ } | {
22
+ timeFormat: TimeFormat;
23
+ showShippingMethodName: true;
12
24
  showShippingMethodPrice?: boolean;
13
- } & JSX.IntrinsicElements['p'];
25
+ } | {
26
+ timeFormat: TimeFormat;
27
+ showShippingMethodName?: boolean;
28
+ showShippingMethodPrice: true;
29
+ };
30
+ declare type Props = {
31
+ children?: ChildrenFunction<AvailabilityTemplateChildrenProps>;
32
+ } & Omit<JSX.IntrinsicElements['span'], 'children'> & FormatRules;
14
33
  export declare function AvailabilityTemplate(props: Props): JSX.Element;
15
34
  export default AvailabilityTemplate;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import AvailabilityContext from"../../context/AvailabilityContext";import Parent from"../utils/Parent";import{isEmpty}from"lodash";import ItemContext from"../../context/ItemContext";import SkuChildrenContext from"../../context/SkuChildrenContext";export function AvailabilityTemplate(props){const{timeFormat,showShippingMethodName,showShippingMethodPrice,children,...p}=props;let{min,max,shipping_method:shippingMethod,quantity}=useContext(AvailabilityContext);const{item}=useContext(ItemContext),{sku}=useContext(SkuChildrenContext),text=[];if(item&&sku){const code=sku.code,currentItem=item[code];if(currentItem){const[level]=currentItem.inventory?.levels||[],[delivery]=level?.delivery_lead_times||[];delivery&&(min=delivery?.min,max=delivery?.max,shippingMethod=delivery?.shipping_method),quantity=currentItem.inventory.quantity}}const mn=!isEmpty(min)&&timeFormat?min?.[timeFormat]:"",mx=!isEmpty(max)&&timeFormat?max?.[timeFormat]:"",shippingMethodPrice=showShippingMethodPrice&&shippingMethod?.formatted_price_amount?`(${shippingMethod?.formatted_price_amount})`:"",name=showShippingMethodName&&shippingMethod?`with ${shippingMethod.name}`:"";quantity&&quantity>0?(text.push("Available"),mn&&mx&&text.push(`in ${mn} - ${mx} ${timeFormat??""} ${name} ${shippingMethodPrice}`)):quantity===0&&text.push("Out of stock");const parentProps={min,max,shipping_method:shippingMethod,quantity,text:text.join(" "),...props};return children?_jsx(Parent,{...parentProps,children}):_jsx("p",{...p,children:text.join(" ")})}export default AvailabilityTemplate;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import AvailabilityContext from"../../context/AvailabilityContext";import Parent from"../utils/Parent";import useCustomContext from"../../utils/hooks/useCustomContext";export function AvailabilityTemplate(props){const{timeFormat,showShippingMethodName,showShippingMethodPrice,children,...p}=props,{min,max,shipping_method:shippingMethod,quantity}=useCustomContext({context:AvailabilityContext,contextComponentName:"AvailabilityContainer",currentComponentName:"AvailabilityTemplate",key:"parent"}),text=[],mn=min!=null&&timeFormat!=null?min?.[timeFormat]:"",mx=max!=null&&timeFormat!=null?max?.[timeFormat]:"",shippingMethodPrice=showShippingMethodPrice&&shippingMethod?.formatted_price_amount?`(${shippingMethod?.formatted_price_amount})`:"",name=showShippingMethodName&&shippingMethod?`with ${shippingMethod.name}`:"";quantity&&quantity>0?(text.push("Available"),mn&&mx&&timeFormat&&text.push(`in ${mn} - ${mx} ${timeFormat} ${name} ${shippingMethodPrice}`)):quantity===0&&text.push("Out of stock");const parentProps={min,max,shipping_method:shippingMethod,quantity,text:text.join(" "),...props};return children?_jsx(Parent,{...parentProps,children}):_jsx("span",{...p,children:text.join(" ")})}export default AvailabilityTemplate;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import SkuChildrenContext from"../../context/SkuChildrenContext";import GenericFieldComponent from"../utils/GenericFieldComponent";export function SkuField(props){const{attribute,tagElement,children,...p}=props;return _jsx(GenericFieldComponent,{resource:"skus",attribute,tagElement,context:SkuChildrenContext,...p,children})}export default SkuField;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import SkuChildrenContext from"../../context/SkuChildrenContext";import GenericFieldComponent from"../utils/GenericFieldComponent";export function SkuField(props){const{attribute,tagElement,children,...p}=props;return _jsx(GenericFieldComponent,{resource:"sku",attribute,tagElement,context:SkuChildrenContext,...p,children})}export default SkuField;
@@ -1,6 +1,6 @@
1
1
  import type { QueryParamsList } from '@commercelayer/sdk';
2
2
  import { ReactNode } from 'react';
3
- declare type Props = {
3
+ interface Props {
4
4
  /**
5
5
  * An array of skus to display.
6
6
  */
@@ -13,6 +13,6 @@ declare type Props = {
13
13
  * An object params to query the skus resource
14
14
  */
15
15
  queryParams?: QueryParamsList;
16
- };
16
+ }
17
17
  export declare function SkusContainer<P extends Props>(props: P): JSX.Element;
18
18
  export default SkusContainer;
@@ -2,15 +2,14 @@
2
2
  import type { Address } from '@commercelayer/sdk';
3
3
  import AddressChildrenContext from '../../context/AddressChildrenContext';
4
4
  import { ChildrenFunction } from '../../typings/index';
5
- declare type ChildrenProps = Pick<Props, 'customerAddresses' | 'className'> & {
5
+ export interface TAddressCards extends Pick<Props, 'customerAddresses' | 'className'> {
6
6
  AddressProvider: typeof AddressChildrenContext.Provider;
7
- };
7
+ }
8
8
  export interface CustomerAddress extends Address {
9
9
  onClick: () => void;
10
10
  handleSelect?: () => void;
11
11
  }
12
- export declare type AddressCardsTemplateChildren = ChildrenFunction<ChildrenProps>;
13
- export declare type AddressCardsType = ChildrenProps;
12
+ export declare type AddressCardsTemplateChildren = ChildrenFunction<TAddressCards>;
14
13
  export declare type HandleSelect = (k: number, addressId: string, customerAddressId: string, disabled: boolean, address: Address) => Promise<void>;
15
14
  interface Props {
16
15
  customerAddresses: CustomerAddress[];
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { BaseInputComponentProps } from '../../typings/index';
3
3
  export declare type BaseInputProps = BaseInputComponentProps & JSX.IntrinsicElements['input'] & JSX.IntrinsicElements['textarea'];
4
- declare const _default: React.ForwardRefExoticComponent<Pick<BaseInputProps, "children" | "form" | "slot" | "style" | "title" | "pattern" | "resource" | "id" | "value" | "placeholder" | "className" | "required" | "name" | "onChange" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "min" | "max" | "type" | "list" | "step" | "disabled" | "height" | "width" | "src" | "accept" | "alt" | "autoComplete" | "autoFocus" | "capture" | "checked" | "crossOrigin" | "enterKeyHint" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "maxLength" | "minLength" | "multiple" | "readOnly" | "size" | "cols" | "dirName" | "rows" | "wrap"> & React.RefAttributes<any>>;
4
+ declare const _default: React.ForwardRefExoticComponent<Pick<BaseInputProps, "children" | "form" | "slot" | "style" | "title" | "pattern" | "resource" | "id" | "value" | "placeholder" | "className" | "required" | "name" | "onChange" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "type" | "list" | "step" | "disabled" | "height" | "width" | "max" | "src" | "min" | "accept" | "alt" | "autoComplete" | "autoFocus" | "capture" | "checked" | "crossOrigin" | "enterKeyHint" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "maxLength" | "minLength" | "multiple" | "readOnly" | "size" | "cols" | "dirName" | "rows" | "wrap"> & React.RefAttributes<any>>;
5
5
  export default _default;
@@ -11,10 +11,10 @@ export interface TResources {
11
11
  resource: 'stock_transfers';
12
12
  };
13
13
  Sku: Sku & {
14
- resource: 'skus';
14
+ resource: 'sku';
15
15
  };
16
16
  LineItem: LineItem & {
17
- resource: 'line_items';
17
+ resource: 'lineItem';
18
18
  };
19
19
  Customer: Customer & {
20
20
  resource: 'customers';
@@ -34,8 +34,8 @@ export declare type TGenericChildrenProps<E extends TResources[keyof TResources]
34
34
  };
35
35
  interface ResourceContext {
36
36
  stock_transfers: InitialStockTransferContext;
37
- skus: InitialSkuContext;
38
- line_items: InitialLineItemContext;
37
+ sku: InitialSkuContext;
38
+ lineItem: InitialLineItemContext;
39
39
  customers: InitialCustomerContext;
40
40
  parcel: InitialParcelContext;
41
41
  parcelLineItem: InitialParcelLineItemContext;
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import Parent from"./Parent";import{useContext}from"react";import{defaultImgUrl}from"../../utils/placeholderImages";export default function GenericFieldComponent(props){const{children,tagElement,attribute,context,...p}=props,resourceContext=useContext(context);let attributeValue="";const keysContext=Object.keys(resourceContext).filter(key=>key===p.resource);if(keysContext.length===1){const[keyResource]=keysContext;keyResource&&attribute&&(attributeValue=resourceContext[keyResource][attribute])}const Tag=tagElement||"span";if(Tag==="img"&&!children)return _jsx("img",{alt:"",src:attributeValue||defaultImgUrl,...p});const parentProps={attributeValue,tagElement,...p};return children?_jsx(Parent,{...parentProps,children}):_jsx(Tag,{...p,children:attributeValue})}
1
+ import{jsx as _jsx}from"react/jsx-runtime";import Parent from"./Parent";import{useContext}from"react";import{defaultImgUrl}from"../../utils/placeholderImages";export default function GenericFieldComponent(props){const{children,tagElement,attribute,context,...p}=props,resourceContext=useContext(context);let attributeValue="";const keysContext=Object.keys(resourceContext).filter(key=>key===p.resource);if(console.log("keys",Object.keys(resourceContext)),console.log("p.resource",p.resource),console.log("keyContext",keysContext),keysContext.length===1){const[keyResource]=keysContext;keyResource&&attribute&&(attributeValue=resourceContext[keyResource][attribute])}const Tag=tagElement||"span";if(Tag==="img"&&!children)return _jsx("img",{alt:"",src:attributeValue||defaultImgUrl,...p});const parentProps={attributeValue,tagElement,...p};return children?_jsx(Parent,{...parentProps,children}):_jsx(Tag,{...p,children:attributeValue})}
@@ -14,10 +14,10 @@ declare type CustomerPayment = PaymentSourceType & {
14
14
  };
15
15
  export declare type CustomerCardsTemplateChildren = ChildrenFunction<ChildrenProps>;
16
16
  export declare type CustomerCardsType = ChildrenProps;
17
- declare type Props = {
17
+ interface Props {
18
18
  customerPayments: CustomerPayment[];
19
19
  children: CustomerCardsTemplateChildren;
20
20
  paymentResource: PaymentResource;
21
- };
22
- export default function PaymentCardsTemplate({ customerPayments, children, paymentResource, }: Props): JSX.Element;
21
+ }
22
+ export default function PaymentCardsTemplate({ customerPayments, children, paymentResource }: Props): JSX.Element;
23
23
  export {};
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
- declare type Context = {
2
+ interface Context {
3
3
  url: string | null;
4
4
  callExternalFunction: CallExternalFunction;
5
- };
5
+ }
6
6
  declare type CallExternalFunction = (params: {
7
7
  url: string;
8
8
  data: Record<string, any>;
@@ -1 +1 @@
1
- import{createContext}from"react";import axios from"axios";export const callExternalFunction=async({url,data})=>axios.post(url,data);const ExternalFunctionContext=createContext({url:null,callExternalFunction});export default ExternalFunctionContext;
1
+ import{createContext}from"react";import axios from"axios";export const callExternalFunction=async({url,data})=>await axios.post(url,data);const ExternalFunctionContext=createContext({url:null,callExternalFunction});export default ExternalFunctionContext;
@@ -2,7 +2,7 @@
2
2
  import { LineItemState } from '../reducers/LineItemReducer';
3
3
  import { LineItem } from '@commercelayer/sdk';
4
4
  export interface LineItemContextValue extends LineItemState {
5
- lineItems: LineItem[] | undefined;
5
+ lineItems?: LineItem[] | undefined;
6
6
  }
7
7
  declare const LineItemContext: import("react").Context<LineItemContextValue>;
8
8
  export default LineItemContext;