@dropins/storefront-checkout 0.1.0-alpha38 → 0.1.0-alpha39

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 (89) hide show
  1. package/__generated__/types.d.ts +714 -1907
  2. package/api/estimateShippingMethods/fixtures.d.ts +1 -1
  3. package/api/getCart/graphql/getCart.graphql.d.ts +1 -1
  4. package/api/getCheckoutData/getCheckoutData.d.ts +2 -0
  5. package/api/getCheckoutData/index.d.ts +2 -0
  6. package/api/getCountries/getCountries.d.ts +1 -3
  7. package/api/getCustomer/fixtures.d.ts +5 -0
  8. package/api/getStoreConfig/graphql/getStoreConfig.graphql.d.ts +1 -1
  9. package/api/index.d.ts +4 -0
  10. package/api/initialize/listeners.d.ts +4 -0
  11. package/api/initializeCheckout/index.d.ts +2 -0
  12. package/api/initializeCheckout/initializeCheckout.d.ts +2 -0
  13. package/api/placeOrder/graphql/placeOrder.graphql.d.ts +1 -1
  14. package/api/resetCheckout/index.d.ts +2 -0
  15. package/api/resetCheckout/resetCheckout.d.ts +2 -0
  16. package/api/resetCustomer/index.d.ts +2 -0
  17. package/api/resetCustomer/resetCustomer.d.ts +2 -0
  18. package/api/utils/dispatchApiCall.d.ts +4 -0
  19. package/api.js +1 -1
  20. package/chunks/BillToShippingAddress2.js +1 -1
  21. package/chunks/BillingForm.js +1 -1
  22. package/chunks/LoginForm.js +1 -1
  23. package/chunks/PlaceOrder.js +1 -1
  24. package/chunks/ShippingForm.js +1 -1
  25. package/chunks/ShippingMethods.js +1 -1
  26. package/chunks/ToggleButton.js +1 -1
  27. package/chunks/ToggleButton2.js +1 -1
  28. package/chunks/address-form-fields.js +1 -43
  29. package/chunks/fixtures.js +16 -2
  30. package/chunks/getCart.graphql.js +12 -4
  31. package/chunks/getCustomer.js +34 -0
  32. package/chunks/getMultilineValues.js +43 -0
  33. package/chunks/placeOrder2.js +68 -35
  34. package/chunks/resetCustomer.js +7 -0
  35. package/chunks/setBillingAddress.js +3 -3
  36. package/chunks/setGuestEmailOnCart.js +1 -1
  37. package/chunks/setPaymentMethod.js +3 -3
  38. package/chunks/setShippingAddress.js +2 -2
  39. package/chunks/setShippingMethods.js +3 -3
  40. package/components/AddressForm/useAddressBackup.d.ts +2 -2
  41. package/components/EstimateShipping/EstimateShipping.d.ts +12 -0
  42. package/components/EstimateShipping/EstimateShippingSkeleton.d.ts +4 -0
  43. package/components/EstimateShipping/index.d.ts +4 -0
  44. package/components/LoginForm/LoginForm.d.ts +0 -1
  45. package/components/index.d.ts +1 -0
  46. package/containers/BillToShippingAddress.js +1 -1
  47. package/containers/BillingForm.js +1 -1
  48. package/containers/Checkout.js +1 -1
  49. package/containers/EstimateShipping/EstimateShipping.d.ts +4 -0
  50. package/containers/EstimateShipping/index.d.ts +3 -0
  51. package/containers/EstimateShipping.d.ts +3 -0
  52. package/containers/EstimateShipping.js +1 -0
  53. package/containers/LoginForm/LoginForm.d.ts +1 -1
  54. package/containers/LoginForm.js +1 -1
  55. package/containers/PaymentMethods.js +1 -1
  56. package/containers/PlaceOrder.js +1 -1
  57. package/containers/ShippingForm.js +1 -1
  58. package/containers/ShippingMethods.js +1 -1
  59. package/containers/index.d.ts +1 -0
  60. package/context/index.d.ts +0 -3
  61. package/data/models/address-form-fields.d.ts +2 -2
  62. package/data/models/order.d.ts +39 -4
  63. package/data/models/store-config.d.ts +8 -0
  64. package/data/transforms/transform-address.d.ts +10 -0
  65. package/data/transforms/transform-shipping-methods.d.ts +1 -1
  66. package/data/transforms/transform-store-config.d.ts +2 -1
  67. package/i18n/en_US.json.d.ts +8 -0
  68. package/lib/backup-data.d.ts +4 -0
  69. package/lib/index.d.ts +0 -1
  70. package/msw/fixtures/fragments/cart.d.ts +10 -0
  71. package/package.json +1 -1
  72. package/render.js +3 -3
  73. package/signals/CountryListSignal.d.ts +7 -0
  74. package/signals/index.d.ts +1 -1
  75. package/tests/integration/utils/setup.d.ts +1 -1
  76. package/chunks/address-form-fields2.js +0 -1
  77. package/chunks/getCountries.js +0 -7
  78. package/chunks/initialize.js +0 -14
  79. package/chunks/services.js +0 -1
  80. package/chunks/transform-shipping-methods.js +0 -1
  81. package/context/checkout.d.ts +0 -44
  82. package/context/countries.d.ts +0 -13
  83. package/context/services.d.ts +0 -13
  84. package/hooks/useAuthentication/index.d.ts +0 -2
  85. package/hooks/useAuthentication/useAuthentication.d.ts +0 -2
  86. package/lib/localStorage.d.ts +0 -10
  87. package/services/backup.d.ts +0 -17
  88. package/services/index.d.ts +0 -2
  89. package/signals/AuthenticationSignal.d.ts +0 -2
@@ -11,13 +11,16 @@ export type OrderItemProduct = {
11
11
  canonicalUrl?: string;
12
12
  id: string;
13
13
  image?: string;
14
+ imageAlt?: string;
14
15
  name: string;
15
16
  productType: string;
16
17
  sku: string;
17
18
  };
18
19
  export type OrderItem = {
19
- discountedTotal?: number;
20
+ type: string;
21
+ discounted: boolean;
20
22
  id: string;
23
+ regularPrice: Price;
21
24
  price: Price;
22
25
  product: OrderItemProduct;
23
26
  selectedOptions?: Array<{
@@ -25,8 +28,37 @@ export type OrderItem = {
25
28
  value: any;
26
29
  }>;
27
30
  totalQuantity: number;
31
+ thumbnail: {
32
+ label: string;
33
+ url: string;
34
+ };
35
+ giftCard?: {
36
+ senderName: string;
37
+ senderEmail: string;
38
+ recipientEmail: string;
39
+ recipientName: string;
40
+ };
28
41
  };
42
+ export type OrderAddress = {
43
+ city: string;
44
+ company: string;
45
+ country: string;
46
+ firstName: string;
47
+ middleName: string;
48
+ lastName: string;
49
+ postCode: string;
50
+ region: string;
51
+ regionId: string;
52
+ street: string[];
53
+ telephone: string;
54
+ customAttributes: {
55
+ code: string;
56
+ value: string;
57
+ }[];
58
+ } | null;
29
59
  export type Order = {
60
+ status: string;
61
+ isVirtual: boolean;
30
62
  coupons: OrderCoupon[];
31
63
  email: string;
32
64
  items: OrderItem[];
@@ -35,12 +67,15 @@ export type Order = {
35
67
  shipping?: {
36
68
  code: string;
37
69
  amount: number;
70
+ currency: string;
38
71
  };
39
- subtotal: number;
72
+ grandTotal: Price;
73
+ subtotal: Price;
40
74
  token: string;
41
- total: number;
42
75
  totalQuantity: number;
43
- totalTax: number;
76
+ totalTax: Price;
77
+ shippingAddress: OrderAddress;
78
+ billingAddress: OrderAddress;
44
79
  };
45
80
  export {};
46
81
  //# sourceMappingURL=order.d.ts.map
@@ -1,3 +1,8 @@
1
+ export declare enum TaxDisplay {
2
+ EXCLUDING_TAX = "EXCLUDING_TAX",
3
+ INCLUDING_EXCLUDING_TAX = "INCLUDING_AND_EXCLUDING_TAX",
4
+ INCLUDING_TAX = "INCLUDING_TAX"
5
+ }
1
6
  export interface StoreConfig {
2
7
  defaultCountry: string;
3
8
  countriesWithRequiredRegion: string[];
@@ -5,5 +10,8 @@ export interface StoreConfig {
5
10
  countriesWithOptionalZipCode: string[];
6
11
  isGuestCheckoutEnabled: boolean;
7
12
  isOnePageCheckoutEnabled: boolean;
13
+ shoppingCartDisplaySetting: {
14
+ shipping: TaxDisplay;
15
+ };
8
16
  }
9
17
  //# sourceMappingURL=store-config.d.ts.map
@@ -73,6 +73,16 @@ declare const transformShippingAddresses: (data: ({
73
73
  value?: number | null | undefined;
74
74
  currency?: import('../../__generated__/types').CurrencyEnum | null | undefined;
75
75
  };
76
+ price_excl_tax: {
77
+ __typename?: "Money" | undefined;
78
+ value?: number | null | undefined;
79
+ currency?: import('../../__generated__/types').CurrencyEnum | null | undefined;
80
+ };
81
+ price_incl_tax: {
82
+ __typename?: "Money" | undefined;
83
+ value?: number | null | undefined;
84
+ currency?: import('../../__generated__/types').CurrencyEnum | null | undefined;
85
+ };
76
86
  } | null | undefined;
77
87
  } | null)[]) => ShippingAddressModel[] | undefined;
78
88
  export { ShippingAddress, BillingAddress, transformBillingAddress, transformShippingAddresses, };
@@ -1,5 +1,5 @@
1
- import { ShippingMethod } from '../models/shipping-method';
2
1
  import { GetCartQuery } from '../../__generated__/types';
2
+ import { ShippingMethod } from '../models/shipping-method';
3
3
 
4
4
  type Cart = NonNullable<GetCartQuery['cart']>;
5
5
  type ShippingAddresses = Cart['shipping_addresses'];
@@ -1,5 +1,6 @@
1
1
  import { GetStoreConfigQuery } from '../../__generated__/types';
2
- import { StoreConfig } from '../models';
2
+ import { StoreConfig, TaxDisplay } from '../models';
3
3
 
4
+ export declare function transformTaxDisplay(data: number | null | undefined): TaxDisplay;
4
5
  export declare function transformStoreConfig(data: GetStoreConfigQuery['storeConfig']): StoreConfig;
5
6
  //# sourceMappingURL=transform-store-config.d.ts.map
@@ -78,6 +78,14 @@ declare const _default: {
78
78
  "one": "1 item from a previous session was added to your cart. Please review your new subtotal.",
79
79
  "many": "{{count}} items from a previous session were added to your cart. Please review your new subtotal."
80
80
  }
81
+ },
82
+ "EstimateShipping": {
83
+ "estimated": "Estimated Shipping",
84
+ "freeShipping": "free",
85
+ "label": "Shipping",
86
+ "taxToBeDetermined": "TBD",
87
+ "withTaxes": "Including taxes",
88
+ "withoutTaxes": "Excluding taxes"
81
89
  }
82
90
  }
83
91
  }
@@ -0,0 +1,4 @@
1
+ export declare const createBackup: <T>(key: string, value: T) => void;
2
+ export declare const restoreBackup: <T>(key: string) => T | null;
3
+ export declare const removeBackup: (key: string) => void;
4
+ //# sourceMappingURL=backup-data.d.ts.map
package/lib/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from './fetch-error';
2
- export * from './localStorage';
3
2
  export * from './redirect';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -96,6 +96,16 @@ export declare const cartFixture: {
96
96
  value?: number | null | undefined;
97
97
  currency?: import('../../../__generated__/types').CurrencyEnum | null | undefined;
98
98
  };
99
+ price_excl_tax: {
100
+ __typename?: "Money" | undefined;
101
+ value?: number | null | undefined;
102
+ currency?: import('../../../__generated__/types').CurrencyEnum | null | undefined;
103
+ };
104
+ price_incl_tax: {
105
+ __typename?: "Money" | undefined;
106
+ value?: number | null | undefined;
107
+ currency?: import('../../../__generated__/types').CurrencyEnum | null | undefined;
108
+ };
99
109
  } | null | undefined;
100
110
  } | null)[];
101
111
  available_payment_methods?: ({
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-checkout", "version": "0.1.0-alpha38", "@dropins/tools": "~0.26.0"}
1
+ {"name": "@dropins/storefront-checkout", "version": "0.1.0-alpha39", "@dropins/tools": "~0.26.0"}
package/render.js CHANGED
@@ -1,3 +1,3 @@
1
- (function(n,o){try{if(typeof document<"u"){const t=document.createElement("style"),i=o.styleId;for(const e in o.attributes)t.setAttribute(e,o.attributes[e]);t.setAttribute("data-dropin",i),t.appendChild(document.createTextNode(n));const r=document.querySelector('style[data-dropin="sdk"]');if(r)r.after(t);else{const e=document.querySelector('link[rel="stylesheet"], style');e?e.before(t):document.head.append(t)}}}catch(t){console.error("dropin-styles (injectCodeFunction)",t)}})(`.checkout-bill-to-shipping-address{display:grid}.checkout-bill-to-shipping-address label{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);gap:0}
2
- .checkout-shipping-methods{display:grid}.checkout-shipping-methods__title{color:var(--color-neutral-800);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-shipping-methods__content{position:relative;display:block}.checkout-shipping-methods__method{margin-bottom:var(--spacing-medium);width:fit-content;cursor:pointer;font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.checkout-shipping-methods__method:last-child{margin-bottom:0}.dropin-radio-button__label .dropin-price{color:var(--color-neutral-800);font-weight:400}.checkout-shipping-methods__options--loading{opacity:.4;pointer-events:none}.checkout-shipping-methods__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.checkout-shipping-address__skeleton{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-medium);flex-wrap:wrap;min-width:384px}.checkout-address-form__company,.checkout-address-form__street{grid-column:1 / -1}.checkout-address-form__street .dropin-input-container{margin-bottom:var(--spacing-medium)}.checkout-address-form__street .dropin-input-container:last-child{margin-bottom:0}.checkout-address-form__street .dropin-field__content{display:grid;grid-auto-flow:row;gap:var(--spacing-xxsmall)}.checkout-address-form__country_id .dropin-picker__options-container,.checkout-address-form__region .dropin-picker__options-container{z-index:100}.checkout-address-form__save{grid-column:1 / -1;justify-self:center}.checkout-fields-form__title{color:var(--color-neutral-800);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-fields-form__form{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-medium)}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-fields-form__form{grid-template-columns:1fr}}@media only screen and (min-width: 768px){.dropin-field--multiline{grid-column:span 2}}.checkout__content{display:grid;align-items:start;row-gap:var(--spacing-xbig)}.checkout__banner{margin-bottom:var(--spacing-xbig)}.checkout-title{color:var(--color-neutral-800);font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);border-bottom:var(--shape-border-width-3) solid var(--color-neutral-400);padding-bottom:var(--spacing-xsmall);padding-top:var(--spacing-small);margin:0}.checkout__content .dropin-divider{margin-bottom:0;width:100%}.checkout__content .checkout-billing-form__divider{margin-top:0}.checkout__content .checkout-billing-form__visible{display:block}.checkout__content .checkout-billing-form__hidden{display:none}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout__content{row-gap:var(--spacing-big)}.checkout-cart-summary .dropin-divider{margin:var(--spacing-medium) 0}}.checkout-login-form{display:grid}.checkout-login-form__heading{display:grid;grid-template-columns:repeat(2,1fr [col-start]);grid-auto-rows:max-content}.checkout-login-form__content{grid-auto-rows:max-content}.checkout-login-form__customer-details{display:grid;grid-auto-flow:row;gap:var(--spacing-xxsmall)}.checkout-login-form__customer-name{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.checkout-login-form__customer-email{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.checkout-login-form__title{grid-column-start:1;color:var(--color-neutral-800);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin-top:0}.checkout-login-form__sign-in,.checkout-login-form__sign-out{grid-column-start:2;color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);justify-self:flex-end;margin-top:var(--spacing-xxsmall)}a.checkout-login-form__link{font:var(--type-body-2-strong-font);margin-left:var(--spacing-xxsmall)}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-login-form__heading{grid-template-columns:repeat(1,1fr [col-start]);grid-template-rows:1fr}.checkout-login-form__sign-in,.checkout-login-form__sign-out{grid-column-start:1;align-self:flex-start;justify-self:flex-start;margin-top:0;margin-bottom:var(--spacing-medium)}}.checkout-payment-methods{position:relative;display:grid}.checkout-payment-methods__title{font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-payment-methods__wrapper{position:relative;display:grid}.checkout-payment-methods__methods{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-medium)}.checkout-payment-methods__content{margin-top:var(--spacing-medium)}.checkout-payment-methods--full-width{grid-template-columns:1fr}.checkout-payment-methods--loading{opacity:.4;pointer-events:none}.checkout-payment-methods__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.checkout__content [data-slot=PaymentMethods]:empty{display:none}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-payment-methods__methods{grid-template-columns:1fr}}.checkout-place-order{display:grid}.checkout-place-order__button{align-self:flex-end;justify-self:flex-end}@media only screen and (min-width:320px) and (max-width: 768px){.checkout-place-order__button{align-self:center;justify-self:stretch}}.checkout-out-of-stock{display:grid}.checkout-out-of-stock__button{margin-top:var(--spacing-medium);align-self:flex-end;justify-self:flex-end}.checkout-out-of-stock__icon .error-icon{color:var(--color-warning-500)}.checkout-overlay-loader{align-items:center;background:var(--color-neutral-50);display:flex;height:100vh;justify-content:center;left:0;opacity:.5;position:fixed;top:0;width:100%;z-index:9999}.checkout-server-error{position:relative;text-align:center;display:grid}.checkout-server-error__icon .error-icon{color:var(--color-alert-500)}.checkout-server-error a{font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing)}.checkout-toggle-button{display:block;position:relative;width:100%}.checkout-toggle-button__actionButton{cursor:pointer;background-color:var(--color-neutral-200);border:var(--shape-border-width-1) solid var(--color-neutral-400);border-radius:var(--shape-border-radius-1);font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);padding:var(--spacing-medium);align-items:center;display:grid}.checkout-toggle-button__selected .checkout-toggle-button__actionButton{background-color:var(--color-neutral-50);border:var(--shape-border-width-1) solid var(--color-neutral-800)}.checkout-toggle-button:has(input:focus-visible){outline:0 none;box-shadow:0 0 0 var(--shape-icon-stroke-4) var(--color-neutral-400);-webkit-box-shadow:0 0 0 var(--shape-icon-stroke-4) var(--color-neutral-400);-moz-box-shadow:0 0 0 var(--shape-icon-stroke-4) var(--color-neutral-400);border-radius:var(--shape-border-radius-1)}.checkout-toggle-button__radioButton.dropin-radio-button{cursor:pointer;position:absolute}.checkout-toggle-button__radioButton .dropin-radio-button__label:before{cursor:pointer;margin-right:0}.checkout-toggle-button__radioButton .dropin-radio-button__input:focus-visible+.dropin-radio-button__label:before{box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-600)}.checkout-toggle-button__content{display:flex;align-items:center;justify-content:center;margin-left:var(--spacing-big)}.checkout-toggle-button__icon{height:24px;margin-right:var(--spacing-xsmall)}`,{styleId:"checkout"});
3
- var p=Object.defineProperty;var g=(r,e,t)=>e in r?p(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>(g(r,typeof e!="symbol"?e+"":e,t),t);import{Render as h}from"@dropins/tools/lib.js";import{events as y}from"@dropins/tools/event-bus.js";import"./chunks/fixtures.js";import{c as b}from"./chunks/initialize.js";import{A as v}from"./chunks/address-form-fields2.js";import{S as w,C as O,a as S}from"./chunks/services.js";import{UIProvider as E}from"@dropins/tools/components.js";import{useState as A,useEffect as P,useMemo as I}from"@dropins/tools/preact-hooks.js";import{jsx as i}from"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact.js";import"@dropins/tools/fetch-graphql.js";import"./chunks/getCountries.js";class M{isAvailable(){return!!window.localStorage}getKeys(){return this.isAvailable()?Object.keys(window.localStorage):[]}setItem(e,t){this.isAvailable()&&window.localStorage.setItem(e,t)}getItem(e){return this.isAvailable()?window.localStorage.getItem(e):null}removeItem(e){this.isAvailable()&&window.localStorage.removeItem(e)}}class j{constructor(e,t){u(this,"namespace");u(this,"repository");this.namespace=e,this.repository=t}namespaced(e){return`${this.namespace}:${e}`}backup(e,t){return this.repository.setItem(this.namespaced(e),JSON.stringify(t))}restore(e){const t=this.repository.getItem(this.namespaced(e));return t?JSON.parse(t):null}remove(e){return this.repository.removeItem(this.namespaced(e))}clear(){this.repository.getKeys().filter(e=>e.startsWith(this.namespace)).forEach(e=>{this.repository.removeItem(e)})}}function C(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var T=function(e){return D(e)&&!L(e)};function D(r){return!!r&&typeof r=="object"}function L(r){var e=Object.prototype.toString.call(r);return e==="[object RegExp]"||e==="[object Date]"||k(r)}var U=typeof Symbol=="function"&&Symbol.for,_=U?Symbol.for("react.element"):60103;function k(r){return r.$$typeof===_}function B(r){return Array.isArray(r)?[]:{}}function s(r,e){return e.clone!==!1&&e.isMergeableObject(r)?o(B(r),r,e):r}function F(r,e,t){return r.concat(e).map(function(a){return s(a,t)})}function N(r,e){if(!e.customMerge)return o;var t=e.customMerge(r);return typeof t=="function"?t:o}function R(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(e){return Object.propertyIsEnumerable.call(r,e)}):[]}function f(r){return Object.keys(r).concat(R(r))}function m(r,e){try{return e in r}catch{return!1}}function K(r,e){return m(r,e)&&!(Object.hasOwnProperty.call(r,e)&&Object.propertyIsEnumerable.call(r,e))}function $(r,e,t){var a={};return t.isMergeableObject(r)&&f(r).forEach(function(n){a[n]=s(r[n],t)}),f(e).forEach(function(n){K(r,n)||(m(r,n)&&t.isMergeableObject(e[n])?a[n]=N(n,t)(r[n],e[n],t):a[n]=s(e[n],t))}),a}function o(r,e,t){t=t||{},t.arrayMerge=t.arrayMerge||F,t.isMergeableObject=t.isMergeableObject||T,t.cloneUnlessOtherwiseSpecified=s;var a=Array.isArray(e),n=Array.isArray(r),c=a===n;return c?a?t.arrayMerge(r,e,t):$(r,e,t):s(e,t)}o.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(a,n){return o(a,n,t)},{})};var x=o,Y=x;const H=C(Y),J={title:"Checkout",LoginForm:{title:"Contact details",account:"Already have an account?",ariaLabel:"Email",invalidEmailError:"Please enter a valid email address.",missingEmailError:"Enter an email address.",emailExists:{alreadyHaveAccount:"It looks like you already have an account.",signInButton:"Sign in",forFasterCheckout:"for a faster checkout."},floatingLabel:"Email *",placeholder:"Enter your email address",signIn:"Sign In",switch:"Do you want to switch account?",signOut:"Sign Out"},ShippingMethods:{title:"Shipping options",emptyState:"This order can't be shipped to the address provided. Please review the address details you entered and make sure they're correct."},ShippingAddress:{title:"Delivery"},BillingAddress:{title:"Billing Address"},AddressForm:{Validity:{badInput:"Provide a valid {field}.",patternMismatch:"Ensure you have entered a correct {field} format.",rangeOverflow:"Choose a valid {field} within the allowed range.",rangeUnderflow:"Choose a valid {field} within the allowed range.",tooLong:"This entry is too long. Keep it under {field} characters.",tooShort:"Use at least {field} characters.",typeMismatch:"Enter a valid {field}.",valueMissing:"Enter a {field}, this field is required."}},BillToShippingAddress:{title:"Bill to shipping address"},PaymentMethods:{title:"Payment",emptyState:"No payment methods available"},OutOfStock:{title:"Out of stock",message:"Your cart contains items that are out of stock or have limited availability. Please review your cart before placing the order.",button:"Review cart",lowInventory:{one:"Last item!",many:"Only {{count}} left!"},alert:"Out of stock!"},PlaceOrder:{button:"Place Order"},ServerError:{title:"We were unable to process your order",contactSupport:"If you continue to have issues, please contact support.",unexpected:"An unexpected error occurred while processing your order. Please try again later.",button:"Try again"},EmptyCart:{title:"Your cart is empty",button:"Start shopping"},ErrorBanner:{genericMessage:"Server error detected. Please check your connection and try again."},MergedCartBanner:{items:{one:"1 item from a previous session was added to your cart. Please review your new subtotal.",many:"{{count}} items from a previous session were added to your cart. Please review your new subtotal."}}},V={Checkout:J},W={default:V},q=({children:r})=>{var c;const[e,t]=A(),a=(c=b.getConfig())==null?void 0:c.langDefinitions;P(()=>{const l=y.on("locale",d=>{d!==e&&t(d)},{eager:!0});return()=>{l==null||l.off()}},[e]);const n=H(W,a??{});return i(E,{lang:e,langDefinitions:n,children:r})},z=({children:r})=>{const e=I(()=>new j("DROPIN__CHECKOUT",new M),[]);return i(w,{services:{backupService:e},children:i(v,{children:i(O,{children:i(S,{children:r})})})})},G=({children:r})=>i(z,{children:i(q,{children:r})}),ue=new h(i(G,{}));export{G as Provider,ue as render};
1
+ (function(i,o){try{if(typeof document<"u"){const t=document.createElement("style"),a=o.styleId;for(const e in o.attributes)t.setAttribute(e,o.attributes[e]);t.setAttribute("data-dropin",a),t.appendChild(document.createTextNode(i));const r=document.querySelector('style[data-dropin="sdk"]');if(r)r.after(t);else{const e=document.querySelector('link[rel="stylesheet"], style');e?e.before(t):document.head.append(t)}}}catch(t){console.error("dropin-styles (injectCodeFunction)",t)}})(`.checkout-bill-to-shipping-address{display:grid}.checkout-bill-to-shipping-address label{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);gap:0}
2
+ .checkout-shipping-methods{display:grid}.checkout-shipping-methods__title{color:var(--color-neutral-800);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-shipping-methods__content{position:relative;display:block}.checkout-shipping-methods__method{margin-bottom:var(--spacing-medium);width:fit-content;cursor:pointer;font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.checkout-shipping-methods__method:last-child{margin-bottom:0}.dropin-radio-button__label .dropin-price{color:var(--color-neutral-800);font-weight:400}.checkout-shipping-methods__options--loading{opacity:.4;pointer-events:none}.checkout-shipping-methods__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.checkout-shipping-address__skeleton{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-medium);flex-wrap:wrap;min-width:384px}.checkout-address-form__company,.checkout-address-form__street{grid-column:1 / -1}.checkout-address-form__street .dropin-input-container{margin-bottom:var(--spacing-medium)}.checkout-address-form__street .dropin-input-container:last-child{margin-bottom:0}.checkout-address-form__street .dropin-field__content{display:grid;grid-auto-flow:row;gap:var(--spacing-xxsmall)}.checkout-address-form__country_id .dropin-picker__options-container,.checkout-address-form__region .dropin-picker__options-container{z-index:100}.checkout-address-form__save{grid-column:1 / -1;justify-self:center}.checkout-fields-form__title{color:var(--color-neutral-800);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-fields-form__form{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-medium)}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-fields-form__form{grid-template-columns:1fr}}@media only screen and (min-width: 768px){.dropin-field--multiline{grid-column:span 2}}.checkout__content{display:grid;align-items:start;row-gap:var(--spacing-xbig)}.checkout__banner{margin-bottom:var(--spacing-xbig)}.checkout-title{color:var(--color-neutral-800);font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);border-bottom:var(--shape-border-width-3) solid var(--color-neutral-400);padding-bottom:var(--spacing-xsmall);padding-top:var(--spacing-small);margin:0}.checkout__content .dropin-divider{margin-bottom:0;width:100%}.checkout__content .checkout-billing-form__divider{margin-top:0}.checkout__content .checkout-billing-form__visible{display:block}.checkout__content .checkout-billing-form__hidden{display:none}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout__content{row-gap:var(--spacing-big)}.checkout-cart-summary .dropin-divider{margin:var(--spacing-medium) 0}}.checkout-login-form{display:grid}.checkout-login-form__heading{display:grid;grid-template-columns:repeat(2,1fr [col-start]);grid-auto-rows:max-content}.checkout-login-form__content{grid-auto-rows:max-content}.checkout-login-form__customer-details{display:grid;grid-auto-flow:row;gap:var(--spacing-xxsmall)}.checkout-login-form__customer-name{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.checkout-login-form__customer-email{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.checkout-login-form__title{grid-column-start:1;color:var(--color-neutral-800);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin-top:0}.checkout-login-form__sign-in,.checkout-login-form__sign-out{grid-column-start:2;color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);justify-self:flex-end;margin-top:var(--spacing-xxsmall)}a.checkout-login-form__link{font:var(--type-body-2-strong-font);margin-left:var(--spacing-xxsmall)}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-login-form__heading{grid-template-columns:repeat(1,1fr [col-start]);grid-template-rows:1fr}.checkout-login-form__sign-in,.checkout-login-form__sign-out{grid-column-start:1;align-self:flex-start;justify-self:flex-start;margin-top:0;margin-bottom:var(--spacing-medium)}}.checkout-payment-methods{position:relative;display:grid}.checkout-payment-methods__title{font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-payment-methods__wrapper{position:relative;display:grid}.checkout-payment-methods__methods{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-medium)}.checkout-payment-methods__content{margin-top:var(--spacing-medium)}.checkout-payment-methods--full-width{grid-template-columns:1fr}.checkout-payment-methods--loading{opacity:.4;pointer-events:none}.checkout-payment-methods__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.checkout__content [data-slot=PaymentMethods]:empty{display:none}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-payment-methods__methods{grid-template-columns:1fr}}.checkout-place-order{display:grid}.checkout-place-order__button{align-self:flex-end;justify-self:flex-end}@media only screen and (min-width:320px) and (max-width: 768px){.checkout-place-order__button{align-self:center;justify-self:stretch}}.checkout-estimate-shipping{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xxsmall);align-items:center;color:var(--color-neutral-700)}.checkout-estimate-shipping__label,.checkout-estimate-shipping__price{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.checkout-estimate-shipping__label--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.checkout-estimate-shipping__price--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.checkout-estimate-shipping__price{text-align:right}.checkout-estimate-shipping__label--bold,.checkout-estimate-shipping__price--bold{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.checkout-estimate-shipping__caption{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);color:var(--color-neutral-700)}.checkout-out-of-stock{display:grid}.checkout-out-of-stock__button{margin-top:var(--spacing-medium);align-self:flex-end;justify-self:flex-end}.checkout-out-of-stock__icon .error-icon{color:var(--color-warning-500)}.checkout-overlay-loader{align-items:center;background:var(--color-neutral-50);display:flex;height:100vh;justify-content:center;left:0;opacity:.5;position:fixed;top:0;width:100%;z-index:9999}.checkout-server-error{position:relative;text-align:center;display:grid}.checkout-server-error__icon .error-icon{color:var(--color-alert-500)}.checkout-server-error a{font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing)}.checkout-toggle-button{display:block;position:relative;width:100%}.checkout-toggle-button__actionButton{cursor:pointer;background-color:var(--color-neutral-200);border:var(--shape-border-width-1) solid var(--color-neutral-400);border-radius:var(--shape-border-radius-1);font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);padding:var(--spacing-medium);align-items:center;display:grid}.checkout-toggle-button__selected .checkout-toggle-button__actionButton{background-color:var(--color-neutral-50);border:var(--shape-border-width-1) solid var(--color-neutral-800)}.checkout-toggle-button:has(input:focus-visible){outline:0 none;box-shadow:0 0 0 var(--shape-icon-stroke-4) var(--color-neutral-400);-webkit-box-shadow:0 0 0 var(--shape-icon-stroke-4) var(--color-neutral-400);-moz-box-shadow:0 0 0 var(--shape-icon-stroke-4) var(--color-neutral-400);border-radius:var(--shape-border-radius-1)}.checkout-toggle-button__radioButton.dropin-radio-button{cursor:pointer;position:absolute}.checkout-toggle-button__radioButton .dropin-radio-button__label:before{cursor:pointer;margin-right:0}.checkout-toggle-button__radioButton .dropin-radio-button__input:focus-visible+.dropin-radio-button__label:before{box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-600)}.checkout-toggle-button__content{display:flex;align-items:center;justify-content:center;margin-left:var(--spacing-big)}.checkout-toggle-button__icon{height:24px;margin-right:var(--spacing-xsmall)}`,{styleId:"checkout"});
3
+ import{Render as m}from"@dropins/tools/lib.js";import{events as p}from"@dropins/tools/event-bus.js";import"./chunks/fixtures.js";import{c as g}from"./chunks/resetCustomer.js";import{A as y}from"./chunks/address-form-fields.js";import{UIProvider as h}from"@dropins/tools/components.js";import{useState as b,useEffect as v}from"@dropins/tools/preact-hooks.js";import{jsx as o}from"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact.js";import"@dropins/tools/fetch-graphql.js";import"./chunks/getCustomer.js";import"./chunks/getCart.graphql.js";function O(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var w=function(r){return E(r)&&!S(r)};function E(e){return!!e&&typeof e=="object"}function S(e){var r=Object.prototype.toString.call(e);return r==="[object RegExp]"||r==="[object Date]"||A(e)}var M=typeof Symbol=="function"&&Symbol.for,j=M?Symbol.for("react.element"):60103;function A(e){return e.$$typeof===j}function P(e){return Array.isArray(e)?[]:{}}function s(e,r){return r.clone!==!1&&r.isMergeableObject(e)?i(P(e),e,r):e}function I(e,r,t){return e.concat(r).map(function(a){return s(a,t)})}function T(e,r){if(!r.customMerge)return i;var t=r.customMerge(e);return typeof t=="function"?t:i}function C(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return Object.propertyIsEnumerable.call(e,r)}):[]}function d(e){return Object.keys(e).concat(C(e))}function f(e,r){try{return r in e}catch{return!1}}function D(e,r){return f(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))}function x(e,r,t){var a={};return t.isMergeableObject(e)&&d(e).forEach(function(n){a[n]=s(e[n],t)}),d(r).forEach(function(n){D(e,n)||(f(e,n)&&t.isMergeableObject(r[n])?a[n]=T(n,t)(e[n],r[n],t):a[n]=s(r[n],t))}),a}function i(e,r,t){t=t||{},t.arrayMerge=t.arrayMerge||I,t.isMergeableObject=t.isMergeableObject||w,t.cloneUnlessOtherwiseSpecified=s;var a=Array.isArray(r),n=Array.isArray(e),c=a===n;return c?a?t.arrayMerge(e,r,t):x(e,r,t):s(r,t)}i.all=function(r,t){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(a,n){return i(a,n,t)},{})};var B=i,L=B;const U=O(L),F={title:"Checkout",LoginForm:{title:"Contact details",account:"Already have an account?",ariaLabel:"Email",invalidEmailError:"Please enter a valid email address.",missingEmailError:"Enter an email address.",emailExists:{alreadyHaveAccount:"It looks like you already have an account.",signInButton:"Sign in",forFasterCheckout:"for a faster checkout."},floatingLabel:"Email *",placeholder:"Enter your email address",signIn:"Sign In",switch:"Do you want to switch account?",signOut:"Sign Out"},ShippingMethods:{title:"Shipping options",emptyState:"This order can't be shipped to the address provided. Please review the address details you entered and make sure they're correct."},ShippingAddress:{title:"Delivery"},BillingAddress:{title:"Billing Address"},AddressForm:{Validity:{badInput:"Provide a valid {field}.",patternMismatch:"Ensure you have entered a correct {field} format.",rangeOverflow:"Choose a valid {field} within the allowed range.",rangeUnderflow:"Choose a valid {field} within the allowed range.",tooLong:"This entry is too long. Keep it under {field} characters.",tooShort:"Use at least {field} characters.",typeMismatch:"Enter a valid {field}.",valueMissing:"Enter a {field}, this field is required."}},BillToShippingAddress:{title:"Bill to shipping address"},PaymentMethods:{title:"Payment",emptyState:"No payment methods available"},OutOfStock:{title:"Out of stock",message:"Your cart contains items that are out of stock or have limited availability. Please review your cart before placing the order.",button:"Review cart",lowInventory:{one:"Last item!",many:"Only {{count}} left!"},alert:"Out of stock!"},PlaceOrder:{button:"Place Order"},ServerError:{title:"We were unable to process your order",contactSupport:"If you continue to have issues, please contact support.",unexpected:"An unexpected error occurred while processing your order. Please try again later.",button:"Try again"},EmptyCart:{title:"Your cart is empty",button:"Start shopping"},ErrorBanner:{genericMessage:"Server error detected. Please check your connection and try again."},MergedCartBanner:{items:{one:"1 item from a previous session was added to your cart. Please review your new subtotal.",many:"{{count}} items from a previous session were added to your cart. Please review your new subtotal."}},EstimateShipping:{estimated:"Estimated Shipping",freeShipping:"free",label:"Shipping",taxToBeDetermined:"TBD",withTaxes:"Including taxes",withoutTaxes:"Excluding taxes"}},_={Checkout:F},R={default:_},N=({children:e})=>{var c;const[r,t]=b(),a=(c=g.getConfig())==null?void 0:c.langDefinitions;v(()=>{const l=p.on("locale",u=>{u!==r&&t(u)},{eager:!0});return()=>{l==null||l.off()}},[r]);const n=U(R,a??{});return o(h,{lang:r,langDefinitions:n,children:e})},k=({children:e})=>o(y,{children:e}),Y=({children:e})=>o(k,{children:o(N,{children:e})}),ee=new m(o(Y,{}));export{Y as Provider,ee as render};
@@ -0,0 +1,7 @@
1
+ import { Country } from '../data/models';
2
+
3
+ export declare const countryListSignal: import('@preact/signals-core').Signal<{
4
+ data?: Country[] | undefined;
5
+ pending: boolean;
6
+ }>;
7
+ //# sourceMappingURL=CountryListSignal.d.ts.map
@@ -1,5 +1,5 @@
1
- export * from './AuthenticationSignal';
2
1
  export * from './CartSignal';
2
+ export * from './CountryListSignal';
3
3
  export * from './CustomerSignal';
4
4
  export * from './EstimateShippingMethodsSignal';
5
5
  export * from './IsBillToShippingSignal';
@@ -1,5 +1,5 @@
1
1
  export declare function setupCheckout({ clearLocalStorage, dropinProps, }?: {
2
2
  clearLocalStorage?: boolean | undefined;
3
3
  dropinProps?: {} | undefined;
4
- }): void;
4
+ }): Promise<void>;
5
5
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- import"@dropins/tools/event-bus.js";import{i as d}from"./fixtures.js";import{createContext as i}from"@dropins/tools/preact.js";import{useContext as n,useState as m,useEffect as u}from"@dropins/tools/preact-hooks.js";import{jsx as F}from"@dropins/tools/preact-jsx-runtime.js";const r=i(void 0);function p({children:e}){const[s,t]=m({});return u(()=>{d().then(o=>t({fields:o}))},[]),F(r.Provider,{value:s,children:e})}function v(){const e=n(r);if(e!==void 0)return e;throw new Error("useAddressFormFields must be used within an AddressFormFieldsProvider")}export{p as A,v as u};
@@ -1,7 +0,0 @@
1
- import{g as o,p as a,q as l}from"./fixtures.js";const c=t=>{if(t)return t.filter(e=>!!e).filter(e=>{const{two_letter_abbreviation:r,full_name_locale:n}=e;return!!r&&!!n}).map(e=>{const{two_letter_abbreviation:r,full_name_locale:n}=e;return{value:r,label:n}})},u=`
2
- query getCountries {
3
- countries {
4
- two_letter_abbreviation
5
- full_name_locale
6
- }
7
- }`,s=async()=>o(u,{method:"GET",cache:"no-cache"}).then(({data:t,errors:e})=>(e&&a(e),c(t.countries))).catch(l);export{s as g};
@@ -1,14 +0,0 @@
1
- import{o as d,n as a}from"./fixtures.js";import{Initializer as f}from"@dropins/tools/lib.js";import{events as s}from"@dropins/tools/event-bus.js";const p=`
2
- query getStoreConfig {
3
- storeConfig {
4
- countries_with_required_region
5
- default_country
6
- display_state_if_optional
7
- is_guest_checkout_enabled
8
- is_one_page_checkout_enabled
9
- locale
10
- optional_zip_countries
11
- store_code
12
- }
13
- }
14
- `,g="US",t={defaultCountry:g,countriesWithRequiredRegion:[],displayStateIfOptional:!1,countriesWithOptionalZipCode:[],isGuestCheckoutEnabled:!1,isOnePageCheckoutEnabled:!1},_=async()=>await d({type:"query",query:p,options:{method:"GET",cache:"no-cache"},path:"storeConfig",signalType:"storeConfig",transformer:C,defaultValueOnFail:t});function C(e){if(!e)return t;const{default_country:i,countries_with_required_region:o,display_state_if_optional:r,optional_zip_countries:n,is_guest_checkout_enabled:l,is_one_page_checkout_enabled:c}=e;return{defaultCountry:i||t.defaultCountry,countriesWithRequiredRegion:(o==null?void 0:o.split(","))||t.countriesWithRequiredRegion,displayStateIfOptional:r||t.displayStateIfOptional,countriesWithOptionalZipCode:(n==null?void 0:n.split(","))||t.countriesWithOptionalZipCode,isGuestCheckoutEnabled:l||t.isGuestCheckoutEnabled,isOnePageCheckoutEnabled:c||t.isOnePageCheckoutEnabled}}const u=new f({init:async e=>{const i={guestViewCookieExpirationDays:30,...e};u.config.setConfig(i),_()},listeners:()=>[s.on("cart/data",e=>{a.cartId=(e==null?void 0:e.id)||null}),s.on("authenticated",e=>{a.authenticated=e},{eager:!0})]}),k=u.config;export{g as D,t as S,k as c,_ as g,u as i};
@@ -1 +0,0 @@
1
- import{createContext as o}from"@dropins/tools/preact.js";import{useContext as n,useReducer as d,useState as I,useEffect as S}from"@dropins/tools/preact-hooks.js";import{jsx as u}from"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/event-bus.js";import"./fixtures.js";import{g as c}from"./getCountries.js";var P=(r=>(r.EMPTY="EMPTY",r.IN_PROGRESS="IN_PROGRESS",r.INIT="INIT",r.LOADING="LOADING",r.COMPLETE="COMPLETE",r))(P||{}),f=(r=>(r[r.CART_UPDATED=0]="CART_UPDATED",r[r.ORDER_PLACED=1]="ORDER_PLACED",r[r.USER_AUTHENTICATED=2]="USER_AUTHENTICATED",r[r.USER_UNAUTHENTICATED=3]="USER_UNAUTHENTICATED",r[r.USER_SIGN_OUT=4]="USER_SIGN_OUT",r))(f||{});const N=(r,e)=>{const i=s=>s!==void 0?s===null||s!=null&&s.isEmpty?"EMPTY":"IN_PROGRESS":"INIT";let t=r;switch(r){case"INIT":e.type===0&&(t=i(e.payload));break;case"IN_PROGRESS":e.type===1&&(t="COMPLETE"),e.type===2&&(t="LOADING"),e.type===4&&(t="LOADING"),e.type===0&&(t=i(e.payload));break;case"EMPTY":case"LOADING":e.type===3&&(t="EMPTY"),e.type===0&&(t=i(e.payload))}return t},a=o(void 0),_=({children:r})=>{const[e,i]=d(N,"INIT"),t={state:e,dispatch:i};return u(a.Provider,{value:t,children:r})};function m(){const r=n(a);if(r!==void 0)return r;throw new Error("useCheckoutState must be used within a CheckoutStateProvider")}const E=o(void 0);function l({children:r}){const[e,i]=I({});return S(()=>{c().then(t=>i({countries:t}))},[]),u(E.Provider,{value:e,children:r})}function x(){const r=n(E);if(r!==void 0)return r;throw new Error("useCountries must be used within a CountriesProvider")}const T=o({});function y({children:r,services:e}){return u(T.Provider,{value:e,children:r})}function G(){const r=n(T);if(r!==void 0)return r;throw new Error("useServices must be used within a ServicesProvider")}export{l as C,y as S,_ as a,f as b,P as c,x as d,G as e,m as u};
@@ -1 +0,0 @@
1
- const u=e=>e==null,i=(e,r)=>e.amount.value-r.amount.value,c=e=>!(!e||!e.method_code||!e.method_title||u(e.amount.value)||!e.amount.currency),n=e=>({amount:{value:e.amount.value,currency:e.amount.currency},title:e.method_title,code:e.method_code,carrier:{code:e.carrier_code,title:e.carrier_title},value:`${e.carrier_code} - ${e.method_code}`,...e.price_excl_tax&&{amountExclTax:{value:e.price_excl_tax.value,currency:e.price_excl_tax.currency}},...e.price_incl_tax&&{amountInclTax:{value:e.price_incl_tax.value,currency:e.price_incl_tax.currency}}}),t=e=>{if(c(e))return n(e)},l=e=>{if(e)return e.filter(c).map(r=>n(r)).sort(i)};export{t as a,l as t};
@@ -1,44 +0,0 @@
1
- import { Cart } from '../data/models';
2
- import { FunctionComponent } from 'preact';
3
- import { Dispatch } from 'preact/hooks';
4
-
5
- export declare enum CheckoutState {
6
- EMPTY = "EMPTY",
7
- IN_PROGRESS = "IN_PROGRESS",
8
- INIT = "INIT",
9
- LOADING = "LOADING",
10
- COMPLETE = "COMPLETE"
11
- }
12
- export declare enum CheckoutEvent {
13
- CART_UPDATED = 0,
14
- ORDER_PLACED = 1,
15
- USER_AUTHENTICATED = 2,
16
- USER_UNAUTHENTICATED = 3,
17
- USER_SIGN_OUT = 4
18
- }
19
- type CartUpdated = {
20
- type: CheckoutEvent.CART_UPDATED;
21
- payload?: Cart | null;
22
- };
23
- type UserAuthenticated = {
24
- type: CheckoutEvent.USER_AUTHENTICATED;
25
- };
26
- type UserUnAuthenticated = {
27
- type: CheckoutEvent.USER_UNAUTHENTICATED;
28
- };
29
- type UserSignedOut = {
30
- type: CheckoutEvent.USER_SIGN_OUT;
31
- };
32
- type OrderPlaced = {
33
- type: CheckoutEvent.ORDER_PLACED;
34
- };
35
- type CheckoutAction = CartUpdated | UserAuthenticated | UserUnAuthenticated | OrderPlaced | UserSignedOut;
36
- type CheckoutContextValue = {
37
- state: CheckoutState;
38
- dispatch: Dispatch<CheckoutAction>;
39
- };
40
- export declare const CheckoutContext: import('preact').Context<CheckoutContextValue | undefined>;
41
- export declare const CheckoutStateProvider: FunctionComponent;
42
- export declare function useCheckoutState(): CheckoutContextValue;
43
- export {};
44
- //# sourceMappingURL=checkout.d.ts.map
@@ -1,13 +0,0 @@
1
- import { ComponentChildren } from 'preact';
2
- import { Country as CountryModel } from '../data/models/country';
3
-
4
- type Context = {
5
- countries?: CountryModel[];
6
- };
7
- type CountriesProps = {
8
- children: ComponentChildren;
9
- };
10
- declare function CountriesProvider({ children }: CountriesProps): import("preact").JSX.Element;
11
- declare function useCountries(): Context;
12
- export { CountriesProvider, useCountries };
13
- //# sourceMappingURL=countries.d.ts.map
@@ -1,13 +0,0 @@
1
- import { BackupService } from '../services';
2
-
3
- export interface Services {
4
- backupService: BackupService;
5
- }
6
- export declare const ServicesContext: import('preact').Context<Services>;
7
- export type ServicesProviderProps = {
8
- children: any;
9
- services: Services;
10
- };
11
- export declare function ServicesProvider({ children, services, }: ServicesProviderProps): import("preact").JSX.Element;
12
- export declare function useServices(): Services;
13
- //# sourceMappingURL=services.d.ts.map
@@ -1,2 +0,0 @@
1
- export * from './useAuthentication';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +0,0 @@
1
- export declare function useAuthentication(): void;
2
- //# sourceMappingURL=useAuthentication.d.ts.map
@@ -1,10 +0,0 @@
1
- import { Repository } from '../services/backup';
2
-
3
- export declare class LocalStorage implements Repository {
4
- isAvailable(): boolean;
5
- getKeys(): string[];
6
- setItem(key: string, value: string): void;
7
- getItem(key: string): string | null;
8
- removeItem(key: string): void;
9
- }
10
- //# sourceMappingURL=localStorage.d.ts.map
@@ -1,17 +0,0 @@
1
- export interface Repository {
2
- getKeys(): string[];
3
- getItem(key: string): string | null;
4
- setItem(key: string, value: string): void;
5
- removeItem(key: string): void;
6
- }
7
- export declare class BackupService {
8
- private namespace;
9
- private repository;
10
- constructor(namespace: string, repository: Repository);
11
- private namespaced;
12
- backup<T>(key: string, value: T): void;
13
- restore<T>(key: string): T | null;
14
- remove(key: string): void;
15
- clear(): void;
16
- }
17
- //# sourceMappingURL=backup.d.ts.map
@@ -1,2 +0,0 @@
1
- export * from './backup';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +0,0 @@
1
- export declare const isAuthenticatedSignal: import('@preact/signals-core').Signal<boolean | null>;
2
- //# sourceMappingURL=AuthenticationSignal.d.ts.map