@ikas/storefront 4.0.0-alpha.59 → 4.0.0-alpha.6

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 (1193) hide show
  1. package/package.json +16 -17
  2. package/src/analytics/analytics.ts +536 -0
  3. package/src/analytics/events.ts +116 -0
  4. package/src/analytics/facebookPixel.ts +226 -0
  5. package/src/analytics/googleAnalytics.ts +227 -0
  6. package/src/analytics/googleTagManager.ts +341 -0
  7. package/src/analytics/googleUniversal.ts +136 -0
  8. package/src/analytics/head/index.tsx +135 -0
  9. package/src/analytics/ikas.ts +550 -0
  10. package/src/analytics/index.ts +2 -0
  11. package/src/analytics/tiktokPixel.ts +223 -0
  12. package/src/components/checkout/components/address-form/index.tsx +406 -0
  13. package/src/components/checkout/components/address-form/model.ts +397 -0
  14. package/src/components/checkout/components/button/index.tsx +44 -0
  15. package/src/components/checkout/components/button/style.module.scss +103 -0
  16. package/src/components/checkout/components/cart-summary/cart-item/index.tsx +180 -0
  17. package/src/components/checkout/components/cart-summary/cart-item/style.module.scss +107 -0
  18. package/src/components/checkout/components/cart-summary/index.tsx +481 -0
  19. package/src/components/checkout/components/cart-summary/style.module.scss +251 -0
  20. package/src/components/checkout/components/checkbox/check.tsx +23 -0
  21. package/src/components/checkout/components/checkbox/index.tsx +50 -0
  22. package/src/components/checkout/components/checkbox/style.module.scss +72 -0
  23. package/src/components/checkout/components/credit-card-form/index.tsx +122 -0
  24. package/src/components/checkout/components/credit-card-form/model.ts +56 -0
  25. package/src/components/checkout/components/credit-card-form/style.module.scss +6 -0
  26. package/src/components/checkout/components/credit-card-form/svg/amex.tsx +30 -0
  27. package/src/components/checkout/components/credit-card-form/svg/master-card.tsx +38 -0
  28. package/src/components/checkout/components/credit-card-form/svg/troy.tsx +54 -0
  29. package/src/components/checkout/components/credit-card-form/svg/visa.tsx +46 -0
  30. package/src/components/checkout/components/customer-addresses/index.tsx +333 -0
  31. package/src/components/checkout/components/customer-addresses/model.ts +126 -0
  32. package/src/components/checkout/components/customer-addresses/style.module.scss +38 -0
  33. package/src/components/checkout/components/delivery-methods/icon-button/index.tsx +29 -0
  34. package/src/components/checkout/components/delivery-methods/icon-button/style.module.scss +41 -0
  35. package/src/components/checkout/components/delivery-methods/icons/box.tsx +22 -0
  36. package/src/components/checkout/components/delivery-methods/icons/store.tsx +22 -0
  37. package/src/components/checkout/components/delivery-methods/index.tsx +39 -0
  38. package/src/components/checkout/components/delivery-methods/style.module.scss +4 -0
  39. package/src/components/checkout/components/error/customer-login-required-error/index.tsx +23 -0
  40. package/src/components/checkout/components/error/index.tsx +54 -0
  41. package/src/components/checkout/components/error/no-shipping-error/index.tsx +14 -0
  42. package/src/components/checkout/components/error/payment-error/index.tsx +21 -0
  43. package/src/components/checkout/components/error/stock-error/index.tsx +72 -0
  44. package/src/components/checkout/components/error/stock-error/style.module.scss +11 -0
  45. package/src/components/checkout/components/error/unknown-error/index.tsx +19 -0
  46. package/src/components/checkout/components/expandable-section/index.tsx +37 -0
  47. package/src/components/checkout/components/expandable-section/style.module.scss +29 -0
  48. package/src/components/checkout/components/form-item/caret-down.tsx +20 -0
  49. package/src/components/checkout/components/form-item/index.tsx +209 -0
  50. package/src/components/checkout/components/form-item/model.ts +145 -0
  51. package/src/components/checkout/components/form-item/style.module.scss +216 -0
  52. package/src/components/checkout/components/fullscreen-loading/index.tsx +10 -0
  53. package/src/components/checkout/components/fullscreen-loading/style.module.scss +56 -0
  54. package/src/components/checkout/components/input-with-button/index.tsx +53 -0
  55. package/src/components/checkout/components/input-with-button/style.module.scss +104 -0
  56. package/src/components/checkout/components/master-pass/credit-card-form/index.tsx +160 -0
  57. package/src/components/checkout/components/master-pass/credit-card-form/style.module.scss +15 -0
  58. package/src/components/checkout/components/master-pass/modal/index.tsx +32 -0
  59. package/src/components/checkout/components/master-pass/modal/style.module.scss +42 -0
  60. package/src/components/checkout/components/master-pass/modal/svg/modal-close.tsx +20 -0
  61. package/src/components/checkout/components/master-pass/modal-link-card-to-client/index.tsx +62 -0
  62. package/src/components/checkout/components/master-pass/modal-link-card-to-client/style.module.scss +27 -0
  63. package/src/components/checkout/components/master-pass/modal-link-card-to-client/svg/info-mark.tsx +19 -0
  64. package/src/components/checkout/components/master-pass/modal-link-card-to-client/svg/master-pass-by-master-card-big.tsx +41 -0
  65. package/src/components/checkout/components/master-pass/modal-otp/index.tsx +202 -0
  66. package/src/components/checkout/components/master-pass/modal-otp/style.module.scss +47 -0
  67. package/src/components/checkout/components/master-pass/modal-otp/svg/master-pass.tsx +28 -0
  68. package/src/components/checkout/components/master-pass/modal-response/index.tsx +24 -0
  69. package/src/components/checkout/components/master-pass/modal-response/style.module.scss +7 -0
  70. package/src/components/checkout/components/master-pass/modal-success/index.tsx +54 -0
  71. package/src/components/checkout/components/master-pass/modal-success/style.module.scss +25 -0
  72. package/src/components/checkout/components/master-pass/modal-success/svg/master-pass-by-master-card-small.tsx +41 -0
  73. package/src/components/checkout/components/master-pass/modal-success/svg/success.tsx +21 -0
  74. package/src/components/checkout/components/master-pass/payment-gateway/svg/master-card.tsx +14 -0
  75. package/src/components/checkout/components/master-pass/svg/master-pass-by-master-card.tsx +34 -0
  76. package/src/components/checkout/components/modal/index.tsx +41 -0
  77. package/src/components/checkout/components/modal/style.module.scss +68 -0
  78. package/src/components/checkout/components/modal/useEscape.tsx +20 -0
  79. package/src/components/checkout/components/notification-box/index.tsx +70 -0
  80. package/src/components/checkout/components/notification-box/style.module.scss +69 -0
  81. package/src/components/checkout/components/offer-product/index.tsx +180 -0
  82. package/src/components/checkout/components/offer-product/select/arrows.tsx +22 -0
  83. package/src/components/checkout/components/offer-product/select/index.tsx +40 -0
  84. package/src/components/checkout/components/offer-product/select/style.module.scss +28 -0
  85. package/src/components/checkout/components/offer-product/style.module.scss +117 -0
  86. package/src/components/checkout/components/phone-number-input/compare-strings.ts +5 -0
  87. package/src/components/checkout/components/phone-number-input/get-countries.ts +20 -0
  88. package/src/components/checkout/components/phone-number-input/index.tsx +120 -0
  89. package/src/components/checkout/components/phone-number-input/locale/en.ts +257 -0
  90. package/src/components/checkout/components/phone-number-input/style.module.scss +83 -0
  91. package/src/components/checkout/components/select-box/index.tsx +60 -0
  92. package/src/components/checkout/components/select-box/style.module.scss +55 -0
  93. package/src/components/checkout/components/step-container/index.tsx +107 -0
  94. package/src/components/checkout/components/step-container/style.module.scss +86 -0
  95. package/src/components/checkout/components/stripe/checkout-form.tsx +55 -0
  96. package/src/components/checkout/components/stripe/index.tsx +91 -0
  97. package/src/components/checkout/components/stripe/style.module.scss +75 -0
  98. package/src/components/checkout/components/svg/arrow-down.tsx +23 -0
  99. package/src/components/checkout/components/svg/arrow-left.tsx +23 -0
  100. package/src/components/checkout/components/svg/arrow-right.tsx +23 -0
  101. package/src/components/checkout/components/svg/cross.tsx +23 -0
  102. package/src/components/checkout/components/svg/discount.tsx +34 -0
  103. package/src/components/checkout/components/svg/external.tsx +101 -0
  104. package/src/components/checkout/components/svg/gift.tsx +40 -0
  105. package/src/components/checkout/components/svg/ikas.tsx +39 -0
  106. package/src/components/checkout/components/svg/lock.tsx +23 -0
  107. package/src/components/checkout/components/svg/shopping-cart.tsx +23 -0
  108. package/src/components/checkout/components/svg/success-circle.tsx +26 -0
  109. package/src/components/checkout/components/svg/tag.tsx +23 -0
  110. package/src/components/checkout/components/svg/warning.tsx +30 -0
  111. package/src/components/checkout/components/toggle/index.tsx +51 -0
  112. package/src/components/checkout/components/toggle/style.module.scss +75 -0
  113. package/src/components/checkout/components/tooltip/index.tsx +27 -0
  114. package/src/components/checkout/components/tooltip/style.module.scss +86 -0
  115. package/src/components/checkout/index.tsx +641 -0
  116. package/src/components/checkout/model.ts +1466 -0
  117. package/src/components/checkout/modelMasterPass.ts +1001 -0
  118. package/src/components/checkout/steps/step-info/index.tsx +85 -0
  119. package/src/components/checkout/steps/step-payment/billing-address/index.tsx +48 -0
  120. package/src/components/checkout/steps/step-payment/index.tsx +104 -0
  121. package/src/components/checkout/steps/step-payment/payment-gateways/index.tsx +218 -0
  122. package/src/components/checkout/steps/step-payment/payment-gateways/installments/index.tsx +54 -0
  123. package/src/components/checkout/steps/step-payment/payment-gateways/installments/style.module.scss +50 -0
  124. package/src/components/checkout/steps/step-payment/payment-gateways/style.module.scss +32 -0
  125. package/src/components/checkout/steps/step-payment/style.module.scss +32 -0
  126. package/src/components/checkout/steps/step-shipping/index.tsx +126 -0
  127. package/src/components/checkout/steps/step-shipping/style.module.scss +44 -0
  128. package/src/components/checkout/steps/step-success/index.tsx +366 -0
  129. package/src/components/checkout/steps/step-success/style.module.scss +161 -0
  130. package/src/components/checkout/style.module.scss +366 -0
  131. package/src/components/checkout/styles/common.module.scss +59 -0
  132. package/src/components/checkout/styles/variables.scss +40 -0
  133. package/src/components/image/index.tsx +43 -0
  134. package/src/components/index.ts +5 -0
  135. package/src/components/link/index.tsx +26 -0
  136. package/src/components/page/ThemeComponent.tsx +108 -0
  137. package/src/components/page/head.tsx +358 -0
  138. package/src/components/page/index.tsx +219 -0
  139. package/src/components/page-editor/ThemeComponentEditor.tsx +270 -0
  140. package/src/components/page-editor/error/index.tsx +18 -0
  141. package/src/components/page-editor/index.tsx +194 -0
  142. package/src/components/page-editor/loader/index.tsx +18 -0
  143. package/src/components/page-editor/loader/style.module.scss +59 -0
  144. package/src/components/page-editor/model.ts +847 -0
  145. package/src/index.ts +6 -0
  146. package/src/models/data/base/index.ts +15 -0
  147. package/src/models/data/blog/category/index.ts +36 -0
  148. package/src/models/data/blog/content/index.ts +16 -0
  149. package/src/models/data/blog/index.ts +75 -0
  150. package/src/models/data/blog/meta-data/index.ts +39 -0
  151. package/src/models/data/blog/tag/index.ts +16 -0
  152. package/src/models/data/blog/writer/index.ts +17 -0
  153. package/src/models/data/brand/index.ts +58 -0
  154. package/src/models/data/brand/translation/index.ts +16 -0
  155. package/src/models/data/campaign-offer/index.ts +79 -0
  156. package/src/models/data/campaign-offer/product/index.ts +69 -0
  157. package/src/models/data/cart/available-shipping-method/index.ts +25 -0
  158. package/src/models/data/cart/campaign-offer/index.ts +43 -0
  159. package/src/models/data/cart/index.ts +38 -0
  160. package/src/models/data/category/index.ts +69 -0
  161. package/src/models/data/category/init.ts +33 -0
  162. package/src/models/data/category/path-item/index.ts +42 -0
  163. package/src/models/data/category/translations/index.ts +16 -0
  164. package/src/models/data/checkout/index.ts +55 -0
  165. package/src/models/data/checkout-settings/index.ts +63 -0
  166. package/src/models/data/checkout-settings/option/index.ts +14 -0
  167. package/src/models/data/checkout-settings/price/index.ts +14 -0
  168. package/src/models/data/city/index.ts +34 -0
  169. package/src/models/data/contact-form/index.ts +20 -0
  170. package/src/models/data/country/index.ts +46 -0
  171. package/src/models/data/customer/address/city/index.ts +16 -0
  172. package/src/models/data/customer/address/country/index.ts +20 -0
  173. package/src/models/data/customer/address/district/index.ts +16 -0
  174. package/src/models/data/customer/address/index.tsx +136 -0
  175. package/src/models/data/customer/address/state/index.ts +16 -0
  176. package/src/models/data/customer/attribute/index.ts +61 -0
  177. package/src/models/data/customer/attribute/option/index.ts +20 -0
  178. package/src/models/data/customer/attribute/sales-channel/index.ts +24 -0
  179. package/src/models/data/customer/attribute/translation/index.ts +23 -0
  180. package/src/models/data/customer/attribute/translation/option/index.ts +16 -0
  181. package/src/models/data/customer/attribute/value/index.ts +29 -0
  182. package/src/models/data/customer/index.ts +122 -0
  183. package/src/models/data/customer/review/index.ts +70 -0
  184. package/src/models/data/customer/review/settings/index.ts +14 -0
  185. package/src/models/data/customer/review/summary/index.ts +29 -0
  186. package/src/models/data/customer/review/summary/star/index.ts +16 -0
  187. package/src/models/data/district/index.ts +36 -0
  188. package/src/models/data/favorite-product/index.ts +23 -0
  189. package/src/models/data/filter-category/index.ts +30 -0
  190. package/src/models/data/html-meta-data/index.ts +69 -0
  191. package/src/models/data/html-meta-data/translations/index.ts +16 -0
  192. package/src/models/data/image/index.ts +33 -0
  193. package/src/models/data/index.ts +192 -0
  194. package/src/models/data/last-viewed-product/index.ts +14 -0
  195. package/src/models/data/merchant-settings/index.ts +26 -0
  196. package/src/models/data/order/address/city/index.ts +16 -0
  197. package/src/models/data/order/address/country/index.ts +20 -0
  198. package/src/models/data/order/address/district/index.ts +16 -0
  199. package/src/models/data/order/address/index.ts +96 -0
  200. package/src/models/data/order/address/state/index.ts +16 -0
  201. package/src/models/data/order/adjustment/applied-order-line/index.ts +20 -0
  202. package/src/models/data/order/adjustment/index.ts +39 -0
  203. package/src/models/data/order/customer/index.ts +24 -0
  204. package/src/models/data/order/gift-line/index.ts +14 -0
  205. package/src/models/data/order/index.ts +241 -0
  206. package/src/models/data/order/invoice/index.ts +29 -0
  207. package/src/models/data/order/line-item/discount/index.ts +23 -0
  208. package/src/models/data/order/line-item/index.ts +153 -0
  209. package/src/models/data/order/line-item/option/index.ts +24 -0
  210. package/src/models/data/order/line-item/option/value/index.ts +16 -0
  211. package/src/models/data/order/line-item/variant/brand/index.ts +14 -0
  212. package/src/models/data/order/line-item/variant/category/index.ts +36 -0
  213. package/src/models/data/order/line-item/variant/index.ts +62 -0
  214. package/src/models/data/order/line-item/variant/price/index.ts +20 -0
  215. package/src/models/data/order/line-item/variant/value/index.ts +31 -0
  216. package/src/models/data/order/package/index.ts +41 -0
  217. package/src/models/data/order/package/tracking-info/index.ts +20 -0
  218. package/src/models/data/order/payment-method/index.ts +23 -0
  219. package/src/models/data/order/refund/index.ts +17 -0
  220. package/src/models/data/order/refund/line-item/index.ts +16 -0
  221. package/src/models/data/order/refund/settings/index.ts +16 -0
  222. package/src/models/data/order/shipping-line/index.ts +29 -0
  223. package/src/models/data/order/tax-line/index.ts +14 -0
  224. package/src/models/data/order/transaction/error/index.ts +16 -0
  225. package/src/models/data/order/transaction/index.ts +58 -0
  226. package/src/models/data/order/transaction/payment-method-detail/index.ts +33 -0
  227. package/src/models/data/order/transaction/payment-method-detail/installment-price/index.ts +22 -0
  228. package/src/models/data/payment-gateway/additional-price/index.ts +29 -0
  229. package/src/models/data/payment-gateway/index.ts +90 -0
  230. package/src/models/data/payment-gateway/settings/index.ts +21 -0
  231. package/src/models/data/payment-gateway/translation/index.ts +18 -0
  232. package/src/models/data/product/attribute/index.ts +37 -0
  233. package/src/models/data/product/attribute/option/index.ts +14 -0
  234. package/src/models/data/product/attribute/table-cell/index.ts +16 -0
  235. package/src/models/data/product/attribute/table-template/index.ts +19 -0
  236. package/src/models/data/product/attribute/translation/index.ts +39 -0
  237. package/src/models/data/product/attribute-value/index.ts +69 -0
  238. package/src/models/data/product/back-in-stock-settings/index.ts +14 -0
  239. package/src/models/data/product/campaign/data/index.ts +70 -0
  240. package/src/models/data/product/campaign/filter/index.ts +19 -0
  241. package/src/models/data/product/campaign/index.ts +15 -0
  242. package/src/models/data/product/campaign/product-buyx-then-gety/index.ts +57 -0
  243. package/src/models/data/product/campaign/product-campaign-date-range-field/index.ts +16 -0
  244. package/src/models/data/product/campaign/product-fixed-discount/index.ts +40 -0
  245. package/src/models/data/product/filter/index.ts +285 -0
  246. package/src/models/data/product/image/index.ts +22 -0
  247. package/src/models/data/product/index.ts +298 -0
  248. package/src/models/data/product/option-set/index.ts +94 -0
  249. package/src/models/data/product/option-set/option/index.ts +245 -0
  250. package/src/models/data/product/tag/index.ts +14 -0
  251. package/src/models/data/product/variant/index.ts +104 -0
  252. package/src/models/data/product/variant/price/index.ts +58 -0
  253. package/src/models/data/product/variant-type/index.ts +17 -0
  254. package/src/models/data/product/variant-type/init.ts +15 -0
  255. package/src/models/data/raffle/index.ts +155 -0
  256. package/src/models/data/sales-channel/index.ts +56 -0
  257. package/src/models/data/state/index.ts +18 -0
  258. package/src/models/data/stock-location/address/city/index.ts +16 -0
  259. package/src/models/data/stock-location/address/country/index.ts +18 -0
  260. package/src/models/data/stock-location/address/district/index.ts +18 -0
  261. package/src/models/data/stock-location/address/index.ts +34 -0
  262. package/src/models/data/stock-location/address/state/index.ts +18 -0
  263. package/src/models/data/stock-location/available/index.ts +22 -0
  264. package/src/models/data/stock-location/index.ts +35 -0
  265. package/src/models/data/storefront/domain/index.ts +20 -0
  266. package/src/models/data/storefront/index.ts +65 -0
  267. package/src/models/data/storefront/localization/index.tsx +18 -0
  268. package/src/models/data/storefront/routing/dynamic-currency/index.ts +16 -0
  269. package/src/models/data/storefront/routing/index.tsx +25 -0
  270. package/src/models/data/storefront/theme/index.tsx +25 -0
  271. package/src/models/data/storefront/theme-localization/index.tsx +31 -0
  272. package/src/models/data/theme-json/component/index.ts +41 -0
  273. package/src/models/data/theme-json/component/prop/index.ts +55 -0
  274. package/src/models/data/theme-json/custom-data/index.ts +132 -0
  275. package/src/models/data/theme-json/index.ts +210 -0
  276. package/src/models/data/theme-json/page/component/index.ts +22 -0
  277. package/src/models/data/theme-json/page/index.ts +54 -0
  278. package/src/models/data/theme-json/settings/color/index.ts +35 -0
  279. package/src/models/data/theme-json/settings/favicon/index.ts +12 -0
  280. package/src/models/data/theme-json/settings/font-family/index.ts +14 -0
  281. package/src/models/data/theme-json/settings/index.ts +30 -0
  282. package/src/models/data/variant-type/index.ts +44 -0
  283. package/src/models/data/variant-type/variant-value/index.ts +32 -0
  284. package/src/models/index.ts +2 -0
  285. package/src/models/ui/blog-category-list/index.ts +169 -0
  286. package/src/models/ui/blog-list/index.ts +175 -0
  287. package/src/models/ui/brand-list/index.ts +237 -0
  288. package/src/models/ui/category-list/index.ts +237 -0
  289. package/src/models/ui/component-renderer/index.ts +9 -0
  290. package/src/models/ui/customer-review-list/index.ts +173 -0
  291. package/src/models/ui/customer-review-summary-list/index.ts +175 -0
  292. package/src/models/ui/index.ts +40 -0
  293. package/src/models/ui/navigation-link/index.ts +23 -0
  294. package/src/models/ui/product-attribute-detail/index.ts +29 -0
  295. package/src/models/ui/product-attribute-list/index.ts +52 -0
  296. package/src/models/ui/product-list/index.ts +998 -0
  297. package/src/models/ui/raffle-list/index.ts +178 -0
  298. package/src/models/ui/validator/form/account-info.ts +167 -0
  299. package/src/models/ui/validator/form/address.ts +490 -0
  300. package/src/models/ui/validator/form/contact-form.ts +177 -0
  301. package/src/models/ui/validator/form/customer-review.ts +132 -0
  302. package/src/models/ui/validator/form/forgot-password.ts +96 -0
  303. package/src/models/ui/validator/form/login.ts +128 -0
  304. package/src/models/ui/validator/form/raffle-form.ts +276 -0
  305. package/src/models/ui/validator/form/recover-password.ts +148 -0
  306. package/src/models/ui/validator/form/register.ts +206 -0
  307. package/src/models/ui/validator/index.ts +121 -0
  308. package/src/models/ui/validator/rules/index.ts +310 -0
  309. package/src/page-data-init/index.ts +904 -0
  310. package/src/pages/404.tsx +10 -0
  311. package/src/pages/[slug]/index.tsx +9 -0
  312. package/src/pages/account/addresses.tsx +10 -0
  313. package/src/pages/account/favorite-products.tsx +9 -0
  314. package/src/pages/account/forgot-password.tsx +9 -0
  315. package/src/pages/account/index.tsx +9 -0
  316. package/src/pages/account/login.tsx +9 -0
  317. package/src/pages/account/orders/[id].tsx +9 -0
  318. package/src/pages/account/orders/index.tsx +9 -0
  319. package/src/pages/account/raffles.tsx +9 -0
  320. package/src/pages/account/recover-password.tsx +9 -0
  321. package/src/pages/account/register.tsx +9 -0
  322. package/src/pages/blog/[slug].tsx +9 -0
  323. package/src/pages/blog/index.tsx +9 -0
  324. package/src/pages/cart.tsx +9 -0
  325. package/src/pages/checkout.tsx +163 -0
  326. package/src/pages/editor.tsx +30 -0
  327. package/src/pages/home.tsx +10 -0
  328. package/src/pages/index.ts +22 -0
  329. package/src/pages/pages/[slug].tsx +9 -0
  330. package/src/pages/raffle/[slug].tsx +9 -0
  331. package/src/pages/raffle/index.tsx +9 -0
  332. package/src/pages/search.tsx +9 -0
  333. package/src/store/base.ts +238 -0
  334. package/src/store/blog/index.ts +49 -0
  335. package/src/store/brand/index.ts +16 -0
  336. package/src/store/cart/api.ts +58 -0
  337. package/src/store/cart/index.ts +311 -0
  338. package/src/store/category/index.ts +16 -0
  339. package/src/store/checkout/index.ts +92 -0
  340. package/src/store/customer/api.ts +273 -0
  341. package/src/store/customer/index.ts +658 -0
  342. package/src/store/html-meta-data/index.ts +16 -0
  343. package/src/store/index.ts +1 -0
  344. package/src/store/location/index.ts +56 -0
  345. package/src/store/merchant/index.ts +16 -0
  346. package/src/store/product/index.ts +113 -0
  347. package/src/store/raffle/index.ts +58 -0
  348. package/src/store/storefront/index.ts +18 -0
  349. package/src/typings/global.d.ts +7 -0
  350. package/src/utils/constants.ts +2 -0
  351. package/src/utils/currency.ts +250 -0
  352. package/src/utils/google-fonts.ts +52 -0
  353. package/src/utils/helper.ts +77 -0
  354. package/src/utils/i18n.ts +126 -0
  355. package/src/utils/index.ts +3 -0
  356. package/build/_virtual/_commonjsHelpers.js +0 -1
  357. package/build/_virtual/axios.js +0 -1
  358. package/build/_virtual/index.js +0 -1
  359. package/build/_virtual/index2.js +0 -1
  360. package/build/_virtual/index3.js +0 -1
  361. package/build/_virtual/index4.js +0 -1
  362. package/build/_virtual/react-is.development.js +0 -1
  363. package/build/_virtual/react-is.production.min.js +0 -1
  364. package/build/_virtual/react-stripe.umd.js +0 -1
  365. package/build/analytics/analytics.d.ts +0 -37
  366. package/build/analytics/analytics.js +0 -1
  367. package/build/analytics/events.d.ts +0 -37
  368. package/build/analytics/events.js +0 -1
  369. package/build/analytics/facebookPixel.d.ts +0 -15
  370. package/build/analytics/facebookPixel.js +0 -1
  371. package/build/analytics/googleAnalytics.d.ts +0 -13
  372. package/build/analytics/googleAnalytics.js +0 -1
  373. package/build/analytics/googleTagManager.d.ts +0 -203
  374. package/build/analytics/googleTagManager.js +0 -1
  375. package/build/analytics/googleUniversal.d.ts +0 -9
  376. package/build/analytics/googleUniversal.js +0 -1
  377. package/build/analytics/head/index.d.ts +0 -7
  378. package/build/analytics/head/index.js +0 -1
  379. package/build/analytics/ikas.d.ts +0 -134
  380. package/build/analytics/ikas.js +0 -1
  381. package/build/analytics/index.d.ts +0 -2
  382. package/build/analytics/tiktokPixel.d.ts +0 -13
  383. package/build/analytics/tiktokPixel.js +0 -1
  384. package/build/components/checkout/components/address-form/index.d.ts +0 -3
  385. package/build/components/checkout/components/address-form/index.js +0 -1
  386. package/build/components/checkout/components/address-form/model.d.ts +0 -87
  387. package/build/components/checkout/components/address-form/model.js +0 -1
  388. package/build/components/checkout/components/button/index.d.ts +0 -13
  389. package/build/components/checkout/components/button/index.js +0 -1
  390. package/build/components/checkout/components/button/style.module.scss.js +0 -1
  391. package/build/components/checkout/components/cart-summary/cart-item/index.d.ts +0 -10
  392. package/build/components/checkout/components/cart-summary/cart-item/index.js +0 -1
  393. package/build/components/checkout/components/cart-summary/cart-item/style.module.scss.js +0 -1
  394. package/build/components/checkout/components/cart-summary/index.d.ts +0 -8
  395. package/build/components/checkout/components/cart-summary/index.js +0 -1
  396. package/build/components/checkout/components/cart-summary/style.module.scss.js +0 -1
  397. package/build/components/checkout/components/checkbox/check.d.ts +0 -6
  398. package/build/components/checkout/components/checkbox/check.js +0 -1
  399. package/build/components/checkout/components/checkbox/index.d.ts +0 -10
  400. package/build/components/checkout/components/checkbox/index.js +0 -1
  401. package/build/components/checkout/components/checkbox/style.module.scss.js +0 -1
  402. package/build/components/checkout/components/credit-card-form/index.d.ts +0 -7
  403. package/build/components/checkout/components/credit-card-form/index.js +0 -1
  404. package/build/components/checkout/components/credit-card-form/model.d.ts +0 -26
  405. package/build/components/checkout/components/credit-card-form/model.js +0 -1
  406. package/build/components/checkout/components/credit-card-form/style.module.scss.js +0 -1
  407. package/build/components/checkout/components/credit-card-form/svg/amex.d.ts +0 -6
  408. package/build/components/checkout/components/credit-card-form/svg/amex.js +0 -1
  409. package/build/components/checkout/components/credit-card-form/svg/master-card.d.ts +0 -6
  410. package/build/components/checkout/components/credit-card-form/svg/master-card.js +0 -1
  411. package/build/components/checkout/components/credit-card-form/svg/troy.d.ts +0 -6
  412. package/build/components/checkout/components/credit-card-form/svg/troy.js +0 -1
  413. package/build/components/checkout/components/credit-card-form/svg/visa.d.ts +0 -6
  414. package/build/components/checkout/components/credit-card-form/svg/visa.js +0 -1
  415. package/build/components/checkout/components/customer-addresses/index.d.ts +0 -19
  416. package/build/components/checkout/components/customer-addresses/index.js +0 -1
  417. package/build/components/checkout/components/customer-addresses/model.d.ts +0 -21
  418. package/build/components/checkout/components/customer-addresses/model.js +0 -1
  419. package/build/components/checkout/components/customer-addresses/style.module.scss.js +0 -1
  420. package/build/components/checkout/components/delivery-methods/icon-button/index.d.ts +0 -10
  421. package/build/components/checkout/components/delivery-methods/icon-button/index.js +0 -1
  422. package/build/components/checkout/components/delivery-methods/icon-button/style.module.scss.js +0 -1
  423. package/build/components/checkout/components/delivery-methods/icons/box.d.ts +0 -6
  424. package/build/components/checkout/components/delivery-methods/icons/box.js +0 -1
  425. package/build/components/checkout/components/delivery-methods/icons/store.d.ts +0 -6
  426. package/build/components/checkout/components/delivery-methods/icons/store.js +0 -1
  427. package/build/components/checkout/components/delivery-methods/index.d.ts +0 -7
  428. package/build/components/checkout/components/delivery-methods/index.js +0 -1
  429. package/build/components/checkout/components/delivery-methods/style.module.scss.js +0 -1
  430. package/build/components/checkout/components/error/customer-login-required-error/index.d.ts +0 -8
  431. package/build/components/checkout/components/error/customer-login-required-error/index.js +0 -1
  432. package/build/components/checkout/components/error/index.d.ts +0 -7
  433. package/build/components/checkout/components/error/index.js +0 -1
  434. package/build/components/checkout/components/error/no-shipping-error/index.d.ts +0 -3
  435. package/build/components/checkout/components/error/no-shipping-error/index.js +0 -1
  436. package/build/components/checkout/components/error/payment-error/index.d.ts +0 -8
  437. package/build/components/checkout/components/error/payment-error/index.js +0 -1
  438. package/build/components/checkout/components/error/stock-error/index.d.ts +0 -8
  439. package/build/components/checkout/components/error/stock-error/index.js +0 -1
  440. package/build/components/checkout/components/error/stock-error/style.module.scss.js +0 -1
  441. package/build/components/checkout/components/error/unknown-error/index.d.ts +0 -8
  442. package/build/components/checkout/components/error/unknown-error/index.js +0 -1
  443. package/build/components/checkout/components/expandable-section/index.d.ts +0 -6
  444. package/build/components/checkout/components/expandable-section/index.js +0 -1
  445. package/build/components/checkout/components/expandable-section/style.module.scss.js +0 -1
  446. package/build/components/checkout/components/form-item/caret-down.d.ts +0 -6
  447. package/build/components/checkout/components/form-item/caret-down.js +0 -1
  448. package/build/components/checkout/components/form-item/index.d.ts +0 -3
  449. package/build/components/checkout/components/form-item/index.js +0 -1
  450. package/build/components/checkout/components/form-item/model.d.ts +0 -61
  451. package/build/components/checkout/components/form-item/model.js +0 -1
  452. package/build/components/checkout/components/form-item/style.module.scss.js +0 -1
  453. package/build/components/checkout/components/fullscreen-loading/index.d.ts +0 -2
  454. package/build/components/checkout/components/fullscreen-loading/index.js +0 -1
  455. package/build/components/checkout/components/fullscreen-loading/style.module.scss.js +0 -1
  456. package/build/components/checkout/components/input-with-button/index.d.ts +0 -11
  457. package/build/components/checkout/components/input-with-button/index.js +0 -1
  458. package/build/components/checkout/components/input-with-button/style.module.scss.js +0 -1
  459. package/build/components/checkout/components/master-pass/credit-card-form/index.d.ts +0 -8
  460. package/build/components/checkout/components/master-pass/credit-card-form/index.js +0 -1
  461. package/build/components/checkout/components/master-pass/credit-card-form/style.module.scss.js +0 -1
  462. package/build/components/checkout/components/master-pass/modal/index.d.ts +0 -11
  463. package/build/components/checkout/components/master-pass/modal/index.js +0 -1
  464. package/build/components/checkout/components/master-pass/modal/style.module.scss.js +0 -1
  465. package/build/components/checkout/components/master-pass/modal/svg/modal-close.d.ts +0 -2
  466. package/build/components/checkout/components/master-pass/modal/svg/modal-close.js +0 -1
  467. package/build/components/checkout/components/master-pass/modal-link-card-to-client/index.d.ts +0 -10
  468. package/build/components/checkout/components/master-pass/modal-link-card-to-client/index.js +0 -1
  469. package/build/components/checkout/components/master-pass/modal-link-card-to-client/style.module.scss.js +0 -1
  470. package/build/components/checkout/components/master-pass/modal-link-card-to-client/svg/info-mark.d.ts +0 -2
  471. package/build/components/checkout/components/master-pass/modal-link-card-to-client/svg/info-mark.js +0 -1
  472. package/build/components/checkout/components/master-pass/modal-link-card-to-client/svg/master-pass-by-master-card-big.d.ts +0 -2
  473. package/build/components/checkout/components/master-pass/modal-link-card-to-client/svg/master-pass-by-master-card-big.js +0 -1
  474. package/build/components/checkout/components/master-pass/modal-otp/index.d.ts +0 -10
  475. package/build/components/checkout/components/master-pass/modal-otp/index.js +0 -1
  476. package/build/components/checkout/components/master-pass/modal-otp/style.module.scss.js +0 -1
  477. package/build/components/checkout/components/master-pass/modal-otp/svg/master-pass.d.ts +0 -2
  478. package/build/components/checkout/components/master-pass/modal-otp/svg/master-pass.js +0 -1
  479. package/build/components/checkout/components/master-pass/modal-response/index.d.ts +0 -9
  480. package/build/components/checkout/components/master-pass/modal-response/index.js +0 -1
  481. package/build/components/checkout/components/master-pass/modal-response/style.module.scss.js +0 -1
  482. package/build/components/checkout/components/master-pass/modal-success/index.d.ts +0 -10
  483. package/build/components/checkout/components/master-pass/modal-success/index.js +0 -1
  484. package/build/components/checkout/components/master-pass/modal-success/style.module.scss.js +0 -1
  485. package/build/components/checkout/components/master-pass/modal-success/svg/master-pass-by-master-card-small.d.ts +0 -2
  486. package/build/components/checkout/components/master-pass/modal-success/svg/master-pass-by-master-card-small.js +0 -1
  487. package/build/components/checkout/components/master-pass/modal-success/svg/success.d.ts +0 -2
  488. package/build/components/checkout/components/master-pass/modal-success/svg/success.js +0 -1
  489. package/build/components/checkout/components/master-pass/payment-gateway/svg/master-card.d.ts +0 -2
  490. package/build/components/checkout/components/master-pass/payment-gateway/svg/master-card.js +0 -1
  491. package/build/components/checkout/components/master-pass/svg/master-pass-by-master-card.d.ts +0 -3
  492. package/build/components/checkout/components/master-pass/svg/master-pass-by-master-card.js +0 -1
  493. package/build/components/checkout/components/modal/index.d.ts +0 -8
  494. package/build/components/checkout/components/modal/index.js +0 -1
  495. package/build/components/checkout/components/modal/style.module.scss.js +0 -1
  496. package/build/components/checkout/components/modal/useEscape.d.ts +0 -5
  497. package/build/components/checkout/components/modal/useEscape.js +0 -1
  498. package/build/components/checkout/components/notification-box/index.d.ts +0 -9
  499. package/build/components/checkout/components/notification-box/index.js +0 -1
  500. package/build/components/checkout/components/notification-box/style.module.scss.js +0 -1
  501. package/build/components/checkout/components/offer-product/index.d.ts +0 -8
  502. package/build/components/checkout/components/offer-product/index.js +0 -1
  503. package/build/components/checkout/components/offer-product/select/arrows.d.ts +0 -6
  504. package/build/components/checkout/components/offer-product/select/arrows.js +0 -1
  505. package/build/components/checkout/components/offer-product/select/index.d.ts +0 -11
  506. package/build/components/checkout/components/offer-product/select/index.js +0 -1
  507. package/build/components/checkout/components/offer-product/select/style.module.scss.js +0 -1
  508. package/build/components/checkout/components/offer-product/style.module.scss.js +0 -1
  509. package/build/components/checkout/components/phone-number-input/compare-strings.d.ts +0 -2
  510. package/build/components/checkout/components/phone-number-input/compare-strings.js +0 -1
  511. package/build/components/checkout/components/phone-number-input/get-countries.d.ts +0 -7
  512. package/build/components/checkout/components/phone-number-input/get-countries.js +0 -1
  513. package/build/components/checkout/components/phone-number-input/index.d.ts +0 -10
  514. package/build/components/checkout/components/phone-number-input/index.js +0 -1
  515. package/build/components/checkout/components/phone-number-input/style.module.scss.js +0 -1
  516. package/build/components/checkout/components/select-box/index.d.ts +0 -13
  517. package/build/components/checkout/components/select-box/index.js +0 -1
  518. package/build/components/checkout/components/select-box/style.module.scss.js +0 -1
  519. package/build/components/checkout/components/step-container/index.d.ts +0 -15
  520. package/build/components/checkout/components/step-container/index.js +0 -1
  521. package/build/components/checkout/components/step-container/style.module.scss.js +0 -1
  522. package/build/components/checkout/components/stripe/checkout-form.d.ts +0 -8
  523. package/build/components/checkout/components/stripe/checkout-form.js +0 -1
  524. package/build/components/checkout/components/stripe/index.d.ts +0 -9
  525. package/build/components/checkout/components/stripe/index.js +0 -1
  526. package/build/components/checkout/components/stripe/style.module.scss.js +0 -1
  527. package/build/components/checkout/components/svg/arrow-down.d.ts +0 -6
  528. package/build/components/checkout/components/svg/arrow-down.js +0 -1
  529. package/build/components/checkout/components/svg/arrow-left.d.ts +0 -6
  530. package/build/components/checkout/components/svg/arrow-right.d.ts +0 -6
  531. package/build/components/checkout/components/svg/cross.d.ts +0 -6
  532. package/build/components/checkout/components/svg/cross.js +0 -1
  533. package/build/components/checkout/components/svg/discount.d.ts +0 -6
  534. package/build/components/checkout/components/svg/external.d.ts +0 -6
  535. package/build/components/checkout/components/svg/external.js +0 -1
  536. package/build/components/checkout/components/svg/gift.d.ts +0 -7
  537. package/build/components/checkout/components/svg/gift.js +0 -1
  538. package/build/components/checkout/components/svg/ikas.d.ts +0 -6
  539. package/build/components/checkout/components/svg/ikas.js +0 -1
  540. package/build/components/checkout/components/svg/lock.d.ts +0 -6
  541. package/build/components/checkout/components/svg/lock.js +0 -1
  542. package/build/components/checkout/components/svg/shopping-cart.d.ts +0 -6
  543. package/build/components/checkout/components/svg/success-circle.d.ts +0 -6
  544. package/build/components/checkout/components/svg/success-circle.js +0 -1
  545. package/build/components/checkout/components/svg/tag.d.ts +0 -6
  546. package/build/components/checkout/components/svg/warning.d.ts +0 -6
  547. package/build/components/checkout/components/svg/warning.js +0 -1
  548. package/build/components/checkout/components/toggle/index.d.ts +0 -10
  549. package/build/components/checkout/components/toggle/index.js +0 -1
  550. package/build/components/checkout/components/toggle/style.module.scss.js +0 -1
  551. package/build/components/checkout/components/tooltip/index.d.ts +0 -8
  552. package/build/components/checkout/components/tooltip/index.js +0 -1
  553. package/build/components/checkout/components/tooltip/style.module.scss.js +0 -1
  554. package/build/components/checkout/index.d.ts +0 -32
  555. package/build/components/checkout/index.js +0 -1
  556. package/build/components/checkout/model.d.ts +0 -161
  557. package/build/components/checkout/model.js +0 -1
  558. package/build/components/checkout/modelMasterPass.d.ts +0 -201
  559. package/build/components/checkout/modelMasterPass.js +0 -1
  560. package/build/components/checkout/steps/step-info/index.d.ts +0 -7
  561. package/build/components/checkout/steps/step-info/index.js +0 -1
  562. package/build/components/checkout/steps/step-payment/billing-address/index.d.ts +0 -7
  563. package/build/components/checkout/steps/step-payment/billing-address/index.js +0 -1
  564. package/build/components/checkout/steps/step-payment/index.d.ts +0 -7
  565. package/build/components/checkout/steps/step-payment/index.js +0 -1
  566. package/build/components/checkout/steps/step-payment/payment-gateways/index.d.ts +0 -7
  567. package/build/components/checkout/steps/step-payment/payment-gateways/index.js +0 -1
  568. package/build/components/checkout/steps/step-payment/payment-gateways/installments/index.d.ts +0 -7
  569. package/build/components/checkout/steps/step-payment/payment-gateways/installments/index.js +0 -1
  570. package/build/components/checkout/steps/step-payment/payment-gateways/installments/style.module.scss.js +0 -1
  571. package/build/components/checkout/steps/step-payment/payment-gateways/style.module.scss.js +0 -1
  572. package/build/components/checkout/steps/step-payment/style.module.scss.js +0 -1
  573. package/build/components/checkout/steps/step-shipping/index.d.ts +0 -7
  574. package/build/components/checkout/steps/step-shipping/index.js +0 -1
  575. package/build/components/checkout/steps/step-shipping/style.module.scss.js +0 -1
  576. package/build/components/checkout/steps/step-success/index.d.ts +0 -7
  577. package/build/components/checkout/steps/step-success/index.js +0 -1
  578. package/build/components/checkout/steps/step-success/style.module.scss.js +0 -1
  579. package/build/components/checkout/style.module.scss.js +0 -1
  580. package/build/components/checkout/styles/common.module.scss.js +0 -1
  581. package/build/components/image/index.d.ts +0 -10
  582. package/build/components/image/index.js +0 -1
  583. package/build/components/index.d.ts +0 -5
  584. package/build/components/link/index.d.ts +0 -16
  585. package/build/components/link/index.js +0 -1
  586. package/build/components/page/ThemeComponent.d.ts +0 -21
  587. package/build/components/page/ThemeComponent.js +0 -1
  588. package/build/components/page/head.d.ts +0 -15
  589. package/build/components/page/head.js +0 -1
  590. package/build/components/page/index.d.ts +0 -21
  591. package/build/components/page/index.js +0 -1
  592. package/build/components/page-editor/ThemeComponentEditor.d.ts +0 -32
  593. package/build/components/page-editor/ThemeComponentEditor.js +0 -1
  594. package/build/components/page-editor/error/index.d.ts +0 -4
  595. package/build/components/page-editor/error/index.js +0 -1
  596. package/build/components/page-editor/index.d.ts +0 -4
  597. package/build/components/page-editor/index.js +0 -1
  598. package/build/components/page-editor/loader/index.d.ts +0 -6
  599. package/build/components/page-editor/loader/index.js +0 -1
  600. package/build/components/page-editor/loader/style.module.scss.js +0 -1
  601. package/build/components/page-editor/model.d.ts +0 -75
  602. package/build/components/page-editor/model.js +0 -1
  603. package/build/ext/@ikas/fe-api-client/build/_virtual/_commonjsHelpers.js +0 -1
  604. package/build/ext/@ikas/fe-api-client/build/_virtual/axios-error-format.js +0 -1
  605. package/build/ext/@ikas/fe-api-client/build/_virtual/core.js +0 -1
  606. package/build/ext/@ikas/fe-api-client/build/_virtual/index.js +0 -1
  607. package/build/ext/@ikas/fe-api-client/build/ext/@redtea/format-axios-error/axios-error-format.js +0 -1
  608. package/build/ext/@ikas/fe-api-client/build/ext/@redtea/format-axios-error/core.js +0 -1
  609. package/build/ext/@ikas/fe-api-client/build/ext/@redtea/format-axios-error/index.js +0 -1
  610. package/build/ext/@ikas/fe-api-client/build/ext/@redtea/format-axios-error/index.mjs.js +0 -1
  611. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_Hash.js +0 -1
  612. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_ListCache.js +0 -1
  613. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_Map.js +0 -1
  614. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_MapCache.js +0 -1
  615. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_Symbol.js +0 -1
  616. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_assocIndexOf.js +0 -1
  617. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_baseGetTag.js +0 -1
  618. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_baseIsNative.js +0 -1
  619. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_baseToString.js +0 -1
  620. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_coreJsData.js +0 -1
  621. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_defineProperty.js +0 -1
  622. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_freeGlobal.js +0 -1
  623. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_getMapData.js +0 -1
  624. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_getNative.js +0 -1
  625. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_getRawTag.js +0 -1
  626. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_getValue.js +0 -1
  627. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_hashClear.js +0 -1
  628. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_hashDelete.js +0 -1
  629. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_hashGet.js +0 -1
  630. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_hashHas.js +0 -1
  631. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_hashSet.js +0 -1
  632. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_isKeyable.js +0 -1
  633. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_isMasked.js +0 -1
  634. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_listCacheClear.js +0 -1
  635. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_listCacheDelete.js +0 -1
  636. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_listCacheGet.js +0 -1
  637. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_listCacheHas.js +0 -1
  638. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_listCacheSet.js +0 -1
  639. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_mapCacheClear.js +0 -1
  640. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_mapCacheDelete.js +0 -1
  641. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_mapCacheGet.js +0 -1
  642. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_mapCacheHas.js +0 -1
  643. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_mapCacheSet.js +0 -1
  644. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_memoizeCapped.js +0 -1
  645. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_nativeCreate.js +0 -1
  646. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_objectToString.js +0 -1
  647. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_root.js +0 -1
  648. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_stringToPath.js +0 -1
  649. package/build/ext/@ikas/fe-api-client/build/ext/lodash/_toSource.js +0 -1
  650. package/build/ext/@ikas/fe-api-client/build/ext/lodash/eq.js +0 -1
  651. package/build/ext/@ikas/fe-api-client/build/ext/lodash/isFunction.js +0 -1
  652. package/build/ext/@ikas/fe-api-client/build/ext/lodash/isObject.js +0 -1
  653. package/build/ext/@ikas/fe-api-client/build/ext/lodash/memoize.js +0 -1
  654. package/build/ext/@ikas/fe-api-client/build/utils/api.js +0 -1
  655. package/build/ext/@stripe/react-stripe-js/dist/react-stripe.umd.js +0 -1
  656. package/build/ext/@stripe/stripe-js/dist/stripe.esm.js +0 -1
  657. package/build/ext/axios/index.js +0 -1
  658. package/build/ext/axios/lib/adapters/xhr.js +0 -1
  659. package/build/ext/axios/lib/axios.js +0 -1
  660. package/build/ext/axios/lib/cancel/Cancel.js +0 -1
  661. package/build/ext/axios/lib/cancel/CancelToken.js +0 -1
  662. package/build/ext/axios/lib/cancel/isCancel.js +0 -1
  663. package/build/ext/axios/lib/core/Axios.js +0 -1
  664. package/build/ext/axios/lib/core/InterceptorManager.js +0 -1
  665. package/build/ext/axios/lib/core/buildFullPath.js +0 -1
  666. package/build/ext/axios/lib/core/createError.js +0 -1
  667. package/build/ext/axios/lib/core/dispatchRequest.js +0 -1
  668. package/build/ext/axios/lib/core/enhanceError.js +0 -1
  669. package/build/ext/axios/lib/core/mergeConfig.js +0 -1
  670. package/build/ext/axios/lib/core/settle.js +0 -1
  671. package/build/ext/axios/lib/core/transformData.js +0 -1
  672. package/build/ext/axios/lib/defaults/index.js +0 -1
  673. package/build/ext/axios/lib/defaults/transitional.js +0 -1
  674. package/build/ext/axios/lib/env/data.js +0 -1
  675. package/build/ext/axios/lib/helpers/bind.js +0 -1
  676. package/build/ext/axios/lib/helpers/buildURL.js +0 -1
  677. package/build/ext/axios/lib/helpers/combineURLs.js +0 -1
  678. package/build/ext/axios/lib/helpers/cookies.js +0 -1
  679. package/build/ext/axios/lib/helpers/isAbsoluteURL.js +0 -1
  680. package/build/ext/axios/lib/helpers/isAxiosError.js +0 -1
  681. package/build/ext/axios/lib/helpers/isURLSameOrigin.js +0 -1
  682. package/build/ext/axios/lib/helpers/normalizeHeaderName.js +0 -1
  683. package/build/ext/axios/lib/helpers/parseHeaders.js +0 -1
  684. package/build/ext/axios/lib/helpers/spread.js +0 -1
  685. package/build/ext/axios/lib/helpers/validator.js +0 -1
  686. package/build/ext/axios/lib/utils.js +0 -1
  687. package/build/ext/decode-uri-component/index.js +0 -1
  688. package/build/ext/filter-obj/index.js +0 -1
  689. package/build/ext/libphonenumber-js/es6/AsYouType.js +0 -1
  690. package/build/ext/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js +0 -1
  691. package/build/ext/libphonenumber-js/es6/AsYouTypeFormatter.complete.js +0 -1
  692. package/build/ext/libphonenumber-js/es6/AsYouTypeFormatter.js +0 -1
  693. package/build/ext/libphonenumber-js/es6/AsYouTypeFormatter.util.js +0 -1
  694. package/build/ext/libphonenumber-js/es6/AsYouTypeParser.js +0 -1
  695. package/build/ext/libphonenumber-js/es6/AsYouTypeState.js +0 -1
  696. package/build/ext/libphonenumber-js/es6/ParseError.js +0 -1
  697. package/build/ext/libphonenumber-js/es6/PhoneNumber.js +0 -1
  698. package/build/ext/libphonenumber-js/es6/PhoneNumberMatcher.js +0 -1
  699. package/build/ext/libphonenumber-js/es6/constants.js +0 -1
  700. package/build/ext/libphonenumber-js/es6/findNumbers/LRUCache.js +0 -1
  701. package/build/ext/libphonenumber-js/es6/findNumbers/Leniency.js +0 -1
  702. package/build/ext/libphonenumber-js/es6/findNumbers/RegExpCache.js +0 -1
  703. package/build/ext/libphonenumber-js/es6/findNumbers/isValidCandidate.js +0 -1
  704. package/build/ext/libphonenumber-js/es6/findNumbers/isValidPreCandidate.js +0 -1
  705. package/build/ext/libphonenumber-js/es6/findNumbers/parsePreCandidate.js +0 -1
  706. package/build/ext/libphonenumber-js/es6/findNumbers/utf-8.js +0 -1
  707. package/build/ext/libphonenumber-js/es6/findNumbers/util.js +0 -1
  708. package/build/ext/libphonenumber-js/es6/findPhoneNumbers_.js +0 -1
  709. package/build/ext/libphonenumber-js/es6/formatIncompletePhoneNumber.js +0 -1
  710. package/build/ext/libphonenumber-js/es6/format_.js +0 -1
  711. package/build/ext/libphonenumber-js/es6/getCountries.js +0 -1
  712. package/build/ext/libphonenumber-js/es6/helpers/RFC3966.js +0 -1
  713. package/build/ext/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js +0 -1
  714. package/build/ext/libphonenumber-js/es6/helpers/checkNumberLength.js +0 -1
  715. package/build/ext/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js +0 -1
  716. package/build/ext/libphonenumber-js/es6/helpers/extension/extractExtension.js +0 -1
  717. package/build/ext/libphonenumber-js/es6/helpers/extractCountryCallingCode.js +0 -1
  718. package/build/ext/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js +0 -1
  719. package/build/ext/libphonenumber-js/es6/helpers/extractNationalNumber.js +0 -1
  720. package/build/ext/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js +0 -1
  721. package/build/ext/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js +0 -1
  722. package/build/ext/libphonenumber-js/es6/helpers/getCountryByCallingCode.js +0 -1
  723. package/build/ext/libphonenumber-js/es6/helpers/getIddPrefix.js +0 -1
  724. package/build/ext/libphonenumber-js/es6/helpers/getNumberType.js +0 -1
  725. package/build/ext/libphonenumber-js/es6/helpers/isViablePhoneNumber.js +0 -1
  726. package/build/ext/libphonenumber-js/es6/helpers/matchesEntirely.js +0 -1
  727. package/build/ext/libphonenumber-js/es6/helpers/mergeArrays.js +0 -1
  728. package/build/ext/libphonenumber-js/es6/helpers/parseDigits.js +0 -1
  729. package/build/ext/libphonenumber-js/es6/helpers/stripIddPrefix.js +0 -1
  730. package/build/ext/libphonenumber-js/es6/isPossibleNumber_.js +0 -1
  731. package/build/ext/libphonenumber-js/es6/metadata.js +0 -1
  732. package/build/ext/libphonenumber-js/es6/parseIncompletePhoneNumber.js +0 -1
  733. package/build/ext/libphonenumber-js/es6/parsePhoneNumber.js +0 -1
  734. package/build/ext/libphonenumber-js/es6/parsePhoneNumberFromString.js +0 -1
  735. package/build/ext/libphonenumber-js/es6/parsePhoneNumberFromString_.js +0 -1
  736. package/build/ext/libphonenumber-js/es6/parsePhoneNumber_.js +0 -1
  737. package/build/ext/libphonenumber-js/es6/parse_.js +0 -1
  738. package/build/ext/libphonenumber-js/es6/tools/semver-compare.js +0 -1
  739. package/build/ext/libphonenumber-js/es6/validate_.js +0 -1
  740. package/build/ext/libphonenumber-js/index.es6.exports/PhoneNumberSearch.js +0 -1
  741. package/build/ext/libphonenumber-js/metadata.min.json.js +0 -1
  742. package/build/ext/libphonenumber-js/min/exports/AsYouType.js +0 -1
  743. package/build/ext/libphonenumber-js/min/exports/Metadata.js +0 -1
  744. package/build/ext/libphonenumber-js/min/exports/PhoneNumberMatcher.js +0 -1
  745. package/build/ext/libphonenumber-js/min/exports/formatIncompletePhoneNumber.js +0 -1
  746. package/build/ext/libphonenumber-js/min/exports/getCountries.js +0 -1
  747. package/build/ext/libphonenumber-js/min/exports/getCountryCallingCode.js +0 -1
  748. package/build/ext/libphonenumber-js/min/exports/parsePhoneNumberFromString.js +0 -1
  749. package/build/ext/libphonenumber-js/min/exports/withMetadataArgument.js +0 -1
  750. package/build/ext/object-assign/index.js +0 -6
  751. package/build/ext/prop-types/checkPropTypes.js +0 -1
  752. package/build/ext/prop-types/factoryWithThrowingShims.js +0 -1
  753. package/build/ext/prop-types/factoryWithTypeCheckers.js +0 -1
  754. package/build/ext/prop-types/index.js +0 -1
  755. package/build/ext/prop-types/lib/ReactPropTypesSecret.js +0 -1
  756. package/build/ext/prop-types/lib/has.js +0 -1
  757. package/build/ext/query-string/index.js +0 -1
  758. package/build/ext/react-is/cjs/react-is.development.js +0 -9
  759. package/build/ext/react-is/cjs/react-is.production.min.js +0 -9
  760. package/build/ext/react-is/index.js +0 -1
  761. package/build/ext/react-tooltip/dist/index.es.js +0 -1
  762. package/build/ext/split-on-first/index.js +0 -1
  763. package/build/ext/strict-uri-encode/index.js +0 -1
  764. package/build/ext/style-inject/dist/style-inject.es.js +0 -1
  765. package/build/ext/tslib/tslib.es6.js +0 -1
  766. package/build/ext/uuid/dist/esm-browser/bytesToUuid.js +0 -1
  767. package/build/ext/uuid/dist/esm-browser/md5.js +0 -1
  768. package/build/ext/uuid/dist/esm-browser/rng.js +0 -1
  769. package/build/ext/uuid/dist/esm-browser/sha1.js +0 -1
  770. package/build/ext/uuid/dist/esm-browser/v3.js +0 -1
  771. package/build/ext/uuid/dist/esm-browser/v35.js +0 -1
  772. package/build/ext/uuid/dist/esm-browser/v4.js +0 -1
  773. package/build/ext/uuid/dist/esm-browser/v5.js +0 -1
  774. package/build/index.d.ts +0 -6
  775. package/build/index.js +0 -1
  776. package/build/models/data/base/index.d.ts +0 -8
  777. package/build/models/data/base/index.js +0 -1
  778. package/build/models/data/blog/category/index.d.ts +0 -12
  779. package/build/models/data/blog/category/index.js +0 -1
  780. package/build/models/data/blog/content/index.d.ts +0 -6
  781. package/build/models/data/blog/content/index.js +0 -1
  782. package/build/models/data/blog/index.d.ts +0 -27
  783. package/build/models/data/blog/index.js +0 -1
  784. package/build/models/data/blog/meta-data/index.d.ts +0 -16
  785. package/build/models/data/blog/meta-data/index.js +0 -1
  786. package/build/models/data/blog/tag/index.d.ts +0 -6
  787. package/build/models/data/blog/tag/index.js +0 -1
  788. package/build/models/data/blog/writer/index.d.ts +0 -6
  789. package/build/models/data/blog/writer/index.js +0 -1
  790. package/build/models/data/brand/index.d.ts +0 -26
  791. package/build/models/data/brand/index.js +0 -1
  792. package/build/models/data/brand/translation/index.d.ts +0 -7
  793. package/build/models/data/brand/translation/index.js +0 -1
  794. package/build/models/data/campaign-offer/index.d.ts +0 -21
  795. package/build/models/data/campaign-offer/index.js +0 -1
  796. package/build/models/data/campaign-offer/product/index.d.ts +0 -24
  797. package/build/models/data/campaign-offer/product/index.js +0 -1
  798. package/build/models/data/cart/available-shipping-method/index.d.ts +0 -10
  799. package/build/models/data/cart/available-shipping-method/index.js +0 -1
  800. package/build/models/data/cart/campaign-offer/index.d.ts +0 -16
  801. package/build/models/data/cart/campaign-offer/index.js +0 -1
  802. package/build/models/data/cart/index.d.ts +0 -13
  803. package/build/models/data/cart/index.js +0 -1
  804. package/build/models/data/category/index.d.ts +0 -22
  805. package/build/models/data/category/index.js +0 -1
  806. package/build/models/data/category/path-item/index.d.ts +0 -14
  807. package/build/models/data/category/path-item/index.js +0 -1
  808. package/build/models/data/category/translations/index.d.ts +0 -7
  809. package/build/models/data/category/translations/index.js +0 -1
  810. package/build/models/data/checkout/index.d.ts +0 -22
  811. package/build/models/data/checkout/index.js +0 -1
  812. package/build/models/data/checkout-settings/index.d.ts +0 -20
  813. package/build/models/data/checkout-settings/index.js +0 -1
  814. package/build/models/data/checkout-settings/option/index.d.ts +0 -6
  815. package/build/models/data/checkout-settings/option/index.js +0 -1
  816. package/build/models/data/checkout-settings/price/index.d.ts +0 -7
  817. package/build/models/data/checkout-settings/price/index.js +0 -1
  818. package/build/models/data/city/index.d.ts +0 -12
  819. package/build/models/data/city/index.js +0 -1
  820. package/build/models/data/contact-form/index.d.ts +0 -9
  821. package/build/models/data/contact-form/index.js +0 -1
  822. package/build/models/data/country/index.d.ts +0 -18
  823. package/build/models/data/country/index.js +0 -1
  824. package/build/models/data/country/location-translations/index.d.ts +0 -7
  825. package/build/models/data/customer/address/city/index.d.ts +0 -7
  826. package/build/models/data/customer/address/city/index.js +0 -1
  827. package/build/models/data/customer/address/country/index.d.ts +0 -9
  828. package/build/models/data/customer/address/country/index.js +0 -1
  829. package/build/models/data/customer/address/district/index.d.ts +0 -7
  830. package/build/models/data/customer/address/district/index.js +0 -1
  831. package/build/models/data/customer/address/index.d.ts +0 -40
  832. package/build/models/data/customer/address/index.js +0 -1
  833. package/build/models/data/customer/address/state/index.d.ts +0 -7
  834. package/build/models/data/customer/address/state/index.js +0 -1
  835. package/build/models/data/customer/attribute/index.d.ts +0 -17
  836. package/build/models/data/customer/attribute/index.js +0 -1
  837. package/build/models/data/customer/attribute/option/index.d.ts +0 -9
  838. package/build/models/data/customer/attribute/option/index.js +0 -1
  839. package/build/models/data/customer/attribute/sales-channel/index.d.ts +0 -8
  840. package/build/models/data/customer/attribute/sales-channel/index.js +0 -1
  841. package/build/models/data/customer/attribute/translation/index.d.ts +0 -9
  842. package/build/models/data/customer/attribute/translation/index.js +0 -1
  843. package/build/models/data/customer/attribute/translation/option/index.d.ts +0 -6
  844. package/build/models/data/customer/attribute/translation/option/index.js +0 -1
  845. package/build/models/data/customer/attribute/value/index.d.ts +0 -11
  846. package/build/models/data/customer/attribute/value/index.js +0 -1
  847. package/build/models/data/customer/index.d.ts +0 -38
  848. package/build/models/data/customer/index.js +0 -1
  849. package/build/models/data/customer/review/index.d.ts +0 -22
  850. package/build/models/data/customer/review/index.js +0 -1
  851. package/build/models/data/customer/review/settings/index.d.ts +0 -6
  852. package/build/models/data/customer/review/settings/index.js +0 -1
  853. package/build/models/data/customer/review/summary/index.d.ts +0 -10
  854. package/build/models/data/customer/review/summary/index.js +0 -1
  855. package/build/models/data/customer/review/summary/star/index.d.ts +0 -6
  856. package/build/models/data/customer/review/summary/star/index.js +0 -1
  857. package/build/models/data/district/index.d.ts +0 -12
  858. package/build/models/data/district/index.js +0 -1
  859. package/build/models/data/favorite-product/index.d.ts +0 -7
  860. package/build/models/data/favorite-product/index.js +0 -1
  861. package/build/models/data/filter-category/index.d.ts +0 -12
  862. package/build/models/data/filter-category/index.js +0 -1
  863. package/build/models/data/html-meta-data/index.d.ts +0 -28
  864. package/build/models/data/html-meta-data/index.js +0 -1
  865. package/build/models/data/html-meta-data/translations/index.d.ts +0 -7
  866. package/build/models/data/html-meta-data/translations/index.js +0 -1
  867. package/build/models/data/image/index.d.ts +0 -9
  868. package/build/models/data/image/index.js +0 -1
  869. package/build/models/data/index.d.ts +0 -136
  870. package/build/models/data/last-viewed-product/index.d.ts +0 -6
  871. package/build/models/data/last-viewed-product/index.js +0 -1
  872. package/build/models/data/merchant-settings/index.d.ts +0 -12
  873. package/build/models/data/merchant-settings/index.js +0 -1
  874. package/build/models/data/order/address/city/index.d.ts +0 -7
  875. package/build/models/data/order/address/city/index.js +0 -1
  876. package/build/models/data/order/address/country/index.d.ts +0 -9
  877. package/build/models/data/order/address/country/index.js +0 -1
  878. package/build/models/data/order/address/district/index.d.ts +0 -7
  879. package/build/models/data/order/address/district/index.js +0 -1
  880. package/build/models/data/order/address/index.d.ts +0 -37
  881. package/build/models/data/order/address/index.js +0 -1
  882. package/build/models/data/order/address/state/index.d.ts +0 -7
  883. package/build/models/data/order/address/state/index.js +0 -1
  884. package/build/models/data/order/adjustment/applied-order-line/index.d.ts +0 -8
  885. package/build/models/data/order/adjustment/applied-order-line/index.js +0 -1
  886. package/build/models/data/order/adjustment/index.d.ts +0 -15
  887. package/build/models/data/order/adjustment/index.js +0 -1
  888. package/build/models/data/order/customer/index.d.ts +0 -11
  889. package/build/models/data/order/customer/index.js +0 -1
  890. package/build/models/data/order/gift-line/index.d.ts +0 -6
  891. package/build/models/data/order/gift-line/index.js +0 -1
  892. package/build/models/data/order/index.d.ts +0 -67
  893. package/build/models/data/order/index.js +0 -1
  894. package/build/models/data/order/invoice/index.d.ts +0 -12
  895. package/build/models/data/order/invoice/index.js +0 -1
  896. package/build/models/data/order/line-item/base-unit/index.d.ts +0 -9
  897. package/build/models/data/order/line-item/base-unit/index.js +0 -1
  898. package/build/models/data/order/line-item/base-unit/unit-type/index.d.ts +0 -6
  899. package/build/models/data/order/line-item/base-unit/unit-type/index.js +0 -1
  900. package/build/models/data/order/line-item/discount/index.d.ts +0 -11
  901. package/build/models/data/order/line-item/discount/index.js +0 -1
  902. package/build/models/data/order/line-item/index.d.ts +0 -45
  903. package/build/models/data/order/line-item/index.js +0 -1
  904. package/build/models/data/order/line-item/option/index.d.ts +0 -10
  905. package/build/models/data/order/line-item/option/index.js +0 -1
  906. package/build/models/data/order/line-item/option/value/index.d.ts +0 -7
  907. package/build/models/data/order/line-item/option/value/index.js +0 -1
  908. package/build/models/data/order/line-item/variant/brand/index.d.ts +0 -6
  909. package/build/models/data/order/line-item/variant/brand/index.js +0 -1
  910. package/build/models/data/order/line-item/variant/category/index.d.ts +0 -12
  911. package/build/models/data/order/line-item/variant/category/index.js +0 -1
  912. package/build/models/data/order/line-item/variant/index.d.ts +0 -30
  913. package/build/models/data/order/line-item/variant/index.js +0 -1
  914. package/build/models/data/order/line-item/variant/price/index.d.ts +0 -10
  915. package/build/models/data/order/line-item/variant/price/index.js +0 -1
  916. package/build/models/data/order/line-item/variant/unit/index.d.ts +0 -6
  917. package/build/models/data/order/line-item/variant/unit/index.js +0 -1
  918. package/build/models/data/order/line-item/variant/value/index.d.ts +0 -11
  919. package/build/models/data/order/line-item/variant/value/index.js +0 -1
  920. package/build/models/data/order/package/index.d.ts +0 -14
  921. package/build/models/data/order/package/index.js +0 -1
  922. package/build/models/data/order/package/tracking-info/index.d.ts +0 -9
  923. package/build/models/data/order/package/tracking-info/index.js +0 -1
  924. package/build/models/data/order/payment-method/index.d.ts +0 -9
  925. package/build/models/data/order/payment-method/index.js +0 -1
  926. package/build/models/data/order/refund/index.d.ts +0 -7
  927. package/build/models/data/order/refund/index.js +0 -1
  928. package/build/models/data/order/refund/line-item/index.d.ts +0 -6
  929. package/build/models/data/order/refund/line-item/index.js +0 -1
  930. package/build/models/data/order/refund/settings/index.d.ts +0 -7
  931. package/build/models/data/order/refund/settings/index.js +0 -1
  932. package/build/models/data/order/shipping-line/index.d.ts +0 -12
  933. package/build/models/data/order/shipping-line/index.js +0 -1
  934. package/build/models/data/order/tax-line/index.d.ts +0 -6
  935. package/build/models/data/order/tax-line/index.js +0 -1
  936. package/build/models/data/order/transaction/error/index.d.ts +0 -7
  937. package/build/models/data/order/transaction/error/index.js +0 -1
  938. package/build/models/data/order/transaction/index.d.ts +0 -25
  939. package/build/models/data/order/transaction/index.js +0 -1
  940. package/build/models/data/order/transaction/payment-method-detail/index.d.ts +0 -13
  941. package/build/models/data/order/transaction/payment-method-detail/index.js +0 -1
  942. package/build/models/data/order/transaction/payment-method-detail/installment-price/index.d.ts +0 -9
  943. package/build/models/data/order/transaction/payment-method-detail/installment-price/index.js +0 -1
  944. package/build/models/data/payment-gateway/additional-price/index.d.ts +0 -9
  945. package/build/models/data/payment-gateway/additional-price/index.js +0 -1
  946. package/build/models/data/payment-gateway/index.d.ts +0 -31
  947. package/build/models/data/payment-gateway/index.js +0 -1
  948. package/build/models/data/payment-gateway/settings/index.d.ts +0 -10
  949. package/build/models/data/payment-gateway/settings/index.js +0 -1
  950. package/build/models/data/payment-gateway/translation/index.d.ts +0 -7
  951. package/build/models/data/payment-gateway/translation/index.js +0 -1
  952. package/build/models/data/product/attribute/index.d.ts +0 -15
  953. package/build/models/data/product/attribute/index.js +0 -1
  954. package/build/models/data/product/attribute/option/index.d.ts +0 -6
  955. package/build/models/data/product/attribute/option/index.js +0 -1
  956. package/build/models/data/product/attribute/table-cell/index.d.ts +0 -6
  957. package/build/models/data/product/attribute/table-cell/index.js +0 -1
  958. package/build/models/data/product/attribute/table-template/index.d.ts +0 -7
  959. package/build/models/data/product/attribute/table-template/index.js +0 -1
  960. package/build/models/data/product/attribute/translation/index.d.ts +0 -13
  961. package/build/models/data/product/attribute/translation/index.js +0 -1
  962. package/build/models/data/product/attribute-value/index.d.ts +0 -28
  963. package/build/models/data/product/attribute-value/index.js +0 -1
  964. package/build/models/data/product/back-in-stock-settings/index.d.ts +0 -5
  965. package/build/models/data/product/back-in-stock-settings/index.js +0 -1
  966. package/build/models/data/product/base-unit/index.d.ts +0 -12
  967. package/build/models/data/product/base-unit/index.js +0 -1
  968. package/build/models/data/product/campaign/data/index.d.ts +0 -27
  969. package/build/models/data/product/campaign/data/index.js +0 -1
  970. package/build/models/data/product/campaign/filter/index.d.ts +0 -7
  971. package/build/models/data/product/campaign/filter/index.js +0 -1
  972. package/build/models/data/product/campaign/index.d.ts +0 -7
  973. package/build/models/data/product/campaign/index.js +0 -1
  974. package/build/models/data/product/campaign/product-buyx-then-gety/index.d.ts +0 -20
  975. package/build/models/data/product/campaign/product-buyx-then-gety/index.js +0 -1
  976. package/build/models/data/product/campaign/product-campaign-date-range-field/index.d.ts +0 -6
  977. package/build/models/data/product/campaign/product-campaign-date-range-field/index.js +0 -1
  978. package/build/models/data/product/campaign/product-fixed-discount/index.d.ts +0 -14
  979. package/build/models/data/product/campaign/product-fixed-discount/index.js +0 -1
  980. package/build/models/data/product/filter/index.d.ts +0 -84
  981. package/build/models/data/product/filter/index.js +0 -1
  982. package/build/models/data/product/image/index.d.ts +0 -10
  983. package/build/models/data/product/image/index.js +0 -1
  984. package/build/models/data/product/index.d.ts +0 -62
  985. package/build/models/data/product/index.js +0 -1
  986. package/build/models/data/product/option-set/index.d.ts +0 -29
  987. package/build/models/data/product/option-set/index.js +0 -1
  988. package/build/models/data/product/option-set/option/index.d.ts +0 -72
  989. package/build/models/data/product/option-set/option/index.js +0 -1
  990. package/build/models/data/product/tag/index.d.ts +0 -6
  991. package/build/models/data/product/tag/index.js +0 -1
  992. package/build/models/data/product/variant/index.d.ts +0 -31
  993. package/build/models/data/product/variant/index.js +0 -1
  994. package/build/models/data/product/variant/price/index.d.ts +0 -19
  995. package/build/models/data/product/variant/price/index.js +0 -1
  996. package/build/models/data/product/variant/unit/index.d.ts +0 -6
  997. package/build/models/data/product/variant/unit/index.js +0 -1
  998. package/build/models/data/product/variant-type/index.d.ts +0 -8
  999. package/build/models/data/product/variant-type/index.js +0 -1
  1000. package/build/models/data/product/variant-type/init.d.ts +0 -2
  1001. package/build/models/data/raffle/index.d.ts +0 -63
  1002. package/build/models/data/raffle/index.js +0 -1
  1003. package/build/models/data/sales-channel/index.d.ts +0 -19
  1004. package/build/models/data/sales-channel/index.js +0 -1
  1005. package/build/models/data/state/index.d.ts +0 -8
  1006. package/build/models/data/state/index.js +0 -1
  1007. package/build/models/data/stock-location/address/city/index.d.ts +0 -7
  1008. package/build/models/data/stock-location/address/city/index.js +0 -1
  1009. package/build/models/data/stock-location/address/country/index.d.ts +0 -7
  1010. package/build/models/data/stock-location/address/country/index.js +0 -1
  1011. package/build/models/data/stock-location/address/district/index.d.ts +0 -7
  1012. package/build/models/data/stock-location/address/district/index.js +0 -1
  1013. package/build/models/data/stock-location/address/index.d.ts +0 -15
  1014. package/build/models/data/stock-location/address/index.js +0 -1
  1015. package/build/models/data/stock-location/address/state/index.d.ts +0 -7
  1016. package/build/models/data/stock-location/address/state/index.js +0 -1
  1017. package/build/models/data/stock-location/available/index.d.ts +0 -10
  1018. package/build/models/data/stock-location/available/index.js +0 -1
  1019. package/build/models/data/stock-location/index.d.ts +0 -14
  1020. package/build/models/data/stock-location/index.js +0 -1
  1021. package/build/models/data/storefront/domain/index.d.ts +0 -9
  1022. package/build/models/data/storefront/domain/index.js +0 -1
  1023. package/build/models/data/storefront/index.d.ts +0 -27
  1024. package/build/models/data/storefront/index.js +0 -1
  1025. package/build/models/data/storefront/localization/index.d.ts +0 -8
  1026. package/build/models/data/storefront/localization/index.js +0 -1
  1027. package/build/models/data/storefront/routing/dynamic-currency/index.d.ts +0 -6
  1028. package/build/models/data/storefront/routing/dynamic-currency/index.js +0 -1
  1029. package/build/models/data/storefront/routing/index.d.ts +0 -14
  1030. package/build/models/data/storefront/routing/index.js +0 -1
  1031. package/build/models/data/storefront/theme/index.d.ts +0 -10
  1032. package/build/models/data/storefront/theme/index.js +0 -1
  1033. package/build/models/data/storefront/theme-localization/index.d.ts +0 -13
  1034. package/build/models/data/storefront/theme-localization/index.js +0 -1
  1035. package/build/models/data/theme-json/component/index.d.ts +0 -20
  1036. package/build/models/data/theme-json/component/index.js +0 -1
  1037. package/build/models/data/theme-json/component/prop/index.d.ts +0 -26
  1038. package/build/models/data/theme-json/component/prop/index.js +0 -1
  1039. package/build/models/data/theme-json/custom-data/index.d.ts +0 -43
  1040. package/build/models/data/theme-json/custom-data/index.js +0 -1
  1041. package/build/models/data/theme-json/index.d.ts +0 -16
  1042. package/build/models/data/theme-json/index.js +0 -1
  1043. package/build/models/data/theme-json/page/component/index.d.ts +0 -7
  1044. package/build/models/data/theme-json/page/component/index.js +0 -1
  1045. package/build/models/data/theme-json/page/index.d.ts +0 -21
  1046. package/build/models/data/theme-json/page/index.js +0 -1
  1047. package/build/models/data/theme-json/settings/color/index.d.ts +0 -15
  1048. package/build/models/data/theme-json/settings/color/index.js +0 -1
  1049. package/build/models/data/theme-json/settings/favicon/index.d.ts +0 -5
  1050. package/build/models/data/theme-json/settings/favicon/index.js +0 -1
  1051. package/build/models/data/theme-json/settings/font-family/index.d.ts +0 -6
  1052. package/build/models/data/theme-json/settings/font-family/index.js +0 -1
  1053. package/build/models/data/theme-json/settings/index.d.ts +0 -13
  1054. package/build/models/data/theme-json/settings/index.js +0 -1
  1055. package/build/models/data/variant-type/index.d.ts +0 -13
  1056. package/build/models/data/variant-type/index.js +0 -1
  1057. package/build/models/data/variant-type/variant-value/index.d.ts +0 -12
  1058. package/build/models/data/variant-type/variant-value/index.js +0 -1
  1059. package/build/models/index.d.ts +0 -2
  1060. package/build/models/ui/blog-category-list/index.d.ts +0 -51
  1061. package/build/models/ui/blog-category-list/index.js +0 -1
  1062. package/build/models/ui/blog-list/index.d.ts +0 -55
  1063. package/build/models/ui/blog-list/index.js +0 -1
  1064. package/build/models/ui/brand-list/index.d.ts +0 -61
  1065. package/build/models/ui/brand-list/index.js +0 -1
  1066. package/build/models/ui/category-list/index.d.ts +0 -61
  1067. package/build/models/ui/category-list/index.js +0 -1
  1068. package/build/models/ui/component-renderer/index.d.ts +0 -7
  1069. package/build/models/ui/component-renderer/index.js +0 -1
  1070. package/build/models/ui/customer-review-list/index.d.ts +0 -43
  1071. package/build/models/ui/customer-review-list/index.js +0 -1
  1072. package/build/models/ui/customer-review-summary-list/index.d.ts +0 -43
  1073. package/build/models/ui/customer-review-summary-list/index.js +0 -1
  1074. package/build/models/ui/index.d.ts +0 -25
  1075. package/build/models/ui/navigation-link/index.d.ts +0 -8
  1076. package/build/models/ui/navigation-link/index.js +0 -1
  1077. package/build/models/ui/product-attribute-detail/index.d.ts +0 -8
  1078. package/build/models/ui/product-attribute-detail/index.js +0 -1
  1079. package/build/models/ui/product-attribute-list/index.d.ts +0 -8
  1080. package/build/models/ui/product-attribute-list/index.js +0 -1
  1081. package/build/models/ui/product-list/index.d.ts +0 -137
  1082. package/build/models/ui/product-list/index.js +0 -1
  1083. package/build/models/ui/raffle-list/index.d.ts +0 -53
  1084. package/build/models/ui/raffle-list/index.js +0 -1
  1085. package/build/models/ui/validator/form/account-info.d.ts +0 -39
  1086. package/build/models/ui/validator/form/account-info.js +0 -1
  1087. package/build/models/ui/validator/form/address.d.ts +0 -75
  1088. package/build/models/ui/validator/form/address.js +0 -1
  1089. package/build/models/ui/validator/form/contact-form.d.ts +0 -42
  1090. package/build/models/ui/validator/form/contact-form.js +0 -1
  1091. package/build/models/ui/validator/form/customer-review.d.ts +0 -34
  1092. package/build/models/ui/validator/form/customer-review.js +0 -1
  1093. package/build/models/ui/validator/form/forgot-password.d.ts +0 -26
  1094. package/build/models/ui/validator/form/forgot-password.js +0 -1
  1095. package/build/models/ui/validator/form/login.d.ts +0 -32
  1096. package/build/models/ui/validator/form/login.js +0 -1
  1097. package/build/models/ui/validator/form/raffle-form.d.ts +0 -62
  1098. package/build/models/ui/validator/form/raffle-form.js +0 -1
  1099. package/build/models/ui/validator/form/recover-password.d.ts +0 -33
  1100. package/build/models/ui/validator/form/recover-password.js +0 -1
  1101. package/build/models/ui/validator/form/register.d.ts +0 -49
  1102. package/build/models/ui/validator/form/register.js +0 -1
  1103. package/build/models/ui/validator/index.d.ts +0 -27
  1104. package/build/models/ui/validator/index.js +0 -1
  1105. package/build/models/ui/validator/rules/index.d.ts +0 -101
  1106. package/build/models/ui/validator/rules/index.js +0 -1
  1107. package/build/page-data-init/index.d.ts +0 -39
  1108. package/build/page-data-init/index.js +0 -1
  1109. package/build/pages/404.d.ts +0 -4
  1110. package/build/pages/404.js +0 -1
  1111. package/build/pages/[slug]/index.d.ts +0 -4
  1112. package/build/pages/_slug_/index.js +0 -1
  1113. package/build/pages/account/addresses.d.ts +0 -4
  1114. package/build/pages/account/addresses.js +0 -1
  1115. package/build/pages/account/favorite-products.d.ts +0 -4
  1116. package/build/pages/account/favorite-products.js +0 -1
  1117. package/build/pages/account/forgot-password.d.ts +0 -4
  1118. package/build/pages/account/forgot-password.js +0 -1
  1119. package/build/pages/account/index.d.ts +0 -4
  1120. package/build/pages/account/index.js +0 -1
  1121. package/build/pages/account/login.d.ts +0 -4
  1122. package/build/pages/account/login.js +0 -1
  1123. package/build/pages/account/orders/[id].d.ts +0 -4
  1124. package/build/pages/account/orders/_id_.js +0 -1
  1125. package/build/pages/account/orders/index.d.ts +0 -4
  1126. package/build/pages/account/orders/index.js +0 -1
  1127. package/build/pages/account/raffles.d.ts +0 -4
  1128. package/build/pages/account/raffles.js +0 -1
  1129. package/build/pages/account/recover-password.d.ts +0 -4
  1130. package/build/pages/account/recover-password.js +0 -1
  1131. package/build/pages/account/register.d.ts +0 -4
  1132. package/build/pages/account/register.js +0 -1
  1133. package/build/pages/blog/[slug].d.ts +0 -4
  1134. package/build/pages/blog/_slug_.js +0 -1
  1135. package/build/pages/blog/index.d.ts +0 -4
  1136. package/build/pages/blog/index.js +0 -1
  1137. package/build/pages/cart.d.ts +0 -4
  1138. package/build/pages/cart.js +0 -1
  1139. package/build/pages/checkout.d.ts +0 -16
  1140. package/build/pages/checkout.js +0 -1
  1141. package/build/pages/editor.d.ts +0 -10
  1142. package/build/pages/editor.js +0 -1
  1143. package/build/pages/home.d.ts +0 -4
  1144. package/build/pages/home.js +0 -1
  1145. package/build/pages/index.d.ts +0 -22
  1146. package/build/pages/pages/[slug].d.ts +0 -4
  1147. package/build/pages/pages/_slug_.js +0 -1
  1148. package/build/pages/raffle/[slug].d.ts +0 -4
  1149. package/build/pages/raffle/_slug_.js +0 -1
  1150. package/build/pages/raffle/index.d.ts +0 -4
  1151. package/build/pages/raffle/index.js +0 -1
  1152. package/build/pages/search.d.ts +0 -4
  1153. package/build/pages/search.js +0 -1
  1154. package/build/store/base.d.ts +0 -44
  1155. package/build/store/base.js +0 -1
  1156. package/build/store/blog/index.d.ts +0 -26
  1157. package/build/store/blog/index.js +0 -1
  1158. package/build/store/brand/index.d.ts +0 -12
  1159. package/build/store/brand/index.js +0 -1
  1160. package/build/store/cart/api.d.ts +0 -10
  1161. package/build/store/cart/api.js +0 -1
  1162. package/build/store/cart/index.d.ts +0 -27
  1163. package/build/store/cart/index.js +0 -1
  1164. package/build/store/category/index.d.ts +0 -12
  1165. package/build/store/category/index.js +0 -1
  1166. package/build/store/checkout/index.d.ts +0 -14
  1167. package/build/store/checkout/index.js +0 -1
  1168. package/build/store/customer/api.d.ts +0 -54
  1169. package/build/store/customer/api.js +0 -1
  1170. package/build/store/customer/index.d.ts +0 -74
  1171. package/build/store/customer/index.js +0 -1
  1172. package/build/store/html-meta-data/index.d.ts +0 -6
  1173. package/build/store/html-meta-data/index.js +0 -1
  1174. package/build/store/index.d.ts +0 -3
  1175. package/build/store/location/index.d.ts +0 -9
  1176. package/build/store/location/index.js +0 -1
  1177. package/build/store/merchant/index.d.ts +0 -6
  1178. package/build/store/product/index.d.ts +0 -36
  1179. package/build/store/product/index.js +0 -1
  1180. package/build/store/raffle/index.d.ts +0 -15
  1181. package/build/store/raffle/index.js +0 -1
  1182. package/build/store/storefront/index.d.ts +0 -5
  1183. package/build/utils/constants.d.ts +0 -2
  1184. package/build/utils/constants.js +0 -1
  1185. package/build/utils/currency.d.ts +0 -7
  1186. package/build/utils/currency.js +0 -1
  1187. package/build/utils/google-fonts.d.ts +0 -2
  1188. package/build/utils/google-fonts.js +0 -1
  1189. package/build/utils/helper.d.ts +0 -4
  1190. package/build/utils/helper.js +0 -1
  1191. package/build/utils/i18n.d.ts +0 -11
  1192. package/build/utils/i18n.js +0 -1
  1193. package/build/utils/index.d.ts +0 -3
@@ -0,0 +1,1466 @@
1
+ import { makeAutoObservable } from "mobx";
2
+ import { NextRouter } from "next/router.js";
3
+ import _cloneDeep from "lodash/cloneDeep";
4
+ import _sortBy from "lodash/sortBy";
5
+
6
+ import {
7
+ IkasCustomerAddress,
8
+ IkasMerchantSettings,
9
+ IkasAvailableShippingMethod,
10
+ IkasOrderLineItem,
11
+ IkasOrderTransaction,
12
+ IkasOrderCustomer,
13
+ IkasCartCampaignOfferStatus,
14
+ IkasProduct,
15
+ IkasCartCampaignOffer,
16
+ IkasCheckout,
17
+ IkasStockLocation,
18
+ IkasAvailableStockLocation,
19
+ IkasTransactionStatus,
20
+ IkasCampaignOfferTargetPageType,
21
+ IkasCampaignOfferProduct,
22
+ } from "../../models";
23
+ import { IkasOrderAddress } from "../../models/data/order/address";
24
+ import {
25
+ IkasPaymentGateway,
26
+ IkasPaymentGatewayType,
27
+ IkasPaymentMethodType,
28
+ } from "../../models/data/payment-gateway";
29
+ import { IkasOrderLineVariant } from "../../models/data/order/line-item/variant";
30
+ import { IkasStorefront } from "../../models/data/storefront";
31
+ import CreditCardData from "./components/credit-card-form/model";
32
+ import { IkasCheckoutSettings } from "../../models/data/checkout-settings";
33
+ import { TFunction } from "../../utils/i18n";
34
+ import CustomerStoreAPI from "../../store/customer/api";
35
+ import CheckoutStore from "../../store/checkout";
36
+ import CartStoreAPI from "../../store/cart/api";
37
+ import { IkasCheckoutCustomizationProps } from ".";
38
+
39
+ import MasterPassModel from "./modelMasterPass";
40
+ import { APIResponse } from "@ikas/fe-api-client";
41
+ import ProductStoreAPI from "../../store/product";
42
+ import {
43
+ CreateStripePaymentIntentResponse,
44
+ RetrieveInstallmentInfoResponse,
45
+ TransactionResponse,
46
+ UpdateCartCampaignOfferInput,
47
+ } from "@ikas/storefront-api";
48
+ import { IkasBaseStore } from "../../store";
49
+ import { IkasStorefrontConfig } from "@ikas/storefront-config";
50
+ import { Analytics } from "../../analytics";
51
+ import {
52
+ CheckStocksLineInput,
53
+ RetrieveInstallmentInfoQueryParams,
54
+ SaveCartInput,
55
+ } from "@ikas/storefront-api";
56
+
57
+ const NUMBER_ONLY_REGEX = /^\d+$/;
58
+ const MAX_CARD_NUMBER_LENGTH = 16;
59
+ const MAX_CVC_LENGTH = 4;
60
+ const USE_DIFFERENT_ADDRESS_KEY = "sAddr";
61
+ const isServer = typeof localStorage === "undefined";
62
+
63
+ export default class CheckoutViewModel {
64
+ checkout: IkasCheckout;
65
+ checkoutSettings: IkasCheckoutSettings;
66
+ storefront?: IkasStorefront | null = null;
67
+ router: NextRouter;
68
+ isCheckoutLoaded = false;
69
+ isErrorsVisible = false;
70
+ isStepLoading = false;
71
+ isTermsAndConditionsChecked = false;
72
+ isChangingShippingMethod = false;
73
+ isContactModalVisible = false;
74
+ step: CheckoutStep = CheckoutStep.INFO;
75
+ customizationProps?: IkasCheckoutCustomizationProps | null = null;
76
+
77
+ cardData?: CreditCardData | null = null;
78
+ paymentGateways: IkasPaymentGateway[] = [];
79
+ installmentInfo?: RetrieveInstallmentInfoResponse | null = null;
80
+ useDifferentAddress = false;
81
+ shouldSaveAddress = true;
82
+ addressTitle = "";
83
+
84
+ shippingCountryIds?: string[] | null = null;
85
+ selectedShippingAddressId?: string = "-1";
86
+ selectedBillingAddressId?: string = "-1";
87
+
88
+ stockLocations: IkasStockLocation[] = [];
89
+ availableStockLocations: IkasAvailableStockLocation[] = [];
90
+ deliveryMethod: "address" | "in-store" = "address";
91
+
92
+ stripeResponse: CreateStripePaymentIntentResponse | null = null;
93
+
94
+ checkoutCampaignOffer: CampaignOfferType | undefined;
95
+ postCheckoutCampaignOffer: CampaignOfferType | undefined;
96
+
97
+ returnPolicy: string;
98
+ privacyPolicy: string;
99
+ termsOfService: string;
100
+
101
+ policyModalTitle = "";
102
+ policyModalText = "";
103
+
104
+ error?: CheckoutError | null = null;
105
+
106
+ // For success step
107
+ successTransaction?: IkasOrderTransaction;
108
+
109
+ // For MasterPass Model
110
+ mpVM: MasterPassModel;
111
+ showTestModal = false;
112
+
113
+ t: TFunction;
114
+
115
+ constructor(
116
+ checkout: IkasCheckout,
117
+ checkoutSettings: IkasCheckoutSettings,
118
+ router: NextRouter,
119
+ returnPolicy: string,
120
+ privacyPolicy: string,
121
+ termsOfService: string,
122
+ t: TFunction,
123
+ customizationProps: IkasCheckoutCustomizationProps
124
+ ) {
125
+ this.checkout = checkout;
126
+ this.checkoutSettings = checkoutSettings;
127
+ this.router = router;
128
+ this.returnPolicy = returnPolicy;
129
+ this.privacyPolicy = privacyPolicy;
130
+ this.termsOfService = termsOfService;
131
+ this.t = t;
132
+ this.customizationProps = customizationProps;
133
+ this.mpVM = new MasterPassModel();
134
+
135
+ this.isTermsAndConditionsChecked =
136
+ this.checkoutSettings.isTermsAndConditionsDefaultChecked || false;
137
+
138
+ this.init();
139
+ makeAutoObservable(this);
140
+ }
141
+
142
+ init = async () => {
143
+ await IkasBaseStore.getInstance().customerStore.waitUntilInitialized();
144
+ this.createCustomer();
145
+ this.createShippingAddress();
146
+ this.createBillingAddress();
147
+ await this.getCampaignOffer();
148
+ await this.initStep();
149
+ };
150
+
151
+ initStep = async () => {
152
+ if (IkasStorefrontConfig.getIsEditor()) {
153
+ this.step = CheckoutStep.INFO;
154
+ this.isCheckoutLoaded = true;
155
+ return;
156
+ }
157
+ const queryParams = new URLSearchParams(window.location.search);
158
+ const queryStep = queryParams.get("step");
159
+ const queryFailed = queryParams.get("failed");
160
+ const queryError = queryParams.get("error");
161
+
162
+ if (queryStep) {
163
+ this.step = queryStep as CheckoutStep;
164
+
165
+ if (this.step === CheckoutStep.SHIPPING && !this.canProceedToShipping) {
166
+ return this.changeStep(CheckoutStep.INFO);
167
+ } else if (
168
+ this.step === CheckoutStep.PAYMENT &&
169
+ !this.canProceedToPayment
170
+ ) {
171
+ if (this.isInStoreDelivery) {
172
+ this.deliveryMethod = "in-store";
173
+ } else {
174
+ return this.changeStep(CheckoutStep.INFO);
175
+ }
176
+ } else if (
177
+ ![
178
+ CheckoutStep.INFO,
179
+ CheckoutStep.SUCCESS,
180
+ CheckoutStep.SHIPPING,
181
+ CheckoutStep.PAYMENT,
182
+ ].includes(this.step)
183
+ ) {
184
+ return this.changeStep(CheckoutStep.INFO);
185
+ }
186
+ }
187
+
188
+ if (queryFailed) {
189
+ this.error = {
190
+ type: ErrorType.PAYMENT_ERROR,
191
+ data: queryError || null,
192
+ };
193
+ }
194
+
195
+ if (this.step === CheckoutStep.INFO) {
196
+ await this.getShippingCountries();
197
+ this.checkShippingCountries();
198
+ await this.getStockLocations();
199
+ await this.getAvailableStockLocations();
200
+ if (this.isInStoreDelivery) {
201
+ this.deliveryMethod = "in-store";
202
+ }
203
+ }
204
+
205
+ // Skip shipping if there is only 1 shipping method
206
+ if (
207
+ this.step === CheckoutStep.SHIPPING &&
208
+ this.checkout.availableShippingMethods?.length === 1 &&
209
+ !this.checkoutSettings.isGiftPackageEnabled
210
+ ) {
211
+ this.step = CheckoutStep.PAYMENT;
212
+ this.router.replace(
213
+ `/checkout?id=${this.checkout.id}&step=${this.step}`,
214
+ undefined,
215
+ {
216
+ shallow: true,
217
+ }
218
+ );
219
+ }
220
+
221
+ // Check if there are available shipping methods for the shipping address
222
+ if (
223
+ this.step === CheckoutStep.SHIPPING &&
224
+ !this.checkout.availableShippingMethods?.length
225
+ ) {
226
+ this.error = {
227
+ type: ErrorType.NO_SHIPPING_ERROR,
228
+ };
229
+ this.isCheckoutLoaded = true;
230
+ return;
231
+ }
232
+
233
+ if (
234
+ this.step === CheckoutStep.PAYMENT ||
235
+ this.step === CheckoutStep.SUCCESS
236
+ ) {
237
+ await this.listPaymentGateways();
238
+ if (this.isInStoreDelivery) {
239
+ this.deliveryMethod = "in-store";
240
+ await this.getStockLocations();
241
+ }
242
+
243
+ if (!this.paymentGateways.length) {
244
+ this.error = {
245
+ type: ErrorType.NO_SHIPPING_ERROR,
246
+ };
247
+ this.isCheckoutLoaded = true;
248
+ return;
249
+ }
250
+ }
251
+
252
+ if (this.step === CheckoutStep.PAYMENT) {
253
+ if (this.isInStoreDelivery) {
254
+ this.checkout.billingAddress = new IkasOrderAddress();
255
+ }
256
+ }
257
+
258
+ if (this.step !== CheckoutStep.SUCCESS) {
259
+ if (this.checkout.isComplete) {
260
+ return this.changeStep(CheckoutStep.SUCCESS);
261
+ } else {
262
+ await this.initialStockCheck();
263
+ }
264
+ } else {
265
+ await this.getSuccessTransaction();
266
+
267
+ if (this.successTransaction) {
268
+ const paymentGatewayId = this.successTransaction.paymentGatewayId;
269
+ this.checkout.selectedPaymentGateway = this.paymentGateways.find(
270
+ (pg) => pg.id === paymentGatewayId
271
+ );
272
+ }
273
+ }
274
+
275
+ this.isCheckoutLoaded = true;
276
+ Analytics.checkoutStep(this.checkout, this.step as any);
277
+ };
278
+
279
+ getSuccessTransaction = async () => {
280
+ const transactionsResponse = await CustomerStoreAPI.listOrderTransactions({
281
+ orderId: { eq: this.checkout.id },
282
+ });
283
+
284
+ this.successTransaction =
285
+ transactionsResponse.isSuccess && transactionsResponse.data?.length
286
+ ? transactionsResponse.data[0]
287
+ : undefined;
288
+ };
289
+
290
+ get merchantSettings() {
291
+ return new IkasMerchantSettings(
292
+ IkasStorefrontConfig.getMerchantSettings()!
293
+ );
294
+ }
295
+
296
+ get selectedPaymentGatewayIndex() {
297
+ return this.paymentGateways.findIndex(
298
+ (pg) => pg.id === this.checkout.selectedPaymentGateway?.id
299
+ );
300
+ }
301
+
302
+ get selectedInstallmentIndex() {
303
+ return (
304
+ this.installmentInfo?.installmentPrices?.findIndex(
305
+ (ip) => ip.installmentCount === this.cardData?.installmentCount
306
+ ) || 0
307
+ );
308
+ }
309
+
310
+ get checkoutUrl() {
311
+ return `/checkout?id=${this.checkout.id}&step=info`;
312
+ }
313
+
314
+ get customerAddressOptions() {
315
+ const defaultOption = {
316
+ label: this.t("checkout-page:newAddress"),
317
+ value: "-1",
318
+ };
319
+
320
+ const addressOptions =
321
+ IkasBaseStore.getInstance().customerStore.customer?.addresses?.map(
322
+ (a) => ({
323
+ label: a.title + " - " + a.addressText,
324
+ value: a.id!,
325
+ })
326
+ ) || [];
327
+
328
+ return [defaultOption].concat(addressOptions);
329
+ }
330
+
331
+ get installmentPrice() {
332
+ if (this.installmentInfo && this.cardData?.installmentCount) {
333
+ return this.installmentInfo.installmentPrices?.find(
334
+ (ip) => ip.installmentCount === this.cardData?.installmentCount
335
+ )?.totalPrice;
336
+ }
337
+ }
338
+
339
+ get installmentExtraPrice() {
340
+ if (this.installmentPrice && this.checkout.totalFinalPrice) {
341
+ return this.installmentPrice - this.checkout.totalFinalPrice;
342
+ }
343
+ }
344
+
345
+ get finalPrice() {
346
+ if (this.step === CheckoutStep.SUCCESS)
347
+ return this.checkout.totalFinalPrice;
348
+ return this.installmentPrice || this.checkout.$totalFinalPrice;
349
+ }
350
+
351
+ get hasStockError() {
352
+ return this.error?.type === ErrorType.STOCK_ERROR;
353
+ }
354
+
355
+ // MasterPass PaymentGateway Control
356
+ get isPaymentGatewayHasMasterPass() {
357
+ if (this.selectedPaymentGatewayIndex === -1) return false;
358
+ if (!this.paymentGateways.length) return false;
359
+
360
+ return !!this.paymentGateways[this.selectedPaymentGatewayIndex]
361
+ .masterPassClientId;
362
+ }
363
+
364
+ // VALIDATIONS
365
+
366
+ get canProceedToShipping() {
367
+ return (
368
+ this.checkout.shippingAddress?.isValid &&
369
+ this.checkout.hasValidCustomerEmail &&
370
+ this.error?.type !== ErrorType.NO_SHIPPING_ERROR
371
+ );
372
+ }
373
+
374
+ get canProceedToInStoreDelivery() {
375
+ return (
376
+ !!this.checkout.shippingAddress?.firstName &&
377
+ !!this.checkout.shippingAddress?.lastName &&
378
+ !!this.checkout.customer?.email &&
379
+ !!this.checkout.stockLocationId
380
+ );
381
+ }
382
+
383
+ get canProceedToPayment() {
384
+ return this.canProceedToShipping;
385
+ }
386
+
387
+ get isInStoreDelivery() {
388
+ return !!this.checkout.stockLocationId;
389
+ }
390
+
391
+ get isCustomFlowStripe() {
392
+ const pg = this.checkout.selectedPaymentGateway;
393
+ return (
394
+ pg &&
395
+ pg.code === "STRIPE" &&
396
+ pg.settings?.find(
397
+ (setting) =>
398
+ setting.label === "allow_custom_flow" && setting.value === "true"
399
+ )
400
+ );
401
+ }
402
+
403
+ get store() {
404
+ return IkasBaseStore.getInstance();
405
+ }
406
+
407
+ get canPerformPayment() {
408
+ if (
409
+ this.checkoutSettings.showTermsAndConditionsCheckbox &&
410
+ !this.isTermsAndConditionsChecked
411
+ )
412
+ return false;
413
+
414
+ const pg = this.checkout.selectedPaymentGateway;
415
+ const isInStoreDelivery = this.deliveryMethod === "in-store";
416
+ const canProceedToShipping = isInStoreDelivery
417
+ ? true
418
+ : !!this.canProceedToShipping;
419
+ const isBillingAddressValid = !!this.checkout.billingAddress?.isValid;
420
+ const isPaymentGatewayValid = this.mpVM.selectedCard
421
+ ? true
422
+ : pg?.paymentMethodType === IkasPaymentMethodType.CREDIT_CARD &&
423
+ pg.type === IkasPaymentGatewayType.INTERNAL
424
+ ? this.isCustomFlowStripe
425
+ ? true
426
+ : this.cardData?.isValid
427
+ : !!pg;
428
+
429
+ return (
430
+ canProceedToShipping && isBillingAddressValid && isPaymentGatewayValid
431
+ );
432
+ }
433
+
434
+ // VALIDATIONS END
435
+
436
+ saveCart = async () => {
437
+ let input = new SaveCartInput(this.checkout as unknown as SaveCartInput);
438
+
439
+ if (this.deliveryMethod === "in-store") {
440
+ input = await this.inStockDeliveryInputData(input);
441
+ }
442
+
443
+ if (this.step === CheckoutStep.INFO) {
444
+ input.billingAddress = null;
445
+ }
446
+
447
+ const response = await CartStoreAPI.saveCart({ input });
448
+
449
+ if (response?.graphQLErrors && response.graphQLErrors.length) {
450
+ const firstError = response.graphQLErrors[0];
451
+
452
+ if (firstError.extensions?.code === "CUSTOMER_LOGIN_REQUIRED") {
453
+ throw {
454
+ type: ErrorType.CUSTOMER_LOGIN_REQUIRED_ERROR,
455
+ };
456
+ } else {
457
+ throw {
458
+ type: ErrorType.API_ERROR,
459
+ };
460
+ }
461
+ }
462
+
463
+ return response.data;
464
+ };
465
+
466
+ inStockDeliveryInputData = async (input: SaveCartInput) => {
467
+ const inputData = input;
468
+
469
+ const inStoreLocation = this.stockLocations.find(
470
+ (location) => location.id === this.checkout.stockLocationId
471
+ );
472
+
473
+ if (
474
+ inStoreLocation &&
475
+ inputData.shippingAddress &&
476
+ inStoreLocation.address
477
+ ) {
478
+ inputData.shippingAddress.country = inStoreLocation.address
479
+ .country as any;
480
+ inputData.shippingAddress.city = inStoreLocation.address.city as any;
481
+ inputData.shippingAddress.state = inStoreLocation.address.state as any;
482
+ inputData.shippingAddress.district = inStoreLocation.address
483
+ .district as any;
484
+ inputData.shippingAddress.postalCode = inStoreLocation.address.postalCode;
485
+ inputData.shippingAddress.addressLine1 =
486
+ inStoreLocation.address.address || "";
487
+ inputData.shippingAddress.addressLine2 = null;
488
+ }
489
+
490
+ return inputData;
491
+ };
492
+
493
+ checkStocks = async () => {
494
+ const lines = this.checkout.items.map((i) => ({
495
+ quantity: i.quantity,
496
+ variantId: i.variant.id,
497
+ productId: i.variant.productId,
498
+ }));
499
+
500
+ const checkStocksResponse = await CheckoutStore.checkStocks({
501
+ lines: lines.map(
502
+ (l) => new CheckStocksLineInput(l as CheckStocksLineInput)
503
+ ),
504
+ stockLocationIdList: IkasStorefrontConfig.getStockLocationIds()?.length
505
+ ? IkasStorefrontConfig.getStockLocationIds()
506
+ : null,
507
+ //stockLocationIdList: IkasStorefrontConfig.pickUpStockLocationIds || [], // REMOVE ME
508
+ });
509
+
510
+ if (!checkStocksResponse.isSuccess) {
511
+ throw {
512
+ type: ErrorType.API_ERROR,
513
+ };
514
+ }
515
+
516
+ const unavailableItems = checkStocksResponse.data?.lines?.filter(
517
+ (i) => !i.isAvailable
518
+ );
519
+
520
+ if (unavailableItems?.length) {
521
+ const _unavailableItems: IkasOrderLineItem[] = [];
522
+
523
+ for (const item of unavailableItems) {
524
+ const cartItem = IkasBaseStore.getInstance().cartStore.cart?.items.find(
525
+ (i) => i.variant.id === item.variantId
526
+ );
527
+ if (cartItem) _unavailableItems.push(cartItem);
528
+ }
529
+
530
+ throw {
531
+ type: ErrorType.STOCK_ERROR,
532
+ data: _unavailableItems,
533
+ };
534
+ }
535
+ };
536
+
537
+ removeUnavailableItems = async (items: IkasOrderLineItem[]) => {
538
+ for (const item of items) {
539
+ await IkasBaseStore.getInstance().cartStore.removeItem(item);
540
+ }
541
+ };
542
+
543
+ getShippingCountries = async () => {
544
+ const response = await CheckoutStore.getAvailableShippingCountries({
545
+ salesChannelId: IkasStorefrontConfig.getSalesChannelId(),
546
+ });
547
+ this.shippingCountryIds = response.data;
548
+ };
549
+
550
+ getStockLocations = async () => {
551
+ if (IkasStorefrontConfig.getPickupStockLocationIds()) {
552
+ const response = await CheckoutStore.listStockLocation({
553
+ id: { in: IkasStorefrontConfig.getPickupStockLocationIds() },
554
+ });
555
+ if (!response.isSuccess || !response.data?.length) {
556
+ this.error = {
557
+ type: ErrorType.API_ERROR,
558
+ };
559
+ return;
560
+ }
561
+
562
+ this.stockLocations = response.data;
563
+ }
564
+ };
565
+
566
+ getAvailableStockLocations = async () => {
567
+ if (IkasStorefrontConfig.getPickupStockLocationIds()) {
568
+ const lines = this.checkout.items.map((i) => ({
569
+ quantity: i.quantity,
570
+ variantId: i.variant.id,
571
+ productId: i.variant.productId,
572
+ }));
573
+
574
+ const response = await CheckoutStore.getAvailableStockLocations({
575
+ lines: lines.map(
576
+ (l) => new CheckStocksLineInput(l as CheckStocksLineInput)
577
+ ),
578
+ stockLocationIdList: IkasStorefrontConfig.getPickupStockLocationIds(),
579
+ });
580
+ if (!response.isSuccess) {
581
+ this.error = {
582
+ type: ErrorType.API_ERROR,
583
+ };
584
+ return;
585
+ }
586
+
587
+ this.availableStockLocations = response.data || [];
588
+ }
589
+ };
590
+
591
+ checkShippingCountries = () => {
592
+ if (!this.shippingCountryIds?.length) {
593
+ this.error = {
594
+ type: ErrorType.NO_SHIPPING_ERROR,
595
+ };
596
+ }
597
+ };
598
+
599
+ onDeliveryMethodChange = (deliveryMethod: "address" | "in-store") => {
600
+ if (deliveryMethod === "address") {
601
+ this.checkout.stockLocationId = null;
602
+ }
603
+ this.deliveryMethod = deliveryMethod;
604
+ this.isErrorsVisible = false;
605
+ };
606
+
607
+ initialStockCheck = async () => {
608
+ try {
609
+ await this.checkStocks();
610
+ } catch (err) {
611
+ if (err.type) {
612
+ this.error = err;
613
+ } else {
614
+ console.log(err);
615
+ this.error = {
616
+ type: ErrorType.UNKNOWN,
617
+ };
618
+ }
619
+ }
620
+ };
621
+
622
+ listPaymentGateways = async () => {
623
+ const isLocal = process.env.NEXT_PUBLIC_ENV === "local";
624
+ const idList = IkasStorefrontConfig.getPaymentGateways().map((pg) => pg.id);
625
+ const paymentGatewaysResponse = await CheckoutStore.listPaymentGateway({
626
+ id: isLocal ? undefined : { in: idList },
627
+ });
628
+
629
+ if (
630
+ !paymentGatewaysResponse.isSuccess ||
631
+ !paymentGatewaysResponse.data?.length
632
+ ) {
633
+ this.error = {
634
+ type: ErrorType.API_ERROR,
635
+ };
636
+ return;
637
+ }
638
+
639
+ let paymentGateways = paymentGatewaysResponse.data;
640
+
641
+ if (this.step === CheckoutStep.PAYMENT) {
642
+ paymentGateways = paymentGateways.filter((pg) =>
643
+ pg.supportedCurrencies?.length
644
+ ? pg.supportedCurrencies.includes(this.checkout.currencyCode)
645
+ : true
646
+ );
647
+
648
+ const shippingCountry = this.checkout.shippingAddress?.country;
649
+ if (shippingCountry && shippingCountry.iso2) {
650
+ paymentGateways = paymentGateways.filter((pg) =>
651
+ pg.availableCountries?.length
652
+ ? pg.availableCountries.includes(shippingCountry.iso2 || "")
653
+ : true
654
+ );
655
+ }
656
+ }
657
+
658
+ const orderedPaymentGateways: IkasPaymentGateway[] = [];
659
+
660
+ _sortBy(IkasStorefrontConfig.getPaymentGateways(), "order").forEach(
661
+ (pg) => {
662
+ const _pg = paymentGateways?.find((p) => p.id === pg.id);
663
+ if (_pg) orderedPaymentGateways.push(_pg);
664
+ }
665
+ );
666
+
667
+ this.paymentGateways = isLocal ? paymentGateways : orderedPaymentGateways;
668
+ if (!this.checkout.selectedPaymentGateway) this.setPaymentGateway(0);
669
+
670
+ if (this.step === CheckoutStep.PAYMENT) {
671
+ const masterPassPG = paymentGateways.find(
672
+ (pG) => !!pG.masterPassClientId
673
+ );
674
+ if (masterPassPG) {
675
+ this.checkout.masterPassPaymentGateway = masterPassPG;
676
+ this.mpVM.checkMasterPass({
677
+ checkout: this.checkout,
678
+ store: IkasBaseStore.getInstance(),
679
+ });
680
+ }
681
+ }
682
+ };
683
+
684
+ retrieveInstallmentInfo = async (
685
+ params: RetrieveInstallmentInfoQueryParams
686
+ ) => {
687
+ const installmentInfoResponse = await CheckoutStore.retrieveInstallmentInfo(
688
+ params
689
+ );
690
+
691
+ const installmentInfo = installmentInfoResponse.data;
692
+
693
+ installmentInfo?.installmentPrices?.sort((a, b) =>
694
+ (a.installmentCount || -1) > (b.installmentCount || -1) ? 1 : -1
695
+ );
696
+ this.installmentInfo = installmentInfo;
697
+ };
698
+
699
+ createCustomer = () => {
700
+ if (this.store.customerStore.customer) {
701
+ this.store.customerStore.customer.addresses?.forEach(
702
+ (address) => (address.checkoutSettings = this.checkoutSettings)
703
+ );
704
+ this.checkout.customer = new IkasOrderCustomer(
705
+ this.store.customerStore.customer as any
706
+ );
707
+ } else if (!this.checkout.customer)
708
+ this.checkout.customer = new IkasOrderCustomer({});
709
+ };
710
+
711
+ createShippingAddress = () => {
712
+ if (!this.checkout.shippingAddress) {
713
+ const customerAddresses = this.store.customerStore.customer?.addresses;
714
+ this.onSelectedShippingAddressIdChange(
715
+ customerAddresses?.length ? customerAddresses[0].id! : "-1"
716
+ );
717
+ } else {
718
+ this.selectedShippingAddressId = this.checkout.shippingAddress.id || "-1";
719
+ this.checkout.shippingAddress.checkoutSettings = this.checkoutSettings;
720
+ }
721
+ };
722
+
723
+ createBillingAddress = () => {
724
+ if (typeof localStorage !== "undefined") {
725
+ this.useDifferentAddress = !!localStorage.getItem(
726
+ USE_DIFFERENT_ADDRESS_KEY
727
+ );
728
+
729
+ if (this.useDifferentAddress) {
730
+ if (this.checkout.billingAddress) {
731
+ this.selectedBillingAddressId =
732
+ this.checkout.billingAddress.id || "-1";
733
+ }
734
+ this.checkout.billingAddress =
735
+ this.checkout.billingAddress || new IkasOrderAddress();
736
+ } else {
737
+ if (this.isInStoreDelivery) {
738
+ this.checkout.billingAddress = new IkasOrderAddress(
739
+ _cloneDeep(this.checkout.billingAddress) || {}
740
+ );
741
+ } else {
742
+ this.checkout.billingAddress = new IkasOrderAddress(
743
+ _cloneDeep(this.checkout.shippingAddress) || {}
744
+ );
745
+ }
746
+ }
747
+ this.checkout.billingAddress.checkoutSettings = this.checkoutSettings;
748
+ }
749
+ };
750
+
751
+ onShippingMethodChange = async (
752
+ shippingMethod: IkasAvailableShippingMethod
753
+ ) => {
754
+ if (this.isChangingShippingMethod) return;
755
+
756
+ this.isChangingShippingMethod = true;
757
+ this.checkout.shippingSettingsId = shippingMethod.shippingSettingsId;
758
+ this.checkout.shippingZoneRateId = shippingMethod.shippingZoneRateId;
759
+ const newCart = await this.saveCart();
760
+
761
+ if (newCart) this.checkout = new IkasCheckout(newCart);
762
+ this.isChangingShippingMethod = false;
763
+ };
764
+
765
+ onStockLocationChange = async (location: IkasStockLocation) => {
766
+ this.checkout.stockLocationId = location.id;
767
+ };
768
+
769
+ onCouponCodeApply = async () => {
770
+ try {
771
+ const saveCouponCodeResponse = await CartStoreAPI.saveCartCouponCode({
772
+ cartId: this.checkout.id!,
773
+ couponCode: this.checkout.couponCode || null,
774
+ });
775
+
776
+ if (saveCouponCodeResponse.isSuccess && saveCouponCodeResponse.data) {
777
+ const newCart = saveCouponCodeResponse.data;
778
+ const cardNumber = this.cardData?.cardNumber?.split(" ").join("");
779
+
780
+ if (
781
+ this.step === CheckoutStep.PAYMENT &&
782
+ cardNumber?.length &&
783
+ cardNumber.length >= 6
784
+ ) {
785
+ this.retrieveInstallmentInfo({
786
+ input: {
787
+ binNumber: cardNumber.slice(0, 6),
788
+ paymentGatewayId: this.checkout.selectedPaymentGateway!.id!,
789
+ price: newCart.totalFinalPrice!,
790
+ },
791
+ });
792
+ }
793
+
794
+ if (newCart) {
795
+ const oldCheckout = this.checkout;
796
+
797
+ this.checkout = new IkasCheckout({
798
+ ...newCart,
799
+ shippingAddress: oldCheckout.shippingAddress,
800
+ billingAddress: oldCheckout.billingAddress,
801
+ customer: oldCheckout.customer,
802
+ selectedPaymentGateway: oldCheckout.selectedPaymentGateway,
803
+ });
804
+ }
805
+ }
806
+ } catch (err) {}
807
+ };
808
+
809
+ onSelectedShippingAddressIdChange = (value: string) => {
810
+ this.selectedShippingAddressId = value;
811
+ if (value === "-1") {
812
+ this.checkout.shippingAddress = new IkasOrderAddress();
813
+ } else {
814
+ const address = this.store.customerStore.customer?.addresses?.find(
815
+ (a) => a.id === value
816
+ );
817
+ if (address)
818
+ this.checkout.shippingAddress = new IkasOrderAddress(address as any);
819
+ }
820
+
821
+ if (this.checkout.shippingAddress)
822
+ this.checkout.shippingAddress.checkoutSettings = this.checkoutSettings;
823
+ };
824
+
825
+ onSelectedBillingAddressIdChange = (value: string) => {
826
+ this.selectedBillingAddressId = value;
827
+ if (value === "-1") {
828
+ this.checkout.billingAddress = new IkasOrderAddress();
829
+ } else {
830
+ const address = this.store.customerStore.customer?.addresses?.find(
831
+ (a) => a.id === value
832
+ );
833
+ if (address)
834
+ this.checkout.billingAddress = new IkasOrderAddress(address as any);
835
+ }
836
+
837
+ if (this.checkout.billingAddress)
838
+ this.checkout.billingAddress.checkoutSettings = this.checkoutSettings;
839
+ };
840
+
841
+ onTermsAndConditionsCheckedChange = (value: boolean) => {
842
+ this.isTermsAndConditionsChecked = value;
843
+ };
844
+
845
+ // CREDIT CARD START
846
+
847
+ onCardNumberChange = (value: string) => {
848
+ if (!this.cardData) return;
849
+ if (
850
+ value.length > this.cardData.cardNumber!.length &&
851
+ !isLastCharNumber(value)
852
+ )
853
+ return;
854
+
855
+ const oldOriginalValue = (this.cardData.cardNumber || "")
856
+ .split(" ")
857
+ .join("");
858
+ const originalValue = value.split(" ").join("");
859
+
860
+ if (originalValue.length > MAX_CARD_NUMBER_LENGTH) return;
861
+ if (
862
+ oldOriginalValue.length < 6 &&
863
+ originalValue.length >= 6 &&
864
+ !this.installmentInfo
865
+ ) {
866
+ this.retrieveInstallmentInfo({
867
+ input: {
868
+ binNumber: originalValue.slice(0, 6),
869
+ paymentGatewayId: this.checkout.selectedPaymentGateway!.id!,
870
+ price: this.checkout.totalFinalPrice!,
871
+ },
872
+ });
873
+ }
874
+ // Deleting characters below 6
875
+ else if (
876
+ originalValue.length < 6 &&
877
+ oldOriginalValue.length > originalValue.length
878
+ ) {
879
+ this.cardData.installmentCount = 1;
880
+ this.installmentInfo = undefined;
881
+ }
882
+
883
+ this.cardData.cardNumber = chunkString(originalValue, 4).join(" ");
884
+ };
885
+
886
+ onCardHolderNameChange = (value: string) => {
887
+ if (!this.cardData) return;
888
+ this.cardData.cardHolderName = value;
889
+ };
890
+
891
+ onExpirationDateChange = (value: string) => {
892
+ if (!this.cardData) return;
893
+ if (
894
+ value.length > this.cardData.expirationDate!.length &&
895
+ !isLastCharNumber(value)
896
+ ) {
897
+ return;
898
+ }
899
+
900
+ // Check autocomplete
901
+ if (this.cardData.expirationDate?.length === 0) {
902
+ const splitValues = value.split("/");
903
+
904
+ if (splitValues.length === 2) {
905
+ const firstPart = splitValues[0].trim();
906
+ const lastPart = splitValues[1].trim();
907
+
908
+ // YYYY-MM format
909
+ if (firstPart.length === 4 && lastPart.length === 2) {
910
+ const year = parseInt(firstPart.slice(2));
911
+ const month = parseInt(lastPart);
912
+
913
+ if (!isNaN(year) && !isNaN(month)) {
914
+ this.cardData.expirationDate = `${
915
+ month < 10 ? "0" + month : month
916
+ } / ${year < 10 ? "0" + year : year}`;
917
+ return;
918
+ }
919
+ }
920
+
921
+ // MM-YYYY format
922
+ if (firstPart.length === 2 && lastPart.length === 4) {
923
+ const month = parseInt(firstPart);
924
+ const year = parseInt(lastPart.slice(2));
925
+
926
+ if (!isNaN(year) && !isNaN(month)) {
927
+ this.cardData.expirationDate = `${
928
+ month < 10 ? "0" + month : month
929
+ } / ${year < 10 ? "0" + year : year}`;
930
+ return;
931
+ }
932
+ }
933
+ }
934
+
935
+ // const autoCompleteValue = value.split("/").join("");
936
+ // if (
937
+ // autoCompleteValue.length === 4 &&
938
+ // !isNaN(parseInt(autoCompleteValue))
939
+ // ) {
940
+ // this.cardData.expirationDate = chunkString(autoCompleteValue, 2).join(
941
+ // " / "
942
+ // );
943
+ // return;
944
+ // }
945
+ }
946
+
947
+ const originalValue = value.split(" / ").join("");
948
+ if (originalValue.length > 4) return;
949
+
950
+ this.cardData.expirationDate = chunkString(originalValue, 2).join(" / ");
951
+ };
952
+
953
+ onCvcChange = (value: string) => {
954
+ if (!this.cardData) return;
955
+ if (value.length > this.cardData.cvv!.length && !isLastCharNumber(value))
956
+ return;
957
+ if (value.length > MAX_CVC_LENGTH) return;
958
+ this.cardData.cvv = value;
959
+ };
960
+
961
+ // CREDIT CARD END
962
+
963
+ saveAddress = async (type: "billing" | "shipping") => {
964
+ try {
965
+ if (this.shouldSaveAddress && this.store.customerStore.customer) {
966
+ const address =
967
+ type === "shipping"
968
+ ? this.checkout.shippingAddress
969
+ : this.checkout.billingAddress;
970
+
971
+ const existingAddress =
972
+ this.store.customerStore.customer.addresses?.find(
973
+ (a) => a.id === address?.id
974
+ );
975
+ if (existingAddress) return;
976
+
977
+ const newAddress = new IkasCustomerAddress({
978
+ ...address,
979
+ title: this.addressTitle || this.t("checkout-page:newAddress"),
980
+ } as any);
981
+ const customer = _cloneDeep(this.store.customerStore.customer);
982
+ if (!customer.addresses) customer.addresses = [];
983
+ customer.addresses.push(newAddress);
984
+
985
+ await this.store.customerStore.saveCustomer(customer);
986
+
987
+ if (type === "shipping") {
988
+ this.checkout.shippingAddress!.id = newAddress.id;
989
+ this.selectedShippingAddressId = newAddress.id || "-1";
990
+ } else {
991
+ this.checkout.billingAddress!.id = newAddress.id;
992
+ this.selectedBillingAddressId = newAddress.id || "-1";
993
+ }
994
+ }
995
+ } catch (err) {
996
+ console.error(err);
997
+ }
998
+ };
999
+
1000
+ onGoToCartClick = () => {
1001
+ this.router.push("/cart");
1002
+ };
1003
+
1004
+ onBackToShoppingClick = () => {
1005
+ this.router.push("/");
1006
+ };
1007
+
1008
+ onProceedToShippingClick = async () => {
1009
+ if (this.deliveryMethod === "address") {
1010
+ if (!this.canProceedToShipping) {
1011
+ this.isErrorsVisible = true;
1012
+ return;
1013
+ }
1014
+ } else {
1015
+ if (!this.canProceedToInStoreDelivery) {
1016
+ this.isErrorsVisible = true;
1017
+ return;
1018
+ }
1019
+ }
1020
+
1021
+ this.isErrorsVisible = false;
1022
+
1023
+ try {
1024
+ this.isStepLoading = true;
1025
+
1026
+ if (this.deliveryMethod === "address") {
1027
+ await this.saveAddress("shipping");
1028
+ }
1029
+
1030
+ await this.checkStocks();
1031
+ await this.saveCart();
1032
+
1033
+ if (this.deliveryMethod === "address") {
1034
+ this.changeStep(CheckoutStep.SHIPPING);
1035
+ } else {
1036
+ this.changeStep(CheckoutStep.PAYMENT);
1037
+ }
1038
+ } catch (err) {
1039
+ if (err.type) {
1040
+ this.error = err;
1041
+ } else {
1042
+ console.log(err);
1043
+ this.error = {
1044
+ type: ErrorType.UNKNOWN,
1045
+ };
1046
+ }
1047
+ this.isStepLoading = false;
1048
+ }
1049
+ };
1050
+
1051
+ onProceedToPaymentClick = async () => {
1052
+ if (!this.canProceedToPayment) {
1053
+ this.isErrorsVisible = true;
1054
+ return;
1055
+ }
1056
+ this.isErrorsVisible = false;
1057
+
1058
+ try {
1059
+ this.isStepLoading = true;
1060
+ await this.checkStocks();
1061
+ await this.saveCart();
1062
+
1063
+ this.error = undefined;
1064
+ this.changeStep(CheckoutStep.PAYMENT);
1065
+ } catch (err) {
1066
+ if (err.type) {
1067
+ this.error = err;
1068
+ } else {
1069
+ console.log(err);
1070
+ this.error = {
1071
+ type: ErrorType.UNKNOWN,
1072
+ };
1073
+ }
1074
+ this.isStepLoading = false;
1075
+ }
1076
+ };
1077
+
1078
+ onCompletePaymentClick = async () => {
1079
+ if (!this.canPerformPayment) {
1080
+ this.isErrorsVisible = true;
1081
+ return;
1082
+ }
1083
+
1084
+ if (!this.useDifferentAddress) {
1085
+ this.checkout.billingAddress = this.checkout.shippingAddress;
1086
+ }
1087
+
1088
+ try {
1089
+ this.isErrorsVisible = false;
1090
+ this.isStepLoading = true;
1091
+
1092
+ await this.checkStocks();
1093
+ if (this.deliveryMethod === "address") {
1094
+ await this.saveAddress("billing");
1095
+ }
1096
+ await this.saveCart();
1097
+
1098
+ if (this.isCustomFlowStripe) {
1099
+ const stripeFromBtn = document.querySelector("#stripe-form-btn");
1100
+ if (stripeFromBtn) {
1101
+ //@ts-ignore
1102
+ stripeFromBtn.click();
1103
+ }
1104
+
1105
+ return;
1106
+ }
1107
+
1108
+ await this.createSaleTransaction();
1109
+ } catch (err) {
1110
+ if (err.type) {
1111
+ this.error = err;
1112
+ } else {
1113
+ this.error = {
1114
+ type: ErrorType.UNKNOWN,
1115
+ };
1116
+ }
1117
+ this.isStepLoading = false;
1118
+ }
1119
+ };
1120
+
1121
+ createSaleTransaction = async () => {
1122
+ let phoneNumber;
1123
+ const isMasterPass = this.mpVM.selectedCard;
1124
+
1125
+ let response: APIResponse<TransactionResponse> | APIResponse<undefined>;
1126
+ if (isMasterPass && this.mpVM.selectedCard?.Name) {
1127
+ const _phoneNumber = this.mpVM.phoneNumber({
1128
+ store: this.store,
1129
+ checkout: this.checkout,
1130
+ });
1131
+ if (_phoneNumber) phoneNumber = _phoneNumber;
1132
+ if (typeof this.cardData?.installmentCount === "undefined") return;
1133
+ response = await CheckoutStore.createSaleTransactionWithCart({
1134
+ input: {
1135
+ cartId: this.checkout.id!,
1136
+ masterPassDetail: {
1137
+ phoneNumber,
1138
+ savedCardName: this.mpVM.selectedCard?.Name,
1139
+ },
1140
+ paymentGatewayId: this.mpVM.selectedCard?.paymentGatewayId,
1141
+ paymentMethodDetail: {
1142
+ cardNumber: this.mpVM.selectedCard.Value1,
1143
+ cardHolderName: this.mpVM.selectedCard.Name!,
1144
+ cvv: this.mpVM.selectedCard.Value2,
1145
+ expiredMonth: 11,
1146
+ expiredYear: 11,
1147
+ installmentCount: this.cardData.installmentCount,
1148
+ threeDSecure: !!this.cardData?.threeDSecure,
1149
+ },
1150
+ },
1151
+ });
1152
+ } else {
1153
+ if (!this.checkout.selectedPaymentGateway) return;
1154
+ response = await CheckoutStore.createSaleTransactionWithCart({
1155
+ input: {
1156
+ cartId: this.checkout.id!,
1157
+ masterPassDetail:
1158
+ isMasterPass && phoneNumber
1159
+ ? { phoneNumber, savedCardName: this.mpVM.selectedCard?.Name }
1160
+ : undefined,
1161
+ paymentGatewayId: this.checkout.selectedPaymentGateway.id!,
1162
+ paymentMethodDetail: isMasterPass
1163
+ ? undefined
1164
+ : this.checkout.selectedPaymentGateway.paymentMethodType ===
1165
+ IkasPaymentMethodType.CREDIT_CARD &&
1166
+ this.checkout.selectedPaymentGateway.type ===
1167
+ IkasPaymentGatewayType.INTERNAL &&
1168
+ this.cardData
1169
+ ? this.cardData.toInput()
1170
+ : undefined,
1171
+ },
1172
+ });
1173
+ }
1174
+
1175
+ const transactionStatus = response?.data?.transactionStatus as unknown as
1176
+ | IkasTransactionStatus
1177
+ | undefined;
1178
+
1179
+ const transactionSuccess =
1180
+ transactionStatus &&
1181
+ [
1182
+ IkasTransactionStatus.SUCCESS,
1183
+ IkasTransactionStatus.AUTHORIZED,
1184
+ ].includes(transactionStatus);
1185
+
1186
+ const transactionPending =
1187
+ transactionStatus === IkasTransactionStatus.PENDING;
1188
+
1189
+ if (transactionSuccess) {
1190
+ await this.getSuccessTransaction();
1191
+ await this.onCheckoutTransactionSuccess();
1192
+ } else if (transactionPending && !!response?.data?.returnSlug) {
1193
+ window.location.href =
1194
+ process.env.NEXT_PUBLIC_BASE_URL + response.data.returnSlug;
1195
+ } else {
1196
+ throw {
1197
+ type: ErrorType.UNKNOWN,
1198
+ };
1199
+ }
1200
+ };
1201
+
1202
+ onCheckoutTransactionSuccess = async () => {
1203
+ localStorage.removeItem(USE_DIFFERENT_ADDRESS_KEY);
1204
+
1205
+ if (this.checkout.customer?.notificationsAccepted) {
1206
+ await this.store.customerStore.createEmailSubscription(
1207
+ this.checkout.customer?.email || ""
1208
+ );
1209
+ }
1210
+
1211
+ this.changeStep(CheckoutStep.SUCCESS);
1212
+ };
1213
+
1214
+ onBackToInfoClick = () => {
1215
+ this.changeStep(CheckoutStep.INFO);
1216
+ };
1217
+
1218
+ onBackToShippingClick = () => {
1219
+ this.changeStep(CheckoutStep.SHIPPING);
1220
+ };
1221
+
1222
+ setCustomerConsentGranted = (value: boolean) => {
1223
+ if (this.checkout.customer)
1224
+ this.checkout.customer.notificationsAccepted = value;
1225
+ };
1226
+
1227
+ setUseDifferentAddress = (value: boolean) => {
1228
+ this.useDifferentAddress = value;
1229
+ if (this.useDifferentAddress) {
1230
+ localStorage.setItem(USE_DIFFERENT_ADDRESS_KEY, "1");
1231
+ this.checkout.billingAddress =
1232
+ this.checkout.billingAddress || new IkasOrderAddress();
1233
+ } else {
1234
+ localStorage.removeItem(USE_DIFFERENT_ADDRESS_KEY);
1235
+ this.checkout.billingAddress = this.checkout.shippingAddress;
1236
+ }
1237
+ };
1238
+
1239
+ setShouldSaveAddress = (value: boolean) => {
1240
+ this.shouldSaveAddress = value;
1241
+ };
1242
+
1243
+ setAddressTitle = (value: string) => {
1244
+ this.addressTitle = value;
1245
+ };
1246
+
1247
+ setPaymentGateway = async (index: number) => {
1248
+ if (!this.paymentGateways.length) return;
1249
+
1250
+ const paymentGateway = this.paymentGateways[index];
1251
+
1252
+ if (
1253
+ paymentGateway.code === "STRIPE" &&
1254
+ paymentGateway.settings?.find(
1255
+ (setting) =>
1256
+ setting.label === "allow_custom_flow" && setting.value === "true"
1257
+ ) &&
1258
+ !this.stripeResponse
1259
+ ) {
1260
+ const response = await CheckoutStore.createStripePaymentIntent({
1261
+ input: {
1262
+ cartId: this.checkout.id,
1263
+ paymentGatewayId: paymentGateway.id || "",
1264
+ },
1265
+ });
1266
+ if (response.isSuccess && response.data) {
1267
+ this.stripeResponse = response.data;
1268
+ }
1269
+ }
1270
+
1271
+ this.checkout.selectedPaymentGateway = paymentGateway;
1272
+
1273
+ if (this.step !== CheckoutStep.SUCCESS) {
1274
+ if (
1275
+ paymentGateway.paymentMethodType ===
1276
+ IkasPaymentMethodType.CREDIT_CARD &&
1277
+ paymentGateway.type === IkasPaymentGatewayType.INTERNAL
1278
+ ) {
1279
+ this.cardData = new CreditCardData();
1280
+ // const masterpass = paymentGateway.masterPassClientId;
1281
+ // if (masterpass) {
1282
+ // this.mpVM.checkMasterPass({
1283
+ // checkout: this.checkout,
1284
+ // store: this.store,
1285
+ // });
1286
+ // }
1287
+ }
1288
+
1289
+ this.installmentInfo = undefined;
1290
+ }
1291
+ };
1292
+
1293
+ setInstallmentCount = (count: number) => {
1294
+ if (!this.cardData) return;
1295
+ this.cardData.installmentCount = count;
1296
+ };
1297
+
1298
+ changeStep = async (step: CheckoutStep) => {
1299
+ if (!isServer) {
1300
+ window.location.replace(
1301
+ `${window.location.pathname}?id=${this.checkout.id}&step=${step}`
1302
+ );
1303
+ }
1304
+ };
1305
+
1306
+ logout = async () => {
1307
+ this.checkout.customer = null;
1308
+ this.store.customerStore.logout();
1309
+ try {
1310
+ await this.saveCart();
1311
+ } catch (err) {}
1312
+ this.createCustomer();
1313
+ };
1314
+
1315
+ setContactModalVisible = (value: boolean) => {
1316
+ this.isContactModalVisible = value;
1317
+ };
1318
+
1319
+ getWaitingForActionCampaignOffer = (
1320
+ targetPage: IkasCampaignOfferTargetPageType
1321
+ ) => {
1322
+ if (this.checkout.campaignOffers && this.checkout.campaignOffers.length) {
1323
+ const filteredCampaignOffer = this.checkout.campaignOffers.filter(
1324
+ (co) =>
1325
+ co.status === IkasCartCampaignOfferStatus.WAITING_FOR_ACTION &&
1326
+ co.campaignOffer?.targetPageTypes.some((tpt) => tpt === targetPage)
1327
+ );
1328
+
1329
+ if (filteredCampaignOffer.length) {
1330
+ return filteredCampaignOffer[0];
1331
+ }
1332
+ }
1333
+
1334
+ return null;
1335
+ };
1336
+
1337
+ getOffer = (waitingForActionCampaignOffer: IkasCartCampaignOffer) => {
1338
+ if (waitingForActionCampaignOffer.campaignOffer) {
1339
+ return waitingForActionCampaignOffer.campaignOffer.offers.find(
1340
+ (o) => o.id === waitingForActionCampaignOffer.campaignOfferProductId
1341
+ );
1342
+ }
1343
+
1344
+ return null;
1345
+ };
1346
+
1347
+ getProduct = async (productId: string) => {
1348
+ const productsResponse = await ProductStoreAPI.searchProducts({
1349
+ input: {
1350
+ productIdList: [productId],
1351
+ },
1352
+ });
1353
+
1354
+ if (
1355
+ productsResponse.isSuccess &&
1356
+ productsResponse.data &&
1357
+ productsResponse.data.data &&
1358
+ productsResponse.data.data.length
1359
+ ) {
1360
+ const product = productsResponse.data.data[0];
1361
+ const selectedVariant = product.variants.find((v) => v.isActive);
1362
+ const productDetail = new IkasProduct({
1363
+ ...product,
1364
+ selectedVariantValues: (selectedVariant || product.variants[0])
1365
+ .variantValues,
1366
+ });
1367
+
1368
+ return productDetail;
1369
+ }
1370
+
1371
+ return null;
1372
+ };
1373
+
1374
+ getCampaignOfferProducts = async (
1375
+ targetPage: IkasCampaignOfferTargetPageType
1376
+ ) => {
1377
+ const waitingForActionCampaignOffer =
1378
+ this.getWaitingForActionCampaignOffer(targetPage);
1379
+
1380
+ if (
1381
+ waitingForActionCampaignOffer &&
1382
+ waitingForActionCampaignOffer.campaignOffer
1383
+ ) {
1384
+ const offer = this.getOffer(waitingForActionCampaignOffer);
1385
+
1386
+ if (offer) {
1387
+ const productDetail = await this.getProduct(offer.productId);
1388
+
1389
+ if (productDetail) {
1390
+ return {
1391
+ productDetail,
1392
+ campaignOffer: waitingForActionCampaignOffer,
1393
+ offer,
1394
+ };
1395
+ }
1396
+ }
1397
+ }
1398
+
1399
+ return undefined;
1400
+ };
1401
+
1402
+ getCampaignOffer = async () => {
1403
+ this.checkoutCampaignOffer = (await this.getCampaignOfferProducts(
1404
+ IkasCampaignOfferTargetPageType.CHECKOUT
1405
+ )) as any;
1406
+ this.postCheckoutCampaignOffer = (await this.getCampaignOfferProducts(
1407
+ IkasCampaignOfferTargetPageType.POST_CHECKOUT
1408
+ )) as any;
1409
+ };
1410
+
1411
+ updateCartCampaignOffer = async (props: UpdateCartCampaignOfferInput) => {
1412
+ this.isCheckoutLoaded = false;
1413
+
1414
+ const getCartResponse = await CartStoreAPI.updateCartCampaignOffer({
1415
+ input: props,
1416
+ });
1417
+
1418
+ if (getCartResponse && getCartResponse.isSuccess && getCartResponse.data) {
1419
+ this.checkout = new IkasCheckout(getCartResponse.data);
1420
+
1421
+ await this.init();
1422
+ }
1423
+
1424
+ this.isCheckoutLoaded = true;
1425
+ };
1426
+ }
1427
+
1428
+ function chunkString(str: string, length: number) {
1429
+ return str.match(new RegExp(".{1," + length + "}", "g")) || [];
1430
+ }
1431
+
1432
+ function isLastCharNumber(str: string) {
1433
+ return str && NUMBER_ONLY_REGEX.test(str.charAt(str.length - 1));
1434
+ }
1435
+
1436
+ export enum CheckoutStep {
1437
+ INFO = "info",
1438
+ SHIPPING = "shipping",
1439
+ PAYMENT = "payment",
1440
+ SUCCESS = "success",
1441
+ }
1442
+
1443
+ export enum ErrorType {
1444
+ UNKNOWN,
1445
+ API_ERROR,
1446
+ STOCK_ERROR,
1447
+ PAYMENT_ERROR,
1448
+ NO_SHIPPING_ERROR,
1449
+ CUSTOMER_LOGIN_REQUIRED_ERROR,
1450
+ }
1451
+
1452
+ export type CheckoutError = {
1453
+ type: ErrorType;
1454
+ data?: any;
1455
+ };
1456
+
1457
+ export type StockErrorData = {
1458
+ variant: IkasOrderLineVariant;
1459
+ availableQuantity: number;
1460
+ };
1461
+
1462
+ export type CampaignOfferType = {
1463
+ product: IkasProduct;
1464
+ campaignOffer: IkasCartCampaignOffer;
1465
+ offer: IkasCampaignOfferProduct;
1466
+ };