@dropins/storefront-checkout 0.1.0-alpha45 → 0.1.0-alpha47

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 (220) hide show
  1. package/__generated__/types.d.ts +22 -20
  2. package/api/errors/index.d.ts +16 -0
  3. package/api/estimateShippingMethods/graphql/estimateShippingMethods.graphql.d.ts +16 -0
  4. package/api/estimateShippingMethods/graphql/index.d.ts +16 -0
  5. package/api/estimateShippingMethods/index.d.ts +16 -0
  6. package/api/fetch-graphql/fetch-graphql.d.ts +16 -0
  7. package/api/fetch-graphql/index.d.ts +16 -0
  8. package/api/fetchAddressFormFields/fetchAddressFormFields.d.ts +16 -0
  9. package/api/fetchAddressFormFields/graphql/fetchAddressFormFields.graphql.d.ts +16 -0
  10. package/api/fetchAddressFormFields/index.d.ts +16 -0
  11. package/api/getCart/getCart.d.ts +16 -0
  12. package/api/getCart/graphql/getCart.graphql.d.ts +16 -0
  13. package/api/getCart/graphql/index.d.ts +16 -0
  14. package/api/getCart/index.d.ts +16 -0
  15. package/api/getCheckoutData/getCheckoutData.d.ts +16 -0
  16. package/api/getCheckoutData/index.d.ts +16 -0
  17. package/api/getCountries/getCountries.d.ts +16 -0
  18. package/api/getCountries/graphql/getCountries.graphql.d.ts +16 -0
  19. package/api/getCountries/index.d.ts +16 -0
  20. package/api/getCustomer/graphql/getCustomer.graphql.d.ts +16 -0
  21. package/api/getCustomer/graphql/index.d.ts +16 -0
  22. package/api/getCustomer/index.d.ts +16 -0
  23. package/api/getRegions/graphql/getRegions.graphql.d.ts +16 -0
  24. package/api/getRegions/index.d.ts +16 -0
  25. package/api/getStoreConfig/graphql/getStoreConfig.graphql.d.ts +16 -0
  26. package/api/getStoreConfig/index.d.ts +16 -0
  27. package/api/index.d.ts +16 -0
  28. package/api/initialize/index.d.ts +16 -0
  29. package/api/initialize/listeners.d.ts +16 -0
  30. package/api/initializeCheckout/index.d.ts +16 -0
  31. package/api/initializeCheckout/initializeCheckout.d.ts +16 -0
  32. package/api/isEmailAvailable/graphql/isEmailAvailable.graphql.d.ts +16 -0
  33. package/api/isEmailAvailable/index.d.ts +16 -0
  34. package/api/placeOrder/graphql/index.d.ts +16 -0
  35. package/api/placeOrder/graphql/placeOrder.graphql.d.ts +17 -1
  36. package/api/placeOrder/index.d.ts +16 -0
  37. package/api/placeOrder/placeOrder.d.ts +16 -0
  38. package/api/redirect/index.d.ts +16 -0
  39. package/api/redirect/redirect.d.ts +16 -0
  40. package/api/resetCheckout/index.d.ts +16 -0
  41. package/api/resetCheckout/resetCheckout.d.ts +16 -0
  42. package/api/resetCustomer/index.d.ts +16 -0
  43. package/api/resetCustomer/resetCustomer.d.ts +16 -0
  44. package/api/setBillingAddress/graphql/setBillingAddress.graphql.d.ts +16 -0
  45. package/api/setBillingAddress/index.d.ts +16 -0
  46. package/api/setGuestEmailOnCart/graphql/setGuestEmailOnCart.graphql.d.ts +16 -0
  47. package/api/setGuestEmailOnCart/index.d.ts +16 -0
  48. package/api/setGuestEmailOnCart/setGuestEmailOnCart.d.ts +16 -0
  49. package/api/setPaymentMethod/graphql/setPaymentMethod.graphql.d.ts +16 -0
  50. package/api/setPaymentMethod/index.d.ts +16 -0
  51. package/api/setPaymentMethod/setPaymentMethod.d.ts +16 -0
  52. package/api/setShippingAddress/graphql/setShippingAddress.graphql.d.ts +16 -0
  53. package/api/setShippingAddress/index.d.ts +16 -0
  54. package/api/setShippingAddress/setShippingAddress.d.ts +17 -1
  55. package/api/setShippingMethods/graphql/setShippingMethodsOnCart.graphql.d.ts +16 -0
  56. package/api/setShippingMethods/index.d.ts +16 -0
  57. package/api/setShippingMethods/setShippingMethods.d.ts +16 -0
  58. package/api/utils/enqueueRequest.d.ts +16 -0
  59. package/api.js +1 -1
  60. package/chunks/BillToShippingAddress.js +1 -1
  61. package/chunks/OrderError.js +1 -0
  62. package/chunks/ShippingMethods.js +1 -1
  63. package/chunks/fixtures.js +15 -0
  64. package/chunks/getCart.graphql.js +6 -20
  65. package/chunks/getCustomer.js +1 -1
  66. package/chunks/getMultilineValues.js +43 -0
  67. package/chunks/placeOrder.js +6 -2
  68. package/chunks/resetCustomer.js +1 -1
  69. package/chunks/setBillingAddress.js +3 -3
  70. package/chunks/setGuestEmailOnCart.js +17 -0
  71. package/chunks/setPaymentMethod.js +13 -0
  72. package/chunks/setShippingAddress.js +16 -0
  73. package/chunks/setShippingMethods.js +3 -85
  74. package/chunks/transform-shipping-methods.js +1 -0
  75. package/chunks/withConditionalRendering.js +1 -0
  76. package/components/AddressForm/constants.d.ts +16 -0
  77. package/components/AddressForm/index.d.ts +16 -0
  78. package/components/BillToShippingAddress/index.d.ts +16 -0
  79. package/components/EstimateShipping/index.d.ts +16 -0
  80. package/components/FieldsForm/index.d.ts +16 -0
  81. package/components/Heading/index.d.ts +16 -0
  82. package/components/LoginForm/index.d.ts +16 -0
  83. package/components/OutOfStock/index.d.ts +16 -0
  84. package/components/OverlayLoader/index.d.ts +16 -0
  85. package/components/PaymentMethods/index.d.ts +16 -0
  86. package/components/PlaceOrder/PlaceOrder.d.ts +1 -1
  87. package/components/PlaceOrder/index.d.ts +16 -0
  88. package/components/ServerError/index.d.ts +16 -0
  89. package/components/ShippingMethods/index.d.ts +16 -0
  90. package/components/ToggleButton/assets/icons/index.d.ts +16 -0
  91. package/components/ToggleButton/assets/images/index.d.ts +16 -0
  92. package/components/ToggleButton/index.d.ts +16 -0
  93. package/components/index.d.ts +16 -2
  94. package/containers/BillToShippingAddress/BillToShippingAddress.d.ts +1 -1
  95. package/containers/BillToShippingAddress/constants.d.ts +16 -0
  96. package/containers/BillToShippingAddress/index.d.ts +16 -0
  97. package/containers/BillToShippingAddress.js +1 -1
  98. package/containers/BillingForm/BillingForm.d.ts +1 -1
  99. package/containers/BillingForm/constants.d.ts +16 -0
  100. package/containers/BillingForm/index.d.ts +16 -0
  101. package/containers/BillingForm.js +1 -1
  102. package/containers/ErrorBanner/index.d.ts +16 -0
  103. package/containers/ErrorBanner.js +1 -1
  104. package/containers/EstimateShipping/index.d.ts +16 -0
  105. package/containers/EstimateShipping.js +1 -1
  106. package/containers/LoginForm/LoginForm.d.ts +1 -1
  107. package/containers/LoginForm/constants.d.ts +16 -0
  108. package/containers/LoginForm/index.d.ts +16 -0
  109. package/containers/LoginForm.js +1 -1
  110. package/containers/MergedCartBanner/index.d.ts +16 -0
  111. package/containers/MergedCartBanner.js +1 -1
  112. package/containers/OutOfStock/index.d.ts +16 -0
  113. package/containers/OutOfStock.js +1 -1
  114. package/containers/PaymentMethods/PaymentMethods.d.ts +10 -11
  115. package/containers/PaymentMethods/defaultHandlers.d.ts +2 -9
  116. package/containers/PaymentMethods/index.d.ts +16 -0
  117. package/containers/PaymentMethods.js +1 -1
  118. package/containers/PlaceOrder/PlaceOrder.d.ts +10 -3
  119. package/containers/PlaceOrder/index.d.ts +16 -0
  120. package/containers/PlaceOrder.js +1 -1
  121. package/containers/ServerError/ServerError.d.ts +8 -0
  122. package/containers/ServerError/index.d.ts +19 -0
  123. package/containers/ServerError.d.ts +3 -0
  124. package/containers/ServerError.js +1 -0
  125. package/containers/ShippingForm/ShippingForm.d.ts +1 -1
  126. package/containers/ShippingForm/constants.d.ts +16 -0
  127. package/containers/ShippingForm/index.d.ts +17 -1
  128. package/containers/ShippingForm.js +1 -1
  129. package/containers/ShippingMethods/ShippingMethods.d.ts +7 -3
  130. package/containers/ShippingMethods/hooks/useShippingEstimateEventEmitter.d.ts +16 -0
  131. package/containers/ShippingMethods/index.d.ts +16 -0
  132. package/containers/ShippingMethods.js +1 -1
  133. package/containers/index.d.ts +17 -2
  134. package/data/models/acdl.d.ts +16 -0
  135. package/data/models/country.d.ts +16 -0
  136. package/data/models/custom-attribute.d.ts +16 -0
  137. package/data/models/email-availability.d.ts +16 -0
  138. package/data/models/index.d.ts +16 -0
  139. package/data/models/payment-method.d.ts +16 -0
  140. package/data/models/price.d.ts +16 -0
  141. package/data/models/region.d.ts +16 -0
  142. package/data/models/store-config.d.ts +16 -0
  143. package/data/transforms/index.d.ts +16 -0
  144. package/hocs/index.d.ts +16 -0
  145. package/hocs/withConditionalRendering.d.ts +1 -1
  146. package/hooks/index.d.ts +16 -0
  147. package/hooks/useBreakpoint/index.d.ts +16 -0
  148. package/hooks/useBreakpoint/useBreakpoint.d.ts +16 -0
  149. package/hooks/useLockScroll/index.d.ts +16 -0
  150. package/hooks/useLockScroll/useLockScroll.d.ts +16 -0
  151. package/hooks/useValidity/index.d.ts +16 -0
  152. package/hooks/useValidity/useValidity.d.ts +16 -0
  153. package/i18n/en_US.json.d.ts +0 -8
  154. package/lib/backup-data.d.ts +16 -0
  155. package/lib/fetch-error.d.ts +16 -0
  156. package/lib/index.d.ts +16 -0
  157. package/lib/network-error.d.ts +16 -0
  158. package/lib/redirect.d.ts +16 -0
  159. package/lib/state.d.ts +16 -0
  160. package/msw/browser.d.ts +16 -0
  161. package/msw/fixtures/fragments/billing-address.d.ts +16 -0
  162. package/msw/fixtures/fragments/cart.d.ts +16 -0
  163. package/msw/fixtures/fragments/index.d.ts +16 -0
  164. package/msw/fixtures/fragments/shipping-address.d.ts +16 -0
  165. package/msw/fixtures/index.d.ts +16 -0
  166. package/msw/fixtures/mutations/index.d.ts +16 -0
  167. package/msw/fixtures/queries/index.d.ts +16 -0
  168. package/msw/server.d.ts +16 -0
  169. package/package.json +1 -1
  170. package/render/index.d.ts +16 -0
  171. package/render.js +4 -3
  172. package/signals/IsBillToShippingSignal.d.ts +16 -0
  173. package/signals/ServerErrorSignal.d.ts +18 -0
  174. package/signals/index.d.ts +17 -0
  175. package/tests/constants.d.ts +16 -0
  176. package/tests/integration/utils/index.d.ts +16 -0
  177. package/tests/integration/utils/setup.d.ts +6 -4
  178. package/tests/integration/utils/user-actions.d.ts +16 -0
  179. package/tests/mocks/svg.d.ts +16 -0
  180. package/tests/utils/expectError.d.ts +16 -0
  181. package/tests/utils/index.d.ts +16 -0
  182. package/tests/utils/mockEvents.d.ts +16 -0
  183. package/utils/autocompleteFieldCodes/autocompleteFieldCodes.d.ts +16 -0
  184. package/utils/autocompleteFieldCodes/index.d.ts +16 -0
  185. package/utils/getDisplayName/index.d.ts +16 -0
  186. package/utils/getMultilineValues/getMultilineValues.d.ts +16 -0
  187. package/utils/getMultilineValues/index.d.ts +16 -0
  188. package/utils/index.d.ts +19 -0
  189. package/utils/isEmpty/index.d.ts +16 -0
  190. package/utils/isEmpty/isEmpty.d.ts +16 -0
  191. package/utils/isNullish/index.d.ts +16 -0
  192. package/utils/isNullish/isNullish.d.ts +16 -0
  193. package/utils/isUnexpectedError/index.d.ts +18 -0
  194. package/utils/isUnexpectedError/isUnexpectedError.d.ts +18 -0
  195. package/utils/parseRegionId/index.d.ts +16 -0
  196. package/utils/parseRegionId/parseRegionId.d.ts +16 -0
  197. package/utils/processFormFields/index.d.ts +16 -0
  198. package/utils/refetchEstimatedShippingMethods/index.d.ts +16 -0
  199. package/utils/scrollToElement/index.d.ts +18 -0
  200. package/utils/scrollToElement/scrollToElement.d.ts +18 -0
  201. package/utils/shippingMethods/index.d.ts +16 -0
  202. package/utils/validateForms/index.d.ts +18 -0
  203. package/utils/validateForms/validateForms.d.ts +18 -0
  204. package/chunks/EmptyCart.js +0 -1
  205. package/chunks/ErrorBanner.js +0 -1
  206. package/chunks/MergedCartBanner.js +0 -1
  207. package/chunks/OutOfStock.js +0 -1
  208. package/components/Checkout/Checkout.d.ts +0 -28
  209. package/components/Checkout/index.d.ts +0 -3
  210. package/components/EmptyCart/EmptyCart.d.ts +0 -9
  211. package/components/EmptyCart/index.d.ts +0 -3
  212. package/containers/Checkout/Checkout.d.ts +0 -35
  213. package/containers/Checkout/constants.d.ts +0 -2
  214. package/containers/Checkout/index.d.ts +0 -4
  215. package/containers/Checkout.d.ts +0 -3
  216. package/containers/Checkout.js +0 -1
  217. package/containers/EmptyCart/EmptyCart.d.ts +0 -8
  218. package/containers/EmptyCart/index.d.ts +0 -3
  219. package/containers/EmptyCart.d.ts +0 -3
  220. package/containers/EmptyCart.js +0 -1
@@ -1,28 +0,0 @@
1
- import { FunctionComponent, VNode } from 'preact';
2
- import { HTMLAttributes } from 'preact/compat';
3
-
4
- export type CheckoutBlocks = {
5
- billingAddress: VNode;
6
- billToShippingAddress: VNode;
7
- cartSummaryList?: VNode;
8
- emptyCart: VNode;
9
- login: VNode;
10
- orderSummary?: VNode;
11
- outOfStock: VNode;
12
- paymentMethods: VNode;
13
- placeOrder: VNode;
14
- shippingAddress: VNode;
15
- shippingMethods?: VNode;
16
- };
17
- declare const Main: FunctionComponent<{
18
- blocks: CheckoutBlocks;
19
- }>;
20
- export interface CheckoutProps extends HTMLAttributes<HTMLDivElement> {
21
- isLoading?: boolean;
22
- }
23
- interface CheckoutComponent extends FunctionComponent<CheckoutProps> {
24
- Main: typeof Main;
25
- }
26
- export declare const Checkout: CheckoutComponent;
27
- export {};
28
- //# sourceMappingURL=Checkout.d.ts.map
@@ -1,3 +0,0 @@
1
- export * from './Checkout';
2
- export { Checkout as default } from './Checkout';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,9 +0,0 @@
1
- import { FunctionComponent } from 'preact';
2
- import { HTMLAttributes } from 'preact/compat';
3
-
4
- export interface EmptyCartProps extends HTMLAttributes<HTMLDivElement> {
5
- title?: string;
6
- routeHome?: () => string;
7
- }
8
- export declare const EmptyCart: FunctionComponent<EmptyCartProps>;
9
- //# sourceMappingURL=EmptyCart.d.ts.map
@@ -1,3 +0,0 @@
1
- export * from './EmptyCart';
2
- export { EmptyCart as default } from './EmptyCart';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,35 +0,0 @@
1
- import { UpdateProductsFromCart } from '../OutOfStock';
2
- import { PaymentMethodSlotContext } from '../PaymentMethods';
3
- import { Container, SlotProps } from '@dropins/tools/types/elsie/src/lib';
4
- import { HTMLAttributes } from 'preact/compat';
5
-
6
- export type PreselectedAddressFields = {
7
- countryCode?: string;
8
- region?: string;
9
- postCode?: string;
10
- };
11
- export type PreselectedShippingMethod = {
12
- carrierCode: string;
13
- methodCode: string;
14
- };
15
- export type PreselectedCartData = {
16
- address?: PreselectedAddressFields;
17
- shippingMethod?: PreselectedShippingMethod;
18
- };
19
- export interface CheckoutProps extends HTMLAttributes<HTMLDivElement> {
20
- routeHome?: () => string;
21
- routeCart?: () => string;
22
- onCheckoutDataUpdate?: () => Promise<void>;
23
- onCartProductsUpdate?: (items: UpdateProductsFromCart) => void;
24
- slots?: {
25
- CartSummaryList?: SlotProps;
26
- OrderSummary?: SlotProps;
27
- PaymentMethods?: SlotProps<PaymentMethodSlotContext>;
28
- ShippingMethods?: SlotProps;
29
- };
30
- preselectedCartData?: PreselectedCartData;
31
- onSignInClick?: () => void;
32
- onSignOutClick?: () => void;
33
- }
34
- export declare const Checkout: Container<CheckoutProps>;
35
- //# sourceMappingURL=Checkout.d.ts.map
@@ -1,2 +0,0 @@
1
- export declare const OUT_OF_STOCK = "OUT_OF_STOCK";
2
- //# sourceMappingURL=constants.d.ts.map
@@ -1,4 +0,0 @@
1
- export * from './constants';
2
- export * from './Checkout';
3
- export { Checkout as default } from './Checkout';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1,3 +0,0 @@
1
- export * from './Checkout/index'
2
- import _default from './Checkout/index'
3
- export default _default
@@ -1 +0,0 @@
1
- import{jsx as r,jsxs as N}from"@dropins/tools/preact-jsx-runtime.js";import{k as V,n as j,o as S,U as K}from"../chunks/getCart.graphql.js";import"@dropins/tools/event-bus.js";import{a as $}from"../chunks/getCustomer.js";import{p as w}from"../chunks/placeOrder.js";import{C as f,B as H,L as q,c as z,P as G,a as J,S as Q}from"../chunks/ShippingMethods.js";import"@dropins/tools/preact-hooks.js";import{Slot as v,classes as a}from"@dropins/tools/lib.js";import{IllustratedMessage as R,Icon as W,Button as X}from"@dropins/tools/components.js";import{B as Y}from"../chunks/BillToShippingAddress.js";import{O as Z,S as D}from"../chunks/OutOfStock.js";import{useText as k}from"@dropins/tools/i18n.js";import{useState as u,useCallback as rr}from"@dropins/tools/preact-compat.js";import{E as er}from"../chunks/EmptyCart.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/setShippingMethods.js";import"../chunks/setBillingAddress.js";import"../chunks/ErrorBanner.js";import"../chunks/MergedCartBanner.js";const yr="OUT_OF_STOCK",_r=({className:s,slots:e,routeHome:i,onCartProductsUpdate:c,onCheckoutDataUpdate:n,preselectedCartData:t,onSignInClick:C,onSignOutClick:m,...O})=>{const E=V.authenticated,[M,y]=u(!1),[p,h]=u(""),_=p!=="",[P,b]=u(),{data:d,pending:T}=j.value,{data:l,pending:x}=S.value,B=T&&E&&!l,F=k({CheckoutUnexpectedError:"Checkout.ServerError.unexpected"}),L=rr(async()=>{d&&(await w(),y(!0))},[d]),A=o=>{b(o?()=>o:void 0)},U=async()=>{h(""),d&&$()},g=o=>{const I=o instanceof TypeError||o instanceof K?F.CheckoutUnexpectedError:o.message;h(I)};return M?null:_?r(tr,{errorMessage:p,onClick:U}):r(f,{className:s,isLoading:B||x,...O,children:r(f.Main,{blocks:{cartSummaryList:r(v,{name:"CartSummaryList",slot:e==null?void 0:e.CartSummaryList}),orderSummary:r(v,{name:"OrderSummary",slot:e==null?void 0:e.OrderSummary}),outOfStock:r(Z,{routeCart:i,onCartProductsUpdate:c}),emptyCart:r(er,{routeHome:i}),billingAddress:r(H,{}),billToShippingAddress:r(Y,{hideOnVirtualCart:!0},`bill-to-shipping-address${l?"-customer":""}`),login:r(q,{onSignInClick:C,onSignOutClick:()=>{m==null||m(),S.value.pending=!0}}),paymentMethods:r(z,{onPlaceOrder:A,handleServerError:g,paymentMethodsSlot:e==null?void 0:e.PaymentMethods}),placeOrder:r(G,{onClick:P??L,handleServerError:g}),shippingAddress:r(J,{hideOnVirtualCart:!0,onCheckoutDataUpdate:n,preselectedFields:t==null?void 0:t.address}),shippingMethods:r(Q,{name:"shipping-methods",hideOnVirtualCart:!0,onCheckoutDataUpdate:n,preSelectedMethod:t==null?void 0:t.shippingMethod,shippingMethodsSlot:e==null?void 0:e.ShippingMethods})}})})},tr=({className:s,errorMessage:e,contactSupport:i,...c})=>{const{onClick:n}=c,t=k({Title:"Checkout.ServerError.title",Message:"Checkout.ServerError.message",ContactSupport:"Checkout.ServerError.contactSupport",Button:"Checkout.ServerError.button"});return r(R,{"aria-invalid":"true","aria-describedby":"checkout-server-error__message","aria-live":"polite",className:a(["checkout-server-error",s]),"data-testid":"checkout-server-error",heading:e??t.Title,message:N("p",{id:a(["checkout-server-error__message"]),children:[t.Message,r("br",{}),r("span",{children:i??t.ContactSupport})]}),icon:r(W,{className:a(["checkout-server-error__icon"]),source:D}),action:r(X,{className:a(["checkout-server-error__button"]),onClick:n,children:t.Button})})};export{_r as Checkout,yr as OUT_OF_STOCK,_r as default};
@@ -1,8 +0,0 @@
1
- import { Container } from '@dropins/tools/types/elsie/src/lib';
2
- import { HTMLAttributes } from 'preact/compat';
3
-
4
- export interface EmptyCartProps extends HTMLAttributes<HTMLDivElement> {
5
- routeHome?: () => string;
6
- }
7
- export declare const EmptyCart: Container<EmptyCartProps>;
8
- //# sourceMappingURL=EmptyCart.d.ts.map
@@ -1,3 +0,0 @@
1
- export * from './EmptyCart';
2
- export { EmptyCart as default } from './EmptyCart';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,3 +0,0 @@
1
- export * from './EmptyCart/index'
2
- import _default from './EmptyCart/index'
3
- export default _default
@@ -1 +0,0 @@
1
- import{E as c,E as g}from"../chunks/EmptyCart.js";import"@dropins/tools/preact-jsx-runtime.js";import"../chunks/ShippingMethods.js";import"../chunks/setShippingMethods.js";import"../chunks/getCart.graphql.js";import"@dropins/tools/event-bus.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/lib.js";import"@dropins/tools/i18n.js";import"@dropins/tools/components.js";import"../chunks/BillToShippingAddress.js";import"../chunks/setBillingAddress.js";import"@dropins/tools/preact-compat.js";import"../chunks/ErrorBanner.js";import"../chunks/MergedCartBanner.js";export{c as EmptyCart,g as default};