@dropins/storefront-checkout 2.1.0-alpha1 → 2.1.0-alpha2

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 (104) hide show
  1. package/api/getCompanyCredit/getCompanyCredit.d.ts +4 -0
  2. package/api/getCompanyCredit/graphql/getCompanyCredit.graphql.d.ts +18 -0
  3. package/api/getCompanyCredit/graphql/index.d.ts +18 -0
  4. package/api/getCompanyCredit/index.d.ts +18 -0
  5. package/api/graphql/PaymentMethodFragment.graphql.d.ts +1 -1
  6. package/api/index.d.ts +1 -0
  7. package/api/initialize/initialize.d.ts +18 -3
  8. package/api/initialize/listeners.d.ts +3 -17
  9. package/api.js +2 -2
  10. package/api.js.map +1 -1
  11. package/chunks/PaymentOnAccount2.js +4 -0
  12. package/chunks/PaymentOnAccount2.js.map +1 -0
  13. package/chunks/PurchaseOrder.js +4 -0
  14. package/chunks/PurchaseOrder.js.map +1 -0
  15. package/chunks/classifiers.js +4 -0
  16. package/chunks/classifiers.js.map +1 -0
  17. package/chunks/events.js +1 -1
  18. package/chunks/events.js.map +1 -1
  19. package/chunks/events2.js +1 -1
  20. package/chunks/events2.js.map +1 -1
  21. package/chunks/fetch-graphql.js +2 -2
  22. package/chunks/fetch-graphql.js.map +1 -1
  23. package/chunks/getCompanyCredit.js +15 -0
  24. package/chunks/getCompanyCredit.js.map +1 -0
  25. package/chunks/guards.js +1 -1
  26. package/chunks/render.js +10 -0
  27. package/chunks/render.js.map +1 -0
  28. package/chunks/setBillingAddress.js +1 -1
  29. package/chunks/setGuestEmailOnCart.js +1 -1
  30. package/chunks/setGuestEmailOnCart.js.map +1 -1
  31. package/chunks/setShippingAddress.js +10 -10
  32. package/chunks/setShippingAddress.js.map +1 -1
  33. package/chunks/setShippingMethods.js +2 -2
  34. package/chunks/synchronizeCheckout.js +7 -7
  35. package/chunks/synchronizeCheckout.js.map +1 -1
  36. package/components/PaymentOnAccount/PaymentOnAccount.d.ts +17 -0
  37. package/components/PaymentOnAccount/PaymentOnAccountSkeleton.d.ts +4 -0
  38. package/components/PaymentOnAccount/index.d.ts +20 -0
  39. package/components/PurchaseOrder/PurchaseOrder.d.ts +10 -0
  40. package/components/PurchaseOrder/index.d.ts +19 -0
  41. package/components/index.d.ts +3 -1
  42. package/containers/AddressValidation.js +1 -1
  43. package/containers/AddressValidation.js.map +1 -1
  44. package/containers/BillToShippingAddress.js +1 -1
  45. package/containers/BillToShippingAddress.js.map +1 -1
  46. package/containers/EstimateShipping.js +1 -1
  47. package/containers/EstimateShipping.js.map +1 -1
  48. package/containers/LoginForm.js +1 -1
  49. package/containers/LoginForm.js.map +1 -1
  50. package/containers/MergedCartBanner.js +1 -1
  51. package/containers/MergedCartBanner.js.map +1 -1
  52. package/containers/OutOfStock.js +1 -1
  53. package/containers/OutOfStock.js.map +1 -1
  54. package/containers/PaymentMethods/PaymentMethods.d.ts +8 -6
  55. package/containers/PaymentMethods/handlers.d.ts +11 -0
  56. package/containers/PaymentMethods.js +1 -1
  57. package/containers/PaymentMethods.js.map +1 -1
  58. package/containers/PaymentOnAccount/PaymentOnAccount.d.ts +10 -0
  59. package/containers/PaymentOnAccount/index.d.ts +11 -0
  60. package/containers/PaymentOnAccount.d.ts +3 -0
  61. package/containers/PaymentOnAccount.js +4 -0
  62. package/containers/PaymentOnAccount.js.map +1 -0
  63. package/containers/PlaceOrder/PlaceOrder.d.ts +2 -1
  64. package/containers/PlaceOrder.js +1 -1
  65. package/containers/PlaceOrder.js.map +1 -1
  66. package/containers/PurchaseOrder/PurchaseOrder.d.ts +10 -0
  67. package/containers/PurchaseOrder/index.d.ts +19 -0
  68. package/containers/PurchaseOrder.d.ts +3 -0
  69. package/containers/PurchaseOrder.js +4 -0
  70. package/containers/PurchaseOrder.js.map +1 -0
  71. package/containers/ServerError/ServerError.d.ts +2 -1
  72. package/containers/ServerError.js +1 -1
  73. package/containers/ServerError.js.map +1 -1
  74. package/containers/ShippingMethods/ShippingMethods.d.ts +2 -1
  75. package/containers/ShippingMethods.js +1 -1
  76. package/containers/ShippingMethods.js.map +1 -1
  77. package/containers/TermsAndConditions.js +1 -1
  78. package/containers/TermsAndConditions.js.map +1 -1
  79. package/containers/index.d.ts +2 -0
  80. package/data/models/company-credit.d.ts +7 -0
  81. package/data/models/index.d.ts +1 -0
  82. package/data/models/payment-method.d.ts +2 -0
  83. package/data/transforms/index.d.ts +1 -0
  84. package/data/transforms/transform-cart-address.d.ts +2 -0
  85. package/data/transforms/transform-company-credit.d.ts +7 -0
  86. package/data/transforms/transform-quote-address.d.ts +2 -0
  87. package/fragments.js +8 -7
  88. package/fragments.js.map +1 -1
  89. package/i18n/en_US.json.d.ts +20 -0
  90. package/lib/errors/classifiers.d.ts +3 -1
  91. package/lib/utils/api.d.ts +1 -1
  92. package/lib/utils.js +1 -1
  93. package/lib/utils.js.map +1 -1
  94. package/package.json +1 -1
  95. package/render.js +5 -5
  96. package/render.js.map +1 -1
  97. package/tests/fixtures/fragments/cart.d.ts +4 -0
  98. package/tests/fixtures/helpers/session-storage.d.ts +68 -0
  99. package/tests/fixtures/index.d.ts +1 -0
  100. package/tests/fixtures/queries/get-company-credit.d.ts +14 -0
  101. package/tests/fixtures/queries/index.d.ts +1 -0
  102. package/types/index.d.ts +2 -1
  103. package/types/storefront.d.ts +1 -1
  104. package/types/utils.d.ts +19 -0
@@ -0,0 +1,4 @@
1
+ import { CompanyCredit } from '../../data/models';
2
+
3
+ export declare const getCompanyCredit: () => Promise<CompanyCredit | null>;
4
+ //# sourceMappingURL=getCompanyCredit.d.ts.map
@@ -0,0 +1,18 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
17
+ export declare const getCompanyCreditQuery = "\n query getCompanyCredit {\n company {\n credit {\n available_credit {\n value\n currency\n }\n }\n }\n }\n";
18
+ //# sourceMappingURL=getCompanyCredit.graphql.d.ts.map
@@ -0,0 +1,18 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
17
+ export * from './getCompanyCredit.graphql';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,18 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2024 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
17
+ export * from './getCompanyCredit';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -15,5 +15,5 @@
15
15
  * from Adobe.
16
16
  *******************************************************************/
17
17
  export declare const AVAILABLE_PAYMENT_METHOD_FRAGMENT = "\n fragment AVAILABLE_PAYMENT_METHOD_FRAGMENT on AvailablePaymentMethod {\n code\n title\n }\n";
18
- export declare const SELECTED_PAYMENT_METHOD_FRAGMENT = "\n fragment SELECTED_PAYMENT_METHOD_FRAGMENT on SelectedPaymentMethod {\n code\n title\n }\n";
18
+ export declare const SELECTED_PAYMENT_METHOD_FRAGMENT = "\n fragment SELECTED_PAYMENT_METHOD_FRAGMENT on SelectedPaymentMethod {\n code\n title\n purchase_order_number\n }\n";
19
19
  //# sourceMappingURL=PaymentMethodFragment.graphql.d.ts.map
package/api/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export * from './estimateShippingMethods';
19
19
  export * from './fetch-graphql';
20
20
  export * from './getCart';
21
21
  export * from './getCheckoutAgreements';
22
+ export * from './getCompanyCredit';
22
23
  export * from './getCustomer';
23
24
  export * from './getNegotiableQuote';
24
25
  export * from './getStoreConfig';
@@ -1,12 +1,27 @@
1
- import { Cart as CartModel, Customer as CustomerModel } from '../../data/models';
2
- import { Lang } from '@dropins/tools/types/elsie/src/i18n';
1
+ import { Cart as CartModel, Customer as CustomerModel, ShippingMethod } from '../../data/models';
2
+ import { Filter, Selector } from '../../types/utils';
3
+ import { definition } from '@dropins/tools/types/elsie/src/i18n';
3
4
  import { Initializer, Model } from '@dropins/tools/types/elsie/src/lib';
4
5
 
5
6
  export type ConfigProps = {
6
7
  defaults?: {
7
8
  isBillToShipping?: boolean;
9
+ selectedShippingMethod?: Selector<ShippingMethod>;
10
+ };
11
+ shipping?: {
12
+ filterOptions?: Filter<ShippingMethod>;
13
+ };
14
+ features?: {
15
+ b2b?: {
16
+ quotes?: boolean;
17
+ routeLogin?: () => string | void;
18
+ };
19
+ };
20
+ langDefinitions?: typeof definition & {
21
+ default: {
22
+ Checkout: any;
23
+ };
8
24
  };
9
- langDefinitions?: Lang;
10
25
  models?: {
11
26
  CartModel?: Model<CartModel>;
12
27
  CustomerModel?: Model<CustomerModel>;
@@ -1,20 +1,6 @@
1
- /********************************************************************
2
- * ADOBE CONFIDENTIAL
3
- * __________________
4
- *
5
- * Copyright 2024 Adobe
6
- * All Rights Reserved.
7
- *
8
- * NOTICE: All information contained herein is, and remains
9
- * the property of Adobe and its suppliers, if any. The intellectual
10
- * and technical concepts contained herein are proprietary to Adobe
11
- * and its suppliers and are protected by all applicable intellectual
12
- * property laws, including trade secret and copyright laws.
13
- * Dissemination of this information or reproduction of this material
14
- * is strictly forbidden unless prior written permission is obtained
15
- * from Adobe.
16
- *******************************************************************/
17
- export declare const addCheckoutEventListeners: () => ({
1
+ import { ConfigProps } from '..';
2
+
3
+ export declare const addCheckoutEventListeners: (config: ConfigProps | undefined) => ({
18
4
  off(): void;
19
5
  } | undefined)[];
20
6
  //# sourceMappingURL=listeners.d.ts.map
package/api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{a as A,c as x,g as G,b as S,i as T,d as k,r as O,s as y}from"./chunks/synchronizeCheckout.js";import{e as M,s as b}from"./chunks/setShippingAddress.js";import{d as s}from"./chunks/fetch-graphql.js";import{D as N,S as Q,f as U,g as R,i as q,j as v,r as z,b as D,c as K,e as L}from"./chunks/fetch-graphql.js";import"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";import{A as o}from"./chunks/checkout.js";import{g as w,i as B,s as I}from"./chunks/setGuestEmailOnCart.js";import{s as V}from"./chunks/setBillingAddress.js";import{s as J}from"./chunks/setPaymentMethod.js";import{s as X,s as Z}from"./chunks/setShippingMethods.js";import"./fragments.js";import"./chunks/transform-shipping-methods.js";import"./chunks/values.js";import"./chunks/transform-shipping-estimate.js";import"./chunks/guards.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";const r=t=>t?t.filter(e=>!!e).map(e=>({id:e.agreement_id,name:e.name,mode:o[e.mode],text:e.checkbox_text,content:{value:e.content,html:e.is_html,height:e.content_height??null}})):[],a=`
3
+ import{a as A,c as G,g as S,b as T,i as k,d as y,r as O,s as F}from"./chunks/synchronizeCheckout.js";import{e as b,s as H}from"./chunks/setShippingAddress.js";import{d as o}from"./chunks/fetch-graphql.js";import{D as Q,S as U,f as R,g as q,e as v,i as z,r as D,a as K,b as L,c as w}from"./chunks/fetch-graphql.js";import"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";import{A as s}from"./chunks/checkout.js";import{g as I}from"./chunks/getCompanyCredit.js";import{g as V,i as Y,s as j}from"./chunks/setGuestEmailOnCart.js";import{s as W}from"./chunks/setBillingAddress.js";import{s as Z}from"./chunks/setPaymentMethod.js";import{s as ee,s as te}from"./chunks/setShippingMethods.js";import"./fragments.js";import"./chunks/transform-shipping-methods.js";import"./chunks/classifiers.js";import"./chunks/transform-shipping-estimate.js";import"./chunks/values.js";import"./chunks/guards.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";const r=t=>t?t.filter(e=>!!e).map(e=>({id:e.agreement_id,name:e.name,mode:s[e.mode],text:e.checkbox_text,content:{value:e.content,html:e.is_html,height:e.content_height??null}})):[],a=`
4
4
  query GET_CHECKOUT_AGREEMENTS {
5
5
  checkoutAgreements {
6
6
  agreement_id
@@ -12,5 +12,5 @@ import{a as A,c as x,g as G,b as S,i as T,d as k,r as O,s as y}from"./chunks/syn
12
12
  name
13
13
  }
14
14
  }
15
- `,f=async()=>await s({defaultValueOnFail:[],options:{method:"GET",cache:"no-cache"},path:"checkoutAgreements",query:a,transformer:r,type:"query"});export{N as DEFAULT_COUNTRY,Q as STORE_CONFIG_DEFAULTS,A as authenticateCustomer,x as config,M as estimateShippingMethods,U as fetchGraphQl,G as getCart,f as getCheckoutAgreements,R as getConfig,w as getCustomer,S as getNegotiableQuote,q as getStoreConfig,v as getStoreConfigCache,T as initialize,k as initializeCheckout,B as isEmailAvailable,z as removeFetchGraphQlHeader,O as resetCheckout,V as setBillingAddress,D as setEndpoint,K as setFetchGraphQlHeader,L as setFetchGraphQlHeaders,I as setGuestEmailOnCart,J as setPaymentMethod,b as setShippingAddress,X as setShippingMethods,Z as setShippingMethodsOnCart,y as synchronizeCheckout};
15
+ `,E=async()=>await o({defaultValueOnFail:[],options:{method:"GET",cache:"no-cache"},path:"checkoutAgreements",query:a,transformer:r,type:"query"});export{Q as DEFAULT_COUNTRY,U as STORE_CONFIG_DEFAULTS,A as authenticateCustomer,G as config,b as estimateShippingMethods,R as fetchGraphQl,S as getCart,E as getCheckoutAgreements,I as getCompanyCredit,q as getConfig,V as getCustomer,T as getNegotiableQuote,v as getStoreConfig,z as getStoreConfigCache,k as initialize,y as initializeCheckout,Y as isEmailAvailable,D as removeFetchGraphQlHeader,O as resetCheckout,W as setBillingAddress,K as setEndpoint,L as setFetchGraphQlHeader,w as setFetchGraphQlHeaders,j as setGuestEmailOnCart,Z as setPaymentMethod,H as setShippingAddress,ee as setShippingMethods,te as setShippingMethodsOnCart,F as synchronizeCheckout};
16
16
  //# sourceMappingURL=api.js.map
package/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sources":["/@dropins/storefront-checkout/src/data/transforms/transform-checkout-agreements.ts","/@dropins/storefront-checkout/src/api/getCheckoutAgreements/graphql/getCheckoutAgreements.graphql.ts","/@dropins/storefront-checkout/src/api/getCheckoutAgreements/getCheckoutAgreements.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n AgreementMode,\n CheckoutAgreement as CheckoutAgreementModel,\n} from '@/checkout/data/models';\nimport { Get_Checkout_AgreementsQuery } from '@/checkout/__generated__/types';\n\ntype CheckoutAgreements = Get_Checkout_AgreementsQuery['checkoutAgreements'];\ntype FilteredAgreement = NonNullable<NonNullable<CheckoutAgreements>[0]>;\n\nexport const transformCheckoutAgreements = (\n data: CheckoutAgreements\n): CheckoutAgreementModel[] => {\n if (!data) return [];\n\n return data\n .filter((agreement): agreement is FilteredAgreement => !!agreement)\n .map((agreement) => ({\n id: agreement.agreement_id,\n name: agreement.name,\n mode: AgreementMode[agreement.mode],\n text: agreement.checkbox_text,\n content: {\n value: agreement.content,\n html: agreement.is_html,\n height: agreement.content_height ?? null,\n },\n }));\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const GET_CHECKOUT_AGREEMENTS = /* GraphQL */ `\n query GET_CHECKOUT_AGREEMENTS {\n checkoutAgreements {\n agreement_id\n checkbox_text\n content\n content_height\n is_html\n mode\n name\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CheckoutAgreement } from '@/checkout/data/models';\nimport { transformCheckoutAgreements } from '@/checkout/data/transforms';\nimport { dispatchApiCall } from '@/checkout/lib';\nimport { GET_CHECKOUT_AGREEMENTS } from './graphql/getCheckoutAgreements.graphql';\n\nexport const getCheckoutAgreements = async (): Promise<CheckoutAgreement[]> => {\n return await dispatchApiCall({\n defaultValueOnFail: [],\n options: { method: 'GET', cache: 'no-cache' },\n path: 'checkoutAgreements',\n query: GET_CHECKOUT_AGREEMENTS,\n transformer: transformCheckoutAgreements,\n type: 'query',\n });\n};\n"],"names":["transformCheckoutAgreements","data","agreement","AgreementMode","GET_CHECKOUT_AGREEMENTS","getCheckoutAgreements","dispatchApiCall"],"mappings":"03BA0Ba,MAAAA,EACXC,GAEKA,EAEEA,EACJ,OAAQC,GAA8C,CAAC,CAACA,CAAS,EACjE,IAAKA,IAAe,CACnB,GAAIA,EAAU,aACd,KAAMA,EAAU,KAChB,KAAMC,EAAcD,EAAU,IAAI,EAClC,KAAMA,EAAU,cAChB,QAAS,CACP,MAAOA,EAAU,QACjB,KAAMA,EAAU,QAChB,OAAQA,EAAU,gBAAkB,IAAA,CACtC,EACA,EAdc,CAAC,ECZRE,EAAwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECKxCC,EAAwB,SAC5B,MAAMC,EAAgB,CAC3B,mBAAoB,CAAC,EACrB,QAAS,CAAE,OAAQ,MAAO,MAAO,UAAW,EAC5C,KAAM,qBACN,MAAOF,EACP,YAAaJ,EACb,KAAM,OAAA,CACP"}
1
+ {"version":3,"file":"api.js","sources":["/@dropins/storefront-checkout/src/data/transforms/transform-checkout-agreements.ts","/@dropins/storefront-checkout/src/api/getCheckoutAgreements/graphql/getCheckoutAgreements.graphql.ts","/@dropins/storefront-checkout/src/api/getCheckoutAgreements/getCheckoutAgreements.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n AgreementMode,\n CheckoutAgreement as CheckoutAgreementModel,\n} from '@/checkout/data/models';\nimport { Get_Checkout_AgreementsQuery } from '@/checkout/__generated__/types';\n\ntype CheckoutAgreements = Get_Checkout_AgreementsQuery['checkoutAgreements'];\ntype FilteredAgreement = NonNullable<NonNullable<CheckoutAgreements>[0]>;\n\nexport const transformCheckoutAgreements = (\n data: CheckoutAgreements\n): CheckoutAgreementModel[] => {\n if (!data) return [];\n\n return data\n .filter((agreement): agreement is FilteredAgreement => !!agreement)\n .map((agreement) => ({\n id: agreement.agreement_id,\n name: agreement.name,\n mode: AgreementMode[agreement.mode],\n text: agreement.checkbox_text,\n content: {\n value: agreement.content,\n html: agreement.is_html,\n height: agreement.content_height ?? null,\n },\n }));\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const GET_CHECKOUT_AGREEMENTS = /* GraphQL */ `\n query GET_CHECKOUT_AGREEMENTS {\n checkoutAgreements {\n agreement_id\n checkbox_text\n content\n content_height\n is_html\n mode\n name\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CheckoutAgreement } from '@/checkout/data/models';\nimport { transformCheckoutAgreements } from '@/checkout/data/transforms';\nimport { dispatchApiCall } from '@/checkout/lib';\nimport { GET_CHECKOUT_AGREEMENTS } from './graphql/getCheckoutAgreements.graphql';\n\nexport const getCheckoutAgreements = async (): Promise<CheckoutAgreement[]> => {\n return await dispatchApiCall({\n defaultValueOnFail: [],\n options: { method: 'GET', cache: 'no-cache' },\n path: 'checkoutAgreements',\n query: GET_CHECKOUT_AGREEMENTS,\n transformer: transformCheckoutAgreements,\n type: 'query',\n });\n};\n"],"names":["transformCheckoutAgreements","data","agreement","AgreementMode","GET_CHECKOUT_AGREEMENTS","getCheckoutAgreements","dispatchApiCall"],"mappings":"68BA0Ba,MAAAA,EACXC,GAEKA,EAEEA,EACJ,OAAQC,GAA8C,CAAC,CAACA,CAAS,EACjE,IAAKA,IAAe,CACnB,GAAIA,EAAU,aACd,KAAMA,EAAU,KAChB,KAAMC,EAAcD,EAAU,IAAI,EAClC,KAAMA,EAAU,cAChB,QAAS,CACP,MAAOA,EAAU,QACjB,KAAMA,EAAU,QAChB,OAAQA,EAAU,gBAAkB,IAAA,CACtC,EACA,EAdc,CAAC,ECZRE,EAAwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECKxCC,EAAwB,SAC5B,MAAMC,EAAgB,CAC3B,mBAAoB,CAAC,EACrB,QAAS,CAAE,OAAQ,MAAO,MAAO,UAAW,EAC5C,KAAM,qBACN,MAAOF,EACP,YAAaJ,EACb,KAAM,OAAA,CACP"}
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{jsxs as A,jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{useState as m,useCallback as g,useEffect as N}from"@dropins/tools/preact-compat.js";import{Skeleton as O,SkeletonRow as _,Price as E,Field as W,Input as z,InLineAlert as I}from"@dropins/tools/components.js";import{classes as S}from"@dropins/tools/lib.js";/* empty css */import{W as T}from"./ConditionalWrapper.js";import{useText as V,Text as w}from"@dropins/tools/i18n.js";import{s as H}from"./fetch-graphql.js";import{events as j}from"@dropins/tools/event-bus.js";import{g as F}from"./getCompanyCredit.js";const p=()=>A(O,{"data-testid":"payment-on-account-skeleton",children:[n(_,{fullWidth:!0,size:"medium"}),n(_,{fullWidth:!0,size:"medium"})]}),M=({className:d,referenceNumber:r="",onReferenceNumberChange:u,onReferenceNumberBlur:h,companyCredit:e=null,cartAmount:o=null,...f})=>{var i;const c=(()=>{if(!(e!=null&&e.availableCredit)||!o)return null;const k=e.availableCredit.value,t=o.value-k;return t<=0?null:{value:t,currency:e.availableCredit.currency}})(),v=((i=e==null?void 0:e.availableCredit)==null?void 0:i.value)||0,x=(c==null?void 0:c.value)||0,a=V({referenceNumberLabel:"Checkout.PaymentOnAccount.referenceNumberLabel",referenceNumberPlaceholder:"Checkout.PaymentOnAccount.referenceNumberPlaceholder",referenceNumberHint:"Checkout.PaymentOnAccount.referenceNumberHint",availableCreditLabel:"Checkout.PaymentOnAccount.availableCreditLabel",exceedLimitError:"Checkout.PaymentOnAccount.exceedLimitError",exceedLimitWarning:c?n(w,{fields:{creditLimit:v,exceededAmount:x},id:"Checkout.PaymentOnAccount.exceedLimitWarning"}):""}),s=e&&o&&c;return n("div",{className:"checkout-payment-on-account","data-testid":"checkout-payment-on-account",children:A("form",{...f,noValidate:!0,className:S(["checkout-payment-on-account__form",d]),"data-testid":"checkout-payment-on-account-form",name:"checkout-payment-on-account__form",children:[e&&e.availableCredit&&A("div",{className:"checkout-payment-on-account__credit","data-testid":"checkout-payment-on-account-credit",children:[n("span",{className:"checkout-payment-on-account__credit-label",children:a.availableCreditLabel}),n("span",{className:"checkout-payment-on-account__credit-amount",children:n(E,{amount:e==null?void 0:e.availableCredit.value,currency:e==null?void 0:e.availableCredit.currency})})]}),n(W,{hint:a.referenceNumberHint,children:n(z,{"aria-label":a.referenceNumberLabel,floatingLabel:a.referenceNumberLabel,id:"reference-number",name:"reference-number",placeholder:a.referenceNumberPlaceholder,type:"text",value:r,onBlur:h,onChange:u})}),s&&n("div",{className:"checkout-payment-on-account__exceed-message","data-testid":"checkout-payment-on-account-exceed-message",children:n(I,{heading:e!=null&&e.exceedLimit?a.exceedLimitWarning:a.exceedLimitError,type:e!=null&&e.exceedLimit?"warning":"error",variant:"primary"})})]})})},$=T(M,p),Z=({initialReferenceNumber:d="",onReferenceNumberChange:r,onReferenceNumberBlur:u,...h})=>{const[e,o]=m(!1),[f,b]=m(null),[c,v]=m(null),[x,a]=m(d),s=H.authenticated,i=g(t=>{var l;const L=((l=t==null?void 0:t.total)==null?void 0:l.includingTax)||null;v(L)},[]),k=g(t=>{const l=t.target.value;a(l),r==null||r(l)},[r]),P=g(t=>{const l=t.target.value;u==null||u(l)},[u]);return N(()=>{const t=j.on("cart/data",i,{eager:!0});return()=>{t==null||t.off()}},[i]),N(()=>{s&&F().then(t=>{b(t)}).catch(t=>{console.error("Failed to fetch company credit:",t),b(null)}).finally(()=>{o(!0)})},[s]),n("div",{...h,children:n($,{cartAmount:c,companyCredit:f,initialized:e,referenceNumber:x,onReferenceNumberBlur:P,onReferenceNumberChange:k})})};export{Z as P};
4
+ //# sourceMappingURL=PaymentOnAccount2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentOnAccount2.js","sources":["/@dropins/storefront-checkout/src/components/PaymentOnAccount/PaymentOnAccountSkeleton.tsx","/@dropins/storefront-checkout/src/components/PaymentOnAccount/PaymentOnAccount.tsx","/@dropins/storefront-checkout/src/containers/PaymentOnAccount/PaymentOnAccount.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FunctionComponent } from 'preact';\nimport { Skeleton, SkeletonRow } from '@adobe-commerce/elsie/components';\n\nexport const PaymentOnAccountSkeleton: FunctionComponent = () => {\n return (\n <Skeleton data-testid=\"payment-on-account-skeleton\">\n <SkeletonRow fullWidth={true} size=\"medium\" />\n <SkeletonRow fullWidth={true} size=\"medium\" />\n </Skeleton>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { Field, Input, Price, InLineAlert } from '@adobe-commerce/elsie/components';\nimport { useText, Text } from '@adobe-commerce/elsie/i18n';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { Money } from '@/checkout/data/models';\nimport '@/checkout/components/PaymentOnAccount/PaymentOnAccount.css';\nimport { WithConditionals } from '@/checkout/components/ConditionalWrapper/ConditionalWrapper';\nimport { PaymentOnAccountSkeleton } from '@/checkout/components/PaymentOnAccount/PaymentOnAccountSkeleton';\nexport type CompanyCredit = {\n availableCredit: Money;\n exceedLimit?: boolean;\n};\n\nexport interface PaymentOnAccountProps extends HTMLAttributes<HTMLFormElement> {\n referenceNumber?: string;\n onReferenceNumberChange?: (event: Event) => void;\n onReferenceNumberBlur?: (event: Event) => void;\n companyCredit?: CompanyCredit | null;\n cartAmount?: Money | null;\n}\n\nconst PaymentOnAccountComponent: FunctionComponent<PaymentOnAccountProps> = ({\n className,\n referenceNumber = '',\n onReferenceNumberChange,\n onReferenceNumberBlur,\n companyCredit = null,\n cartAmount = null,\n ...props\n}) => {\n const calculateExceededAmount = (): Money | null => {\n if (!companyCredit?.availableCredit || !cartAmount) return null;\n\n const availableValue = companyCredit.availableCredit.value;\n const cartValue = cartAmount.value;\n const exceededValue = cartValue - availableValue;\n\n if (exceededValue <= 0) return null;\n\n return {\n value: exceededValue,\n currency: companyCredit.availableCredit.currency\n };\n };\n\n const exceededAmount = calculateExceededAmount();\n\n // TODO: format credit limit and exceeded amount with price component format\n const creditLimitText = companyCredit?.availableCredit?.value || 0;\n const exceededAmountText = exceededAmount?.value || 0;\n\n const translations = useText({\n referenceNumberLabel: 'Checkout.PaymentOnAccount.referenceNumberLabel',\n referenceNumberPlaceholder: 'Checkout.PaymentOnAccount.referenceNumberPlaceholder',\n referenceNumberHint: 'Checkout.PaymentOnAccount.referenceNumberHint',\n availableCreditLabel: 'Checkout.PaymentOnAccount.availableCreditLabel',\n exceedLimitError: 'Checkout.PaymentOnAccount.exceedLimitError',\n exceedLimitWarning: (exceededAmount ? (\n // @ts-ignore - Type compatibility issue between preact versions\n <Text\n fields={{\n creditLimit: creditLimitText,\n exceededAmount: exceededAmountText\n }}\n id=\"Checkout.PaymentOnAccount.exceedLimitWarning\"\n />\n ) : '') as any,\n });\n\n const shouldShowExceedMessage = companyCredit && cartAmount && exceededAmount;\n return (\n <div className=\"checkout-payment-on-account\" data-testid=\"checkout-payment-on-account\">\n <form\n {...props}\n noValidate\n className={classes(['checkout-payment-on-account__form', className])}\n data-testid=\"checkout-payment-on-account-form\"\n name=\"checkout-payment-on-account__form\"\n >\n {companyCredit && companyCredit.availableCredit && (\n <div\n className=\"checkout-payment-on-account__credit\"\n data-testid=\"checkout-payment-on-account-credit\"\n >\n <span className=\"checkout-payment-on-account__credit-label\">\n {translations.availableCreditLabel}\n </span>\n <span className=\"checkout-payment-on-account__credit-amount\">\n <Price\n amount={companyCredit?.availableCredit.value}\n currency={companyCredit?.availableCredit.currency}\n />\n </span>\n </div>\n )}\n\n <Field hint={translations.referenceNumberHint}>\n <Input\n aria-label={translations.referenceNumberLabel}\n floatingLabel={translations.referenceNumberLabel}\n id=\"reference-number\"\n name=\"reference-number\"\n placeholder={translations.referenceNumberPlaceholder}\n type=\"text\"\n value={referenceNumber}\n onBlur={onReferenceNumberBlur}\n onChange={onReferenceNumberChange}\n />\n </Field>\n\n {shouldShowExceedMessage && (\n <div\n className=\"checkout-payment-on-account__exceed-message\"\n data-testid=\"checkout-payment-on-account-exceed-message\"\n >\n <InLineAlert\n heading={\n companyCredit?.exceedLimit ? (\n translations.exceedLimitWarning\n ) : (\n translations.exceedLimitError\n )\n }\n type={companyCredit?.exceedLimit ? 'warning' : 'error'}\n variant=\"primary\"\n />\n </div>\n )}\n </form>\n </div>\n );\n};\n\nexport const PaymentOnAccount = WithConditionals(\n PaymentOnAccountComponent,\n PaymentOnAccountSkeleton\n);\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { HTMLAttributes, useCallback, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { PaymentOnAccount as PaymentOnAccountComponent } from '@/checkout/components/PaymentOnAccount';\nimport { Money, CompanyCredit, Cart } from '@/checkout/data/models';\nimport { getCompanyCredit } from '@/checkout/api';\nimport { events } from '@adobe-commerce/event-bus';\nimport { state } from '@/checkout/lib';\n\nexport interface PaymentOnAccountProps extends HTMLAttributes<HTMLDivElement> {\n initialReferenceNumber?: string;\n onReferenceNumberChange?: (referenceNumber: string) => void;\n onReferenceNumberBlur?: (referenceNumber: string) => void;\n}\n\nexport const PaymentOnAccount: Container<PaymentOnAccountProps> = ({\n initialReferenceNumber = '',\n onReferenceNumberChange,\n onReferenceNumberBlur,\n ...props\n}) => {\n const [isInitialized, setIsInitialized] = useState(false);\n const [companyCredit, setCompanyCredit] = useState<CompanyCredit | null>(null);\n const [cartAmount, setCartAmount] = useState<Money | null>(null);\n const [referenceNumber, setReferenceNumber] = useState<string>(initialReferenceNumber);\n\n const isAuthenticated = state.authenticated;\n\n const handleCartData = useCallback((data: Cart | null | { total?: { includingTax?: Money } }) => {\n // Handle both Cart model and event data structure\n const cartAmount = (data as any)?.total?.includingTax || null;\n setCartAmount(cartAmount);\n }, []);\n\n const handleReferenceNumberChange = useCallback((event: Event) => {\n const target = event.target as HTMLInputElement;\n const value = target.value;\n setReferenceNumber(value);\n onReferenceNumberChange?.(value);\n }, [onReferenceNumberChange]);\n\n const handleReferenceNumberBlur = useCallback((event: Event) => {\n const target = event.target as HTMLInputElement;\n const value = target.value;\n onReferenceNumberBlur?.(value);\n }, [onReferenceNumberBlur]);\n\n useEffect(() => {\n const onCartData = events.on(\n 'cart/data',\n handleCartData,\n { eager: true }\n );\n\n return () => {\n onCartData?.off();\n };\n }, [handleCartData]);\n\n useEffect(() => {\n if (!isAuthenticated) return;\n\n getCompanyCredit()\n .then((credit) => {\n setCompanyCredit(credit);\n })\n .catch((error) => {\n console.error('Failed to fetch company credit:', error);\n setCompanyCredit(null);\n })\n .finally(() => {\n setIsInitialized(true);\n });\n }, [isAuthenticated]);\n\n return (\n <div {...props}>\n <PaymentOnAccountComponent\n cartAmount={cartAmount}\n companyCredit={companyCredit}\n initialized={isInitialized}\n referenceNumber={referenceNumber}\n onReferenceNumberBlur={handleReferenceNumberBlur}\n onReferenceNumberChange={handleReferenceNumberChange}\n />\n </div>\n );\n};\n"],"names":["PaymentOnAccountSkeleton","jsxs","Skeleton","jsx","SkeletonRow","PaymentOnAccountComponent","className","referenceNumber","onReferenceNumberChange","onReferenceNumberBlur","companyCredit","cartAmount","props","exceededAmount","availableValue","exceededValue","creditLimitText","_a","exceededAmountText","translations","useText","Text","shouldShowExceedMessage","classes","Price","Field","Input","InLineAlert","PaymentOnAccount","WithConditionals","initialReferenceNumber","isInitialized","setIsInitialized","useState","setCompanyCredit","setCartAmount","setReferenceNumber","isAuthenticated","state","handleCartData","useCallback","data","handleReferenceNumberChange","event","value","handleReferenceNumberBlur","useEffect","onCartData","events","getCompanyCredit","credit","error"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{jsx as c}from"@dropins/tools/preact-jsx-runtime.js";import"./TermsAndConditions.js";import{classes as h}from"@dropins/tools/lib.js";import{Field as p,Input as f}from"@dropins/tools/components.js";/* empty css */import"./fetch-graphql.js";import"@dropins/tools/event-bus.js";import{useState as b,useCallback as i}from"@dropins/tools/preact-compat.js";/* empty css *//* empty css */import{useText as k}from"@dropins/tools/i18n.js";/* empty css */import"@dropins/tools/preact-hooks.js";const P=({className:o,referenceNumber:e="",onReferenceNumberChange:r,onReferenceNumberBlur:s,...u})=>{const t=k({referenceNumberLabel:"Checkout.PurchaseOrder.referenceNumberLabel",referenceNumberPlaceholder:"Checkout.PurchaseOrder.referenceNumberPlaceholder",referenceNumberHint:"Checkout.PurchaseOrder.referenceNumberHint"});return c("div",{className:"checkout-purchase-order","data-testid":"checkout-purchase-order",children:c("form",{...u,noValidate:!0,className:h(["checkout-purchase-order__form",o]),"data-testid":"checkout-purchase-order-form",name:"checkout-purchase-order__form",children:c(p,{hint:t.referenceNumberHint||void 0,children:c(f,{floatingLabel:t.referenceNumberLabel,id:"reference-number",name:"reference-number",placeholder:t.referenceNumberPlaceholder,type:"text",value:e,onBlur:s,onChange:r})})})})},S=({initialReferenceNumber:o="",onReferenceNumberChange:e,onReferenceNumberBlur:r,...s})=>{const[u,t]=b(o),l=i(m=>{const a=m.target.value;t(a),e==null||e(a)},[e]),n=i(m=>{const a=m.target.value;r==null||r(a)},[r]);return c(P,{...s,referenceNumber:u,onReferenceNumberBlur:n,onReferenceNumberChange:l})};export{S as P};
4
+ //# sourceMappingURL=PurchaseOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PurchaseOrder.js","sources":["/@dropins/storefront-checkout/src/components/PurchaseOrder/PurchaseOrder.tsx","/@dropins/storefront-checkout/src/containers/PurchaseOrder/PurchaseOrder.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport '@/checkout/components/PurchaseOrder/PurchaseOrder.css';\nimport { Field, Input } from '@adobe-commerce/elsie/components';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { classes } from '@adobe-commerce/elsie/lib';\nimport { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\n\nexport interface PurchaseOrderProps extends HTMLAttributes<HTMLFormElement> {\n referenceNumber?: string;\n onReferenceNumberChange?: (event: Event) => void;\n onReferenceNumberBlur?: (event: Event) => void;\n}\n\nexport const PurchaseOrder: FunctionComponent<PurchaseOrderProps> = ({\n className,\n referenceNumber = '',\n onReferenceNumberChange,\n onReferenceNumberBlur,\n ...props\n}) => {\n const translations = useText({\n referenceNumberLabel: 'Checkout.PurchaseOrder.referenceNumberLabel',\n referenceNumberPlaceholder:\n 'Checkout.PurchaseOrder.referenceNumberPlaceholder',\n referenceNumberHint: 'Checkout.PurchaseOrder.referenceNumberHint',\n });\n\n return (\n <div\n className=\"checkout-purchase-order\"\n data-testid=\"checkout-purchase-order\"\n >\n <form\n {...props}\n noValidate\n className={classes(['checkout-purchase-order__form', className])}\n data-testid=\"checkout-purchase-order-form\"\n name=\"checkout-purchase-order__form\"\n >\n <Field hint={translations.referenceNumberHint || undefined}>\n <Input\n floatingLabel={translations.referenceNumberLabel}\n id=\"reference-number\"\n name=\"reference-number\"\n placeholder={translations.referenceNumberPlaceholder}\n type=\"text\"\n value={referenceNumber}\n onBlur={onReferenceNumberBlur}\n onChange={onReferenceNumberChange}\n />\n </Field>\n </form>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PurchaseOrder as PurchaseOrderComponent } from '@/checkout/components';\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { HTMLAttributes, useCallback, useState } from 'preact/compat';\n\nexport interface PurchaseOrderProps extends HTMLAttributes<HTMLFormElement> {\n initialReferenceNumber?: string;\n onReferenceNumberChange?: (referenceNumber: string) => void;\n onReferenceNumberBlur?: (referenceNumber: string) => void;\n}\n\nexport const PurchaseOrder: Container<PurchaseOrderProps> = ({\n initialReferenceNumber = '',\n onReferenceNumberChange,\n onReferenceNumberBlur,\n ...props\n}) => {\n const [referenceNumber, setReferenceNumber] = useState<string>(\n initialReferenceNumber\n );\n\n const handleReferenceNumberChange = useCallback(\n (event: Event) => {\n const target = event.target as HTMLInputElement;\n const value = target.value;\n setReferenceNumber(value);\n onReferenceNumberChange?.(value);\n },\n [onReferenceNumberChange]\n );\n\n const handleReferenceNumberBlur = useCallback(\n (event: Event) => {\n const target = event.target as HTMLInputElement;\n const value = target.value;\n onReferenceNumberBlur?.(value);\n },\n [onReferenceNumberBlur]\n );\n\n return (\n <PurchaseOrderComponent\n {...props}\n referenceNumber={referenceNumber}\n onReferenceNumberBlur={handleReferenceNumberBlur}\n onReferenceNumberChange={handleReferenceNumberChange}\n />\n );\n};\n"],"names":["PurchaseOrder","className","referenceNumber","onReferenceNumberChange","onReferenceNumberBlur","props","translations","useText","jsx","classes","Field","Input","initialReferenceNumber","setReferenceNumber","useState","handleReferenceNumberChange","useCallback","event","value","handleReferenceNumberBlur","PurchaseOrderComponent"],"mappings":"oiBA8BO,MAAMA,EAAuD,CAAC,CACnE,UAAAC,EACA,gBAAAC,EAAkB,GAClB,wBAAAC,EACA,sBAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAeC,EAAQ,CAC3B,qBAAsB,8CACtB,2BACE,oDACF,oBAAqB,4CAAA,CACtB,EAGC,OAAAC,EAAC,MAAA,CACC,UAAU,0BACV,cAAY,0BAEZ,SAAAA,EAAC,OAAA,CACE,GAAGH,EACJ,WAAU,GACV,UAAWI,EAAQ,CAAC,gCAAiCR,CAAS,CAAC,EAC/D,cAAY,+BACZ,KAAK,gCAEL,SAACO,EAAAE,EAAA,CAAM,KAAMJ,EAAa,qBAAuB,OAC/C,SAAAE,EAACG,EAAA,CACC,cAAeL,EAAa,qBAC5B,GAAG,mBACH,KAAK,mBACL,YAAaA,EAAa,2BAC1B,KAAK,OACL,MAAOJ,EACP,OAAQE,EACR,SAAUD,CAAA,CAAA,CAEd,CAAA,CAAA,CAAA,CACF,CACF,CAEJ,EC5CaH,EAA+C,CAAC,CAC3D,uBAAAY,EAAyB,GACzB,wBAAAT,EACA,sBAAAC,EACA,GAAGC,CACL,IAAM,CACE,KAAA,CAACH,EAAiBW,CAAkB,EAAIC,EAC5CF,CACF,EAEMG,EAA8BC,EACjCC,GAAiB,CAEhB,MAAMC,EADSD,EAAM,OACA,MACrBJ,EAAmBK,CAAK,EACxBf,GAAA,MAAAA,EAA0Be,EAC5B,EACA,CAACf,CAAuB,CAC1B,EAEMgB,EAA4BH,EAC/BC,GAAiB,CAEhB,MAAMC,EADSD,EAAM,OACA,MACrBb,GAAA,MAAAA,EAAwBc,EAC1B,EACA,CAACd,CAAqB,CACxB,EAGE,OAAAI,EAACY,EAAA,CACE,GAAGf,EACJ,gBAAAH,EACA,sBAAuBiB,EACvB,wBAAyBJ,CAAA,CAC3B,CAEJ"}
@@ -0,0 +1,4 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{I as E,U as N}from"./fetch-graphql.js";var I=(R=>(R.INVALID_INPUT="INVALID_INPUT",R.SERVER_ERROR="SERVER_ERROR",R.UNAUTHENTICATED="UNAUTHENTICATED",R.UNKNOWN_ERROR="UNKNOWN_ERROR",R.QUOTE_DATA_ERROR="QUOTE_DATA_ERROR",R.QUOTE_PERMISSION_DENIED="QUOTE_PERMISSION_DENIED",R))(I||{});const t=["PlaceOrderError"],a=[{code:"INVALID_INPUT",matches:R=>R instanceof E},{code:"UNAUTHENTICATED",matches:R=>R instanceof N},{code:"SERVER_ERROR",matches:R=>!R||typeof R!="object"||!("name"in R)?!1:t.includes(R.name)}];export{I as E,a as c};
4
+ //# sourceMappingURL=classifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifiers.js","sources":["/@dropins/storefront-checkout/src/lib/errors/classifiers.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { InvalidInput, Unauthenticated } from './customErrors';\n\nexport type ErrorCode = string;\n\nexport enum ErrorCodes {\n INVALID_INPUT = 'INVALID_INPUT',\n SERVER_ERROR = 'SERVER_ERROR',\n UNAUTHENTICATED = 'UNAUTHENTICATED',\n UNKNOWN_ERROR = 'UNKNOWN_ERROR',\n QUOTE_DATA_ERROR = 'QUOTE_DATA_ERROR',\n QUOTE_PERMISSION_DENIED = 'QUOTE_PERMISSION_DENIED',\n}\n\nconst KNOWN_SERVER_ERRORS = ['PlaceOrderError'];\n\nexport interface ErrorClassifier {\n /**\n * The specific code to return if this classifier matches.\n */\n code: ErrorCode;\n /**\n * A function that returns `true` if it recognizes the error.\n * It must safely handle `unknown` inputs.\n */\n matches: (error: unknown) => boolean;\n}\n\n// Array of all known error classifiers.\n// The order is important! The first one to match will be used.\nexport const classifiers: ErrorClassifier[] = [\n {\n code: ErrorCodes.INVALID_INPUT,\n matches: (error: unknown): boolean => {\n return error instanceof InvalidInput;\n },\n },\n {\n code: ErrorCodes.UNAUTHENTICATED,\n matches: (error: unknown): boolean => {\n return error instanceof Unauthenticated;\n },\n },\n {\n code: ErrorCodes.SERVER_ERROR,\n matches: (error: unknown): boolean => {\n if (!error || typeof error !== 'object' || !('name' in error)) {\n return false;\n }\n\n return KNOWN_SERVER_ERRORS.includes((error as { name: string }).name);\n },\n },\n];\n"],"names":["ErrorCodes","KNOWN_SERVER_ERRORS","classifiers","error","InvalidInput","Unauthenticated"],"mappings":"8CAqBY,IAAAA,GAAAA,IACVA,EAAA,cAAgB,gBAChBA,EAAA,aAAe,eACfA,EAAA,gBAAkB,kBAClBA,EAAA,cAAgB,gBAChBA,EAAA,iBAAmB,mBACnBA,EAAA,wBAA0B,0BANhBA,IAAAA,GAAA,CAAA,CAAA,EASZ,MAAMC,EAAsB,CAAC,iBAAiB,EAgBjCC,EAAiC,CAC5C,CACE,KAAM,gBACN,QAAUC,GACDA,aAAiBC,CAE5B,EACA,CACE,KAAM,kBACN,QAAUD,GACDA,aAAiBE,CAE5B,EACA,CACE,KAAM,eACN,QAAUF,GACJ,CAACA,GAAS,OAAOA,GAAU,UAAY,EAAE,SAAUA,GAC9C,GAGFF,EAAoB,SAAUE,EAA2B,IAAI,CACtE,CAEJ"}
package/chunks/events.js CHANGED
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{events as n}from"@dropins/tools/event-bus.js";function u(){return n.lastPayload("checkout/initialized")??null}function i(){return n.lastPayload("checkout/updated")??null}function a(){return i()??u()}function s(){var e;const t=a();return!!((e=t==null?void 0:t.shippingAddresses)!=null&&e.length)}function l(){const t=a();return(t==null?void 0:t.email)??null}export{l as a,a as b,i as g,s as h};
3
+ import{g as s}from"./events2.js";function u(n){if(n===void 0){const r=s();return!!(r!=null&&r.isVirtual)}return!!(n!=null&&n.isVirtual)}function o(n){return!n||n.isEmpty}function l(n){var i;if(!n)return null;const r=n.shippingAddresses||[];return r.length===0?null:(i=r[0])==null?void 0:i.selectedShippingMethod}function p(n,r="shipping"){var e;return n?(r==="shipping"?(e=n.shippingAddresses)==null?void 0:e[0]:n.billingAddress)??null:null}function g(n){if(!n)return null;const{selectedPaymentMethod:r}=n;return!r||!(r!=null&&r.code)?null:n.selectedPaymentMethod}export{o as a,p as b,g as c,l as g,u as i};
4
4
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sources":["/@dropins/storefront-checkout/src/lib/events.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Cart, NegotiableQuote } from '@/checkout/data/models';\nimport { events } from '@adobe-commerce/event-bus';\n\ntype DataModel = Cart | NegotiableQuote;\n\nexport function getInitialCheckoutData(): DataModel | null {\n return events.lastPayload('checkout/initialized') ?? null;\n}\n\nexport function getLatestCheckoutUpdate(): DataModel | null {\n return events.lastPayload('checkout/updated') ?? null;\n}\n\nexport function getCheckoutData(): DataModel | null {\nreturn getLatestCheckoutUpdate() ?? getInitialCheckoutData();\n}\n\nexport function hasShippingAddress(): boolean {\n const cart = getCheckoutData();\n return !!cart?.shippingAddresses?.length;\n}\n\nexport function getCartEmail(): string | null {\n const cart = getCheckoutData();\n return cart?.email ?? null;\n}\n"],"names":["getInitialCheckoutData","events","getLatestCheckoutUpdate","getCheckoutData","hasShippingAddress","cart","_a","getCartEmail"],"mappings":"qDAsBO,SAASA,GAA2C,CAClD,OAAAC,EAAO,YAAY,sBAAsB,GAAK,IACvD,CAEO,SAASC,GAA4C,CACnD,OAAAD,EAAO,YAAY,kBAAkB,GAAK,IACnD,CAEO,SAASE,GAAoC,CAC7C,OAAAD,KAA6BF,EAAuB,CAC3D,CAEO,SAASI,GAA8B,OAC5C,MAAMC,EAAOF,EAAgB,EACtB,MAAA,CAAC,GAACG,EAAAD,GAAA,YAAAA,EAAM,oBAAN,MAAAC,EAAyB,OACpC,CAEO,SAASC,GAA8B,CAC5C,MAAMF,EAAOF,EAAgB,EAC7B,OAAOE,GAAA,YAAAA,EAAM,QAAS,IACxB"}
1
+ {"version":3,"file":"events.js","sources":["/@dropins/storefront-checkout/src/lib/utils/events.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Cart } from '@/checkout/data/models/cart';\nimport { getCheckoutData } from '@/checkout/lib/events';\n\ntype CartData = Cart | null;\n\nexport function isVirtualCart(data?: CartData) {\n if (data === undefined) {\n const latestData = getCheckoutData();\n return Boolean(latestData?.isVirtual);\n }\n return Boolean(data?.isVirtual);\n}\n\nexport function isEmptyCart(data: CartData) {\n return !data || data.isEmpty;\n}\n\nexport function getCartShippingMethod(data: CartData) {\n if (!data) return null;\n const shippingAddresses = data.shippingAddresses || [];\n if (shippingAddresses.length === 0) return null;\n return shippingAddresses[0]?.selectedShippingMethod;\n}\n\nexport function getCartAddress(\n data: CartData,\n type: 'shipping' | 'billing' = 'shipping'\n): Record<string, any> | null {\n if (!data) return null;\n\n const address =\n type === 'shipping' ? data.shippingAddresses?.[0] : data.billingAddress;\n\n return address ?? null;\n}\n\nexport function getCartPaymentMethod(data: CartData) {\n if (!data) return null;\n const { selectedPaymentMethod } = data;\n if (!selectedPaymentMethod || !selectedPaymentMethod?.code) return null;\n\n return data.selectedPaymentMethod;\n}\n"],"names":["isVirtualCart","data","latestData","getCheckoutData","isEmptyCart","getCartShippingMethod","shippingAddresses","_a","getCartAddress","type","getCartPaymentMethod","selectedPaymentMethod"],"mappings":"iCAsBO,SAASA,EAAcC,EAAiB,CAC7C,GAAIA,IAAS,OAAW,CACtB,MAAMC,EAAaC,EAAgB,EAC5B,MAAA,GAAQD,GAAA,MAAAA,EAAY,UAAS,CAE/B,MAAA,GAAQD,GAAA,MAAAA,EAAM,UACvB,CAEO,SAASG,EAAYH,EAAgB,CACnC,MAAA,CAACA,GAAQA,EAAK,OACvB,CAEO,SAASI,EAAsBJ,EAAgB,OAChD,GAAA,CAACA,EAAa,OAAA,KACZ,MAAAK,EAAoBL,EAAK,mBAAqB,CAAC,EACjD,OAAAK,EAAkB,SAAW,EAAU,MACpCC,EAAAD,EAAkB,CAAC,IAAnB,YAAAC,EAAsB,sBAC/B,CAEgB,SAAAC,EACdP,EACAQ,EAA+B,WACH,OACxB,OAACR,GAGHQ,IAAS,YAAaF,EAAAN,EAAK,oBAAL,YAAAM,EAAyB,GAAKN,EAAK,iBAEzC,KALA,IAMpB,CAEO,SAASS,EAAqBT,EAAgB,CAC/C,GAAA,CAACA,EAAa,OAAA,KACZ,KAAA,CAAE,sBAAAU,GAA0BV,EAClC,MAAI,CAACU,GAAyB,EAACA,GAAA,MAAAA,EAAuB,MAAa,KAE5DV,EAAK,qBACd"}
package/chunks/events2.js CHANGED
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{b as s}from"./events.js";function u(n){if(n===void 0){const r=s();return!!(r!=null&&r.isVirtual)}return!!(n!=null&&n.isVirtual)}function o(n){return!n||n.isEmpty}function l(n){var i;if(!n)return null;const r=n.shippingAddresses||[];return r.length===0?null:(i=r[0])==null?void 0:i.selectedShippingMethod}function p(n,r="shipping"){var e;return n?(r==="shipping"?(e=n.shippingAddresses)==null?void 0:e[0]:n.billingAddress)??null:null}function g(n){if(!n)return null;const{selectedPaymentMethod:r}=n;return!r||!(r!=null&&r.code)?null:n.selectedPaymentMethod}export{o as a,p as b,g as c,l as g,u as i};
3
+ import{events as n}from"@dropins/tools/event-bus.js";function u(){return n.lastPayload("checkout/initialized")??null}function i(){return n.lastPayload("checkout/updated")??null}function a(){return i()??u()}function s(){var e;const t=a();return!!((e=t==null?void 0:t.shippingAddresses)!=null&&e.length)}function l(){const t=a();return(t==null?void 0:t.email)??null}export{i as a,l as b,a as g,s as h};
4
4
  //# sourceMappingURL=events2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events2.js","sources":["/@dropins/storefront-checkout/src/lib/utils/events.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Cart } from '@/checkout/data/models/cart';\nimport { getCheckoutData } from '@/checkout/lib/events';\n\ntype CartData = Cart | null;\n\nexport function isVirtualCart(data?: CartData) {\n if (data === undefined) {\n const latestData = getCheckoutData();\n return Boolean(latestData?.isVirtual);\n }\n return Boolean(data?.isVirtual);\n}\n\nexport function isEmptyCart(data: CartData) {\n return !data || data.isEmpty;\n}\n\nexport function getCartShippingMethod(data: CartData) {\n if (!data) return null;\n const shippingAddresses = data.shippingAddresses || [];\n if (shippingAddresses.length === 0) return null;\n return shippingAddresses[0]?.selectedShippingMethod;\n}\n\nexport function getCartAddress(\n data: CartData,\n type: 'shipping' | 'billing' = 'shipping'\n): Record<string, any> | null {\n if (!data) return null;\n\n const address =\n type === 'shipping' ? data.shippingAddresses?.[0] : data.billingAddress;\n\n return address ?? null;\n}\n\nexport function getCartPaymentMethod(data: CartData) {\n if (!data) return null;\n const { selectedPaymentMethod } = data;\n if (!selectedPaymentMethod || !selectedPaymentMethod?.code) return null;\n\n return data.selectedPaymentMethod;\n}\n"],"names":["isVirtualCart","data","latestData","getCheckoutData","isEmptyCart","getCartShippingMethod","shippingAddresses","_a","getCartAddress","type","getCartPaymentMethod","selectedPaymentMethod"],"mappings":"gCAsBO,SAASA,EAAcC,EAAiB,CAC7C,GAAIA,IAAS,OAAW,CACtB,MAAMC,EAAaC,EAAgB,EAC5B,MAAA,GAAQD,GAAA,MAAAA,EAAY,UAAS,CAE/B,MAAA,GAAQD,GAAA,MAAAA,EAAM,UACvB,CAEO,SAASG,EAAYH,EAAgB,CACnC,MAAA,CAACA,GAAQA,EAAK,OACvB,CAEO,SAASI,EAAsBJ,EAAgB,OAChD,GAAA,CAACA,EAAa,OAAA,KACZ,MAAAK,EAAoBL,EAAK,mBAAqB,CAAC,EACjD,OAAAK,EAAkB,SAAW,EAAU,MACpCC,EAAAD,EAAkB,CAAC,IAAnB,YAAAC,EAAsB,sBAC/B,CAEgB,SAAAC,EACdP,EACAQ,EAA+B,WACH,OACxB,OAACR,GAGHQ,IAAS,YAAaF,EAAAN,EAAK,oBAAL,YAAAM,EAAyB,GAAKN,EAAK,iBAEzC,KALA,IAMpB,CAEO,SAASS,EAAqBT,EAAgB,CAC/C,GAAA,CAACA,EAAa,OAAA,KACZ,KAAA,CAAE,sBAAAU,GAA0BV,EAClC,MAAI,CAACU,GAAyB,EAACA,GAAA,MAAAA,EAAuB,MAAa,KAE5DV,EAAK,qBACd"}
1
+ {"version":3,"file":"events2.js","sources":["/@dropins/storefront-checkout/src/lib/events.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Cart, NegotiableQuote } from '@/checkout/data/models';\nimport { events } from '@adobe-commerce/event-bus';\n\ntype DataModel = Cart | NegotiableQuote;\n\nexport function getInitialCheckoutData(): DataModel | null {\n return events.lastPayload('checkout/initialized') ?? null;\n}\n\nexport function getLatestCheckoutUpdate(): DataModel | null {\n return events.lastPayload('checkout/updated') ?? null;\n}\n\nexport function getCheckoutData(): DataModel | null {\nreturn getLatestCheckoutUpdate() ?? getInitialCheckoutData();\n}\n\nexport function hasShippingAddress(): boolean {\n const cart = getCheckoutData();\n return !!cart?.shippingAddresses?.length;\n}\n\nexport function getCartEmail(): string | null {\n const cart = getCheckoutData();\n return cart?.email ?? null;\n}\n"],"names":["getInitialCheckoutData","events","getLatestCheckoutUpdate","getCheckoutData","hasShippingAddress","cart","_a","getCartEmail"],"mappings":"qDAsBO,SAASA,GAA2C,CAClD,OAAAC,EAAO,YAAY,sBAAsB,GAAK,IACvD,CAEO,SAASC,GAA4C,CACnD,OAAAD,EAAO,YAAY,kBAAkB,GAAK,IACnD,CAEO,SAASE,GAAoC,CAC7C,OAAAD,KAA6BF,EAAuB,CAC3D,CAEO,SAASI,GAA8B,OAC5C,MAAMC,EAAOF,EAAgB,EACtB,MAAA,CAAC,GAACG,EAAAD,GAAA,YAAAA,EAAM,oBAAN,MAAAC,EAAyB,OACpC,CAEO,SAASC,GAA8B,CAC5C,MAAMF,EAAOF,EAAgB,EAC7B,OAAOE,GAAA,YAAAA,EAAM,QAAS,IACxB"}
@@ -1,6 +1,6 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import"@dropins/tools/lib.js";import{events as y}from"@dropins/tools/event-bus.js";import{signal as D,computed as m}from"@dropins/tools/signals.js";import{FetchGraphQL as S}from"@dropins/tools/fetch-graphql.js";const U={authenticated:!1,cartId:null,config:null,initialized:!1,quoteId:null},G=new Proxy(U,{set(e,t,s){return e[t]=s,!0},get(e,t){return e[t]}});class w extends Error{constructor(t){super(t.map(s=>s.message).join(" ")),this.name="FetchError"}}class I extends Error{constructor(t){super(t),this.name="InvalidInput"}}class a extends I{constructor(t){super(`${t} is required.`)}}class V extends a{constructor(){super("Cart ID")}}class B extends I{constructor(){super("Either Cart ID or Quote ID is required.")}}class $ extends Error{constructor(){super("User is not authenticated")}}class z extends a{constructor(){super("Negotiable Quote ID")}}class Y extends a{constructor(){super("Email")}}class J extends a{constructor(){super("Payment method code")}}class K extends a{constructor(){super("Shipping address")}}class W extends a{constructor(){super("Shipping method")}}class Z extends a{constructor(){super("Billing address")}}class ee extends a{constructor(){super("Country Code")}}var u=(e=>(e.EXCLUDING_TAX="EXCLUDING_TAX",e.INCLUDING_EXCLUDING_TAX="INCLUDING_AND_EXCLUDING_TAX",e.INCLUDING_TAX="INCLUDING_TAX",e))(u||{}),A=(e=>(e.Updates="updates",e.Default="default",e.ShippingEstimate="shippingEstimate",e))(A||{});const d=new Map,g=new Map,c=D(new Set),E=new Map;E.set("updates",e=>{y.emit("checkout/updated",e)});async function q(e){g.set(e,!0);const t=d.get(e);let s;for(;t.length>0;){const i=t.shift();try{const n=await i.requestFn();i.resolve(n),s=n}catch(n){i.reject(n)}}g.set(e,!1);const r=new Set(c.value);r.delete(e),c.value=r;const o=E.get(e);o&&s&&o(s)}function X(e,t="default"){d.has(t)||d.set(t,[]);const s=d.get(t),r=new Promise((i,n)=>{s.push({requestFn:e,resolve:i,reject:n})}),o=new Set(c.value);return o.add(t),c.value=o,g.get(t)||q(t),r}const te=m(()=>c.value.has("updates")),se=m(()=>c.value.has("shippingEstimate")),v=["sender_email","recipient_email"];function T(e){return e.filter(t=>!t.path||!v.some(s=>{var r;return((r=t.path)==null?void 0:r.at(-1))===s}))}function L(e,t){return t.split(".").reduce((s,r)=>s&&s[r]!==void 0?s[r]:void 0,e)}async function M(e){const{defaultValueOnFail:t,options:s,path:r,query:o,queueName:i,transformer:n,type:p}=e;try{const l=async()=>{const{data:N,errors:_}=await P(o,{method:p==="query"?"GET":"POST",cache:p==="query"?"no-cache":void 0,...s});if(_){const C=T(_);if(C.length>0)throw new w(C)}let h=L(N,r);if(h===void 0)throw new Error(`No data found at path: ${r}`);return n?n(h):h};return p==="mutation"?await X(l,i):await l()}catch(l){if(t!==void 0)return t;throw l}}const x=`
3
+ import"@dropins/tools/lib.js";import{events as y}from"@dropins/tools/event-bus.js";import{signal as D,computed as m}from"@dropins/tools/signals.js";import{FetchGraphQL as S}from"@dropins/tools/fetch-graphql.js";const U={authenticated:!1,cartId:null,config:null,initialized:!1,quoteId:null},G=new Proxy(U,{set(e,t,s){return e[t]=s,!0},get(e,t){return e[t]}});var u=(e=>(e.EXCLUDING_TAX="EXCLUDING_TAX",e.INCLUDING_EXCLUDING_TAX="INCLUDING_AND_EXCLUDING_TAX",e.INCLUDING_TAX="INCLUDING_TAX",e))(u||{}),w=(e=>(e.Updates="updates",e.Default="default",e.ShippingEstimate="shippingEstimate",e))(w||{});const d=new Map,g=new Map,c=D(new Set),I=new Map;I.set("updates",e=>{y.emit("checkout/updated",e)});async function A(e){g.set(e,!0);const t=d.get(e);let s;for(;t.length>0;){const i=t.shift();try{const n=await i.requestFn();i.resolve(n),s=n}catch(n){i.reject(n)}}g.set(e,!1);const r=new Set(c.value);r.delete(e),c.value=r;const o=I.get(e);o&&s&&o(s)}function q(e,t="default"){d.has(t)||d.set(t,[]);const s=d.get(t),r=new Promise((i,n)=>{s.push({requestFn:e,resolve:i,reject:n})}),o=new Set(c.value);return o.add(t),c.value=o,g.get(t)||A(t),r}const V=m(()=>c.value.has("updates")),B=m(()=>c.value.has("shippingEstimate")),X=["sender_email","recipient_email"];function v(e){return e.filter(t=>!t.path||!X.some(s=>{var r;return((r=t.path)==null?void 0:r.at(-1))===s}))}class T extends Error{constructor(t){super(t.map(s=>s.message).join(" ")),this.name="FetchError"}}class E extends Error{constructor(t){super(t),this.name="InvalidInput"}}class a extends E{constructor(t){super(`${t} is required.`)}}class $ extends a{constructor(){super("Cart ID")}}class z extends E{constructor(){super("Either Cart ID or Quote ID is required.")}}class Y extends Error{constructor(){super("User is not authenticated")}}class J extends a{constructor(){super("Negotiable Quote ID")}}class K extends a{constructor(){super("Email")}}class W extends a{constructor(){super("Payment method code")}}class Z extends a{constructor(){super("Shipping address")}}class ee extends a{constructor(){super("Shipping method")}}class te extends a{constructor(){super("Billing address")}}class se extends a{constructor(){super("Country Code")}}function L(e,t){return t.split(".").reduce((s,r)=>s&&s[r]!==void 0?s[r]:void 0,e)}async function M(e){const{defaultValueOnFail:t,options:s,path:r,query:o,queueName:i,transformer:n,type:p}=e;try{const l=async()=>{const{data:N,errors:_}=await P(o,{method:p==="query"?"GET":"POST",cache:p==="query"?"no-cache":void 0,...s});if(_){const C=v(_);if(C.length>0)throw new T(C)}let h=L(N,r);if(h===void 0)throw new Error(`No data found at path: ${r}`);return n?n(h):h};return p==="mutation"?await q(l,i):await l()}catch(l){if(t!==void 0)return t;throw l}}const x=`
4
4
  query getStoreConfig {
5
5
  storeConfig {
6
6
  default_country
@@ -10,5 +10,5 @@ import"@dropins/tools/lib.js";import{events as y}from"@dropins/tools/event-bus.j
10
10
  shopping_cart_display_shipping
11
11
  }
12
12
  }
13
- `,F="US",f={defaultCountry:F,agreementsEnabled:!0,shoppingCartDisplaySetting:{shipping:u.EXCLUDING_TAX}},re=async()=>await M({defaultValueOnFail:f,options:{method:"GET",cache:"no-cache"},path:"storeConfig",query:x,transformer:b,type:"query"}),ne=()=>G.config;function Q(e){switch(e){case 1:return u.EXCLUDING_TAX;case 2:return u.INCLUDING_TAX;case 3:return u.INCLUDING_EXCLUDING_TAX;default:return u.EXCLUDING_TAX}}function b(e){if(!e)return f;const{default_country:t,is_checkout_agreements_enabled:s,shopping_cart_display_shipping:r}=e;return{defaultCountry:t||f.defaultCountry,agreementsEnabled:s,shoppingCartDisplaySetting:{shipping:Q(r)}}}const{setEndpoint:ae,setFetchGraphQlHeader:oe,removeFetchGraphQlHeader:ie,setFetchGraphQlHeaders:ue,fetchGraphQl:P,getConfig:ce}=new S().getMethods();export{F as D,I,W as M,A as Q,f as S,u as T,$ as U,se as a,ae as b,oe as c,M as d,ue as e,P as f,ce as g,te as h,re as i,ne as j,J as k,Y as l,V as m,ee as n,K as o,Z as p,B as q,ie as r,G as s,z as t};
13
+ `,F="US",f={defaultCountry:F,agreementsEnabled:!0,shoppingCartDisplaySetting:{shipping:u.EXCLUDING_TAX}},re=async()=>await M({defaultValueOnFail:f,options:{method:"GET",cache:"no-cache"},path:"storeConfig",query:x,transformer:b,type:"query"}),ne=()=>G.config;function Q(e){switch(e){case 1:return u.EXCLUDING_TAX;case 2:return u.INCLUDING_TAX;case 3:return u.INCLUDING_EXCLUDING_TAX;default:return u.EXCLUDING_TAX}}function b(e){if(!e)return f;const{default_country:t,is_checkout_agreements_enabled:s,shopping_cart_display_shipping:r}=e;return{defaultCountry:t||f.defaultCountry,agreementsEnabled:s,shoppingCartDisplaySetting:{shipping:Q(r)}}}const{setEndpoint:ae,setFetchGraphQlHeader:oe,removeFetchGraphQlHeader:ie,setFetchGraphQlHeaders:ue,fetchGraphQl:P,getConfig:ce}=new S().getMethods();export{F as D,E as I,z as M,w as Q,f as S,u as T,Y as U,ae as a,oe as b,ue as c,M as d,re as e,P as f,ce as g,V as h,ne as i,ee as j,W as k,te as l,B as m,$ as n,se as o,Z as p,K as q,ie as r,G as s,J as t};
14
14
  //# sourceMappingURL=fetch-graphql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-graphql.js","sources":["/@dropins/storefront-checkout/src/lib/state.ts","/@dropins/storefront-checkout/src/lib/errors/customErrors.ts","/@dropins/storefront-checkout/src/data/models/store-config.ts","/@dropins/storefront-checkout/src/lib/enqueueRequest.ts","/@dropins/storefront-checkout/src/lib/filterControlledErrors.ts","/@dropins/storefront-checkout/src/lib/dispatchApiCall.ts","/@dropins/storefront-checkout/src/api/getStoreConfig/graphql/getStoreConfig.graphql.ts","/@dropins/storefront-checkout/src/api/getStoreConfig/getStoreConfig.ts","/@dropins/storefront-checkout/src/data/transforms/transform-store-config.ts","/@dropins/storefront-checkout/src/api/fetch-graphql/fetch-graphql.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { StoreConfig } from '@/checkout/data/models';\n\ntype State = {\n authenticated: boolean;\n cartId?: string | null;\n config: StoreConfig | null;\n initialized: boolean;\n quoteId?: string | null;\n};\n\nconst _state: State = (() => ({\n authenticated: false,\n cartId: null,\n config: null,\n initialized: false,\n quoteId: null,\n}))();\n\n// Proxy state to allow reactivity\nexport const state = new Proxy(_state, {\n set(target, key, value) {\n // @ts-ignore\n target[key] = value;\n return true;\n },\n get(target, key) {\n return target[key as keyof State];\n },\n});\n\nexport function isQuoteCheckout(): boolean {\n return state.quoteId !== null;\n}\n\nexport function isCartCheckout(): boolean {\n return state.cartId !== null;\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchQueryError } from '@/checkout/api/fetch-graphql';\n\nexport class FetchError extends Error {\n constructor(reasons: FetchQueryError) {\n super(reasons.map((e: any) => e.message).join(' '));\n this.name = 'FetchError';\n }\n}\n\nexport class InvalidInput extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'InvalidInput';\n }\n}\n\nexport class MissingArgument extends InvalidInput {\n constructor(argumentName: string) {\n super(`${argumentName} is required.`);\n }\n}\n\nexport class MissingCart extends MissingArgument {\n constructor() {\n super('Cart ID');\n }\n}\n\nexport class MissingCartAndQuote extends InvalidInput {\n constructor() {\n super('Either Cart ID or Quote ID is required.');\n }\n}\n\nexport class Unauthenticated extends Error {\n constructor() {\n super('User is not authenticated');\n }\n}\n\nexport class MissingNegotiableQuoteId extends MissingArgument {\n constructor() {\n super('Negotiable Quote ID');\n }\n}\n\nexport class MissingEmail extends MissingArgument {\n constructor() {\n super('Email');\n }\n}\n\nexport class MissingPaymentMethod extends MissingArgument {\n constructor() {\n super('Payment method code');\n }\n}\n\nexport class MissingShippingAddress extends MissingArgument {\n constructor() {\n super('Shipping address');\n }\n}\n\nexport class MissingShippingMethod extends MissingArgument {\n constructor() {\n super('Shipping method');\n }\n}\n\nexport class MissingBillingAddress extends MissingArgument {\n constructor() {\n super('Billing address');\n }\n}\n\nexport class MissingCountry extends MissingArgument {\n constructor() {\n super('Country Code');\n }\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport enum TaxDisplay {\n EXCLUDING_TAX = 'EXCLUDING_TAX',\n INCLUDING_EXCLUDING_TAX = 'INCLUDING_AND_EXCLUDING_TAX',\n INCLUDING_TAX = 'INCLUDING_TAX',\n}\n\nexport interface StoreConfig {\n defaultCountry: string;\n agreementsEnabled: boolean;\n shoppingCartDisplaySetting: {\n shipping: TaxDisplay;\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Cart, NegotiableQuote } from '@/checkout/data/models';\nimport {\n computed,\n ReadonlySignal,\n signal,\n} from '@adobe-commerce/elsie/lib/signals';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport enum QueueName {\n Updates = 'updates',\n Default = 'default',\n ShippingEstimate = 'shippingEstimate',\n}\n\ntype Request<T> = () => Promise<T>;\ntype QueueCompletedHandler<T> = (result: T) => void;\n\ninterface QueuedRequest<T> {\n requestFn: Request<T>;\n resolve: (value: T) => void;\n reject: (error: any) => void;\n}\n\nconst queues = new Map<QueueName, QueuedRequest<any>[]>();\nconst processing = new Map<QueueName, boolean>();\nconst pendingRequests = signal<Set<QueueName>>(new Set());\nconst onQueueCompleted = new Map<QueueName, QueueCompletedHandler<any>>();\n\nonQueueCompleted.set(\n QueueName.Updates,\n (latestResult: Cart | NegotiableQuote) => {\n events.emit('checkout/updated', latestResult);\n }\n);\n\nasync function processQueue(type: QueueName): Promise<void> {\n processing.set(type, true);\n\n const queue = queues.get(type)!;\n let latestSuccessResult: any;\n\n while (queue.length > 0) {\n const request = queue.shift()!;\n\n try {\n const result = await request.requestFn();\n request.resolve(result);\n latestSuccessResult = result;\n } catch (error) {\n request.reject(error);\n }\n }\n\n processing.set(type, false);\n\n const pendingSet = new Set(pendingRequests.value);\n pendingSet.delete(type);\n pendingRequests.value = pendingSet;\n\n const handler = onQueueCompleted.get(type);\n\n if (handler && latestSuccessResult) {\n handler(latestSuccessResult);\n }\n}\n\nexport function enqueueRequest<T>(\n requestFn: Request<T>,\n name: QueueName = QueueName.Default\n): Promise<T> {\n if (!queues.has(name)) {\n queues.set(name, []);\n }\n\n const queue = queues.get(name)!;\n\n const promise = new Promise<T>((resolve, reject) => {\n queue.push({ requestFn, resolve, reject });\n });\n\n const pendingSet = new Set(pendingRequests.value);\n pendingSet.add(name);\n pendingRequests.value = pendingSet;\n\n if (!processing.get(name)) {\n processQueue(name);\n }\n\n return promise;\n}\n\nexport const hasPendingUpdates: ReadonlySignal<boolean> = computed(() => {\n return pendingRequests.value.has(QueueName.Updates);\n});\n\nexport const hasPendingShippingEstimate: ReadonlySignal<boolean> = computed(\n () => {\n return pendingRequests.value.has(QueueName.ShippingEstimate);\n }\n);\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchQueryError } from '@/checkout/api/fetch-graphql';\n\ntype ErrorPath = (string | number)[];\n\nexport type ErrorWithPath = FetchQueryError[number] & {\n path?: ErrorPath;\n};\n\nconst controlledErrorProps: string[] = ['sender_email', 'recipient_email'];\n\n/**\n * Filters out errors with known paths from a list of errors generated by a GraphQL query.\n *\n * Known issue: The query does not differentiate between physical and virtual gift cards, leading\n * to errors for physical ones as they don't have 'sender_email' and 'recipient_email' properties.\n *\n * @param {ErrorWithPath[]} errors - Array of errors to be filtered.\n * @return {ErrorWithPath[]} Uncontrolled (unexpected) errors not matching predefined paths.\n */\n\nexport function filterControlledErrors(errors: ErrorWithPath[]) {\n return errors.filter(\n (error) =>\n !error.path ||\n !controlledErrorProps.some((controlledErrorProp) => {\n return error.path?.at(-1) === controlledErrorProp;\n })\n );\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl, FetchOptions, FetchQueryError } from '@/checkout/api';\nimport { enqueueRequest, QueueName } from '@/checkout/lib/enqueueRequest';\nimport { filterControlledErrors } from '@/checkout/lib/filterControlledErrors';\nimport { FetchError } from '@/checkout/lib/errors';\n\ntype DispatchApiCallParams<T> = {\n defaultValueOnFail?: T;\n options?: FetchOptions;\n path: string;\n query: string;\n queueName?: QueueName;\n transformer?: (data: any) => T;\n type: 'query' | 'mutation';\n};\n\nexport function getValueAtPath(obj: any, path: string) {\n return path\n .split('.')\n .reduce(\n (acc, part) => (acc && acc[part] !== undefined ? acc[part] : undefined),\n obj\n );\n}\n\nasync function dispatchApiCall<T>(\n params: DispatchApiCallParams<T>\n): Promise<T> {\n const {\n defaultValueOnFail,\n options,\n path,\n query,\n queueName,\n transformer,\n type,\n } = params;\n\n try {\n const processApiCall = async () => {\n const { data, errors } = await fetchGraphQl<T>(query, {\n method: type === 'query' ? 'GET' : 'POST',\n cache: type === 'query' ? 'no-cache' : undefined,\n ...options,\n });\n\n if (errors) {\n const uncontrolledErrors = filterControlledErrors(errors);\n\n if (uncontrolledErrors.length > 0) {\n throw new FetchError(uncontrolledErrors as FetchQueryError);\n }\n }\n\n let result = getValueAtPath(data, path);\n\n if (result === undefined) {\n throw new Error(`No data found at path: ${path}`);\n }\n\n return transformer ? transformer(result) : result;\n };\n\n // Execute the API call, either directly or through the queue\n const result =\n type === 'mutation'\n ? await enqueueRequest<T>(processApiCall, queueName)\n : await processApiCall();\n\n return result;\n } catch (error: any) {\n if (defaultValueOnFail !== undefined) return defaultValueOnFail;\n throw error;\n }\n}\n\nexport { dispatchApiCall };\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const getStoreConfigQuery = /* GraphQL */ `\n query getStoreConfig {\n storeConfig {\n default_country\n is_checkout_agreements_enabled\n is_guest_checkout_enabled\n is_one_page_checkout_enabled\n shopping_cart_display_shipping\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { StoreConfig, TaxDisplay } from '@/checkout/data/models';\nimport { transformStoreConfig } from '@/checkout/data/transforms';\nimport { dispatchApiCall, state } from '@/checkout/lib';\nimport { getStoreConfigQuery } from './graphql/getStoreConfig.graphql';\n\nexport const DEFAULT_COUNTRY = 'US';\n\nexport const STORE_CONFIG_DEFAULTS: StoreConfig = {\n defaultCountry: DEFAULT_COUNTRY,\n agreementsEnabled: true,\n shoppingCartDisplaySetting: {\n shipping: TaxDisplay.EXCLUDING_TAX,\n },\n};\n\nexport const getStoreConfig = async () => {\n return await dispatchApiCall({\n defaultValueOnFail: STORE_CONFIG_DEFAULTS,\n options: { method: 'GET', cache: 'no-cache' },\n path: 'storeConfig',\n query: getStoreConfigQuery,\n transformer: transformStoreConfig,\n type: 'query',\n });\n};\n\nexport const getStoreConfigCache = () => state.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GetStoreConfigQuery } from '@/checkout/__generated__/types';\nimport { STORE_CONFIG_DEFAULTS } from '@/checkout/api/getStoreConfig';\nimport { StoreConfig, TaxDisplay } from '@/checkout/data/models';\n\nexport function transformTaxDisplay(data: number | null | undefined) {\n switch (data) {\n case 1:\n return TaxDisplay.EXCLUDING_TAX;\n case 2:\n return TaxDisplay.INCLUDING_TAX;\n case 3:\n return TaxDisplay.INCLUDING_EXCLUDING_TAX;\n default:\n return TaxDisplay.EXCLUDING_TAX;\n }\n}\n\nexport function transformStoreConfig(\n data: GetStoreConfigQuery['storeConfig']\n): StoreConfig {\n if (!data) return STORE_CONFIG_DEFAULTS;\n\n const {\n default_country,\n is_checkout_agreements_enabled,\n shopping_cart_display_shipping,\n } = data;\n\n return {\n defaultCountry: default_country || STORE_CONFIG_DEFAULTS.defaultCountry,\n agreementsEnabled: is_checkout_agreements_enabled,\n shoppingCartDisplaySetting: {\n shipping: transformTaxDisplay(shopping_cart_display_shipping),\n },\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchGraphQL } from '@adobe-commerce/fetch-graphql';\n\nexport const {\n setEndpoint,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n setFetchGraphQlHeaders,\n fetchGraphQl,\n getConfig,\n} = new FetchGraphQL().getMethods();\n\nexport type {\n FetchOptions,\n FetchQueryError,\n} from '@adobe-commerce/fetch-graphql';\n"],"names":["_state","state","target","key","value","FetchError","reasons","e","InvalidInput","message","MissingArgument","argumentName","MissingCart","MissingCartAndQuote","Unauthenticated","MissingNegotiableQuoteId","MissingEmail","MissingPaymentMethod","MissingShippingAddress","MissingShippingMethod","MissingBillingAddress","MissingCountry","TaxDisplay","QueueName","queues","processing","pendingRequests","signal","onQueueCompleted","latestResult","events","processQueue","type","queue","latestSuccessResult","request","result","error","pendingSet","handler","enqueueRequest","requestFn","name","promise","resolve","reject","hasPendingUpdates","computed","hasPendingShippingEstimate","controlledErrorProps","filterControlledErrors","errors","controlledErrorProp","_a","getValueAtPath","obj","path","acc","part","dispatchApiCall","params","defaultValueOnFail","options","query","queueName","transformer","processApiCall","data","fetchGraphQl","uncontrolledErrors","getStoreConfigQuery","DEFAULT_COUNTRY","STORE_CONFIG_DEFAULTS","getStoreConfig","transformStoreConfig","getStoreConfigCache","transformTaxDisplay","default_country","is_checkout_agreements_enabled","shopping_cart_display_shipping","setEndpoint","setFetchGraphQlHeader","removeFetchGraphQlHeader","setFetchGraphQlHeaders","getConfig","FetchGraphQL"],"mappings":"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"}
1
+ {"version":3,"file":"fetch-graphql.js","sources":["/@dropins/storefront-checkout/src/lib/state.ts","/@dropins/storefront-checkout/src/data/models/store-config.ts","/@dropins/storefront-checkout/src/lib/enqueueRequest.ts","/@dropins/storefront-checkout/src/lib/filterControlledErrors.ts","/@dropins/storefront-checkout/src/lib/errors/customErrors.ts","/@dropins/storefront-checkout/src/lib/dispatchApiCall.ts","/@dropins/storefront-checkout/src/api/getStoreConfig/graphql/getStoreConfig.graphql.ts","/@dropins/storefront-checkout/src/api/getStoreConfig/getStoreConfig.ts","/@dropins/storefront-checkout/src/data/transforms/transform-store-config.ts","/@dropins/storefront-checkout/src/api/fetch-graphql/fetch-graphql.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { StoreConfig } from '@/checkout/data/models';\n\ntype State = {\n authenticated: boolean;\n cartId?: string | null;\n config: StoreConfig | null;\n initialized: boolean;\n quoteId?: string | null;\n};\n\nconst _state: State = (() => ({\n authenticated: false,\n cartId: null,\n config: null,\n initialized: false,\n quoteId: null,\n}))();\n\n// Proxy state to allow reactivity\nexport const state = new Proxy(_state, {\n set(target, key, value) {\n // @ts-ignore\n target[key] = value;\n return true;\n },\n get(target, key) {\n return target[key as keyof State];\n },\n});\n\nexport function isQuoteCheckout(): boolean {\n return state.quoteId !== null;\n}\n\nexport function isCartCheckout(): boolean {\n return state.cartId !== null;\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport enum TaxDisplay {\n EXCLUDING_TAX = 'EXCLUDING_TAX',\n INCLUDING_EXCLUDING_TAX = 'INCLUDING_AND_EXCLUDING_TAX',\n INCLUDING_TAX = 'INCLUDING_TAX',\n}\n\nexport interface StoreConfig {\n defaultCountry: string;\n agreementsEnabled: boolean;\n shoppingCartDisplaySetting: {\n shipping: TaxDisplay;\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Cart, NegotiableQuote } from '@/checkout/data/models';\nimport {\n computed,\n ReadonlySignal,\n signal,\n} from '@adobe-commerce/elsie/lib/signals';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport enum QueueName {\n Updates = 'updates',\n Default = 'default',\n ShippingEstimate = 'shippingEstimate',\n}\n\ntype Request<T> = () => Promise<T>;\ntype QueueCompletedHandler<T> = (result: T) => void;\n\ninterface QueuedRequest<T> {\n requestFn: Request<T>;\n resolve: (value: T) => void;\n reject: (error: any) => void;\n}\n\nconst queues = new Map<QueueName, QueuedRequest<any>[]>();\nconst processing = new Map<QueueName, boolean>();\nconst pendingRequests = signal<Set<QueueName>>(new Set());\nconst onQueueCompleted = new Map<QueueName, QueueCompletedHandler<any>>();\n\nonQueueCompleted.set(\n QueueName.Updates,\n (latestResult: Cart | NegotiableQuote) => {\n events.emit('checkout/updated', latestResult);\n }\n);\n\nasync function processQueue(type: QueueName): Promise<void> {\n processing.set(type, true);\n\n const queue = queues.get(type)!;\n let latestSuccessResult: any;\n\n while (queue.length > 0) {\n const request = queue.shift()!;\n\n try {\n const result = await request.requestFn();\n request.resolve(result);\n latestSuccessResult = result;\n } catch (error) {\n request.reject(error);\n }\n }\n\n processing.set(type, false);\n\n const pendingSet = new Set(pendingRequests.value);\n pendingSet.delete(type);\n pendingRequests.value = pendingSet;\n\n const handler = onQueueCompleted.get(type);\n\n if (handler && latestSuccessResult) {\n handler(latestSuccessResult);\n }\n}\n\nexport function enqueueRequest<T>(\n requestFn: Request<T>,\n name: QueueName = QueueName.Default\n): Promise<T> {\n if (!queues.has(name)) {\n queues.set(name, []);\n }\n\n const queue = queues.get(name)!;\n\n const promise = new Promise<T>((resolve, reject) => {\n queue.push({ requestFn, resolve, reject });\n });\n\n const pendingSet = new Set(pendingRequests.value);\n pendingSet.add(name);\n pendingRequests.value = pendingSet;\n\n if (!processing.get(name)) {\n processQueue(name);\n }\n\n return promise;\n}\n\nexport const hasPendingUpdates: ReadonlySignal<boolean> = computed(() => {\n return pendingRequests.value.has(QueueName.Updates);\n});\n\nexport const hasPendingShippingEstimate: ReadonlySignal<boolean> = computed(\n () => {\n return pendingRequests.value.has(QueueName.ShippingEstimate);\n }\n);\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchQueryError } from '@/checkout/api/fetch-graphql';\n\ntype ErrorPath = (string | number)[];\n\nexport type ErrorWithPath = FetchQueryError[number] & {\n path?: ErrorPath;\n};\n\nconst controlledErrorProps: string[] = ['sender_email', 'recipient_email'];\n\n/**\n * Filters out errors with known paths from a list of errors generated by a GraphQL query.\n *\n * Known issue: The query does not differentiate between physical and virtual gift cards, leading\n * to errors for physical ones as they don't have 'sender_email' and 'recipient_email' properties.\n *\n * @param {ErrorWithPath[]} errors - Array of errors to be filtered.\n * @return {ErrorWithPath[]} Uncontrolled (unexpected) errors not matching predefined paths.\n */\n\nexport function filterControlledErrors(errors: ErrorWithPath[]) {\n return errors.filter(\n (error) =>\n !error.path ||\n !controlledErrorProps.some((controlledErrorProp) => {\n return error.path?.at(-1) === controlledErrorProp;\n })\n );\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchQueryError } from '@/checkout/api/fetch-graphql';\n\nexport class FetchError extends Error {\n constructor(reasons: FetchQueryError) {\n super(reasons.map((e: any) => e.message).join(' '));\n this.name = 'FetchError';\n }\n}\n\nexport class InvalidInput extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'InvalidInput';\n }\n}\n\nexport class MissingArgument extends InvalidInput {\n constructor(argumentName: string) {\n super(`${argumentName} is required.`);\n }\n}\n\nexport class MissingCart extends MissingArgument {\n constructor() {\n super('Cart ID');\n }\n}\n\nexport class MissingCartAndQuote extends InvalidInput {\n constructor() {\n super('Either Cart ID or Quote ID is required.');\n }\n}\n\nexport class Unauthenticated extends Error {\n constructor() {\n super('User is not authenticated');\n }\n}\n\nexport class MissingNegotiableQuoteId extends MissingArgument {\n constructor() {\n super('Negotiable Quote ID');\n }\n}\n\nexport class MissingEmail extends MissingArgument {\n constructor() {\n super('Email');\n }\n}\n\nexport class MissingPaymentMethod extends MissingArgument {\n constructor() {\n super('Payment method code');\n }\n}\n\nexport class MissingShippingAddress extends MissingArgument {\n constructor() {\n super('Shipping address');\n }\n}\n\nexport class MissingShippingMethod extends MissingArgument {\n constructor() {\n super('Shipping method');\n }\n}\n\nexport class MissingBillingAddress extends MissingArgument {\n constructor() {\n super('Billing address');\n }\n}\n\nexport class MissingCountry extends MissingArgument {\n constructor() {\n super('Country Code');\n }\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl, FetchOptions, FetchQueryError } from '@/checkout/api';\nimport { enqueueRequest, QueueName } from '@/checkout/lib/enqueueRequest';\nimport { filterControlledErrors } from '@/checkout/lib/filterControlledErrors';\nimport { FetchError } from '@/checkout/lib/errors';\n\ntype DispatchApiCallParams<T> = {\n defaultValueOnFail?: T;\n options?: FetchOptions;\n path: string;\n query: string;\n queueName?: QueueName;\n transformer?: (data: any) => T;\n type: 'query' | 'mutation';\n};\n\nexport function getValueAtPath(obj: any, path: string) {\n return path\n .split('.')\n .reduce(\n (acc, part) => (acc && acc[part] !== undefined ? acc[part] : undefined),\n obj\n );\n}\n\nasync function dispatchApiCall<T>(\n params: DispatchApiCallParams<T>\n): Promise<T> {\n const {\n defaultValueOnFail,\n options,\n path,\n query,\n queueName,\n transformer,\n type,\n } = params;\n\n try {\n const processApiCall = async () => {\n const { data, errors } = await fetchGraphQl<T>(query, {\n method: type === 'query' ? 'GET' : 'POST',\n cache: type === 'query' ? 'no-cache' : undefined,\n ...options,\n });\n\n if (errors) {\n const uncontrolledErrors = filterControlledErrors(errors);\n\n if (uncontrolledErrors.length > 0) {\n throw new FetchError(uncontrolledErrors as FetchQueryError);\n }\n }\n\n let result = getValueAtPath(data, path);\n\n if (result === undefined) {\n throw new Error(`No data found at path: ${path}`);\n }\n\n return transformer ? transformer(result) : result;\n };\n\n // Execute the API call, either directly or through the queue\n const result =\n type === 'mutation'\n ? await enqueueRequest<T>(processApiCall, queueName)\n : await processApiCall();\n\n return result;\n } catch (error: any) {\n if (defaultValueOnFail !== undefined) return defaultValueOnFail;\n throw error;\n }\n}\n\nexport { dispatchApiCall };\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const getStoreConfigQuery = /* GraphQL */ `\n query getStoreConfig {\n storeConfig {\n default_country\n is_checkout_agreements_enabled\n is_guest_checkout_enabled\n is_one_page_checkout_enabled\n shopping_cart_display_shipping\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { StoreConfig, TaxDisplay } from '@/checkout/data/models';\nimport { transformStoreConfig } from '@/checkout/data/transforms';\nimport { dispatchApiCall, state } from '@/checkout/lib';\nimport { getStoreConfigQuery } from './graphql/getStoreConfig.graphql';\n\nexport const DEFAULT_COUNTRY = 'US';\n\nexport const STORE_CONFIG_DEFAULTS: StoreConfig = {\n defaultCountry: DEFAULT_COUNTRY,\n agreementsEnabled: true,\n shoppingCartDisplaySetting: {\n shipping: TaxDisplay.EXCLUDING_TAX,\n },\n};\n\nexport const getStoreConfig = async () => {\n return await dispatchApiCall({\n defaultValueOnFail: STORE_CONFIG_DEFAULTS,\n options: { method: 'GET', cache: 'no-cache' },\n path: 'storeConfig',\n query: getStoreConfigQuery,\n transformer: transformStoreConfig,\n type: 'query',\n });\n};\n\nexport const getStoreConfigCache = () => state.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GetStoreConfigQuery } from '@/checkout/__generated__/types';\nimport { STORE_CONFIG_DEFAULTS } from '@/checkout/api/getStoreConfig';\nimport { StoreConfig, TaxDisplay } from '@/checkout/data/models';\n\nexport function transformTaxDisplay(data: number | null | undefined) {\n switch (data) {\n case 1:\n return TaxDisplay.EXCLUDING_TAX;\n case 2:\n return TaxDisplay.INCLUDING_TAX;\n case 3:\n return TaxDisplay.INCLUDING_EXCLUDING_TAX;\n default:\n return TaxDisplay.EXCLUDING_TAX;\n }\n}\n\nexport function transformStoreConfig(\n data: GetStoreConfigQuery['storeConfig']\n): StoreConfig {\n if (!data) return STORE_CONFIG_DEFAULTS;\n\n const {\n default_country,\n is_checkout_agreements_enabled,\n shopping_cart_display_shipping,\n } = data;\n\n return {\n defaultCountry: default_country || STORE_CONFIG_DEFAULTS.defaultCountry,\n agreementsEnabled: is_checkout_agreements_enabled,\n shoppingCartDisplaySetting: {\n shipping: transformTaxDisplay(shopping_cart_display_shipping),\n },\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchGraphQL } from '@adobe-commerce/fetch-graphql';\n\nexport const {\n setEndpoint,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n setFetchGraphQlHeaders,\n fetchGraphQl,\n getConfig,\n} = new FetchGraphQL().getMethods();\n\nexport type {\n FetchOptions,\n FetchQueryError,\n} from '@adobe-commerce/fetch-graphql';\n"],"names":["_state","state","target","key","value","TaxDisplay","QueueName","queues","processing","pendingRequests","signal","onQueueCompleted","latestResult","events","processQueue","type","queue","latestSuccessResult","request","result","error","pendingSet","handler","enqueueRequest","requestFn","name","promise","resolve","reject","hasPendingUpdates","computed","hasPendingShippingEstimate","controlledErrorProps","filterControlledErrors","errors","controlledErrorProp","_a","FetchError","reasons","e","InvalidInput","message","MissingArgument","argumentName","MissingCart","MissingCartAndQuote","Unauthenticated","MissingNegotiableQuoteId","MissingEmail","MissingPaymentMethod","MissingShippingAddress","MissingShippingMethod","MissingBillingAddress","MissingCountry","getValueAtPath","obj","path","acc","part","dispatchApiCall","params","defaultValueOnFail","options","query","queueName","transformer","processApiCall","data","fetchGraphQl","uncontrolledErrors","getStoreConfigQuery","DEFAULT_COUNTRY","STORE_CONFIG_DEFAULTS","getStoreConfig","transformStoreConfig","getStoreConfigCache","transformTaxDisplay","default_country","is_checkout_agreements_enabled","shopping_cart_display_shipping","setEndpoint","setFetchGraphQlHeader","removeFetchGraphQlHeader","setFetchGraphQlHeaders","getConfig","FetchGraphQL"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{d as r}from"./fetch-graphql.js";import"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";const i=e=>!e||!(e!=null&&e.available_credit)||e.available_credit.value==null||!e.available_credit.currency?null:{availableCredit:{value:e.available_credit.value,currency:e.available_credit.currency},exceedLimit:(e==null?void 0:e.exceed_limit)||!1},l=`
4
+ query getCompanyCredit {
5
+ company {
6
+ credit {
7
+ available_credit {
8
+ value
9
+ currency
10
+ }
11
+ }
12
+ }
13
+ }
14
+ `,u=async()=>await r({type:"query",query:l,options:{method:"GET",cache:"no-cache"},path:"company.credit",transformer:i,defaultValueOnFail:null});export{u as g};
15
+ //# sourceMappingURL=getCompanyCredit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCompanyCredit.js","sources":["/@dropins/storefront-checkout/src/data/transforms/transform-company-credit.ts","/@dropins/storefront-checkout/src/api/getCompanyCredit/graphql/getCompanyCredit.graphql.ts","/@dropins/storefront-checkout/src/api/getCompanyCredit/getCompanyCredit.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CompanyCredit as CompanyCreditModel } from '@/checkout/data/models';\nimport { CompanyCredit as CompanyCreditType } from '@/checkout/__generated__/types';\n\ntype OptionalCompanyCredit = CompanyCreditType | null | undefined;\n\nconst transformCompanyCredit = (data: OptionalCompanyCredit): CompanyCreditModel | null => {\n if (!data || !data?.available_credit || data.available_credit.value == null || !data.available_credit.currency) return null;\n\n const model = {\n availableCredit: {\n value: data.available_credit.value,\n currency: data.available_credit.currency,\n },\n exceedLimit: data?.exceed_limit || false,\n };\n\n return model;\n};\n\nexport { transformCompanyCredit };\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const getCompanyCreditQuery = /* GraphQL */ `\n query getCompanyCredit {\n company {\n credit {\n available_credit {\n value\n currency\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { getCompanyCreditQuery } from '@/checkout/api/getCompanyCredit/graphql/getCompanyCredit.graphql';\nimport { CompanyCredit } from '@/checkout/data/models';\nimport { transformCompanyCredit } from '@/checkout/data/transforms';\nimport { dispatchApiCall } from '@/checkout/lib/dispatchApiCall';\n\nexport const getCompanyCredit = async (): Promise<CompanyCredit | null> => {\n return await dispatchApiCall({\n type: 'query',\n query: getCompanyCreditQuery,\n options: { method: 'GET', cache: 'no-cache' },\n path: 'company.credit',\n transformer: transformCompanyCredit,\n defaultValueOnFail: null,\n });\n};\n"],"names":["transformCompanyCredit","data","getCompanyCreditQuery","getCompanyCredit","dispatchApiCall"],"mappings":"yGAsBA,MAAMA,EAA0BC,GAC1B,CAACA,GAAQ,EAACA,GAAA,MAAAA,EAAM,mBAAoBA,EAAK,iBAAiB,OAAS,MAAQ,CAACA,EAAK,iBAAiB,SAAiB,KAEzG,CACZ,gBAAiB,CACf,MAAOA,EAAK,iBAAiB,MAC7B,SAAUA,EAAK,iBAAiB,QAClC,EACA,aAAaA,GAAA,YAAAA,EAAM,eAAgB,EACrC,ECdWC,EAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECKtCC,EAAmB,SACvB,MAAMC,EAAgB,CAC3B,KAAM,QACN,MAAOF,EACP,QAAS,CAAE,OAAQ,MAAO,MAAO,UAAW,EAC5C,KAAM,iBACN,YAAaF,EACb,mBAAoB,IAAA,CACrB"}
package/chunks/guards.js CHANGED
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{s as u,q as a}from"./fetch-graphql.js";function p({code:t,...e}){return{code:t,...e}}function f({code:t,...e}){return{code:t,...e}}const d=t=>{if("carrier_code"in t&&"method_code"in t)return t;const e=t,{carrierCode:o,methodCode:r,...n}=e;return{carrier_code:o,method_code:r,...n}};function m(t){return t.map(d)}function i(t){var e;return{fax:t.fax,middlename:t.middleName,prefix:t.prefix,suffix:t.suffix,vat_id:t.vatId,city:t.city,custom_attributes:((e=t.customAttributes)==null?void 0:e.map(o=>({attribute_code:o.code,value:o.value})))||[],company:t.company,country_code:t.countryCode,firstname:t.firstName,lastname:t.lastName,postcode:t.postcode,region:t.region,region_id:t.regionId,save_in_address_book:t.saveInAddressBook,street:t.street,telephone:t.telephone}}function l(t){const{customerAddressId:e,pickupLocationCode:o,address:r}=t,n={};return e?{customer_address_id:e}:(o&&(n.pickup_location_code=o),!o&&r&&(n.address=i(r)),n)}function _(t){const{customerAddressUid:e,address:o}=t,r={};return e?{customer_address_uid:e}:(o&&(r.address=i(o)),r)}function I(t){const{customerAddressId:e,sameAsShipping:o=!1,useForShipping:r=!1,address:n}=t;let s={use_for_shipping:r,same_as_shipping:o};return!o&&e?(s.customer_address_id=e,s):(!o&&n&&(s.address=i(n)),s)}function h(t){const{customerAddressUid:e,sameAsShipping:o=!1,useForShipping:r=!1,address:n}=t;let s={use_for_shipping:r,same_as_shipping:o};return!o&&e?(s.customer_address_uid=e,s):(!o&&n&&(s.address=i(n)),s)}const g=()=>{const{cartId:t,quoteId:e}=u;if(!t&&!e)throw new a};export{p as a,f as b,l as c,_ as d,g as e,I as f,h as g,m as t};
3
+ import{s as u,M as a}from"./fetch-graphql.js";function p({code:t,...e}){return{code:t,...e}}function f({code:t,...e}){return{code:t,...e}}const d=t=>{if("carrier_code"in t&&"method_code"in t)return t;const e=t,{carrierCode:o,methodCode:r,...n}=e;return{carrier_code:o,method_code:r,...n}};function m(t){return t.map(d)}function i(t){var e;return{fax:t.fax,middlename:t.middleName,prefix:t.prefix,suffix:t.suffix,vat_id:t.vatId,city:t.city,custom_attributes:((e=t.customAttributes)==null?void 0:e.map(o=>({attribute_code:o.code,value:o.value})))||[],company:t.company,country_code:t.countryCode,firstname:t.firstName,lastname:t.lastName,postcode:t.postcode,region:t.region,region_id:t.regionId,save_in_address_book:t.saveInAddressBook,street:t.street,telephone:t.telephone}}function l(t){const{customerAddressId:e,pickupLocationCode:o,address:r}=t,n={};return e?{customer_address_id:e}:(o&&(n.pickup_location_code=o),!o&&r&&(n.address=i(r)),n)}function _(t){const{customerAddressUid:e,address:o}=t,r={};return e?{customer_address_uid:e}:(o&&(r.address=i(o)),r)}function I(t){const{customerAddressId:e,sameAsShipping:o=!1,useForShipping:r=!1,address:n}=t;let s={use_for_shipping:r,same_as_shipping:o};return!o&&e?(s.customer_address_id=e,s):(!o&&n&&(s.address=i(n)),s)}function h(t){const{customerAddressUid:e,sameAsShipping:o=!1,useForShipping:r=!1,address:n}=t;let s={use_for_shipping:r,same_as_shipping:o};return!o&&e?(s.customer_address_uid=e,s):(!o&&n&&(s.address=i(n)),s)}const g=()=>{const{cartId:t,quoteId:e}=u;if(!t&&!e)throw new a};export{p as a,f as b,I as c,h as d,g as e,l as f,_ as g,m as t};
4
4
  //# sourceMappingURL=guards.js.map