@merchi/cart 1.4.4

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 (372) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/esm/Cart.js +62 -0
  4. package/esm/CartAlert.js +47 -0
  5. package/esm/CartHeader.js +29 -0
  6. package/esm/CartProvider.js +1101 -0
  7. package/esm/CartTotals.js +89 -0
  8. package/esm/assets/merchi-monster-loader.gif +0 -0
  9. package/esm/assets/merchi-swipe-outline.png +0 -0
  10. package/esm/assets/product-not-found.png +0 -0
  11. package/esm/assets/stripe-payment-secure.png +0 -0
  12. package/esm/buttons/Button.js +23 -0
  13. package/esm/buttons/ButtonBack.js +35 -0
  14. package/esm/buttons/ButtonClearCart.js +17 -0
  15. package/esm/buttons/ButtonInvoiceDownload.js +88 -0
  16. package/esm/buttons/ButtonNext.js +39 -0
  17. package/esm/buttons/ButtonNextDynamic.js +19 -0
  18. package/esm/buttons/ButtonOpenCartMerchiCartModal.js +47 -0
  19. package/esm/buttons/ButtonPay.js +26 -0
  20. package/esm/buttons/ButtonShipmentTabNext.js +28 -0
  21. package/esm/buttons/index.js +7 -0
  22. package/esm/components/Alert.js +26 -0
  23. package/esm/components/CartBody.js +14 -0
  24. package/esm/components/CartClient.js +62 -0
  25. package/esm/components/CartFooter.js +12 -0
  26. package/esm/components/CartItemRow.js +230 -0
  27. package/esm/components/CartPaymentSettingsInvalid.js +13 -0
  28. package/esm/components/CartShipment.js +52 -0
  29. package/esm/components/CartTabContent.js +12 -0
  30. package/esm/components/CartTabPanel.js +25 -0
  31. package/esm/components/CartTableContainer.js +12 -0
  32. package/esm/components/CartTitle.js +26 -0
  33. package/esm/components/CartTotalsListGroup.js +71 -0
  34. package/esm/components/Collapse.js +32 -0
  35. package/esm/components/CustomCartProductForm.js +128 -0
  36. package/esm/components/CustomerCheckoutMethodTabs.js +94 -0
  37. package/esm/components/DiscountInputGroup.js +293 -0
  38. package/esm/components/LoadingTemplate.js +23 -0
  39. package/esm/components/NoCartItems.js +20 -0
  40. package/esm/components/ShipmentGroupCard.js +207 -0
  41. package/esm/components/Table.js +13 -0
  42. package/esm/components/containers.js +31 -0
  43. package/esm/components/index.js +18 -0
  44. package/esm/components/product-form-sdk-externals.js +36 -0
  45. package/esm/forms/FormNewCustomer.js +243 -0
  46. package/esm/forms/FormReturningCustomer.js +165 -0
  47. package/esm/forms/FormShipmentAddressAndNotes.js +195 -0
  48. package/esm/forms/FormSquarePayment.js +19 -0
  49. package/esm/forms/FormStripePayment.js +19 -0
  50. package/esm/forms/FormWhatsappCustomer.js +253 -0
  51. package/esm/forms/InputAcceptUserTermsAndConditions.js +35 -0
  52. package/esm/forms/InputError.js +16 -0
  53. package/esm/forms/InputSelect.js +48 -0
  54. package/esm/forms/InputText.js +56 -0
  55. package/esm/forms/InputsAddress.js +476 -0
  56. package/esm/forms/index.js +8 -0
  57. package/esm/index.js +13 -0
  58. package/esm/modals.js +51 -0
  59. package/esm/panels/PanelCartItems.js +49 -0
  60. package/esm/panels/PanelCartShipment.js +66 -0
  61. package/esm/panels/PanelClearCart.js +56 -0
  62. package/esm/panels/PanelClientCheckout.js +81 -0
  63. package/esm/panels/PanelEditCartItem.js +199 -0
  64. package/esm/panels/PanelPaymentSuccess.js +63 -0
  65. package/esm/panels/index.js +7 -0
  66. package/esm/square/SquareCard.js +106 -0
  67. package/esm/stripe/LegacyStripeCardForm.js +157 -0
  68. package/esm/stripe/StripeCardFields.js +126 -0
  69. package/esm/stripe/StripeCardForm.js +33 -0
  70. package/esm/stripe/StripePaymentButtons.js +98 -0
  71. package/esm/stripe/actions.js +192 -0
  72. package/esm/stripe/utils.js +20 -0
  73. package/esm/styles/globals.css +463 -0
  74. package/esm/styles/globals.css.map +1 -0
  75. package/esm/tabs/CartNav.js +28 -0
  76. package/esm/tabs/NavTab.js +31 -0
  77. package/esm/types/assets.d.js +0 -0
  78. package/esm/types/index.js +1 -0
  79. package/esm/types/merchi_product_form/index.d.js +0 -0
  80. package/esm/types/merchi_sdk_ts/index.d.js +0 -0
  81. package/esm/types/react-redux/index.d.js +0 -0
  82. package/esm/utilities/address.js +457 -0
  83. package/esm/utilities/area.js +297 -0
  84. package/esm/utilities/cart.js +95 -0
  85. package/esm/utilities/company.js +6 -0
  86. package/esm/utilities/cookie.js +156 -0
  87. package/esm/utilities/currency.js +219 -0
  88. package/esm/utilities/customForm.js +57 -0
  89. package/esm/utilities/helpers.js +229 -0
  90. package/esm/utilities/index.js +14 -0
  91. package/esm/utilities/invoice.js +112 -0
  92. package/esm/utilities/job.js +9 -0
  93. package/esm/utilities/local_storage.js +85 -0
  94. package/esm/utilities/product.js +13 -0
  95. package/esm/utilities/shipment.js +11 -0
  96. package/esm/utilities/tabs.js +51 -0
  97. package/esm/utilities/user.js +65 -0
  98. package/esm/utilities/variations.js +58 -0
  99. package/lib/Cart.d.ts +9 -0
  100. package/lib/Cart.js +69 -0
  101. package/lib/CartAlert.d.ts +3 -0
  102. package/lib/CartAlert.js +53 -0
  103. package/lib/CartHeader.d.ts +3 -0
  104. package/lib/CartHeader.js +37 -0
  105. package/lib/CartProvider.d.ts +236 -0
  106. package/lib/CartProvider.js +1107 -0
  107. package/lib/CartTotals.d.ts +7 -0
  108. package/lib/CartTotals.js +96 -0
  109. package/lib/assets/merchi-monster-loader.gif +0 -0
  110. package/lib/assets/merchi-swipe-outline.png +0 -0
  111. package/lib/assets/product-not-found.png +0 -0
  112. package/lib/assets/stripe-payment-secure.png +0 -0
  113. package/lib/buttons/Button.d.ts +11 -0
  114. package/lib/buttons/Button.js +31 -0
  115. package/lib/buttons/ButtonBack.d.ts +6 -0
  116. package/lib/buttons/ButtonBack.js +44 -0
  117. package/lib/buttons/ButtonClearCart.d.ts +3 -0
  118. package/lib/buttons/ButtonClearCart.js +24 -0
  119. package/lib/buttons/ButtonInvoiceDownload.d.ts +3 -0
  120. package/lib/buttons/ButtonInvoiceDownload.js +96 -0
  121. package/lib/buttons/ButtonNext.d.ts +3 -0
  122. package/lib/buttons/ButtonNext.js +48 -0
  123. package/lib/buttons/ButtonNextDynamic.d.ts +3 -0
  124. package/lib/buttons/ButtonNextDynamic.js +28 -0
  125. package/lib/buttons/ButtonOpenCartMerchiCartModal.d.ts +9 -0
  126. package/lib/buttons/ButtonOpenCartMerchiCartModal.js +57 -0
  127. package/lib/buttons/ButtonPay.d.ts +7 -0
  128. package/lib/buttons/ButtonPay.js +35 -0
  129. package/lib/buttons/ButtonShipmentTabNext.d.ts +2 -0
  130. package/lib/buttons/ButtonShipmentTabNext.js +37 -0
  131. package/lib/buttons/index.d.ts +7 -0
  132. package/lib/buttons/index.js +48 -0
  133. package/lib/components/Alert.d.ts +7 -0
  134. package/lib/components/Alert.js +34 -0
  135. package/lib/components/CartBody.d.ts +7 -0
  136. package/lib/components/CartBody.js +22 -0
  137. package/lib/components/CartClient.d.ts +4 -0
  138. package/lib/components/CartClient.js +71 -0
  139. package/lib/components/CartFooter.d.ts +6 -0
  140. package/lib/components/CartFooter.js +20 -0
  141. package/lib/components/CartItemRow.d.ts +7 -0
  142. package/lib/components/CartItemRow.js +236 -0
  143. package/lib/components/CartPaymentSettingsInvalid.d.ts +2 -0
  144. package/lib/components/CartPaymentSettingsInvalid.js +21 -0
  145. package/lib/components/CartShipment.d.ts +6 -0
  146. package/lib/components/CartShipment.js +59 -0
  147. package/lib/components/CartTabContent.d.ts +6 -0
  148. package/lib/components/CartTabContent.js +20 -0
  149. package/lib/components/CartTabPanel.d.ts +7 -0
  150. package/lib/components/CartTabPanel.js +31 -0
  151. package/lib/components/CartTableContainer.d.ts +6 -0
  152. package/lib/components/CartTableContainer.js +20 -0
  153. package/lib/components/CartTitle.d.ts +2 -0
  154. package/lib/components/CartTitle.js +34 -0
  155. package/lib/components/CartTotalsListGroup.d.ts +3 -0
  156. package/lib/components/CartTotalsListGroup.js +78 -0
  157. package/lib/components/Collapse.d.ts +3 -0
  158. package/lib/components/Collapse.js +40 -0
  159. package/lib/components/CustomCartProductForm.d.ts +18 -0
  160. package/lib/components/CustomCartProductForm.js +136 -0
  161. package/lib/components/CustomerCheckoutMethodTabs.d.ts +6 -0
  162. package/lib/components/CustomerCheckoutMethodTabs.js +103 -0
  163. package/lib/components/DiscountInputGroup.d.ts +2 -0
  164. package/lib/components/DiscountInputGroup.js +301 -0
  165. package/lib/components/LoadingTemplate.d.ts +7 -0
  166. package/lib/components/LoadingTemplate.js +30 -0
  167. package/lib/components/NoCartItems.d.ts +3 -0
  168. package/lib/components/NoCartItems.js +27 -0
  169. package/lib/components/ShipmentGroupCard.d.ts +7 -0
  170. package/lib/components/ShipmentGroupCard.js +215 -0
  171. package/lib/components/Table.d.ts +7 -0
  172. package/lib/components/Table.js +19 -0
  173. package/lib/components/containers.d.ts +14 -0
  174. package/lib/components/containers.js +40 -0
  175. package/lib/components/index.d.ts +18 -0
  176. package/lib/components/index.js +133 -0
  177. package/lib/components/product-form-sdk-externals.d.ts +46 -0
  178. package/lib/components/product-form-sdk-externals.js +43 -0
  179. package/lib/forms/FormNewCustomer.d.ts +4 -0
  180. package/lib/forms/FormNewCustomer.js +252 -0
  181. package/lib/forms/FormReturningCustomer.d.ts +3 -0
  182. package/lib/forms/FormReturningCustomer.js +173 -0
  183. package/lib/forms/FormShipmentAddressAndNotes.d.ts +15 -0
  184. package/lib/forms/FormShipmentAddressAndNotes.js +203 -0
  185. package/lib/forms/FormSquarePayment.d.ts +3 -0
  186. package/lib/forms/FormSquarePayment.js +27 -0
  187. package/lib/forms/FormStripePayment.d.ts +3 -0
  188. package/lib/forms/FormStripePayment.js +27 -0
  189. package/lib/forms/FormWhatsappCustomer.d.ts +3 -0
  190. package/lib/forms/FormWhatsappCustomer.js +261 -0
  191. package/lib/forms/InputAcceptUserTermsAndConditions.d.ts +7 -0
  192. package/lib/forms/InputAcceptUserTermsAndConditions.js +41 -0
  193. package/lib/forms/InputError.d.ts +8 -0
  194. package/lib/forms/InputError.js +24 -0
  195. package/lib/forms/InputSelect.d.ts +14 -0
  196. package/lib/forms/InputSelect.js +55 -0
  197. package/lib/forms/InputText.d.ts +12 -0
  198. package/lib/forms/InputText.js +63 -0
  199. package/lib/forms/InputsAddress.d.ts +11 -0
  200. package/lib/forms/InputsAddress.js +485 -0
  201. package/lib/forms/index.d.ts +8 -0
  202. package/lib/forms/index.js +63 -0
  203. package/lib/index.d.ts +13 -0
  204. package/lib/index.js +93 -0
  205. package/lib/modals.d.ts +17 -0
  206. package/lib/modals.js +59 -0
  207. package/lib/panels/PanelCartItems.d.ts +3 -0
  208. package/lib/panels/PanelCartItems.js +56 -0
  209. package/lib/panels/PanelCartShipment.d.ts +3 -0
  210. package/lib/panels/PanelCartShipment.js +72 -0
  211. package/lib/panels/PanelClearCart.d.ts +3 -0
  212. package/lib/panels/PanelClearCart.js +62 -0
  213. package/lib/panels/PanelClientCheckout.d.ts +3 -0
  214. package/lib/panels/PanelClientCheckout.js +88 -0
  215. package/lib/panels/PanelEditCartItem.d.ts +6 -0
  216. package/lib/panels/PanelEditCartItem.js +206 -0
  217. package/lib/panels/PanelPaymentSuccess.d.ts +3 -0
  218. package/lib/panels/PanelPaymentSuccess.js +69 -0
  219. package/lib/panels/index.d.ts +7 -0
  220. package/lib/panels/index.js +48 -0
  221. package/lib/square/SquareCard.d.ts +3 -0
  222. package/lib/square/SquareCard.js +114 -0
  223. package/lib/stripe/LegacyStripeCardForm.d.ts +3 -0
  224. package/lib/stripe/LegacyStripeCardForm.js +166 -0
  225. package/lib/stripe/StripeCardFields.d.ts +15 -0
  226. package/lib/stripe/StripeCardFields.js +135 -0
  227. package/lib/stripe/StripeCardForm.d.ts +2 -0
  228. package/lib/stripe/StripeCardForm.js +42 -0
  229. package/lib/stripe/StripePaymentButtons.d.ts +8 -0
  230. package/lib/stripe/StripePaymentButtons.js +106 -0
  231. package/lib/stripe/actions.d.ts +4 -0
  232. package/lib/stripe/actions.js +200 -0
  233. package/lib/stripe/utils.d.ts +18 -0
  234. package/lib/stripe/utils.js +27 -0
  235. package/lib/styles/globals.css +463 -0
  236. package/lib/styles/globals.css.map +1 -0
  237. package/lib/tabs/CartNav.d.ts +3 -0
  238. package/lib/tabs/CartNav.js +36 -0
  239. package/lib/tabs/NavTab.d.ts +9 -0
  240. package/lib/tabs/NavTab.js +39 -0
  241. package/lib/types/index.d.ts +13 -0
  242. package/lib/types/index.js +1 -0
  243. package/lib/utilities/address.d.ts +30 -0
  244. package/lib/utilities/address.js +468 -0
  245. package/lib/utilities/area.d.ts +77 -0
  246. package/lib/utilities/area.js +328 -0
  247. package/lib/utilities/cart.d.ts +9 -0
  248. package/lib/utilities/cart.js +108 -0
  249. package/lib/utilities/company.d.ts +2 -0
  250. package/lib/utilities/company.js +13 -0
  251. package/lib/utilities/cookie.d.ts +4 -0
  252. package/lib/utilities/cookie.js +165 -0
  253. package/lib/utilities/currency.d.ts +5 -0
  254. package/lib/utilities/currency.js +229 -0
  255. package/lib/utilities/customForm.d.ts +17 -0
  256. package/lib/utilities/customForm.js +64 -0
  257. package/lib/utilities/helpers.d.ts +24 -0
  258. package/lib/utilities/helpers.js +240 -0
  259. package/lib/utilities/index.d.ts +14 -0
  260. package/lib/utilities/index.js +159 -0
  261. package/lib/utilities/invoice.d.ts +3 -0
  262. package/lib/utilities/invoice.js +118 -0
  263. package/lib/utilities/job.d.ts +1 -0
  264. package/lib/utilities/job.js +15 -0
  265. package/lib/utilities/local_storage.d.ts +31 -0
  266. package/lib/utilities/local_storage.js +96 -0
  267. package/lib/utilities/product.d.ts +2 -0
  268. package/lib/utilities/product.js +21 -0
  269. package/lib/utilities/shipment.d.ts +2 -0
  270. package/lib/utilities/shipment.js +18 -0
  271. package/lib/utilities/tabs.d.ts +14 -0
  272. package/lib/utilities/tabs.js +60 -0
  273. package/lib/utilities/user.d.ts +5 -0
  274. package/lib/utilities/user.js +75 -0
  275. package/lib/utilities/variations.d.ts +18 -0
  276. package/lib/utilities/variations.js +66 -0
  277. package/package.json +109 -0
  278. package/src/Cart.tsx +96 -0
  279. package/src/CartAlert.tsx +35 -0
  280. package/src/CartHeader.tsx +28 -0
  281. package/src/CartProvider.tsx +992 -0
  282. package/src/CartTotals.tsx +102 -0
  283. package/src/assets/merchi-monster-loader.gif +0 -0
  284. package/src/assets/merchi-swipe-outline.png +0 -0
  285. package/src/assets/product-not-found.png +0 -0
  286. package/src/assets/stripe-payment-secure.png +0 -0
  287. package/src/buttons/Button.tsx +35 -0
  288. package/src/buttons/ButtonBack.tsx +42 -0
  289. package/src/buttons/ButtonClearCart.tsx +17 -0
  290. package/src/buttons/ButtonInvoiceDownload.tsx +60 -0
  291. package/src/buttons/ButtonNext.tsx +35 -0
  292. package/src/buttons/ButtonNextDynamic.tsx +31 -0
  293. package/src/buttons/ButtonOpenCartMerchiCartModal.tsx +61 -0
  294. package/src/buttons/ButtonPay.tsx +32 -0
  295. package/src/buttons/ButtonShipmentTabNext.tsx +24 -0
  296. package/src/buttons/index.ts +15 -0
  297. package/src/components/Alert.tsx +31 -0
  298. package/src/components/CartBody.tsx +16 -0
  299. package/src/components/CartClient.tsx +52 -0
  300. package/src/components/CartFooter.tsx +15 -0
  301. package/src/components/CartItemRow.tsx +212 -0
  302. package/src/components/CartPaymentSettingsInvalid.tsx +12 -0
  303. package/src/components/CartShipment.tsx +56 -0
  304. package/src/components/CartTabContent.tsx +15 -0
  305. package/src/components/CartTabPanel.tsx +25 -0
  306. package/src/components/CartTableContainer.tsx +15 -0
  307. package/src/components/CartTitle.tsx +22 -0
  308. package/src/components/CartTotalsListGroup.tsx +58 -0
  309. package/src/components/Collapse.tsx +23 -0
  310. package/src/components/CustomCartProductForm.tsx +123 -0
  311. package/src/components/CustomerCheckoutMethodTabs.tsx +106 -0
  312. package/src/components/DiscountInputGroup.tsx +160 -0
  313. package/src/components/LoadingTemplate.tsx +22 -0
  314. package/src/components/NoCartItems.tsx +20 -0
  315. package/src/components/ShipmentGroupCard.tsx +170 -0
  316. package/src/components/Table.tsx +15 -0
  317. package/src/components/containers.tsx +40 -0
  318. package/src/components/index.ts +38 -0
  319. package/src/components/product-form-sdk-externals.ts +67 -0
  320. package/src/forms/FormNewCustomer.tsx +170 -0
  321. package/src/forms/FormReturningCustomer.tsx +117 -0
  322. package/src/forms/FormShipmentAddressAndNotes.tsx +165 -0
  323. package/src/forms/FormSquarePayment.tsx +19 -0
  324. package/src/forms/FormStripePayment.tsx +19 -0
  325. package/src/forms/FormWhatsappCustomer.tsx +179 -0
  326. package/src/forms/InputAcceptUserTermsAndConditions.tsx +43 -0
  327. package/src/forms/InputError.tsx +23 -0
  328. package/src/forms/InputSelect.tsx +58 -0
  329. package/src/forms/InputText.tsx +56 -0
  330. package/src/forms/InputsAddress.tsx +438 -0
  331. package/src/forms/index.ts +18 -0
  332. package/src/index.ts +31 -0
  333. package/src/modals.tsx +65 -0
  334. package/src/panels/PanelCartItems.tsx +56 -0
  335. package/src/panels/PanelCartShipment.tsx +86 -0
  336. package/src/panels/PanelClearCart.tsx +50 -0
  337. package/src/panels/PanelClientCheckout.tsx +102 -0
  338. package/src/panels/PanelEditCartItem.tsx +172 -0
  339. package/src/panels/PanelPaymentSuccess.tsx +66 -0
  340. package/src/panels/index.ts +15 -0
  341. package/src/square/SquareCard.tsx +84 -0
  342. package/src/stripe/LegacyStripeCardForm.tsx +91 -0
  343. package/src/stripe/StripeCardFields.tsx +173 -0
  344. package/src/stripe/StripeCardForm.tsx +18 -0
  345. package/src/stripe/StripePaymentButtons.tsx +117 -0
  346. package/src/stripe/actions.ts +94 -0
  347. package/src/stripe/utils.ts +22 -0
  348. package/src/styles/globals.scss +475 -0
  349. package/src/tabs/CartNav.tsx +18 -0
  350. package/src/tabs/NavTab.tsx +36 -0
  351. package/src/types/assets.d.ts +4 -0
  352. package/src/types/index.ts +15 -0
  353. package/src/types/merchi_product_form/index.d.ts +1 -0
  354. package/src/types/merchi_sdk_ts/index.d.ts +1 -0
  355. package/src/types/react-redux/index.d.ts +0 -0
  356. package/src/utilities/address.ts +463 -0
  357. package/src/utilities/area.ts +359 -0
  358. package/src/utilities/cart.ts +80 -0
  359. package/src/utilities/company.ts +8 -0
  360. package/src/utilities/cookie.ts +58 -0
  361. package/src/utilities/currency.ts +216 -0
  362. package/src/utilities/customForm.ts +71 -0
  363. package/src/utilities/helpers.ts +213 -0
  364. package/src/utilities/index.ts +14 -0
  365. package/src/utilities/invoice.ts +60 -0
  366. package/src/utilities/job.ts +13 -0
  367. package/src/utilities/local_storage.ts +130 -0
  368. package/src/utilities/product.ts +14 -0
  369. package/src/utilities/shipment.ts +11 -0
  370. package/src/utilities/tabs.ts +38 -0
  371. package/src/utilities/user.ts +33 -0
  372. package/src/utilities/variations.ts +80 -0
@@ -0,0 +1,297 @@
1
+ /** Shared helpers for Area (height × width) variation fields. Stored value is always millimetres. */
2
+
3
+ var MM_PER_INCH = 25.4;
4
+ var MM_PER_FOOT = 304.8;
5
+ var MM_PER_CM = 10;
6
+ var MM_PER_M = 1000;
7
+ export function parseAreaValue(value) {
8
+ if (value == null) return null;
9
+ var text = String(value).trim();
10
+ if (!text) return null;
11
+ var parts = text.split(',').map(function (p) {
12
+ return p.trim();
13
+ });
14
+ if (parts.length !== 2) return null;
15
+ var heightMm = Number(parts[0]);
16
+ var widthMm = Number(parts[1]);
17
+ if (!Number.isFinite(heightMm) || !Number.isFinite(widthMm)) return null;
18
+ if (heightMm <= 0 || widthMm <= 0) return null;
19
+ return {
20
+ heightMm: heightMm,
21
+ widthMm: widthMm
22
+ };
23
+ }
24
+ export function formatAreaValue(heightMm, widthMm) {
25
+ var h = Number(heightMm);
26
+ var w = Number(widthMm);
27
+ if (!Number.isFinite(h) || !Number.isFinite(w) || h <= 0 || w <= 0) return '';
28
+ return "".concat(trimNum(h), ",").concat(trimNum(w));
29
+ }
30
+ function trimNum(n) {
31
+ return String(Number(n.toFixed(6)));
32
+ }
33
+ export function isImperialUnit(unit) {
34
+ var u = String(unit || 'mm').toLowerCase();
35
+ return u === 'in' || u === 'ft';
36
+ }
37
+ export function normaliseAreaUnit(unit) {
38
+ var u = String(unit || 'mm').toLowerCase();
39
+ if (u === 'cm' || u === 'm' || u === 'in' || u === 'ft' || u === 'mm') {
40
+ return u;
41
+ }
42
+ return 'mm';
43
+ }
44
+
45
+ /** Imperial for en-US / en-LR / en-MM; otherwise metric (incl. en-GB). */
46
+ export function localePrefersImperial(locale) {
47
+ var lang = locale || (typeof navigator !== 'undefined' ? navigator.language : undefined) || '';
48
+ var normalized = lang.toLowerCase().replace('_', '-');
49
+ return normalized === 'en-us' || normalized === 'en-lr' || normalized === 'en-mm' || normalized.endsWith('-us') || normalized.endsWith('-lr') || normalized.endsWith('-mm');
50
+ }
51
+
52
+ /** Millimetres per one unit of the given area unit. */
53
+ export function unitFactorMm() {
54
+ var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'mm';
55
+ switch (normaliseAreaUnit(unit)) {
56
+ case 'cm':
57
+ return MM_PER_CM;
58
+ case 'm':
59
+ return MM_PER_M;
60
+ case 'in':
61
+ return MM_PER_INCH;
62
+ case 'ft':
63
+ return MM_PER_FOOT;
64
+ default:
65
+ return 1;
66
+ }
67
+ }
68
+
69
+ /** @deprecated use unitFactorMm */
70
+ export function metricUnitFactor() {
71
+ var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'mm';
72
+ return unitFactorMm(unit);
73
+ }
74
+ export function mmToUnit(mm) {
75
+ var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mm';
76
+ return mm / unitFactorMm(unit);
77
+ }
78
+ export function unitToMm(value) {
79
+ var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mm';
80
+ return value * unitFactorMm(unit);
81
+ }
82
+
83
+ /** @deprecated use mmToUnit */
84
+ export function mmToMetricDisplay(mm) {
85
+ var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mm';
86
+ return mmToUnit(mm, unit);
87
+ }
88
+
89
+ /** @deprecated use unitToMm */
90
+ export function metricDisplayToMm(value) {
91
+ var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mm';
92
+ return unitToMm(value, unit);
93
+ }
94
+ export function mmToInches(mm) {
95
+ return mm / MM_PER_INCH;
96
+ }
97
+ export function inchesToMm(inches) {
98
+ return inches * MM_PER_INCH;
99
+ }
100
+
101
+ /**
102
+ * Unit shown for the current buyer modality.
103
+ * Metric → field unit if metric, else mm.
104
+ * Imperial → field unit if imperial, else inches.
105
+ */
106
+ export function activeDisplayUnit(modality) {
107
+ var areaUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mm';
108
+ var unit = normaliseAreaUnit(areaUnit);
109
+ if (modality === 'imperial') {
110
+ return isImperialUnit(unit) ? unit : 'in';
111
+ }
112
+ return isImperialUnit(unit) ? 'mm' : unit;
113
+ }
114
+ export function defaultModalityForAreaUnit() {
115
+ var areaUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'mm';
116
+ if (isImperialUnit(areaUnit)) return 'imperial';
117
+ return localePrefersImperial() ? 'imperial' : 'metric';
118
+ }
119
+ export function mmToDisplay(mm, modality) {
120
+ var areaUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'mm';
121
+ return mmToUnit(mm, activeDisplayUnit(modality, areaUnit));
122
+ }
123
+ export function displayToMm(value, modality) {
124
+ var areaUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'mm';
125
+ return unitToMm(value, activeDisplayUnit(modality, areaUnit));
126
+ }
127
+ export function unitLabel(modality) {
128
+ var areaUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mm';
129
+ return activeDisplayUnit(modality, areaUnit);
130
+ }
131
+ export function defaultAreaStep() {
132
+ var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'mm';
133
+ switch (normaliseAreaUnit(unit)) {
134
+ case 'm':
135
+ return 0.001;
136
+ case 'cm':
137
+ return 0.1;
138
+ case 'in':
139
+ return 0.125;
140
+ case 'ft':
141
+ return 0.01;
142
+ default:
143
+ return 1;
144
+ }
145
+ }
146
+
147
+ /**
148
+ * Step for inputs/sliders in the current display unit.
149
+ * `stepMm` is the admin-configured step stored in millimetres.
150
+ */
151
+ export function stepInDisplayUnit(stepMm, modality) {
152
+ var areaUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'mm';
153
+ var unit = activeDisplayUnit(modality, areaUnit);
154
+ var raw = Number(stepMm);
155
+ if (Number.isFinite(raw) && raw > 0) {
156
+ return raw / unitFactorMm(unit);
157
+ }
158
+ return defaultAreaStep(unit);
159
+ }
160
+ function decimalsForUnit(unit) {
161
+ if (unit === 'm') return 4;
162
+ if (unit === 'ft') return 3;
163
+ if (unit === 'in' || unit === 'cm') return 2;
164
+ return 2;
165
+ }
166
+
167
+ /** Format a length in mm for buyer-facing summary. */
168
+ export function formatLengthFromMm(mm, modality) {
169
+ var areaUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'mm';
170
+ var unit = activeDisplayUnit(modality, areaUnit);
171
+ if (unit === 'ft') {
172
+ var feet = mmToUnit(mm, 'ft');
173
+ return "".concat(trimNum(Number(feet.toFixed(3))), " ft");
174
+ }
175
+ if (unit === 'in') {
176
+ var inches = mmToInches(mm);
177
+ if (inches >= 12) {
178
+ var _feet = Math.floor(inches / 12);
179
+ var rem = inches - _feet * 12;
180
+ if (rem < 0.05) return "".concat(_feet, " ft");
181
+ return "".concat(_feet, " ft ").concat(trimNum(Number(rem.toFixed(2))), " in");
182
+ }
183
+ return "".concat(trimNum(Number(inches.toFixed(2))), " in");
184
+ }
185
+ var display = mmToUnit(mm, unit);
186
+ return "".concat(trimNum(Number(display.toFixed(decimalsForUnit(unit)))), " ").concat(unit);
187
+ }
188
+ export function formatAreaParts(value) {
189
+ var modality = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'metric';
190
+ var areaUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'mm';
191
+ var parsed = parseAreaValue(value);
192
+ if (!parsed) return null;
193
+ var heightMm = parsed.heightMm,
194
+ widthMm = parsed.widthMm;
195
+ var height = formatLengthFromMm(heightMm, modality, areaUnit);
196
+ var width = formatLengthFromMm(widthMm, modality, areaUnit);
197
+ var areaMm2 = heightMm * widthMm;
198
+ var unit = activeDisplayUnit(modality, areaUnit);
199
+ var areaLabel;
200
+ if (unit === 'ft') {
201
+ var sqFt = areaMm2 / (MM_PER_FOOT * MM_PER_FOOT);
202
+ areaLabel = "".concat(trimNum(Number(sqFt.toFixed(3))), " sq ft");
203
+ } else if (unit === 'in') {
204
+ var sqIn = areaMm2 / (MM_PER_INCH * MM_PER_INCH);
205
+ if (sqIn >= 144) {
206
+ areaLabel = "".concat(trimNum(Number((sqIn / 144).toFixed(3))), " sq ft");
207
+ } else {
208
+ areaLabel = "".concat(trimNum(Number(sqIn.toFixed(2))), " sq in");
209
+ }
210
+ } else if (unit === 'm') {
211
+ areaLabel = "".concat(trimNum(Number((areaMm2 / 1000000).toFixed(4))), " m\xB2");
212
+ } else if (unit === 'cm') {
213
+ areaLabel = "".concat(trimNum(Number((areaMm2 / 100).toFixed(2))), " cm\xB2");
214
+ } else {
215
+ areaLabel = "".concat(trimNum(Number(areaMm2.toFixed(2))), " mm\xB2");
216
+ }
217
+ return {
218
+ width: width,
219
+ height: height,
220
+ areaLabel: areaLabel
221
+ };
222
+ }
223
+ export function formatAreaSummary(value) {
224
+ var modality = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'metric';
225
+ var areaUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'mm';
226
+ var parts = formatAreaParts(value, modality, areaUnit);
227
+ if (!parts) return null;
228
+ // Width × height (landscape-first) to match the buyer control order.
229
+ return "Width ".concat(parts.width, " \xD7 Height ").concat(parts.height, " (").concat(parts.areaLabel, ")");
230
+ }
231
+ export function clamp(n, min, max) {
232
+ var v = n;
233
+ if (min != null && Number.isFinite(min)) v = Math.max(v, min);
234
+ if (max != null && Number.isFinite(max)) v = Math.min(v, max);
235
+ return v;
236
+ }
237
+
238
+ /**
239
+ * Client-side Area cost estimate (pre-discount), matching API formula:
240
+ * onceOff = heightCost × widthCost × height_u × width_u
241
+ * unitCost = heightUnit × widthUnit × height_u × width_u
242
+ * (dimensions expressed in the field's areaUnit)
243
+ */
244
+ export function estimateAreaCosts(variationField, value) {
245
+ var _ref, _variationField$areaU, _variationField$heigh, _variationField$width, _variationField$heigh2, _variationField$width2;
246
+ var parsed = parseAreaValue(value);
247
+ if (!parsed) return null;
248
+ var areaUnit = normaliseAreaUnit((_ref = (_variationField$areaU = variationField === null || variationField === void 0 ? void 0 : variationField.areaUnit) !== null && _variationField$areaU !== void 0 ? _variationField$areaU : variationField === null || variationField === void 0 ? void 0 : variationField.area_unit) !== null && _ref !== void 0 ? _ref : 'mm');
249
+ var heightU = mmToUnit(parsed.heightMm, areaUnit);
250
+ var widthU = mmToUnit(parsed.widthMm, areaUnit);
251
+ var area = heightU * widthU;
252
+ var heightCost = Number((_variationField$heigh = variationField === null || variationField === void 0 ? void 0 : variationField.heightVariationCost) !== null && _variationField$heigh !== void 0 ? _variationField$heigh : variationField === null || variationField === void 0 ? void 0 : variationField.height_variation_cost) || 0;
253
+ var widthCost = Number((_variationField$width = variationField === null || variationField === void 0 ? void 0 : variationField.widthVariationCost) !== null && _variationField$width !== void 0 ? _variationField$width : variationField === null || variationField === void 0 ? void 0 : variationField.width_variation_cost) || 0;
254
+ var heightUnit = Number((_variationField$heigh2 = variationField === null || variationField === void 0 ? void 0 : variationField.heightVariationUnitCost) !== null && _variationField$heigh2 !== void 0 ? _variationField$heigh2 : variationField === null || variationField === void 0 ? void 0 : variationField.height_variation_unit_cost) || 0;
255
+ var widthUnit = Number((_variationField$width2 = variationField === null || variationField === void 0 ? void 0 : variationField.widthVariationUnitCost) !== null && _variationField$width2 !== void 0 ? _variationField$width2 : variationField === null || variationField === void 0 ? void 0 : variationField.width_variation_unit_cost) || 0;
256
+ var onceOffCost = heightCost * widthCost * area;
257
+ var unitCost = heightUnit * widthUnit * area;
258
+ if (!(onceOffCost > 0) && !(unitCost > 0)) return null;
259
+ return {
260
+ onceOffCost: Number(onceOffCost.toFixed(3)),
261
+ unitCost: Number(unitCost.toFixed(3))
262
+ };
263
+ }
264
+
265
+ /**
266
+ * Keep width/height linked by aspectRatio (width/height).
267
+ * `changed` indicates which dimension the user edited.
268
+ */
269
+ export function clampWithAspectRatio(args) {
270
+ var ratio = args.aspectRatio;
271
+ if (!Number.isFinite(ratio) || ratio <= 0) {
272
+ return {
273
+ heightMm: clamp(args.heightMm, args.heightMin, args.heightMax),
274
+ widthMm: clamp(args.widthMm, args.widthMin, args.widthMax)
275
+ };
276
+ }
277
+ var heightMm = args.heightMm;
278
+ var widthMm = args.widthMm;
279
+ if (args.changed === 'height') {
280
+ heightMm = clamp(heightMm, args.heightMin, args.heightMax);
281
+ widthMm = heightMm * ratio;
282
+ widthMm = clamp(widthMm, args.widthMin, args.widthMax);
283
+ heightMm = widthMm / ratio;
284
+ heightMm = clamp(heightMm, args.heightMin, args.heightMax);
285
+ widthMm = heightMm * ratio;
286
+ } else {
287
+ widthMm = clamp(widthMm, args.widthMin, args.widthMax);
288
+ heightMm = widthMm / ratio;
289
+ heightMm = clamp(heightMm, args.heightMin, args.heightMax);
290
+ widthMm = heightMm * ratio;
291
+ widthMm = clamp(widthMm, args.widthMin, args.widthMax);
292
+ }
293
+ return {
294
+ heightMm: heightMm,
295
+ widthMm: widthMm
296
+ };
297
+ }
@@ -0,0 +1,95 @@
1
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
2
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
3
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
4
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
5
+ import { Merchi } from '@merchi/sdk';
6
+ import { companyStripePubKeyOrTestPubKey } from './company';
7
+ var merchi = new Merchi();
8
+ export var makeCart = function makeCart(json, makeDirty, cartToken) {
9
+ if (cartToken) merchi.cartToken = cartToken;
10
+ var cart = new merchi.Cart();
11
+ return cart.fromJson(json, {
12
+ makeDirty: makeDirty
13
+ });
14
+ };
15
+ export var makeCartItem = function makeCartItem(cartItemJson, makeDirty, cartToken) {
16
+ if (cartToken) merchi.cartToken = cartToken;
17
+ var cartItem = new merchi.CartItem();
18
+ return cartItem.fromJson(cartItemJson, {
19
+ makeDirty: makeDirty
20
+ });
21
+ };
22
+ export function makeDiscountItem(itemJson, makeDirty) {
23
+ var item = new merchi.Item();
24
+ if (makeDirty) {
25
+ return item.fromJson(itemJson, {
26
+ makeDirty: true
27
+ });
28
+ } else {
29
+ return item.fromJson(itemJson);
30
+ }
31
+ }
32
+ export function makeCartShipmentQuote(json, makeDirty) {
33
+ var cartShipmentQuote = new merchi.CartShipmentQuote();
34
+ return cartShipmentQuote.fromJson(json, {
35
+ makeDirty: makeDirty
36
+ });
37
+ }
38
+ export function cartHasSelectedQuotes(cart) {
39
+ var _cart$shipmentGroups = cart.shipmentGroups,
40
+ shipmentGroups = _cart$shipmentGroups === void 0 ? [] : _cart$shipmentGroups;
41
+ if (shipmentGroups.length) {
42
+ var selected = shipmentGroups.filter(function (g) {
43
+ return !!g.selectedQuote;
44
+ });
45
+ return selected.length === shipmentGroups.length;
46
+ }
47
+ return false;
48
+ }
49
+ export function getCartShipmentGroupsAndQuotes(_x) {
50
+ return _getCartShipmentGroupsAndQuotes.apply(this, arguments);
51
+ }
52
+ function _getCartShipmentGroupsAndQuotes() {
53
+ _getCartShipmentGroupsAndQuotes = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(cart) {
54
+ var query;
55
+ return _regenerator().w(function (_context) {
56
+ while (1) switch (_context.n) {
57
+ case 0:
58
+ query = [];
59
+ query.push(['cart_token', cart.token]);
60
+ return _context.a(2, merchi.authenticatedFetch("/generate-cart-shipment-quotes/".concat(cart.id, "/"), {
61
+ method: 'GET',
62
+ query: query
63
+ }));
64
+ }
65
+ }, _callee);
66
+ }));
67
+ return _getCartShipmentGroupsAndQuotes.apply(this, arguments);
68
+ }
69
+ function cartCompany(cart) {
70
+ return cart && cart.domain && cart.domain.company ? cart.domain.company : null;
71
+ }
72
+ export function hasStripeLegacyAccount(cart) {
73
+ var company = cartCompany(cart);
74
+ return Boolean(company && companyStripePubKeyOrTestPubKey(company));
75
+ }
76
+ function hasStripeConnectAccount(cart) {
77
+ var company = cartCompany(cart);
78
+ return Boolean(company && company.isStripeAccountEnabled);
79
+ }
80
+ export function stripeIsValidAndActive(cart) {
81
+ var company = cartCompany(cart);
82
+ var hasStripe = hasStripeLegacyAccount(cart) || hasStripeConnectAccount(cart);
83
+ return Boolean(hasStripe && company && company.acceptStripe);
84
+ }
85
+ export function cartRequiresShipment(cart) {
86
+ var _cart$cartItems = cart.cartItems,
87
+ cartItems = _cart$cartItems === void 0 ? [] : _cart$cartItems;
88
+ for (var i = 0; i < cartItems.length; i++) {
89
+ var item = cartItems[i];
90
+ if (item && item.product && item.product.needsShipping) {
91
+ return true;
92
+ }
93
+ }
94
+ return false;
95
+ }
@@ -0,0 +1,6 @@
1
+ export function companyPrimaryAddress(company) {
2
+ return company && company.addresses ? company.addresses[0] : undefined;
3
+ }
4
+ export function companyStripePubKeyOrTestPubKey(company) {
5
+ return company.isTesting ? company.stripePublishableTestKey : company.stripePublishableKey;
6
+ }
@@ -0,0 +1,156 @@
1
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
2
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
3
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
4
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
5
+ import { isBrowser } from "browser-or-node";
6
+ export function getCookie(_x, _x2) {
7
+ return _getCookie.apply(this, arguments);
8
+ }
9
+ function _getCookie() {
10
+ _getCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(name, defaultValue) {
11
+ var searchPrefix, cookies, i, cookie;
12
+ return _regenerator().w(function (_context2) {
13
+ while (1) switch (_context2.n) {
14
+ case 0:
15
+ if (isBrowser) {
16
+ _context2.n = 1;
17
+ break;
18
+ }
19
+ return _context2.a(2, '');
20
+ case 1:
21
+ searchPrefix = name + '=';
22
+ cookies = document.cookie.split(';');
23
+ i = 0;
24
+ case 2:
25
+ if (!(i < cookies.length)) {
26
+ _context2.n = 4;
27
+ break;
28
+ }
29
+ cookie = cookies[i];
30
+ cookie = cookie.replace(/^\s*/, '');
31
+ if (!(cookie.indexOf(searchPrefix) === 0)) {
32
+ _context2.n = 3;
33
+ break;
34
+ }
35
+ return _context2.a(2, cookie.substring(searchPrefix.length, cookie.length));
36
+ case 3:
37
+ ++i;
38
+ _context2.n = 2;
39
+ break;
40
+ case 4:
41
+ if (!(defaultValue === undefined)) {
42
+ _context2.n = 5;
43
+ break;
44
+ }
45
+ throw 'no such cookie present';
46
+ case 5:
47
+ return _context2.a(2, defaultValue);
48
+ case 6:
49
+ return _context2.a(2);
50
+ }
51
+ }, _callee2);
52
+ }));
53
+ return _getCookie.apply(this, arguments);
54
+ }
55
+ export function getCartCookie(_x3) {
56
+ return _getCartCookie.apply(this, arguments);
57
+ }
58
+ function _getCartCookie() {
59
+ _getCartCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(domainId) {
60
+ var idAndToken;
61
+ return _regenerator().w(function (_context3) {
62
+ while (1) switch (_context3.n) {
63
+ case 0:
64
+ _context3.n = 1;
65
+ return getCookie("cart-".concat(domainId), null);
66
+ case 1:
67
+ idAndToken = _context3.v;
68
+ return _context3.a(2, idAndToken ? idAndToken.split(',') : null);
69
+ }
70
+ }, _callee3);
71
+ }));
72
+ return _getCartCookie.apply(this, arguments);
73
+ }
74
+ export function getCartCookieToken(_x4) {
75
+ return _getCartCookieToken.apply(this, arguments);
76
+ }
77
+ function _getCartCookieToken() {
78
+ _getCartCookieToken = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(domainId) {
79
+ var cartIdAndToken, _t;
80
+ return _regenerator().w(function (_context4) {
81
+ while (1) switch (_context4.n) {
82
+ case 0:
83
+ if (!domainId) {
84
+ _context4.n = 2;
85
+ break;
86
+ }
87
+ _context4.n = 1;
88
+ return getCartCookie(Number(domainId));
89
+ case 1:
90
+ _t = _context4.v;
91
+ _context4.n = 3;
92
+ break;
93
+ case 2:
94
+ _t = undefined;
95
+ case 3:
96
+ cartIdAndToken = _t;
97
+ return _context4.a(2, cartIdAndToken && cartIdAndToken[1] || undefined);
98
+ }
99
+ }, _callee4);
100
+ }));
101
+ return _getCartCookieToken.apply(this, arguments);
102
+ }
103
+ function setSessionCookie(_x5, _x6, _x7) {
104
+ return _setSessionCookie.apply(this, arguments);
105
+ }
106
+ function _setSessionCookie() {
107
+ _setSessionCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(name, value, domain) {
108
+ var cookie, n;
109
+ return _regenerator().w(function (_context5) {
110
+ while (1) switch (_context5.n) {
111
+ case 0:
112
+ if (isBrowser) {
113
+ _context5.n = 1;
114
+ break;
115
+ }
116
+ return _context5.a(2);
117
+ case 1:
118
+ cookie = name + '=' + value;
119
+ if (!!domain) {
120
+ // remove port, if it exists
121
+ n = domain.indexOf(':');
122
+ domain = domain.substring(0, n != -1 ? n : domain.length);
123
+ // remove trailing slash and path, if they exists
124
+ n = domain.indexOf('/');
125
+ domain = domain.substring(0, n != -1 ? n : domain.length);
126
+ cookie += '; Domain=' + domain;
127
+ } else {
128
+ cookie += '; Domain=' + '.' + location.hostname;
129
+ }
130
+ cookie += '; path=/';
131
+ document.cookie = cookie;
132
+ case 2:
133
+ return _context5.a(2);
134
+ }
135
+ }, _callee5);
136
+ }));
137
+ return _setSessionCookie.apply(this, arguments);
138
+ }
139
+ export var setCartCookie = /*#__PURE__*/function () {
140
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(storeId, cart, domain) {
141
+ var cookieValue;
142
+ return _regenerator().w(function (_context) {
143
+ while (1) switch (_context.n) {
144
+ case 0:
145
+ cookieValue = cart ? cart.id + ',' + cart.token : '';
146
+ _context.n = 1;
147
+ return setSessionCookie('cart-' + String(storeId), cookieValue, domain);
148
+ case 1:
149
+ return _context.a(2);
150
+ }
151
+ }, _callee);
152
+ }));
153
+ return function setCartCookie(_x8, _x9, _x0) {
154
+ return _ref.apply(this, arguments);
155
+ };
156
+ }();