@zonos/elements 1.3.51 → 1.3.52

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 (207) hide show
  1. package/dist/cjs/CheckoutConfig-65376e00.js +40 -0
  2. package/dist/cjs/{cart-546d1602.js → cart-61a8983d.js} +238 -375
  3. package/dist/cjs/{createCustomEvent-9b91480b.js → createCustomEvent-228027b5.js} +3 -2
  4. package/dist/cjs/handleFetch-842c95b0.js +322 -0
  5. package/dist/cjs/index.cjs.js +75 -35
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/{paypal-83f49f9a.js → paypal-f1eb6621.js} +16 -16
  8. package/dist/cjs/zonos-address_8.cjs.entry.js +4 -4
  9. package/dist/cjs/{zonos-cart-items_12.cjs.entry.js → zonos-badge_13.cjs.entry.js} +41 -9
  10. package/dist/cjs/zonos-checkout.cjs.entry.js +75 -174
  11. package/dist/cjs/zonos-controller.cjs.entry.js +27 -25
  12. package/dist/cjs/zonos-country-flag.cjs.entry.js +2 -2
  13. package/dist/cjs/zonos-country-select_4.cjs.entry.js +2 -2
  14. package/dist/cjs/zonos-elements.cjs.js +1 -1
  15. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +2 -2
  16. package/dist/cjs/zonos-hello.cjs.entry.js +11 -11
  17. package/dist/cjs/zonos-language-select_2.cjs.entry.js +2 -2
  18. package/dist/cjs/zonos-notification_3.cjs.entry.js +9 -9
  19. package/dist/cjs/zonos-tooltip.cjs.entry.js +27 -0
  20. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-subtotal/zonos-cart-subtotal.js +5 -2
  21. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +44 -20
  22. package/dist/collection/components/store/checkout/cart.js +14 -2
  23. package/dist/collection/components/store/checkout/stripe.js +9 -4
  24. package/dist/collection/components/store/translationStore/strings.arabic.js +3 -3
  25. package/dist/collection/components/store/translationStore/strings.base.js +3 -3
  26. package/dist/collection/components/store/translationStore/strings.chinese.js +3 -3
  27. package/dist/collection/components/store/translationStore/strings.danish.js +3 -3
  28. package/dist/collection/components/store/translationStore/strings.dutch.js +3 -3
  29. package/dist/collection/components/store/translationStore/strings.french.js +3 -3
  30. package/dist/collection/components/store/translationStore/strings.german.js +3 -3
  31. package/dist/collection/components/store/translationStore/strings.hebrew.js +3 -3
  32. package/dist/collection/components/store/translationStore/strings.indonesian.js +3 -3
  33. package/dist/collection/components/store/translationStore/strings.italian.js +3 -3
  34. package/dist/collection/components/store/translationStore/strings.japanese.js +3 -3
  35. package/dist/collection/components/store/translationStore/strings.korean.js +3 -3
  36. package/dist/collection/components/store/translationStore/strings.norwegian.js +3 -3
  37. package/dist/collection/components/store/translationStore/strings.polish.js +3 -3
  38. package/dist/collection/components/store/translationStore/strings.portuguese.js +3 -3
  39. package/dist/collection/components/store/translationStore/strings.russian.js +3 -3
  40. package/dist/collection/components/store/translationStore/strings.spanish.js +3 -3
  41. package/dist/collection/components/store/translationStore/strings.swedish.js +3 -3
  42. package/dist/collection/components/store/translationStore/strings.turkish.js +3 -3
  43. package/dist/collection/components/store/translationStore/strings.vietnamese.js +3 -3
  44. package/dist/collection/components/utils/api/buildCartItemsByTempCart.js +14 -14
  45. package/dist/collection/components/utils/api/calculateLandedCostNormalized.js +28 -0
  46. package/dist/collection/components/utils/api/cartCalculateLandedCost.js +19 -0
  47. package/dist/collection/components/utils/api/prepCalculateLandedCost.js +65 -0
  48. package/dist/collection/components/utils/checkout/initCheckout.js +4 -2
  49. package/dist/collection/environment.js +1 -1
  50. package/dist/collection/scripts/_getNextFallbackUrl.js +1 -0
  51. package/dist/collection/scripts/_getTempCartById.js +14 -0
  52. package/dist/collection/scripts/_zonosBase.js +39 -10
  53. package/dist/collection/scripts/cart/_getCartIdFromParam.js +9 -0
  54. package/dist/collection/scripts/cart/_setupCartData.js +18 -0
  55. package/dist/collection/types/checkout/CheckoutConfig.js +2 -1
  56. package/dist/collection/types/generated/graphql.customer.types.js +12 -0
  57. package/dist/collection/utils/formattedCloudflareApiUrl.js +8 -2
  58. package/dist/collection/utils/generateCloudflareDeployUrl.js +3 -0
  59. package/dist/esm/CheckoutConfig-57350b28.js +36 -0
  60. package/dist/esm/{cart-51529af2.js → cart-45d2861f.js} +193 -327
  61. package/dist/esm/{createCustomEvent-b8bbdf5e.js → createCustomEvent-3fcc948a.js} +2 -1
  62. package/dist/esm/handleFetch-37cea185.js +315 -0
  63. package/dist/esm/index.js +56 -17
  64. package/dist/esm/loader.js +1 -1
  65. package/dist/esm/{paypal-905325d0.js → paypal-ee310945.js} +2 -2
  66. package/dist/esm/zonos-address_8.entry.js +2 -2
  67. package/dist/esm/{zonos-cart-items_12.entry.js → zonos-badge_13.entry.js} +40 -9
  68. package/dist/esm/zonos-checkout.entry.js +61 -160
  69. package/dist/esm/zonos-controller.entry.js +6 -4
  70. package/dist/esm/zonos-country-flag.entry.js +2 -2
  71. package/dist/esm/zonos-country-select_4.entry.js +2 -2
  72. package/dist/esm/zonos-elements.js +1 -1
  73. package/dist/esm/zonos-hello-dialog.entry.js +2 -2
  74. package/dist/esm/zonos-hello.entry.js +2 -2
  75. package/dist/esm/zonos-language-select_2.entry.js +2 -2
  76. package/dist/esm/zonos-notification_3.entry.js +3 -3
  77. package/dist/esm/zonos-tooltip.entry.js +23 -0
  78. package/dist/esm-es5/CheckoutConfig-57350b28.js +1 -0
  79. package/dist/esm-es5/cart-45d2861f.js +1 -0
  80. package/dist/esm-es5/{createCustomEvent-b8bbdf5e.js → createCustomEvent-3fcc948a.js} +1 -1
  81. package/dist/esm-es5/handleFetch-37cea185.js +1 -0
  82. package/dist/esm-es5/index.js +1 -1
  83. package/dist/esm-es5/loader.js +1 -1
  84. package/dist/esm-es5/{paypal-905325d0.js → paypal-ee310945.js} +1 -1
  85. package/dist/esm-es5/zonos-address_8.entry.js +1 -1
  86. package/dist/esm-es5/zonos-badge_13.entry.js +1 -0
  87. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  88. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  89. package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
  90. package/dist/esm-es5/zonos-country-select_4.entry.js +1 -1
  91. package/dist/esm-es5/zonos-elements.js +1 -1
  92. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  93. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  94. package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
  95. package/dist/esm-es5/zonos-notification_3.entry.js +1 -1
  96. package/dist/esm-es5/zonos-tooltip.entry.js +1 -0
  97. package/dist/scripts/index.d.ts +74 -87
  98. package/dist/scripts/index.js +1 -1
  99. package/dist/scripts/loadZonos.js +1 -1
  100. package/dist/scripts/zonos.js +1 -1
  101. package/dist/types/components/checkout/zonos-checkout/zonos-checkout.d.ts +0 -2
  102. package/dist/types/components/store/checkout/cart.d.ts +13 -3
  103. package/dist/types/components/store/checkout/stripe.d.ts +3 -1
  104. package/dist/types/components/store/translationStore/strings.arabic.d.ts +3 -3
  105. package/dist/types/components/store/translationStore/strings.base.d.ts +3 -3
  106. package/dist/types/components/store/translationStore/strings.chinese.d.ts +3 -3
  107. package/dist/types/components/store/translationStore/strings.danish.d.ts +3 -3
  108. package/dist/types/components/store/translationStore/strings.dutch.d.ts +3 -3
  109. package/dist/types/components/store/translationStore/strings.french.d.ts +3 -3
  110. package/dist/types/components/store/translationStore/strings.german.d.ts +3 -3
  111. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +3 -3
  112. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +3 -3
  113. package/dist/types/components/store/translationStore/strings.italian.d.ts +3 -3
  114. package/dist/types/components/store/translationStore/strings.japanese.d.ts +3 -3
  115. package/dist/types/components/store/translationStore/strings.korean.d.ts +3 -3
  116. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +3 -3
  117. package/dist/types/components/store/translationStore/strings.polish.d.ts +3 -3
  118. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +3 -3
  119. package/dist/types/components/store/translationStore/strings.russian.d.ts +3 -3
  120. package/dist/types/components/store/translationStore/strings.spanish.d.ts +3 -3
  121. package/dist/types/components/store/translationStore/strings.swedish.d.ts +3 -3
  122. package/dist/types/components/store/translationStore/strings.turkish.d.ts +3 -3
  123. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +3 -3
  124. package/dist/types/components/store/translationStore.d.ts +1 -1
  125. package/dist/types/components/utils/api/buildCartItemsByTempCart.d.ts +8 -3
  126. package/dist/types/components/utils/api/calculateLandedCostNormalized.d.ts +2 -0
  127. package/dist/types/components/utils/api/cartCalculateLandedCost.d.ts +5 -0
  128. package/dist/types/components/utils/api/prepCalculateLandedCost.d.ts +5 -1
  129. package/dist/types/components/utils/checkout/getIsTestMode.d.ts +1 -1
  130. package/dist/types/scripts/_getNextFallbackUrl.d.ts +1 -0
  131. package/dist/types/scripts/_getTempCartById.d.ts +8 -0
  132. package/dist/types/scripts/_zonosBase.d.ts +15 -12
  133. package/dist/types/scripts/cart/_getCartIdFromParam.d.ts +4 -0
  134. package/dist/types/scripts/cart/_setupCartData.d.ts +7 -0
  135. package/dist/types/types/checkout/CheckoutConfig.d.ts +18 -3
  136. package/dist/types/types/checkout/api/CalculateLandedCostRequest.d.ts +42 -1
  137. package/dist/types/types/checkout/api/NormalizedTempCart.d.ts +37 -0
  138. package/dist/types/types/generated/graphql.customer.types.d.ts +249 -2
  139. package/dist/types/types/generated/graphql.customer.types.ts +251 -3
  140. package/dist/types/utils/formattedCloudflareApiUrl.d.ts +2 -2
  141. package/dist/zonos-elements/assets/RemoveIcon.svg +1 -1
  142. package/dist/zonos-elements/index.esm.js +1 -1
  143. package/dist/zonos-elements/p-042c466d.system.entry.js +1 -0
  144. package/dist/zonos-elements/p-10cb0064.entry.js +1 -0
  145. package/dist/zonos-elements/{p-5e56828a.entry.js → p-259ccf8d.entry.js} +1 -1
  146. package/dist/zonos-elements/p-2a47d2cc.system.entry.js +1 -0
  147. package/dist/zonos-elements/{p-ffd76226.entry.js → p-31eb835c.entry.js} +1 -1
  148. package/dist/zonos-elements/{p-58d9803d.entry.js → p-36360905.entry.js} +1 -1
  149. package/dist/zonos-elements/{p-1828a4ff.system.entry.js → p-3703b814.system.entry.js} +1 -1
  150. package/dist/zonos-elements/p-4146feec.js +1 -0
  151. package/dist/zonos-elements/p-446c8f02.system.entry.js +1 -0
  152. package/dist/zonos-elements/{p-2c323311.system.js → p-5590f90c.system.js} +1 -1
  153. package/dist/zonos-elements/p-588396df.js +1 -0
  154. package/dist/zonos-elements/{p-aa5d669b.js → p-6e59c6e4.js} +2 -2
  155. package/dist/zonos-elements/p-6eedc3f8.entry.js +1 -0
  156. package/dist/zonos-elements/p-747eed39.entry.js +1 -0
  157. package/dist/zonos-elements/{p-00100b17.system.entry.js → p-8228e87c.system.entry.js} +1 -1
  158. package/dist/zonos-elements/p-827868e6.entry.js +1 -0
  159. package/dist/zonos-elements/{p-cc7a4fca.entry.js → p-88005b94.entry.js} +1 -1
  160. package/dist/zonos-elements/p-895fdefb.js +1 -0
  161. package/dist/zonos-elements/p-8f7773b0.system.js +1 -0
  162. package/dist/zonos-elements/{p-9a0401fd.entry.js → p-8fa49d94.entry.js} +1 -1
  163. package/dist/zonos-elements/p-a74a7afa.system.js +1 -0
  164. package/dist/zonos-elements/p-b1861e64.system.js +1 -0
  165. package/dist/zonos-elements/{p-8473f99a.system.entry.js → p-b842b96a.system.entry.js} +1 -1
  166. package/dist/zonos-elements/{p-9e976332.entry.js → p-bb186075.entry.js} +1 -1
  167. package/dist/zonos-elements/{p-b1a8b874.system.entry.js → p-c008648a.system.entry.js} +1 -1
  168. package/dist/zonos-elements/p-c78dd680.system.js +1 -1
  169. package/dist/zonos-elements/{p-6b42fa1b.system.entry.js → p-cd4ad1be.system.entry.js} +1 -1
  170. package/dist/zonos-elements/{p-59e85369.system.entry.js → p-d62e6bb0.system.entry.js} +1 -1
  171. package/dist/zonos-elements/{p-496e040f.system.entry.js → p-dc12f30a.system.entry.js} +1 -1
  172. package/dist/zonos-elements/p-eb2aedd0.js +1 -0
  173. package/dist/zonos-elements/{p-c89859cf.system.js → p-f124e459.system.js} +2 -2
  174. package/dist/zonos-elements/p-f527cd5b.entry.js +1 -0
  175. package/dist/zonos-elements/p-f826b979.system.entry.js +1 -0
  176. package/dist/zonos-elements/p-f87a635b.system.js +1 -0
  177. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  178. package/package.json +1 -1
  179. package/dist/cjs/logError-4e2f2020.js +0 -58
  180. package/dist/cjs/zonos-badge_2.cjs.entry.js +0 -57
  181. package/dist/collection/components/utils/api/tempCartItem/getAttributes.js +0 -66
  182. package/dist/collection/components/utils/api/tempCartItem/getMeasurements.js +0 -58
  183. package/dist/esm/logError-c456c092.js +0 -55
  184. package/dist/esm/zonos-badge_2.entry.js +0 -52
  185. package/dist/esm-es5/cart-51529af2.js +0 -1
  186. package/dist/esm-es5/logError-c456c092.js +0 -1
  187. package/dist/esm-es5/zonos-badge_2.entry.js +0 -1
  188. package/dist/esm-es5/zonos-cart-items_12.entry.js +0 -1
  189. package/dist/types/components/utils/api/tempCartItem/getAttributes.d.ts +0 -11
  190. package/dist/types/components/utils/api/tempCartItem/getMeasurements.d.ts +0 -7
  191. package/dist/types/types/checkout/api/TempCart.d.ts +0 -80
  192. package/dist/zonos-elements/p-101c41bf.entry.js +0 -1
  193. package/dist/zonos-elements/p-3c4eec63.system.entry.js +0 -1
  194. package/dist/zonos-elements/p-47945026.system.entry.js +0 -1
  195. package/dist/zonos-elements/p-47c72c50.system.entry.js +0 -1
  196. package/dist/zonos-elements/p-4e77ed65.system.entry.js +0 -1
  197. package/dist/zonos-elements/p-6013e370.entry.js +0 -1
  198. package/dist/zonos-elements/p-63db40b9.system.js +0 -1
  199. package/dist/zonos-elements/p-8b8ef484.entry.js +0 -1
  200. package/dist/zonos-elements/p-b57d24f2.entry.js +0 -1
  201. package/dist/zonos-elements/p-ba0289f9.entry.js +0 -1
  202. package/dist/zonos-elements/p-c8a3303b.js +0 -1
  203. package/dist/zonos-elements/p-d413cd13.js +0 -1
  204. package/dist/zonos-elements/p-e758ec31.system.js +0 -1
  205. package/dist/zonos-elements/p-eaa335e1.js +0 -1
  206. package/dist/zonos-elements/p-fcfde531.system.js +0 -1
  207. /package/dist/collection/types/checkout/api/{TempCart.js → NormalizedTempCart.js} +0 -0
@@ -3,164 +3,41 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-d56e0a8b.js');
6
- const cart = require('./cart-546d1602.js');
7
- const paypal = require('./paypal-83f49f9a.js');
6
+ const cart = require('./cart-61a8983d.js');
7
+ const paypal = require('./paypal-f1eb6621.js');
8
8
  const zonosStore = require('./zonosStore-67139f0e.js');
9
- const createCustomEvent = require('./createCustomEvent-9b91480b.js');
9
+ const createCustomEvent = require('./createCustomEvent-228027b5.js');
10
10
  const isCheckoutMobile = require('./isCheckoutMobile-f491ca7c.js');
11
- const logError = require('./logError-4e2f2020.js');
11
+ const handleFetch = require('./handleFetch-842c95b0.js');
12
12
  const classes = require('./classes-b7918f56.js');
13
13
  const getBorderRadius = require('./getBorderRadius-a6a3b35e.js');
14
14
  const isDarkColor = require('./isDarkColor-7a056d05.js');
15
+ const CheckoutConfig = require('./CheckoutConfig-65376e00.js');
15
16
  const RemoveIcon = require('./RemoveIcon-081ac073.js');
16
17
 
17
- /**
18
- * This is just function to make the key typesafe to enter
19
- * @returns
20
- */
21
- const objAttribute = ({ key, value, }) => value
22
- ? {
23
- key,
24
- value,
25
- }
26
- : null;
27
- /**
28
- * Map legacy item attribute to dgs item attributes
29
- * @ref https://github.com/Zonos/ShippingQuoteService/blob/f8bd4f1ff41cb34b49b9f3f435576ec28dedf906/src/main/java/com/iglobal/services/shippingquote/dto/ShippingQuoteRequestDto.java#L412
30
- */
31
- const getAttributes = (item) => {
32
- return [
33
- objAttribute({
34
- key: 'brand',
35
- value: item.itemBrand,
36
- }),
37
- objAttribute({
38
- key: 'material',
39
- value: item.itemMaterial,
40
- }),
41
- objAttribute({
42
- key: 'category',
43
- value: item.itemCategory,
44
- }),
45
- objAttribute({
46
- key: 'color',
47
- value: item.itemColor,
48
- }),
49
- objAttribute({
50
- key: 'customization',
51
- value: item.itemCustomization,
52
- }),
53
- objAttribute({
54
- key: 'descriptionDetailed',
55
- value: item.itemDescriptionDetailed,
56
- }),
57
- objAttribute({
58
- key: 'fabricContent',
59
- value: item.itemFabricContent,
60
- }),
61
- objAttribute({
62
- key: 'ltlClass',
63
- value: item.itemLtlClass,
64
- }),
65
- objAttribute({
66
- key: 'pickingLocation',
67
- value: item.itemPickingLocation,
68
- }),
69
- objAttribute({
70
- key: 'shipFromLocation',
71
- value: item.itemShipFromLocation,
72
- }),
73
- objAttribute({
74
- key: 'size',
75
- value: item.itemSize,
76
- }),
77
- objAttribute({
78
- key: 'status',
79
- value: item.status,
80
- }),
81
- ].filter(Boolean);
82
- };
83
-
84
- /**
85
- * Map legacy weight units with dgs
86
- * @ref https://github.com/Zonos/ShippingQuoteService/blob/f8bd4f1ff41cb34b49b9f3f435576ec28dedf906/src/main/java/com/iglobal/services/shippingquote/dto/ShippingQuoteRequestDto.java#L483
87
- */
88
- const getItemWeightUnit = (weightUnit) => {
89
- if (!weightUnit) {
90
- return 'POUND';
91
- }
92
- switch (weightUnit.toUpperCase()) {
93
- case 'KG':
94
- return 'KILOGRAM';
95
- case 'OZ':
96
- return 'OUNCE';
97
- case 'G':
98
- return 'GRAM';
99
- default:
100
- return 'POUND';
101
- }
102
- };
103
- /**
104
- * Mapping legacy measurement with dgs
105
- * @ref https://github.com/Zonos/ShippingQuoteService/blob/f8bd4f1ff41cb34b49b9f3f435576ec28dedf906/src/main/java/com/iglobal/services/shippingquote/dto/ShippingQuoteRequestDto.java#L441
106
- */
107
- const getMeasurements = (item) => {
108
- if (!item) {
109
- return [];
110
- }
111
- const measurements = [];
112
- if (item.length) {
113
- measurements.push({
114
- type: 'LENGTH',
115
- unitOfMeasure: 'INCH',
116
- value: item.length,
117
- });
118
- }
119
- if (item.width) {
120
- measurements.push({
121
- type: 'WIDTH',
122
- unitOfMeasure: 'INCH',
123
- value: item.width,
124
- });
125
- }
126
- if (item.weight) {
127
- measurements.push({
128
- type: 'WEIGHT',
129
- unitOfMeasure: getItemWeightUnit(item.weightUnits),
130
- value: item.weight,
131
- });
132
- }
133
- if (item.height) {
134
- measurements.push({
135
- type: 'HEIGHT',
136
- unitOfMeasure: 'INCH',
137
- value: item.height,
138
- });
139
- }
140
- return measurements;
141
- };
142
-
143
18
  /**
144
19
  * Map the items from tempCart like how we do it in dgs
145
20
  * @ref https://github.com/Zonos/ShippingQuoteService/blob/f8bd4f1ff41cb34b49b9f3f435576ec28dedf906/src/main/java/com/iglobal/services/shippingquote/dto/ShippingQuoteRequestDto.java#L393
146
21
  */
147
22
  const buildCartItemsByTempCart = (tempCartData) => {
148
- var _a;
149
- const tempCartItems = ((_a = tempCartData === null || tempCartData === void 0 ? void 0 : tempCartData.items) === null || _a === void 0 ? void 0 : _a.map(item => ({
150
- amount: item.unitPrice || 0,
151
- attributes: getAttributes(item),
23
+ const tempCartItems = tempCartData.items.map(item => ({
24
+ amount: item.amount,
25
+ attributes: item.attributes || [],
152
26
  countryOfOrigin: item.countryOfOrigin || undefined,
153
- currencyCode: 'USD',
154
- description: item.itemDescriptionLong || '',
155
- imageUrl: item.imageURL || '',
156
- itemType: 'PHYSICAL_GOOD',
157
- measurements: getMeasurements(item),
158
- name: item.description || '',
27
+ currencyCode: item.currencyCode,
28
+ description: item.description || '',
29
+ imageUrl: item.imageUrl || '',
30
+ itemType: item.itemType || 'PHYSICAL_GOOD',
31
+ measurements: item.measurements || [],
32
+ name: item.name || item.description || '',
159
33
  productId: item.productId || '',
160
34
  quantity: item.quantity || 0,
161
35
  sku: item.sku || '',
162
- }))) || [];
163
- return tempCartItems;
36
+ })) || [];
37
+ return {
38
+ adjustments: tempCartData.adjustments,
39
+ cartItems: tempCartItems,
40
+ };
164
41
  };
165
42
 
166
43
  const isShippableCountry = (showLog = true) => {
@@ -171,7 +48,7 @@ const isShippableCountry = (showLog = true) => {
171
48
  if (!cart.localizationStore.isShippableCountry) {
172
49
  document.dispatchEvent(createCustomEvent.createCustomEvent('legacyCheckoutError', 'Unable to initiate checkout process in a country where shipping is not available'));
173
50
  if (showLog) {
174
- logError.log(`Checkout: not shippable country`);
51
+ handleFetch.log(`Checkout: not shippable country`);
175
52
  }
176
53
  return false;
177
54
  }
@@ -246,8 +123,8 @@ const watchBigcommerceDomesticCheckout = ({ domesticRedirectedBtnSelector, onShi
246
123
  stateOrProvince: (_b = formData.get('shippingAddress.stateOrProvince')) !== null && _b !== void 0 ? _b : formData.get('shippingAddress.stateOrProvinceCode'),
247
124
  };
248
125
  if (Object.values(shippingAddress).some(value => value === undefined || value === null)) {
249
- logError.logError('One or more shipping address field is missing', Object.entries(shippingAddress));
250
- void cart.sendErrorLog({
126
+ handleFetch.logError('One or more shipping address field is missing', Object.entries(shippingAddress));
127
+ void handleFetch.sendErrorLog({
251
128
  endpoint: 'No endpoint, domestic checkout form missing fields',
252
129
  errors: [
253
130
  'Bigcommerce: One or more shipping address field is missing in the domestic checkout form',
@@ -337,9 +214,7 @@ const ZonosCheckout = class {
337
214
  this.isMobile = false;
338
215
  this.zonosReviewRef = undefined;
339
216
  this.storybookPaymentStatusOverride = undefined;
340
- this.domesticRedirectedBtnSelector = '#zonos--domestic-redirected-checkout-button';
341
- this.legacyCheckoutHiddenBtnSelector = '#legacy-checkout-hidden-button';
342
- this.isLegacyCheckout = false;
217
+ this.isLegacyCheckout = window.Zonos.isLegacyCheckout;
343
218
  this.confirmDialogOpen = false;
344
219
  this.inventoryCheckErrorMessage = null;
345
220
  }
@@ -348,7 +223,10 @@ const ZonosCheckout = class {
348
223
  */
349
224
  async initCartInfoHandler(e) {
350
225
  const cartItems = e.detail;
351
- void cart.cartStoreUpdateItems(cartItems);
226
+ void cart.cartStoreUpdateItems({
227
+ adjustments: cart.cartStore.adjustments,
228
+ cartItems,
229
+ });
352
230
  }
353
231
  async handleKeyPress(e) {
354
232
  if (e.key === 'Escape') {
@@ -390,23 +268,38 @@ const ZonosCheckout = class {
390
268
  }
391
269
  async buildCartAndInit() {
392
270
  // if tempCartUUID is provided, use it instead of buildCartDetail
393
- if (window.Zonos.tempCartData) {
394
- const tempCartData = buildCartItemsByTempCart(window.Zonos.tempCartData);
395
- await cart.cartStoreUpdateItems(tempCartData);
271
+ if (window.Zonos.cartData) {
272
+ handleFetch.log('tempCartUUID is provided, start building cart');
273
+ const { adjustments, cartItems } = buildCartItemsByTempCart(window.Zonos.cartData);
274
+ await cart.cartStoreUpdateItems({ adjustments, cartItems });
275
+ }
276
+ // if createCartId is provided, use it to build cart. Merchant will provide create a cart from their server side and give the cart id to us.
277
+ else if (typeof zonosStore.zonosStore.checkoutSettings.createCartId === 'function') {
278
+ handleFetch.log('"createCartId" is provided, start building cart');
279
+ const cartId = await zonosStore.zonosStore.checkoutSettings.createCartId();
280
+ window.Zonos.cartId = cartId;
281
+ const cartResult = await CheckoutConfig.setupCartData(cartId);
282
+ const cartData = cartResult === null || cartResult === void 0 ? void 0 : cartResult.cartData;
283
+ if (!cartData) {
284
+ handleFetch.logError('Fail to build cart, please try again.');
285
+ return;
286
+ }
287
+ const { adjustments, cartItems } = buildCartItemsByTempCart(cartData);
288
+ await cart.cartStoreUpdateItems({ adjustments, cartItems });
396
289
  }
397
290
  else if (zonosStore.zonosStore.checkoutSettings.buildCartDetail &&
398
291
  cart.localizationStore.selectedCountryCode) {
399
- logError.log('build cart detail');
292
+ handleFetch.log('build cart detail');
400
293
  const cartItems = await zonosStore.zonosStore.checkoutSettings.buildCartDetail({
401
294
  countryCode: cart.localizationStore.selectedCountryCode,
402
295
  currencyCode: cart.localizationStore.targetCurrency,
403
296
  });
404
- await cart.cartStoreUpdateItems(cartItems);
297
+ await cart.cartStoreUpdateItems({ adjustments: [], cartItems });
405
298
  }
406
299
  // if client secret doesn't exist, request a new one.
407
300
  if (!cart.stripeStore.clientSecret) {
408
301
  const success = await cart.stripeStoreInitCheckoutSession();
409
- logError.log(`stripeStoreInitCheckoutSession: ${success}`);
302
+ handleFetch.log(`stripeStoreInitCheckoutSession: ${success}`);
410
303
  if (!success) {
411
304
  return false;
412
305
  }
@@ -420,13 +313,21 @@ const ZonosCheckout = class {
420
313
  }
421
314
  attachCheckout() {
422
315
  const buttonAnchorSelector = zonosStore.zonosStore.checkoutSettings.placeOrderButtonSelector;
423
- logError.log(`attach checkout ${buttonAnchorSelector}`);
424
- if (!buttonAnchorSelector) {
316
+ handleFetch.log(`attach checkout ${buttonAnchorSelector}`);
317
+ // allow to load checkout if cartData is ready (Checkout can be loaded right awaiy if tempCartUUID is in the URL)
318
+ if (!buttonAnchorSelector && !window.Zonos.cartData) {
425
319
  // do nothing if button element is not found
426
320
  return;
427
321
  }
322
+ const selectors = [
323
+ buttonAnchorSelector,
324
+ // hidden button for domestic redirected
325
+ `#${CheckoutConfig.domesticRedirectedBtnSelector}`,
326
+ // hidden button for legacy checkout facade
327
+ `#${CheckoutConfig.checkoutHiddenBtnSelector}`,
328
+ ].filter(Boolean);
428
329
  // also attach event to hidden button if user was redirected with shipping address session
429
- const buttonAnchorElements = document.querySelectorAll(`${buttonAnchorSelector}, ${this.domesticRedirectedBtnSelector}`);
330
+ const buttonAnchorElements = document.querySelectorAll(selectors.join(','));
430
331
  // only attach event once, and looping through all of the button elements
431
332
  buttonAnchorElements.forEach(button => {
432
333
  const isEventAttached = button.getAttribute('data-zonos-checkout-attached');
@@ -434,7 +335,7 @@ const ZonosCheckout = class {
434
335
  // do nothing if event is already attached
435
336
  return;
436
337
  }
437
- logError.log(`attached event to button ${buttonAnchorSelector}`, 'info', {
338
+ handleFetch.log(`attached event to button ${buttonAnchorSelector}`, 'info', {
438
339
  button,
439
340
  });
440
341
  button.addEventListener('click', async (e) => {
@@ -444,7 +345,7 @@ const ZonosCheckout = class {
444
345
  }
445
346
  e.preventDefault();
446
347
  e.stopPropagation();
447
- logError.log('zonos checkout button clicked');
348
+ handleFetch.log('zonos checkout button clicked');
448
349
  // start loading
449
350
  cart.stripeStore.isFetchingSession = true;
450
351
  this.open = true;
@@ -482,15 +383,15 @@ const ZonosCheckout = class {
482
383
  }
483
384
  button.setAttribute('data-zonos-checkout-attached', 'true');
484
385
  // if this button is the hidden button, trigger the click event
485
- if (button.matches(this.domesticRedirectedBtnSelector)) {
386
+ if (button.matches(CheckoutConfig.domesticRedirectedBtnSelector)) {
486
387
  button.dispatchEvent(createCustomEvent.createCustomEvent('click'));
487
388
  // cleanup shipping session after button is clicked
488
389
  cart.stripeStoreCleanupDomesticShippingSession();
489
390
  // remove the button after it's clicked
490
391
  button.remove();
491
392
  }
492
- if (button.matches(this.legacyCheckoutHiddenBtnSelector)) {
493
- this.isLegacyCheckout = true;
393
+ // For legacy checkout facade and in case the cart is provided in the query param, open Checkout right away
394
+ if (button.matches(`#${CheckoutConfig.checkoutHiddenBtnSelector}`)) {
494
395
  // trigger the click event on the button
495
396
  button.dispatchEvent(createCustomEvent.createCustomEvent('click'));
496
397
  button.remove();
@@ -552,7 +453,7 @@ const ZonosCheckout = class {
552
453
  this.stripe = window.Zonos.stripe;
553
454
  // check if bigcommerce, if user enters the shipping address that's in the shipping zone at bigcommerce checkout
554
455
  watchBigcommerceDomesticCheckout({
555
- domesticRedirectedBtnSelector: this.domesticRedirectedBtnSelector,
456
+ domesticRedirectedBtnSelector: CheckoutConfig.domesticRedirectedBtnSelector,
556
457
  onShippingAddressSessionFound: shippingAddressSession => {
557
458
  // prefilled the default address if shipping address session is found for checkout on open
558
459
  this.defaultAddress = {
@@ -573,7 +474,7 @@ const ZonosCheckout = class {
573
474
  /**
574
475
  * When temp cart data is available, set default address if exist
575
476
  */
576
- if (window.Zonos.tempCartData) {
477
+ if (window.Zonos) {
577
478
  this.useLegacyQueryParam();
578
479
  }
579
480
  // only init checkout if visitor's country is in the shipping zones.
@@ -581,14 +482,14 @@ const ZonosCheckout = class {
581
482
  cart.stripeStore.stripe = window.Zonos.stripe;
582
483
  this.stripe = window.Zonos.stripe;
583
484
  if (!this.stripe) {
584
- logError.log('waiting for stripe to be loaded');
485
+ handleFetch.log('waiting for stripe to be loaded');
585
486
  return;
586
487
  }
587
488
  if (this.storybookPaymentStatusOverride) {
588
489
  clearInterval(interval);
589
490
  return;
590
491
  }
591
- logError.log('init checkout');
492
+ handleFetch.log('init checkout');
592
493
  if (this.preview || this.forceDialogOpen) {
593
494
  void this.buildCartAndInit();
594
495
  }
@@ -683,7 +584,7 @@ const ZonosCheckout = class {
683
584
  cart.cartStoreClearCheckoutInterval();
684
585
  }
685
586
  catch (err) {
686
- logError.logError(err);
587
+ handleFetch.logError(err);
687
588
  cart.stripeStore.hasPaymentError = true;
688
589
  }
689
590
  this.submitLoading = false;
@@ -699,9 +600,9 @@ const ZonosCheckout = class {
699
600
  // reset cart store
700
601
  cart.cartStoreReset();
701
602
  // redirect to vendor store url if this is legacy checkout.
702
- if (this.isLegacyCheckout && window.Zonos.tempCartData) {
703
- const contShoppingUrl = window.Zonos.tempCartData.contShoppingURL;
704
- window.location.href = contShoppingUrl;
603
+ if (window.Zonos.isLegacyCheckout && window.Zonos.cartData) {
604
+ const storeBaseUrl = window.Zonos.cartData.storeBaseUrl;
605
+ window.location.href = storeBaseUrl;
705
606
  return;
706
607
  }
707
608
  // reset url
@@ -725,13 +626,13 @@ const ZonosCheckout = class {
725
626
  this.isMobile = isCheckoutMobile.isCheckoutMobile(this.mobile);
726
627
  // apply theme to stripe elements
727
628
  void this.applyStripeTheme();
728
- logError.log(`mobile: ${this.isMobile}`);
629
+ handleFetch.log(`mobile: ${this.isMobile}`);
729
630
  }
730
631
  handleMobileChange() {
731
632
  this.isMobile = isCheckoutMobile.isCheckoutMobile(this.mobile);
732
633
  // apply theme to stripe elements
733
634
  void this.applyStripeTheme();
734
- logError.log(`mobile: ${this.isMobile}`);
635
+ handleFetch.log(`mobile: ${this.isMobile}`);
735
636
  }
736
637
  handleAppearanceSettingsOverrideChange() {
737
638
  var _a;
@@ -753,7 +654,7 @@ const ZonosCheckout = class {
753
654
  // Update stripe locale when selected country code is changed
754
655
  void this.applyStripeTheme();
755
656
  });
756
- logError.log(`mobile: ${this.isMobile}`);
657
+ handleFetch.log(`mobile: ${this.isMobile}`);
757
658
  }
758
659
  // do clean up when component is unmounted
759
660
  disconnectedCallback() {
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-d56e0a8b.js');
6
- const cart = require('./cart-546d1602.js');
6
+ const cart = require('./cart-61a8983d.js');
7
7
  const zonosStore = require('./zonosStore-67139f0e.js');
8
- const logError = require('./logError-4e2f2020.js');
8
+ const handleFetch = require('./handleFetch-842c95b0.js');
9
9
  require('./isDarkColor-7a056d05.js');
10
10
  require('./getBorderRadius-a6a3b35e.js');
11
11
 
12
12
  const getZonosSettings = async () => {
13
- const { errors, json, zonosMode } = await cart.handleFetch('/api/zonos-elements/zonos-settings');
13
+ const { errors, json, zonosMode } = await handleFetch.handleFetch('/api/zonos-elements/zonos-settings');
14
14
  if (errors.length) {
15
- logError.logError(`Error occurred when getting zonos settings. If this is not an unauthorized error, it will use user settings or default settings`);
15
+ handleFetch.logError(`Error occurred when getting zonos settings. If this is not an unauthorized error, it will use user settings or default settings`);
16
16
  return { errors, json: null, zonosMode };
17
17
  }
18
18
  return { errors: [], json, zonosMode };
@@ -27,13 +27,15 @@ const injectCheckoutElement = () => {
27
27
  }
28
28
  };
29
29
  const initCheckout = (config) => {
30
- if (!config.placeOrderButtonSelector) {
30
+ // allow to load checkout if cartData is ready (Checkout can be loaded right awaiy if tempCartUUID is in the URL)
31
+ if (!config.placeOrderButtonSelector && !window.Zonos.cartData) {
31
32
  // do nothing if checkout button anchor is not set
32
33
  return;
33
34
  }
34
35
  // check if checkout button anchor selector user pass in is valid
35
- if (!cart.isValidSelector(config.placeOrderButtonSelector)) {
36
- logError.logError(`Selector checkoutButtonAnchor "${config.placeOrderButtonSelector}" is not a valid selector`);
36
+ if (config.placeOrderButtonSelector &&
37
+ !cart.isValidSelector(config.placeOrderButtonSelector)) {
38
+ handleFetch.logError(`Selector checkoutButtonAnchor "${config.placeOrderButtonSelector}" is not a valid selector`);
37
39
  return;
38
40
  }
39
41
  injectCheckoutElement();
@@ -99,10 +101,10 @@ const initHello = async (helloSettings) => {
99
101
  }
100
102
  // check if checkout button anchor selector user pass in is valid to setup hello
101
103
  if (!helloAnchor || !cart.isValidSelector(helloAnchor)) {
102
- logError.logError(`Selector anchorElementSelector "${helloSettings.anchorElementSelector}" is not a valid selector.`);
104
+ handleFetch.logError(`Selector anchorElementSelector "${helloSettings.anchorElementSelector}" is not a valid selector.`);
103
105
  return;
104
106
  }
105
- logError.log('Hello init complete');
107
+ handleFetch.log('Hello init complete');
106
108
  const isHelloInjected = injectHelloComponent(helloAnchor);
107
109
  // keep watching for the anchor element to be added to the DOM, then inject hello component
108
110
  if (!isHelloInjected) {
@@ -140,12 +142,12 @@ const ZonosController = class {
140
142
  */
141
143
  async initCheckoutElement(stripe) {
142
144
  if (!stripe) {
143
- logError.log('Stripe is not loaded yet - cannot init checkout element', 'warn');
145
+ handleFetch.log('Stripe is not loaded yet - cannot init checkout element', 'warn');
144
146
  return;
145
147
  }
146
148
  cart.stripeStore.stripe = stripe;
147
149
  void initCheckout(zonosStore.zonosStore.checkoutSettings);
148
- logError.log('init checkout element');
150
+ handleFetch.log('init checkout element');
149
151
  }
150
152
  /**
151
153
  * Init zonos notification
@@ -170,15 +172,15 @@ const ZonosController = class {
170
172
  // Do nothing if font is Inter, since we already inject it on start
171
173
  return;
172
174
  }
173
- logError.log(`[FONT] Just applied Inter , but no need to inject since we already inject Inter on start`, 'warn');
175
+ handleFetch.log(`[FONT] Just applied Inter , but no need to inject since we already inject Inter on start`, 'warn');
174
176
  zonosStore.zonosStore.appearance = Object.assign(Object.assign({}, zonosStore.zonosStore.appearance), { fontFamily: overrideFont });
175
177
  }
176
178
  const searchParams = new URLSearchParams();
177
179
  searchParams.set('family', fontSelected);
178
- const { errors, json } = await cart.handleFetch(`/api/zonos-elements/get-font-detail?${searchParams.toString()}`);
180
+ const { errors, json } = await handleFetch.handleFetch(`/api/zonos-elements/get-font-detail?${searchParams.toString()}`);
179
181
  // Keep using Inter font, font in the setting maybe outdated and not found in google font, API will return Inter font instead
180
182
  if (errors.length > 0 || !json) {
181
- logError.log(`Failed to load font ${fontSelected}`, 'warn');
183
+ handleFetch.log(`Failed to load font ${fontSelected}`, 'warn');
182
184
  zonosStore.zonosStore.appearance = Object.assign(Object.assign({}, zonosStore.zonosStore.appearance), { fontFamily: 'Inter' });
183
185
  return;
184
186
  }
@@ -188,7 +190,7 @@ const ZonosController = class {
188
190
  return;
189
191
  }
190
192
  // apply override font
191
- logError.log(`[FONT] ${overrideFont} font override applied`);
193
+ handleFetch.log(`[FONT] ${overrideFont} font override applied`);
192
194
  zonosStore.zonosStore.appearance = Object.assign(Object.assign({}, zonosStore.zonosStore.appearance), { fontFamily: overrideFont });
193
195
  }
194
196
  handleLocationChange() {
@@ -220,7 +222,7 @@ const ZonosController = class {
220
222
  var _a, _b;
221
223
  const { errors, json, zonosMode } = await getZonosSettings();
222
224
  if (((_a = errors[0]) === null || _a === void 0 ? void 0 : _a.type.toString()) === '403') {
223
- logError.log('Failed to load zonos settings. This domain may not have access', 'warn');
225
+ handleFetch.log('Failed to load zonos settings. This domain may not have access', 'warn');
224
226
  return;
225
227
  }
226
228
  // init zonos notification
@@ -238,11 +240,11 @@ const ZonosController = class {
238
240
  void this.setupGoogleFont();
239
241
  if (zonosStore.zonosStore.helloSettings.visibilityStatus === 'DISABLED') {
240
242
  // Store owner disabled this intentionally
241
- logError.log('=== Hello is disabled by store owner ===', 'warn');
243
+ handleFetch.log('=== Hello is disabled by store owner ===', 'warn');
242
244
  }
243
245
  if (zonosStore.zonosStore.helloSettings &&
244
246
  zonosStore.zonosStore.helloSettings.visibilityStatus === 'ENABLED') {
245
- logError.log('Initializing hello');
247
+ handleFetch.log('Initializing hello');
246
248
  void initHello(zonosStore.zonosStore.helloSettings);
247
249
  }
248
250
  // init localization store
@@ -250,17 +252,17 @@ const ZonosController = class {
250
252
  // checkout init
251
253
  const publishableKey = ((_b = json === null || json === void 0 ? void 0 : json.checkoutSettings) === null || _b === void 0 ? void 0 : _b.externalServiceTokens.find(item => item.type === 'STRIPE_PUBLISHABLE_TOKEN')) || null;
252
254
  if (!publishableKey || !this.stripeInitEvent) {
253
- logError.log('Checkout failed to load -- missing publishable key', 'warn');
255
+ handleFetch.log('Checkout failed to load -- missing publishable key', 'warn');
254
256
  return;
255
257
  }
256
258
  if (zonosStore.zonosStore.checkoutSettings.subscriptionStatus === 'INACTIVE') {
257
- logError.log('=== Checkout subscription is "INACTIVE" - Cancel initializing for Checkout ===', 'warn');
258
- logError.log('zonos controller loaded');
259
+ handleFetch.log('=== Checkout subscription is "INACTIVE" - Cancel initializing for Checkout ===', 'warn');
260
+ handleFetch.log('zonos controller loaded');
259
261
  return;
260
262
  }
261
263
  if (zonosStore.zonosStore.checkoutSettings.visibilityStatus === 'DISABLED') {
262
- logError.log('=== Checkout is disabled by store owner ===', 'warn');
263
- logError.log('zonos controller loaded');
264
+ handleFetch.log('=== Checkout is disabled by store owner ===', 'warn');
265
+ handleFetch.log('zonos controller loaded');
264
266
  return;
265
267
  }
266
268
  // send publishable key out to load stripe
@@ -275,7 +277,7 @@ const ZonosController = class {
275
277
  async showNotification(notification) {
276
278
  const notificationElement = document.querySelector('zonos-notification');
277
279
  if (!notificationElement) {
278
- logError.log('Failed to show notification - zonos-notification not found', 'warn');
280
+ handleFetch.log('Failed to show notification - zonos-notification not found', 'warn');
279
281
  return;
280
282
  }
281
283
  void notificationElement.showNotification(notification);
@@ -301,7 +303,7 @@ const ZonosController = class {
301
303
  * Override country code for storybook
302
304
  */
303
305
  async overrideCountry(countryCode) {
304
- logError.log(`Override country code to ${countryCode}`);
306
+ handleFetch.log(`Override country code to ${countryCode}`);
305
307
  void cart.localizationStoreUpdateSelectedCountryCode(countryCode);
306
308
  }
307
309
  /**
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-d56e0a8b.js');
6
- const cart = require('./cart-546d1602.js');
6
+ const cart = require('./cart-61a8983d.js');
7
7
  const zonosStore = require('./zonosStore-67139f0e.js');
8
8
  const classes = require('./classes-b7918f56.js');
9
- require('./logError-4e2f2020.js');
9
+ require('./handleFetch-842c95b0.js');
10
10
  require('./isDarkColor-7a056d05.js');
11
11
  require('./getBorderRadius-a6a3b35e.js');
12
12
 
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-d56e0a8b.js');
6
- const cart = require('./cart-546d1602.js');
6
+ const cart = require('./cart-61a8983d.js');
7
7
  const zonosStore = require('./zonosStore-67139f0e.js');
8
8
  const formatStringWithLinks = require('./formatStringWithLinks-52341fc7.js');
9
9
  const isDarkColor = require('./isDarkColor-7a056d05.js');
10
10
  const ILanguage = require('./ILanguage-98b04442.js');
11
- require('./logError-4e2f2020.js');
11
+ require('./handleFetch-842c95b0.js');
12
12
  require('./getBorderRadius-a6a3b35e.js');
13
13
 
14
14
  /**