@commercelayer/react-components 4.0.0-alpha.6 → 4.0.0-alpha.8

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 (86) hide show
  1. package/lib/cjs/components/addresses/Address.d.ts +4 -9
  2. package/lib/cjs/components/addresses/Address.js +1 -1
  3. package/lib/cjs/components/addresses/AddressField.d.ts +8 -12
  4. package/lib/cjs/components/addresses/AddressField.js +1 -1
  5. package/lib/cjs/components/addresses/AddressesContainer.d.ts +2 -9
  6. package/lib/cjs/components/addresses/AddressesContainer.js +1 -1
  7. package/lib/cjs/components/addresses/AddressesEmpty.d.ts +14 -0
  8. package/lib/cjs/components/addresses/AddressesEmpty.js +1 -0
  9. package/lib/cjs/components/customers/CustomerContainer.d.ts +2 -2
  10. package/lib/cjs/components/customers/CustomerContainer.js +1 -1
  11. package/lib/cjs/components/orders/OrderContainer.d.ts +4 -18
  12. package/lib/cjs/components/orders/OrderContainer.js +1 -1
  13. package/lib/cjs/components/orders/OrderList.d.ts +2 -2
  14. package/lib/cjs/components/orders/OrderList.js +1 -1
  15. package/lib/cjs/components/orders/OrderListEmpty.d.ts +1 -1
  16. package/lib/cjs/components/orders/OrderListRow.d.ts +9 -5
  17. package/lib/cjs/components/orders/OrderListRow.js +1 -1
  18. package/lib/cjs/components/parcels/ParcelField.d.ts +14 -0
  19. package/lib/cjs/components/parcels/ParcelField.js +1 -0
  20. package/lib/cjs/components/parcels/ParcelLineItem.d.ts +6 -0
  21. package/lib/cjs/components/parcels/ParcelLineItem.js +1 -0
  22. package/lib/cjs/components/parcels/ParcelLineItemField.d.ts +14 -0
  23. package/lib/cjs/components/parcels/ParcelLineItemField.js +1 -0
  24. package/lib/cjs/components/parcels/{Parcel.d.ts → Parcels.d.ts} +2 -2
  25. package/lib/cjs/components/parcels/Parcels.js +1 -0
  26. package/lib/cjs/components/shipments/ShipmentsContainer.js +1 -1
  27. package/lib/cjs/components/utils/AddressCardsTemplate.d.ts +6 -6
  28. package/lib/cjs/components/utils/AddressCardsTemplate.js +1 -1
  29. package/lib/cjs/components/utils/GenericFieldComponent.d.ts +17 -7
  30. package/lib/cjs/context/OrderContext.d.ts +3 -3
  31. package/lib/cjs/context/ParcelLineItemChildrenContext.d.ts +7 -0
  32. package/lib/cjs/context/ParcelLineItemChildrenContext.js +1 -0
  33. package/lib/cjs/index.d.ts +6 -1
  34. package/lib/cjs/index.js +1 -1
  35. package/lib/cjs/reducers/AddressReducer.d.ts +17 -23
  36. package/lib/cjs/reducers/AddressReducer.js +1 -1
  37. package/lib/cjs/reducers/CustomerReducer.d.ts +2 -2
  38. package/lib/cjs/reducers/CustomerReducer.js +1 -1
  39. package/lib/cjs/reducers/OrderReducer.d.ts +4 -7
  40. package/lib/cjs/reducers/OrderReducer.js +1 -1
  41. package/lib/cjs/utils/addressesManager.d.ts +5 -4
  42. package/lib/esm/components/addresses/Address.d.ts +4 -9
  43. package/lib/esm/components/addresses/Address.js +1 -1
  44. package/lib/esm/components/addresses/AddressField.d.ts +8 -12
  45. package/lib/esm/components/addresses/AddressField.js +1 -1
  46. package/lib/esm/components/addresses/AddressesContainer.d.ts +2 -9
  47. package/lib/esm/components/addresses/AddressesContainer.js +1 -1
  48. package/lib/esm/components/addresses/AddressesEmpty.d.ts +14 -0
  49. package/lib/esm/components/addresses/AddressesEmpty.js +1 -0
  50. package/lib/esm/components/customers/CustomerContainer.d.ts +2 -2
  51. package/lib/esm/components/customers/CustomerContainer.js +1 -1
  52. package/lib/esm/components/orders/OrderContainer.d.ts +4 -18
  53. package/lib/esm/components/orders/OrderContainer.js +1 -1
  54. package/lib/esm/components/orders/OrderList.d.ts +2 -2
  55. package/lib/esm/components/orders/OrderList.js +1 -1
  56. package/lib/esm/components/orders/OrderListEmpty.d.ts +1 -1
  57. package/lib/esm/components/orders/OrderListRow.d.ts +9 -5
  58. package/lib/esm/components/orders/OrderListRow.js +1 -1
  59. package/lib/esm/components/parcels/ParcelField.d.ts +14 -0
  60. package/lib/esm/components/parcels/ParcelField.js +1 -0
  61. package/lib/esm/components/parcels/ParcelLineItem.d.ts +6 -0
  62. package/lib/esm/components/parcels/ParcelLineItem.js +1 -0
  63. package/lib/esm/components/parcels/ParcelLineItemField.d.ts +14 -0
  64. package/lib/esm/components/parcels/ParcelLineItemField.js +1 -0
  65. package/lib/esm/components/parcels/{Parcel.d.ts → Parcels.d.ts} +2 -2
  66. package/lib/esm/components/parcels/{Parcel.js → Parcels.js} +1 -1
  67. package/lib/esm/components/shipments/ShipmentsContainer.js +1 -1
  68. package/lib/esm/components/utils/AddressCardsTemplate.d.ts +6 -6
  69. package/lib/esm/components/utils/AddressCardsTemplate.js +1 -1
  70. package/lib/esm/components/utils/GenericFieldComponent.d.ts +17 -7
  71. package/lib/esm/context/OrderContext.d.ts +3 -3
  72. package/lib/esm/context/ParcelLineItemChildrenContext.d.ts +7 -0
  73. package/lib/esm/context/ParcelLineItemChildrenContext.js +1 -0
  74. package/lib/esm/index.d.ts +6 -1
  75. package/lib/esm/index.js +1 -1
  76. package/lib/esm/reducers/AddressReducer.d.ts +17 -23
  77. package/lib/esm/reducers/AddressReducer.js +1 -1
  78. package/lib/esm/reducers/CustomerReducer.d.ts +2 -2
  79. package/lib/esm/reducers/CustomerReducer.js +1 -1
  80. package/lib/esm/reducers/OrderReducer.d.ts +4 -7
  81. package/lib/esm/reducers/OrderReducer.js +1 -1
  82. package/lib/esm/utils/addressesManager.d.ts +5 -4
  83. package/lib/tsconfig.prod.esm.tsbuildinfo +1 -1
  84. package/lib/tsconfig.prod.tsbuildinfo +1 -1
  85. package/package.json +35 -28
  86. package/lib/cjs/components/parcels/Parcel.js +0 -1
@@ -1,18 +1,13 @@
1
- import { ReactNode } from 'react';
1
+ /// <reference types="react" />
2
2
  import type { Address as AddressType } from '@commercelayer/sdk';
3
3
  import { AddressCardsTemplateChildren } from '../utils/AddressCardsTemplate';
4
- declare type Props = {
5
- children: ReactNode | AddressCardsTemplateChildren;
4
+ interface Props extends Omit<JSX.IntrinsicElements['div'], 'children' | 'onSelect'> {
5
+ children: JSX.Element[] | JSX.Element | AddressCardsTemplateChildren;
6
6
  selectedClassName?: string;
7
7
  disabledClassName?: string;
8
8
  onSelect?: (address: AddressType) => void;
9
9
  addresses?: AddressType[];
10
10
  deselect?: boolean;
11
- } & JSX.IntrinsicElements['div'];
12
- export declare function Address(props: Props): JSX.Element;
13
- export declare namespace Address {
14
- var propTypes: {
15
- children: import("prop-types").Validator<NonNullable<ReactNode | (() => JSX.Element)>>;
16
- };
17
11
  }
12
+ export declare function Address(props: Props): JSX.Element;
18
13
  export default Address;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Address=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),AddressChildrenContext_1=tslib_1.__importDefault(require("../../context/AddressChildrenContext")),components_1=tslib_1.__importDefault(require("../../config/components")),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext")),BillingAddressContext_1=tslib_1.__importDefault(require("../../context/BillingAddressContext")),ShippingAddressContext_1=tslib_1.__importDefault(require("../../context/ShippingAddressContext")),isEmpty_1=tslib_1.__importDefault(require("lodash/isEmpty")),AddressContext_1=tslib_1.__importDefault(require("../../context/AddressContext")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),AddressCardsTemplate_1=tslib_1.__importDefault(require("../utils/AddressCardsTemplate")),propTypes=components_1.default.Address.propTypes;function Address(props){const{children,className,selectedClassName="",disabledClassName="",onSelect,addresses=[],deselect=!1,...p}=props,{addresses:addressesContext}=(0,react_1.useContext)(CustomerContext_1.default),{setBillingAddress,billingCustomerAddressId}=(0,react_1.useContext)(BillingAddressContext_1.default),{setShippingAddress,shippingCustomerAddressId}=(0,react_1.useContext)(ShippingAddressContext_1.default),{shipToDifferentAddress,billingAddressId,shippingAddressId}=(0,react_1.useContext)(AddressContext_1.default),{order}=(0,react_1.useContext)(OrderContext_1.default),[selected,setSelected]=(0,react_1.useState)(null),items=(0,isEmpty_1.default)(addresses)?addressesContext&&addressesContext||[]:addresses;(0,react_1.useEffect)(()=>{items&&!deselect&&items.map((address,k)=>{billingCustomerAddressId&&address.reference===billingCustomerAddressId&&selected===null&&setSelected(k),!billingAddressId&&k===selected&&setBillingAddress&&setBillingAddress(address.id,{customerAddressId:address.reference}),shippingCustomerAddressId&&address.reference===shippingCustomerAddressId&&selected===null&&setSelected(k),!shippingAddressId&&k===selected&&setShippingAddress&&setShippingAddress(address.id,{customerAddressId:address.reference})}),deselect&&(async()=>(setBillingAddress&&await setBillingAddress(""),setShippingAddress&&await setShippingAddress("")))()},[deselect,billingCustomerAddressId,shippingCustomerAddressId,addressesContext,shipToDifferentAddress]);const handleSelect=async(k,addressId,customerAddressId,disabled,address)=>{!disabled&&setSelected(k),setBillingAddress&&await setBillingAddress(addressId,{customerAddressId}),!disabled&&setShippingAddress&&await setShippingAddress(addressId,{customerAddressId}),onSelect&&onSelect(address)},countryLock=order?.shipping_country_code_lock,components=typeof children=="function"?[]:items.filter(address=>!(setShippingAddress&&countryLock&&countryLock!==address.country_code)).map((address,k)=>{const addressProps={address},disabled=setShippingAddress&&countryLock&&countryLock!==address.country_code||!1,addressSelectedClass=selected===k?`${className||""} ${deselect?"":selectedClassName}`:className,customerAddressId=address?.reference||"",finalClassName=disabled?`${className||""} ${disabledClassName}`:addressSelectedClass;return(0,jsx_runtime_1.jsx)(AddressChildrenContext_1.default.Provider,{value:addressProps,children:(0,jsx_runtime_1.jsx)("div",{className:finalClassName,onClick:()=>void handleSelect(k,address.id,customerAddressId,disabled,address),"data-disabled":disabled,...p,children})},k)}),parentProps={customerAddresses:items,selected,handleSelect,countryLock,...props};return typeof children=="function"?(0,jsx_runtime_1.jsx)(AddressCardsTemplate_1.default,{...parentProps,children}):(0,jsx_runtime_1.jsx)(react_1.Fragment,{children:components})}exports.Address=Address,Address.propTypes=propTypes,exports.default=Address;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Address=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),AddressChildrenContext_1=tslib_1.__importDefault(require("../../context/AddressChildrenContext")),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext")),BillingAddressContext_1=tslib_1.__importDefault(require("../../context/BillingAddressContext")),ShippingAddressContext_1=tslib_1.__importDefault(require("../../context/ShippingAddressContext")),isEmpty_1=tslib_1.__importDefault(require("lodash/isEmpty")),AddressContext_1=tslib_1.__importDefault(require("../../context/AddressContext")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),AddressCardsTemplate_1=tslib_1.__importDefault(require("../utils/AddressCardsTemplate"));function Address(props){const{children,className,selectedClassName="",disabledClassName="",onSelect,addresses=[],deselect=!1,...p}=props,{addresses:addressesContext}=(0,react_1.useContext)(CustomerContext_1.default),{setBillingAddress,billingCustomerAddressId}=(0,react_1.useContext)(BillingAddressContext_1.default),{setShippingAddress,shippingCustomerAddressId}=(0,react_1.useContext)(ShippingAddressContext_1.default),{shipToDifferentAddress,billingAddressId,shippingAddressId}=(0,react_1.useContext)(AddressContext_1.default),{order}=(0,react_1.useContext)(OrderContext_1.default),[selected,setSelected]=(0,react_1.useState)(null),items=(0,isEmpty_1.default)(addresses)?addressesContext&&addressesContext||[]:addresses;(0,react_1.useEffect)(()=>{items&&!deselect&&items.forEach((address,k)=>{billingCustomerAddressId&&address.reference===billingCustomerAddressId&&selected===null&&setSelected(k),!billingAddressId&&k===selected&&setBillingAddress&&setBillingAddress(address.id,{customerAddressId:address.reference}),shippingCustomerAddressId&&address.reference===shippingCustomerAddressId&&selected===null&&setSelected(k),!shippingAddressId&&k===selected&&setShippingAddress&&setShippingAddress(address.id,{customerAddressId:address.reference})}),deselect&&(async()=>(setBillingAddress&&await setBillingAddress(""),setShippingAddress&&await setShippingAddress("")))()},[deselect,billingCustomerAddressId,shippingCustomerAddressId,addressesContext,shipToDifferentAddress]);const handleSelect=async(k,addressId,customerAddressId,disabled,address)=>{!disabled&&setSelected(k),setBillingAddress&&await setBillingAddress(addressId,{customerAddressId}),!disabled&&setShippingAddress&&await setShippingAddress(addressId,{customerAddressId}),onSelect&&onSelect(address)},countryLock=order?.shipping_country_code_lock,components=typeof children=="function"?[]:items.filter(address=>!(setShippingAddress&&countryLock&&countryLock!==address.country_code)).map((address,k)=>{const addressProps={address},disabled=setShippingAddress&&countryLock&&countryLock!==address.country_code||!1,addressSelectedClass=selected===k?`${className||""} ${deselect?"":selectedClassName}`:className,customerAddressId=address?.reference||"",finalClassName=disabled?`${className||""} ${disabledClassName}`:addressSelectedClass;return(0,jsx_runtime_1.jsx)(AddressChildrenContext_1.default.Provider,{value:addressProps,children:(0,jsx_runtime_1.jsx)("div",{className:finalClassName,onClick:()=>{handleSelect(k,address.id,customerAddressId,disabled,address)},"data-disabled":disabled,...p,children})},k)}),parentProps={customerAddresses:items,selected,handleSelect,countryLock,...props};return typeof children=="function"?(0,jsx_runtime_1.jsx)(AddressCardsTemplate_1.default,{...parentProps,children}):(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:components})}exports.Address=Address,exports.default=Address;
@@ -1,43 +1,39 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { AddressFieldView } from '../../reducers/AddressReducer';
3
3
  import type { Address } from '@commercelayer/sdk';
4
- declare type AddressFieldChildrenProps = Omit<Props, 'children' | 'name'> & {
4
+ import { ChildrenFunction } from '../../typings/index';
5
+ interface ChildrenProps extends Omit<Props, 'children' | 'name'> {
5
6
  address: Address;
6
- };
7
+ }
8
+ declare type ChildrenProp = ChildrenFunction<ChildrenProps>;
7
9
  declare type Props = {
8
10
  type?: 'field';
9
11
  label?: never;
10
12
  onClick?: never;
11
- children?: (props: AddressFieldChildrenProps) => JSX.Element;
13
+ children?: ChildrenProp;
12
14
  name: AddressFieldView;
13
15
  className?: string;
14
16
  } | {
15
17
  type?: 'edit';
16
18
  label: string | ReactNode;
17
19
  onClick: (address: Address) => void;
18
- children?: (props: AddressFieldChildrenProps) => JSX.Element;
20
+ children?: ChildrenProp;
19
21
  name?: AddressFieldView;
20
22
  className?: string;
21
23
  } | {
22
24
  type?: 'delete';
23
25
  label: string;
24
26
  onClick: () => void;
25
- children?: (props: AddressFieldChildrenProps) => JSX.Element;
27
+ children?: ChildrenProp;
26
28
  name?: AddressFieldView;
27
29
  className?: string;
28
30
  } | {
29
31
  type?: 'edit' | 'field' | 'delete';
30
32
  label?: never;
31
33
  onClick?: never;
32
- children: (props: AddressFieldChildrenProps) => JSX.Element;
34
+ children: ChildrenProp;
33
35
  name?: never;
34
36
  className?: string;
35
37
  };
36
38
  export declare function AddressField(props: Props): JSX.Element;
37
- export declare namespace AddressField {
38
- var propTypes: {
39
- children: import("prop-types").Requireable<(...args: any[]) => any>;
40
- };
41
- var displayName: string;
42
- }
43
39
  export default AddressField;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AddressField=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),AddressChildrenContext_1=tslib_1.__importDefault(require("../../context/AddressChildrenContext")),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),components_1=tslib_1.__importDefault(require("../../config/components")),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext")),propTypes=components_1.default.AddressField.propTypes,displayName=components_1.default.AddressField.displayName;function AddressField(props){const{name,type="field",label,onClick,...p}=props,{address}=(0,react_1.useContext)(AddressChildrenContext_1.default),text=name&&address?address?.[name]:"",{deleteCustomerAddress}=(0,react_1.useContext)(CustomerContext_1.default),handleClick=e=>{e.stopPropagation(),e.preventDefault(),type==="delete"&&deleteCustomerAddress&&address?.reference&&deleteCustomerAddress({customerAddressId:address?.reference}),address&&onClick&&onClick(address)},parentProps={address,...props};return props.children?(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children:props.children}):type==="field"?(0,jsx_runtime_1.jsx)("p",{...p,name,children:text}):(0,jsx_runtime_1.jsx)("a",{...p,onClick:handleClick,children:label})}exports.AddressField=AddressField,AddressField.propTypes=propTypes,AddressField.displayName=displayName,exports.default=AddressField;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AddressField=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),AddressChildrenContext_1=tslib_1.__importDefault(require("../../context/AddressChildrenContext")),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext"));function AddressField(props){const{name,type="field",label,onClick,...p}=props,{address}=(0,react_1.useContext)(AddressChildrenContext_1.default),text=name&&address?address?.[name]:"",{deleteCustomerAddress}=(0,react_1.useContext)(CustomerContext_1.default),handleClick=e=>{e.stopPropagation(),e.preventDefault(),type==="delete"&&deleteCustomerAddress&&address?.reference&&deleteCustomerAddress({customerAddressId:address?.reference}),address&&onClick&&onClick(address)},parentProps={address,...props};return props.children?(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children:props.children}):type==="field"?(0,jsx_runtime_1.jsx)("p",{"data-testid":`address-field-${name??""}`,...p,name,children:text}):(0,jsx_runtime_1.jsx)("a",{"data-testid":`address-field-${name??""}`,...p,onClick:handleClick,children:label})}exports.AddressField=AddressField,exports.default=AddressField;
@@ -1,15 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
- declare type Props = {
2
+ interface Props {
3
3
  children: ReactNode;
4
4
  shipToDifferentAddress?: boolean;
5
5
  isBusiness?: boolean;
6
- };
7
- export declare function AddressesContainer(props: Props): JSX.Element;
8
- export declare namespace AddressesContainer {
9
- var propTypes: {
10
- children: import("prop-types").Validator<NonNullable<ReactNode | (() => JSX.Element)>>;
11
- shipToDifferentAddress: import("prop-types").Requireable<boolean>;
12
- };
13
- var displayName: string;
14
6
  }
7
+ export declare function AddressesContainer(props: Props): JSX.Element;
15
8
  export default AddressesContainer;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AddressesContainer=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),AddressContext_1=tslib_1.__importStar(require("../../context/AddressContext")),react_1=require("react"),AddressReducer_1=tslib_1.__importStar(require("../../reducers/AddressReducer")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),AddressReducer_2=require("../../reducers/AddressReducer"),components_1=tslib_1.__importDefault(require("../../config/components")),propTypes=components_1.default.AddressesContainer.propTypes,displayName=components_1.default.AddressesContainer.displayName;function AddressesContainer(props){const{children,shipToDifferentAddress=!1,isBusiness}=props,[state,dispatch]=(0,react_1.useReducer)(AddressReducer_1.default,AddressReducer_1.addressInitialState),{order,orderId,updateOrder}=(0,react_1.useContext)(OrderContext_1.default),config=(0,react_1.useContext)(CommerceLayerContext_1.default);(0,react_1.useEffect)(()=>(dispatch({type:"setShipToDifferentAddress",payload:{shipToDifferentAddress,isBusiness}}),()=>{dispatch({type:"cleanup",payload:{}})}),[shipToDifferentAddress,isBusiness]);const contextValue={...state,setAddressErrors:(errors,resource)=>(0,AddressReducer_1.setAddressErrors)({errors,resource,dispatch,currentErrors:state.errors}),setAddress:params=>AddressContext_1.defaultAddressContext.setAddress({...params,dispatch}),saveAddresses:async()=>await(0,AddressReducer_2.saveAddresses)({config,dispatch,updateOrder,order,orderId,state}),setCloneAddress:(id,resource)=>(0,AddressReducer_1.setCloneAddress)(id,resource,dispatch)};return(0,jsx_runtime_1.jsx)(AddressContext_1.default.Provider,{value:contextValue,children})}exports.AddressesContainer=AddressesContainer,AddressesContainer.propTypes=propTypes,AddressesContainer.displayName=displayName,exports.default=AddressesContainer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AddressesContainer=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),AddressContext_1=tslib_1.__importStar(require("../../context/AddressContext")),react_1=require("react"),AddressReducer_1=tslib_1.__importStar(require("../../reducers/AddressReducer")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext"));function AddressesContainer(props){const{children,shipToDifferentAddress=!1,isBusiness}=props,[state,dispatch]=(0,react_1.useReducer)(AddressReducer_1.default,AddressReducer_1.addressInitialState),{order,orderId,updateOrder}=(0,react_1.useContext)(OrderContext_1.default),config=(0,react_1.useContext)(CommerceLayerContext_1.default);(0,react_1.useEffect)(()=>(dispatch({type:"setShipToDifferentAddress",payload:{shipToDifferentAddress,isBusiness}}),()=>{dispatch({type:"cleanup",payload:{}})}),[shipToDifferentAddress,isBusiness]);const contextValue={...state,setAddressErrors:(errors,resource)=>(0,AddressReducer_1.setAddressErrors)({errors,resource,dispatch,currentErrors:state.errors}),setAddress:params=>AddressContext_1.defaultAddressContext.setAddress({...params,dispatch}),saveAddresses:async()=>await(0,AddressReducer_1.saveAddresses)({config,dispatch,updateOrder,order,orderId,state}),setCloneAddress:(id,resource)=>(0,AddressReducer_1.setCloneAddress)(id,resource,dispatch)};return(0,jsx_runtime_1.jsx)(AddressContext_1.default.Provider,{value:contextValue,children})}exports.AddressesContainer=AddressesContainer,exports.default=AddressesContainer;
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { ChildrenFunction } from '../../typings/index';
3
+ interface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {
4
+ /**
5
+ * Function allow you to customize the component
6
+ */
7
+ children?: ChildrenFunction<Omit<Props, 'children'>>;
8
+ /**
9
+ * Label to show. Default: 'No addresses available.'
10
+ */
11
+ emptyText?: string;
12
+ }
13
+ export declare function AddressesEmpty(props: Props): JSX.Element | null;
14
+ export default AddressesEmpty;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AddressesEmpty=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext")),react_1=require("react");function AddressesEmpty(props){const{children,emptyText="No addresses available.",...p}=props,{addresses}=(0,react_1.useContext)(CustomerContext_1.default),parentProps={emptyText,...p};return addresses==null||addresses.length>0?null:children!==void 0?(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children}):(0,jsx_runtime_1.jsx)("span",{"data-testid":"addresses-empty",...p,children:emptyText})}exports.AddressesEmpty=AddressesEmpty,exports.default=AddressesEmpty;
@@ -1,10 +1,10 @@
1
1
  import { ReactNode } from 'react';
2
- declare type Props = {
2
+ interface Props {
3
3
  children: ReactNode;
4
4
  /**
5
5
  * Customer type
6
6
  */
7
7
  isGuest?: boolean;
8
- };
8
+ }
9
9
  export declare function CustomerContainer(props: Props): JSX.Element;
10
10
  export default CustomerContainer;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CustomerContainer=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),CustomerReducer_1=tslib_1.__importStar(require("../../reducers/CustomerReducer")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),CustomerReducer_2=require("../../reducers/CustomerReducer"),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext"));function CustomerContainer(props){const{children,isGuest=!1}=props,[state,dispatch]=(0,react_1.useReducer)(CustomerReducer_1.default,CustomerReducer_1.customerInitialState),{order,addResourceToInclude,include,updateOrder,includeLoaded}=(0,react_1.useContext)(OrderContext_1.default),config=(0,react_1.useContext)(CommerceLayerContext_1.default);(0,react_1.useEffect)(()=>{!include?.includes("available_customer_payment_sources.payment_source")&&!isGuest?addResourceToInclude({newResource:"available_customer_payment_sources.payment_source"}):!includeLoaded?.["available_customer_payment_sources.payment_source"]&&!isGuest&&addResourceToInclude({newResourceLoaded:{"available_customer_payment_sources.payment_source":!0}})},[include,includeLoaded]),(0,react_1.useEffect)(()=>{config.accessToken&&state.addresses?.length===0&&!isGuest&&(0,CustomerReducer_1.getCustomerAddresses)({config,dispatch}),order?.available_customer_payment_sources&&!isGuest&&(0,CustomerReducer_1.getCustomerPaymentSources)({dispatch,order}),config.accessToken&&!order&&!include&&!includeLoaded&&(0,CustomerReducer_1.getCustomerOrders)({config,dispatch})},[config.accessToken,order,isGuest]);const contextValue={isGuest,...state,saveCustomerUser:async customerEmail=>{await(0,CustomerReducer_2.saveCustomerUser)({config,customerEmail,dispatch,updateOrder,order})},setCustomerErrors:errors=>(0,CustomerReducer_1.setCustomerErrors)(errors,dispatch),setCustomerEmail:customerEmail=>(0,CustomerReducer_1.setCustomerEmail)(customerEmail,dispatch),getCustomerPaymentSources:()=>(0,CustomerReducer_1.getCustomerPaymentSources)({dispatch,order}),deleteCustomerAddress:({customerAddressId})=>(0,CustomerReducer_1.deleteCustomerAddress)({customerAddressId,dispatch,config,addresses:state.addresses}),createCustomerAddress:address=>(0,CustomerReducer_1.createCustomerAddress)({address,config,dispatch,state})};return(0,jsx_runtime_1.jsx)(CustomerContext_1.default.Provider,{value:contextValue,children})}exports.CustomerContainer=CustomerContainer,exports.default=CustomerContainer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CustomerContainer=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),CustomerReducer_1=tslib_1.__importStar(require("../../reducers/CustomerReducer")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext"));function CustomerContainer(props){const{children,isGuest=!1}=props,[state,dispatch]=(0,react_1.useReducer)(CustomerReducer_1.default,CustomerReducer_1.customerInitialState),{order,addResourceToInclude,include,updateOrder,includeLoaded}=(0,react_1.useContext)(OrderContext_1.default),config=(0,react_1.useContext)(CommerceLayerContext_1.default);(0,react_1.useEffect)(()=>{!include?.includes("available_customer_payment_sources.payment_source")&&!isGuest?addResourceToInclude({newResource:"available_customer_payment_sources.payment_source"}):!includeLoaded?.["available_customer_payment_sources.payment_source"]&&!isGuest&&addResourceToInclude({newResourceLoaded:{"available_customer_payment_sources.payment_source":!0}})},[include,includeLoaded]),(0,react_1.useEffect)(()=>{config.accessToken&&state.addresses==null&&!isGuest&&(0,CustomerReducer_1.getCustomerAddresses)({config,dispatch}),order?.available_customer_payment_sources&&!isGuest&&(0,CustomerReducer_1.getCustomerPaymentSources)({dispatch,order}),config.accessToken&&!order&&!include&&!includeLoaded&&(0,CustomerReducer_1.getCustomerOrders)({config,dispatch})},[config.accessToken,order,isGuest]);const contextValue={isGuest,...state,saveCustomerUser:async customerEmail=>{await(0,CustomerReducer_1.saveCustomerUser)({config,customerEmail,dispatch,updateOrder,order})},setCustomerErrors:errors=>(0,CustomerReducer_1.setCustomerErrors)(errors,dispatch),setCustomerEmail:customerEmail=>(0,CustomerReducer_1.setCustomerEmail)(customerEmail,dispatch),getCustomerPaymentSources:()=>(0,CustomerReducer_1.getCustomerPaymentSources)({dispatch,order}),deleteCustomerAddress:async({customerAddressId})=>await(0,CustomerReducer_1.deleteCustomerAddress)({customerAddressId,dispatch,config,addresses:state.addresses}),createCustomerAddress:async address=>await(0,CustomerReducer_1.createCustomerAddress)({address,config,dispatch,state})};return(0,jsx_runtime_1.jsx)(CustomerContext_1.default.Provider,{value:contextValue,children})}exports.CustomerContainer=CustomerContainer,exports.default=CustomerContainer;
@@ -1,26 +1,12 @@
1
- import { ReactNode } from 'react';
1
+ /// <reference types="react" />
2
2
  import { BaseMetadataObject } from '../../typings/index';
3
3
  import type { OrderCreate, Order } from '@commercelayer/sdk';
4
- declare type Props = {
5
- children: ReactNode;
4
+ interface Props {
5
+ children: JSX.Element[] | JSX.Element;
6
6
  metadata?: BaseMetadataObject;
7
7
  attributes?: OrderCreate;
8
8
  orderId?: string;
9
9
  fetchOrder?: (order: Order) => void;
10
- };
11
- export declare function OrderContainer(props: Props): JSX.Element;
12
- export declare namespace OrderContainer {
13
- var propTypes: {
14
- children: import("prop-types").Validator<NonNullable<ReactNode | (() => JSX.Element)>>;
15
- orderId: import("prop-types").Requireable<string>;
16
- metadata: import("prop-types").Requireable<{
17
- [x: string]: string | null | undefined;
18
- }>;
19
- attributes: import("prop-types").Requireable<object>;
20
- };
21
- var defaultProps: {
22
- metadata: {};
23
- };
24
- var displayName: string;
25
10
  }
11
+ export declare function OrderContainer(props: Props): JSX.Element;
26
12
  export default OrderContainer;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OrderContainer=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),OrderReducer_1=tslib_1.__importStar(require("../../reducers/OrderReducer")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),OrderContext_1=tslib_1.__importStar(require("../../context/OrderContext")),components_1=tslib_1.__importDefault(require("../../config/components")),OrderStorageContext_1=tslib_1.__importDefault(require("../../context/OrderStorageContext")),compareObjAttribute_1=tslib_1.__importDefault(require("../../utils/compareObjAttribute")),propTypes=components_1.default.OrderContainer.propTypes,defaultProps=components_1.default.OrderContainer.defaultProps,displayName=components_1.default.OrderContainer.displayName;function OrderContainer(props){const{orderId,children,metadata,attributes,fetchOrder}=props,[state,dispatch]=(0,react_1.useReducer)(OrderReducer_1.default,OrderReducer_1.orderInitialState),[lock,setLock]=(0,react_1.useState)(!1),[lockOrder,setLockOrder]=(0,react_1.useState)(!0),config=(0,react_1.useContext)(CommerceLayerContext_1.default),{persistKey,clearWhenPlaced,getLocalOrder,setLocalOrder,deleteLocalOrder}=(0,react_1.useContext)(OrderStorageContext_1.default);(0,react_1.useEffect)(()=>{state.withoutIncludes||dispatch({type:"setLoading",payload:{loading:!0}})},[state.withoutIncludes]),(0,react_1.useEffect)(()=>{if(attributes&&state?.order&&!lock){const updateAttributes=(0,compareObjAttribute_1.default)({attributes,object:state.order});Object.keys(updateAttributes).length>0&&((0,OrderReducer_1.updateOrder)({id:state.order.id,attributes:updateAttributes,dispatch,config,include:state.include,state}),setLock(!0))}return()=>{if(attributes&&state?.order){const updateAttributes=(0,compareObjAttribute_1.default)({attributes,object:state.order});state.order&&Object.keys(updateAttributes).length===0&&setLock(!1)}}},[attributes,state?.order,lock]),(0,react_1.useEffect)(()=>{const localOrder=persistKey?getLocalOrder(persistKey):orderId,startRequest=Object.keys(state?.includeLoaded||{}).filter(key=>state?.includeLoaded?.[key]===!0),getOrder=async()=>{const removeOrderPlaced=!!(persistKey&&clearWhenPlaced);localOrder&&await(0,OrderReducer_1.getApiOrder)({id:localOrder,dispatch,config,persistKey,clearWhenPlaced:removeOrderPlaced,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=(0,react_1.useMemo)(()=>({...state,setOrder:order=>(0,OrderReducer_1.setOrder)(order,dispatch),getOrder:id=>(0,OrderReducer_1.getApiOrder)({id,dispatch,config,state}),setOrderErrors:errors=>(0,OrderReducer_1.setOrderErrors)({dispatch,errors}),createOrder:()=>(0,OrderReducer_1.createOrder)({persistKey,dispatch,config,state,orderMetadata:metadata,orderAttributes:attributes,setLocalOrder}),addToCart:values=>OrderContext_1.defaultOrderContext.addToCart({...values,persistKey,dispatch,state,config,errors:state.errors,orderMetadata:metadata||{},orderAttributes:attributes,setLocalOrder}),saveAddressToCustomerAddressBook:args=>OrderContext_1.defaultOrderContext.saveAddressToCustomerAddressBook({...args,dispatch}),setGiftCardOrCouponCode:({code,codeType})=>OrderContext_1.defaultOrderContext.setGiftCardOrCouponCode({code,codeType,dispatch,order:state.order,config,include:state.include,state}),removeGiftCardOrCouponCode:({codeType})=>OrderContext_1.defaultOrderContext.removeGiftCardOrCouponCode({codeType,dispatch,order:state.order,config,include:state.include,state}),addResourceToInclude:args=>OrderContext_1.defaultOrderContext.addResourceToInclude({...args,dispatch,resourcesIncluded:state.include,resourceIncludedLoaded:state.includeLoaded}),updateOrder:async args=>await OrderContext_1.defaultOrderContext.updateOrder({...args,dispatch,config,include:state.include,state})}),[state,config.accessToken]);return(0,jsx_runtime_1.jsx)(OrderContext_1.default.Provider,{value:orderValue,children})}exports.OrderContainer=OrderContainer,OrderContainer.propTypes=propTypes,OrderContainer.defaultProps=defaultProps,OrderContainer.displayName=displayName,exports.default=OrderContainer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OrderContainer=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),react_1=require("react"),OrderReducer_1=tslib_1.__importStar(require("../../reducers/OrderReducer")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),OrderContext_1=tslib_1.__importStar(require("../../context/OrderContext")),OrderStorageContext_1=tslib_1.__importDefault(require("../../context/OrderStorageContext")),compareObjAttribute_1=tslib_1.__importDefault(require("../../utils/compareObjAttribute"));function OrderContainer(props){const{orderId,children,metadata,attributes,fetchOrder}=props,[state,dispatch]=(0,react_1.useReducer)(OrderReducer_1.default,OrderReducer_1.orderInitialState),[lock,setLock]=(0,react_1.useState)(!1),[lockOrder,setLockOrder]=(0,react_1.useState)(!0),config=(0,react_1.useContext)(CommerceLayerContext_1.default),{persistKey,clearWhenPlaced,getLocalOrder,setLocalOrder,deleteLocalOrder}=(0,react_1.useContext)(OrderStorageContext_1.default);(0,react_1.useEffect)(()=>{state.withoutIncludes||dispatch({type:"setLoading",payload:{loading:!0}})},[state.withoutIncludes]),(0,react_1.useEffect)(()=>{if(attributes&&state?.order&&!lock){const updateAttributes=(0,compareObjAttribute_1.default)({attributes,object:state.order});Object.keys(updateAttributes).length>0&&((0,OrderReducer_1.updateOrder)({id:state.order.id,attributes:updateAttributes,dispatch,config,include:state.include,state}),setLock(!0))}return()=>{if(attributes&&state?.order){const updateAttributes=(0,compareObjAttribute_1.default)({attributes,object:state.order});state.order&&Object.keys(updateAttributes).length===0&&setLock(!1)}}},[attributes,state?.order,lock]),(0,react_1.useEffect)(()=>{const localOrder=persistKey?getLocalOrder(persistKey):orderId,startRequest=Object.keys(state?.includeLoaded||{}).filter(key=>state?.includeLoaded?.[key]===!0),getOrder=async()=>{const removeOrderPlaced=!!(persistKey&&clearWhenPlaced);localOrder&&await(0,OrderReducer_1.getApiOrder)({id:localOrder,dispatch,config,persistKey,clearWhenPlaced:removeOrderPlaced,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=(0,react_1.useMemo)(()=>({...state,setOrder:order=>(0,OrderReducer_1.setOrder)(order,dispatch),getOrder:async id=>await(0,OrderReducer_1.getApiOrder)({id,dispatch,config,state}),setOrderErrors:errors=>(0,OrderReducer_1.setOrderErrors)({dispatch,errors}),createOrder:async()=>await(0,OrderReducer_1.createOrder)({persistKey,dispatch,config,state,orderMetadata:metadata,orderAttributes:attributes,setLocalOrder}),addToCart:async values=>await OrderContext_1.defaultOrderContext.addToCart({...values,persistKey,dispatch,state,config,errors:state.errors,orderMetadata:metadata||{},orderAttributes:attributes,setLocalOrder}),saveAddressToCustomerAddressBook:args=>OrderContext_1.defaultOrderContext.saveAddressToCustomerAddressBook({...args,dispatch}),setGiftCardOrCouponCode:async({code,codeType})=>await OrderContext_1.defaultOrderContext.setGiftCardOrCouponCode({code,codeType,dispatch,order:state.order,config,include:state.include,state}),removeGiftCardOrCouponCode:async({codeType})=>await OrderContext_1.defaultOrderContext.removeGiftCardOrCouponCode({codeType,dispatch,order:state.order,config,include:state.include,state}),addResourceToInclude:args=>OrderContext_1.defaultOrderContext.addResourceToInclude({...args,dispatch,resourcesIncluded:state.include,resourceIncludedLoaded:state.includeLoaded}),updateOrder:async args=>await OrderContext_1.defaultOrderContext.updateOrder({...args,dispatch,config,include:state.include,state})}),[state,config.accessToken]);return(0,jsx_runtime_1.jsx)(OrderContext_1.default.Provider,{value:orderValue,children})}exports.OrderContainer=OrderContainer,exports.default=OrderContainer;
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ /// <reference types="react" />
2
2
  import { InitialOrderListContext } from '../../context/OrderListChildrenContext';
3
3
  import { Column } from 'react-table';
4
4
  import type { Order } from '@commercelayer/sdk';
@@ -9,7 +9,7 @@ export declare type OrderListColumn = Column & {
9
9
  titleClassName?: string;
10
10
  };
11
11
  declare type Props = {
12
- children: ReactNode;
12
+ children: JSX.Element[] | JSX.Element;
13
13
  /**
14
14
  * Columns to show
15
15
  */
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OrderList=void 0;const tslib_1=require("tslib"),react_1=require("react"),jsx_runtime_1=require("react/jsx-runtime"),react_2=require("react"),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext")),OrderListChildrenContext_1=tslib_1.__importDefault(require("../../context/OrderListChildrenContext")),react_table_1=require("react-table"),react_window_1=require("react-window"),scrollbarWidth_1=tslib_1.__importDefault(require("../../utils/scrollbarWidth")),icons_1=require("../../utils/icons");function OrderList({children,columns,loadingElement,showActions=!1,actionsComponent,actionsContainerClassName,infiniteScroll,windowOptions,theadClassName,rowTrClassName,...p}){const[loading,setLoading]=(0,react_2.useState)(!0),{orders}=(0,react_2.useContext)(CustomerContext_1.default),data=(0,react_2.useMemo)(()=>orders??[],[orders]),cols=(0,react_2.useMemo)(()=>columns,[columns]),tablePlugins=[react_table_1.useSortBy];infiniteScroll&&tablePlugins.push(react_table_1.useBlockLayout);const defaultColumn=(0,react_2.useMemo)(()=>({width:windowOptions?.column||150}),[windowOptions?.column]),table=(0,react_table_1.useTable)({data,columns:cols,...infiniteScroll&&{defaultColumn}},...tablePlugins),TableHtmlElement=infiniteScroll?"div":"table",TheadHtmlElement=infiniteScroll?"div":"thead",TbodyHtmlElement=infiniteScroll?"div":"tbody",ThHtmlElement=infiniteScroll?"div":"th",TrHtmlElement=infiniteScroll?"div":"tr";(0,react_2.useEffect)(()=>(orders!==void 0&&setLoading(!1),()=>{setLoading(!0)}),[orders]);const scrollBarSize=infiniteScroll?(0,react_2.useMemo)(()=>(0,scrollbarWidth_1.default)(),[]):0,LoadingComponent=loadingElement||(0,jsx_runtime_1.jsx)("div",{children:"Loading..."}),headerComponent=table.headerGroups.map((headerGroup,i)=>{const columns2=headerGroup.headers.map((column,k)=>(0,react_1.createElement)(ThHtmlElement,{className:column?.className,...column.getHeaderProps(column?.getSortByToggleProps&&column?.getSortByToggleProps()),key:k},(0,jsx_runtime_1.jsxs)("span",{"data-testid":`thead-${k}`,className:column?.titleClassName,children:[column.render("Header"),column.isSorted?column.isSortedDesc?icons_1.sortDescIcon:icons_1.sortAscIcon:""]})));return(0,react_1.createElement)(TrHtmlElement,{...headerGroup.getHeaderGroupProps(),key:i},columns2)}),components=infiniteScroll?(0,react_2.useCallback)(({index,style})=>{const row=table.rows[index];row&&table.prepareRow(row);const childProps={orders,order:orders?.[index],row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll};return(0,jsx_runtime_1.jsx)(TrHtmlElement,{...row?.getRowProps({style}),className:rowTrClassName,children:(0,jsx_runtime_1.jsx)(OrderListChildrenContext_1.default.Provider,{value:childProps,children})})},[table.prepareRow,table.rows]):table.rows.map((row,i)=>{table.prepareRow(row);const childProps={orders,order:orders?.[i],row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll};return(0,react_1.createElement)(TrHtmlElement,{...row.getRowProps(),className:rowTrClassName,key:i},(0,jsx_runtime_1.jsx)(OrderListChildrenContext_1.default.Provider,{value:childProps,children}))});return loading&&orders==null?(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:LoadingComponent}):orders?.length===0?(0,jsx_runtime_1.jsx)(OrderListChildrenContext_1.default.Provider,{value:{orders},children}):(0,jsx_runtime_1.jsxs)(TableHtmlElement,{...p,...table.getTableProps(),children:[(0,jsx_runtime_1.jsx)(TheadHtmlElement,{className:theadClassName,children:headerComponent}),(0,jsx_runtime_1.jsx)(TbodyHtmlElement,{...table.getTableBodyProps(),children:infiniteScroll?(0,jsx_runtime_1.jsx)(react_window_1.FixedSizeList,{height:windowOptions?.height||400,itemCount:table.rows.length,itemSize:windowOptions?.itemSize||100,width:windowOptions?.width||table.totalColumnsWidth+scrollBarSize,children:components}):components})]})}exports.OrderList=OrderList,exports.default=OrderList;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OrderList=void 0;const tslib_1=require("tslib"),react_1=require("react"),jsx_runtime_1=require("react/jsx-runtime"),react_2=require("react"),CustomerContext_1=tslib_1.__importDefault(require("../../context/CustomerContext")),OrderListChildrenContext_1=tslib_1.__importDefault(require("../../context/OrderListChildrenContext")),react_table_1=require("react-table"),react_window_1=require("react-window"),scrollbarWidth_1=tslib_1.__importDefault(require("../../utils/scrollbarWidth")),icons_1=require("../../utils/icons");function OrderList({children,columns,loadingElement,showActions=!1,actionsComponent,actionsContainerClassName,infiniteScroll,windowOptions,theadClassName,rowTrClassName,...p}){const[loading,setLoading]=(0,react_2.useState)(!0),{orders}=(0,react_2.useContext)(CustomerContext_1.default),data=(0,react_2.useMemo)(()=>orders??[],[orders]),cols=(0,react_2.useMemo)(()=>columns,[columns]),tablePlugins=[react_table_1.useSortBy];infiniteScroll&&tablePlugins.push(react_table_1.useBlockLayout);const defaultColumn=(0,react_2.useMemo)(()=>({width:windowOptions?.column||150}),[windowOptions?.column]),table=(0,react_table_1.useTable)({data,columns:cols,...infiniteScroll&&{defaultColumn}},...tablePlugins),TableHtmlElement=infiniteScroll?"div":"table",TheadHtmlElement=infiniteScroll?"div":"thead",TbodyHtmlElement=infiniteScroll?"div":"tbody",ThHtmlElement=infiniteScroll?"div":"th",TrHtmlElement=infiniteScroll?"div":"tr";(0,react_2.useEffect)(()=>(orders!==void 0&&setLoading(!1),()=>{setLoading(!0)}),[orders]);const scrollBarSize=infiniteScroll?(0,react_2.useMemo)(()=>(0,scrollbarWidth_1.default)(),[]):0,LoadingComponent=loadingElement||(0,jsx_runtime_1.jsx)("div",{children:"Loading..."}),headerComponent=table.headerGroups.map((headerGroup,i)=>{const columns2=headerGroup.headers.map((column,k)=>{const sortLabel=column.isSorted?column.isSortedDesc?"desc":"asc":"";return(0,react_1.createElement)(ThHtmlElement,{"data-testid":`thead-${k}`,"data-sort":`${sortLabel}`,className:column?.className,...column.getHeaderProps(column?.getSortByToggleProps&&column?.getSortByToggleProps()),key:k},(0,jsx_runtime_1.jsxs)("span",{className:column?.titleClassName,children:[column.render("Header"),column.isSorted?column.isSortedDesc?icons_1.sortDescIcon:icons_1.sortAscIcon:""]}))});return(0,react_1.createElement)(TrHtmlElement,{...headerGroup.getHeaderGroupProps(),key:i},columns2)}),components=infiniteScroll?(0,react_2.useCallback)(({index,style})=>{const row=table.rows[index];row&&table.prepareRow(row);const childProps={orders,order:orders?.[index],row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll};return(0,jsx_runtime_1.jsx)(TrHtmlElement,{...row?.getRowProps({style}),className:rowTrClassName,children:(0,jsx_runtime_1.jsx)(OrderListChildrenContext_1.default.Provider,{value:childProps,children})})},[table.prepareRow,table.rows]):table.rows.map((row,i)=>{table.prepareRow(row);const childProps={orders,order:orders?.[i],row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll};return(0,react_1.createElement)(TrHtmlElement,{...row.getRowProps(),className:rowTrClassName,key:i},(0,jsx_runtime_1.jsx)(OrderListChildrenContext_1.default.Provider,{value:childProps,children}))});return loading&&orders==null?(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:LoadingComponent}):orders?.length===0?(0,jsx_runtime_1.jsx)(OrderListChildrenContext_1.default.Provider,{value:{orders},children}):(0,jsx_runtime_1.jsxs)(TableHtmlElement,{...p,...table.getTableProps(),children:[(0,jsx_runtime_1.jsx)(TheadHtmlElement,{className:theadClassName,children:headerComponent}),(0,jsx_runtime_1.jsx)(TbodyHtmlElement,{...table.getTableBodyProps(),children:infiniteScroll?(0,jsx_runtime_1.jsx)(react_window_1.FixedSizeList,{height:windowOptions?.height||400,itemCount:table.rows.length,itemSize:windowOptions?.itemSize||100,width:windowOptions?.width||table.totalColumnsWidth+scrollBarSize,children:components}):components})]})}exports.OrderList=OrderList,exports.default=OrderList;
@@ -4,7 +4,7 @@ interface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {
4
4
  /**
5
5
  * Function allow you to customize the component
6
6
  */
7
- children?: ChildrenFunction<Props>;
7
+ children?: ChildrenFunction<Omit<Props, 'children'>>;
8
8
  /**
9
9
  * Label to show. Default: 'No orders available.'
10
10
  */
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { Cell, Row } from 'react-table';
2
+ import type { Cell, Row } from 'react-table';
3
3
  import type { Order } from '@commercelayer/sdk';
4
- declare type ChildrenProps = Omit<Props, 'children'> & {
4
+ interface ChildrenProps extends Omit<Props, 'children'> {
5
5
  /**
6
6
  * The order resource
7
7
  */
@@ -14,17 +14,21 @@ declare type ChildrenProps = Omit<Props, 'children'> & {
14
14
  * The current cell
15
15
  */
16
16
  cell: Cell[];
17
+ /**
18
+ * All table cells
19
+ */
20
+ cells: Cell[];
17
21
  /**
18
22
  * Infinite scroll enabled
19
23
  */
20
24
  infiniteScroll: boolean;
21
- };
22
- declare type Props = {
25
+ }
26
+ interface Props extends Omit<JSX.IntrinsicElements['td'], 'children'> {
23
27
  children?: (props: ChildrenProps) => JSX.Element;
24
28
  /**
25
29
  * The order field to show
26
30
  */
27
31
  field: keyof Order;
28
- } & Omit<JSX.IntrinsicElements['td'], 'children'>;
32
+ }
29
33
  export declare function OrderListRow({ field, children, ...p }: Props): JSX.Element;
30
34
  export default OrderListRow;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OrderListRow=void 0;const tslib_1=require("tslib"),react_1=require("react"),jsx_runtime_1=require("react/jsx-runtime"),react_2=require("react"),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),OrderListChildrenContext_1=tslib_1.__importDefault(require("../../context/OrderListChildrenContext")),isDate_1=tslib_1.__importDefault(require("../../utils/isDate")),last_1=tslib_1.__importDefault(require("lodash/last"));function OrderListRow({field,children,...p}){const{order,row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll}=(0,react_2.useContext)(OrderListChildrenContext_1.default),cell=row?.cells.filter(cell2=>cell2.column.id===field),isLastRow=(0,last_1.default)(row?.cells)?.column.id===field,As=infiniteScroll?"div":"td",ActionRow=()=>showActions&&isLastRow&&actionsComponent&&(0,jsx_runtime_1.jsx)(As,{...p,className:actionsContainerClassName,children:(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children:actionsComponent})})||null,parentProps={...p,field,order,row,cell,infiniteScroll};return children?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children}),(0,jsx_runtime_1.jsx)(ActionRow,{})]}):(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[cell?.map((cell2,k)=>{const cellValue=cell2.value,value=(0,isDate_1.default)(cellValue)?new Date(Date.parse(cellValue)).toLocaleString():cell2.render("Cell");return(0,react_1.createElement)(As,{...p,...cell2.getCellProps(),key:k},value)}),(0,jsx_runtime_1.jsx)(ActionRow,{})]})}exports.OrderListRow=OrderListRow,exports.default=OrderListRow;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OrderListRow=void 0;const tslib_1=require("tslib"),react_1=require("react"),jsx_runtime_1=require("react/jsx-runtime"),react_2=require("react"),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),OrderListChildrenContext_1=tslib_1.__importDefault(require("../../context/OrderListChildrenContext")),isDate_1=tslib_1.__importDefault(require("../../utils/isDate")),last_1=tslib_1.__importDefault(require("lodash/last"));function OrderListRow({field,children,...p}){const{order,row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll}=(0,react_2.useContext)(OrderListChildrenContext_1.default),cell=row?.cells.filter(cell2=>cell2.column.id===field),isLastRow=(0,last_1.default)(row?.cells)?.column.id===field,As=infiniteScroll?"div":"td",ActionRow=()=>showActions&&isLastRow&&actionsComponent&&(0,jsx_runtime_1.jsx)(As,{"data-testid":"action-cell",...p,className:actionsContainerClassName,children:(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children:actionsComponent})})||null,parentProps={...p,field,order,row,cell,infiniteScroll};return children?(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children}),(0,jsx_runtime_1.jsx)(ActionRow,{})]}):(0,jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment,{children:[cell?.map((cell2,k)=>{const cellValue=cell2.value,value=(0,isDate_1.default)(cellValue)?new Date(Date.parse(cellValue)).toLocaleString():cell2.render("Cell");return(0,react_1.createElement)(As,{"data-testid":`cell-${k}`,...p,...cell2.getCellProps(),key:k},value)}),(0,jsx_runtime_1.jsx)(ActionRow,{})]})}exports.OrderListRow=OrderListRow,exports.default=OrderListRow;
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { ConditionalElement } from '../../typings/index';
3
+ import { TGenericChildrenProps, TResources } from '../utils/GenericFieldComponent';
4
+ declare type ParcelFieldChildrenProps = TGenericChildrenProps<TResources['Parcel']>;
5
+ declare type TCondition = ConditionalElement<Exclude<TResources['Parcel'], 'resource'>>;
6
+ declare type Props = {
7
+ children?: (props: ParcelFieldChildrenProps) => JSX.Element;
8
+ } & TCondition;
9
+ /**
10
+ * @param props {@link Props}
11
+ * @returns
12
+ */
13
+ export declare function ParcelField<P extends Props>(props: P): JSX.Element;
14
+ export default ParcelField;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ParcelField=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),GenericFieldComponent_1=tslib_1.__importDefault(require("../utils/GenericFieldComponent")),ParcelChildrenContext_1=tslib_1.__importDefault(require("../../context/ParcelChildrenContext"));function ParcelField(props){const{attribute,tagElement,children,...p}=props;return(0,jsx_runtime_1.jsx)(GenericFieldComponent_1.default,{resource:"parcel",attribute,tagElement,context:ParcelChildrenContext_1.default,...p,children})}exports.ParcelField=ParcelField,exports.default=ParcelField;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ children: JSX.Element[] | JSX.Element;
4
+ }
5
+ export declare function ParcelLineItem({ children }: Props): JSX.Element;
6
+ export default ParcelLineItem;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ParcelLineItem=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),ParcelChildrenContext_1=tslib_1.__importDefault(require("../../context/ParcelChildrenContext")),ParcelLineItemChildrenContext_1=tslib_1.__importDefault(require("../../context/ParcelLineItemChildrenContext")),react_1=require("react");function ParcelLineItem({children}){const{parcel}=(0,react_1.useContext)(ParcelChildrenContext_1.default),components=parcel?.parcel_line_items?.map((parcelLineItem,key)=>(0,jsx_runtime_1.jsx)(ParcelLineItemChildrenContext_1.default.Provider,{value:{parcelLineItem},children},key));return(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:components})}exports.ParcelLineItem=ParcelLineItem,exports.default=ParcelLineItem;
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { ConditionalElement } from '../../typings/index';
3
+ import { TGenericChildrenProps, TResources } from '../utils/GenericFieldComponent';
4
+ declare type ParcelLineItemFieldChildrenProps = TGenericChildrenProps<TResources['ParcelLineItem']>;
5
+ declare type TCondition = ConditionalElement<Exclude<TResources['ParcelLineItem'], 'resource'>>;
6
+ declare type Props = {
7
+ children?: (props: ParcelLineItemFieldChildrenProps) => JSX.Element;
8
+ } & TCondition;
9
+ /**
10
+ * @param props {@link Props}
11
+ * @returns
12
+ */
13
+ export declare function ParcelLineItemField<P extends Props>(props: P): JSX.Element;
14
+ export default ParcelLineItemField;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ParcelLineItemField=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),GenericFieldComponent_1=tslib_1.__importDefault(require("../utils/GenericFieldComponent")),ParcelLineItemChildrenContext_1=tslib_1.__importDefault(require("../../context/ParcelLineItemChildrenContext"));function ParcelLineItemField(props){const{attribute,tagElement,children,...p}=props;return(0,jsx_runtime_1.jsx)(GenericFieldComponent_1.default,{resource:"parcelLineItem",attribute,tagElement,context:ParcelLineItemChildrenContext_1.default,...p,children})}exports.ParcelLineItemField=ParcelLineItemField,exports.default=ParcelLineItemField;
@@ -2,5 +2,5 @@
2
2
  interface Props {
3
3
  children: JSX.Element | JSX.Element[];
4
4
  }
5
- export declare function Parcel({ children }: Props): JSX.Element;
6
- export default Parcel;
5
+ export declare function Parcels({ children }: Props): JSX.Element;
6
+ export default Parcels;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Parcels=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),ParcelChildrenContext_1=tslib_1.__importDefault(require("../../context/ParcelChildrenContext")),ShipmentChildrenContext_1=tslib_1.__importDefault(require("../../context/ShipmentChildrenContext")),react_1=require("react");function Parcels({children}){const{parcels}=(0,react_1.useContext)(ShipmentChildrenContext_1.default),components=parcels?.map((parcel,key)=>(0,jsx_runtime_1.jsx)(ParcelChildrenContext_1.default.Provider,{value:{parcel},children},key));return(0,jsx_runtime_1.jsx)(jsx_runtime_1.Fragment,{children:components})}exports.Parcels=Parcels,exports.default=Parcels;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ShipmentsContainer=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),ShipmentContext_1=tslib_1.__importStar(require("../../context/ShipmentContext")),react_1=require("react"),ShipmentReducer_1=tslib_1.__importStar(require("../../reducers/ShipmentReducer")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),isEmpty_1=tslib_1.__importDefault(require("lodash/isEmpty"));function ShipmentsContainer(props){const{children}=props,[state,dispatch]=(0,react_1.useReducer)(ShipmentReducer_1.default,ShipmentReducer_1.shipmentInitialState),{order,getOrder,include,addResourceToInclude,includeLoaded}=(0,react_1.useContext)(OrderContext_1.default),config=(0,react_1.useContext)(CommerceLayerContext_1.default);(0,react_1.useEffect)(()=>{include?.includes("shipments.available_shipping_methods")?includeLoaded?.["shipments.available_shipping_methods"]||addResourceToInclude({newResourceLoaded:{"shipments.available_shipping_methods":!0,"shipments.shipment_line_items.line_item":!0,"shipments.shipping_method":!0,"shipments.stock_transfers.line_item":!0,"shipments.stock_location":!0,"shipments.parcels":!0}}):addResourceToInclude({newResource:["shipments.available_shipping_methods","shipments.shipment_line_items.line_item","shipments.shipping_method","shipments.stock_transfers.line_item","shipments.stock_location","shipments.parcels"]}),order&&!(0,isEmpty_1.default)(config)&&order.shipments&&(0,ShipmentReducer_1.getShipments)({order,dispatch,config})},[order,include,includeLoaded]),(0,react_1.useEffect)(()=>(order&&(order.shipments&&order.shipments.length>0&&order.shipments.map(shipment=>shipment.available_shipping_methods&&shipment.available_shipping_methods.length>0).includes(!1)&&(0,ShipmentReducer_1.setShipmentErrors)([...state.errors||[],{code:"NO_SHIPPING_METHODS",message:"No shipping methods",resource:"shipments"}],dispatch),order.line_items&&order.line_items.length>0&&order.line_items.filter(({item_type:itemType})=>itemType==="skus").map(lineItem=>!!(lineItem.item?.do_not_ship||lineItem.item?.do_not_track||lineItem.item?.inventory?.quantity>=lineItem?.quantity)).includes(!1)&&(0,ShipmentReducer_1.setShipmentErrors)([...state.errors||[],{code:"OUT_OF_STOCK",message:"No stock available",resource:"line_items"}],dispatch)),()=>{(0,ShipmentReducer_1.setShipmentErrors)([],dispatch)}),[order?.shipments]);const contextValue={...state,setShipmentErrors:errors=>ShipmentContext_1.defaultShipmentContext.setShipmentErrors(errors,dispatch),setShippingMethod:async(shipmentId,shippingMethodId)=>await(0,ShipmentReducer_1.setShippingMethod)({shippingMethodId,shipmentId,config,getOrder,order})};return(0,jsx_runtime_1.jsx)(ShipmentContext_1.default.Provider,{value:contextValue,children})}exports.ShipmentsContainer=ShipmentsContainer,exports.default=ShipmentsContainer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ShipmentsContainer=void 0;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),ShipmentContext_1=tslib_1.__importStar(require("../../context/ShipmentContext")),react_1=require("react"),ShipmentReducer_1=tslib_1.__importStar(require("../../reducers/ShipmentReducer")),OrderContext_1=tslib_1.__importDefault(require("../../context/OrderContext")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),isEmpty_1=tslib_1.__importDefault(require("lodash/isEmpty"));function ShipmentsContainer(props){const{children}=props,[state,dispatch]=(0,react_1.useReducer)(ShipmentReducer_1.default,ShipmentReducer_1.shipmentInitialState),{order,getOrder,include,addResourceToInclude,includeLoaded}=(0,react_1.useContext)(OrderContext_1.default),config=(0,react_1.useContext)(CommerceLayerContext_1.default);(0,react_1.useEffect)(()=>{include?.includes("shipments.available_shipping_methods")?includeLoaded?.["shipments.available_shipping_methods"]||addResourceToInclude({newResourceLoaded:{"shipments.available_shipping_methods":!0,"shipments.shipment_line_items.line_item":!0,"shipments.shipping_method":!0,"shipments.stock_transfers.line_item":!0,"shipments.stock_location":!0,"shipments.parcels.parcel_line_items":!0}}):addResourceToInclude({newResource:["shipments.available_shipping_methods","shipments.shipment_line_items.line_item","shipments.shipping_method","shipments.stock_transfers.line_item","shipments.stock_location","shipments.parcels.parcel_line_items"]}),order&&!(0,isEmpty_1.default)(config)&&order.shipments&&(0,ShipmentReducer_1.getShipments)({order,dispatch,config})},[order,include,includeLoaded]),(0,react_1.useEffect)(()=>(order&&(order.shipments&&order.shipments.length>0&&order.shipments.map(shipment=>shipment.available_shipping_methods&&shipment.available_shipping_methods.length>0).includes(!1)&&(0,ShipmentReducer_1.setShipmentErrors)([...state.errors||[],{code:"NO_SHIPPING_METHODS",message:"No shipping methods",resource:"shipments"}],dispatch),order.line_items&&order.line_items.length>0&&order.line_items.filter(({item_type:itemType})=>itemType==="skus").map(lineItem=>!!(lineItem.item?.do_not_ship||lineItem.item?.do_not_track||lineItem.item?.inventory?.quantity>=lineItem?.quantity)).includes(!1)&&(0,ShipmentReducer_1.setShipmentErrors)([...state.errors||[],{code:"OUT_OF_STOCK",message:"No stock available",resource:"line_items"}],dispatch)),()=>{(0,ShipmentReducer_1.setShipmentErrors)([],dispatch)}),[order?.shipments]);const contextValue={...state,setShipmentErrors:errors=>ShipmentContext_1.defaultShipmentContext.setShipmentErrors(errors,dispatch),setShippingMethod:async(shipmentId,shippingMethodId)=>await(0,ShipmentReducer_1.setShippingMethod)({shippingMethodId,shipmentId,config,getOrder,order})};return(0,jsx_runtime_1.jsx)(ShipmentContext_1.default.Provider,{value:contextValue,children})}exports.ShipmentsContainer=ShipmentsContainer,exports.default=ShipmentsContainer;
@@ -1,18 +1,18 @@
1
1
  /// <reference types="react" />
2
- import { Address } from '@commercelayer/sdk';
2
+ import type { Address } from '@commercelayer/sdk';
3
3
  import AddressChildrenContext from '../../context/AddressChildrenContext';
4
4
  import { ChildrenFunction } from '../../typings/index';
5
5
  declare type ChildrenProps = Pick<Props, 'customerAddresses' | 'className'> & {
6
6
  AddressProvider: typeof AddressChildrenContext.Provider;
7
7
  };
8
- export declare type CustomerAddress = Address & {
8
+ export interface CustomerAddress extends Address {
9
9
  onClick: () => void;
10
10
  handleSelect?: () => void;
11
- };
11
+ }
12
12
  export declare type AddressCardsTemplateChildren = ChildrenFunction<ChildrenProps>;
13
13
  export declare type AddressCardsType = ChildrenProps;
14
14
  export declare type HandleSelect = (k: number, addressId: string, customerAddressId: string, disabled: boolean, address: Address) => Promise<void>;
15
- declare type Props = {
15
+ interface Props {
16
16
  customerAddresses: CustomerAddress[];
17
17
  countryLock?: string;
18
18
  children: AddressCardsTemplateChildren;
@@ -22,6 +22,6 @@ declare type Props = {
22
22
  selected?: number | null;
23
23
  className?: string;
24
24
  handleSelect: HandleSelect;
25
- };
26
- export default function AddressCardsTemplate({ customerAddresses, children, deselect, countryLock, selected, selectedClassName, className, disabledClassName, handleSelect, }: Props): JSX.Element;
25
+ }
26
+ export default function AddressCardsTemplate({ customerAddresses, children, deselect, countryLock, selected, selectedClassName, className, disabledClassName, handleSelect }: Props): JSX.Element;
27
27
  export {};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),react_1=require("react"),AddressChildrenContext_1=tslib_1.__importDefault(require("../../context/AddressChildrenContext")),ShippingAddressContext_1=tslib_1.__importDefault(require("../../context/ShippingAddressContext"));function AddressCardsTemplate({customerAddresses,children,deselect,countryLock,selected,selectedClassName,className,disabledClassName,handleSelect}){const{setShippingAddress}=(0,react_1.useContext)(ShippingAddressContext_1.default),value={customerAddresses:customerAddresses.map((address,k)=>{const attributes=address,disabled=setShippingAddress&&countryLock&&countryLock!==address.country_code||!1,addressSelectedClass=selected===k?`${className} ${deselect?"":selectedClassName}`:className,finalClassName=disabled?`${className} ${disabledClassName}`:addressSelectedClass,customerAddressId=address?.reference||"";return{...attributes,className:finalClassName,onClick:()=>handleSelect(k,address.id,customerAddressId,disabled,address)}}),AddressProvider:AddressChildrenContext_1.default.Provider};return(0,jsx_runtime_1.jsx)(Parent_1.default,{...value,children})}exports.default=AddressCardsTemplate;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),react_1=require("react"),AddressChildrenContext_1=tslib_1.__importDefault(require("../../context/AddressChildrenContext")),ShippingAddressContext_1=tslib_1.__importDefault(require("../../context/ShippingAddressContext"));function AddressCardsTemplate({customerAddresses,children,deselect,countryLock,selected,selectedClassName,className,disabledClassName,handleSelect}){const{setShippingAddress}=(0,react_1.useContext)(ShippingAddressContext_1.default),value={customerAddresses:customerAddresses.map((address,k)=>{const attributes=address,disabled=setShippingAddress&&countryLock&&countryLock!==address.country_code||!1,addressSelectedClass=selected===k?`${className??""} ${(deselect?"":selectedClassName)??""}`:className,finalClassName=disabled?`${className??""} ${disabledClassName??""}`:addressSelectedClass,customerAddressId=address?.reference||"";return{...attributes,className:finalClassName,onClick:async()=>await handleSelect(k,address.id,customerAddressId,disabled,address)}}),AddressProvider:AddressChildrenContext_1.default.Provider};return(0,jsx_runtime_1.jsx)(Parent_1.default,{...value,children})}exports.default=AddressCardsTemplate;
@@ -1,10 +1,12 @@
1
1
  import { InitialSkuContext } from '../../context/SkuChildrenContext';
2
2
  import { InitialStockTransferContext } from '../../context/StockTransferChildrenContext';
3
- import type { Customer, LineItem, Sku } from '@commercelayer/sdk';
3
+ import type { Customer, LineItem, Sku, Parcel, ParcelLineItem } from '@commercelayer/sdk';
4
4
  import { InitialLineItemContext } from '../../context/LineItemChildrenContext';
5
5
  import { Context } from 'react';
6
6
  import { InitialCustomerContext } from '../../context/CustomerContext';
7
- export declare type TResources = {
7
+ import { InitialParcelContext } from '../../context/ParcelChildrenContext';
8
+ import { InitialParcelLineItemContext } from '../../context/ParcelLineItemChildrenContext';
9
+ export interface TResources {
8
10
  StockTransfer: LineItem & {
9
11
  resource: 'stock_transfers';
10
12
  };
@@ -17,26 +19,34 @@ export declare type TResources = {
17
19
  Customer: Customer & {
18
20
  resource: 'customers';
19
21
  };
20
- };
22
+ Parcel: Parcel & {
23
+ resource: 'parcel';
24
+ };
25
+ ParcelLineItem: Pick<ParcelLineItem, 'quantity' | 'sku_code' | 'name' | 'image_url'> & {
26
+ resource: 'parcelLineItem';
27
+ };
28
+ }
21
29
  export declare type TResourceKey = {
22
30
  [K in keyof TResources]: K;
23
31
  };
24
32
  export declare type TGenericChildrenProps<E extends TResources[keyof TResources]> = Omit<Props<E>, 'children' | 'attribute' | 'context' | 'tagElement'> & {
25
33
  attributeValue: E[keyof E];
26
34
  };
27
- declare type ResourceContext = {
35
+ interface ResourceContext {
28
36
  stock_transfers: InitialStockTransferContext;
29
37
  skus: InitialSkuContext;
30
38
  line_items: InitialLineItemContext;
31
39
  customers: InitialCustomerContext;
32
- };
40
+ parcel: InitialParcelContext;
41
+ parcelLineItem: InitialParcelLineItemContext;
42
+ }
33
43
  declare type GenericContext<K extends keyof ResourceContext> = Context<ResourceContext[K]>;
34
- declare type Props<E extends TResources[keyof TResources]> = {
44
+ interface Props<E extends TResources[keyof TResources]> {
35
45
  children?: (props: TGenericChildrenProps<E>) => JSX.Element;
36
46
  resource: E['resource'];
37
47
  attribute: keyof E;
38
48
  tagElement: keyof JSX.IntrinsicElements;
39
49
  context: GenericContext<E['resource']>;
40
- };
50
+ }
41
51
  export default function GenericFieldComponent<R extends keyof TResources>(props: Props<TResources[R]>): JSX.Element;
42
52
  export {};
@@ -2,7 +2,7 @@
2
2
  import { Order } from '@commercelayer/sdk';
3
3
  import { AddToCart, OrderState, CreateOrder, SetGiftCardOrCouponCode, RemoveGiftCardOrCouponCode, SaveAddressToCustomerAddressBook, addResourceToInclude, updateOrder, getOrderContext } from '../reducers/OrderReducer';
4
4
  import { BaseError } from '../typings/errors';
5
- declare type DefaultContext = {
5
+ interface DefaultContext extends OrderState {
6
6
  createOrder: CreateOrder;
7
7
  addToCart: AddToCart;
8
8
  setOrderErrors: (errors: BaseError[]) => void;
@@ -13,7 +13,7 @@ declare type DefaultContext = {
13
13
  getOrder: getOrderContext;
14
14
  updateOrder: typeof updateOrder;
15
15
  setOrder: (order: Order) => void;
16
- } & OrderState;
16
+ }
17
17
  export declare const defaultOrderContext: {
18
18
  addToCart: AddToCart;
19
19
  createOrder: CreateOrder;
@@ -23,7 +23,7 @@ export declare const defaultOrderContext: {
23
23
  removeGiftCardOrCouponCode: RemoveGiftCardOrCouponCode;
24
24
  saveAddressToCustomerAddressBook: SaveAddressToCustomerAddressBook;
25
25
  addResourceToInclude: typeof addResourceToInclude;
26
- getOrder: () => Promise<void>;
26
+ getOrder: () => Promise<undefined>;
27
27
  updateOrder: typeof updateOrder;
28
28
  };
29
29
  declare const OrderContext: import("react").Context<DefaultContext>;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { ParcelLineItem } from '@commercelayer/sdk';
3
+ export interface InitialParcelLineItemContext {
4
+ parcelLineItem?: ParcelLineItem;
5
+ }
6
+ declare const _default: import("react").Context<InitialParcelLineItemContext>;
7
+ export default _default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const react_1=require("react"),initial={};exports.default=(0,react_1.createContext)(initial);
@@ -8,6 +8,7 @@ export * from './components/addresses/AddressField';
8
8
  export * from './components/addresses/AddressInput';
9
9
  export * from './components/addresses/AddressStateSelector';
10
10
  export * from './components/addresses/AddressesContainer';
11
+ export * from './components/addresses/AddressesEmpty';
11
12
  export * from './components/addresses/BillingAddressContainer';
12
13
  export * from './components/addresses/BillingAddressForm';
13
14
  export * from './components/addresses/SaveAddressesButton';
@@ -49,10 +50,10 @@ export * from './components/orders/GiftCardAmount';
49
50
  export * from './components/orders/ItemContainer';
50
51
  export * from './components/orders/OrderContainer';
51
52
  export * from './components/orders/OrderList';
53
+ export * from './components/orders/OrderListEmpty';
52
54
  export * from './components/orders/OrderListRow';
53
55
  export * from './components/orders/OrderNumber';
54
56
  export * from './components/orders/OrderStorage';
55
- export * from './components/orders/OrderListEmpty';
56
57
  export * from './components/orders/PlaceOrderButton';
57
58
  export * from './components/orders/PlaceOrderContainer';
58
59
  export * from './components/orders/PrivacyAndTermsCheckbox';
@@ -60,6 +61,10 @@ export * from './components/orders/ShippingAmount';
60
61
  export * from './components/orders/SubTotalAmount';
61
62
  export * from './components/orders/TaxesAmount';
62
63
  export * from './components/orders/TotalAmount';
64
+ export * from './components/parcels/ParcelField';
65
+ export * from './components/parcels/ParcelLineItem';
66
+ export * from './components/parcels/ParcelLineItemField';
67
+ export * from './components/parcels/Parcels';
63
68
  export * from './components/payment_methods/PaymentMethod';
64
69
  export * from './components/payment_methods/PaymentMethodAmount';
65
70
  export * from './components/payment_methods/PaymentMethodName';